• No results found

4-SDLC Models

N/A
N/A
Protected

Academic year: 2020

Share "4-SDLC Models"

Copied!
47
0
0

Loading.... (view fulltext now)

Full text

(1)
(2)
(3)

Software process models

Build & Fix modelThe waterfall model

Incremental development

Reuse-oriented software engineeringRapid Prototyping

Rapid Application Development (RAD)Spiral Model

Synchronize and Stabilize Model RUP

(4)
(5)
(6)
(7)

The waterfall model

System services, constraints and goals are established

allocates the requirements to either hardware or software, identify and describe the fundamental software system abstractions and their relationships

software design is realized as a set of programs or program units

The individual program units or programs

are integrated and tested as a

complete systemThe system is installed and put into practical use.

(8)

Waterfall model problems

 The main drawback of the waterfall model is the

difficulty of accommodating change after the process is underway. In principle, a phase has to be complete before moving onto the next phase.

 Therefore, this model is only appropriate when the

requirements are well-understood and changes will be fairly limited during the design process.

 Few business systems have stable requirements.

 The waterfall model is mostly used for large systems

engineering projects where a system is developed at several sites.

 In those circumstances, the plan-driven nature of the

(9)

Incremental delivery

 Rather than deliver the system as a single delivery, the

development and delivery is broken down into increments with each increment delivering part of the required functionality.

 User requirements are prioritised and the highest

priority requirements are included in early increments.

 Once the development of an increment is started, the

(10)

Incremental development and delivery

 Incremental development

Develop the system in increments and evaluate each

increment before proceeding to the development of the next increment;

 Normal approach used in agile methods;  Evaluation done by user/customer proxy.

 Incremental delivery

 Deploy an increment for use by end-users;

 More realistic evaluation about practical use of software;  Difficult to implement for replacement systems as

(11)
(12)

Incremental delivery advantages

Customer value can be delivered with

each increment so system functionality

is available earlier.

Early increments act as a prototype to

help elicit requirements for later

increments.

Lower risk of overall project failure.

The highest priority system services

(13)

Incremental delivery problems

 Most systems require a set of basic facilities that

are used by different parts of the system.

 As requirements are not defined in detail until an

increment is to be implemented, it can be hard to identify common facilities that are needed by all increments.

 The essence of iterative processes is that the

specification is developed in conjunction with the software.

 However, this conflicts with the procurement

model of many organizations, where the complete system specification is part of the system

(14)
(15)

Incremental development benefits

 The cost of accommodating changing customer requirements is

reduced.

 The amount of analysis and documentation that has to be

redone is much less than is required with the waterfall model.

 It is easier to get customer feedback on the development work

that has been done.

 Customers can comment on demonstrations of the software

and see how much has been implemented.

 More rapid delivery and deployment of useful software to the

customer is possible.

 Customers are able to use and gain value from the software

(16)

Incremental development problems

 The process is not visible.

 Managers need regular deliverables to measure

progress. If systems are developed quickly, it is not cost-effective to produce documents that reflect every version of the system.

 System structure tends to degrade as new

increments are added.

 Unless time and money is spent on refactoring to

(17)

Reuse-oriented software engineering

 Based on systematic reuse where systems are

integrated from existing components or COTS (Commercial-off-the-shelf) systems. e.g. Word processor

 Process stages

 Component analysis;

 Requirements modification;  System design with reuse;  Development and integration.

 Reuse is now the standard approach for building

(18)

Reuse-oriented software engineering

Component analysis: a search is made for components to

implement that specification. Usually, there is no exact match

Requirements modification the requirements are analyzed using

information about the components that have been discovered. They are then modified

System design with reuse: Framework of the system is designed or an existing framework is reused by take into account the components that are reused. if reusable components not available, some new software may have to be designed

Development and integration Software that cannot be externally procured is

developed, and the components and COTS systems are integrated to create the

(19)

Reuse-oriented SE: Pros and

cons

 Reduce the amount of software to be developed and

so reducing cost and risks

 It usually also leads to faster delivery of the software.  Requirements compromises are inevitable and this

may lead to a system that does not meet the real needs of users

 Some control over the system evolution is lost as

(20)

Software prototyping

 A prototype is an initial version of a system used to

demonstrate concepts and try out design options.

 A prototype can be used in:

 The requirements engineering process to help with

requirements elicitation and validation;

 In design processes to explore options and

(21)

Benefits of prototyping

Improved system usability.

A closer match to users’ real needs.

Improved design quality

Improved maintainability.

(22)

The process of prototype development

Objectives: (1) To develop a system to prototype the user interface, (2) To develop a system to validate functional system requirements etc

Functionality: Relax non-functional requirements such as response

time and memory utilization, standards of reliability and program quality

Evaluation: Provision must be made for user training;

prototype objectives should be used to derive a plan for evaluation;

(23)

Prototype development

May be based on rapid prototyping

languages or tools

May involve leaving out functionality

Prototype should focus on areas of the

product that are not well-understood;

Error checking and recovery may not be

included in the prototype;

Focus on functional rather than

(24)

Throw-away prototypes

Prototypes should be discarded after

development as they are not a good

basis for a production system:

It may be impossible to tune the system to

meet non-functional requirements;

Prototypes are normally undocumented;

The prototype structure is usually

degraded through rapid change;

The prototype probably will not meet

(25)
(26)

Boehm’s spiral model

Process is represented as a spiral rather than

as a sequence of activities with backtracking.

Each loop in the spiral represents a phase in

the process.

No fixed phases such as specification or

design - loops in the spiral are chosen

depending on what is required.

Risks

are explicitly assessed and resolved

(27)
(28)

Spiral model sectors

 Objective setting

 Specific objectives for the phase are identified.

Project risks are identified

 Risk assessment and reduction

 Risks are assessed and activities put in place to

reduce the key risks. For example, if there is a risk that the requirements are inappropriate, a

prototype system may be developed.

 Development and validation

 A development model for the system is chosen

which can be any of the generic models.

 Planning

 The project is reviewed and the next phase of the

(29)

Spiral model usage

Spiral model has been very influential in

helping people think about iteration in

software processes and introducing the

risk-driven approach to development.

In practice, however, the model is rarely

(30)

Synchronize and Stabilize Model

(31)

RUP

(32)

The Rational Unified Process

 A modern generic process derived from the work on

the UML and associated process.

 Brings together aspects of the 3 generic process

models discussed previously.

 Normally described from 3 perspectives

 A dynamic perspective that shows phases over

time;

 A static perspective that shows process activities;  A practive perspective that suggests good

(33)
(34)

RUP phases

 Inception

 Establish the business case for the system.

 Identify people and systems interacting with this system  Expected budget, revenue

 Elaboration

 Develop an understanding of the problem domain,

requirement model, key project risks, project plan, development plan and the system architecture

 Construction

 System design, programming and testing, documentation.

 Transition

(35)

RUP iteration

In-phase iteration

Each phase is iterative with results

developed incrementally.

Cross-phase iteration

As shown by the loop in the RUP model,

(36)

Static workflows in the Rational Unified

Process

Workflow Description

Business modelling The business processes are modelled using business use cases.

Requirements Actors who interact with the system are identified and use cases are developed to model the system requirements.

Analysis and design A design model is created and documented using architectural models, component models, and sequence models.

(37)

Static workflows in the Rational

Unified Process

Workflow Description

Testing Testing is an iterative process that is carried out in conjunction with implementation. System testing follows the completion of the implementation.

Deployment A product release is created, distributed to users and installed in their workplace.

Configuration and

change management This supporting workflow managed changes to the system . Project management This supporting workflow manages the system development . Environment This workflow is concerned with making appropriate software

(38)

RUP good practice

 Develop software iteratively

 Plan increments based on customer priorities and

deliver highest priority increments first.

 Manage requirements

 Explicitly document customer requirements and

keep track of changes to these requirements.

 Use component-based architectures

 Organize the system architecture as a set of

(39)

RUP good practice

 Visually model software

 Use graphical UML models to present static and

dynamic views of the software.

 Verify software quality

 Ensure that the software meet’s organizational

quality standards.

 Control changes to software

 Manage software changes using a change

(40)

Extreme programming

 Extreme Programming (XP) takes an ‘extreme’

approach to iterative development.

 New versions may be built several times per day;  Increments are delivered to customers every 2

weeks;

 All tests must be run for every build and the build

(41)

XP and agile principles

Incremental development

 supported through small, frequent system

releases.

People not process

 Pair programming, collective ownership and a

process that avoids long working hours.

Customer involvement means full-time customer

engagement with the team.

Change

 supported through regular system releases.

Maintaining simplicity

(42)
(43)

Extreme programming practices (a)

Principle or practice Description

Incremental planning Requirements are recorded on story cards and the stories to be included in a release are determined by the time available and their relative priority. The developers break these stories into development ‘Tasks’.

Small releases The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release.

Test-first development An automated unit test framework is used to write tests for a new piece of functionality before that functionality itself is implemented.

(44)

Extreme programming practices (b)

Continuous integration As soon as the work on a task is complete, it is integrated into the whole system. After any such integration, all the unit tests in the system must pass.

(45)
(46)
(47)

References

Related documents

(Early investigation of the attack indicated that it was also a good example of the decentralized Islamist terrorist threat, being the work of Muslim radicals with only

JASRI’s WWW Editorial Board makes policy decisions on SPring-8 Web publishing and JASRI’s Public Relations Division manages SPring-8 Homepage.. WWW Editorial Board is under

See U.N. In addition, the UN has cautioned that even if creators of scientific inventions are to enjoy material benefits, this does not give such individuals the

The objective of our study was to determine the effects of feeding different concentrations of fat and hemicellulose on methane production and energy utilization in lactating Jersey

As the librarian offers the library visitor context, past story models offer the user of a video database a point at which they can begin to learn about the content.. In the

Keywords: optic nerve, retinal ganglion cells, melanopsin, circadian rhythms, Parkinson’s disease, Alzheimer’s disease, Huntington’s

This study aimed at assessing the attitudes of Palestinian health-care professionals toward the most perceived factors influencing the adherence to the CPG for Diabetes Mellitus

• Cost of specialty drugs in private plans in Canada as a % of total drug cost.. (+