SOFTWARE ENGINEERING I
TEXT: UML 2 and the Unified Process: Practical Object-Oriented Analysis & Design
Jim Arlow, Ila Neustadt
Chapter 2, (Chapter 1)
The student shall be able to:
? Describe the goals of software engineering (from class discussion).
? Define and describe the stages or workflows of the waterfall model: Requirements, Analysis, Design, Implementation, Test
? Define iteration and describe the stages of an iteration.
? Define the four classes of iterations: Inception, Elaboration, Construction, and Transition.
Introductions ? hour
What is important in s/w eng
Building a house ? hour
Differences in school vs. industry projects ? hour
Course Outline ? hour
Waterfall model 1 hour
Iterations ? hour
Review of Semester Project ? hour
Total 3.75 hours
Software Development Process Models
Waterfall Model has the following stages or workflows:
Requirements: Capture what the system shall do
? Reach agreement between the customer (or stakeholder) and development team
? Define the requirements in stakeholder language: include text and Use Case Models.
Analysis: Structure the requirements into a logical system
? Define the problem (or logic) in structured UML (or other) notation
Design: Applying a physical architecture to the logic system
? Apply computer science techniques (s/w packages, algorithms, data structures) to the logical design
Implementation: Code the software
? May include Unit Test to verify proper module construction
Test: Verify that the software executes as required
? May include Integration Test, Acceptance Test, Alpha & Beta Test, Regression Test, System Test.
? System Test: Entire system is tested. Thorough test.
? Regression Test: Re-testing existing features.
? Acceptance Test: Client is present at testing
? Alpha Test: Same as acceptance test. Customer agrees that product works as
specified, in dry run.
? Beta Test: In actual environment.
Waterfall Life Cycle Documents
Stage Document Purpose
Project Initiation Project Charter Mgmt defines project
Concept Exploration Feasibility Study Risk Mgmt, direction
System Allocation Problem Statement Initial system architecture
Requirements Requirements Spec. Agreement w. user
Prototype Agreement w. user
Final S/W Project Mgmt Plan Plan for development
Acceptance Test Plan Customer accept. of TP
Draft Users Manual
Analysis or High-Level Design Spec. High-level or logical design
High level design System Test Plan System & regression test
Interface Specification Interfaces btwn (sub)systems
Integration Test Plan Test tools for integration
Design (Low level) Design Specification Low level design
Implementation Program code
Unit Test Code Test every line of code
Integration Test Report Records results, metrics
Final Users Manual
Validation System Test Report Thorough internal test
Acceptance Test Report Formal test w. customer
Installation Final system
& Support Problem Reports Software errors
Waterfall Model – Detailed Stages
Project Initiation Process: Define the Project
? Project Charter: Management defines the goals and limits of project ? Establish project environment: project standards, communication infrastructure, reporting procedure, development methodology
Concept Exploration Process: Conduct Feasibility Study
System Allocation Process: Allocate requirements to hardware, software
Requirements Process: Produce complete Requirements Specification
? Build prototype and test with customer
? Define interface requirements and prioritize all requirements
Design Process: Represent s/w system functions in a form that may be transformed into one or more executable programs.
? Define objects, classes, attributes, operations ? Define database, interfaces, algorithms
Implementation: Code, Unit Test & Integration Test
? Unit Test: verify each unit meets its specification. ? Integration Test: Parts are put together and tested.
Verification & Validation: Perform System and Acceptance Tests
Installation Process: Distributed and install software in an operational environment
Operation & Support: Operate and maintain the system
? Corrective maintenance: correct errors not discovered previously ? Perfective maintenance: enhancing system services ? Adaptive maintenance: evolve s/w as h/w and related s/w packages evolve. ? Preventive maintenance: clean up legacy code.
Waterfall Model Advantages: Easy to schedule and manage.
? Produces relevant documentation
Waterfall Model Disadvantages: Need requirements defined in beginning of project. ? Projects rarely follow the sequential flow.
? The customer does not state all requirements explicitly. ? Project is not complete until all phases are completed. ? Developers may be delayed unnecessarily.
Unified Software Development Process
Iterative process developed by Jacobson, Booch and Rumbaugh in 1999.
? A large project may be divided into increments. Each increment includes all five
workflows. These increments are called iterations.
? Iterations are useful to limit complexity, receive feedback on previous releases, and
provide management insight into progress and risks.
? Each iteration is normally 2-6 weeks in length (although very large projects may have
? Each iteration produces a Baseline, which is the set of work products produced during
the iteration. (A Baseline may include a software release and documentation.)
Iterations can be classified as:
? Inception: Determines the requirements of the product (e.g. prototyping)
? Elaboration: Selects an architecture.
? Construction: Establishes the basic product.
? Transition: Prepares application for release (including test).
Classifications of Iterations Phases: Inception Elaboration Construction Transition Requirements Analysis Design Implementation Test
Specifies the following Analysis and Design models:
? Use-case model: Describes how product is to be used.
? Analysis model: Describes the basic classes for the application.
? Design model: Describes the relationships between classes and objects.
? Deployment model: Allocates software to computers.
? Implementation model: Describes how the code is organized.
? Test model: Consists of test components, test procedures, and test cases.
Model Driven Architecture (MDA)
UML Designs translated automatically into code using the following stages:
? Computer-Independent Model (CIM): Describes the requirements in an
? Platform-Independent Model (PIM): A high-level design lacks platform specifics.
? Platform-Specific Model (PSM): Sufficient platform information is provided (database,
programming language, data structures) to generate code
? Code: Currently 70-90% of code can be generated using MDA.