Internet-based Application Development -- copyright (c) 1998-2001 by Eric J. Braude 11/30/2003-- Components -- page C.1Chapter 14Architectures and FrameworksProcess Phases Discussed in This ChapterRequirementsAnalysisDesignImplementationArchitectureFramework Detailed DesignxKey: = secondary emphasisx = main emphasisAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Learning Goals for This Chapterq … the goals of software architectureq … the meaning of “frameworks”q … express a software architectureq … show a full class modelq … show a full state model q … show a component modelq … build frameworksq … complete a detailed design Be able to …Understand …Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.An Architecture for a Video Store ApplicationRentalsCustomersVideosAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Internet-based Application Development -- copyright (c) 1998-2001 by Eric J. Braude 11/30/2003-- Components -- page C.2A Sequence for Obtaining The Class Model1. Create domain classes-- from requirements analysis3. Create remaining design classes-- to complete the class model-- possibly use frameworkMoregeneral2. Create architecture-- typically use framework0. Framework (some or all pre-existing)Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.TargetApplicationClass model“with objects of these classes ...”e.g., with Engagement … classesState model“reacting to these events ...”e.g., when foreign character entersUse-case model“Do this ...”e.g.*, engage foreign characterData Flow model“in this way ...”e.g., character scores flow from … to …To express requirements, architecture & detailed designModels* Video game exampleAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.TargetApplicationClass modelState modelUse-case model:Data flow modelUse caseScenariosBusiness use caseelaborated by ...SequencediagramRole of Use Case ModelsTargetApplicationClass modelState modelUse-case modelData flow modelclassmethodspackageConsistsof ...Jacobson et alRole of Class ModelsInternet-based Application Development -- copyright (c) 1998-2001 by Eric J. Braude 11/30/2003-- Components -- page C.3Role of Component ModelTargetApplicationClass modelState modelUse-case modelData Flow modelProcessing elementSub-processing elementData typeorganizedby ...Jacobson et al1Data storeData Flow Diagram: Explanation of SymbolsAccount #& depositbalancequeryUseraccountdatabaseaccountdataGet depositCreate accountsummaryValidatedepositPrinterInputOutputProcessingelementData typeDirectionof data flowData store…...Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Partial Data Flow Diagram for ATM Applicationaccount #& depositbalancequeryaccount #& depositaccount #UserMakeinquiryaccountdatabasedeposittransactionaccountdataGet depositGet inquiryValidateinquiryDo deposittransactionCreate accountsummaryValidate depositerrorerrorPrintermemberbanksbank nameDisplay accountaccount #accountdataaccountdisplayAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.screentemplateDetailed Data Flow Diagram for a Banking ApplicationAccount.getPass-word()Account.verifyPass-word()Expand details……..Pass-wordCustomerbalanceunacceptableATM usersDeposit-screen.display()Account.getDeposit()statuslocallogbalanceUserCustomer.getDetails()CustomerAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Internet-based Application Development -- copyright (c) 1998-2001 by Eric J. Braude 11/30/2003-- Components -- page C.4Partial Encounter Video Game State ModelSetting up PreparingWaitingComplete setupForeign character enters area EngagingPlayer clicks qualities menuAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Player moves to adjacent area[foreign character absent][foreign character present]Using Conditions in State-Transition DiagramsEngagingWaitingeventconditionconditionstatestateAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Player moves to adjacent areaSettingqualitiesEncounterState-Transition DiagramSetting upEngagingWaitingPlayer completes setupPlayer dismisses report windowReportingEncounter completedPlayer dismisses set qualities widowPlayer requests statusPlayer requests to set qualitiesForeign character enters area [foreign character absent][foreign character present]Player quitsForeign character enters area Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Role of State ModelsTargetApplicationClass modelState model: “reacting to these events”Use-case modelComponent modelStatesTransitionsSubstatesdecomposeinto ...Jacobson et alAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Internet-based Application Development -- copyright (c) 1998-2001 by Eric J. Braude 11/30/2003-- Components -- page C.5Design Goal At Work: à Correctness/Modularity ßWe want to decompose designs into modules, each well-knit, and depending on few others.Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Cohesion and Coupling12 3 45 6High cohesion Low couplingHigh couplingBridgecomponentcomponentcomponentbrbSteeltrussAdapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Architecture and Modularization of Encounter Video GameEncounterCharactersEncounterGameEncounterCast«facade»EncounterGame«facade»EncounterEnvironmentEncounterEnvironment«facade»Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.Internet-based Application Development -- copyright (c) 1998-2001 by Eric J. Braude 11/30/2003-- Components -- page C.61. Develop a mental model of the application.o as if it were a small applicatione.g.,
View Full Document