se-intro + models

58
1 Introduction to Software Engineering

Upload: akshitjain95

Post on 05-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 1/58

1

Introduction to Software

Engineering

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 2/58

2

Outline•Nature of software projects

•Engineering approaches

•Software process•A process step

•Characteristics of a good process

•Waterfall model for development

•Other models

•Project planning

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 3/58

3

Software Systems•Ubiquitous, used in variety of applications

– Business, engineering, scientificapplications

•Simple to complex, internal to public,single function to enterprise-wide,one location to distributed, batch orreal-time, informational to mission-critical, ….

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 4/58

4

Challenge in large projects•Developing large/complex softwareapplication is very challenging

– Effort intensive

– High cost

– Long development time

– Changing needs for users

– High risk of failure, user acceptance,performance, maintainability, …

•Quite different from one-timeprograms where author and user are

same !

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 5/58

5

Successful software system•Software development projects havenot always been successful

•When do we consider a softwareapplication successful?

– Development completed

– It is useful

– It is usable, and– It is used

•Cost-effectiveness, maintainabilityimplied

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 6/58

6

Reasons for failure•Schedule slippage

•Cost over-runs

•Does not solve user’s problem•Poor quality of software

•Poor maintainability

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 7/587

Reasons for failure ….•Ad hoc software development resultsin such problems

– No planning of development work (e.g. nomilestones defined)

– Deliverables to user not identified

– Poor understanding of user requirements

– No control or review– Technical incompetence of developers

– Poor understanding of cost and effort byboth developer and user

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 8/588

Engineering: other disciplines•Large projects common andsuccessfully done

– Buildings bridges, dams– Power plants

– Aircrafts, missiles, …

•“engineering” a solution:

– To design, develop (build, fabricate) anartifact that meets specificationsefficiently, cost-effectively and ensuringquality

– Using scientific principles.

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 9/589

Engineering …•Requires well-defined approach :repeatable, predictable

•Large projects requires managing theproject itself 

– Manage people, money (cost),equipment, schedule

– Scale makes big difference: compare

building a hut, 2–storeyed house, or 50-storeyed apartment building

•Quality extremely important : relatesto failures, efficiency, usability, ….

– People willing to pay for quality !

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 10/5810

Large Projects

•Involve different types of people

– Large building : architect, civil engineer,

electrical engineer, workers (masons,carpenters), ….

•Continuous supervision for qualityassurance

– On site supervisors (check cement/steelquality, ensuring proper mix of sand &cement, ….)

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 11/5811

Large projects …•Many deliverables : architectureplan, model, structure diagrams,

electrical cabling layouts, …•Standards, regulations, conventionsneed to be followed

•Steps, milestones defined and

reviews are carried out; progress isvisible

•Project planning and project

management essential

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 12/5812

Software projects

•Software is different from otherproducts

– Cost of production concentrated indevelopment

– Maintenance consists of makingcorrections and enhancing or adding

functions

– Progress in development is difficult tomeasure

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 13/5813

Apply Engineering Approach•Hence planning and control evenmore important in softwaredevelopment engineering

approach:– Attempt to estimate cost/effort

– Plan and schedule work 

– Involve user in defining requirements

– Identify stages in development– Define clear milestones so that progress

can be measured

– Schedule reviews both for control and

quality– Define deliverables

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 14/58

14

 Job of Software Developer is

difficult•Dealing with users

– Ill-defined requirements

– Concern with ease-of-use and responsetime

•Dealing with technical people

– Concerned with coding, databases, file

structures, etc.•Dealing with management

– Concerned with return on theirinvestment

– Cost-benefit analysis

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 15/58

15

Software Process•Process consists of activities/steps tobe carried out in a particular order

•Software process deals with bothtechnical and management issues

•Consists of different types of process

•Process for software development:

produces software as end-result– multiple such processes may exist

– a project follows a particular process

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 16/58

16

Process Types …•Process for managing the project

– defines project planning and control

– effort estimations made and scheduleprepared

– resources are provided

– feedback taken for quality assurance

– monitoring done.

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 17/58

17

Process Types …•Process for change and configurationmgmt.

– Resolving requests for changes

– Defining versions, their compositions

– Release control

•Process for managing the above

processes themselves– Improving the processes based on newtechniques, tools, etc.

– Standardizations and certifications (ISO,

CMM)

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 18/58

18

Multiple processes• A large software development

company may have multipledevelopment processesA. For client-server based conventional

applications (sales processing, payroll)

B. For enterprise-level (ERP) projects based onpackages and customization

C. For web-based e-commerce type

D. For data-warehousing/decision-support type

• The company may have manyprojects in each category

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 19/58

19

Step in a Process•Each step has a well-definedobjective

•Requires people with specific skills•Takes specific inputs and produceswell-defined outputs

•Step defines when it may begin

(entry criteria) and when it ends (exitcriteria)

•Uses specific techniques, tools,

guidelines, conventions.

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 20/58

20

Process step …

•Step must be executed as per projectplan that gives duration, effort,resources, constraints, etc.

•It must produce information formanagement so that corrective actionscan be taken

– E.g., adding more resources

•A step ends in a review (V&V)

– Verification: check consistency of outputswith inputs (of the step)

– Validation: check consistency with user

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 21/58

21

Process step

Review

V&V

actions tobe carried

out

(entry criteria) (exit criteria) 

inputs

ProjectControl info

info for

management

outputs

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 22/58

22

Characteristics of a Good

Process•Should be precisely defined – noambiguity about what is to be done,when, how, etc.

•It must be predictable – can berepeated in other projects withconfidence about its outcome

– Predictable with respect to effort, cost:Project A: Web-based library applications done

by 3 persons in 4 months

⇒ another project B (guest house bookings),

similar in complexity should also take about 12person months.

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 23/58

23

A Good Process …

– Predictable for quality: with respect tonumber and type of defects,performance, …

•Predictable process is said to be‘under statistical control’ , whereactual values are close to expectedvalues

•It supports testing andmaintainability

– Maintenance by third party

– Follow standards, provide necessarydocumentation

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 24/58

24

A Good Process …

•Facilitates early detection of andremoval of defects

– Defects add to project cost

– Late detection/correction is costly

•It should facilitate monitoring andimprovement

– Based on feedback – Permit use of new tools, technologies

– Permit measurements

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 25/58

25

Waterfall Model for

Development•Here, steps (phases) are arranged inlinear order

– A step take inputs from previous step,

gives output to next step (if any)– Exit criteria of a step must match with

entry criteria of the succeeding step

•It follows ‘specify, design, build’

sequence that is intuitively obviousand appears natural

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 26/58

26

Waterfall Model …

•Produces many intermediatedeliverables, usually documents

– Standard formats defined

– Act as ‘baseline’ used as reference (forcontractual obligations, for maintenance)

– Important for quality assurance, projectmanagement, etc.

•It is widely used (with minorvariations) when requirements arewell understood

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 27/58

27

Waterfall Modelsystem

engineering

AnalysisProject planning

design

code

testing &integration

Installation &

maintenance

-software part of some larger system-establish requirements for all elements of the system; assign some

to software

-understand information domain, functions, performance

and interfacing. Project plans made

-translate requirements into s/w architecture, data structures

and procedural details. A ‘detailed design’ step can be added

- programming

-test logic and function interfaces

-deployment; make changes for 

-Errors, performance-changes in requirement

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 28/58

28

Deliverables in Waterfall

Model•Project plan and feasibility report

•Requirements document (SRS :Software Requirement Specifications)

•System design document•Detailed design document

•Test plans and test reports

•Source code•Software manuals (user manual,installation manual)

•Review reports

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 29/58

29

Cost/Effort Distribution

• Accumulated cost increases dramatically asprogrammers, operators, technical writers andcomputer time is committed.

• Cost of discovering and fixing errors also increases

with steps

Problemdefinitio

n

Feasibility study

Analysis Systemdesign

Detaileddesign

Implemen-

tation

Mainten-

ance

Total accumulatedcost

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 30/58

30

Shortcomings of Waterfall

Model•Requirements may not be clearlyknown, especially for applications nothaving existing (manual) counterpart

– Railway reservation: manual systemexistes, so SRS can be defined

– On-line container management for railways

- new– Knowledge management for a central bank 

– new

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 31/58

31

Shortcomings …•Requirements change with timeduring project life cycle itself 

– Users may find solution of little use

– Better to develop in parts in smallerincrements; this is common for packages,system software

•Considered documentation-heavy: so

much documentation may not berequired for all types of projects.

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 32/58

32

Prototyping Model

•When customer or developer is notsure

– Of requirements (inputs, outputs)

– Of algorithms, efficiency, human-machineinteraction

•A throwaway prototype built from

currently known user needs•Working or even ‘paper’ prototype

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 33/58

33

Prototyping …

•Quick design focuses on aspectsvisible to user; features clearly

understood need not be implemented•Prototype is tuned to satisfycustomer needs

– Many iterations may be required toincorporate changes and newrequirements

•Final product follows usual define-

design-build-test life cycle

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 34/58

34

Prototyping benefits

•Misunderstandings between softwareusers and developers are exposed

•Missing services may be detected

and confusing services may beidentified

•A working system is available early in

the process•The prototype may serve as a basisfor deriving a system specification

•The system can support user training

and system testing

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 36/58

36

Prototyping process

Establishprototype

objectives

Defineprototype

functionality

Develop

prototype

Evaluate

prototype

Prototypingplan

Outlinedefinition Executableprototype Evaluationreport

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 37/58

37

Prototyping

Requirementsgathering

‘Quick’

design buildprototype

evaluate &refine

Engineerproduct

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 38/58

38

Advantages :-

•Reduced time and costs

•Improved and increased userinvolvement

•Users are actively involved in the

development•Quicker user feedback is availableleading to better solutions.

•Errors can be detected much earlier

as the system is mode side by side.

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 39/58

39

Limitations of Prototyping

•Customer may want prototype itself !

•Developer may continue withimplementation choices made duringprototyping

– may not give required quality,performance, ….

•Good tools need to be acquired forquick development

•May increase project cost

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 40/58

40

Iterative Development

•Useful for product development wheredevelopers define scope, features toserve many customers

•Early version with limited featureimportant to establish market and getcustomer feedback 

•Initial version may follow any method•A list of features for future versionsmaintained

•Each version is analyzed to decidefeature list for next iteration

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 41/58

41

• Evolutionary Development model [SE-7, Fig 4.2]

ValidationFinalversion

DevelopmentIntermediate

versions

Specification Initialversion

Outline

description

Concurr ent

activities

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 42/58

42

Evolutionary Development..• Main characteristics:

– The phases of the software construction areinterleaved

– Feedback from the user is used throughout theentire process

– The software product is refined through manyversions

• Types of evolutionary development:– Exploratory development

– Throw-away prototyping

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 43/58

43

Evolutionary Development…• Advantages:

– Deals constantly with changes

– Provides quickly an initial version of the

system– Involves all development teams

• Disadvantages:

– Quick fixes may be involved

– “Invisible” process, not well-supported bydocumentation

– The system’s structure can be corrupted bycontinuous change

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 44/58

44

Evolutionary Development …

• Disadvantages [cont’d]:– Special tools and techniques may be

necessary

– The client may have the impression the firstversion is very close to the final product andthus be less patient

• Applicability:– When requirements are not well understood

– When the client and the developer agree ona “rapid prototype” that will be thrown away

– Good for small and medium-sized softwaresystems

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 45/58

45

Component-based Software

Engineering

Requirementsspecification

Componentanalysis

Developmentandintegration

Systemdesign

withreuse

Requirements

modification

Systemvalidation

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 46/58

46

Component-based Software

Engineering..

• Main characteristics:

– Makes intensive use of existing reusable

components– The focus is on integrating the

components rather than on creatingthem from the scratch

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 47/58

47

Component-based Software

Engineering.

• Advantages:

– Reduces considerably the software to be

developed “in-house”– Allows faster delivery

– In principle, more reliable systems, dueto using previously tested components

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 48/58

48

Component-based Software

Engineering• Disadvantages:

– Compromises in requirements are needed

– Less control over the system’s evolution

• Applicability:

– When there is a pool of existingcomponents that could satisfy therequirements of the new product

– Emerging trend: integration of web servicesfrom a range of suppliers

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 49/58

49

Spiral Model•Activities are organized in a spiral having

many cycles

•Four quadrants in each cycle

1. Determine objectives,Alternatives, constraints

2. Evaluate alternatives,identify and handle risks

4. Plan next step 3. Develop the software

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 50/58

50

Spiral Model …

•Prototyping, simulations,benchmarking may be done to resolveuncertainties/risks

•Development step depends onremaining risks; e.g.,

– Do prototype for user interface risks

– Use basic waterfall model when user

interface and performance issues areunderstood but only development risk remains

•Risk driven : allows us mix of specification-oriented, prototype-oriented, simulation based or an

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 51/58

51

Spiral Model DescriptionThe development spiral consists of four quadrants as shown in the figure

above:-•Quadrant 1: Determine objectives,alternatives, and constraints.

•Quadrant 2: Evaluate alternatives,identify, resolve risks.

•Quadrant 3: Develop, verify, next-level product.

•Quadrant 4: Plan next phases.

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 52/58

52

The Spiral Model

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 53/58

53

Spiral Model

• Main characteristics:

– Also a hybrid model that support processiteration

– The process is represented as a spiral, each loopin the spiral representing a process phase

– Four sectors per loop: objective setting, riskassessment and reduction, development and

validation, planning– Risk is explicitly taken into consideration

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 54/58

54

Spiral Model• Advantages:

– Risk reduction mechanisms are in place

– Supports iteration and reflects real-worldpractices

– Systematic approach

• Disadvantages:

– Requires expertise in risk evaluation and

reduction– Complex, relatively difficult to follow strictly

– Applicable only to large systems

• Applicability:

– Internal development of large systems

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 55/58

55

 The Rational Unified Process

P h as e i te rat i o n

In cep t i o n E l ab o ra t i o n C o n s t ru c t i o n Tran s i t i o n

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 56/58

56

Major work products in UP phases

•Inception phase– Vision doc, early use cases, feasibility,

project plans

•Elaboration phase– Detailed use cases, analysis, architecturedesign, detailed plan, preliminary usermanual

•Construction phase– Detailed design, components, test

plans/cases, implementation, detailedmanuals

•Transition phase– Delivery, beta/acceptance, user feedback 

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 57/58

57

Other s/w process Models :

•RAD Model

•WIN-WIN Spiral Model

•Dynamic system development

8/2/2019 SE-Intro + Models

http://slidepdf.com/reader/full/se-intro-models 58/58

Summary•Challenges in software developmentand need for ‘engineering’ approach

– Step-by-step methodology with specificdeliverables

•Types of software processes– For development, for project

management, …

•Precise definition of a step•Waterfall model : natural, widelyfollowed in spite of its limitations

•Project management – for planning,