25
Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 2, 2008 Lecture 3: Software Process Models

Software Process Models - UNC Charlotte 2008...Software Process Models ¾Waterfall model ... • Unified process model Specialized models • Formal models • Component-based reuse

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Software System Design and ImplementationITCS/ITIS 6112/8112 001Fall 2008

Dr. Jamie PaytonDepartment of Computer ScienceUniversity of North Carolina at Charlotte

September 2, 2008

Lecture 3:Software Process Models

2

Software Process Models

A software process model is a structured set of activities required to develop a software system

Provides an abstract representation of a process Provides guidance concerning order of and transitions between different phases of a project• What should we do next?• How long should we continue doing it?

3

Software Process Models

Waterfall modelClassic life cycleSeparate and distinct process activity phases followed in linear fashion

Incremental process modelsComplete a sequence of the process activities in linear fashion to address a portion of requirementsEach iteration through the activities results in a piece of the final product

Evolutionary process modelsSpecification, design, and validation activities are interleavedEach iteration through activities develops a limited prototype to extract feedback from customer• Details of product design are delayed • Prototype often serves as primary form of design documentation

4

Comparing Process Models

5

Lecture Overview

Process ModelsWaterfallIncrementalEvolutionaryHybrids• Spiral model• Unified process model

Specialized models• Formal models• Component-based reuse models

6

Spiral Development Model

Combines features of Waterfall and EvolutionaryProvides structure of explicit phases (waterfall-like)Promotes iterative development (prototyping-like)• Initial version developed• Modified based on input from customersSupports prototyping at any point to address risks

Two defining characteristicsProcess represented as a spiral of activitiesProcess focuses on assessing and addressing risks

7

Spiral Development Model Characteristics

Process is represented as a spiral of activitiesEach loop in the spiral represents a process phaseActivities within loops are adjusted based on what is required

Risks are explicitly assessed and resolved throughout the process

Evaluation performed at conclusion of each loop• Protoyping sometimes used to address risksEvaluation at milestones• Artifacts and conditions • Customer can terminate project

8

Spiral Model

9

Spiral Model SectorsObjective setting

Identify specific objectives for the phaseRisk assessment and reduction

Assess riskIdentify activities to reduce key risks• Prototyping may be used to clarify needs or assess risks

Development and validation (a.k.a. engineering)Choose development model for the system • Can be any of the generic process models

Develop requirements/designPlanning

Customer reviews projectDesigners plan next phase of the spiral if customer approves

10

Lecture Overview

Process ModelsWaterfallIncrementalEvolutionaryHybrids• Spiral model• Unified process model

Specialized models• Formal models• Component-based reuse models

11

Rational Unified Process (RUP)

Hybrid generic process model derived from work on UML and an object-oriented process

An instantiation of the spiral modelElements of multiple generic process models• Waterfall• Evolutionary Development• CBSE

Promotes “best practices” in specification and design

12

Unified Process Principles

Best practices1. Develop software iteratively2. Manage requirements3. Use component-based architectures4. Visually model software5. Verify software quality6. Control changes to software

13

Perspectives on theUnified Process (UP)

Dynamic perspectiveDescribed in terms of phases of process over time

Static perspectiveDescribed in terms of process activities, participants, and results

Practice perspectiveDescribed in terms of good practices to be used during process

14

UP Static Perspective

Modeling elementsWorkers• WhoActivities• HowArtifacts• WhatWorkflows• When

15

UP Dynamic Perspective

Life Cycle

time

Iterative phase model

Phases terminate in a milestonePoint in time at which critical decision must be madeBased on availability of a set of artifacts in a particular state

16

The Rational Unified Process:

Static + DynamicC

ore

Sup

porti

ng

Workflows

©Rational Software

time

content

17

More Software Process Models

Several variants of these process modelsFormal development • Formal mathematical specification • Specification refinement leads to implementation• Result is provably correct

Several specialized process models Component-based software development model• The system is assembled from existing components

Aspect-oriented software development model

18

Lecture Overview

Process ModelsWaterfallIncrementalEvolutionaryHybrids• Spiral model• Unified process model

Specialized models• Formal models• Component-based reuse models

19

Formal Systems Development

Goal: improve software quality through rigor and detailed analysis of mathematicsApproach

Transform a mathematical specification through different representations to an executable programTransformations are ‘correctness-preserving’• Straightforward to show that program conforms to spec

Embodied in the ‘cleanroom’ approach to software development

No need to test for defects

20

Types of Formal Development Processes

Algebraic-basedSystem described in terms of operations and their relationships

Model-basedModel of system is constructed using mathematical constructs• E.g., sets and sequencesSystem operations are defined by how they modify system stateExamples• Z, CSP, Petri Nets

21

Formal Specification Examples

22

EvaluatingFormal Systems Development

ProblemsQuality vs. time to marketNeed for specialized skills and training to apply the techniqueDifficult to formally specify some aspects of the system • e.g, user interfaceTypically does not scaleChanges require new transformations and proofs

ApplicabilityCritical systems • Emergent properties are important

E.g., safety, reliability, security

23

Specialized Process Models:Component-based Software Engineering

Systematic reuse of existing software components Custom componentsCommercial-off-the-shelf (COTS) components

Process stagesComponent analysisRequirements modificationSystem design with reuseDevelopment and integration

24

Evaluating CBSE

Fact 16: Reuse-in-the-large (components) remains a mostly unsolved problem, even though everyone agrees it is important and desirable. – Robert GlassFact 17: Reuse-in-the-large works best in families of related systems and thus is domain-dependent. This narrows the potential applicability of reuse-in-the-large. -- Robert Glass

25

Summary

Software processes are the activities involved in producing and evolving a software system

Specification Design and ImplementationValidationEvolution

Software process models are abstractions of processesWaterfall modelIncremental process modelEvolutionary process modelHybridsSpecializations

Iterative process models help with changing requirements