Unformatted text preview:

DesignSoftware Engineering: Elaborated StepsSystem Design PatternsLayered ArchitectureDocumenting Your DesignThink AboutNext StepExamplesTeam Exercise (10 minutes)Detailed DesignWhat does it include?From System to Detailed DesignRelating Use Cases, System & Detailed DesignDomain ClassesDomain Classes Matching Implementation ClassesDefining Domain ClassesBridge ExampleClass exercise: teacher portalUse Cases for a Teacher PortalSlide 20Slide 21Slide 22Back to Detailed DesignBridge Example CompletedDesign15 FebruarySoftware Engineering: Elaborated StepsConcept (contract, intro on web site)Requirements (use cases, requirements)ArchitectureDesignImplementationUnit testIntegrationSystem testMaintenanceSystem Design PatternsModel-View-ControllerData flow systemsPipes and filtersBatch sequentialIndependent componentsClient-serverParallel communicating processesEvent systemsVirtual machinesInterpretersRule-based systemsRepositoriesDatabasesHypertext systemsLayered architecturesLayered ArchitectureRole-playing game layerCharactersLayoutRolePlayingGameEncounterCharactersEncounterEnvironmentEncounter GameApplication layer3D engine layer«uses» «uses»Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.Coherent collection of software artifacts, typically a package of classesDocumenting Your DesignTwo types of documentationThe details of the implementationLess importantCaptured in the code Components:Inline commentsDoxygenHow the system fits togetherCritical to understandingNot easily captured in the codeExternal documentation requiredThink AboutHow would you describe the work?What is the first picture that you will draw?That is probably the architectureHow to proceedPick a general modelSpecialize it to your projectDraw the pictureOne of the few places that I REALLY want a pictureNext StepWhat other models are needed?Data flow?Data model? Almost always neededState transition?Key considerationsWhat are the hard parts of the work?What are the critical areas?ExamplesIf you are in a repository model,the data model is probably keyIf you are building a complex game,the state transitions may be criticalTeam Exercise (10 minutes)Draw your system designReport OutDetailed DesignBuild on well understood patterns from the system designGoal is to prepare the project for implementationWhat does it include?System design decompositionModulesProcessesData Detailed module definitionsDetailed data definitionsDesign decisionsFrom System to Detailed DesignRelating Use Cases, System & Detailed Design1. Use case 3. System Design2. Domainclasses4. DetailedDesignAdapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.Domain ClassesObject-oriented paradigm, not implementationDomain = application specificClasses defined in natural languageUsed to explain the architecture and designClasses derived from the requirementsNeed not match the implementationHard to not fall into that trapDomain Classes Matching Implementation ClassesBenefitsSimplicity of mappingDrawbacksLater changesNo worse off then if not matchedMay be too early for implementation decisionsDefining Domain ClassesBegin with Use CasesIdentify nounsExternal agents are not domain classesAre these key classes for the application?Are there others?Identify attributes and functionality for each classValidate Walkthrough use casesTry changes and extensionsLook forMissing attributes or functionsChanges that reach every whereBridge Example1. Use case 3. Architecture2. Domainclasses4. DetailedDesignAdapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.“Cars should be able to travel from the top of Smith Hill at 65 mph, travel in a straight line, and arrive at Jones Hollow within 3 minutes.”AutoRoadClass exercise: teacher portalWant to identifyClassesAttributesFunctionsUse Cases for a Teacher Portalteacher presented with view with his contentread messages from other teachers and administratorsschedule an assessmentselects class selects test based on difficulty and subject create new testcreate new questiontype of questionintroductory textpossible answerscorrect answeredit existing questionedit full testpost messagecontentrecipientview class content ClassesAttributesFunctionsUse Cases for a Teacher Portalteacher presented with view with his contentread messages from other teachers and administratorsschedule an assessmentselects class selects test based on difficulty and subject create new testcreate new questiontype of questionintroductory textpossible answerscorrect answeredit existing questionedit full testpost messagecontentrecipientview class content ClassesAttributesFunctionsUse Cases for a Teacher Portalteacher presented with view with his contentread messages from other teachers and administratorsschedule an assessmentselects class selects test based on difficulty and subject create new testcreate new questiontype of questionintroductory textpossible answerscorrect answeredit existing questionedit full testpost messagecontentrecipientview class content ClassesAttributesFunctionsUse Cases for a Teacher Portalteacher presented with view with his contentread messages from other teachers and administratorsschedule an assessmentselects class selects test based on difficulty and subject create new testcreate new questiontype of questionintroductory textpossible answerscorrect answeredit existing questionedit full testpost messagecontentrecipientview class content ClassesAttributesFunctionsBack to Detailed DesignWhat are we starting with?Domain classesSystem design modelsUse casesWhat do we need to do?Define implementation classes that realize the domain classes within the architecture framework and implement the functions defined in the use casesBridge Example Completed1. Use case“Cars should be able to travel from the top of Smith Hill at 65 mph, travel in a straight line, and


View Full Document

UNC-Chapel Hill COMP 523 - COMP 523- Design

Download COMP 523- Design
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view COMP 523- Design and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view COMP 523- Design 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?