DOC PREVIEW
USC CSCI 578 - Implementing

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

Save
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

Unformatted text preview:

Implementing Architectures Software Architecture Copyright Richard N Taylor Nenad Medvidovic and Eric M Dashofy All rights Software Architecture Foundations Theory and Practice Objectives 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 frameworks 2 Software Architecture Foundations Theory and Practice Objectives 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 frameworks 3 Software Architecture Foundations Theory and Practice The 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 Design Design Decisions Decisions Implementation Implementation Artifacts Artifacts Maintaining mapping means ensuring that our architectural intent is reflected in our constructed systems 4 Software Architecture Foundations Theory and Practice Common 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 map 5 Software Architecture Foundations Theory and Practice Common 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 documentation 6 Software Architecture Foundations Theory and Practice Common 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 on 7 Software Architecture Foundations Theory and Practice One 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 them Design Design Decisions Decisions Implementation Implementation Artifacts Artifacts 8 Software Architecture Foundations Theory and Practice One 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 decisions 9 Software Architecture Foundations Theory and Practice One 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 tools 10 Software Architecture Foundations Theory and Practice Architecture Implementation Frameworks Ideal approach develop architecture based on a known style select technologies that provide implementation support OO forClass each architectural element Design Design Decisions Decisions Software Library Database 11 Software Architecture Foundations Theory and Practice Architecture 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 framework 12 Software Architecture Foundations Theory and Practice Architecture Implementation Frameworks Definition An architecture implementation framework is a piece of software that acts as a bridge between a particular architectural style and a set of implementation technologies It provides key elements of the architectural style in code in a way that assists developers in implementing systems that conform to the prescriptions and constraints of the Fstyle r a m e w o r k 13 Software Architecture Foundations Theory and Practice Canonical Example The standard I O stdio framework in UNIX and other operating systems Perhaps the most prevalent framework in use today Style supported pipe and filter Implementation technologies supported concurrent process oriented operating system generally non concurrent language like C 14 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice More on Frameworks Frameworks are meant to assist developers in following a style But generally do not constrain developers from violating a style if they really want to Developing applications in a target style does not require a


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