Session 1 - Software Development Process1

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