Session 1 - Software Development Process
-
Upload
suresh1130 -
Category
Documents
-
view
223 -
download
0
Transcript of Session 1 - Software Development Process
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 1/46
SoftwareSoftwareDevelopmentDevelopment
ProcessProcess
Prepared byMalliga Ramalingam
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 2/46
Session Objectives
Introduction to SDPUnderstanding Quality
Understanding ProcessUnderstanding Life Cycle ModelsChoosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 3/46
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 4/46
1.Team Effort2.Use of methodology3.Documentation4.Schedule/Cost Control5.Quality Assurance6.Used by lay User7.Planning8.Reuse
Programming in Large
9.Use of Software Tools10.Conformance to
standards11. Very Likely to becommercial12. Non-Developer
maintenance13.ChangeManagement14.Version Control
15.Subject To Risk
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 5/46
Programming:Small Vs Large
1)Writing a program 2)Creatingan airline
that sorts a list of ticketreservationstrings an application system, a
browserthat stores the names likeInternet
of friends and their Explorer.
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 6/46
The Myths And Facts
MYTH: There are “10 steps toSuccessful software development”FACT: Software development is aboutprojects
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 7/46
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 8/46
2004 Third Quarter ResearchReport
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 tocompletion or delivered and neverused).
Courtesy: The Standish Group
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 9/46
Common dangerous Attitudes
Documenting and reviewing arewaste of time.
The customer should accept whatwe deliver.Standards constrain and limit
creativityI/we should build everythingIn any case, we have disclaimers
rather than guaranties/warranties
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 10/46
What is a successful softwareproject?
A project that meets or exceedscustomer expectations in terms of features, quality, cost andschedule.
And adds value, monetary orother, to the developmentcompany.
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 11/46
What is EngineeringApproach?
Disciplined Problem SolvingAnalysis of a problem.
Product SpecificationSub-assemblies.Prototypes.
Reuse.
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 12/46
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 13/46
SoftwareEngineering:Definition
“ A Systematic Approach to theDevelopment, Operation, Maintenanceand 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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 14/46
Similarity in software andhardware
PhasesMethodology
ActivitiesStandards
Tools
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 15/46
Uniqueness of Software
Not “manufactured” in the classicalsense.Similarities exist between software and
hardware manufacture but…- The relationship between people
applied andwork accomplished is different.
- The manufacturing phase forhardware can
introduce quality problems that are
nonexistent in software production.-
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 16/46
Uniqueness of Software
Usually “custom- built”. The difference between generic
and bespoke software.Does not “wear-out”.Absence of physical laws
governing the behavior of software.It is invisible.
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 17/46
Aspects of Software projects
Team effort : Any large developmenteffort requires the services of a team of specialists.Methodology : two types of methodologies, ' procedure orientedmethodolgies ' 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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 18/46
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 19/46
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 20/46
Session Objectives
Introduction to SDPUnderstanding Quality
Understanding ProcessUnderstanding Life Cycle ModelsChoosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 21/46
Software Quality
Goal of any software developmentprocess is to produce high qualitysoftware.Software quality has beenvariously defined as:
Fitness for purposeZero defectsConformability & dependability
The ability of the software to meetcustomer's stated and implied needs
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 22/46
Software Attributes for QualityMeasurement
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 23/46
Software Attributes for QualityMeasurement
Efficiency Optimal resource(memory & execution time)utilizationMaintainability Ease with whichsoftware can be modifiedReliability The probability of thesoftware giving consistentresults over a period of timeFlexibility Ease with whichsoftware can be adapted for use
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 24/46
Software Attributes for QualityMeasurement
Security Prevention of unauthorised accessInteroperabilty The ability of thesoftware to integrate withexisting systemsPerformance The ability of thesoftware to deliver the outputswith in the given constraints liketime, accuracy, memory usage
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 25/46
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 26/46
Session Objectives
Introduction to SDPUnderstanding Quality
Understanding ProcessUnderstanding Life Cycle ModelsChoosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 27/46
What is a Process?
A Process is a series of definable,repeatable, and measurable tasksleading to a useful result. The benefitsof a well defined process are numerous.
It provides visibility into a project. Visibilityin turn aids timely mid-course correctionsIt helps developers to weed out faults at thepoint of introduction. This avoids cascadingof faults into later phasesIt helps to organize workflow and outputs tomaximize resource utilizationIt defines everybody's roles and
responsibilities clearly.
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 28/46
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 softwaresystemConstruction : Coding is the main activity in thisphaseTesting : 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 on
generating test cases based on requirements.White box testing focuses on generating test cases
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 29/46
Session Objectives
Introduction to SDPUnderstanding Quality
Understanding ProcessUnderstanding Life Cycle ModelsChoosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 30/46
Waterfall model
Sequential model, alsoknown as water fall model:Analysis
Design
Development
Testing
Implementation
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 31/46
Waterfall Model
sequence of steps (phases).requires a phase is completebefore 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.
all the requirements a priori is
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 32/46
Prototyping
Prototyping - working version of thesoftware is built early in the project life.
Throw away prototypeEvolutionary prototype Throw away prototyping model
understand the requirements and solution
methodologies better.essence is speed.ad-hoc and quick development approachwith no thought to qualityonce the objective is met, the code isdiscarded and fresh development is
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 33/46
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 34/46
Spiral ModelSpiral model - Another iteartivemodel
Is like a framework, adapted tospecific projects.
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 35/46
Spiral Model
best mix of other approachesfocusses 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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 36/46
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 Process
http://slidepdf.com/reader/full/session-1-software-development-process 37/46
ETVX Model
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 38/46
Rational Unified Process Model
Rational Unified Process (RUP)developed by RationalCorporation.It is an iterative model andcaptures many of the bestpractices of modern softwaredevelopment.RUP is explained more fully in themodule OOAD with UML.
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 39/46
Agile Methodologies
All other methodologies premiseSDP should be predictable and repeatable.Emphasis on following procedures and preparingdocumentation.Considered to be heavyweight or rigorous.Criticised for excessive emphasis on structure.
Agile Software Movement, questioning thispremise.
variations in processes and inputsthe model should be flexible enough to handle thevariations.
Agile methodolgies advocate the principle "build short, build often".
project is broken up in to subprojectseach subproject is developed and integrated in tothe already delivered system.customer gets continuous delivery of useful and
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 40/46
Agile methodologies
The more popular agilemethodologies are
SCRUMDYNAMIC SYSTEMSDEVELOPMENT METHOD (DSDM)CRYSTAL METHODSFEATURE-DRIVENDEVELOPMENT(FDD)LEAN DEVELOPMENT (LD)EXTREME PROGRAMMING (XP)
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 41/46
Agile MethodologiesSCRUM:
is a project management framework.divides the development in to short cycles calledsprint cycles in which a specified set of features aredelivered.advocates daily team meetings for coordination andintegration.
DYNAMIC SYSTEMS DEVELOPMENTMETHOD (DSDM): It is characterised by nineprinciples:
Active user involvement Team empowerment
Frequent delivery of productsFitness for business purposeIterative and incremental developmentAll changes during development are reversibleBaselining of requirements at a high level
Integrated testingCollaboration and cooperation between stakeholders
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 42/46
Agile Methodologies
CRYSTAL METHODOLOGIES: They are a set of configurablemethodologies. They focus on the people aspects of development. The configuration is carried out based onproject size, criticality and objectives. Some of the namesused for the methodologies are Clear, Yellow, Orange,Orange web, , Red , etc.
FEATURE DRIVEN DEVELOPMENT (FDD): It is a shortiteration framework for software development. It focuses onbuilding an object model, build feature list, plan by feature,design by feature, and build by feature.LEAN DEVELOPMENT (LD): This methodology is derivedfrom the principles of lean production, the restructuring of the Japanese automobile manufacturing industry that
occurred in the 1980s. It is based on the following principlesof lean thinking: Eliminate waste, Amplify learning, Decide aslate as possible, Deliver as fast as possible, Empower theteam, Build the integrity in, See the whole.EXTREME PROGRAMMING (XP): This methodology isprobably the most popular among the agile methodologies. Itis based on three important principles, viz., test first,continuous refactoring, and pair programming.
One of the important concepts popularised by XP is pair
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 43/46
Session Objectives
Introduction to SDPUnderstanding Quality
Understanding ProcessUnderstanding Life Cycle ModelsChoosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 44/46
How to choose a processBest way to attack this is to look at the
software requirements.If they are stable and well understood, thenwaterfall model may be sufficient.If they are stable, but not clear, then throw awayprototyping can be used.
Where the requirements are changing, evolutionaryprototyping is better.If the requirements are coupled with the underlyingbusiness processes, which are going through aprocess of change, then a model based on Boehm'sspiral model, like the Rational Unified Processshould be used.In these days of dynamic business environment,where 'time to market' is critical, and project size isrelatively small, an agile process should be chosen.
These are guidelines only.Many organisations choose a model and
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 45/46
Session Objectives
Introduction to SDPUnderstanding Quality
Understanding ProcessUnderstanding Life Cycle ModelsChoosing a Process
Conclusion
8/14/2019 Session 1 - Software Development Process
http://slidepdf.com/reader/full/session-1-software-development-process 46/46
ramsuri@gmail com
Conclusions
The most important take awayfrom this session is that softwaredevelopment should follow adiscplined process.
The choice of the process shoulddepend upon the stabilty of therequirements, completeness of requirements, underlying businessprocesses, organisational