DOC PREVIEW
USC CSCI 578 - 03_Basic_Concepts

This preview shows page 1-2-3-26-27-28 out of 28 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 28 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 28 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 28 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 28 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 28 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 28 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 28 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

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 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 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 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 goals4Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureOther 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, composition, style, and aesthetics.5Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureTemporal 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 time6Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitecturePrescriptive 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 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 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 support11Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureArchitectural 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 architecture12Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureArchitectural 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 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

USC CSCI 578 - 03_Basic_Concepts

Download 03_Basic_Concepts
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 03_Basic_Concepts 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 03_Basic_Concepts 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?