Top Banner
Software process
36

Software process

Jan 13, 2016

Download

Documents

Brant

Software process. Topics covered. Review the previous lecture Software Process RUP- Rational Unified Process. Review. Abstract representation of a process Framework of a process and hide the details of a specific activity Software process models Waterfall model - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software process

Software process

Page 2: Software process

Topics covered Review the previous lecture

Software Process

RUP- Rational Unified Process

Page 3: Software process

Review Abstract representation of a process

Framework of a process and hide the details of a specific activity

Software process models Waterfall model Evolutionary development

Exploratory developmentThro-away prototyping

Component-based engineeringBased on COTS

Process iterationIncremental delivery Spiral development

Page 4: Software process

Process activitiesThere are four basic process activities:

Software specificationSoftware design and implementationSoftware validationSoftware evolution

Page 5: Software process

Software specification or requirement Engineering

The process of establishing what services are required and the constraints on the system’s operation and development.

This process leads to the production of a requirements document( specification of the system).

Requirements engineering processFeasibility study;Requirements elicitation and analysis;Requirements specification;Requirements validation.

Page 6: Software process

The requirements engineering process

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

Page 7: Software process

Feasibility studyis not used to solve the problem but is use to

determine weather the proposed system will be cost effect if it can be developed with the existing budgetary

The result from this study is to inform the decision of whether or not to go ahead within the constrainThe report should be cheep and quick

Page 8: Software process

Requirements elicitation and analysis

Discover the requirements fromExisting system Discussion with userTask analysis

You may useSystem relative model Prototypes

Page 9: Software process

Requirements specificationIn this process is about translating information

gathered during the system analysis into into two documents 1. user or customer document includes abstract

statements of the system requirements

2. Software developer documents includes more detailed description of the functionality to be provided.

Page 10: Software process

Requirements validationIn this process, you are going to check if the

requirements areRealConsistentComplete

All these process is going to continue during definition and specification.

Page 11: Software process

Software design and implementation

The process of converting the system specification into an executable system.

Software designDescription of the structure of the software to be

implemented, the data which is part of the system, interface between system component, and algorithm that realises the specification; For example: library system

the design will be through of a number of versions. For each time you are going to add details and constrains with backtracking to correct the error in the earlier design.

The design process may involve developing several models of the system at different levels of abstraction.

Page 12: Software process

Software design and implementation

ImplementationTranslate this structure into an executable

program;

The activities of design and implementation are closely related and may be interleaved.

Page 13: Software process

The software design process

Page 14: Software process

Design process activities1. Input to design process

The software interface with other software system

OS, DB, other application program For example: weather system ( real time system)- input

comes from outside DB and application program to feed weather system to retrieve suitable and correct output display

Requirement specification is a description of the functionality the software that must provide

Page 15: Software process

Design process activities2. Design activities

1. Architectural design Identify the overall structure includes

1. Sub-system if you used incremental development

2. Their relationship

3. How they are distributed

2. Interface design Interfaces between components if you use sub-system. The interface

specification should must unambiguous to implement them correctly.

3. Component design Take each component and design how it will operate; simple statement of

expected functionality to be implemented

4. Data structure design design database structure and how these are to be presented

It can be existing database or create a new database

Page 16: Software process

Design process activitiesOutput from design process

Set of design outputsIn OO approach, the output mostly be diagrams and

in may cases automatically generate codeIn agile method, the output may be represented in

the code of program.

Possible modelsObject model;Sequence model;State transition model;Structural model;Data-flow model.

Page 17: Software process

Programming and debugging

Programming is translating a design into a program There in no general programing process that is usually

followed You may use software development tools (CASE TOOLS) to

generate a skeleton program from a design. You may start from well understood components then

move less-understood components or versa vice. Code the interfaces between these components

debugging is removing errors from that program.

Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process.

Page 18: Software process

Programming and debugging

Defect testing and debugging are different processes.

Testing establishes the existence of defects.

Debugging is concerned with locating and correcting these defects.

Testing may involve tracing the program code manually required new test cases to localize the problem; Or

You may use debugging tools to trace the code and find where are the errors.

Page 19: Software process

The debugging process

Locateerror

Designerror repair

Repairerror

Re-testprogram

Page 20: Software process

Software validationVerification and validation (V & V) is intended to

show that a system conforms to its specification and meets the requirements of the system customer. It is check list processing at each stage of the

software process

System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.

Page 21: Software process

The testing process

Componenttesting

Systemtesting

Acceptancetesting

Page 22: Software process

Testing stagesComponent or unit testing

Individual components are tested independently; Components may be functions or objects or

coherent groupings of these entities.

System testingTesting of the system as a whole. Testing of

emergent properties is particularly important.

Acceptance testingTesting with customer data to check that the

system meets the customer’s needs.

Page 23: Software process

If an incremental approach to development is used, each increment should be tested as it is developed,

Alpha vs. beta testAcceptance testing is sometimes called alpha

testing. Custom systems are developed for a single client.

When a system is to be marketed as a software product, a testing process called beta testing Beta testing involves delivering a system to a number

of potential customers who agree to use that system

Page 24: Software process

Software evolutionSoftware is inherently flexible and can change.

As requirements change through changing business circumstances, the software that supports the business must also evolve and change.

Although there has been a demarcation(limit) between development and evolution (maintenance), this is increasingly irrelevant as fewer and fewer systems are completely new.

Page 25: Software process

System evolution

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

Newsystem

Existingsystems

Page 26: Software process

The Rational Unified Process

A modern process model derived from the work on the UML -an object oriented modeling language - and associated process.Takes the advantages of three generic processesGood practice in specification and requirementsSupport prototyping and incremental delivery

Normally described from 3 perspectivesA dynamic perspective that shows phases over

time;A static perspective that shows process activities;A practice perspective that suggests good practice

of software development.

Page 27: Software process

1-RUP phase model(dynamic view)

Phase iteration

Inception Elaboration Construction Transition

Page 28: Software process

RUP phasesIdentify four discrete phases in software processes (

related to business point of view )

Phases are Inception

Establish the business case for the system.You should identify all external entities (people and

systems) that will interact with the system and define these interactions.

ElaborationDevelop an understanding of the problem domain and

the system.establish an architectural framework for the system,

develop the project plan and identify key project risks

Design use case, an architectural description and development design.

Page 29: Software process

RUP phasesConstruction

System design, programming and testing. Developed in parallel an integrated system sequence, state machine, and class diagram

are design software system and their documentation to be

ready to deliver to the user.

Transition Deploy the system in its operating environment.

move the system from software development community to user community

you should have a documented software system that is working correctly in its operational environment.

Page 30: Software process

2- Static view RUP focuses on the activities that take place during the

development process

It is called workflows in the RUP description.

There are six core process workflows identified in the process and three core supporting workflows.

Page 31: Software process

Static workflowsWorkflow Description

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

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

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

Implementation The components in the system are implemented and structured intoimplementation sub-systems. Automatic code generation from designmodels helps accelerate this process.

Test Testing is an iterative process that is carried out in conjunction withimplementation. System testing follows the completion of theimplementation.

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

Configuration andchange management

This supporting workflow managed changes to the system (seeChapter 29).

Project management This supporting workflow manages the system development (seeChapter 5).

Environment This workflow is concerned with making appropriate software toolsavailable to the software development team.

Page 32: Software process

3- RUP good practiceDevelop software iteratively based on customer

priority

Manage requirements by keep tracking of user changes to their requirements.

Use component-based architectures; system architecture based on component

Visually model software; use graphical UML models to present static and dynamic views of the software.

Page 33: Software process

RUP good practiceVerify software quality; Ensure that the software

meets the organizational quality standards.

Control changes to software; Manage changes to the software using a change management system and configuration management procedures and tools

Page 34: Software process

Key pointsSoftware processes are the activities involved in

producing and evolving a software system.

Software process models are abstract representations of these processes.

General activities are specification, design and implementation, validation and evolution.

Generic process models describe the organisation of software processes. Examples include the waterfall model, evolutionary development and component-based software engineering.

Iterative process models describe the software process as a cycle of activities.

Page 35: Software process

Key points Requirements engineering is the process of developing a

software specification.

Design and implementation processes transform the specification to an executable program.

Validation involves checking that the system meets to its specification and user needs.

Evolution is concerned with modifying the system after it is in use.

The Rational Unified Process is a generic process model that separates activities from phases.

CASE technology supports software process activities.

Page 36: Software process