Presentation is loading. Please wait.

Presentation is loading. Please wait.

Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.

Similar presentations


Presentation on theme: "Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering."— Presentation transcript:

1 Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering

2 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 Software Engineering  Software systems are complex  Impossible to understand by a single person  Many projects are never finished: "vaporware"  The problem is arbitrary complexity  1968 Definition:  Software Engineering means the construction of quality software with a limited budget and a given deadline  Our definition:  Software Engineering means the construction of quality software with a limited budget and a given deadline in the context of constant change  Emphasis is on both, on software and on engineering

3 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 Course format  A Single Semester Course  Lectures: Theoretical foundations and background  Project: Learn how to apply them in practice  Lectures and Project work are interleaved  Everybody will participate in a software project

4 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 Objectives of this course  Acquire technical knowledge  Understand difference between program and software product  Be able to reconstruct the analysis and design of an existing software system  Be able to design and implement a subsystem that will be part of a larger system  Acquire managerial knowledge  produce a high quality software system within budget & time  while dealing with complexity and change

5 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 Emphasis is on team work  Participate in collaborative design  Work as a member of a project team, assuming various roles  Create and follow a project and test plan  Create the full range of documents associated with a software product  Complete a project on time

6 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 How can we accomplish this?  Course Projects  Internet Ordering System  Internet Sales Tracking System  You will organize into groups of 3  Each group will be assigned a project  Details will be revealed once the groups are formed  Course project will be done in 3 stages  Requirements elicitation  Analysis and design  Implementation

7 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7 Assumptions and Requirements for this Class  Assumption:  You are proficient in a programming language (Java preferred), but have no experience in analysis or design of a system  You have access to a Web Browser  Course Homepage: http://www.cs.fiu.edu/~ege/cen4010/  Requirements:  You have taken required courses (Programming III, Data Structures)  or  You have practical experience with maintaining or developing a large software system

8 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 Textbooks  Textbook  Bernd Bruegge and Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Prentice Hall, 2000.  Optional Readings  Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns, Addison-Wesley, 1996, ISBN 0-201-63361-2  Ivar Jacobson, M. Christerson, P. Jonsson, G. Övergaard, "Object- Oriented Software Engineering", Addison Wesley, 1992  Grady Booch, "Object-Oriented Design with Applications", Benjamin Cummings, 1991.  James Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen, Object-Oriented Modeling and Design, Prentice Hall, 1991

9 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Ground Rules  Attendance:  Attendance and class participation is required  Every project team member is responsible for the whole project  Grading:  Midterm exam 30%  Final exam30%  Group project40%  Requirements document30%  Design document40%  System implementation30%

10 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10 Project  Each team must:  Submit a bi-weekly activity log  Submit a Requirement Analysis Document  Submit an Object Design Document  Demonstrate the entire running program  Each of the above also require a 15 minutes in class presentation  Every team member is responsible for the entire project

11 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11 What is Software Engineering  Software Engineering is the construction of quality software with a limited budget and a given deadline  How about change?  Software Engineering is the construction of quality software with a limited budget and a given deadline in the context of constant change  Emphasis is on both, on software and on engineering

12 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12 Why Software Engineering  Software Systems are complex:  Impossible to understand by a single person  Many projects are never finished  The problem being solved is arbitrarily complex  Software Systems are subject to constant change

13 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13 What are the activities?  Modeling  An abstract representation of a system that allows the software engineer to answer questions about the system  Models allow visualizing and understanding systems that are  too large  too complex  too expensive for direct experimentation  or do not even exist in the real world  Problem Solving  Find a solution with incomplete knowledge and limited resources  Formulate the problem  Analyze the problem  Search for solutions  Select an appropriate solution  Specify the solution

14 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14 What are the activities?  Knowledge Acquisition  software Engineer must acquire problem domain knowledge required to develop the target system  is nonlinear  Rationale Management  Justification of decisions  issues that were addressed  alternatives that were considered  decisions that were made to resolve the issues  the criteria that were used to guide decisions  the underlying debates

15 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15 Concepts  A project’s purpose is to develop a software system  A project is composed of a number of activities  An activity is composed of a number of tasks  A task consumes resources and produces a work product  work product:  a system  a Model  a document  resource:  time  equipment  personnel

16 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16 Concepts -- UML Participant Equipment Time System Document Model Task * Activity * consumes Resources * WorkProduct is produced by * Project

17 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17 Development Activities  Requirement Elicitation  Analysis  System Design  Object Design  Implementation

18 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18 Requirement Elicitation  Define the purpose of the system  Describe the system in terms of actors and use cases  Actors:  External entities that interact with the system  Use Cases:  Sequences of events that describe all possible actions between actors and the system

19 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 19 Analysis  Produce a model of the system that is:  Correct  Complete  Consistent  Unambiguous  Realistic  Verifiable  Transform use cases into object model

20 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 20 System Design  Define the design goals  Decompose the system into smaller subsystems  Select strategies for building the system

21 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 21 Object Design  Precisely describe object and system interfaces  Select off-the shelf components  Restructure the object model to attain design goals:  Extensibility  Understandability  Performance optimization  Result:  Detailed object model

22 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 22 Implementation  Translate the object model into source code  Implement the attributes and methods of each object  Integrate all the objects

23 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 23 Managerial Aspects  Communication  Rationale Management  Testing  Discover as many faults as possible and repair them before the delivery  Software Configuration Management  Monitor and control changes  Software Project Management  Budgeting  Hiring  Tracking progress, etc.  Software life cycle modeling

24 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 24 Summary  Find the class website  Read Chapter 1  Form your teams


Download ppt "Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering."

Similar presentations


Ads by Google