se-intro + models
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 35/58
35
Types of prototyping:-
•Throwaway prototyping
•Evolutionary prototyping orbreadboard prototyping
•Incremental prototyping
•Extreme prototyping
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,