An Introduction to Software Architecture Prof. R K Joshi Department of Computer Science and Engineering IIT Bombay.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

A component- and message-based architectural style for GUI software
Architecture Representation
By Philippe Kruchten Rational Software
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Design Phase What’s design?
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
OASIS Reference Model for Service Oriented Architecture 1.0
Open Distributed Processing
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Distributed Systems Architectures
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Software Architecture Design Instructor: Dr. Jerry Gao.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Lecture 23: Software Architectures
Unified Modeling (Part I) Overview of UML & Modeling
Using Architecture Frameworks
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Architectural Design.
What is Software Architecture?
The Design Discipline.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
An Introduction to Software Architecture
POAD Distributed System Case Study: A Medical Informatics System Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architecting Web Services Unit – II – PART - III.
Slide 1 UML Review Chapter 2: Introduction to Object-Oriented Systems Analysis and Design with the Unified Modeling Language, Version 2.0 Alan Dennis,
Software Design. Definition of Design “the process of defining the architecture, components, interfaces, and other characteristics of a system component”
Architectural Blueprints The “4+1” View Model of Software Architecture
Slide 1 Introduction to Software Architecture TV Prabhakar.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
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.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Basic Characteristics of Object-Oriented Systems
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
Pertemuan 09 Architectural Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Architecting Web Services
Systems Analysis and Design With UML 2
Architecting Web Services
OO Methodology OO Architecture.
Systems Analysis and Design With UML 2
Ch > 28.4.
Analysis models and design models
Architecture Description Languages
An Introduction to Software Architecture
Director, Middleware Technologies
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 7
Chapter 6: Architectural Design
Design.
Software Architecture Lecture 6
Presentation transcript:

An Introduction to Software Architecture Prof. R K Joshi Department of Computer Science and Engineering IIT Bombay

Why Do We need Architecture? Understand the system –Complex systems Organize the development –According to architectural partitioning Reuse –Componentization Evolution –Changes and dependencies

Several Approaches to Architecture [e.g. see in Malveau & Moubray 2001] Zachman Framework (IBM) –30 architectural viewpoints Open Distributed Processing (ISO standard) –5 viewpoint reference model Domain Analysis 4+1 View Model (Unified Process-Rational) Academic Software Architecture Approaches

The Zachman Framework [ Zachman institute of framework advancement ] –“To keep the business from disintegrating, the concept of information systems architecture is becoming less of an option and more of a necessity” – Zachman in 1987 –Developed by Zachman from observing how architectures in engineering, construction and manufacturing managed change –Intersection between roles in the design process and product abstractions –Roles (in rows): Owner, Designer, Builder –Product Abstractions (in columns): What is it made up of (data), How it works (process), Where are the components located (geometry) –3 additional columns: Who (people), When (time), Why (motivation) –2 additional rows: Planner, Subcontractor

Open Distributed Processing Reference Model For architecture supporting distribution, internetworking, interoperability and portability Five viewpoints –Enterprise (purpose, scope and policies) –Information (semantics of information and information processing) –Computational (functional decomposition) –Engineering (infrastructure to support distribution) –Technology (for implementation: Mappings between objects and specific standards and technologies) The set of viewpoints is not closed Each of the viewpoint is object oriented

ODP: Enterprise viewpoint Directly understandable by managers and end users Defines business purpose, scope and policies Includes permissions, prohibitions and obligations Example: –Active objects: managers, tellers, customers –Passive objects: accounts –Bank managers must advise customers when interest rate changes (obligation) –Cash less than can be drawn per day (prohibition) –Money can be deposited (permission)

ODP: Information viewpoint Definitions of information schemas as objects –State and structure of objects E.g. account = balance and amount withdrawn today Three kinds of schemas: – static At midnight, amount withdrawn today=2000 –Invariant At anytime, amount withdrawn today <=40000 –Dynamic A deposit of X increases the balance by X and a withdrawal of X decreases the balance by X Always constrained by invariant Schemas may relate objects –E.g. in customer object: owns account static schema

ODP: Computational viewpoint Software components which are capable of supporting distribution Large grained object encapsulations, subsystem interfaces and behaviors Objects can offer multiple interfaces 3 types of interactions among objects –Operational : client-server, RPC : with parameters and results –Stream oriented –Signal oriented Inheritance of Interface and subtyping Operations such as object creation, trading for an interface, interface creation, binding, operation invocation Examples –Application objects: Bank branch with bank teller (deposit, withdraw) and bank manager (create account, deposit, withdraw) interfaces for customers –ODP infrastructural objects: Trader

ODP: Engineering viewpoint Brings out the distributed nature of the system Objects and Channels Objects –Basic engineering objects correspond to computational objects –Infrastructural objects such as protocol objects E.g. stub, binder and protocol object (proxy/skeletons) + communication interface between protocol objects Engineering structure of the system is described –E.g. cluster, nucleus object, capsule of clusters, a machine node, a cluster may contain many engineering objects, an object can contain many activities, inter-cluster communication via channels

ODP: Transparencies Defined Access – hides the difference in data representation and invocation mechanism – enables heterogeneous systems to communicate Failure –Hides failures and possible recoveries of objects for fault tolerance Location –Hides the location information while finding and bind to an object Relocation –Masks the changes in the location of an object from its clients Migration –Masks the awareness of changes in location of the object from itself and from others Replication –Masks the existence of replicated objects Persistence –Masks activation and deactivation of objects Transaction –Masks coordination of activities to achieve consistency

4+1 View Model 4+1 View Model [P.B. Kutchen, 1995] Sometimes software architecture suffers from system designers who go too far..other software engineers fail to address the concerns of all customers 4+1 view model: Has 5 concurrent views Logical view- e.g. object model using object oriented design method Process view – concurrency and synchronization aspects Physical view – mapping of components to hardware, distribution aspect Development view – organization of the actual software modules – libraries, packages, subsystems Use case view

Unified Process Model of Architecture Architecture description is a proper extract of the models of the system (use case model, analysis model, design model, deployment model, implementation model) –e.g. Contains only architecturally significant use cases, whereas final use case model contains all use cases; –Similarly architectural view of design model realizes only the architectural use cases –First version of architecture is extract at the end of elaboration phase and so on Developed iteratively during elaboration phase Focus on significant structural elements of the system –Subsystems, classes, components, nodes Use cases architecture

Commonly occurring Architectural Patterns Fundamental structural organization schemas For example: –Layers –Pipes and Filters –Blackboard –Broker –Model-View-Controller –Presentation-Abstraction-Control –Microkernel –Reflection –Client-server

Frameworks: An Approach to Adaptable Architecture Partially complete software It is instantiated as a product For product families/product lines Frozen spots and hot spots

Enabling Techniques Abstraction Encapsulation Information Hiding Modularization Separation of Concerns Coupling and Cohesion Sufficiency, Completeness and Primitiveness Separation of Policy and Implementation Separation of Interface and Implementation Single point of reference Divide and Conquer

Languages for Architectural Description Architectural components + Connectors Constraints Different ADLs have their own metamodels for the above

ACME Developed at CMU 7 types of elements –Component –Connector –Systems –Ports –Roles –Representations –Representation maps

Components and Ports Primary computational elements Data stores Ex: clients, servers, filters, objects, blackboards, databases Can have multiple interfaces termed as ports

Connectors and Roles Represents interactions among components They also have interfaces termed as roles Each role defines a participant in the connector’s interaction Binary connectors: 2 roles –Ex1 caller, callee on RPC –Ex2 reading, writing on Pipe –Ex3 sender, receiver on message passer Multiple roles –Ex. Broadcast connector: 1 event announcer, many event receivers

System and Attachments A Graph Nodes are components Arcs are connectors Components are attached to roles of connectors through component ports Topology of a system is given by the list of attachments

Representations Supports hierarchical descriptions A component or connector can be further detailed by low level description called representation Multiple representations for a single component are possible –To represent multiple views

Representation Maps Rep-maps establish correspondence internal representation and external interface (ports/roles) of components/connectors that represent E.g. association between internal ports and external ports in case of components Or Associations between internal roles and external roles in case of connectors

Properties Beyond structure, document extra-structural properties Any of the 7 classes of Acme entities can be annotated with properties A property can be a tripple List of properties may be associated with an element Ex: scheduling constraints, resource consumption etc.

An Example Description System S = { component client = { port sendReq } component server = {port recReq } connector RPC = {Roles {caller, callee} } Attachments: { client.sendReq to rpc.caller ; server.recReq to rpc.callee; }

An Example Description: pictorial view sendReq port recReq port System RPC clientserver Connector RPC Role caller Role callee

Detailing Server component component server = { port recReq Representation serverDetails = { System serverDetailsSys = { component connectionManager; component securityManager; component database; connector sqlQuery; connector clearanceRequest; connector securityQuery; Attachments: {….} } Bindings {connectionManager.externalSocket server.recReq} }

Using Representations for Hierarchical Descriptions senReq port recReq port System RPC clientserver Connector RPC Role caller Role callee Connection manager security manager database manager SQLQuery securityQuery clearanceRequest

Internal Components component connectionManager = { ports { externalSocket, securitycheck, dbQuery } } Component securityManager = { ports { securityAuthorization, creditialsQuery} } Component database = { ports {securityManagement, query} }

Components: Pictorial View Connection Manager Security Manager Database Port externalSocket Port dbQuery Port Securty Check Port Securty Authorization Port credintialsQuery Port query Port security Management

Internal Connectors Connector SQLQuery = {roles {caller, callee}} Connector clearanceRequest = {roles {requester, granter}} Connector securityQuery = {roles {securityManager, requester}}

Connectors: Pictorial View Connection Manager Port externalSocket Port dbQuery Port Securty Check Security Manager Port Securty Authorization Port credintialsQuery Database Port query Port security Management SQLQuery securityQuery clearanceRequest caller callee requester granter securityManager requester

Internal Attachments Attachments { connectionManager.securityCheck to clearanceRequest.requester securityManager.securityAuthorization to clearanceRequest.granter ConnectionManager.dbQuery to SQLQuery.caller Database.query to SQLquery.callee securityManager.credintialQuery to securityQuery.securityManager Database.securityManagement to securityQuery.requester }

References/Readings John Zachman, A Framework for Information Systems Architecture", IBM Systems Journal, Vol 26, No 3, 1987 Kerry Raymond, Reference model for Open Distributed Processing (RM- ODP): Introduction, CRC for Distributed Systems Technology, University of Queensland Raphel Malveau, Thomas Mowbray, Software Architect Bootcamp, Prentice Hall 2001 Buschmann, Meuneir, Rohnert, Sommerlad, Stal, Pattern-oriented Software Architecture: A system of patterns, John Wiley & Sons, 1996 P.B. Kruchten, The 4+1 View Architecture, IEEE Software, November 1995 Jacobson, Booch, Rumbaugh, The Unified Software Development Process, Addison Wesley Longman, 1999 Garlan, Monroe, Wile, Acme: Architectural Description of Component-based Systems, in Foundations of Component based systems, Cambridge University press, 2000