Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.

Slides:



Advertisements
Similar presentations
Documenting Software Architectures
Advertisements

By Philippe Kruchten Rational Software
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
Outline About author. The problem that discussed in the article.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
8.
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-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture in Practice
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?
Object Oriented Analysis and Design Using the UML
A Survey of Software Architecture Viewpoint Models Nicholas May
Architectural Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Chapter 10 Architectural Design
Documenting Software Architectures
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
An Introduction to Software Architecture
Architecting Web Services Unit – II – PART - III.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,
1 Introduction to Software Architectures Lecture - 3.
Architectural Blueprints The “4+1” View Model of Software Architecture
OOAD Using UML, v. 3.0 Architectural Design, p. 1 Copyright © 1997 by Rational Software Corporation R Architectural Design.
Software Architecture in Practice Architectural description (The reduced version)
Slide 1 Introduction to Software Architecture TV Prabhakar.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
10 Software Architecture CSCU 411 Software Engineering.
Modelling Class T16: Conceptual Modelling – Architecture Image from
Lecture 7: Requirements Engineering
Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
TAL7011 – Lecture 4 UML for Architecture Modeling.
John D. McGregor Class 4 – Initial decomposition
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Slide 1 Lecture 14 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Basic Concepts and Definitions
4+1 View Model of Software Architecture
1 Database Environment. 2 Objectives of Three-Level Architecture u All users should be able to access same data. u A user’s view is immune to changes.
CS223: Software Engineering Lecture 13: Software Architecture.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Documenting Software Architectures. Outline  Introduction  Uses of Architectural Documentation  Views  Choosing the Relevant Views  Documenting a.
Systems Architectures System Integration & Architecture.
Software Design and Architecture Muhammad Nasir Software Architecture Documentation
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.
UML Diagrams By Daniel Damaris Novarianto S..
Documenting SW Architecture
Rumbaugh’s Objectmodeling Technique
UML Diagrams Jung Woo.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Presentation transcript:

Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003

Class Goals The students will be able to define the concepts of software architecture and design The students will be able to describe three different viewtypes needed to develop a software architecture The students will have an appreciation on the notation required to document each viewtype

Software Design and Software Engineering After requirements have been analyzed and specified, software architecture and design are the first of three technical activities (architecture/design, code generation, testing) that are required to build and verify the software.

Software Architecture “A software architecture for a system is the structure or structures of the system, which consist of elements, their externally visible properties, and the relationships among them” [ Clements, P., et al. (2003) “Documenting Software Architectures: Views and Beyond”, Addison-Wesley, ISBN , pp. XXV]

Software Architecture vs. Software Design Architecture feeds the design activity. Many design decisions are left unbound by the architecture and are left to the detailed designers. The architecture defines constraints on downstream activities, and those activities must produce artifacts (detailed design and code) that are compliant with the architecture, but architecture does not define implementation.

Uses of Architecture Documentation Architecture serves as a means of education Architecture serves as a main means of communication among relevant stakeholders (architect and requirements engineers, designers, implementers, testers, maintainers, managers, QA team, etc.) Architecture serves as a basis for system analysis and design

Architecture Views A view is a representation of a set of system elements and the relationships associated with them. Documenting an architecture means to document the relevant views under which a system can be observed. A software architecture documentation package is a set of one or more view documents and documentation that explains how the views relate to each other, introduces the package to its readers, and guides them through it. Different views expose different quality attributes to different degrees.

Architecture Document for a View The documentation for a view contains: Graphical representation that depicts the primary system elements and its relationships Element catalogue that defines elements and its properties A specification of the element’s interfaces and behaviour Rationale and design information

Documentation for all Views Documentation that applies to all of the views contains: An introduction to the entire package Information describing how the views relate to each other, and to the system as a whole Constraints and rationale for the overall architecture Management information needed to maintain the whole package

“4+1” Architectural Views – A Model Logical view: supports behavioral requirements or the services the system must provide its users Process view: addresses concurrency and distribution, system integrity, and fault tolerance Development view: focuses on the organization of the software modules in the software development environment Physical view: takes into account the system’s requirements such as system availability, reliability, performance, and scalability Kruchten (1995) from rational Software Corporation

Architecture Views: Siemens – Another Model Conceptual view: describes the system in terms of its major design elements and the relationships among them Module interconnection view: encompasses two orthogonal views: functional decomposition and layers Execution view: describes the dynamic view of the system Code view: describes how the source code, binaries, and libraries are organized in the development environment Soni, Nord, and Hofmeister from Siemens Corporate Research (1995 )

Viewtypes ( Clements, P., et al. (2003) ISBN , pp. XXV ) Viewtypes represent the perspectives that an architect must consider when designing a system: Module viewtype Component and Connector viewtype Allocation viewtype Each viewtype has associated styles. A style is a specialization of a viewtype and reflects recurring patterns of interaction, independent of any particular system. Within the confines of a style, choices need to be made on how the elements in a style are bound to elements in a system, and these are called views Viewtype Style 1 Style 2Style n View 1 View 2 View n

Rules for a Sound Architecture Documentation Rule 1: Write the documentation from the reader’s perspective Rule 2: Avoid unnecessary repetition Rule 3: Avoid ambiguity Rule 4: Use a standard organization Rule 5: Record rationale Rule 6: Keep documentation current but not too current Rule 7: Review documentation for fitness of purpose

Module Viewtype A module is a code unit that implements a set of responsibilities. A module can be a class, a collection of classes, or any decomposition of the code unit. The module viewtype documents the principal implementation units, or modules of a system, together with the relationships among these modules. Elements: module which is an element of software that provides a coherent unit of functionality Relations: is-part-of, depends-on, is-a relationships Properties of elements: name, responsibilities, implementation information A B C (a) A B C (b) Key Module Module interface

Component and Connector Viewtype Component-and-connector views define models consisting of elements that have some runtime presence, such as processes, objects, clients, servers, and data sources. They include the pathways of interaction, such as communication links, and protocols, information flows, and access to shared storage. Elements: component types: principal processing units and data stores Relations: Attachments: component ports associated with specific connector roles, component port p, attached to a connector role r, if the component interacts over the connector, using the interface described by p, and conforming to expectations described by r Properties of elements: Component (name, type, other properties) and Connector (name, type, other properties)

… Continued Component and Connector Viewtype Client Account Server-Main Account Server-Backup Account Database Administrative Client Teller 1 Server Attachment Database Application Client/Server – Request/Reply Database Access Publish-Subscribe Component Types Connector Types Key Database

The Allocation Viewtype The allocation viewtype presents a mapping of the software architecture onto its environment. It presents a mapping from the elements of either a module or a component-and-connector style onto elements of the environment. Three common allocation viewtype styles can be identified: The deployment style describes the mapping of the components and connectors onto the hardware on which the software executes The implementation style describes the mapping of modules onto a file system that contains these modules The work assignment style describes the mapping of modules onto the people, groups, or teams tasked with the development of the modules

… Continued The Allocation Viewtype Elements: Software element and environment element Relations: Allocated-to. A software element is allocated to an environment element Properties of elements: A software element has required properties. An environmental element has provided properties that need to e matched

Class Exercise 10 minutes Discuss any issues associated with Design and Architecture in both project teams