DOC PREVIEW
USC CSCI 578 - Implementing

This preview shows page 1-2-14-15-30-31 out of 31 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Implementing ArchitecturesObjectivesSlide 3The Mapping ProblemCommon Element MappingCommon Element Mapping (cont’d)Slide 7One-Way vs. Round Trip MappingOne-Way vs. Round Trip Mapping (cont’d)Slide 10Architecture Implementation FrameworksSlide 12Slide 13Canonical ExampleMore on FrameworksSame Style, Different FrameworksEvaluating FrameworksEvaluating Frameworks (cont’d)Slide 19Middleware and Component ModelsMiddleware and Component Models (cont’d)Slide 22Resolving MismatchesHiding Middleware in ConnectorsBuilding a New FrameworkNew Framework GuidelinesNew Framework Guidelines (cont’d)Slide 28ConcurrencyGenerative TechnologiesMaintaining ConsistencyCopyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.ImplementingArchitecturesSoftware ArchitectureFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture2ObjectivesConceptsImplementation as a mapping problemArchitecture implementation frameworksEvaluating frameworksRelationships between middleware, frameworks, component modelsBuilding new frameworksConcurrency and generative technologiesEnsuring architecture-to-implementation consistencyExamplesDifferent frameworks for pipe-and-filterDifferent frameworks for the C2 styleApplicationImplementing Lunar Lander in different frameworksFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture3ObjectivesConceptsImplementation as a mapping problemArchitecture implementation frameworksEvaluating frameworksRelationships between middleware, frameworks, component modelsBuilding new frameworksConcurrency and generative technologiesEnsuring architecture-to-implementation consistencyExamplesDifferent frameworks for pipe-and-filterDifferent frameworks for the C2 styleApplicationImplementing Lunar Lander in different frameworksFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture4The Mapping ProblemImplementation is the one phase of software engineering that is not optionalArchitecture-based development provides a unique twist on the classic problemIt becomes, in large measure, a mapping activityMaintaining mapping means ensuring that our architectural intent is reflected in our constructed systemsDesignDecisionsDesignDecisionsImplementationArtifactsImplementationArtifactsFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture5Common Element MappingComponents and ConnectorsPartitions of application computation and communication functionalityModules, packages, libraries, classes, explicit components/connectors in middlewareInterfacesProgramming-language level interfaces (e.g., APIs/function or method signatures) are commonState machines or protocols are harder to mapFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture6Common Element Mapping (cont’d)ConfigurationsInterconnections, references, or dependencies between functional partitionsMay be implicit in the implementationMay be externally specified through a MIL and enabled through middlewareMay involve use of reflectionDesign rationaleOften does not appear directly in implementationRetained in comments and other documentationFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture7Common Element Mapping (cont’d)Dynamic Properties (e.g., behavior):Usually translate to algorithms of some sortMapping strategy depends on how the behaviors are specified and what translations are availableSome behavioral specifications are more useful for generating analyses or testing plansNon-Functional PropertiesExtremely difficult to do since non-functional properties are abstract and implementations are concreteAchieved through a combination of human-centric strategies like inspections, reviews, focus groups, user studies, beta testing, and so onFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture8One-Way vs. Round Trip MappingArchitectures inevitably change after implementation beginsFor maintenance purposesBecause of time pressuresBecause of new informationImplementations can be a source of new informationWe learn more about the feasibility of our designs when we implementWe also learn how to optimize themDesignDecisionsDesignDecisionsImplementationArtifactsImplementationArtifactsFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture9One-Way vs. Round Trip Mapping (cont’d)Keeping the two in sync is a difficult technical and managerial problemPlaces where strong mappings are not present are often the first to divergeOne-way mappings are easierMust be able to understand impact on implementation for an architectural design decision or changeTwo way mappings require more insightMust understand how a change in the implementation impacts architecture-level design decisionsFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture10One-Way vs. Round Trip Mapping (cont’d)One strategy: limit changesIf all system changes must be done to the architecture first, only one-way mappings are neededWorks very well if many generative technologies in useOften hard to control in practice; introduces process delays and limits implementer freedomAlternative: allow changes in either architecture or implementationRequires round-trip mappings and maintenance strategiesCan be assisted (to a point) with automated toolsFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture11Architecture Implementation FrameworksIdeal approach: develop architecture based on a known style, select technologies that provide implementation support for each architectural elementDesignDecisionsDesignDecisionsDatabaseSoftwareLibraryOO ClassFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture12Architecture Implementation FrameworksThis is rarely easy or trivialFew programming languages have explicit support for architecture-level constructsSupport infrastructure (libraries, operating systems, etc.) also has its own sets of concepts, metaphors, and rulesTo mitigate these mismatches, we leverage an architecture implementation frameworkFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture13Architecture Implementation FrameworksDefinition: An architecture implementation framework is a piece of


View Full Document

USC CSCI 578 - Implementing

Download Implementing
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 Implementing 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 Implementing 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?