390 likes | 551 Views
Advanced Information Systems Development (SD3043) Lecture 1: Introduction. Dr. Haris Mouratidis haris@uel.ac.uk 26 th September 2006. Lecture Layout. Module Information Description of the Module Teaching & Assessment methods Module Content Overview of Software Engineering Conclusion.
E N D
Advanced Information Systems Development (SD3043)Lecture 1: Introduction Dr. Haris Mouratidis haris@uel.ac.uk 26th September 2006
Lecture Layout • Module Information • Description of the Module • Teaching & Assessment methods • Module Content • Overview of Software Engineering • Conclusion Advanced Information Systems Development
Lecture Rules and Facts • Start on time! • Ten minutes break • No mobile phones!!! • Previous years: • Attend lectures, tutorials, submit assignment, sat exam- pass rate ~90% Advanced Information Systems Development
Description of the Module • A third year software engineering module that aims to: • Develop a broad understanding on industrial and research topics related to information systems development • Expose students to current issues in information systems development • Draw the students’ attention to the current trends and future directions in the development of information systems Advanced Information Systems Development
The Module Team • Dr. Haris Mouratidis • Module Leader, Lectures, Tutorials/Practicals • PhD (Sheffield) - Information Systems Development • Practical Development of IS for small and large organisations (e.g. NHS) • National and International Projects, Organisation of Research Events, Research Grants • Over 45 research publications and 4 books • Dr. Godfried Williams • Lectures, tutorials / Practicals • Risk Management, • Years of Experience • Author of various research papers and books • Miss Divina Melomey • Tutorials / Practicals • PhD Candidate, Novel information systems development techniques Advanced Information Systems Development
Teaching and Assessment Methods • What to expect from the module team – Teaching • Lectures (2 hours per week) • Tutorial / Practical sessions (2 hours per week) • Provide necessary information (WebCT) • Do our best to help • What we expect from you – Assessment • Assignment (50%) • Exam (50%) • Pass both components! Advanced Information Systems Development
Recommended reading • H. Mouratidis and G. Williams,Issues in Information Systems Development, Thomson Education Inc., (ISBN 184479458x) • H. Mouratidis, P. Giorgini, Integrating Security and Software Engineering: Advances and Future Vision, Idea Group Publishing, (ISBN 1-59904-148-0) • B. Bruegge, A. H. Dutoit, Object Oriented Software Engineering: Using UML, Patterns and JAVA (International Edition), Prentice Hall, 2004 (ISBN 0-13-191179-1) • Williams Godfried, Synchronizing E-Security (International series in Advances in information security). Kluwer Academic Publishers (ISBN 1-4020-7646-0) • 'Object-Oriented Software Engineering' by T.C. Lethbridge and R. Laganiere, McGraw-Hill (2001) • ‘Using UML - Software Engineering with Objects and Components’ by P. Stevens with R. Pooley, Pearson Education (2000) • ‘Visual Modelling with Rational Rose and UML’ by T. Quattrani, Addison-Wesley Object Technology Series (2002) • ‘Software Engineering’, 6th edition, by I. Sommerville, Addison-Wesley (2000) • ‘Software Metrics’ by N.E. Fenton and S.L. Pfleeger, Thomson Learning (2000) • 'Object-Oriented Systems Analysis and Design', 2nd edn., by S. Bennett, S. McRobb and R.Farmer, McGraw-Hill (2002) Advanced Information Systems Development
Typical problems students have with this module • Underestimate the work needed • Time management • Exam • Assignment • Usually not only one correct solution! • Not everything is correct! • Not reading the material • Expect everything to be given • Do not listen their peers Advanced Information Systems Development
Assignment • There is only one coursework for the module. • Group assignment and each group consists of two members • The assignment consists of two parts: theoretical and practical (50%). • The practical part consists of the analysis and design of an information system and you must work as a group. • On the other hand, the theoretical part is an individual piece of work and each member is required to write a research paper on a specific topic. Advanced Information Systems Development
Groups • Group members come from the same tutorial class • Group members will be assigned by the tutor during the first tutorial (w/c 2nd of October). • An email to haris@uel.ac.uk with the subject “SD3043: I cannot attend the group allocation tutorial.” • Once a group is formed, members cannot leave that group without the consent of the module leader. • If any problems arise between the group members, it is their responsibility to contact the module leader as soon as possible. Any teams/members not following the above rules will receive a mark of zero. Advanced Information Systems Development
Part 1 • The goal of the practical part is to analyse and design a system according to the case study that will be assigned to your team • Requested diagrams must be generated using Rational Rose, and full use should be made of the facilities provided by the Case Tool. Advanced Information Systems Development
Part 2 • The theoretical part of the assignment is an individual piece of work, where each member of the team is required to write a research paper. • Abstract; (b) keywords; (c) introduction; (d) findings; (e) evaluation; (f) analysis; (g) conclusion; (h) references. • Each member has a different topic. Advanced Information Systems Development
Assignment’s Handout/in dates • Handout Date • 26th of September 2005 • Group Allocation and Topics • w/c 2nd of October • Hand in Date • 13th of December 2005 • Strict Deadline!!! No extensions (UEL Policy) Advanced Information Systems Development
Module Content Advanced Information Systems Development
Any questions??? Advanced Information Systems Development
Why another information systems development module? • What is difficult about developing software systems? • Large and complex systems • Requirements change constantly • Why not use an informal approach to software development? • Late projects • Costly projects Advanced Information Systems Development
Software Engineering Failures • April 10, 1990, London. A tube train left the station without its driver! • The driver had taped the button that started the train, relying on the system that prevented the train from moving when doors were opened. • He had left his train to close a door which was stuck. When the door was finally shut, the train left. Advanced Information Systems Development
And another failure! Advanced Information Systems Development
First Definition of Software Engineering • NATO conference (1968) “Software Engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines” Advanced Information Systems Development
What is Software Engineering? • I. Sommerville defines it as: “Software Engineering is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use” Advanced Information Systems Development
What is Software Engineering? Bruegge and Dutoit add that Software Engineering is: • A modelling activity • Software Engineers deal with complexity through modelling • A problem-solving activity • Constraints and deadlines • A knowledge acquisition activity • Collect data, organise it into information, formalise it into knowledge • A rationale-driven activity • Capture the context and the rationale behind the decisions Advanced Information Systems Development
Modelling • A model is an abstract representation of a system • In general particularly useful when dealing with large, complex, complicated systems • Useful also to understand systems that no longer exist (e.g. models of dinosaurs) or claim to exist (e.g. atomic models). But why models are useful in Software Engineering? Advanced Information Systems Development
Software Engineering Models • Need to understand the environment in which the system will operate • Stakeholders, users, connected systems • Understand the systems itself • Components, Communication paths • Evaluate different solutions and trade-offs • Fast versus Secure Systems are expensive to build so we model them first Advanced Information Systems Development
Problem Solving • Software Engineers have limited resources, incomplete knowledge • Search for an appropriate solution, evaluate alternatives • Engineering method steps: • Formulate the problem • Analyse the problem • Search for solutions • Decide on appropriate solution • Specify the solution Advanced Information Systems Development
Knowledge Acquisition • Do not assume that acquisition of knowledge is linear. • A new piece of information may invalidate all the knowledge you have about a system • Be mentally prepare to start from scratch • There are processes to deal with the problem • Risk-based development • Anticipate surprises • Issue-based development • Any activity can influence any other Advanced Information Systems Development
Rationale • When developing a system, it is necessary to capture and understand the context in which the design decisions are made • This extra knowledge is called the Rationale of the system • It is not trivial • Many decisions, many alternatives • Rationale usually represents a larger amount of information that the solution models Advanced Information Systems Development
Software Engineering Concepts (I) • Participants and Roles • Collaboration of many people (participants) • Client: orders/ pays the system • Developers team: Construct the system • Project Manager: plans/coordinates the project • Users: use the system • A role is a set of responsibilities in the project • Work Products • An artefact that is produced during development (e.g. a document) • A work product that must be delivered to a client is known as deliverable Advanced Information Systems Development
Software Engineering Concepts (II) • Tasks, Activities, Resources • A task is an atomic unit of work • A manager assigns a task to a developer • An activity (phase) is a set of tasks that is performed towards a specific purpose • Requirements analysis is an activity aiming to analyse the requirements of the system • Resources are assets used to accomplish work • Might include time, equipment, labour Advanced Information Systems Development
Functional/Non Functional Requirements • Requirements specify a set of features the system must have • Functional: describe what the system should do • The user must be able to access the database • Non Functional: Place constraints on how functional requirements are implemented. • performance, user-friendliness, availability, security Advanced Information Systems Development
Notations, Methods, Methodologies • Notation • Graphical or textual set of rules for representing a model. • E.g. Alphabets, numbers, UML • Method • Repeatable technique that specifies the steps involved in a specific problem • A recipe is a method for cooking a dish • Methodology • A collection of methods for solving a class of problems. • It specifies how and when each method should be used. • A cookbook Advanced Information Systems Development
Software Engineering Activities • Requirements Elicitation • Analysis • System Design • Object Design • Implementation • Testing Advanced Information Systems Development
Requirements Elicitation • Main participants • Client, developers • Aim • Define the purpose of the system • Result • Description of the system in terms of actors and use cases • Concepts • Actor: external entity that interacts with the system • E.g. users, other systems, environment • Use case: general sequences of events that describe all possible actions between an actor and the system for a given piece of functionality Advanced Information Systems Development
Analysis • Main participants • Developer – (client) • Aim • Produce a model of the system that is correct, complete, consistent, unambiguous • Result • A model that completely describes the system Advanced Information Systems Development
System Design • Participants • Developer (s) • Aim • Specify an easy-to-understand description (architecture, components) of the system to be. • Result • A complete design model of the system Advanced Information Systems Development
Object Design • Participants • Developer (s) • Aim • Define objects according to the system design • Result • A detailed object model with precise descriptions for each element Advanced Information Systems Development
Implementation • Participants • Developers • Aim • Translate design into code • Result • A complete set of source code Advanced Information Systems Development
Testing • Participants • Developers • Aim • Find as many faults as possible • Result • a complete set of test cases • Concepts • Test case is a set of inputs and expected results that exercises a component in order to detect faults Advanced Information Systems Development
Reading list • Any of the chapters of the useful textbooks that refer to software engineering Advanced Information Systems Development
Conclusions • Module Information • Description of the Module • Teaching & Assessment methods • Module Content • Overview of Software Engineering • Next Week: UML Overview Advanced Information Systems Development