CS427: Software Engineering IPotential changesSome questions and answersTopicsWaterfall modelArchitectureImportance of architectureHow to develop architecture?What order?Architecture in RUPWorkflow for capturing requirementsWorkflow for analysisArchitecture in XPPicking an architectureArchitecture of Amazon.comFacts about Web architectureOne solutionAnother solutionOrganizing project: peopleOrganizing project: processSecond example architectureCard game architectureSlide 23Slide 24Your example architectureTrade-offsQuality attributesATAMSlide 29What is an architect?Why architecture?What they don’t tell you?Next: UML introduction1CS427:Software Engineering IDarko Marinov(slides from Ralph Johnson)CS427 9-2Potential changesMidterm exam likely to be in the eveningLikely time: 7pm on Oct 10Hard to reserve rooms for class timeCan take make up exam at class time“Project fair” likely to be moved earlierDepends on how you form groupsWiki will list projects (not just proposals)CS427 9-3Some questions and answersWhen will HW1 be graded?By Oct 6When will proposals be eliminated?By Sep 29, start forming 8-student groupsGroup with on- and off-campus students?Possible, but not advisableWhat will be on midterm, any study guide?E.g., http://brain.cs.uiuc.edu:8080/SEcourse/Exams+Fall+06CS427 9-4TopicsCoveredProject initiationProject planningRequirementsToday: ArchitectureNext week: More on designUML: a lot of new, more technical readingCS427 9-5Waterfall modelME: Name the phases (what if more or less?)CS427 9-6ArchitectureHigh-level design (components = modules)Pervasive patterns (components = lower level objects)Early design decisionsHigh-levelPervasiveExpensive to changeCS427 9-7Importance of architectureHelps find requirementsKey to meeting non-functional requirements (ME: What are those?)Divide the system into modulesDivide the developers into teamsSubcontract work to other groupsFind packages to reuseCS427 9-8How to develop architecture?Use an architecture you’ve seen beforeInvent oneLet it emergeME: Which process favors which way?CS427 9-9What order?Use cases first?Processes first? Data model first?GUI first?Depends on architectural styleCS427 9-10Architecture in RUPUse casesAnalysis modelDesign modelArchitecturePreliminary It. Iter. 1 Iter. 2 Iter. 3 Iter. 4 Iter. 5 Iter. 6ME: Name the phases in RUPCS427 9-11Workflow for capturing requirementsS y s t e m A n a l y s tA r c h i t e c tU s e - C a s e s p e c i f i e rU I D e s i g n e rF i n d A c t o r s a n dU s e C a s e sD e s c r i b e U s eC a s e i n D e t a i lP r i o r i t i z eU s e C a s e sP r o t o t y p e U . I .S t r u c t u r e t h eU s e C a s e M o d e lCS427 9-12Workflow for analysisA r c h i t e c tU s e - C a s e E n g i n e e rC o m p o n e n t E n g i n e e rA r c h i t e c t u r a lA n a l y s i sA n a l y z e a c l a s sA n a l y z e a U s eC a s eA n a l y z e ap a c k a g eCS427 9-13Architecture in XPNo architect“System metaphor” is the architectureInfrastructure emerges, not planned in advanceGood developers will convince customer to pick important user stories firstCS427 9-14Picking an architectureMany standard architecturesEach has strengths and weaknessesEach solves some problems and creates othersCS427 9-15Architecture of Amazon.comDatabaseWebBrowserLogicWebServerHTTP and HTMLcgi, servlet,ASPCS427 9-16Facts about Web architectureHTTP protocol is statelessstate encoded in URLs and cookiesWeb server should be statelessAll state is in databaseSeparate “presentation” from logic and database designCS427 9-17One solutionDatabaseWebBrowserPresentationWebServerHTTP and HTMLBeans, MTSLogicJSP, ASPCS427 9-18Another solutionDatabaseWebBrowserLogicWebServerHTTP and HTMLcgi, servlet,ASPUI TemplatesFrameworkCS427 9-19Organizing project: peopleDatabase designerUI designerProgrammersCS427 9-20Organizing project: processDatabase design is keyHard to changeEverything else depends on itGUI tells what data is neededBuild prototype earlyRedo at the end after feedbackRelatively easy to changeCS427 9-21Second example architectureOnline card gameJava clientServer used for finding people to form a gameOnce game starts, server not usedCS427 9-22Card game architectureClient Client Client ClientServerCS427 9-23Card game architectureUse server only to find other clients, but game is peer to peerMore scalableCan have problems with firewallsHarder to make secureAll communications goes through serverNot as scalableMore reliable, secureCS427 9-24Card game architecturePeer to peerRandom numbers, logic is in clientEach client broadcasts events that it generatesUsually only one client is able to generate events at any one timeServer Random numbers, logic is in serverCS427 9-25Your example architectureWhat two options you may consider?CS427 9-26Trade-offsHow do you pick an architectural style?How do you make design choices?What is important?Flexibility and ease of changeEfficiencyReliabilityCS427 9-27Quality attributesDesired properties of entire system, not particular featuresNon-functional requirementsUsability, maintainability, flexibility, understandability, reliability, efficiency, ...CS427 9-28ATAMArchitectural Trade-off Analysis MethodCollect scenarios (architectural use cases)Collect requirements, constraints, and environment descriptionsDescribe candidate architectural stylesEvaluate quality attributesIdentify sensitivity of quality attributesCritique candidate architecturesCS427 9-29Trade-offsHow it is really doneExperts pick a way that seems best and start to use itIf problems arise, they reconsiderWant more reading?General reading on making (big) decisionshttp://www.fastcompany.com/online/38/klein.htmlCS427 9-30What is an architect?Responsible for choosing architectureResponsible for communicating with clientResponsible for making trade-offs about featuresChief builder - “Architect also implements”Leader of developersCS427 9-31Why architecture?A common vision of the design that enables people to talk to each otherThe key design decisions of the systemSimplified version of design, ideal for teaching new developersCS427 9-32What
View Full Document