CEN 4010 Introduction to Software Engineering Spring 2005

  • Slides: 63
Download presentation
CEN 4010 Introduction to Software Engineering Spring 2005 Instructor: Masoud Sadjadi http: //www. cs.

CEN 4010 Introduction to Software Engineering Spring 2005 Instructor: Masoud Sadjadi http: //www. cs. fiu. edu/~sadjadi/Classes/CEN-4010/ CEN 4010 First Lecture January 10, 2005

Acknowledgements Overview: Introduction Evaluation Dr. Peter Clarke Dr. Betty Cheng Dr. Bernd Bruegge Dr.

Acknowledgements Overview: Introduction Evaluation Dr. Peter Clarke Dr. Betty Cheng Dr. Bernd Bruegge Dr. Allen Dutoit SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 2

Agenda Overview: Introduction Course Introduction Initial Evaluation Software Life Cycle Evaluation SW Life Cycle

Agenda Overview: Introduction Course Introduction Initial Evaluation Software Life Cycle Evaluation SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 3

Course Home Page Overview: Introduction Web Page – http: //www. cs. fiu. edu/~sadjadi/Classes/CEN-4010/ Home

Course Home Page Overview: Introduction Web Page – http: //www. cs. fiu. edu/~sadjadi/Classes/CEN-4010/ Home Page SE Overview Course Outcome Evaluation General Information: – Office Hours: ECS 212 C, M/W 17: 00 – 18: 00 or by appointment. SW Life Cycle Important Links: – Course Syllabus – Project – Class Schedule, Reading Assignments, and Lecture Notes Class Notices – Please read your textbook before coming to class. – Pay attention to the reading assignments. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 4

Prerequisite and References Overview: Introduction – COP 3530 - Data Structures – Familiarity with

Prerequisite and References Overview: Introduction – COP 3530 - Data Structures – Familiarity with Home Page Syllabus Project SE Overview Course Outcome Evaluation SW Life Cycle Prerequisite At least two higher level languages The foundations of computing Required Text – Bernd Bruegge and Allen H Dutoit, “Object-Oriented Software Engineering: Using UML, Patterns, and Java. ” Other reading material – Class notes. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 5

Grading Overview: Introduction Grading Policy – – – Home Page Syllabus Project SE Overview

Grading Overview: Introduction Grading Policy – – – Home Page Syllabus Project SE Overview Course Outcome Class Attendance and Participation: 10%. Homework: 20%. Term Project: 30%. Mid-Term Exam: 20%. Final Exam: 20%. Evaluation SW Life Cycle Grading Standard – The grading scale is: A: 90 | A-: 87 | B+: 84 | B: 80 | B -: 77 | C+: 74 | C: 70 | C-: 65 | D+: 60 | D: 55 | D-: 50. – Note that a C- is not a C. Attendance – Attendance will be taken during each class meeting. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 6

Tentative Course Schedule Overview: Introduction Home Page Syllabus Project SE Overview Course Outcome Evaluation

Tentative Course Schedule Overview: Introduction Home Page Syllabus Project SE Overview Course Outcome Evaluation Refer to the Course Syllabus SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 7

Project Objective and Grading Overview: Introduction Objective – The primary objective of the projects

Project Objective and Grading Overview: Introduction Objective – The primary objective of the projects is to give you practice in applying the phases of the software development process to a "real" software project. Home Page Syllabus Project SE Overview Course Outcome Evaluation SW Life Cycle Grading Scheme – The grade for the projects is based on three deliverables and class presentations, representing 30% of the final grade. – Each student in a project team will be evaluated separately and may receive a different grade. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 8

Deliverables and Presentation Overview: Deliverable 1 Introduction Requirements Analysis Document (RAD) RAD Template (5%)

Deliverables and Presentation Overview: Deliverable 1 Introduction Requirements Analysis Document (RAD) RAD Template (5%) Home Page Syllabus Project Presentation 1 Deliverable 2 SE Overview A brief description of SRD. Details will follow. (5%) 5 mins presentation for each group member. Design Document (DD) SDD Template ODD Template (5%) Course Outcome Evaluation Presentation 2 A brief description of DD. Details will follow. (5%) 5 mins presentation for each group member. Deliverable 3 Software documentation consisting of: Requirements Analysis Document, Design Document, Implementation i. e. code design, and Test Cases User's Guide A CD with all project material. SW Life Cycle Presentation 3 2/14 3/28 Due at the beginning of the class. 3/28 (5%) 4/18 Due at the beginning of the class. A brief description of the software system (5%) requirements, design, implementation and test cases. 5 mins presentation for each group member. CEN 4010: Introduction to Software Engineering 2/14 Due at the beginning of the class. 4/18 First Lecture on Jan. 10, 2005 9

Project and Team Selection Overview: Introduction Selection of Project: – Each group is responsible

Project and Team Selection Overview: Introduction Selection of Project: – Each group is responsible for selecting a project. – Before starting work on the project you must come and see me during my office hours so that we can decide on the scope of your project. – Project selection should be finalized by the end of Week 2 (Wednesday, Jan. 19). This means you have to come and see me before Jan. 19. – If you have difficulty in selecting a project I will assist you. Home Page Syllabus Project SE Overview Course Outcome Evaluation SW Life Cycle Project Teams – Each team shall consist of 5 to 6 students. – Let us decide on team members. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 10

What is Software Engineering? (1) Overview: Introduction Systematic approach for developing software “Methods and

What is Software Engineering? (1) Overview: Introduction Systematic approach for developing software “Methods and techniques to develop and maintain quality software to solve problems. ” [Pfleeger, 1990] “Study of the principles and methodologies for developing and maintaining software systems. ” [Zelkowitz, 1978] “Software engineering is an engineering discipline which is concerned with all aspects of software production. ” [Sommerville] Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 11

What is Software Engineering? (2) Overview: Introduction “Practical application of scientific knowledge in the

What is Software Engineering? (2) Overview: Introduction “Practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them. ” [Boehm, 1976] “Deals with establishment of sound engineering principles and methods in order to economically obtain software that is reliable and works on real machines. ” [Bauer, 1972] Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 12

Questions Addressed by SE Overview: Introduction How do we ensure the quality of the

Questions Addressed by SE Overview: Introduction How do we ensure the quality of the software that we produce? How do we meet growing demand still maintain budget control? How do we avoid disastrous time delays? Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 13

Why apply SE to Systems? Overview: Introduction Provide an understandable process for system development.

Why apply SE to Systems? Overview: Introduction Provide an understandable process for system development. Develop systems and software that are maintainable and easily changed. Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle Develop robust software and system. Allow the process of creating computingbased systems to be repeatable and manageable. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 14

How can we apply SE? Overview: Introduction Modeling Problem-solving Knowledge acquisition Rationale-driven Home Page

How can we apply SE? Overview: Introduction Modeling Problem-solving Knowledge acquisition Rationale-driven Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 15

Modeling Overview: Introduction “A model is an abstract representation of a system that enables

Modeling Overview: Introduction “A model is an abstract representation of a system that enables us to answer questions about the system. ” Why use a model? Home Page SE Overview Definition How to apply? Course Outcome – Systems are too large, too small, too complicated, or too expensive, to experience firsthand. Evaluation SW Life Cycle Models allow – Visualization – Comprehension CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 16

Problem Solving Overview: Introduction Home Page SE Overview Definition How to apply? Course Outcome

Problem Solving Overview: Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle Steps in problem solving: – Formulate the problem – Analyze the problem – Search for solutions – Decide on the appropriate solution – Specify the solution CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 17

Knowledge Acquisition Overview: Introduction Domain specific knowledge. New knowledge can affect the development process.

Knowledge Acquisition Overview: Introduction Domain specific knowledge. New knowledge can affect the development process. Knowledge acquisition is nonlinear – affects several of the software development models. Risk assessment is important. Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 18

Rationale Management Overview: Introduction Assumptions made about systems change constantly. Application domain models stabilize,

Rationale Management Overview: Introduction Assumptions made about systems change constantly. Application domain models stabilize, solution domain models are in constant flux. Home Page SE Overview Definition How to apply? Course Outcome – Changes to the solution models due to: Evaluation SW Life Cycle design and implementation faults new technology Need to understand the context in which each design decision was made. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 19

Course Outcomes Overview: Introduction Home Page SE Overview Course Outcome Evaluation SW Life Cycle

Course Outcomes Overview: Introduction Home Page SE Overview Course Outcome Evaluation SW Life Cycle Familiarity with the Software Development Life Cycle. Mastering the techniques to gather and specify the requirements of a medium-size software system using UML. Mastering the techniques to design and implement a medium-size software system. Familiarity with software testing techniques. Familiarity with software documentation. Familiarity with working in a small software development team. Familiarity with system walkthroughs. Familiarity with maintaining software and managing change. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 20

Initial Evaluation Overview: Introduction Background Survey – To get familiar with your interests in

Initial Evaluation Overview: Introduction Background Survey – To get familiar with your interests in the course. – To understand what topics should be covered. – To get familiar with your research interests. Evaluation SW Life Cycle Initial Assessment – – No grading value. To assess the initial level of your knowledge. To teach the course at an acceptable level. To help you fulfill the course requirements. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 21

Agenda Overview: Introduction Course Introduction Initial Evaluation Software Life Cycle Evaluation SW Life Cycle

Agenda Overview: Introduction Course Introduction Initial Evaluation Software Life Cycle Evaluation SW Life Cycle CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 22

Our Intention Overview: Introduction Evaluation SW Life Cycle Motivation Requirements Terminology SW Processes SW

Our Intention Overview: Introduction Evaluation SW Life Cycle Motivation Requirements Terminology SW Processes SW Life Cycle Cap. Maturity Software CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 23

Our plan of attack Overview: Introduction Evaluation SW Life Cycle Requirements Analysis Motivation Terminology

Our plan of attack Overview: Introduction Evaluation SW Life Cycle Requirements Analysis Motivation Terminology SW Processes Design SW Life Cycle Cap. Maturity Implementation Testing Delivery and Installation CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 24

How it often goes Overview: Introduction Evaluation SW Life Cycle Requirements Analysis Motivation Terminology

How it often goes Overview: Introduction Evaluation SW Life Cycle Requirements Analysis Motivation Terminology SW Processes SW Life Cycle Cap. Maturity D E L A Y CEN 4010: Introduction to Software Engineering Vaporware First Lecture on Jan. 10, 2005 25

Inherent Problems Overview: Introduction Requirements are complex – The client does not know the

Inherent Problems Overview: Introduction Requirements are complex – The client does not know the functional requirements in advance. Evaluation SW Life Cycle Motivation – Technology enablers introduce new possibilities to deal with nonfunctional requirements. Terminology SW Processes SW Life Cycle Cap. Maturity Requirements may be changing Frequent changes are difficult to manage – Identifying milestones and cost estimation are difficult. There is more than one software system – Backward compatible with existing systems Let’s view these problems as the nonfunctional requirements for a system that supports software development! – This leads us to software life cycle modeling CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 26

Terminology (1) Overview: Introduction Evaluation SW Life Cycle e. g. , developers, project manager,

Terminology (1) Overview: Introduction Evaluation SW Life Cycle e. g. , developers, project manager, client, end users. Motivation Terminology SW Processes SW Life Cycle Cap. Maturity participants – all persons involved in a project. role – associated with a set of tasks assigned to a participant. system – underlying reality. model – abstraction of the reality. work product – an artifact produced during development. deliverable – work product for client. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 27

Terminology (2) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life

Terminology (2) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity activity – a set of tasks performed toward a specific purpose. milestone – end-point of a software process activity. task – an atomic unit of work that can be managed and that consumes resources. goal – high-level principle used to guide the project. functional requirement – an area of functionality that the system must have. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 28

Terminology (3) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life

Terminology (3) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity nonfunctional requirement – a constraint on the system. notation – is a graphical or textual set of rules representing a model (e. g. , UML) method – a repeatable technique for solving a specific problem e. g. sorting algorithm methodology – a collection of methods for solving a class of problems (e. g. , Unified Software Development Process). CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 29

Software Processes Overview: Introduction 1. Specification – requirements elicitation and analysis. Evaluation SW Life

Software Processes Overview: Introduction 1. Specification – requirements elicitation and analysis. Evaluation SW Life Cycle Motivation Terminology 2. Development – systems design, detailed design (OO design), implementation. SW Processes SW Life Cycle Cap. Maturity 3. Validation – validating system against requirements (testing). 4. Evolution – meet changing customer needs and error correction (maintenance). CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 30

1. Software Specification (1) Overview: Introduction Functionality of the software and constraints (non-functional requirements)

1. Software Specification (1) Overview: Introduction Functionality of the software and constraints (non-functional requirements) on its operation must be defined. Involves: Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity – Requirements elicitation – The client and developers define the purpose of the system. – Output is a description of the system in terms of actors and uses cases. – Actors include roles such as end users and other computers the system needs. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 31

1. Software Specification (2) Overview: Introduction Evaluation SW Life Cycle Uses cases are general

1. Software Specification (2) Overview: Introduction Evaluation SW Life Cycle Uses cases are general sequences of events that describe all possible actions between actor and the system for a given piece of functionality. Motivation Terminology SW Processes Specification Analysis Development Validation Evolution SW Life Cycle Cap. Maturity Objective: produce a model of the system that is correct, complete, consistent, unambiguous, realistic, and verifiable. Developers transform the use cases into an object model that completely describes the system. Model is checked for ambiguities and inconsistencies. Output: Object model annotated with attributes, operations, and associations. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 32

2. Software Development (1) Overview: Introduction Evaluation SW Life Cycle Producing the software that

2. Software Development (1) Overview: Introduction Evaluation SW Life Cycle Producing the software that meets the specification. Motivation Terminology SW Processes System Design Specification Development Validation Evolution SW Life Cycle Goals of the project are defined. System decomposed into smaller subsystems (architectural model). Strategies to build system identified – HW and SW platform, data management, control flow, and security. Cap. Maturity Output: model describing subsystem decomposition and system strategies. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 33

2. Software Development (2) Overview: Introduction Evaluation Object Design SW Life Cycle Motivation Terminology

2. Software Development (2) Overview: Introduction Evaluation Object Design SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity Bridges the gap between analysis model and the strategies identified in the system design. Includes: – Describing object and subsystem interfaces – Selecting off–the-shelf components – Restructure object model to attain design goals e. g. , extensibility, understandability, and required performance. Output: detailed object model annotated with constraints and supporting documentation. Implementation Translation of the object model into source code. No general process followed. There are tools to assists the programmer such as CASE tools. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 34

Software Development Activities Overview: Introduction Evaluation Requirements Analysis What is the problem? System Design

Software Development Activities Overview: Introduction Evaluation Requirements Analysis What is the problem? System Design What is the solution? SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Object Design What is the solution in a specific context? Implementation How is the solution constructed? Problem Domain Implementation Domain Cap. Maturity CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 35

3. Software Validation (1) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology Ensures the

3. Software Validation (1) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology Ensures the software does what the customer want. The software conforms to its specification and meets the expectations of the customer. SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity Validation: ‘Are we building the right product? ’ Ensures the software meets the expectations of the customer. Verification: ‘Are we building the product right? ’ Ensures the software conforms to the specification. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 36

3. Software Validation (2) Overview: Introduction Techniques – Software inspections (static): Evaluation SW Life

3. Software Validation (2) Overview: Introduction Techniques – Software inspections (static): Evaluation SW Life Cycle Motivation Terminology Analyze and check system representations (e. g. , requirements documents, design diagrams, and program source code). – Software testing (dynamic): SW Processes Specification Development Validation Executing an implementation of the software with test data and examining the outputs against expected results. Evolution SW Life Cycle Cap. Maturity V&V process establishes the existence of defects. Debugging is a process that locates and corrects these defects. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 37

4. Software Evolution Overview: Introduction Evaluation SW Life Cycle Software must evolve to meet

4. Software Evolution Overview: Introduction Evaluation SW Life Cycle Software must evolve to meet the customer needs. Motivation Terminology SW Processes Software maintenance is the process of changing a system after it has been delivered. Reasons for maintenance Specification Development Validation Evolution SW Life Cycle Cap. Maturity – To repair faults. – To adapt the software to a different operating environment. – To add to or modify system’s functionality. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 38

Attributes of Good Software Overview: Introduction Maintainability – Ease of changing the software to

Attributes of Good Software Overview: Introduction Maintainability – Ease of changing the software to meets the changing needs of the customer. Evaluation SW Life Cycle Motivation Terminology SW Processes Dependability – Reliability, security and safety. Specification Development Validation Evolution Efficiency – Responsiveness, processing time, and memory usage. SW Life Cycle Cap. Maturity Usability – Appropriate user interface and adequate documentation. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 39

Software Life Cycle Overview: Introduction Software life cycle modeling – Attempt to deal with

Software Life Cycle Overview: Introduction Software life cycle modeling – Attempt to deal with complexity and change. Evaluation SW Life Cycle Motivation Terminology Software life cycle – Set of activities and their relationships to each other to support the development of a software system. SW Processes SW Life Cycle Cap. Maturity Software development methodology – A collection of techniques for building models, which are applied across the software lifecycle. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 40

Software Life Cycle Overview: Introduction Evaluation Software construction goes through a progression of states

Software Life Cycle Overview: Introduction Evaluation Software construction goes through a progression of states SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Conception Childhood Adulthood Retirement Cap. Maturity Pre. Development CEN 4010: Introduction to Software Engineering Post. Development First Lecture on Jan. 10, 2005 41

Software Life Cycle Models Overview: Introduction Waterfall model and its problems – Pure Waterfall

Software Life Cycle Models Overview: Introduction Waterfall model and its problems – Pure Waterfall Model – V-Model Evaluation SW Life Cycle Motivation Terminology SW Processes Iterative process models – Boehm’s Spiral Model – Unified Process Model SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity Entity-based models – Issue-based Development Model – Concurrent Development CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 42

Waterfall Model (1) Overview: Introduction – First described by Royce in 1970 Evaluation SW

Waterfall Model (1) Overview: Introduction – First described by Royce in 1970 Evaluation SW Life Cycle Motivation Terminology The waterfall model There seem to be at least as many versions as there authorities - perhaps more SW Processes SW Life Cycle Requirements Definition Waterfall Iterative System and software design Entity-Based Cap. Maturity Implementation and unit testing Integration and system testing Operation and maintenance CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 43

Waterfall Model (2) Overview: Introduction One or more documents are produced after each phase

Waterfall Model (2) Overview: Introduction One or more documents are produced after each phase and “signed off”. Points to note: Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity – “Water does not flow up”. it is difficult to change artifact produced in the previous phase. – This model should be used only when the requirements are well understood. – Reflects engineering practice. – Simple management model. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 44

From Waterfall to V Model Overview: Introduction Evaluation Horizontal lines denote the information flow

From Waterfall to V Model Overview: Introduction Evaluation Horizontal lines denote the information flow between activities at the same abstraction level. SW Life Cycle Motivation Terminology Requirements Specification Acceptance test SW Processes SW Life Cycle Waterfall System and integration test System design Iterative Entity-Based Cap. Maturity Detailed Design Unit Test Implementation CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 45

V Model Overview: Introduction Similar to pure waterfall model but makes explicit the dependency

V Model Overview: Introduction Similar to pure waterfall model but makes explicit the dependency between development and verification activities. The left half of the V represents development and the right half system validation. Note the requirements specification includes requirements elicitation and analysis. Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 46

Spiral Model (1) Overview: Introduction Basic Idea – develop initial implementation, expose it to

Spiral Model (1) Overview: Introduction Basic Idea – develop initial implementation, expose it to user, and refine it until an adequate system is produced. Evaluation SW Life Cycle Motivation Terminology SW Processes Two types: – Exploratory – Throw-away prototyping SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity Advantages – model used when problem is not clearly defined. Disadvantages – Process not visible, systems are poorly constructed, may require special tools and techniques. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 47

Spiral Model (2) Overview: Introduction Design objectives, alternatives, and constraints Evaluate alternatives, identify and

Spiral Model (2) Overview: Introduction Design objectives, alternatives, and constraints Evaluate alternatives, identify and resolve risks Evaluation Risk analysis SW Life Cycle Risk analysis Motivation Terminology Risk analysis SW Processes Prototype 3 Prototype 2 1 SW Life Cycle Waterfall Requirements Concept of plan operation S/w Reqs. Iterative Entity-Based Development Plan Cap. Maturity Integration Plan Design Validation Acceptance Test Plan next phase CEN 4010: Introduction to Software Engineering Detailed Design Sys. Product Design Reqs. Validation Not shown in detail Code Unit Test Integration & Test Develop and verify next level product First Lecture on Jan. 10, 2005 48

Spiral Model (3) Overview: Introduction Tries to accommodate infrequent change during development. Each round

Spiral Model (3) Overview: Introduction Tries to accommodate infrequent change during development. Each round of the spiral involves: Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity – – – – Determine objectives Specify constraints Generate alternatives Identify risks Resolve risks Develop and verify next level product Plan CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 49

Incremental Development (1) Overview: Introduction Mills et al. 1980 Evaluation SW Life Cycle Motivation

Incremental Development (1) Overview: Introduction Mills et al. 1980 Evaluation SW Life Cycle Motivation Terminology SW Processes Define outline requirements Assign requirements to increments Design system architecture SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity Develop system increment Validate increment Integrate increment Validate system Final system System incomplete CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 50

Incremental Development (2) Overview: Introduction Software specification, design and implementation is broken down into

Incremental Development (2) Overview: Introduction Software specification, design and implementation is broken down into a series of increments which are developed in turn. Gives customers some opportunities to delay decisions on the detailed requirements of the system. Services are identified and a priority allocated. Each increment provides a subset of the system’s functionality. Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 51

Incremental Development (3) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW

Incremental Development (3) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Advantages: – Customers do not have to wait for the entire system. – Customers gain experience using early increments of the system. – Lowers the risk of overall project failure. – Most important system services receives the most testing. Iterative Entity-Based Cap. Maturity Disadvantages: – May be difficult to map meaningful functionality into small increments. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 52

Extreme Programming Overview: Introduction The incremental approach has evolved to ‘extreme programming’ (Beck 1988).

Extreme Programming Overview: Introduction The incremental approach has evolved to ‘extreme programming’ (Beck 1988). Extreme programming: Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity – – Development and delivery of very small increments. Customer involvement in the process. Constant code improvement. Egoless programming Programs are regarded as group property! CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 53

Unified Software Development Process (1) Overview: Introduction Similar to Boehm’s spiral model. A project

Unified Software Development Process (1) Overview: Introduction Similar to Boehm’s spiral model. A project consists of several cycles, each ends with the delivery of a product to the customer. Each cycle consists of four phases: Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative – – Entity-Based Cap. Maturity Inception Elaboration Construction Transition Each phase consists of a number of iterations. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 54

Unified Software Development Process (2) Overview: Introduction Inception ends with – commitment from the

Unified Software Development Process (2) Overview: Introduction Inception ends with – commitment from the project sponsor to go ahead. Evaluation SW Life Cycle Motivation Terminology Elaboration ends with – – SW Processes SW Life Cycle Waterfall Iterative basic architecture of the system in place, a plan for construction agreed, all significant risks identified, and major risks understood enough not to be too worried. Entity-Based Cap. Maturity Construction ends with – a beta-release system. Transition – is the process of introducing the system to it users. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 55

Unified Software Development Process (2) Overview: System Development Introduction Evaluation SW Life Cycle specified

Unified Software Development Process (2) Overview: System Development Introduction Evaluation SW Life Cycle specified by Motivation Analysis model Terminology realized by SW Processes Design model SW Life Cycle Waterfall Iterative Use case model Entity-Based distributed by Deployment model implemented by Cap. Maturity Requirements captured as a set of use cases. verified by Implementation model Test model CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 56

Unified Software Development Process (3) Overview: Introduction – physical communication links between hardware items.

Unified Software Development Process (3) Overview: Introduction – physical communication links between hardware items. Evaluation SW Life Cycle Motivation – relationships between physical machines and processes. Terminology SW Processes SW Life Cycle Deployment model Waterfall Iterative The models in the Unified Process are traceable – A model element can be traced to at least one element in an associated model. Entity-Based Cap. Maturity Transition between models are seamless – we can tell in a foreseeable way how to get from an element in one model to one/more elements in an associated model. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 57

Issue-Based Development Overview: Introduction A system is described as a collection of issues –

Issue-Based Development Overview: Introduction A system is described as a collection of issues – Issues are either closed or open. – Closed issues have a resolution. – Closed issues can be reopened (Iteration!). Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall The set of closed issues is the basis of the system model Iterative Entity-Based I 1: Open Cap. Maturity SD. I 1: Closed A. I 1: Open SD. I 3: Closed I 2: Closed I 3: Closed Planning A. I 2: Open SD. I 2: Closed Requirements Analysis CEN 4010: Introduction to Software Engineering System Design First Lecture on Jan. 10, 2005 58

What to Choose? Overview: Introduction PT = Project Time, MTBC = Mean Time Between

What to Choose? Overview: Introduction PT = Project Time, MTBC = Mean Time Between Change rarely occurs (MTBC >> PT): Evaluation SW Life Cycle – Waterfall Model – All issues in one phase are closed before proceeding to the next phase Motivation Terminology SW Processes SW Life Cycle Change occurs sometimes (MTBC = PT): – Boehm’s Spiral Model – Change occurring during a phase might lead to an iteration of a previous phase or cancellation of the project Cap. Maturity “Change is constant” (MTBC << PT) – Issue-based Development (Concurrent Development Model) – Phases are never finished, they all run in parallel Decision when to close an issue is up to management. The set of closed issues form the basis for the system to be developed. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 59

IEEE 1074 Overview: Introduction Standard for Developing Life Cycle Processes Describes the set of

IEEE 1074 Overview: Introduction Standard for Developing Life Cycle Processes Describes the set of activities and processes that are mandatory for the development and maintenance of software. Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity Process is a set of activities that is performed towards a specific purpose. Processes are grouped into higher abstractions called process groups. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 60

Software Processes Overview: Introduction Evaluation SW Life Cycle Motivation Process Group Project Management Project

Software Processes Overview: Introduction Evaluation SW Life Cycle Motivation Process Group Project Management Project Initiation Project Management and Control Software Quality Management Pre-development Concept Exploration System Allocation Development Requirements Design Implementation Post-development Installation Operation and Support Maintenance Retirement Integral Processes Verification and Validation Software Configuration Management Document Development Training Terminology SW Processes SW Life Cycle Processes Cap. Maturity CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 61

Capability Maturity Model (CMM) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes

Capability Maturity Model (CMM) Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity 1. Initial Level – ad hoc, no feedback from user, black box. 2. Repeatable Level – Each project has a well-defined sw life cycle model. 3. Defined Level – A document sw life cycle model for all managerial and technical activities across the org. exists. 4. Managed Level – Metrics for activities and deliverables are defined. 5. Optimizing Level – Process allows feedback of information to change process itself. CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 62

State of the Software Industry in 1995 Overview: Introduction Evaluation Maturity Level Frequency SW

State of the Software Industry in 1995 Overview: Introduction Evaluation Maturity Level Frequency SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity 1. Initial 2. Repeatable 3. Defined 4. Managed 5. Optimizing 70% 15% < 10% < 5% < 1% Source: Royce, Project Management, P. 364 CEN 4010: Introduction to Software Engineering First Lecture on Jan. 10, 2005 63