Software Engineering CSE 435
Popular in Course
Popular in Computer Science and Engineering
This 22 page Class Notes was uploaded by Donnell Kertzmann on Saturday September 19, 2015. The Class Notes belongs to CSE 435 at Michigan State University taught by Staff in Fall. Since its upload, it has received 59 views. For similar materials see /class/207423/cse-435-michigan-state-university in Computer Science and Engineering at Michigan State University.
Reviews for Software Engineering
Report this Material
What is Karma?
Karma is the currency of StudySoup.
You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!
Date Created: 09/19/15
White box testing derives test cases from program code sum Medmdmse a mznhmnmmmh Structural Coverage Testing Inadequacy criteria If signi cant parts of program structure are not tested testing is inadequate Control flow coverage criteria Statement coverage Edge coverage Condition coverage Path coverage sum Medmdmse a mznhmnmmmh Statementcoverage criterion Select a test set T such that every elementary statement in P is executed at least once by some d in T an input datum executes many statements 9 t to minimize the number of test cases still preserving the desired coverage sum Medmdmse a mznhmnmmmh Example read x read y ifx gt 0 then write quot1quot ltX 2 y 13gt ltx 13 y 51gt else ltX97y17gtltx1y1gt write 2 covers all statements end if ifygt0then lt 13y51gtltx2y3gt write quot3quot is minimal else write quot4quot if sum Medmdmse a mznhmnmmmh Weakness of the criterion 39fquot lt 0 9 ltx3 covers all X X statemen end if z X it does not exercise the case when x is positive and the then branch is not entered sum Medmdmse a mznhmnmmmh Edgecoverage criterion Select a test set T such that every edge branch of the control flow is exercised at least once by some d in T this requires formalizing the concept ofthe control graph rid how to construe i r edges represent statements 7 nodes at tne ends of an edge represent entry into tne statement exit sum Medmdmse a mznhmnmmmh Control graph construction rules IO assignment or procedure call ifthen two sequential temen while Ioopmmummmm Simplification a sequence of edges can be collapsed into just one edge sum Medmdmse a mznhmnmmmh Example Euclid39s algorithm beg n read x read y while x 7t y loop sum Medmdmse a mznhmnmmmh Weakn ess found false counter 1 while not found and counter lt numberofitems loop iftable counter desiredelement then fo nd ru 39 end if counter counter 1 end oop if found then write quotthe desired element is in the tablequot else write quotthe desired element is not in the tablequot end if test cases 1 empty table 2 table with 3 items second of which is the item to look for do not discover error lt instead of S smmdmwammhmnmmmh m Conditioncoverage criterion Select a test set T such that every edge of PS control flow is traversed and all possible values of the constituents of compound conditions are exercised at least once it is finer than edge coverage sum Medmdmse a mznhmnmmmh Weakn ess ifx 7t 0 hen 5 Else ltx0z1gtltx1z x39 d f causes the execution of all edges 6quot l but fails to expose the risk of a quotZ gt 1 thequot division by zero 2 zlx else 0 end if sum Medmdmse a mznhmnmmmh Software Engineering CSE470 Spring 2002 Instructor Dr W McUmber mcumbercsemsuedu 3100 EB in mm Acknowledgments o G Coombs o L Dillon 0 M Heimdahl o R Stephenson 0 National Science Foundation I VESL Visions of Embedded Systems Laboratory I EDA9700732 0 Tony Torre Detroit Diesel Corp Hrle What is Software Engineering Why is software engineering needed o The study of systematic and effective processes and technologies for supporting software development and maintenance activities Improve quality Reduce costs trlmru 0 To predicttirne effort and cost 0 To improve software quality 0 To improvemaintainability 0 To meet increasing demands 0 To lower softwarecosts 0 To successfully build large complex software systems 0 To facilitate group effort in developing software Hrle Who Needs Software Engineering Historical Perspective 1st Everyone Utrlntru 0 1940s computers invented 0 1950s assembly language Fortran 0 1960s COBOL ALGOL PL1 operating systems 1969 First conference on Software Eng 0 1970s multiuser systems databases structured programming Hrle Historical Perspective cont Hardware Costs vs Software Costs of overall costs systems parallel architectures systems 00in widespread use conferencing global computing mantra 0 1990s information superhighway distributed 0 2000s virtual reality voice recognition video 0 1980s networking personal computing embedded st costs hlw costs Time l39gt mania Why is software so expensive Size of programs continues to grow 0 Hardware has made great advances 0 But software has made great advances hardware 0 Demand more and more of software Ulrlmm c We do the least understood tasks in software 0 When task is simple amp understood encode it in o Trivial 1 month1 programmer 500 Lee I Intro programming assignments o Vent small 4 months 1 programmer zooo LDC Courseproject 0 Small 2 years 3 programmers 50K LDC Nuclearpowerplant pacemaker 0 Medium 3 years 10s of programmers 100K Loc optimizing compiler Hrle Size of programs continues to grow What s the problem 0 LEE 5 years was of programmers 1M LDC l MS Word Excel 0 Vent lame 10years10005 ofprogrammers 10M LDC l Air traf c controlV Telecommunications space shuttle o Unbelievable years 7 programmers l W2K 35M LDC I Missile Defense System 100M LDC mantra 0 Software cannot be built fast enough to keep up with HNV advances Rising expectations a Feature explosion 0 Increasing need for high reliability software Hrle What s the problem Goals of this Course 0 Software is difficult to maintain aging software 0 Dif cult to estimate software costs and schedules 0 Too many projects fail Ariane Missile Denver Airport Baggage System Therac 14va I3 o Expose you to some of the problems typically encountered in software eng 0 Expose you to some of the techniques that have been found to be effective Requiring more rigor Often appearing quotobviousquot but only after being learned arm I Overview of Course Structure of Course o Emphasis on analysis and design 0 Leamapply new techniques for software developmen 0 Learn to work with a group 0 Improve technical writing skills 0 Become up to date on current trends in SE 0 Explore presentation media and techniques EHVIMIEI 5 0 Short assignments over readings o In lab assignments various SE tools 0 Homework 0 Quizzes 0 Group projects prototype analysis design 0 One hour exam 0 Presentations oral presentations prototype demos nmmm IE Software Engineering I A Brief Introduction m 4mm 17 Software Engineering Phases 0 De nition What 0 Development How 0 Maintenance Managing change 0 Umbrella Activities Throughout Iifecycle nmmm IE The Standard Development Cycle Definition 1 1139 lininliu 9 0 Requirements de nition and analysis I Developer must understand 0 Application domain 0 Reooifeo functionaiity 0 Required peffofmance 0 User interface Dirimm 1 Definition cont Development 0 Project planning 0 System analysis 0 Software design I User interface design I Allocate resources I Allocate system I Estimate costs res ur es t I H39gh39level des39gn I De ne work tasks Hardware 9 Define modular components Define maiof data structures I De ne schedule s ware 39 0 Users I Detailed design 9 Define algorithms and pfocedufai detaii Dinimm 21 Dirimm 22 Development cont Maintenance o Coding 0 Integration I Develop code for each I Combine mOdules module I System testing I Unit testing lininliu 13 0 Correction Fix software defects 0 Adaptation Accommodate changes I New hardware I New company policies 0 Enhancement Add functionality 0 Prevention make more maintainable man 1 Umbrella Activities Software Engineering Costs 0 Reviews assure quality 0 Documentation improve maintainability 0 Version control track changes 0 Configuration management integrity of collection of components 14va Hrle Relative Costs to Fix Errors What s a Methodology or Process Model The is Why sumvars r pays m Design code T estlng Delivery E a E 2 5 r a z Hrle 0 Set of activities notations tools in de ned sequence 0 Goal Order predicitability quality cost control 0 Follows requirementsgtdesigngtcoding etc sequence usually 0 Usually defines phases or steps 0 Often has notations 0 Sometimes has tools Hrle Waterfall Process Model Prototyping Process Model n14va mm o When to use prototyping Spiral Process Model o Helptne costomerprn dovvl39l tne reoorrements l Concrete deEl El test nut Often dunevla tne oser rnterrace P39aquotquot39quot9 R39s AM39VS39S o Explore alternatlve solotlons to a troublesome component I e o l oetermrne rt an approacn glvesacceptable perrormance o improve morale Panlally rurlrllrlg system pruvldesvlslblllty rnto a project Customer Evaluation Engineering Ulrlmm 31 Ulrlmm 32 Process Models Capabl Ity Maturity Model o Idealized views of the process 0 Different models are often used for different subprocesses I may use spiral model for overall development 0 prototypll39lg for a partlcularly complex component 0 Waterfall model torotner components seesmommemmem Qligm re Eamvutel Julvzml v ee Ulrlmm 33 o Levell lnltlal o LeveM Marla ed success depends on people I collect detalled metrrcs o LevelZ Repeatable o Level5 Optlmlzmg I track cust schedule I contlnooos process ton r nalr rmpro eme I bumer process lmpruvement o Level3 De ned ose stanoarorzeo processes Ulrlntm 3 Why is software development difficult cont Prolect characterlstlcs Nuvelty cnangrng requlrem Puuv proolem oemrtron rs largest caose ottarleo sottware W M X m1 WW pro ects Hardvvaresuftvvare unflguratlun Secorrtyreoo ements Real trme requlrements Rellabllltyrequlrements J vvtnrn develupment team More eoplemore commomc ll a on New programmers neeo lvalnlng Ulrlmm 35 0 Personnel cnaractenstrcs I Am 0 Management rssoes a Prlur Experlence ea lsil an s Commomcatron skllls 39 C e lmatm I Teamcooperatlon 39 SWEW WG 7mm Resuurce allocatron oo llty assurance 9 Facllltles and resources Versmn E r ldentlflcatlun Contracts cqolsltlon Ulrlntm 36 Summary Bottom Line 0 Software iifecycie consist of 0 Different process modeis concentrate on different aspects Waterraiimedei maintainaoiii Prututype medei ciarifyingrequirements Spirai medei identirying risk 0 Maintenance costs mucn more tnan deyeiopment Dirimm 37 0 US software is a major part of our societal infrastructure I Costs upwards of 200 billionyear 0 Need to I Improve so ware quality I Reduce so ware costsrisks Dirimm 38 Systems Engineering m rintm as Computer System Engineering 0 Computer System Engineering is a prooiemsoiying aetiyity itemize desired systemfunctiuns Anaiyze tnem Aiioeate runetions to indiyiduai system eiements 0 Systems Anaiyst computer systems engineer Startvvitn customerrdefined goais and eonstraints Deriye a representation or function performance interface design cunstraints and infurmatiun structure Tnat ean be aiioeated to eaen ortne generie system eiements i e SumVere Hardware Peopie atabase documentation proeedures o Fucus on WHAT NOT huvv Dirimm W Criteria for System Configuration Technical Derive representation tnat can be aiiucated Migrate Anaiyze fun ionsto Functions 0 system eiements Prubiem soiying Dirimm M Cntena foraiiocatiori of function and performance to genericsystem eiements o Tecnnicai Anaiysis existence ofriecessarytecnrioiogy function and performance assured maintainaoiiity o Enyironmentai interfaces proposed conrguration integrate Witn externai environment interoperaoiiity o Offrtnersneif options must be considered Manufacturing eyaiuation raciiities and equipment avaiiabie ouaiity assured Dirimm H Criteria for System Configuration Bus ess Issues Hardware and Hardware Engineering Cntena rorattocatron or tunctron and perrormance to genenc system etements o ProtecLCorrstderattorrs cost scneoutes and risks 0 Bustness onsroeratrons marketabthty pro tabthty o o LegaLCorrstderattorrs habthty propnetary issues infringement man rssues personnet trained potrtrcat probtems customer understanorng or probtem Hamlin 3 jog I test resuits tgt lgt V Well de ned mrtmm M Hardware and Hardware Engineering Hardware Engineering 0 Characteristics omponents are packaged as rndryrduat burtdrng biocks standardrzed rnterraces among components Large numberororrtne snetr components Performance cost and ayartabrtrty easrty deterrmnedmeasured 0 Hardware con guration built 39om a hierarchy of quotbuilding blocksquot skip Hamlin 5 o Pnases to system engrneenng ofhardware Deyetopment Ptanmng and reourrements anatysrs 0 best ciasses Elf hardware fur prubiern i3 roentrneatron ufvvhat neeosto be oesrgneo ano burtt Estabhsh a Ptan or road map toroesrgn rmptementatron May rnyotye a hardware speerneatron Use CAECAD to oeyetop a prototype breaoboaro Deyetop pnnteo truttF C boaros Manuraotunng or boaros mrtmm 6 Software and Software Engineering Three highlevel phases of Software Engineering o Functron may be tne rmptementatron ora sequentrat procedure for data mampu atron o Perrormance may not be exphcttiyde ned exception rn reaHtrne systems 0 So Ware eiemervt ofcomputernbased System consists of WO ciaSSeS of programs data arid do urnervtattorv Agptreatron Sotovar rmptementstbe pr prooessrng tunotron I s stem Sumvane rmptements oontrottunotronstbat enabte apptroatron sotmare to rntertaoe Wrtb otber system etements e ooeoure that rs reourreo to aooommooate rntormatron s Hamlin 7 o Dernrtron pnase Sortware ptanmng step Sortware Protect Ptan seope ot prujeci risky o resuurcetdemtftcaimn gt Bust and scheduie E tmaies Sortware Reourrements Anatysrs Reourrements Speerneatron o Sys12m Eiemem aHucaied in su ware is defined in at ti o Furmai mfurmaitun dumam anaiysts in E abhsh mudeis u mfurmaitun NEW and Prototype otsottware rs butt and eyatuateo by cus1um er Pertormarree reourrements or resource trmrts oetrneo in terms otsotmare ebaraotenstres Denmtron ano Reourrements must be perrormeo rn eooperatron mrtmm 8 Thlrd Phase of Software Engineering Structured DesIgn Design Issues o Deveiopment Pnase I Transiate set cif requirements intci an uperatiunai system eiement Design e gn Specificaticin o Cudng appmpviate pmgvamming ianguage my CASEtuui snciuiu be abie tci uirectiv trace detaii design descriptiunsfrurn cciue 9 Verification reiease and maintenance p Testing scifwvare Testing F39ian tci ting makimum number ciferrcirs befcire snipping Prepare sciftviare fcir reiease Quaiity Assurance Maintain su wafe tnrciugnciut its iifetime o Elicinliu 9 o Moduiantv Cntena Deccimgcisabiiig geccimpcise iarge prubiem intci easier tci sciive subpfubiems Ccimgcisabiiig new weii muduies can be reused tci create citner systems Understandabiiit new easiiv ungerstciciu witnciut citner reference infci Ccintinuig make smaii cnanges and nave tnem refiecteu in ccirrespcinuing cnanges in cine er a few muduies I Pretecticin arcnitecturai cnaracteristictci reduce prupagatiun cifside effects cif a given errcir in a mciuu e Dirimm 5 Design Issues Uses Relation a Basic Design Principle Linguistic moduiar units correspond to svntactic units in impiementation ianguage Few interfaces minimizetne numberofinterfaces between moduies Smaii interfaces weak coupiing minimize amount ofinfo moving across interfaces Ekgiicit interfaces wnen moduies do interact snouid be in obvious wa I information niding aii info about fnostie i5 nidden from outside access Elicinliu 5i Dirimm 51 Design Heuristics Design Heuristics cont d o Evaiuate Firs trcut prugram structure Reduce Euupiing Use Expiuding ccimmcin prcicess exists in 2 er rncire muduies Use irnpiuding if nign Euupiing EXiS tS impiciuetci reduce cuntfuitfansfef reference tci ginbai data and interface EDrnpiEXity o Minimize Structureswitn nign fanruut Strive fcir Fanrin as ueptn increases 9 muduie snciuiu be in deeper nesting o Evaiuate muduie interfaces negucecunnieknv neguceregungancv innrcveccinsistencv GOD is going to help us with these Issues Elicinliu 53 0 Define predictabie functicins fcir muduies but ncittcici restrictive aiack bEIX mcguies are pvedidabie iike nargware R eshicting mcguie pvucessing tci singie suufuncticin nign ccinesicin Pass ciniv a few iike 3 max ang return one perm frcim mci uie Hign maintenance ifrangcimiv restrict icicai gata structure SiZE Upti ns witnin ccintrcii iiuw uitypes cit ekternai interface 0 SingiErentryrsingierexit muduies Avciig Patnciicigicai Ccinnecticins Enter at ten exit at buitum Patnciicigicaiccinnecticin entrvintci miggie cifmciguie 0 Package SWbased ciri design ccinstraints and pertabiiitv requirements Assembie Schir specinc pvucessing envircinment ngiam mav uveviay itseif in memcirv recirganize gmth mcguies acccirging tci gegree cit iEpEtitiun access requency ang intervai cifcaiis Separate ciut mcguies ciniv useg cince Dirimm 5 Veri cation Part 2 Analysis of design artifacts Informal and formal techniques Symbolic execution Use of analysis to complement testing GJZ sections 64 and 65 Recall Verification problem is to check that an artifact is implemented correctly Two general approaches execute the artifact testing prove properties of the artifact itself analysis Approaches have different strengths and weaknesses and are complementary Analysis for veri cation Distinct from problem analysis Characterizes a class of executions May be formal or informal Formal techniques based on a model eg a formal speci cation of the program eg an artifact that is systematically derived from the program Informal Code walkthrough Group meeting to analyze the code ofa system Recommended prescriptions 7 Small number of people three to rlve r Panlclpanrs recelve wrltten documentatlon from the deSlgrler a few days before the rneetlrlg Predeflrled duratlorl of rneetlrlg a few hours Focus on the dlchlery of errors not on flxlrlg them Panlclpams deslgrler moderator and a secretary Foster cooperatlorl rlo evaluatlorl of people Experlerlce shuvvsthat must Errors are dlscuvered bythe designer durlrlg the presenrarlon lelE tryan to Explalrl the dESigrl tn uther people Informal Code inspection Reading technique aiming at error discovery Based on checklists eg use of uninitialized variables jumps into loops nonterminating loops array indices out of bounds Formal techniques Systematically check or derive properties or c mpute residual programs from a program Symbolic execution Abstract interpretation Model checking Partial evaluation Program slicing Many have become practical only recently Motivation for techniques Example Simplest model of the state of a program in Suppose program is executl n is a 4tuple of the form executed wi h th read1 ltstore pc Inne oumlegt Input le mam lt410gt store is a set of bindings ofvariables to values e g X2 3 y50 5quotHellu ward pc is the program counter records the location of control lrl the program infile and out le represent input and output les respectively Example Example Initial state39 Executing rst edge yields iL ai lt i39 3910 1 zeaau 2 zeaau lt4 10gt reams ltgtY reams ltgt gt ltgt gt Example Example Executing ne xt edge yields lt i4 3910 3 eaau reada ltgtY ltgt gt Executing next edge yields lt i5 13 4 eaau ltgtY reada ltgt gt Example Exam ple Executing next edge yields Executing next edge yields lt i5 a13 read lt 5 313 eaa1 reams reams ltgtYgt ltgtYgt Example Symbolic execution Finally Program executed using symbolic values ltg51313v read eg v riables bound to values ofthe form A or A3 ltigt reada 43gt gt rather than 10 or 13 State of execution records binding of variables to symbolic values representation of he path executed to reach the state ion which accumulates constraints on symbolic values required to force program to exercise the path Symbolic execution continued More formally the triple of the form ltsymbolicbinding path pathconditiongt symbolic state is a One symbolic execution corresponds to many actual executions Useful for determining conditions sufficient to exercise a given path Application Selecting paths in testing Coverage criteria often dictate a profile for choosing paths of execution totes Eg want to execute loops at their boundaries 0 1 n1 n Easy to name a path to test Problems Not trivial to derive test data to execute path s Not e ery path in a CFG corresponds to a feasible execution ofthe program Symbolic execution and testing The path condition describes the data that traverse a certain Use in testing select path symbolically execute it synthesize data that satisfy the path condition they will execute that path Example Suppose we want to execute the path lt1 256gt eaau reada Example Initial symbolic state lt il aA inco outC0 Example Execute rst edge39 lt iin1 ain2 inc2 outC0 lt1gt eaau lt12gt eaau true gt reams true gt reams Example Example Execute next edge lt iin1 ain2 inc2 outC0 lt1 25gt in125gt eaau reada Execute nal edge lt iin1 ain2 out1 in2 inc2outc1 mam reada 125egt in1 2 5 x inC2 gt Use path condition to derive inputs Path condition helps to identify inputs that cause program to exercise desired path Path condition mm 2 5 x inC2 Tells us we need an input le with Two elements First ofwhich is a number greater than or equal to 5 Easy to choose such a data set Symbolic execution rules Case 1 source not a decision Sb 2 Sb lastp s ltsb p pcondgt ltsb p lttgt pcondgt Symbolic execution rules Case 2a evaluable decision evalconds Sb TRUE lastp s ltsb p pcondgt TRUE ltsb p lttgt pcondgt evalconds Sb FALSE lastp s ltsb p pcondgt FALSE ltsb p lttgt pcondgt Symbolic execution rules Case 2b nonevaluable decision evalconds Sb L lastp s ltsb p pcondgt TRUE ltsb p lttgty pcond simpconds sbgt Symbolic execution rules Case 2b nonevaluable decision evalconds Sb L lastp s ltsb p pcondgt FALSE ltsb p lttgty p cond asimpconds sbgt Edge rules Sb readx sb inc 9 inc1 x eininC1 Sb writeE sb outC Home sbxEsbxesimpEsb Example Example Suppose we want to Initial symbolic state execute the path lt il aA inC0 outC0 lt1234234256gt lt1gtY zeaau truegt zeaau reada reada Example Example Execute rst edge Execute next edge lt iin1 ain2 inC2 outC0 lt iin1 ain2 inC2y outC0ly lt 1 gt1 1 1 gt1 true gt zeaau mm lt 5 gt zeaau reada reada Example Example Execute next edge Execute next edge ltiin1 1 ain2 3 ltiin1 1 ain2 3 inC2 outC0 inC2 outC0 lt1 2 3 4gt eaa1 lt1 2 3 4 2gt eaa1 iquot1lt 5 gt reams iquot1lt 5 reams Example Execute nex edge 39 39 11ain23 inC2 outC0 lt123423 in1 lt 5Ail39ll11lt 5 gt eaau reada Example Execute next edge lt iin1 1 1 ainm 3 3 inC2 outC0 lt12342 gt in1 lt 5Ail39l11lt 5 gt eaau reada reada Example Example Execute next edge Execute next edge lt 111ain233 ltiin111ain233 in 2 outC0 inC2 outC0 lt12342342gt read in1lt5in11lt5gt 39 lt123423425gt mm in1 lt 5 Ain11lt 5 mam Example Execute nal edge lt iin1 1 1 ainm 3 3 out1 in ZJ6 inC2 outC1 lt123 4234256gt eaau v reada in1 lt 5Ail39ll11lt 5 A in122 inC2 gt Now derive inputs from path cond Path condition in1 lt 5x in1 1 lt 5x in1 22 5x inC2 Tells us we need an input le with W0 elements 7 First ofwnlcn is a number less than four and greater than or equal 103 Easy to choose such a data set Requirements elicitationanalysis Part I Elicitation To ics Problem statements requirements and elicitation m w mom 27 5quot nt r Smutah Because computers can serve so many purposes the practice ofsw development is less specialized automotive engineer designing a sports car does at ne to as ether the car must be capable of carrying 75 people traveling underwater carrying a ten ton load or molIng backwards at 700mpl7 Michael Jackson m w mom 27 5quot nt r Smutah Cost of requirements errors by phase Analysis Design Testing Pastdeployment m w mom 27 5quot nt r Smutah Gulf between client and developer perspectives on software requirements CustOmer Developer m w mom 27 5quot nt r Smutah Bridging the gulf Requirements Speci cation Customer Developer m w mom 27 5quot nt r Smutah The requirements speci cation to be developed be no newredolrements added once development beglns edolvalent to a quotprolect nandoor ln a prugrammlng course 7 part ofthe quotcontract between cllent and deve oper Critical artifact for many reasons 7 freezes quotwnar ls snoold Two schools of thought on notion of freezing reqts l tls a mvtn to think we can freeze requlrements tnererore we must develop software assumlng new reqts wlll arrlve after development beglns o kwe c n develop a qualltv system lr new reqts are added a er development beglns tnererore tne reqts spec snould be tnorougn and sublected to qualltv assurance Waterfall processes subscribe to the second View m w mom 27 5quot nt r Smutah Issues Given the critical nature of the requirements specification important to get it right Metarequirements ie reqts ofa reqts spec cansStem cam lete undersbndabe by both client and developer Question Why might these metarequirements be dif cult to satisfy m 45 mm 2mm x swim Completenessconsistency problems Consistency problems ultiple interpretanions of similar terms developer svocabulary vs cllerlt s Concepts built uponquot unde ned conceptsterms E g scneduling system based on notion orquotconstrainr But constralrlt never really deflrled e E g is a quotrecurrlng cornrnltrnerlt cine or rnultlple constralnts7 Completeness problems Customer may have only afuzzy understanding of what he or she wants Developer lacks implicit knowledgequot of client domain as 45 mm 2mm x swim Addressing obstacles m 45 mm 2mm x swim Elicitation techniques as 45 mm 2mm x swim Client View of Domain Clients can t be expected to have rigorous or formal view of domain Hence can t be expected to completely be aware of domainproblem relationship Some knowledge is explicit Easier to get at Some knowledge is Implicit Manyconstraints are implicit Hard to get at m 45 mm 2mm x swim Technique Initial client interview Goal Discover as manyrequrements as you can in a limited amount of tme lmplicatio sserltlally an inrorrnationextraction process llt openrended estions ollt to ask follow up guestlons but don t get bogged down regulrernerlt oryou Will run out urtirne Never durlng thlslrltErleW e suggesta meterwaytummkanuutir e explessoplnlonsonanwels m 45 mm 2mm x swim Sam le S stem Question Structure Is Critical p Y Smart Crutse Requtrements hat is the client s problem e what preclsely lrthe problem to be solved Whmdmm When does the problem occur e what geherates the problem e sltuatlohs are they hew or old Trahslehtv Where does the problem occur w tar e problem domam boundarles How is the problem handled now Why does the problem exist Remember m5 5 a mwd mw diagnusls lhrormatloh extractlorl process 533455 may Mm r 533455 may Mm r Closedended questions Openended questions New reqtl i Q When a vehicle cuts in from of the car 0 What happehs wheh a car cuts lh front ofyou you have to slow down quickly and not A Well lrthe lead car lstoo close the drlyer has to lhteryeh or else hit it right a crash results l uess we heed a warmh ll ht m thls case rthe car ls moylhg faster you don39t haye to do ahythlhg He s pulllhg a a l gu s the ohly tl k sed ls wheh the closlhg A Yes speed lstoo hlgh fo the dlstahce ahdy twlthlh the capaollltles of the system to slow dowh But l uess lr a colllsloh ls lmmlheht we You leamed absolutez not7 ng Clarlrlcatloh Now we learned something 533455 may Mm r 533455 may Mm r Responses From eltcttatlon to analysts 0 Tell me what should happeh t a car 2 ts lrl mm at our cartuu close to avuld a culllsluh7 Your interview should result in a large volume of facts A l guess slhce there ls hothlhd the whic must be analyzed to derive requrements system can do tum ottthe cohtroller quot 7 Hand and ho e the dryer brakes lh tlme p a hthesls What7 Are you nuts7We should at least cohereht quotmodel ofthe 1 Much better Wm S DP Shuuidn twe7 problem requlremerlts a We haye dulte a olt ot braklng power A Pym A model can be anal zed to lh the system Whatwould happeh ldehtlry potehtlally lhcohslsteht facts and W2 um ll W27 7 lhrer facts that should be true A Well l guess lt could ayold a colllsloh and at least etthe car slowed dowh but Both ofthese Issues must be clarified often via a the attome stell me Wedun twantthe system at when a colllsloh uncurs You are done eta lhsporhl second cllent Intervlew ahd stllumesoved hal Nonrlechnlca cohatralht m as smart Ewpmmws x shutout m as smart Ewpmmws x shutout Putative questions Asks about a situation in a way that tests your model ofthe main SWE it a Iead hehtcie turn or otherWtse IE hot in from or the car nymore the car can resume the previous speed correct CLIENT Vest exactiy Very speci c question that teats the idea ofcrurse pus mittston avoidarice m w swan zhehuhhg x hnthatt Sample Interview I SWE Cauid YUM teII he sham the muse eahttat shsehh CLIENY Vest hahtat e hahethe Ear hahtatt se eahttat hatas a xed saeea What he haht ts ta ham s that tt stahs aahh hhehthete ts a hehtete th Estabiisn facts but DpErr ehaea It s seemineg vaiuus hhat happehs haW SWE What aaes a ahhet currentivda ththts snuatmm CLIENY cahehtththe atthet eah sea ahthe brakesta atsehaaae the aatset attath the etatse aheahhteteth oh hat usethe etatse I e Why an yuu heea smart SWE Cruise Furtne prubiem m w swan zhehuhhg x hnthatt Sample Interview II LIENY th ah ataah ehhtahtheht ewe th aettatt usingthe etatse aeeahes thtatthat but tearh he ae hate thtetestea th ahatatha atttstahs The system ts mtehamea Thisisguud thta SWE tett he hae abamthe eatttstah ahataahee asheat Piease CHEW DpEn thta gatheth tthe ttht hahetase a teaa hehette eh aet aha eahttat the sea hh tethe eat ts th ttattthe ehahees at a eatttsah ah be ateatth reduced sWE Laahthgtarpmeesshehahtar hahheataashsteh a ataa mtttstahthathhtetseehahaa thturmattuh CLIENY Sappas ea hettstarawhaatwthmatahtahetspeeathahthe tw Asthe midasestthesv em maid attetthespeeata hatehthespeea atthetmeh Spam requestfmms SWE What aaes the Siav daw r pra ie taah Iike7 m he as swan themh x hnthatt Sample Interview III Great thstght CLIEN Wett he hahe dismveredthat sahhha aahh ttheatth ahet a taha atstahee Eh teaa ta athet eats emttha h haht athaa thtsts atsa s hstea i 5 i a ht speedandsta aeaa hhehheeampmethathehhraettaaaase SWE Very Specific ta resuive ambiguity th dumain terms What ts taa ciase oh we can thterhhatthts means CLIEN h tttt t t t mudei that resuives ambiguity SWE oaesthatheahatsuhp EEnse taaciaseis m CLIENY Ves ciaserthan 175 tttstaa aase 9 verificatiun m w swan zhehuhhg x hnthatt Sample Interview IV tththg m maaei SWE What tt a eat cuts th haht atwu Wthththe sate 2 seeaha atstahaea CLI Em I guess sthee thete ts haththa the shseh Eh aa rath ahthe cammiier aha hate the atthet atahes thtthe SWE rhe wees thateate he hahe a tatt amaunt at atahtha pahet avaiiahie What heme hetheptaateh Mhusingithere7 VS ttEamWE use t CLIENY the 9812 aaes hahe aeaessta the brakESt hhteh ahe antieiack reehhteauh he maid apprhthe hmkest am atthe hahemt m attameVSteII us hea tathet rim hahethe shsteh aetthe tta eatttsah ts thhtheht A nunetechnicai issue ahses m w swan zhehuhhg x hnthatt Types of Questions as Tools a Usuthieadstodeepermotthattons Information On Structure a Usuaiiyieadstofacts Q Usuaiiyieadsteadrscusstonotproces notstructurel a Maximaiiy ope mtghtiead to no data 39 39 uid yuu ehpiath Wthe satety zahe ts 2 SEEDHds m w swan zhehuhhg x hnthatt
Are you sure you want to buy this material for
You're already Subscribed!
Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'