Engineering I

download Engineering I

of 84

Transcript of Engineering I

  • 7/21/2019 Engineering I

    1/84

    06/30/09 Mzuzu university 1

    SoftwareEngineering

    SoftwareEngineering

    Introduction

  • 7/21/2019 Engineering I

    2/84

    06/30/09 Mzuzu university 2

    Topics

    Understanding software

    Issues in software industry

    Software engineering conceptsEthics in software engineering

  • 7/21/2019 Engineering I

    3/84

    06/30/09 Mzuzu university 3

    software

    Software is a combination of

    computer program

    data

    documentation(system,user)

    Types of software

    Generic

    Custom

    Embedded

  • 7/21/2019 Engineering I

    4/84

    06/30/09 Mzuzu university 4

    Categories ofSoftware

    By dee!opment

    Generic

    Custom

    Embedded

    "rocessing focus#ata processing$Transforming,arranging and storingdata

    %ea! Time "rocessing$Contro! processes&deices inrea! time

  • 7/21/2019 Engineering I

    5/84

    06/30/09 Mzuzu university 5

    Issues in software

    System Software

    'pp!ication software

    Embedded software

    "roduct ine Software

    eb 'pp!ications

    'rtificia! Inte!!igence

    Scientific software

    *et Sourcing

    +pen source

    Ubiuitous computing

  • 7/21/2019 Engineering I

    6/84

  • 7/21/2019 Engineering I

    7/84

    06/30/09 Mzuzu university 7

    Software Crisis

    Symptoms

    Unmanageab!e

    +er budget

    ate"oor ua!ity

  • 7/21/2019 Engineering I

    8/84

    06/30/09 Mzuzu university 8

    Software Engineering

    'dances in hardware capabi!ity hae enab!ed increasing!ycomp!e- software/ +ur abi!ity to inte!!ectua!!y manage thiscomp!e-ity has a!ways !agged the adances in softwarecomp!e-ity/

    Software engineers continua!!y reuire better too!s/C'SE (Computer 'ssisted Software Engineering) too!s/

    Inte!!ectua! too!s $$ Software engineering techniues/

  • 7/21/2019 Engineering I

    9/84

    06/30/09 Mzuzu university 9

    #efinition

    The estab!ishment and use of soundengineeringprincip!esin order to obtain economica!!ysoftware thatis re!iab!eand wor.s efficient!yon rea! machines/ (0rit1Bauer, at the 0irst *'T+ Conference on Software

    Engineering, 2343)engineering princip!es $ it is a discip!ined effort

    economica!!y /// re!iab!e //// efficient!y /// it has bui!t inua!ity

    rea! machines 5 so!es a user prob!em

  • 7/21/2019 Engineering I

    10/84

    06/30/09 Mzuzu university 10

    S+0T'%E E*GI*EE%I*G IS ///

    engineering princip!es

    It is a discip!ined effort that6systematica!!y uses methodo!ogies, techniues and too!s, and astore of re!eant .now!edge, architectures and components

    uses a modu!ar approach to system bui!ding

    app!ies appropriate pro7ect management techniues

    economica!!y///re!iab!e///efficient!y

    It has bui!t$in ua!ity that6

    8eets cost, time and other constraints5 has meaningfu! ua!ityassurance (e/g/, standards

    does forma! testing of modu!es and the system as a who!e

    rea! machines

    It so!es a rea! user prob!em (imp!ied), therefore6

    dee!opment is focused on meeting user reuirements

  • 7/21/2019 Engineering I

    11/84

    06/30/09 Mzuzu university 11

    Goa!s of software Engineering

    8aintainabi!ity 5 the abi!ity to easi!y ma.e changes, enhancements, orimproements/

    #ependabi!ity 5 the abi!ity to re!y on the software to function proper!ywhen needed/

    Efficiency 5 the abi!ity for software to use computing resourceseffectie!y (main!y space and time)/

    Usabi!ity 5 the abi!ity for the end user to easi!y and effectie!y put thesoftware to proper use/

  • 7/21/2019 Engineering I

    12/84

    06/30/09 Mzuzu university 12

    "rincip!es of software engineering

    8odu!arity 5 diide and conuer/

    Encapsu!ation 5 hide the imp!ementation/

    oca!i1ation 5 co!!ect simi!ar things together/

    'bstraction 5 proide an i!!usion/

    Uniformity 5 ma.e eerything !oo. simi!ar/

    Comp!eteness 5 do eerything reuired/

    Confirm abi!ity 5 be ab!e to proe that the softwarewor.s proper!y/

  • 7/21/2019 Engineering I

    13/84

    06/30/09 Mzuzu university 13

    Software Engineering Ethics

    "rincip!es

    "ub!ic

    S&w engineers sha!! act consistent!y with the pub!icinterest/

    C!ient and emp!oyer

    S& engineers sha!! act in a manner that is in the bestinterests of their c!ient and emp!oyer and that isconsistent with the pub!ic interest/

    "roduct

    s&w engineers sha!! ensure that their products andre!ated modifications meet the highest professiona!standards possib!e/

  • 7/21/2019 Engineering I

    14/84

    06/30/09 Mzuzu university 14

    Software Engineering Ethics

    "rincip!es9udgement

    S& engineer sha!! maintain integrity andindependence in their professiona! 7udgement

    8anagement

    S& engineer managers and !eaders sha!! subscribe toand promote an ethica! approach to the managementof s&w dee!opment and maintenance/

    "rofession

    S& engineers sha!! adance the integrity andreputation consistent with the pub!ic interest/

  • 7/21/2019 Engineering I

    15/84

    06/30/09 Mzuzu university 15

    Software Engineering Ethics

    "rincip!e

    Co!!eagues

    S&w engineers sha!! be fair to and supportie

    of their co!!eague/

    Se!f

    S& engineers sha!! participate in !ife!ong!earning regarding the practice of the

    profession and promote an ethica! approachto the practice of the profession/

  • 7/21/2019 Engineering I

    16/84

    06/30/09 Mzuzu university 16

    Summary

    Software engineering ino!es mode!!ing anddocumenting system reuirements and so!utions/

  • 7/21/2019 Engineering I

    17/84

    06/30/09 Mzuzu university 17

    Software EngineeringSoftware Engineering

    Software ProcessSoftwareProcess

  • 7/21/2019 Engineering I

    18/84

    06/30/09 Mzuzu university 18

    Software "rocess

    +b7ecties

    Understanding software process

    'ctiities present in eery softwareprocess

    "rocess mode!s, and their strengths andwea.nesses

  • 7/21/2019 Engineering I

    19/84

    06/30/09 Mzuzu university 19

    "rocess 8ode!

    ' software process mode! is anabstract representation of thedee!opment process/

    Consists of a structured set of actiitiesreuired to bui!d software/

    It presents a description of a process

    from a particu!ar perspectie/

  • 7/21/2019 Engineering I

    20/84

    06/30/09 Mzuzu university 20

    Types of 8ode!s

    #escriptie

    #escribes the history of how a particu!arsystem was dee!oped/

    Used as a basis for understanding andimproing s&w process/

    Used for bui!ding prescriptie mode!s/

  • 7/21/2019 Engineering I

    21/84

    06/30/09 Mzuzu university 21

    "rescriptie 8ode!

    "rescribes how software shou!d bedee!oped/

    Used as guide!ines to organi1e and

    structure how s&w actiities shou!d beperformed, and in what order/

  • 7/21/2019 Engineering I

    22/84

    06/30/09 Mzuzu university 22

    Generic Software 8ode!sThe waterfa!! 8ode!

    Separate and distinct phases of specification anddee!opment/

    Eo!utionary dee!opment

    Specification, dee!opment and a!idation are

    inter!eaed/

    Specia!ised 8ode!s

    Component based software EngineeringThe system is assemb!ed from e-isting components/

    'gi!e 8ode!s

    Emphasises on customer co!!aboration, incrementa!de!iery, sma!! dee!opment teams/

  • 7/21/2019 Engineering I

    23/84

    06/30/09 Mzuzu university 23

    Bui!d and 0i-

    Bui!d systems without specification/

    Bui!d first ersion and repeat maintenanceunti! customer is satisfied/

    'd#oes not waste time in p!anning anddocumentation/

    #is

    Underestimation of pro7ect attributes/

  • 7/21/2019 Engineering I

    24/84

    06/30/09 Mzuzu university 24

    aterfa!! 8ode!

    '!so ca!!ed C!assic ifecyc!e/

    %euirements we!!defined(fi-ed) and stab!e/

    "hases%euirements Engineering

    software design

    Imp!ementation and unit testing

    Integration and system testing

    8aintenance

    RequirementsEngineering

    Maintenance

    Im!ementati"n an# $nit%esting

    &"'t(are)esign

    Integrati"n an# system testing

  • 7/21/2019 Engineering I

    25/84

    06/30/09 Mzuzu university 25

    #rawbac.s

    %ea! pro7ects are iteratie/#ifficu!t for customer to state a!!reuirements e-p!icit!y/

    %euires customer patience/B!oc.ing state/

  • 7/21/2019 Engineering I

    26/84

    06/30/09 Mzuzu university 26

    #rawbac.s

    Inf!e-ib!e partitioning of the pro7ect into distinct stagema.es it difficu!t to respond to changing customerreuirements/

    Therefore, this mode! is on!y appropriate when the

    reuirements are we!!$understood and changes wi!! befair!y !imited during the design process/

    0ew business systems hae stab!e reuirements/

    The waterfa!! mode! is most!y used for !arge systems

    engineering pro7ects/

  • 7/21/2019 Engineering I

    27/84

    06/30/09 Mzuzu university 27

    Eo!utionary "rocess 8ode!sIteratie

    "rototyping

    Throw away prototyping or e-p!oratory

    +b7ectie is to understand the system reuirements/

    Shou!d start with poor!y understood reuirements to c!arifywhat is rea!!y needed/

    Eo!utionary prototype

    +b7ectie is to wor. with customers and to eo!e a fina!system from an initia! out!ine specification/ Shou!d start

    with we!!$understood reuirements and add new featuresas proposed by the customer/

  • 7/21/2019 Engineering I

    28/84

    06/30/09 Mzuzu university 28

    "rototyping

    Customer defines a genera! ob7ectie of the software withoutidentifying detai!s/

    0eedbac. from prototypes is used to refine reuirements forthe software/

    Iteration is used to tune prototypes to satisfy customer needs,whi!e enab!ing the dee!oper to better understand what needsto be done/

    Used with systems with a considerab!e emphasis on userinterface and user interaction/

    Users and designers must be we!! aware of the prototypingapproach and its pitfa!!s/

    shou!d be p!anned and contro!!ed/

  • 7/21/2019 Engineering I

    29/84

    06/30/09 Mzuzu university 29

    *r"t"tying

    &eci'icati"n

    +a!i#ati"n

    Interme#iate+ersi"n

    ,ut!ine#escriti"n

    )eve!"ment

    -ina! versi"n

    Initia! +ersi"n

  • 7/21/2019 Engineering I

    30/84

    06/30/09 Mzuzu university 30

    "rototypes'dantages

    The resu!ting system is easy to use and maintain/

    User needs are better accommodated

    The design is of higher ua!ity

    The dee!opment incurs !ess effort/

    "rob!ems are detected ear!ier

    #isadantages

    The resu!ting system harder to maintain/

    The performance of the resu!ting system is worse/

    The design is of !ess ua!ity

    The dee!opment incurs more effort/

    The approach reuires more e-perienced team members

  • 7/21/2019 Engineering I

    31/84

    06/30/09 Mzuzu university 31

    Spira! 8ode!

    "roposed be Boehm (B+E::)/

    Eo!utionary mode! with iteratie nature of prototyping and systematicaspects of waterfa!! mode!/

    "rocess is represented as a spira! rather than as a seuence ofactiities with bac.trac.ing/

    Each !oop in the spira! represents a phase in the process/

    *o fi-ed phases such as specification or design $ !oops in the spira!are chosen depending on what is reuired/

    %is.s are e-p!icit!y assessed and reso!ed throughout the process/

  • 7/21/2019 Engineering I

    32/84

    06/30/09 Mzuzu university 32

    8ode! sectors

    +b7ectie setting

    Specific ob7ecties for the phase are identified/

    %is. assessment and reduction

    %is.s are assessed and actiities put in p!ace to

    reduce the .ey ris.s/ #ee!opment and a!idation

    ' dee!opment mode! for the system is chosenwhich can be any of the generic mode!s/

    "!anningThe pro7ect is reiewed and the ne-t phase of thespira! is p!anned/

  • 7/21/2019 Engineering I

    33/84

    06/30/09 Mzuzu university 33

    &ira! M"#e!

  • 7/21/2019 Engineering I

    34/84

    06/30/09 Mzuzu university 34

    Incrementa! "rocess 8ode!

    Combines e!ements of waterfa!! mode! app!ied in iteratie

    fashion/

    Each !inear seuence produce de!ierab!e increments ofthe software/

    The first increment ca!!ed the core product addresses

    basic reuirements/

    #e!iers a wor.ing product with each increment/

  • 7/21/2019 Engineering I

    35/84

    06/30/09 Mzuzu university 35

    +a!i#ate&ystem

    )e'ine "ut!ine&eci'icati"n

    IntegrateIncrement

    +a!i#ateincrement

    )eve!"systemincrement

    )esign &ystem.rcitecture

    .ssignrequirementst"increments

    &ystem Inc"m!ete

  • 7/21/2019 Engineering I

    36/84

    06/30/09 Mzuzu university 36

    The %apid 'pp!ication #ee!opment (%'#)8ode!

    Incrementa! mode! that emphasi1es on shortdee!opment !ife cyc!e/

    ;igh speed waterfa!! using component basedconstruction/

    It emphasi1es user ino!ement, prototyping, reuse, theuse of automated too!s and sma!! dee!opment teams/

    Emp!oys time bo-, a fi-ed time frame within whichactiities are done/

  • 7/21/2019 Engineering I

    37/84

    06/30/09 Mzuzu university 37

    %'# 8ode!

    ife cyc!e actiities

    %euirements p!anning

    User design

    ConstructionCut oer

    Use 9oint reuirements p!anning and 9oint app!ication #esign

    9oint reuirements p!anning wor.shops

    to get reuirements

    9oint app!ication #esign wor.shops

    To bui!d the initia! design of the system

  • 7/21/2019 Engineering I

    38/84

    06/30/09 Mzuzu university 38

    %'# 8ode!

    #isadantages

    %euires sufficient human resources

    %euires dedication

    System need to be proper!y modu!arised*ot for high performance systems

    Shou!d not be used when technica! ris.s are high/

  • 7/21/2019 Engineering I

    39/84

    06/30/09 Mzuzu university 39

    Component based #ee!opment

    Based on systematic reuse where systems areintegrated from e-isting components or C+TS(Commercia!$off$the$she!f) components/

    "rocess stages

    %euirements Engineering

    System design with reuse

    Component ana!ysis&

  • 7/21/2019 Engineering I

    40/84

    06/30/09 Mzuzu university 40

    0orma! 8ode!

    The approach fo!!ows the waterfa!! mode!but use forma! !anguage to engineer thesoftware/

    %euirements Engineering/

    0orma! Specification 5 %euirements arespecified mathematica!!y/

    0orma! Transformation 5 The reuirementsare refined unti! conerted to a rea!program/

  • 7/21/2019 Engineering I

    41/84

    06/30/09 Mzuzu university 41

    SoftwareEngineeringSoftware

    Engineering

    ProcessActivities

  • 7/21/2019 Engineering I

    42/84

    06/30/09 Mzuzu university 42

    Software "rocess

    ' set of actiities whose goa! is thedee!opment or eo!ution of software/

    Software Specification$what the systemshou!d do and constraints/

    Software design and Imp!ementation$production of the software/

    Software =a!idation$Chec.ing if what thecustomer needs/

    Software Eo!ution$Changing the s&w inresponse to changing demands/

  • 7/21/2019 Engineering I

    43/84

    06/30/09 Mzuzu university 43

    Software Specification

    "rocess of estab!ishing what serices are reuired and

    the constraints on the systems operation anddee!opment/

    %euirements Engineering

    0easibi!ity study>

    %euirements e!icitation and ana!ysis>%euirements documentation>

    %euirements a!idation/

  • 7/21/2019 Engineering I

    44/84

    06/30/09 Mzuzu university 44

    -easii!ity &tu#y

    Requirements+a!i#ati"n

    Requirements&eci'icati"n

    RequirementsE!icitati"n an#

    .na!ysis

    -easii!ityRe"rt

    Requirements)"cument

    $ser an# Requirements&eci'icati"n

    &ystem M"#e!s

    &"'t(are Engineering

  • 7/21/2019 Engineering I

    45/84

    06/30/09 Mzuzu university 45

    Software #esign and Imp!ementation

    The process of conerting the systemspecification into an e-ecutab!e system/

    Software design

    #esign a software structure that rea!ises the

    specification>Imp!ementation

    Trans!ate this structure into an e-ecutab!eprogram>

    The actiities of design and imp!ementationare c!ose!y re!ated and may be inter$!eaed/

  • 7/21/2019 Engineering I

    46/84

    06/30/09 Mzuzu university 46

    Software #esign 'ctiities

    'rchitectura! design 'bstract specification

    Interface design

    Component design

    #ata structure design

    '!gorithm design

  • 7/21/2019 Engineering I

    47/84

    06/30/09 Mzuzu university 47

    .rcitectura!)esign

    .!g"ritm)esign

    Inter'ace)esign

    )ata

    structure)esign

    "m"nent)esign

    .stract)esign

    Requirements&eci'icati"n

    .!g"ritm&eci'icati"n

    Inter'aceseci'icati"n

    )ata&tructure

    &eci'icati"n"m"nentseci'icati"n

    .stract&eci'icati"n

    .rcitectura!seci'icati"n

    &"'t(are )esign .ctivities

  • 7/21/2019 Engineering I

    48/84

    06/30/09 Mzuzu university 48

    "rogramming

    Trans!ating a design into a program andremoing errors from that program/

    "rogramming is a persona! actiity $ thereis no generic programming process/

    "rogrammers carry out some programtesting to discoer fau!ts in the programand remoe these fau!ts in the debugging

    process/

  • 7/21/2019 Engineering I

    49/84

    06/30/09 Mzuzu university 49

    Software =a!idation

    =erification and a!idation (= ? =) isintended to show that a system conforms toits specification and meets the reuirementsof the system customer/

    Ino!es chec.ing and reiew processes andsystem testing/

    System testing ino!es e-ecuting thesystem with test cases that are deried from

    the specification of the rea! data to beprocessed by the system/

  • 7/21/2019 Engineering I

    50/84

    06/30/09 Mzuzu university 50

    Testing Stages

    Component or unit testingIndiidua! components are tested independent!y>Components which may be functions or ob7ectsor coherent groupings of these entities/

    System testingTesting of the system as a who!e/ Testing ofemergent properties is particu!ar!y important/

    'cceptance testing

    Testing with customer data to chec. that thesystem meets the customer@s needs/

  • 7/21/2019 Engineering I

    51/84

    06/30/09 Mzuzu university 51

    Software Eo!ution

    Software is f!e-ib!e and can change/

    's reuirements change throughchanging business circumstances,

    the software that support thebusiness must change/

  • 7/21/2019 Engineering I

    52/84

    06/30/09 Mzuzu university 52

    &"'t(are Ev"!uti"n

    )e'ine &ystemRequirements

    M"#i'y &ystem*r""se &ystem

    anges.ssess

    Eisting &ystem

    Eisting &ystem e( &ystem

  • 7/21/2019 Engineering I

    53/84

    06/30/09 53

    'gi!e Software "rocesses

  • 7/21/2019 Engineering I

    54/84

    06/30/09 54

    Agile Software Development

    an a!ternatie to conentiona! software engineering

    for certain c!asses of software and certain types of

    software pro7ects

    de!ier successfu! systems uic.!y

    Encourages continuous communication and

    co!!aboration among dee!opers and customers

  • 7/21/2019 Engineering I

    55/84

    06/30/09 55

    'gi!e Software #ee!opment

    'gi!e software engineering embraces a phi!osophy

    that encourages customer satisfaction, incrementa!

    software de!iery, sma!! pro7ect teams (composed of

    software engineers and sta.eho!ders), informa!methods, and minima! software engineering wor.

    products

    'gi!e software engineering dee!opment guide!ines

    stress on$time de!iery of an operationa! softwareincrement oer ana!ysis and design

  • 7/21/2019 Engineering I

    56/84

    06/30/09 56

    The agi!e #ee!opment 8anifesto

    The four core a!ues6

    Indiidua!s and interactions oer processes

    and too!sor.ing software oer comprehensie

    documentation

    Customer co!!aboration oer contract

    negotiation

    %esponding to change oer fo!!owing a p!an

  • 7/21/2019 Engineering I

    57/84

    06/30/09 57

    hat is agi!ity

    Agility is dynamic, content specific, aggressively changeembracing and growth oriented [Steven Goldman et al]

    'n agi!e team is ab!e to respond to changesduring pro7ect dee!opment

    'gi!e dee!opment recogni1es that pro7ect p!ansmust be f!e-ib!e

    'gi!ity encourages team structures and attitudesthat ma.e communication among dee!opers and

    customers more faci!eE!iminates the separation between customers anddee!opers

  • 7/21/2019 Engineering I

    58/84

    06/30/09 58

    hat is agi!ityA

    'gi!ity emphasi1es the importance of rapid

    de!iery of operationa! software and de$

    emphasi1es importance of intermediate wor.products

    'gi!ity can be app!ied to any software process

    as !ong as the pro7ect team is a!!owed to

    stream!ine tas.s and conduct p!anning in waythat e!iminate non$essentia! wor. products

  • 7/21/2019 Engineering I

    59/84

    06/30/09 59

    'gi!ity "rincip!es $ 2;ighest priority is to satisfy customer through ear!y

    and continuous de!iery of a!uab!e software

    e!come changing reuirements een !ate in

    dee!opment, accommodating change is iewed as

    increasing the customer@s competitie adantage

    #e!iering wor.ing software freuent!y with a

    preference for shorter de!iery schedu!es (e/g/ eery

    or wee.s)

    Business peop!e and dee!opers must wor. together

    dai!y during the pro7ect

  • 7/21/2019 Engineering I

    60/84

    06/30/09 60

    'gi!ity "rincip!es $

    Bui!d pro7ects around motiated indiidua!s, gien

    them the enironment and support they need, trust

    them to get the 7ob done

    0ace$to$face communication is the most effectiemethod of coneying information within the

    dee!opment team

    or.ing software is the primary measure of progress

    'gi!e processes support sustainab!e dee!opment,dee!opers and customers shou!d be ab!e to continue

    dee!opment indefinite!y

  • 7/21/2019 Engineering I

    61/84

    06/30/09 61

    'gi!e "rocess

    Based on three .ey assumptions

    2/ It is difficu!t to predict in adance which

    reuirements or customer priorities wi!! change

    and which wi!! not

    / 0or many types of software design and

    construction actiities are inter!eaed

    (construction is used to proe the design)

    / 'na!ysis, design, construction and testing are not

    as predictab!e from a p!anning perspectie as

    one might !i.e them to be

  • 7/21/2019 Engineering I

    62/84

    06/30/09 62

    'gi!e "rocess

    'gi!e processes must be adapted

    incrementa!!y to manage

    unpredictabi!ityIncrementa! adaptation reuires

    customer feedbac. based on ea!uation

    of de!iered software increments(e-ecutab!e prototypes) oer short time

    periods

  • 7/21/2019 Engineering I

    63/84

    06/30/09 63

    'gi!ity "rincip!es $ Continuous attention to technica! e-ce!!enceand good design enhances agi!ity

    Simp!icity (defined as ma-imi1ing the wor.not done) is essentia!

    The best architectures, reuirements, anddesign emerge from se!f$organi1ing teams

    't regu!ar intera!s teams ref!ects how to

    become more effectie and ad7usts itsbehaiour according!y

  • 7/21/2019 Engineering I

    64/84

    06/30/09 64

    Traits of 'gi!e Team 8embers

    Competence

    Common focus

    Co!!aboration

    #ecision$ma.ing abi!ity

    0u11y$prob!em so!ing abi!ity

    8utua! trust and respect

    Se!f$organi1ation

  • 7/21/2019 Engineering I

    65/84

    06/30/09 65

    'gi!e "rocess 8ode!s

    E-treme "rogramming (D")

    'daptie Software #ee!opment ('S#)

    #ynamic Systems #ee!opment 8ethod(#S#8)

    Scrum

    0eature #rien #ee!opment (0##)

    'gi!e 8ode!ing ('8)

  • 7/21/2019 Engineering I

    66/84

    06/30/09 66

    E-treme 'ctiities

    0ramewor. actiities

    "!anning

    user stories created and ordered by customer a!ue

    #esign

    simp!e ++ designs preferred

    #ifficu!t design prob!em is so!ed using spi.e so!ution/

    C%C cards and design prototypes are on!y wor. products

    encourages use of refactoring

    Codingemphasi1es use of pairs programming to create story

    code

    continuous integration and smo.e testing is uti!i1ed

  • 7/21/2019 Engineering I

    67/84

    06/30/09 67

    D" 'ctiities

    Testing

    focuses on unit tests to e-ercise stories

    unit tests created before coding are imp!ementedusing an automated testing framewor. to

    encourage use of regression testing

    integration and a!idation testing done on dai!y

    basis

    acceptance tests focus on system features and

    functions iewab!e by the customer

  • 7/21/2019 Engineering I

    68/84

    06/30/09 68

    D" "rocess

    %est

    *!anning

    )esign

    "#ing

    $ser st"riesva!ues.ccetance test criteriaiterati"n !an

    &im!e #esignR ar#s

    *air r"gramming

    $nit testing"ntinu"us integrati"n

    .ccetance test

    &"'t(areincrement+e!"cityc"mute#

    Release

    Re'act"ring

  • 7/21/2019 Engineering I

    69/84

    06/30/09 69

    'daptie Software #ee!opment

    0eatures

    Se!f$organi1ation arises when independentagents cooperate to create a so!ution to aprob!em that is beyond the capabi!ity of any

    indiidua! agent'daptie cyc!e characteristics

    8ission$drien

    Component$based

    Iteratie

    Time$bo-ed

    %is. drien and change$to!erant

  • 7/21/2019 Engineering I

    70/84

    06/30/09 70

    'daptie Software #ee!opment $ 2

    Specu!ation

    pro7ect initiated

    ris. drien adaptie cyc!e p!anning ta.es p!ace

    Co!!aboration

    reuires teamwor. from a 7e!!ed team

    7oint app!ication dee!opment is preferred

    reuirements gathering approachminispecs created

  • 7/21/2019 Engineering I

    71/84

    06/30/09 71

    'daptie Software #ee!opment $

    earning

    components imp!emented and tested

    focus groups proide feedbac.forma! technica! reiews

    postmortems

    #ynamic Systems #ee!opment

  • 7/21/2019 Engineering I

    72/84

    06/30/09 72

    #ynamic Systems #ee!opment

    8ethod

    "roides a framewor. for bui!ding and maintaining

    systems which meet tight time constraints using

    incrementa! prototyping in a contro!!ed enironment

    Uses "areto princip!e (:F of pro7ect can bede!iered in F reuired to de!ier the entire pro7ect)

    Each increment on!y de!iers enough functiona!ity to

    moe to the ne-t increment

    Uses time bo-es to fi- time and resources todetermine how much functiona!ity wi!! be de!iered in

    each increment

    #ynamic Systems #ee!opment 8ethod ife

  • 7/21/2019 Engineering I

    73/84

    06/30/09 73

    #ynamic Systems #ee!opment 8ethod ife

    Cyc!e $ 2

    0easibi!ity study

    estab!ishes reuirements and constraints

    Business studyestab!ishes functiona! and information

    reuirements needed to proide business a!ue

    0unctiona! mode! iteration

    produces set of incrementa! prototypes todemonstrate functiona!ity to customer

    D i S t D l t M th d Lif

  • 7/21/2019 Engineering I

    74/84

    06/30/09 74

    Dynamic Systems Development Method Life

    Cycle !

    #esign and bui!d iteration

    reisits prototypes to ensure they proide

    business a!ue for end usersmay occur concurrent!y with functiona!

    mode! iteration

    Imp!ementation!atest iteration p!aced in operationa!

    enironment

  • 7/21/2019 Engineering I

    75/84

    06/30/09 75

    Scrum "rincip!es

    Sma!! wor.ing teams used to ma-imi1ecommunication and minimi1e oerhead

    "rocess must be adaptab!e to both technica! and

    business cha!!enges to ensure best product produced"rocess yie!ds freuent increments that can beinspected, ad7usted, tested, documented and bui!t on

    #ee!opment wor. and peop!e performing it arepartitioned into c!ean, !ow coup!ing partitions

    Testing and documentation is performed as theproduct is bui!t

    'bi!ity to dec!are the product done wheneer reuired

  • 7/21/2019 Engineering I

    76/84

    06/30/09 76

    Scrum $ 2

    Bac.!og

    prioriti1ed !ist of reuirements or features that

    proide business a!ue to customer

    items can be added at any time

    Sprints

    wor. units reuired to achiee one of the bac.!og

    itemsmust fit into a predefined time$bo-( days)

    affected bac.!og item are fro1en/

  • 7/21/2019 Engineering I

    77/84

    06/30/09 77

    Scrum $

    Scrum meetings

    2 minute dai!y meetings

    what was done since !ast meetingAwhat obstac!es were encounteredA

    what wi!! be done by the ne-t meetingA

    #emos

    de!ier software increment to customer forea!uation

  • 7/21/2019 Engineering I

    78/84

    06/30/09 78

  • 7/21/2019 Engineering I

    79/84

    06/30/09 79

    0eature #rien "hi!osophy

    Emphasi1es co!!aboration among team members

    8anages prob!em and pro7ect comp!e-ity using

    feature$based decomposition fo!!owed by integration

    of software increments

    Technica! communication using erba!, graphica!, and

    te-tua! means

    Software ua!ity encouraged by using incrementa!

    dee!opment, design and code inspections, S

  • 7/21/2019 Engineering I

    80/84

    06/30/09 80

    0eature #rien #esign $ 2

    #ee!op oera!! mode!

    contains set of c!asses depicting business mode! of

    app!ication to be bui!t

    Bui!d features !istfeatures e-tracted from domain mode!

    features are categori1ed and prioriti1ed

    wor. is bro.en up into two wee. chun.s

    "!an by featurefeatures assessed based on priority, effort, technica! issues,

    schedu!e dependencies

  • 7/21/2019 Engineering I

    81/84

    06/30/09 81

    0eature #rien #esign $

    #esign by feature

    c!asses re!eant to feature are chosen

    c!ass and method pro!ogs are written

    pre!iminary design detai! dee!opedowner assigned to each c!ass

    owner responsib!e for maintaining design document for his

    or her own wor. pac.ages

    Bui!d by featurec!ass owner trans!ates design into source code and performsunit testing

    integration performed by chief programmer

  • 7/21/2019 Engineering I

    82/84

    06/30/09 82

    0## "rocess

  • 7/21/2019 Engineering I

    83/84

    06/30/09 83

    'gi!e 8ode!ing $ 2

    "ractice$based methodo!ogy for effectie mode!ing

    and documentation of software systems in a !ight$

    weight manner

    8ode!ing princip!es8ode! with a purpose

    Use mu!tip!e mode!s

    Trae! !ight (on!y .eep mode!s with !ong$term a!ue)

    Content is more important than representationHnow the mode!s and too!s you use to create them

    'dapt !oca!!y

  • 7/21/2019 Engineering I

    84/84

    'gi!e 8ode!ing $

    %euirements gathering and ana!ysis mode!ing

    or. co!!aboratie!y to find out what customer wants to do

    +nce reuirements mode! is bui!t co!!aboratie ana!ysis

    mode!ing continues with the customer

    'rchitectura! mode!ing

    #eries pre!iminary architecture from ana!ysis mode!

    'rchitectura! mode! must be rea!istic for the enironment and

    must be understandab!e by dee!opers