Software Architecture

Slides:



Advertisements
Similar presentations
A component- and message-based architectural style for GUI software
Advertisements

Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Introduction to Software Engineering Lecture 6 André van der Hoek.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
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 Configuration Management (SCM)
System Design & Software Architecture
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Chapter 2 Database System Concepts and Architecture
What is Software Architecture?
Chapter 10 Architectural Design
The Design Discipline.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
CS4311 Spring 2011 Software Architecture Dr. Guoqiang Hu Department of Computer Science UTEP.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Cohesion and Coupling CS 4311
Systems Analysis and Design in a Changing World, 3rd Edition
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
John D. McGregor Class 4 – Initial decomposition
CSC480 Software Engineering Lecture 10 September 25, 2002.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Software Architecture
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Lecture VIII: Software Architecture
Basic Concepts and Definitions
Chapter : 9 Architectural Design
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Architecture Lecture 3
Software Architecture
Chapter 2 Database System Concepts and Architecture
CHAPTER 3 Architectures for Distributed Systems
Software Architecture Lecture 3
Software Architecture Lecture 2
Software Architecture Lecture 3
Software Architecture Lecture 3
An Introduction to Software Architecture
Software Architecture Lecture 3
Software Architecture Lecture 3
Presentation transcript:

Software Architecture Frank Tsui, Orland Karam, and Barbara Bernal, Essential of Software Engineering, 3rd edition, Jones & Bartett Learning. Section 7.2. Hans Van Vliet, Software Engineering, Principles and Practice, 3rd edition, John Wiley & Sons, 2008. Chapter 11. M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996. CS 4311

Learning Objectives To understand the concept of software architectures along with its motivation To be able to characterize some important software architecture styles CS 4311

Outline What’s software architecture? Elements of software architecture Architectural styles CS 4311 CS 4311

Architecture in Civil Engineering Design at the highest level Example: Bridge architectures Arch Beam Suspension Cable-stayed CS 4311

Architecture in Civil Engineering Why do civil engineers talk about bridge architectures? Design at the highest level Example: Bridge architectures Arch Beam Suspension Cable-stayed CS 4311

What Is Architecture? “Arch” used as prefix or suffix Meaning: Main, chief, principal, most important, highest, fundamental, basic, extreme or most characteristic, ruler, leader Examples: Archangel, archenemy, archduke, archbishop Matriarch, patriarch, monarch Definition in Civil Engineering The art and science of designing and erecting buildings Fundamental underlying design of buildings Style and method of design and construction of buildings Buildings and other structures CS 4311

What Is Software Architecture? Framework, mechanism, way, shape, form, means, organization, arrangement The Big Picture! CS 4311

Software Architecture The structure or structures of a software system software components externally visible properties of those components the relationships between them The set of principle design decisions made about a software system System structure Functional behavior Interaction Nonfunctional properties Implementation System goals, stakeholders, non-technical considerations, etc. CS 4311

Outline What’s software architecture? Elements of software architecture Architectural styles CS 4311 CS 4311 9

Elements of Software Architecture Components Connectors Configuration topologies System models CS 4311

Software Components Elements that encapsulate processing and data in a system’s architecture An architectural entity that encapsulates a subset of the system’s functionality and/or data, restricts access to that subset via an explicitly defined interface, and had explicitly defined dependencies on its required execution context. Often represented as boxes in diagrams. CS 4311

Connectors Elements that are tasked with effecting and regulating interactions among components. Application independent. Often represented as lines in diagrams. component connector CS 4311

Configuration Topology A set of specific associations between the components and connectors of a software system’s architecture. CS 4311

System Models An artifact that captures some or all of the design decisions that comprise a system’s architecture. Architectural modeling is the reification and documentation of those design decisions. Different models: structural vs. behavioral static vs. dynamic Scope Q: Key constraints of layered model? CS 4311

Outline What’s software architecture? Elements of software architecture Architectural styles CS 4311 CS 4311 15

Architectural Styles A named collection of architectural design decisions that: are applicable in a given development context, constrain architectural design decisions that are specific to a particular system with that context, and elicit beneficial qualities in each resulting system. Not about: specific systems, components, interaction mechanisms, or configurations. CS 4311

An Architectural Style Example Physically separate the software components used to request services from the components that provide the services, to allow for proper distribution and scaling up, both in the number of service providers and service requesters. Make the service providers unaware of the requesters’ identity to allow the providers to service transparently many, possibly changing requestors. Insulate the requesters from one another to allow for their independent addition, removal, and modification. Make the requesters dependent only on the service providers. Allow for multiple service providers to emerge dynamically to off-load the existing providers should the demand for services increase above a given threshold. CS 4311

Example: Client-Server CS 4311

More on Architectural Styles Advantages Each style emphasizes one or more of the quality attributes, such as usability, availability, security, performance, maintainability, flexibility, portability, etc. Remarks: Each style has its own advantages and drawbacks. An application may require several architectural views. Choosing the right views is a key factor in having a good design. CS 4311

Client-Server Architecture Style The Repertoire of Architecture Styles Client-Server Architecture Style Application context: Clients request services from a server Centralization of computation and data at the server Separation of user interface tasks from computation and data management and storage Q: Any examples? CS 4311

Style: Client-Server Components: Clients and server Connectors: Remote procedure call, network protocols Data elements: Parameters and return values are sent by the connectors Topology: Two-level, with multi-clients Qualities yielded: Centralization of computation and data at the server, with the information made available to remote clients. A single powerful server can service many clients. Cautions: Network bandwidth. CS 4311

Style: Three-Tier or N-Tier Application context: Client-Server architecture style Multi-level services are needed Q: Examples? CS 4311

Style: Layered Application context: Q: Examples? Ordered layered services are necessary Insulate upper layer from lower layer Q: Examples? CS 4311

Layered (Cont.) Components: Layers, offering a set of services to other layers, typically comprising several programs or subprograms Connectors: Procedure call Data elements: Parameters and return values are sent by the connectors Topology: Linear, for strict virtual machine; a directed acyclic graph in looser interpretations Qualities yielded: Clear dependence structure; Software at upper levels immune to changes of implementation within lower levels as long as the service specification are invariant; Software at lower levels fully independent of upper levels. Cautions: Efficiency CS 4311

Style: Repository Application context: Collaborate and communicate through a shared repository A.k.a. shared state, blackboard, whiteboard Q: Examples? CS 4311

Repository (Cont.) Components: ? Connectors: ? Data elements: ? Topology: ? Qualities yielded: ? Cautions: ? CS 4311

Style: Batch Sequential Application context: A series of dedicated and independent components that transforms data in a sequential manner. Each component needs to finish its task before the next one can start. Q: Examples? CS 4311

Batch Sequential (Cont.) Components: Independent programs responsible for a particular task or transformation Connectors: Procedure call Data elements: Intermediate data produced or transformed Topology: Linear or ordered Qualities yielded: Solve complex task by dividing it into several easier tasks; obtain modifiability/maintainability, reusability, and flexibility Cautions: Error handling; efficiency CS 4311

Style: Pipes and Filters Application context: A series of independent, sequential transformations on ordered data Consists of filters transforming data and pipes transferring data Q: Examples? % ps | grep bash | sort | more CS 4311

More Architectural Styles Client server Three-tier Layered Repository Batch sequential Pipe and filter Event driven Interpreter Peer-to-peer Plug-in Service-oriented Publish-subscribe Rule-based Mobile code … CS 4311

In-Class and Assignment: Study two architectural styles per team Prepare a 10-minute presentation for the next class You will present: What is it? What problem does it solve? How does it solve the problem? Who are the actors (i.e., main elements)? How do they relate to each other? What’re the strengths and drawbacks? Example applications? Include your sources (e.g., websites) CS 4311