What Is Software Architecture? - Donald Bren School Of .

9m ago
34 Views
1 Downloads
5.78 MB
14 Pages
Last View : 1d ago
Last Download : 2m ago
Upload by : Maleah Dent
Transcription

Basic ConceptsSoftware ArchitectureLecture 3Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.Software ArchitectureFoundations, Theory, and PracticeWhat is Software Architecture? Definition: A software system’s architecture is the set ofprincipal design decisions about the systemSoftware architecture is the blueprint for a softwaresystem’s construction and evolutionDesign decisions encompass every facet of thesystem under development Structure Behavior Interaction Non-functional properties21

Software ArchitectureFoundations, Theory, and PracticeWhat is “Principal”? “Principal” implies a degree of importance that grants adesign decision “architectural status” It implies that not all design decisions arearchitectural That is, they do not necessarily impact a system’sarchitectureHow one defines “principal” will depend on what thestakeholders define as the system goals3Software ArchitectureFoundations, Theory, and PracticeOther Definitions of SoftwareArchitecture Perry and Wolf Software Architecture { Elements, Form, Rationale }whathowwhyShaw 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 andimplementation of the high-level structure of software. Architecture deals with abstraction, decomposition,composition, style, and aesthetics.42

Software ArchitectureFoundations, Theory, and PracticeTemporal Aspect Design decisions are and unmade over a system’slifetime Architecture has a temporal aspectAt any given point in time the system has only onearchitectureA system’s architecture will change over time5Software ArchitectureFoundations, Theory, and PracticePrescriptive vs. DescriptiveArchitecture A system’s prescriptive architecture captures the designdecisions made prior to the system’s construction It is the as-conceived or as-intended architectureA system’s descriptive architecture describes how thesystem has been built It is the as-implemented or as-realized architecture63

Software ArchitectureFoundations, Theory, and PracticeAs-Designed vs. As-ImplementedArchitecture7Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.Software ArchitectureFoundations, Theory, and PracticeAs-Designed vs. As-ImplementedArchitecture8Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.4

Software ArchitectureFoundations, Theory, and PracticeAs-Designed vs. As-ImplementedArchitecture Which architecture is “correct”?Are the two architectures consistent withone another?What criteria are used to establish theconsistency between the two architectures?On what information is the answer to thepreceding questions based?9Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.Software ArchitectureFoundations, Theory, and PracticeArchitectural Evolution When a system evolves, ideally its prescriptivearchitecture is modified firstIn practice, the system – and thus its descriptivearchitecture – is often directly modifiedThis happens because of Developer sloppiness Perception of short deadlines which prevent thinkingthrough and documenting Lack of documented prescriptive architecture Need or desire for code optimizations Inadequate techniques or tool support105

Software ArchitectureFoundations, Theory, and PracticeArchitectural Degradation Two related concepts Architectural drift Architectural erosionArchitectural drift is introduction of principal designdecisions into a system’s descriptive architecture that are not included in, encompassed by, or impliedby the prescriptive architecture but which do not violate any of the prescriptivearchitecture’s design decisionsArchitectural erosion is the introduction ofarchitectural design decisions into a system’sdescriptive architecture that violate its prescriptivearchitecture11Software ArchitectureFoundations, Theory, and PracticeArchitectural Recovery If architectural degradation is allowed to occur, one willbe forced to recover the system’s architecture sooner orlaterArchitectural recovery is the process of determining asoftware system’s architecture from its implementationlevel artifactsImplementation-level artifacts can be Source code Executable files Java .class files126

Software ArchitectureFoundations, Theory, and PracticeImplementation-Level View of anApplication13Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.Software ArchitectureFoundations, Theory, and PracticeImplementation-Level View of anApplicationComplex and virtuallyincomprehensible!14Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.7

Software ArchitectureFoundations, Theory, and PracticeDeployment A software system cannot fulfill its purpose until it isdeployed Executable modules are physically placed on thehardware devices on which they are supposed torunThe deployment view of an architecture can becritical in assessing whether the system will be ableto satisfy its requirementsPossible assessment dimensions Available memory Power consumption Required network bandwidth15Software ArchitectureFoundations, Theory, and PracticeA System’s Deployment ArchitecturalPerspectiveCommanderSoldierS DisplayManagerD istr ib ute dSy mm e tr icC DisplayManagerAsymmetricC TroopsManagerAsymmetricD i strib u tedS ym me tri cAsymmetricC DataRepositoryC AppManagerDistributed AsymmetricS TroopsManagerDistributed AsymmetricDistributed ataRepositoryHeadquarters16Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.8

Software ArchitectureFoundations, Theory, and PracticeSoftware Architecture’s Elements A software system’s architecture typically is not (andshould not be) a uniform monolithA software system’s architecture should be acomposition and interplay of different elements Processing Data, also referred as information or state Interaction17Software ArchitectureFoundations, Theory, and PracticeComponents Elements that encapsulate processing and data in asystem’s architecture are referred to as softwarecomponentsDefinition A software component is an architectural entity that encapsulates a subset of the system’s functionalityand/or data restricts access to that subset via an explicitlydefined interface has explicitly defined dependencies on its requiredexecution contextComponents typically provide application-specific services189

Software ArchitectureFoundations, Theory, and PracticeConnectors In complex systems interaction may become moreimportant and challenging than the functionality ofthe individual componentsDefinition A software connector is an architectural buildingblock tasked with effecting and regulatinginteractions among componentsIn many software systems connectors are usuallysimple procedure calls or shared data accesses Much more sophisticated and complex connectorsare possible!Connectors typically provide application-independentinteraction facilitiesSoftware Architecture19Foundations, Theory, and PracticeExamples of Connectors Procedure call connectorsShared memory connectorsMessage passing connectorsStreaming connectorsDistribution connectorsWrapper/adaptor connectors2010

Software ArchitectureFoundations, Theory, and PracticeConfigurations Components and connectors are composed in a specificway in a given system’s architecture to accomplish thatsystem’s objectiveDefinition An architectural configuration, or topology, is a set ofspecific associations between the components andconnectors of a software system’s architecture21Software ArchitectureFoundations, Theory, and PracticeAn Example ConfigurationS DisplayManagerC DisplayManagerSymmetricAsymmetricC TroopsManagerAsymmetricS tegyAsymmetricStrategyAnalyzerSymmetricAsymmetricC yC 22Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.11

Software ArchitectureFoundations, Theory, and PracticeArchitectural Styles Certain design choices regularly result in solutions with superiorproperties Compared to other possible alternatives, solutions such as thisare more elegant, effective, efficient, dependable, evolvable,scalable, and so onDefinition An architectural style is a named collection of architecturaldesign decisions that are applicable in a given development context constrain architectural design decisions that are specific to aparticular system within that context elicit beneficial qualities in each resulting system23Software ArchitectureFoundations, Theory, and PracticeArchitectural Patterns Definition An architectural pattern is a set of architecturaldesign decisions that are applicable to a recurringdesign problem, and parameterized to account fordifferent software development contexts in whichthat problem appearsA widely used pattern in modern distributed systemsis the three-tiered system pattern Science Banking E-commerce Reservation systems2412

Software ArchitectureFoundations, Theory, and PracticeThree-Tiered Pattern Front Tier Contains the user interface functionality to access thesystem’s services Middle Tier Back Tier Contains the application’s major functionalityContains the application’s data access and storagefunctionality25Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.Software ArchitectureFoundations, Theory, and PracticeArchitectural Models, Views, andVisualizations Architecture Model An artifact documenting some or all of thearchitectural design decisions about a systemArchitecture Visualization A way of depicting some or all of the architecturaldesign decisions about a system to a stakeholderArchitecture View A subset of related architectural design decisions2613

Software ArchitectureFoundations, Theory, and PracticeArchitectural Processes Architectural designArchitecture modeling and visualizationArchitecture-driven system analysisArchitecture-driven system implementationArchitecture-driven system deployment, runtimeredeployment, and mobilityArchitecture-based design for non-functional properties,including security and trustarchitectural adaptation27Software ArchitectureFoundations, Theory, and PracticeStakeholders in a System’sArchitecture endors2814

Basic Concepts Software Architecture Lecture 3 2 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 blu

Related Documents:

What is Computer Architecture? “Computer Architecture is the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals.” - WWW Computer Architecture Page An analogy to architecture of File Size: 1MBPage Count: 12Explore further(PDF) Lecture Notes on Computer Architecturewww.researchgate.netComputer Architecture - an overview ScienceDirect Topicswww.sciencedirect.comWhat is Computer Architecture? - Definition from Techopediawww.techopedia.com1. An Introduction to Computer Architecture - Designing .www.oreilly.comWhat is Computer Architecture? - University of Washingtoncourses.cs.washington.eduRecommended to you b

In Architecture Methodology, we discuss our choice for an architecture methodol-ogy, the Domain Specific Software Architecture (DSSA), and the DSSA approach to developing a system architecture. The next section, ASAC EA Domain Model (Architecture), includes the devel-opment process and the ASAC EA system architecture description. This section

How do you know if a software architecture is deficient or at risk relative to its target system qualities? The answer is to conduct an evaluation of it. A formal software architecture evaluation should be a standard part of the architecture-based software development life cycle. Architecture evaluation is a

1.3 Software architecture and Middleware Middleware is Middleware is software glue Middleware is computersoftware that connects software componentsor applications. It is usedmost oftento support complex,distributed applications. Middleware is any software that allows other software tointeract In short, in the "Component-and-connector" view of a software architecture,

tres tipos principales de software: software de sistemas, software de aplicación y software de programación. 1.2 Tipos de software El software se clasifica en tres tipos: Software de sistema. Software de aplicación. Software de programación.

12 Architecture, Interior Design & Landscape Architecture Enroll at uclaextension.edu or call (800) 825-9971 Architecture & Interior Design Architecture Prerequisite Foundation Level These courses provide fundamental knowledge and skills in the field of interior design. For more information on the Master of Interior Architecture

and architecture flows, and research and development needs). Volume 13- RAD-IT Outputs of the RegionalITS Architecture: consists of a report generated by the Regional Architecture Development for Intelligent Transportation (RAD-IT) software, formerly known as Turbo Architecture, for the Minnesota Statewide Regional ITS Architecture.

Service Oriented Architecture Training Session for STDDS November 2014 What is Service Oriented Architecture Service-Oriented Architecture (SOA) is a software and architecture design pattern based on a structured collection of discrete software modules known as services. SOA i

ARCH 121 – INTRODUCTION TO ARCHITECTURE I LECTURE NOTES: WEEK 1 - Introduction: Definition of Architecture and the Architect: 1. Definition of Architecture Architecture could be basically defined as ‘the art and science of designing and constructing buildings’. As a word, ‘architecture’ can carry several other meanings, such as: 1.

Paper Name: Computer Organization and Architecture SYLLABUS 1. Introduction to Computers Basic of Computer, Von Neumann Architecture, Generation of Computer, . “Computer System Architecture”, John. P. Hayes. 2. “Computer Architecture and parallel Processing “, Hwang K. Briggs. 3. “Computer System Architecture”, M.Morris Mano.

a. Architecture during Vedic period, development of Vedic society. b. Examples from Indus-Saraswati civilizations. Unit-3: Egyptian Architecture – (with special emphasis on religious architecture and tombs) Unit-4: West Asiatic Architecture (with special emphasis on religious architecture and palaces) a. Sumerian b. Assyrian c. Babylonian

Architecture evolved into the School of Architecture. The College of Architecture and Environmental Design, comprised of departments of Architecture, Environmental Design, Building Construction, Landscape Architecture

Oct 22, 2020 · Architecture (5 Years, Bachelor of Architecture) HS ST: Gender-Neutral 55: 55 National Institute of Technology: Calicut Architecture (5 Years, Bachelor of Architecture) HS: ST Female-only (including Supernumerary) 2527 2527: National Institute of Technology Calicut: Architecture (5 Years, Bachelor of Architecture

Architecture vs Micro-architecture Architecture: ! Parts of processor design needed to write programs in assembly ! What is visible to s/w E.g Number of registers Micro-Architecture: ! Detail of how architecture is implemented E.g Core frequency of the processor Aside: Processor Speed: Intel Core i7: 1.8 GHz

Software Architecture Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. [IEEE 1471] The software architecture of a program or computing system is the structure or

about this manual 1.1. overview of the intel architecture software developer’s manual, volume 2: instruction set reference 1-1 1.2. overview of the intel architecture software developer’s manual, volume 1: basic architecture 1-2 1.3. overview of the intel architecture software develo

30.1 Software Architecture. One definition of . software architecture is: An architecture is the set of significant decisions about the orga-nization of a software system, the selection of the structural ele-ments and their interfaces by which the system is composed, together with their behavior as specified in the collaborations

architecture is the "computation platform" section which discusses the hardware selection. Analysis Framework To analyze the quality of a piece of architecture design, we follow the guidelines given in the book Software Architecture in Practice by Len Bass, Paul Clements and Rick Kazman at the Software Engineering Institute.

Introduction to Software Architecture The Importance of Architecture Software architecture: - provides a communication among stakeholders captures early design decisions acts as a transferable abstraction of a system defines constraints on implementation dictates organizational structure inhibits or enables a system's quality attributes is analyzable and a vehicle for predicting system .

Kilkenny Archaeological Society and the Heritage Council to produce and publish the Kilkenny City Walls Heritage Conservation Plan (2006) was key. That Conservation Plan provides an impetus and a foundation on which a better understanding of the City Walls can be communicated, provides guidance and prioritisation as to the ongoing