CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006...
-
Upload
marcus-carson -
Category
Documents
-
view
221 -
download
1
Transcript of CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006...
CEN 4010 Second Lecture January 23, 2006
CEN 4010 CEN 4010 Introduction to Software Introduction to Software
EngineeringEngineering
Spring 2006
Instructor: Masoud Sadjadi
http://www.cs.fiu.edu/~sadjadi/Teaching
Second Lecture on Jan. 23, 2006 2CEN 4010: Introduction to Software Engineering
AcknowledgementsAcknowledgements
Dr. Peter Clarke
Dr. Betty Cheng
Dr. Bernd Bruegge
Dr. Allen Dutoit
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Second Lecture on Jan. 23, 2006 3CEN 4010: Introduction to Software Engineering
What is Software Engineering? What is Software Engineering? (1)(1)
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]
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 4CEN 4010: Introduction to Software Engineering
What is Software Engineering? What is Software Engineering? (2)(2)
“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]
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 5CEN 4010: Introduction to Software Engineering
Questions Addressed by SEQuestions Addressed by SE
How do we ensure the quality of the software that we produce?
How do we meet growing demand and still maintain budget control?
How do we avoid disastrous time delays?
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 6CEN 4010: Introduction to Software Engineering
Why apply SE to Systems?Why apply SE to Systems?
Provide an understandable process for system development.
Develop systems and software that are maintainable and easily changed.
Develop robust software and system.
Allow the process of creating computing-based systems to be repeatable and manageable.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 7CEN 4010: Introduction to Software Engineering
How can we apply SE? How can we apply SE?
Modeling
Problem-solving
Knowledge acquisition
Rationale-driven
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 8CEN 4010: Introduction to Software Engineering
ModelingModeling
“A model is an abstract representation of a system that enables us to answer questions about the system.”
Why use a model? – Systems are too large, too small, too complicated,
or too expensive, to experience firsthand.
Models allow– Visualization– Comprehension
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 9CEN 4010: Introduction to Software Engineering
Problem SolvingProblem Solving
Steps in problem solving:– Formulate the problem– Analyze the problem– Search for solutions– Decide on the appropriate solution– Specify the solution
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 10CEN 4010: Introduction to Software Engineering
Knowledge AcquisitionKnowledge Acquisition
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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 11CEN 4010: Introduction to Software Engineering
Rationale ManagementRationale Management
Assumptions made about systems change constantly.
Application domain models stabilize, solution domain models are in constant flux.– Changes to the solution models due to:
design and implementation faults new technology
Need to understand the context in which each design decision was made.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Definition
Course Outcome
How to apply?
Second Lecture on Jan. 23, 2006 12CEN 4010: Introduction to Software Engineering
Course OutcomesCourse Outcomes
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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Home Page
SE Overview
Course Outcome
Second Lecture on Jan. 23, 2006 13CEN 4010: Introduction to Software Engineering
EvaluationEvaluation
What is Software Engineering?
What questions are answered by Software Engineering?
How can we apply Software Engineering?
What should you expect from this class? What are the outcomes?
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Second Lecture on Jan. 23, 2006 14CEN 4010: Introduction to Software Engineering
AgendaAgenda
Course Introduction
Evaluation
Software Life Cycle
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Second Lecture on Jan. 23, 2006 15CEN 4010: Introduction to Software Engineering
Our IntentionOur Intention
Requirements
Software
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 16CEN 4010: Introduction to Software Engineering
Our plan of attackOur plan of attack
RequirementsAnalysis
Design
Implementation
Testing
Delivery and Installation
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 17CEN 4010: Introduction to Software Engineering
How it often goesHow it often goes
RequirementsAnalysis
D
E
L
A
YVaporware
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 18CEN 4010: Introduction to Software Engineering
Inherent ProblemsInherent Problems
Requirements are complex– The client does not know the functional requirements in
advance.
Requirements may be changing– Technology enablers introduce new possibilities to deal
with nonfunctional requirements.
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
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 19CEN 4010: Introduction to Software Engineering
Terminology Terminology (1)(1)
participants – all persons involved in a project.
e.g., developers, project manager, client, end users.
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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 20CEN 4010: Introduction to Software Engineering
Terminology Terminology (2)(2)
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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 21CEN 4010: Introduction to Software Engineering
Terminology Terminology (3)(3)
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).
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 22CEN 4010: Introduction to Software Engineering
Software ProcessesSoftware Processes
1. Specification – requirements elicitation and analysis.
2. Development – systems design, detailed design (OO design),
implementation.
3. Validation – validating system against requirements (testing).
4. Evolution – meet changing customer needs and error
correction (maintenance).
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 23CEN 4010: Introduction to Software Engineering
1. Software Specification 1. Software Specification (1)(1)
Functionality of the software and constraints (non-functional requirements) on its operation must be defined.
Involves:– 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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Validation
Evolution
Second Lecture on Jan. 23, 2006 24CEN 4010: Introduction to Software Engineering
1. Software Specification 1. Software Specification (2)(2)
Uses cases are general sequences of events that describe all possible actions between actor and the system for a given piece of functionality.
Analysis 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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Evolution
Validation
Second Lecture on Jan. 23, 2006 25CEN 4010: Introduction to Software Engineering
2. Software Development 2. Software Development (1)(1)
Producing the software that meets the specification.
System Design 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.
Output: model describing subsystem decomposition and system strategies.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Evolution
Validation
Second Lecture on Jan. 23, 2006 26CEN 4010: Introduction to Software Engineering
2. Software Development 2. Software Development (2)(2)
Object Design 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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Evolution
Validation
Second Lecture on Jan. 23, 2006 27CEN 4010: Introduction to Software Engineering
Software Development Software Development ActivitiesActivities
ProblemDomain
ImplementationDomain
Requirements Analysis What is the problem?
System Design What is the solution?
Object DesignWhat is the solution in a specific context?
ImplementationHow is the solution constructed?
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Evolution
Validation
Second Lecture on Jan. 23, 2006 28CEN 4010: Introduction to Software Engineering
3. Software Validation 3. Software Validation (1)(1)
Ensures the software does what the customer want.
The software conforms to its specification and meets the expectations of the customer.
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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Validation
Evolution
Second Lecture on Jan. 23, 2006 29CEN 4010: Introduction to Software Engineering
3. Software Validation 3. Software Validation (2)(2)
Techniques– Software inspections (static):
Analyze and check system representations (e.g., requirements documents, design diagrams, and program source code).
– Software testing (dynamic): Executing an implementation of the software with test
data and examining the outputs against expected results.
V&V process establishes the existence of defects.
Debugging is a process that locates and corrects these defects.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Evolution
Validation
Second Lecture on Jan. 23, 2006 30CEN 4010: Introduction to Software Engineering
4. Software Evolution4. Software Evolution
Software must evolve to meet the customer needs.
Software maintenance is the process of changing a system after it has been delivered.
Reasons for maintenance– To repair faults.– To adapt the software to a different operating
environment.– To add to or modify system’s functionality.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Evolution
Validation
Second Lecture on Jan. 23, 2006 31CEN 4010: Introduction to Software Engineering
Attributes of Good SoftwareAttributes of Good Software
Maintainability– Ease of changing the software to meets the
changing needs of the customer.
Dependability– Reliability, security and safety.
Efficiency– Responsiveness, processing time, and memory
usage.
Usability– Appropriate user interface and adequate
documentation.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Specification
Development
Evolution
Validation
Second Lecture on Jan. 23, 2006 32CEN 4010: Introduction to Software Engineering
Software Life CycleSoftware Life Cycle
Software life cycle modeling – Attempt to deal with complexity and change.
Software life cycle– Set of activities and their relationships to each other
to support the development of a software system .
Software development methodology– A collection of techniques for building models,
which are applied across the software lifecycle.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 33CEN 4010: Introduction to Software Engineering
Software Life CycleSoftware Life Cycle
Software construction goes through a progression of states
DevelopmentDevelopment Post- Development
Pre- Development
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Conception ChildhoodChildhood Adulthood Retirement
Second Lecture on Jan. 23, 2006 34CEN 4010: Introduction to Software Engineering
Software Life Cycle ModelsSoftware Life Cycle Models
Waterfall model and its problems– Pure Waterfall Model– V-Model
Iterative process models– Boehm’s Spiral Model– Unified Process Model
Entity-based models– Issue-based Development Model – Concurrent Development
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 35CEN 4010: Introduction to Software Engineering
Waterfall Model Waterfall Model (1)(1)
The waterfall model– First described by Royce in 1970
There seem to be at least as many versions as there are authorities - perhaps more
Requirements Definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 36CEN 4010: Introduction to Software Engineering
Waterfall Model Waterfall Model (2)(2)
One or more documents are produced after each phase and “signed off”.
Points to note:– “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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 37CEN 4010: Introduction to Software Engineering
From Waterfall to V ModelFrom Waterfall to V Model
Horizontal lines denote the information flow between activities at the same abstraction level.
Requirements Specification
System design
Detailed Design
Implementation
Unit Test
System and integration test
Acceptancetest
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 38CEN 4010: Introduction to Software Engineering
V ModelV Model
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
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 39CEN 4010: Introduction to Software Engineering
Spiral Model Spiral Model (1)(1)
Basic Idea – develop initial implementation, expose it to user,
and refine it until an adequate system is produced.
Two types:– Exploratory– Throw-away prototyping
Advantages– model used when problem is not clearly defined.
Disadvantages– Process not visible, systems are poorly
constructed, may require special tools and techniques.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 40CEN 4010: Introduction to Software Engineering
Spiral Model Spiral Model (2)(2)
Requirementsplan
Concept ofoperation
Riskanalysis
Prototype1
Prototype2
Prototype3
Riskanalysis
Riskanalysis
S/wReqs.
Reqs.Validation
DevelopmentPlan
IntegrationPlan
DesignValidation
AcceptanceTest
Sys.ProductDesign
Integration &Test
Unit Test
Code
DetailedDesign
Design objectives,alternatives, and constraints
Plan next phase
Evaluate alternatives,identify and resolve risks
Develop and verifynext level product
Not shown in detail
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 41CEN 4010: Introduction to Software Engineering
Spiral Model Spiral Model (3)(3)
Tries to accommodate infrequent change during development.
Each round of the spiral involves:– Determine objectives– Specify constraints– Generate alternatives– Identify risks– Resolve risks– Develop and verify next level product– Plan
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 42CEN 4010: Introduction to Software Engineering
Incremental Development Incremental Development (1)(1)
Mills et al. 1980
Define outlinerequirements
Assign requirementsto increments
Design systemarchitecture
Develop systemincrement
Validateincrement
Integrateincrement
Validatesystem
System incomplete
Finalsystem
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 43CEN 4010: Introduction to Software Engineering
Incremental Development Incremental Development (2)(2)
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
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 44CEN 4010: Introduction to Software Engineering
Incremental Development Incremental Development (3)(3)
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.
Disadvantages:– May be difficult to map meaningful functionality into
small increments.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 45CEN 4010: Introduction to Software Engineering
Extreme ProgrammingExtreme Programming
The incremental approach has evolved to ‘extreme programming’ (Beck 1988).
Extreme programming:– Development and delivery of very small increments.– Customer involvement in the process.– Constant code improvement.– Egoless programming
Programs are regarded as group property!
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 46CEN 4010: Introduction to Software Engineering
Unified Software Development Unified Software Development Process Process (1)(1)
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:– Inception– Elaboration– Construction– Transition
Each phase consists of a number of iterations.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 47CEN 4010: Introduction to Software Engineering
Unified Software Development Unified Software Development Process Process (2)(2)
Inception ends with – commitment from the project sponsor to go ahead.
Elaboration ends with– 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.
Construction ends with – a beta-release system.
Transition – is the process of introducing the system to it users.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 48CEN 4010: Introduction to Software Engineering
Unified Software Development Unified Software Development Process Process (2)(2)
Analysis model
Use case model
Design model
Deployment model
Implementation model
Test model
specified by
realized by
distributed by
verified by
implemented by
Requirementscaptured as a set of use cases.
System Development
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 49CEN 4010: Introduction to Software Engineering
Unified Software Development Unified Software Development Process Process (3)(3)
Deployment model– physical communication links between hardware
items.
– relationships between physical machines and processes.
The models in the Unified Process are traceable – A model element can be traced to at least one
element in an associated model.
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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 50CEN 4010: Introduction to Software Engineering
Issue-Based DevelopmentIssue-Based Development
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!).
The set of closed issues is the basis of the system model
I1:Open
I2:Closed I3:Closed
A.I1:Open
A.I2:Open
SD.I1:Closed
SD.I2:Closed
SD.I3:Closed
Planning Requirements Analysis System Design
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Waterfall
Iterative
Entity-Based
Second Lecture on Jan. 23, 2006 51CEN 4010: Introduction to Software Engineering
What to Choose?What to Choose?
PT = Project Time, MTBC = Mean Time Between Change
Change rarely occurs (MTBC >> PT):– Waterfall Model– All issues in one phase are closed before proceeding to the
next phase 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 “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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 52CEN 4010: Introduction to Software Engineering
IEEE 1074IEEE 1074
Standard for Developing Life Cycle Processes
Describes the set of activities and processes that are mandatory for the development and maintenance of software.
Process is a set of activities that is performed towards a specific purpose.
Processes are grouped into higher abstractions called process groups.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 53CEN 4010: Introduction to Software Engineering
Software ProcessesSoftware Processes
Process Group Processes
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
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 54CEN 4010: Introduction to Software Engineering
Capability Maturity Model Capability Maturity Model (CMM)(CMM)
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.
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Second Lecture on Jan. 23, 2006 55CEN 4010: Introduction to Software Engineering
State of the Software Industry State of the Software Industry in 1995in 1995
Maturity Level Frequency
1. Initial 70%
2. Repeatable 15%
3. Defined < 10%
4. Managed < 5%
5. Optimizing < 1%
Source: Royce, Project Management, P. 364
Evaluation
OvervieOverview:w:Introduction
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity