Upload
suresh1130
View
225
Download
0
Embed Size (px)
Citation preview
8/14/2019 Session 1 - Software Development Process1
1/40
SoftwareSoftwareDevelopmentDevelopment
ProcessProcess
8/14/2019 Session 1 - Software Development Process1
2/40
Session Objectives
Introduction to SDP
Understanding Quality
Understanding ProcessUnderstanding Life Cycle Models
Choosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process1
3/40
Programming in Small
Individual Effort
Not rigorously tested
Used by the developer only
Circus in programming Language
Intellectual Exercise
No Documentation
Developer Maintenance
8/14/2019 Session 1 - Software Development Process1
4/40
1.Team Effort
2.Use of methodology
3.Documentation
4.Schedule/Cost Control
5.Quality Assurance
6.Used by lay User
7.Planning
8.Reuse
Programming in Large
9.Use of SoftwareTools
10.Conformance to
standards 11. Very Likely to be
commercial
12. Non-Developer
maintenance 13.Change
Management
14.Version Control
15.Subject To Risk
8/14/2019 Session 1 - Software Development Process1
5/40
Programming:Small Vs Large
1)Writing a program 2)Creatingan airline
that sorts a list of ticketreservation
strings an application system, a
browserthat stores the names like
Internet
of friends and their Explorer.
8/14/2019 Session 1 - Software Development Process1
6/40
The Myths And Facts
MYTH: There are 10 steps toSuccessful software development
FACT: Software development is about
projects
MYTH: Software development is about
technologyFACT: Software development is about
Technology. It is also about people,methodology and process.
8/14/2019 Session 1 - Software Development Process1
7/40
The Myths And Facts
MYTH: Software Development is aboutwriting code.
FACT: Writing code is the part of
software development -perhaps theeasiest part to do
MYTH: Most software projects aresuccessful.
FACT: 32% of projects terminatebefore delivery and only 11% arecompleted on budget. Of the remaining
8/14/2019 Session 1 - Software Development Process1
8/40
2004 Third Quarter Research
Report
This year results show that 295 of allprojects succeeded (delivered on time,on budget, with required features and
functions); 53% are challenged (late,over budget and/or with less than therequired features and functions); and18% have failed (cancelled prior to
completion or delivered and neverused).
Courtesy: The Standish Group
8/14/2019 Session 1 - Software Development Process1
9/40
Common dangerous Attitudes
Documenting and reviewing arewaste of time.
The customer should accept whatwe deliver.
Standards constrain and limit
creativityI/we should build everything
In any case, we have disclaimers
rather than guaranties/warranties
8/14/2019 Session 1 - Software Development Process1
10/40
What is a successful software
project?
A project that meets or exceedscustomer expectations in terms offeatures, quality, cost andschedule.
And adds value, monetary orother, to the developmentcompany.
8/14/2019 Session 1 - Software Development Process1
11/40
What is Engineering
Approach?
Disciplined Problem Solving
Analysis of a problem.
Product SpecificationSub-assemblies.
Prototypes.
Reuse.
8/14/2019 Session 1 - Software Development Process1
12/40
Software Engineering
Term Coined in 1967 andendorsed by NATO conference in1968
Relatively young in comparison to
other engineering disciplines.
8/14/2019 Session 1 - Software Development Process1
13/40
Software
Engineering:Definition
A Systematic Approach to theDevelopment, Operation, Maintenance
and Retirement of Software,
Where Software is ComputerPrograms, Procedures, Rules and
Associated Documents and datapertaining to the Operation of aComputer System.
- IEEE
8/14/2019 Session 1 - Software Development Process1
14/40
Similarity in software and
hardware
Phases
Methodology
ActivitiesStandards
Tools
8/14/2019 Session 1 - Software Development Process1
15/40
Uniqueness of Software
Not manufactured in the classicalsense.
Similarities exist between software and
hardware manufacture but- The relationship between people
applied and
work accomplished is different.
- The manufacturing phase forhardware can
introduce quality problems that are
nonexistent in software production.-
8/14/2019 Session 1 - Software Development Process1
16/40
Uniqueness of Software
Usually custom- built.
The difference between generic
and bespoke software.Does not wear-out.
Absence of physical laws
governing the behavior ofsoftware.
It is invisible.
8/14/2019 Session 1 - Software Development Process1
17/40
Aspects of Software projects
Team effort: Any large developmenteffort requires the services of a team ofspecialists.
Methodology: two types ofmethodologies, 'procedure oriented
methodolgies' and 'object orientedmethodologies'.
Documentation: Clear andunambiguous documentation of the
artifacts of the development process arecritical for the success of the softwareproject.
Planning: development takes placeagainst a client's requirements so thewhole effort is to be well planned to
8/14/2019 Session 1 - Software Development Process1
18/40
Aspects of Software projects
Lay user: Most of the time, thesesoftware packages will be used by non-computer savvy users. Hence the
software has to be highly robust.Software tools: Documentation isimportant for the success of a softwareproject. There are tools known as
Computer Aided Software Engineering(CASE) tools which simplify the processof documentation.
Conformance to standards: We
need to follow certain standards toensure clear and unambi uous
8/14/2019 Session 1 - Software Development Process1
19/40
Aspects of Software projects
Non-developer maintenance:Software lives for a long time. Thedevelopment team, may not.
Change management: Whenever achange has to be made, it is necessaryto analyse its impact on various partsof the software.
Version control: Once changes are
made to the software, the user shouldget the right copy of the software.Failures should roll back to theprevious versions.
Subject to risks: Any large effort issubject to risks. Eg: skills, technology,
8/14/2019 Session 1 - Software Development Process1
20/40
Session Objectives
Introduction to SDP
Understanding Quality
Understanding ProcessUnderstanding Life Cycle Models
Choosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process1
21/40
Software Quality
Goal of any software developmentprocess is to produce high qualitysoftware.
Software quality has beenvariously defined as:
Fitness for purpose
Zero defects
The ability of the software to meetcustomer's stated and implied needs
8/14/2019 Session 1 - Software Development Process1
22/40
Software Attributes for Quality
Measurement
Important attributes used tomeasure software quality are:
Correctness Software should meet the
customer's needsRobustness Software must alwaysbehave in an expected manner, evenwhen unexpected inputs are given
Usability Ease of use. A software witha graphical user interface isconsidered more user-friendly thanone without it
Portability The ease with which
8/14/2019 Session 1 - Software Development Process1
23/40
Software Attributes for Quality
Measurement
Efficiency Optimal resource(memory & execution time)utilization
Maintainability Ease with whichsoftware can be modified
Reliability The probability of the
software giving consistentresults over a period of time
Flexibility Ease with which
software can be adapted for use
8/14/2019 Session 1 - Software Development Process1
24/40
Software Attributes for Quality
Measurement
Security Prevention ofunauthorised access
Interoperabilty The ability of the
software to integrate withexisting systems
Performance The ability of the
software to deliver the outputswith in the given constraints liketime, accuracy, memory usage
8/14/2019 Session 1 - Software Development Process1
25/40
Attributes & Realization
Correctness is the most importantattribute.
The other attributes may be
present in varying degrees.Eg: it is an expensive proposition tomake a software 100% reliable and itis not required in all contexts.
Some of the attributes conflictwith each other.Eg: portability and efficiency couldconflict with each other.
In practice there will always be a
8/14/2019 Session 1 - Software Development Process1
26/40
Session Objectives
Introduction to SDP
Understanding Quality
Understanding ProcessUnderstanding Life Cycle Models
Choosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process1
27/40
Exercise - 100% Inspection
Start Reading the passage and count theoccurrence of Fs
The Bangalore Metro Rail concept, so far onlyon demo videos, is finally on its way to
becoming a reality. The 33 kilometre route, ofwhich 26.3 kilometres will be elevated and6.7 kilometres will be underground, isexpected to be completed by December2011. The first phase charting a seven
kilometre route will be completed by 2009.The project, which is expected to cost awhopping Rs 6,395 crore, has multiplefinancial partners. These include theGovernment of India with an equity of 25 percent, the government of Karnataka with an
8/14/2019 Session 1 - Software Development Process1
28/40
Exercise - 100% Inspection
Defining a process
Circle the Fs as you read themand at the end of each line count
the circles and enter it againstthe line
Repeat for each line
Count all the counts entered atthe end of each line for total.
8/14/2019 Session 1 - Software Development Process1
29/40
The Process
The Bangalore Metro Rail concept, so far onlyon demo videos, is finally on its way tobecoming a reality. The 33 kilometre route, ofwhich 26.3 kilometres will be elevated and
6.7 kilometres will be underground, isexpected to be completed by December2011. The first phase charting a sevenkilometre route will be completed by 2009.The project, which is expected to cost a
whopping Rs 6,395 crore, has multiplefinancial partners. These include theGovernment of India with an equity of 25 percent, the government of Karnataka with anequity of 30 per cent and the Japan Bank of
International Cooperation with its equity
- 1- 1- 1- 0
- 1- 0- 1- 2- 2
- 1- 2- 1- 0- 2
8/14/2019 Session 1 - Software Development Process1
30/40
What is a Process?
A Process is a series of definable,repeatable, and measurable tasksleading to a useful result. The benefits
of a well defined process are numerous.It provides visibility into a project.
It helps developers to weed out faults at thepoint of introduction. This avoids cascading
of faults into later phasesIt helps to organize workflow and outputs tomaximize resource utilization
It defines everybody's roles and
responsibilities clearly.
8/14/2019 Session 1 - Software Development Process1
31/40
SDP - Phases
The generic phases that are normally used ina software development process are:
Analysis: user needs are gathered and convertedinto software requirements. - should answer the
question: what is to be done to meet user needs?Design: answers the question: How to meet theuser needs? - In this phase we determineorganisation of various modules in the softwaresystem
Construction: Coding is the main activity in this
phaseTesting: There are three categories of testing: unittesting, integration testing, and system testing.There are two types of testing: Black box testingand White box testing. Black box testing focuses ongenerating test cases based on requirements.White box testing focuses on generating test cases
8/14/2019 Session 1 - Software Development Process1
32/40
Session Objectives
Introduction to SDP
Understanding Quality
Understanding ProcessUnderstanding Life Cycle Models
Choosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process1
33/40
Waterfall model
Sequential model, alsoknown as water fall model:
Analysis
Design
Development
Testing
Implementation
8/14/2019 Session 1 - Software Development Process1
34/40
Waterfall Model
sequence of steps (phases).
requires a phase is complete
before the next phase is started.helps in contract finalisation withreference to delivery and paymentschedules.
Is difficult to use this model as itis, because of the uncertainity inthe software requirements.
8/14/2019 Session 1 - Software Development Process1
35/40
Prototyping
Prototyping - working version of thesoftware is built early in the project life.
Throw away prototypeEvolutionary prototype
Throw away prototyping modelunderstand the requirements and solution
methodologies better.essence is speed.
ad-hoc and quick development approachwith no thought to quality
once the objective is met, the code isdiscarded and fresh development is
8/14/2019 Session 1 - Software Development Process1
36/40
Prototyping
Evolutionary prototyping modelrequirements are prioritisedcode is developed for the most importantrequirements first, with an eye on quality.
Software is continuously refined andexpanded with feedback from the client.advantage of prototyping is that the clientgets a feel of the product early in theproject life cycle.
As can be seen, evolutionaryprototyping is an iterative model. Sucha model can be characterised by doinga little analysis, design, code, test and
repeat the process till the product iscomplete.
8/14/2019 Session 1 - Software Development Process1
37/40
Spiral ModelSpiral model - Another iteartivemodel
Is like a framework, adapted tospecific projects.
8/14/2019 Session 1 - Software Development Process1
38/40
Spiral Model
best mix of other approaches
focusses on eliminating errors and
unattractive alternatives early.Important feature of this model isstress on risk analysis.
This model is best suited forprojects, which involve newtechnology development. Riskanalysis expertise is most criticalfor such ro ects.
8/14/2019 Session 1 - Software Development Process1
39/40
ETVX model
Introduced by IBM during the 80's todocument their processes.
'E' stands for the entry criteria to be satisfied fortasks to be performed
'T' is the set of tasks to be performed'V' stands for the verification & validation process toensure that the right tasks are performed
'X' stands for the exit criteria or the outputs of thetasks. If an activity fails in the validation check,either corrective action is taken or a rework isordered.
It can be used in any development process.Each phase in the process can be consideredas an activity and structured using the ETVX
model.If re uired the tasks can be further
8/14/2019 Session 1 - Software Development Process1
40/40
ETVX Model