By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 3
Advertisements

Architecture Representation
Software Architectural Design Software Components Instructor Dr. Lawrence Chung.
By Philippe Kruchten Rational Software
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Basic Concepts in Component-Based Software Engineering
OASIS Reference Model for Service Oriented Architecture 1.0
Object-Oriented Analysis and Design
Foundations for the Study of Software Architecture by Dewayne Perry & Alexander Wolf ACM SIGSOFT, Oct Presented by Charles Reid 2/7/2005.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Introduction to Software Architecture. Software Architecture Definition  Definition. A software system’s architecture is the set of principal design.
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Software Architecture in Practice
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Architecture: An Introduction
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture Lecture 3
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
What is Software Architecture?
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Object-oriented methodology object models use case modeling unified modeling language the data dictionary the cornucopia case portfolio project Systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
An Introduction to Software Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Introduction to MDA (Model Driven Architecture) CYT.
SOFTWARE DESIGN.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Design Concepts By Deepika Chaudhary.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Basic Concepts and Definitions
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Improving System Availability in Distributed Environments Sam Malek with Marija Mikic-Rakic Nels.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
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.
Software Architecture Lecture 3
Software Architecture
CompSci 280 S Introduction to Software Development
Software Architecture and Quality BY
Presented by Charles Reid 2/7/2005
Software Quality Engineering
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
ISpec: A Compositional Approach to Interface Specification
The Current State of CBSE
Design Yaodong Bi.
Software Architecture Lecture 3
Presentation transcript:

By Xiangzhe Li Thanh Nguyen

 Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural Pattern  Model  Processes  Stakeholders  Conclusion

 Main idea of this chapter:  Define the key terms & ideas from the field of software architecture.  Provide a uniform basis for their discussion in the remainder of the book.

 Definition: A software system’s architecture is the set of principal design decisions made about the system.  The architecture is the blueprint for the construction and evolution of the system.

 Design decisions are involved in every aspect during the construction of the system:  Structure  Behavior  Interaction  Nonfunctional  Implementation

 Definition:  Principal implies a degree of importance that grants a design decision architectural status.  Not all design decisions impact a system’s architecture. Ex: Algorithm and data structure

 Prescriptive architecture represents how the system is intended characteristics and functionalities that are prior to the construction.  Descriptive architecture represents how the system is actually realized after the implementation.

 Prescriptive architecture is modified during the development of the system due to several factors:  Accommodate actual requirements  Code optimization  Inadequate techniques and tool support  This leads to...

 Architectural drift: Introduction of principal design decisions into a system’s descriptive architecture that - Was not included by the prescriptive architecture. - Do not violate any of the prescriptive architecture’s design decisions.  Architectural erosion: Introduction of architectural design decisions into a system’s descriptive architecture that violate its prescriptive architecture.

 Perry and Wolf Architecture = {elements, form, rationale}  ANSI/IEEE standard Fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution  Chris Verhoef The software architecture of deployed software is determined by those aspects that are the hardest to change

 Definition:  An architectural entity that 1) Encapsulates a subset of the system’s functionality and/or data 2) Restricts access to that subset via an explicitly defined interface 3) Has explicitly defined dependencies on its required execution context Note: components are usually application specific

 Clemens Szyperski A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.

 Definition: A software connector is an architectural element tasked with effecting and regulating interactions among components. Examples of connectors:  Procedure call connectors  Shared memory connectors  Distribution connectors

 Simplest and widely used type  Directly implemented in programming languages  Enable synchronous exchange of data and control between components  Caller to callee relationship

 Allow multiple software components to interact by reading from and writing to the shared facilities.  All writers and readers does not depend on each other to perform its tasks.

 Encapsulate network library application programming interfaces (API)  Enable components in a distributed system to interact  Joined with multiple basic connector to separate the interacting components from the system distribution details

 Architecture  Design decisions  Principal  Prescriptive architecture  Descriptive architecture  Architectural drift  Architectural erosion  Component  Connector