+ All Categories
Home > Documents > Software Life-cycle and Software Development...

Software Life-cycle and Software Development...

Date post: 15-May-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
41
Software Life-cycle and Software Development Processes Andrea Polini Software Project Management MSc in Computer Science University of Camerino A.Y. 2016/2017 Andrea Polini Software process models SPM – A.Y. 2016/2017 1 / 39
Transcript
Page 1: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-cycle andSoftware Development Processes

Andrea Polini

Software Project ManagementMSc in Computer Science

University of Camerino

A.Y. 2016/2017

Andrea Polini Software process models SPM – A.Y. 2016/2017 1 / 39

Page 2: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Software Life Cycle

A Life Cycle refers to the states that a given entity can assume duringthe span of its life, from conceivement to dismissal

A software development process relates to strategies to be adopted tomanage the life cycle of a software product. In particular it identifieswhen and who should do what to reach a given objective in themanagement of the life-cycle

Andrea Polini Software process models SPM – A.Y. 2016/2017 2 / 39

Page 3: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Process Activities

Software processes can be distinguished on the base of thearrangements of the diffeernt typical development activities (workflowperspective) and the artefacts that these activities produce (data-flowperspective):

Communication (to define what need to be done)Planning (risks and costs)Design (models of the systems)Construction (implementation of the system and propertiesverification)Deployment (production environment)

Andrea Polini Software process models SPM – A.Y. 2016/2017 3 / 39

Page 4: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Communication

To understand what the system should doWhich are the constraints that need to be satisfied

Generally two different kinds of specifications are derivedFor the customerFor the developer

Andrea Polini Software process models SPM – A.Y. 2016/2017 4 / 39

Page 5: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Communication...continue

Requirements engineering generally includes 4 main sub-activities:Feasibility studyRequirements elicitation and analysisRequirements specificationsRequirements validation (realistic? consistent? complete?)

Andrea Polini Software process models SPM – A.Y. 2016/2017 5 / 39

Page 6: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Design

To derive a description of:the software to be developed and its architecturethe data that need to be exchangedcomponets composing the systeminterfaces among componentsalgorithms

Andrea Polini Software process models SPM – A.Y. 2016/2017 6 / 39

Page 7: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Design

Different approaches to designAgile methodologies reduce at minimum the quantity of time spentin modelingStructured models generally derive many models using somegraphical notation (e.g. UML)

Andrea Polini Software process models SPM – A.Y. 2016/2017 7 / 39

Page 8: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Modeling...continue

Typical models developed using a structuraed approch:Object ModelSequence ModelState Transition SystemStructural ModelsData-flow models

Andrea Polini Software process models SPM – A.Y. 2016/2017 8 / 39

Page 9: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Construction

In this case the objective is to derive the code for the system underdevelopment, and according to defined models

OO ProgrammingDesign patterns

Andrea Polini Software process models SPM – A.Y. 2016/2017 9 / 39

Page 10: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

ConstructionVerification and Validation

Objective is to check that the system satisfy its requirements and theneeds of the user.Tipically used techniques:

Static (i.e. code inspection)Dynamic (i.e. Testing)

Typically testing is organized over more phases:Unit testingIntegration testingSystem testingAlpha testingBeta testing

Andrea Polini Software process models SPM – A.Y. 2016/2017 10 / 39

Page 11: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Life-Cycle

Maintenance

This refers to the organization of the activities concerning softwarealready realised to customers

Evolution kinds:CorrectiveAdaptivePerfective

Andrea Polini Software process models SPM – A.Y. 2016/2017 11 / 39

Page 12: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Software Process Models

A software development process is constituted by the activites carriedon to build a software product

No general solution! In general all the organizations develop theirown software development process.Stong interrelation with people and internal organization

Structured methods: sets of codified steps and rules which whenapplied, generate systems products (heavyweight methods)Agile methods: getting working applications delivered quickly andat less cost

Andrea Polini Software process models SPM – A.Y. 2016/2017 12 / 39

Page 13: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Software Process Models

A software development process is constituted by the activites carriedon to build a software product

No general solution! In general all the organizations develop theirown software development process.Stong interrelation with people and internal organization

Structured methods: sets of codified steps and rules which whenapplied, generate systems products (heavyweight methods)Agile methods: getting working applications delivered quickly andat less cost

Andrea Polini Software process models SPM – A.Y. 2016/2017 12 / 39

Page 14: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Software Process Models

Main models to be presented (Warning they are just models):Waterfall modelEvolutionaryIterativeFormal methods (cleanroom development, B method, ModelDriven Development)

In reality adopted process are derived as a mix of the listed models

Andrea Polini Software process models SPM – A.Y. 2016/2017 13 / 39

Page 15: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Waterfall model

Historically is considered the first process model (Royce 1970).Development phases are structured according to the main activities:

Requirements elicitation and analysisSoftware project modelingImplementation and unit testsIntegration and system testDeployment and manteinance

Andrea Polini Software process models SPM – A.Y. 2016/2017 14 / 39

Page 16: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Waterfall model

to be more realistic the various activities are repeated till at a certain point whenthey are freezed - each activity provides artefacts to the next phases derivingneeded documents, models, codebase, . . .

once the activity is ended it is not anymore considered in the future

in general it is highly desirable that phases overlap a bit to guarantee the flow ofinformation

Main conseguences:

requirements after a while are freezed, and not anymore modified

The process becomes unresponsive to request of requirements modification

Strongly documented software and document driven.

When can it be a useful option?

Andrea Polini Software process models SPM – A.Y. 2016/2017 15 / 39

Page 17: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Prototyping

The product is developed at first trying to derive a first prototype.

Successively through successive increments the system isderived till the objectives are met (Evolutionary prototyping)the prototype is trown-away and the development is restartedusing any process model among the others. (Throw-awayprototyping - do it twice)

Rationale:The prototype intends to support communication activitieseach increment includes phases in which the user is involved

Main consequences:Is difficult to throw-away a prototypesystem organization is generally not so much clear and clean asconsequence of the continuous changesmainteinance could be harder

Andrea Polini Software process models SPM – A.Y. 2016/2017 16 / 39

Page 18: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Prototyping - consequencesPlus:

+ Improved user involvement

+ Clarification of partially known requirements

+ Demonstration of the consistency and completness of a specification

+ Reduced need for documentation

+ Reduced maintenance costs

+ Feature constraint

+ Production of expected results

Drawbacks:

- Users can misunderstand the role of the prototype

- Lack of project standards

- Lack of control

- Additional expense

- Machine efficiency

- Close proximity of developers

Andrea Polini Software process models SPM – A.Y. 2016/2017 17 / 39

Page 19: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Prototype characteristics

Prototype ExtentMock-upsSimulated interactionsPartial working models: vertical/horizontal

WhatHCIFunctionality

Andrea Polini Software process models SPM – A.Y. 2016/2017 18 / 39

Page 20: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Iterative process models

Approach that tries to borrow the positive characteristics both fromevolutionary approaches, and from the waterfall models.

Based on the concept of iteration (the specification evolves togetherwith the system development):

Incremental releasesSpiral model

Andrea Polini Software process models SPM – A.Y. 2016/2017 19 / 39

Page 21: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Incremental releases

Development proceeds according to many small “waterfall” in arowFor each iteration a working system is released. The system willbe used by the customerSuccessive iterations intend to introduce novel functionalityOnce started the iteration cannot be stoppedEach iteration should target an increment corresponding tosomething “manageable in isolation” (20.000 LOC?)

Andrea Polini Software process models SPM – A.Y. 2016/2017 20 / 39

Page 22: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Incremental releasePros

Main advantages (somehow we have a prototype):Particularly effective when a small team is constitutedCustomers do not have to wait for the final release to use thesystemRick of failure is reducedThe most important funtionality are tested more

Andrea Polini Software process models SPM – A.Y. 2016/2017 21 / 39

Page 23: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Spiral model

Proposed by Boehm in 1988 it introduced a risk evaluation activity ineach iteration

It is generally represented as a plan for which each quarter includesactivities related to:

the specification of the objectives and identifications of risks forthe next iterationManage risksDevelopment and validationPlanning for a new iteration

Andrea Polini Software process models SPM – A.Y. 2016/2017 22 / 39

Page 24: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Sviluppo a Spirale

Andrea Polini Software process models SPM – A.Y. 2016/2017 23 / 39

Page 25: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Model Driven Development

Development of a software system evolve as result of continuousrefinement of software models. For each refinement step additionalinformation are provided till the level of detail if that of a selectedprogramming language.

CIM (Requirements model)PIM (High level design)PSM (System design that includes information about the platformand the deploying environment)

Andrea Polini Software process models SPM – A.Y. 2016/2017 24 / 39

Page 26: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

The Unified Process

Andrea Polini Software process models SPM – A.Y. 2016/2017 25 / 39

Page 27: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

The Unified Process

The Unified Software Development Process (Unified Process - UP) ismore than just a process and includes most of the PM activities

UP it is a “standardized” industrial process to develop softwaresystems:

Reference process in conjunction with modeling activities usingUMLIntroduced in the book “The Unified Software DevelopmentProcess”

Main characteristics:Risk drivenDriven by the Use casesArchitecturally groundedIncremental and iterative process

the UP is a generic software development process that has to beadapted to each single project:

Internal standards, Document formats, tools, databases . . .Rational Unified Process (RUP) it is a specific instance of the UP:

It is a product of the Rational Corporation (IBM)It has to be adapted but many aspects have been precisely definedAndrea Polini Software process models SPM – A.Y. 2016/2017 26 / 39

Page 28: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Historical perspective

Andrea Polini Software process models SPM – A.Y. 2016/2017 27 / 39

Page 29: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Iterations

Each iteration can be considered as a small development projectfor which the following activities are considered:

PlanningRequirementsAnalysisDesignDevelopmentTest and IntegrationValidation and Internal or External release

The final product is derived as a sequence of iterationsiterations can superimpose each othersiterations are organised in 4 different phasesiterations are “timeboxed” and they should last for a short periodridotta (2-3 weeks)

Andrea Polini Software process models SPM – A.Y. 2016/2017 28 / 39

Page 30: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Workflows for UP iterations

Each iteration can include all the activities foreseen by the workflow.Depending from the phase in which the iteration is located the differentactivities will have a different weight

Andrea Polini Software process models SPM – A.Y. 2016/2017 29 / 39

Page 31: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Baselines

Each iteration generate a “baseline”A baseline can be characterized by the set of artefacts revisedand approved that:

Provide a common baseline for further developmentCan be modified adopting a formal procedure

An increment is given by the difference between the baselineresulting from the iteration and the one resulting from the previousiteration

Andrea Polini Software process models SPM – A.Y. 2016/2017 30 / 39

Page 32: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

UP structure

Depending from the dimension of the project each phase caninclude more iteration for each phase of the projectA phase ends with a milestoneEach pahse is characterized by: objectives, focus of theworkflows, milestones

Andrea Polini Software process models SPM – A.Y. 2016/2017 31 / 39

Page 33: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Phases and workflows in UP

Andrea Polini Software process models SPM – A.Y. 2016/2017 32 / 39

Page 34: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Inception

Andrea Polini Software process models SPM – A.Y. 2016/2017 33 / 39

Page 35: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Inception

Conditions to be satisfied and artefacts:The scope of the system has been defined (document reporting themain requirements)The context of the project has been clarified (fundamentalrequirements have been explored and main stakeholders havebeen contacted – Defined Use cases 10-20 %)An architectural “vision” has been definedA first attempt to identify and assess risksFirst cost assessment and time schedule has been defined (Projectplan)A business case has been identified and advantages have beenhighlightedProject feasibility has been confirmed (possible usage ofprototypes)

Andrea Polini Software process models SPM – A.Y. 2016/2017 34 / 39

Page 36: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Elaboration

Andrea Polini Software process models SPM – A.Y. 2016/2017 35 / 39

Page 37: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Elaboration

Conditions to meet and artefacts:The baseline can be runExecutable baseline demonstrates that risks have been identifiedand partially solved (UML structural models, UML behaviouralmodels, Use cases)Risks revisionsOverall vision have been stabilized (80 % of the use cases havebeen defined)Parties have approved the project planningDetailed planning to derive realistic estemate for costs, time andrequiredSigned contract

Andrea Polini Software process models SPM – A.Y. 2016/2017 36 / 39

Page 38: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Construction

Andrea Polini Software process models SPM – A.Y. 2016/2017 37 / 39

Page 39: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Construction

Conditions to meed and artefacts:Software of high quality ready to be released (software product,UML models, test suites)Checking of estemates and motivations for divergenciesDeployment manual and release description

Andrea Polini Software process models SPM – A.Y. 2016/2017 38 / 39

Page 40: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Transition

Andrea Polini Software process models SPM – A.Y. 2016/2017 39 / 39

Page 41: Software Life-cycle and Software Development Processesdidattica.cs.unicam.it/lib/exe/fetch.php?media=did... · Planning(risks and costs) Design(models of the systems) Construction(implementation

Software Development Processes

Transition

Conditions to meet and artefacts:Beta testing has been performed, needed modifications have beenaddressed, final users are happy with the release of the softwareThe systems is actuallySupporting and evolution strategies have been defined adn agreedamong the parties

Andrea Polini Software process models SPM – A.Y. 2016/2017 40 / 39


Recommended