What is Software Architecture? www.bookspar.com | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Lecture 6: Software Design (Part I)
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
By Philippe Kruchten Rational Software
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Software Architecture Design Instructor: Dr. Jerry Gao.
An Introduction to Software Architecture Pejman Salehi
Software Architecture in Practice
Software Architecture in Practice
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Architecture for DSD The “Uses” Relation.
Architectural Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Chapter 10 Architectural Design
Documenting Software Architectures
The Design Discipline.
What is an Architecture?. An Example? Invoice OrderDelivery Customer.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
An Introduction to Software Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
Lecture 9: Chapter 9 Architectural Design
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
1 Introduction to Software Architectures Lecture - 3.
SOFTWARE DESIGN.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
10 Software Architecture CSCU 411 Software Engineering.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
An Introduction to Software Architecture Software Engineering Lab.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
John D. McGregor Class 4 – Initial decomposition
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Software Design: Principles, Process, and Concepts Getting Started with Design.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Chapter 1: What is Software Architecture? © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
CSC480 Software Engineering Lecture 10 September 25, 2002.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
CS223: Software Engineering Lecture 13: Software Architecture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Unit-1 INTRODUCTION Presented by Sushma Narasimhan Asst. Professor,
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
John D. McGregor Quality attributes
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
An Introduction to Software Architecture
What is an Architecture?
Software Architecture
Chapter 5 Architectural Design.
Design Yaodong Bi.
Presentation transcript:

What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul, Rick Page Numbers: 19-45

System description of Acoustic Simulation | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

What Software Architecture Is and What It Isn't  What is the nature of the elements?  What is the significance of separation?  Do they run on separate processors?  Do they run at separate times?  Do the elements consist of processes, programs or both?  Are they objects, task, functions, processes, distributed programs, …  What are the responsibilities of the elements?  What is it they do?  What is their function in the system?  What is the significance of the connections?  Do the connections mean that the elements communicate with each other, control each other, send data to each other, use each other, invoke each other, share some information hiding secret with each other,  What information flows across the mechanism?  What is the significance of the layout?  Why is CP on a separate level?  Does it call the other three?  Are others not allowed to call? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architecture: Definition The Software Architecture is a structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships between them | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architecture Definition externally visible properties - assumptions other elements can make of an element, such as its provided services, performance characteristics, fault handling, shared resources usage | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architecture: Definition – observation Architecture defines software elements  The architecture represents information about how the elements relate to each other.  An architecture is foremost an abstraction of a system that suppresses details of elements that do not affect how they use, are used by, relate to, or interact with other elements. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architecture: Definition – observation Systems can and do comprise more than one structure  All nontrivial projects are partitioned into implementation units; these units are given specific responsibilities and are frequently the basis of work assignments for programming teams. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architecture: Definition – observation Every computing system with software has a software architecture  Every system can be shown to comprise elements and the relations among them.  Unfortunately, an architecture can exist independently of its description or specification, which raises the importance of architecture documentation and architecture reconstruction | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architecture: Definition – observation the behavior of each element is part of the architecture  behavior can be observed from the point of view of another element. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architecture: Definition – observation the definition is indifferent as to whether the architecture for a system is a good one or a bad one  meaning that it will allow or prevent the system from meeting its behavioral, performance, and life-cycle requirements.  We do not accept trial and error as the best way to choose an architecture for a system | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Other Points of View  Architecture is high-level design  Architecture is the overall structure of the system  Architecture is the structure of the components of a program or system, their interrelationships, and the principles and guidelines governing their design and evolution over time  Architecture is components and connectors | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

An architectural pattern is a description of element and relation types together with a set of constraints on how they may be used Set of constraints on an architecture Example-C/S architecture. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Architectural Patterns

Reference Models A reference model is a division of functionality together with data flow between the pieces. It is standard decomposition of a known problem into parts that solves problem cooperatively Ex: OSI reference model.. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Reference Architectures A reference architecture is a reference model mapped onto software elements (that cooperatively implement the functionality defined in the reference model) and the data flows between them Reference model divides the functionality. A reference architecture is the mapping of that functionality on to a system decomposition. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architecture: useful concepts | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS ReferencearchitectureSoftwarearchitecture Architecturalpattern Referencemodel

Why is Software Architecture Important? 1.Communication among stakeholders - SA represents a common abstraction of a system. -used as a basis for mutual understanding, negotiation, compromise, and communication by the stakeholders. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Why is Software Architecture Important? 2.Early design decisions Architecture represents earliest set of decisions about system, they are most difficult to get correct and the hardest to change. It is the earliest point at which design decisions can be analyzed. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Why is Software Architecture Important? 3. Transferable abstractions of a system Architecture is a relatively small model for how a system is structured and how its elements work together and this is transferable across systems. It can be applied to other systems exhibiting similar functional requirements. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

 Each stakeholder of a software system (customer, user, project, manager, coder, tester) is concerned with different system characteristics that are affected by the architecture.  User is concerned that system is reliable & available.  Customer is concerned about schedule & budget.  Manager: teams should work independently.  Architect: worried about strategies to achieve goals. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS ARCHITECTURE IS THE VEHICLE FOR STAKEHOLDER COMMUNICATION

Architecture provides a common language in which different concerns can be expressed, negotiated, and resolved at a level that is intellectually manageable even for large, complex systems | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architectural Structures and Views A structure is the set of elements. view – It is a representation of set of architecture elements, as written by and read by system stakeholder. It consist of representation of a set of elements and the relations among them | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architectural Structures - module structures basic elements are modules. they are assigned areas of functional responsibility. Module allow us answer What is the primary responsibility of module? What other software does it use? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

- component-and-connector structures elements are run-time components (units of computation) and connectors (communication vehicles). What are the major components & how do they interact? How does data progress through the system? - allocation structures shows the relationship between the software elements and the elements in external environment in which software is created and executed What is the assignment of S/W elements to development team | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architectural Structures: Module | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS module decompositionusesclass layered

Architectural Structures: Component-and- Connector | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS component-and-connector client-server process shared data concurrency

Architectural Structures: Allocation | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS allocation Work assignment implementation deployment

Architectural Structures: Module  Decomposition:  Units are modules related to each other by “is a sub module of” relation.  Shows how larger modules are decomposed into smaller modules recursively till the smaller modules are easily understood.  Modules have associated products (code, test plans).  Provides modifiability, by ensuring that changes to small modules.  Used for project structuring also for integration & test plans.  Uses :  Structure are modules or procedures.  Relation is “ uses”.  One unit uses another if the correctness of the first requires the presence of a correct version of second. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Layered: If the Uses relation is carefully controlled the a system of layer comes in picture. If there are n layers. Then the nth layer will use only service from layer n-1. Layers are often designed as abstractions & hide implementation specifics below from the layers above. Class: module units are called classes Relation is “inherts- from” Collection of similar behavior. This allows us to reason about reuse and additional functionality. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architectural Structures: Component-and-Connector Process or communicating processes: Deals with dynamic aspects of a running system. Units here are processes or threads which communicate, synchronize with each other. The relation is “attachment” how components and connecters are linked together. Concurrency: Allows the architects to determine the opportunities for parallelism. Units are components and connecters are logical threads Logical thread is a sequence of computation, that can be allocated to a separate physical thread in design process. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Shared data or repository: The structure comprises components and connecters that create, store and access data It shows how data is produced and consumed by run time software element. It is used for good performance and data integrity. Client and server: Built as a group of cooperating clients and servers. Components are clients and servers & Connecters are protocols and messages Used for load balancing( supporting run time performance) and physical distribution. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architectural Structures: Allocation Deployment: Shows how software is assigned to hardware processing and communication elements. The elements are software, hardware, and communication pathways. Relations are “allocated to” (shows which physical units are assigns to software elements), and “migrates to” (if allocation is dynamic) Helps to understand the performance,availability, security. Implementation: shows how software elements are mapped to file structures in the systems development, integration. This is critical for management of development activities. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Work assignment: This structure assigns responsibility for implementing and integrating the modules to appropriate development teams. This structure which is the part of the architecture makes it clear about the decisions “who does the work”. The architect will know the expertise required on each team. | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architectural Structures: Module Software structure RelationsUseful For Reason About Decompositionis a sub module, shares secrets with resource allocation, project structuring and planning, information hiding, encapsulation, configuration control Usesrequires the correct presence of extension or extraction of functionality layeredrequires the correct presence of, uses the rvices of, provides abstraction to incremental development, implementing systems on top of “virtual machines” Classis an instance of, shares access methods of in OO – producing rapid almost-alike implementations from a common template | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architectural Structures: Component-Connector Software structure RelationsUseful For Reason About client-servercommunicates with, depends on distributed operation, separation of concerns, performance, load balancing processruns concurrently with, may run concurrently with, excludes, precedes scheduling, performance concurrencyruns on the same logical threadlocations where resource contention exists, where threads may fork, join, be created or killed shared dataproduces data, consumes dataperformance, data integrity, modifiability | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS

Architectural Structures: Allocation Software structureRelationsUseful For Reason About deploymentallocated to, migrated to performance, availability, security implementationstored inconfiguration control, integration, test activities work assignmentassigned toproject management, best use of expertise, management of commonality | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS