Basic ConceptsWhat is Software Architecture?What is “Principal”?Other Definitions of Software ArchitectureTemporal AspectPrescriptive vs. Descriptive ArchitectureAs-Designed vs. As-Implemented ArchitectureSlide 8Slide 9Architectural EvolutionArchitectural DegradationArchitectural RecoveryImplementation-Level View of an ApplicationSlide 14DeploymentA System’s Deployment Architectural PerspectiveSoftware Architecture’s ElementsComponentsConnectorsExamples of ConnectorsConfigurationsAn Example ConfigurationArchitectural StylesArchitectural PatternsThree-Tiered PatternArchitectural Models, Views, and VisualizationsArchitectural ProcessesStakeholders in a System’s ArchitectureCopyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.Basic ConceptsSoftware ArchitectureLecture 32Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureWhat is Software Architecture?Definition:A software system’s architecture is the set of principal design decisions about the systemSoftware architecture is the blueprint for a software system’s construction and evolutionDesign decisions encompass every facet of the system under developmentStructureBehaviorInteractionNon-functional properties3Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureWhat is “Principal”?“Principal” implies a degree of importance that grants a design decision “architectural status”It implies that not all design decisions are architecturalThat is, they do not necessarily impact a system’s architectureHow one defines “principal” will depend on what the stakeholders define as the system goals4Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureOther Definitions of Software ArchitecturePerry and WolfSoftware Architecture = { Elements, Form, Rationale } what how whyShaw and GarlanSoftware 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.KruchtenSoftware architecture deals with the design and implementation of the high-level structure of software.Architecture deals with abstraction, decomposition, composition, style, and aesthetics.5Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureTemporal AspectDesign decisions are and unmade over a system’s lifetime Architecture has a temporal aspectAt any given point in time the system has only one architectureA system’s architecture will change over time6Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitecturePrescriptive vs. Descriptive ArchitectureA system’s prescriptive architecture captures the design decisions made prior to the system’s constructionIt is the as-conceived or as-intended architectureA system’s descriptive architecture describes how the system has been builtIt is the as-implemented or as-realized architecture7Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureAs-Designed vs. As-Implemented ArchitectureSoftware Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.8Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureAs-Designed vs. As-Implemented ArchitectureSoftware Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.9Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureAs-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? Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.10Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureArchitectural EvolutionWhen a system evolves, ideally its prescriptive architecture is modified firstIn practice, the system – and thus its descriptive architecture – is often directly modified This happens because ofDeveloper sloppinessPerception of short deadlines which prevent thinking through and documenting Lack of documented prescriptive architectureNeed or desire for code optimizationsInadequate techniques or tool support11Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureArchitectural DegradationTwo related conceptsArchitectural driftArchitectural erosionArchitectural 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 architecturebut which do not violate any of the prescriptive architecture’s design decisionsArchitectural erosion is the introduction of architectural design decisions into a system’s descriptive architecture that violate its prescriptive architecture12Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureArchitectural RecoveryIf 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 artifactsImplementation-level artifacts can beSource codeExecutable filesJava .class files13Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureImplementation-Level View of an ApplicationSoftware Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.14Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureImplementation-Level View of an ApplicationComplex and virtuallyincomprehensible!Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.15Foundations,
View Full Document