Basic Concepts Software Architecture Lecture 3 Copyright Richard N Taylor Nenad Medvidovic and Eric M Dashofy All rights reserv Software Architecture Foundations Theory and Practice What is Software Architecture Definition A software system s architecture is the set of principal design decisions about the system Software architecture is the blueprint for a software system s construction and evolution Design decisions encompass every facet of the system under development Structure Behavior Interaction Non functional properties 2 Software Architecture Foundations Theory and Practice What is Principal Principal implies a degree of importance that grants a design decision architectural status It implies that not all design decisions are architectural That is they do not necessarily impact a system s architecture How one defines principal will depend on what the stakeholders define as the system goals 3 Software Architecture Foundations Theory and Practice Other Definitions of Software Architecture Perry and Wolf Software Architecture Elements Form Rationale what how why Shaw and Garlan Software architecture is a level of design that involves the description of elements from which systems are built interactions among those elements patterns that guide their composition and constraints on these patterns Kruchten Software architecture deals with the design and implementation of the high level structure of software Architecture deals with abstraction decomposition 4 composition style and aesthetics Software Architecture Foundations Theory and Practice Temporal Aspect Design decisions are and unmade over a system s lifetime Architecture has a temporal aspect At any given point in time the system has only one architecture A system s architecture will change over time 5 Software Architecture Foundations Theory and Practice Prescriptive vs Descriptive Architecture A system s prescriptive architecture captures the design decisions made prior to the system s construction It is the as conceived or as intended architecture A system s descriptive architecture describes how the system has been built It is the as implemented or as realized architecture 6 Software Architecture Foundations Theory and Practice As Designed vs As Implemented Architecture 7 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 As Designed vs As Implemented Architecture 8 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 As Designed vs As Implemented Architecture Which architecture is correct Are the two architectures consistent with one another What criteria are used to establish the consistency between the two architectures On what information is the answer to the preceding questions based 9 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 Architectural Evolution When a system evolves ideally its prescriptive architecture is modified first In practice the system and thus its descriptive architecture is often directly modified This happens because of Developer sloppiness Perception of short deadlines which prevent thinking through and documenting Lack of documented prescriptive architecture Need or desire for code optimizations Inadequate techniques or tool support 10 Software Architecture Foundations Theory and Practice Architectural Degradation Two related concepts Architectural drift Architectural erosion Architectural drift is introduction of principal design decisions into a system s descriptive architecture that are not included in encompassed by or implied by the prescriptive architecture but which do not violate any of the prescriptive architecture s design decisions Architectural erosion is the introduction of architectural design decisions into a system s descriptive architecture that violate its prescriptive architecture 11 Software Architecture Foundations Theory and Practice Architectural Recovery If architectural degradation is allowed to occur one will be forced to recover the system s architecture sooner or later Architectural recovery is the process of determining a software system s architecture from its implementation level artifacts Implementation level artifacts can be Source code Executable files Java class files 12 Software Architecture Foundations Theory and Practice Implementation Level View of an Application 13 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 Implementation Level View of an Application Complex and virtually incomprehensible 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 Deployment A software system cannot fulfill its purpose until it is deployed Executable modules are physically placed on the hardware devices on which they are supposed to run The deployment view of an architecture can be critical in assessing whether the system will be able to satisfy its requirements Possible assessment dimensions Available memory Power consumption Required network bandwidth 15 Software Architecture Foundations Theory and Practice A System s Deployment Architectural Perspective C Display Manager Commander Soldier d ic e tu rte ib rt m m is y DS Asymmetric C Troops Manager S Display Manager SD y is mt m rib e u tr te ic d Asymmetric C Data Repository C App Manager Distributed Asymmetric Asymmetric S Troops Manager Distributed Asymmetric Distributed Asymmetric Display Manager Decision Module Asymmetric Offensive Strategy Defensive Strategy Asymmetric Strategy Analyzer Asymmetric cir t e mDeployment m y Advisor S Simulation Agent Asymmetric Deployment Strategies Repository Data Repository Headquarters 16 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
View Full Document