lecture 2 (software processes)

27
Introduction to Software Engineering (CSC291) Instructor Humaira Afzal Lecturer [email protected] u.pk

Upload: education-front

Post on 29-Nov-2014

109 views

Category:

Engineering


6 download

DESCRIPTION

Learn about software processes.

TRANSCRIPT

Page 1: Lecture 2 (Software Processes)

Introduction to Software Engineering(CSC291)

InstructorHumaira Afzal

[email protected]

Page 2: Lecture 2 (Software Processes)

What is a Process … ?•When we provide a service or create a product we

always follow a sequence of steps to accomplish a set of tasks

▫You do not usually bake a cake before all the ingredients are mixed together

•We can think of a series of activities as a process

2

Page 3: Lecture 2 (Software Processes)

What is a Process … ?•Any process has the following characteristics▫It prescribes all of the major activities▫It uses resources and produces intermediate and final

products▫It may include sub-processes and has entry and exit

criteria▫The activities are organized in a sequence▫Constraints or controls may apply to activities

(budget constraints, availability of resources , etc.)

3

Page 4: Lecture 2 (Software Processes)

The software process• A structured set of activities that leads to the development of

a software product. From scratch By extending and modifying existing systems

• Basic Process activities(common to all software Processes)▫Specification▫Design▫Validation▫Evolution

Page 5: Lecture 2 (Software Processes)

Software specification/requirement engineering

• The process of understanding and defining

- what services are required from the system

- Identify the constraints on the system’s operation and development

- Critical Stage of the software process

- The “what” of the software life cycle

Page 6: Lecture 2 (Software Processes)

Software specification(contd..)•Four main phases in requirements engineering

process▫Feasibility study▫Requirements elicitation and analysis▫Requirements specification▫Requirements validation

Page 7: Lecture 2 (Software Processes)

1.Feasibility study :- an estimate is made of whether the identified user needs may be satisfied using current software and hardware technologies.

- whether the proposed system will be cost effective

- the decision of whether to go ahead with a more detailed analysis.

Software specification(contd..)

Page 8: Lecture 2 (Software Processes)

Software specification(contd..)

Requirements elicitation and analysis:

This is the process of deriving the system requirements through - observation of existing systems

- discussions with potential users- task analysis, etc.

This may involve the development of one or more different system models and prototypes. These help analyst

understand the system to be specified.

Page 9: Lecture 2 (Software Processes)

Requirements specification: is the activity of translating the information gathered during the analysis activity into a document that defines a set of requirements.

Two types of requirements : • User requirements• System requirements

Requirements validation : This activity checks the requirements for realism, consistency

and completeness.

Software specification(contd..)

Page 10: Lecture 2 (Software Processes)

The requirements engineering process

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

Page 11: Lecture 2 (Software Processes)

Note : Of course the activities in the requirements process are not simply carried out in a strict sequence. Therefore, the activities of analysis, definition and specification are interleaved.

The requirements engineering process

Page 12: Lecture 2 (Software Processes)

Software design and implementation•The process of converting the system specification

into an executable system•Software design▫Description of the structure of software to be

implemented• Implementation▫Translate this structure into an executable program

•The activities of design and implementation are closely related and may be inter-leaved

•The “how” of the software life cycle

Page 13: Lecture 2 (Software Processes)

Design process activities

•Architectural design•Abstract specification• Interface design•Component design•Data structure design•Algorithm design

Page 14: Lecture 2 (Software Processes)

1.Architectural design The sub-systems making up the system and their relationships are identified and documented.

2.Abstract specification For each sub-system, an abstract specification of its services and the constraints under which it must operate is produced.

The software design process

Page 15: Lecture 2 (Software Processes)

The software design process

• Interface design For each sub-system, its interface with other sub-system is designed and documented. This interface specification must be unambiguous as it allows the sub-system to be used without knowledge of the sub-system operation.

1.Component design Services are allocated to different components and the interfaces of these components are designed.

Page 16: Lecture 2 (Software Processes)

The software design process

1.Data Structure design The data structures used in the system implementation are designed in detail and specified.

2.Algorithm design The algorithms used to provide services are designed in detail and specified.

Page 17: Lecture 2 (Software Processes)

The software design process

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Requirementsspecification

Design activities

Design products

Page 18: Lecture 2 (Software Processes)

In many software development projects, software design is still an ad hoc process. Starting from a set of requirements, usually in natural language, an informal design is prepared.

A more methodical approach to software design is proposed by “structured methods” which are sets of notations and guidelines for software design.

The software design process

Page 19: Lecture 2 (Software Processes)

Design methods•Systematic approaches to developing a software

design•The design is usually documented as a set of

graphical models•Possible models▫Data-flow model▫Entity-relation-attribute model▫Structural model▫Object models

Page 20: Lecture 2 (Software Processes)

Programming and debugging•Translating a design into a program and removing

errors from that program•Programming is a personal activity - there is no

generic programming process•Programmers carry out some program testing to

discover faults in the program and remove these faults in the debugging process

Page 21: Lecture 2 (Software Processes)

The debugging process

Locateerror

Designerror repair

Repairerror

Re-testprogram

Page 22: Lecture 2 (Software Processes)

Software validation•Verification and validation is intended to show that a

system conforms to its specification and meets the requirements of the system customer

• Involves checking and review processes and system testing

•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 23: Lecture 2 (Software Processes)

The testing process

Sub-systemtesting

Moduletesting

Unittesting

Systemtesting

Acceptancetesting

Componenttesting

Integration testing Usertesting

Page 24: Lecture 2 (Software Processes)

Testing stages• Unit testing

▫ Individual components are tested• Module testing

▫ Related collections of dependent components are tested• Sub-system testing

▫ Modules are integrated into sub-systems and tested. The focus here should be on interface testing

• System testing▫ Testing of the system as a whole. Testing of emergent properties

• Acceptance testing▫ Testing with customer data to check that it is acceptable

Page 25: Lecture 2 (Software Processes)

Testing phasesRequirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand tess

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

Service Acceptancetest

Systemintegration test

Sub-systemintegration test

Page 26: Lecture 2 (Software Processes)

Software evolution•Software 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 between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new

Page 27: Lecture 2 (Software Processes)

System evolution

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

Newsystem

Existingsystems