CS427: Software Engineering IAdministrative infoTopics on designArchitectureArchitecture is used to:Object-oriented designResponsibility-driven designSlide 8Slide 9OODWhat order?Data-centered architectureSlide 13Transaction-orientedTransactionsWork-pieceSlide 17Realtime-controlTrade-offsQuality AttributesATAMSlide 22What is an architect?Your projectsNext: Quality Assurance1CS427:Software Engineering IDarko Marinov(slides from Ralph Johnson)CS427 19-2Administrative infoNew Wiki serverhttp://pixie.cs.uiuc.edu:8080/SEcoursePlease report broken links (such as for HW3)HW3 is due on Tuesday, Nov. 7State machines and ADTsProject groups should start meeting TAsGet feedback on projects from TAsOffice hours: Mon 3-4, Tue 10-11, Thu 2-3CS427 19-3Topics on designPreviouslyComponent-level designModularity and abstractionRefinementXP example (for analysis and design)TodayOO design (and some RUP reminders) Time permitting: revisit Viking exampleCS427 19-4ArchitectureEarly design decisionsHigh-levelPervasiveExpensive to changeArchitectural stylesCS427 19-5Architecture is used to:Decide what design problems to work on firstDivide the system into modulesDivide the developers into teamsSubcontract work to other groupsDecide what technology to useCS427 19-6Object-oriented designHow to view objects/classes in your software systemBook describes three methodsBoochEvolved into UML/RUPSchlaer-MellerObject information, object state, processing/actionsResponsibility-driven designObjects and their collaborationsCS427 19-7Responsibility-driven designObject model is made up of cardsEach card represents a classClass listsName, superclassResponsibilitiesCollaboratorsCS427 19-8Responsibility-driven designStart with a “scenario” – a use caseAdd to classes/responsibilities/ collaborations to implement scenarioOnly change classes because of scenarioComplaint? Invent a scenario!CS427 19-9Responsibility-driven designLike RUP and XPUse case drivenIncrementalLike XPLousy documentationBest seen liveCS427 19-10OODWhat is OOD good for?Business systemsGUIsEditorWhat is it bad for?Real-time controlCompilers?CS427 19-11What order?Use cases first?Processes first? Data model first?GUI first?Depends on architectural styleCS427 19-12Data-centered architectureDatabase design is keyNot hard to add data, can be hard to changeBehavior less important, easy to changeRUP can be overkillXP can be a problem because refactoring a RDBMS schema can be hardCS427 19-13Data-centered architectureDB2Enter ImmunizationEdit immunization types and rulesSend Reminder LettersCreate PatientEdit PatientCS427 19-14Transaction-orientedTransactions are stored in a databaseTimecards and paychecks (payroll)Purchases and sales (retail)Telephone calls (telephone billing)System keeps track of totalsTotals are function of transactionsRules for computing totals tend to be complex and frequently changeCS427 19-15TransactionsSales JournalCash registers Sales proc.InventoryTextbookTradebookCredit CardsReceivingCS427 19-16Work-pieceUser is manipulating complex dataData only changes when user changes itModel of what user is thinking, not of the worldUser interface is often importantEfficiency usually is not importantIdeal for object-oriented programmingCS427 19-17Work-pieceBinaryExpressionSpreadsheet InterfaceCell*SpreadsheetRuleCellReference2*dependentCS427 19-18Realtime-controlSystem must respond in a short time to events in the real worldMust be efficient enoughData usually trivial, GUI usually simpleUsually contains feedback loopsCS427 19-19Trade-offsHow do you pick an architectural style?Depends on what you knowDepends on architectural qualities that are importantWhat is important?Flexibility and ease of changeEfficiencyReliabilityCS427 19-20Quality AttributesDesired properties of entire system, not particular featuresNon-functional requirementsUsability, maintainability, flexibility, understandability, reliability, efficiency, ...CS427 19-21ATAMArchitectural 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 19-22Trade-offsHow it is really doneExperts pick a way that seems best and start to use itIf problems arise, they reconsiderA paper on general decision-making http://www.fastcompany.com/online/38/klein.htmlCS427 19-23What is an architect?Responsible for choosing architectureResponsible for communicating with clientResponsible for making trade-offs about featuresChief builder - “Architect also implements”Leader of developersCS427 19-24Your projectsMore than one person can play the architect roleMore than one person MUST implement parts of the codeBut not everyone has to implement codeDocument your processTAs will provide more detailed grading criteriaCS427 19-25Next: Quality AssuranceHamlet and Maybee, Chapter 19 on Testing (not 17 or
View Full Document