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
Slide 3
3 Software Systems Ubiquitous, used in variety of applications
Business, engineering, scientific applications Simple to complex,
internal to public, single function to enterprise-wide, one
location to distributed, batch or real-time, informational to
mission-critical, .
Slide 4
4 Challenge in large projects Developing large/complex software
application 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-time programs where author and user are same !
Slide 5
5 Successful software system Software development projects have
not always been successful When do we consider a software
application successful? Development completed It is useful It is
usable, and It is used Cost-effectiveness, maintainability
implied
Slide 6
6 Reasons for failure Schedule slippage Cost over-runs Does not
solve users problem Poor quality of software Poor
maintainability
Slide 7
7 Reasons for failure . Ad hoc software development results in
such problems No planning of development work (e.g. no milestones
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 by both developer
and user
Slide 8
8 Engineering: other disciplines Large projects common and
successfully done Buildings bridges, dams Power plants Aircrafts,
missiles, engineering a solution: To design, develop (build,
fabricate) an artifact that meets specifications efficiently, cost-
effectively and ensuring quality Using scientific principles.
Slide 9
9 Engineering Requires well-defined approach : repeatable,
predictable Large projects requires managing the project itself
Manage people, money (cost), equipment, schedule Scale makes big
difference: compare building a hut, 2storeyed house, or 50-storeyed
apartment building Quality extremely important : relates to
failures, efficiency, usability, . People willing to pay for
quality !
Slide 10
10 Large Projects Involve different types of people Large
building : architect, civil engineer, electrical engineer, workers
(masons, carpenters), . Continuous supervision for quality
assurance On site supervisors (check cement/steel quality, ensuring
proper mix of sand & cement, .)
Slide 11
11 Large projects Many deliverables : architecture plan, model,
structure diagrams, electrical cabling layouts, Standards,
regulations, conventions need to be followed Steps, milestones
defined and reviews are carried out; progress is visible Project
planning and project management essential
Slide 12
12 Software projects Software is different from other products
Cost of production concentrated in development Maintenance consists
of making corrections and enhancing or adding functions Progress in
development is difficult to measure
Slide 13
13 Apply Engineering Approach Hence planning and control even
more important in software development 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 Plan extensive
testing
Slide 14
14 Job of Software Developer is difficult Dealing with users
Ill-defined requirements Concern with ease-of-use and response time
Dealing with technical people Concerned with coding, databases,
file structures, etc. Dealing with management Concerned with return
on their investment Cost-benefit analysis Schedule
Slide 15
15 Software Process Process consists of activities/steps to be
carried out in a particular order Software process deals with both
technical 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
Slide 16
16 Process Types Process for managing the project defines
project planning and control effort estimations made and schedule
prepared resources are provided feedback taken for quality
assurance monitoring done.
Slide 17
17 Process Types Process for change and configuration mgmt.
Resolving requests for changes Defining versions, their
compositions Release control Process for managing the above
processes themselves Improving the processes based on new
techniques, tools, etc. Standardizations and certifications (ISO,
CMM)
Slide 18
18 Multiple processes A large software development company may
have multiple development processes A. For client-server based
conventional applications (sales processing, payroll) B. For
enterprise-level (ERP) projects based on packages and customization
C. For web-based e-commerce type D. For
data-warehousing/decision-support type The company may have many
projects in each category
Slide 19
19 Step in a Process Each step has a well-defined objective
Requires people with specific skills Takes specific inputs and
produces well- defined outputs Step defines when it may begin
(entry criteria) and when it ends (exit criteria) Uses specific
techniques, tools, guidelines, conventions.
Slide 20
20 Process step Step must be executed as per project plan that
gives duration, effort, resources, constraints, etc. It must
produce information for management so that corrective actions can
be taken E.g., adding more resources A step ends in a review
(V&V) Verification: check consistency of outputs with inputs
(of the step) Validation: check consistency with user needs
Slide 21
21 Process step Review V&V actions to be carried out (entry
criteria) (exit criteria) inputs Project Control info info for
management outputs
Slide 22
22 Characteristics of a Good Process Should be precisely
defined no ambiguity about what is to be done, when, how, etc. It
must be predictable can be repeated in other projects with
confidence 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 12 person months.
Slide 23
23 A Good Process Predictable for quality: with respect to
number and type of defects, performance, Predictable process is
said to be under statistical control, where actual values are close
to expected values It supports testing and maintainability
Maintenance by third party Follow standards, provide necessary
documentation This characteristic differentiates between prototype
and product
Slide 24
24 A Good Process Facilitates early detection of and removal of
defects Defects add to project cost Late detection/correction is
costly It should facilitate monitoring and improvement Based on
feedback Permit use of new tools, technologies Permit
measurements