Using Architecture Frameworks

Slides:



Advertisements
Similar presentations
Documenting Software Architectures
Advertisements

1 Aspects of IEEE P1471 Viewpoints in Unified Modeling Language (UML) Manzur Ashraf, BRAC University Humayra Binte Ali, Dhaka University Md.Mahfuz Ashraf,
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
By Philippe Kruchten Rational Software
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
OASIS Reference Model for Service Oriented Architecture 1.0
Object-Oriented Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Unified Modeling (Part I) Overview of UML & Modeling
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
© Copyright Eliyahu Brutman Programming Techniques Course.
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural 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?
Object Oriented Analysis and Design Using the UML
Domain-Specific Software Engineering Alex Adamec.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
What is Software Architecture?
Chapter 10 Architectural Design
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
Changing Perspective From Structured to Object-oriented.
An Introduction to Software Architecture
Architecting Web Services Unit – II – PART - III.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
1 Introduction to Software Engineering Lecture 1.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
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.
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.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
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 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
4+1 View Model of 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.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Basic Characteristics of Object-Oriented Systems
UML (Unified Modeling Language)
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Architecting Web Services
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Architecting Web Services
OO Methodology OO Architecture.
Distribution and components
An Introduction to Software Architecture
Design Yaodong Bi.
Chapter 6: Architectural Design
Software Development Process Using UML Recap
Presentation transcript:

Using Architecture Frameworks

Outline Software architecture frameworks – These are sets of viewpoint specifications and their relationships. The 4+1 View Model of architecture – This model was developed by Rational Corporation for describing systems using object-oriented notations. Reference Model for Open Distributed Processing This is the ISO/IEC standard for describing open distributed processing systems.

Software Architecture Frameworks These are frameworks for creating architecture specifications. They are used as templates. Frameworks include the following types of viewpoints: Processing (e.g., functional or behavioial requirements and use cases) Information (e.g., object models, ERDs and DFDs) Structure (e.g., component diagrams depicting clients, servers, applications, and databases and their interconnections.)

Philosophies of Architecture Frameworks The differences between the various frameworks revolve around: Terminology – affects knowledge transference and reuse (the IEEE 1471 helps by providing a set of terminology). Representation completeness – should everything be modeled or just that which are considered part of the architectural description. Selection of viewpoints – is there a prescribed set of viewpoints or is the set highly customizable.

Architecture Framework Goals Codify best practices for architectural description. Ensure that the framework sponsors receive architectural information in the format they want. Facilitate architecture assessment. Improve the productivity of software development teams by using standardized means for design representation. Improve interoperability of information systems.

Methodologies and Architecture Frameworks A methodology may incorporate an architecture framework, but a framework is not a methodology. A methodology is a collection of: Practices Processes Methods Techniques Diagram notations

The 4 + 1 View Model of Architecture It is a design methodology developed by Rational Software Corporation and later subsumed by the Rational Unified Process (RUP) Its goal is to provide a multiviewpoint framework for specifying object-oriented systems. An architectural description consists of four logical views: logical, process, physical, and development. A fifth redundant view provides scenarios that tie the other four views together.

The 4 + 1 View Model of Architecture (Cont’d) End Users Software Management addresses addresses traces to Logical View Development View Scenarios traces to traces to traces to Process View Physical View addresses addresses System Integrators System Engineers

Relationship to IEEE 1471 The definition of a view in the 4 + 1 View Model is loosely defined, sometimes corresponding to an IEEE 1471 view and sometimes to a viewpoint. Each view addresses a specific set of stakeholder concerns and specifies a metalanguage for the models in that view.

Relationship to IEEE 1471 (Cont’d) The 4 + 1 Model fails to address the following three concerns specified by IEEE 1471. The appropriateness of the application for use in fulfilling its purpose. The feasibility of developing the application. The risks of application development and operation to the stakeholders. For some systems it may be possible to address these concerns with textual descriptions and a project plan.

Logical Viewpoint This is a viewpoint for expressing functional requirements. Logical viewpoints are platform independent. Logical views represent problem domain concepts, sometimes called the object model or business objects. This view does not address threads of control. Objects are considered discrete entities that interact by passing messages.

Stakeholders and Concerns Addressed The logical view targets the acquirers, end users, developers, and maintainers of the system. It shows how the functions are decomposed in terms of classes. This helps assure acquirers and end users that the design addresses the intended purpose of the system. Developers use these models to write code. Maintainers use these models to understand the system in order to make changes

View Construction The models for a logical view may be class diagrams or entity relationship diagrams. An object-oriented architectural style is recommended for this view because of its extensiveness in representing functional capabilities and information requirements.

Process Viewpoint The process viewpoint is a viewpoint for representing the processing model of the system. Process views capture the concurrency, synchronization and distribution aspects of the design.

Stakeholders and Concerns Addressed The process viewpoint addresses acquirers, developers, maintainers, and system integrators. This view represents the design solution to some nonfunctional requirements such as performance, availability, and fault tolerance. Acquirers need assurance that the design will satisfy these nonfunctional requirements. Developers use these models along with the logical model to write the application logic. Maintainers use these models to understand the system. System integrators use these models to understand how this system can interoperate with other systems.

View Construction The process view is described at several levels of abstraction: As communicating processes As tasks that form an executable unit. As components that can be tactically controlled The process view addresses how logical objects interact.

View Construction (Cont’d) The attributes of the classes represented in the process view are: Autonomy – the characteristic that identifies objects as active, passive, or protected. An active object can invoke its own methods and the methods of other objects, and has full control over objects invoking its methods. A passive object never spontaneously invokes other object’s methods and has no control over an object invoking its methods. A protected object never spontaneously invokes other objects methods but does monitor the invocation of its own methods.

View Construction (Cont’d) Persistence – the characteristic that identifies objects as either transient or permanent. Subordination – the characteristic that identifies whether an object’s existence or persistence is dependent on another object. Distribution – the characteristic that identifies if an object in the logical view is accessible on more than one node in the physical view or accessible from multiple processes from the process view.

View Construction (Cont’d) The process view can be comprised of class diagrams and collaboration diagrams that focus on the active objects that represent the threads and processes of the system. The collaboration diagrams can be supplemented with activity and state diagrams.

Development Viewpoint The development viewpoint is a viewpoint for representing the static organization of the software with respect to the software development environment.

Stakeholders and Concerns Addressed The development viewpoint addresses software configuration management and concerns such as buildability, maintainability, and reusability. It also addresses the partitioning of functionality across subsystems in support of development.

View Construction The components of a development view are modules or subsystems that compose the system. A layers architectural style can be used in a development view. The purpose of using layers in the development view is to minimize dependencies on modules so that they can be implemented and compiled with minimal coupling and dependencies.

Physical Viewpoint The physical viewpoint specifies a means for capturing the mapping of the software onto hardware and specifying its distribution.

Stakeholders and Concerns Addressed The physical viewpoint addresses acquirers and systems engineers. This viewpoint addresses the concerns of availability, reliability, performance, and scalability.

View Construction There can be several physical configurations of the system to support different operational situations. All the components of the three prior views map onto this view. The processes are mapped onto hardware nodes.

Scenario Viewpoint The scenario view ties all the other views together. Scenarios are instances of use cases. This view is considered to be redundant with respect to the other four views – it is the “+1” in the framework.

Stakeholders and Concerns Addressed The scenario viewpoint addresses users, acquirers, developers, maintainers, and testers. The use cases represent key functional requirements. The use cases act as a script that ties the elements of the different views together.

View Construction Only an architecturally significant subset of scenarios is use. They are represented using object-scenario (UML sequence) diagrams and object-interaction (UML collaboration) diagrams.

Model Overloading The same types of models are used in different views. For example, object collaboration diagrams in the logical model may represent key application objects passing general messages and in the process view may show explicit types of method invocations (synchronous, asynchronous, balking). Also, the same model can have different interpretations depending on the view in which it is interpreted.

Model Overloading (Cont’d) Because many viewpoints of the 4+1 View Model address both developer and acquirer concerns simultaneously, there are some drawbacks: It forces the acquirer to understand low-level models. It can all designers to prematurely commit to implementations.

Architecting with the Unified Process When the 4+1 View Model was first introduced, UML had not yet been created. The 4+1View Model has changed and the viewpoints have been renamed as follows: Design view (originally the logical view) Process view Implementation view (was the development view) Deployment view (was the physical view) Use case view (was the scenario)

Architecting with the Unified Process (Cont’d) The static aspect of the design view can be expressed using class diagrams and object diagrams and the dynamic aspect can use interaction diagrams, statechart diagrams, and activity diagrams. The process view is the same as the logical view. The implementation view is represented using component diagrams, interaction diagrams, statechart diagrams, and activity diagrams. The deployment view is composed of interaction diagrams, statechart diagrams, and activity diagrams.

Reference Model for Open Distributed Processing The main goal of RM-ODP is to provide mechanisms for architecting distributed processing. RM-ODP has five viewpoints: Enterprise Information Computational Engineering Technology

Enterprise Viewpoint This viewpoint focuses on the purpose, scope, and policies of the system and captures system requirements.

Stakeholders and Concerns Addressed The enterprise viewpoint addresses all stakeholders, but primarily users and acquirers. It addresses the purpose, missions, and appropriateness of the system.

View Construction The enterprise viewpoint represents a system in the context of the enterprise in which it operates. It consists of the following types of elements: Enterprise objects – external systems, people, artifacts, business processes, the system itself Communities – formed to meet specific objects of the enterprise Roles – users, owners, providers of information Contracts – a objective in terms of enterprise object collaborations and constraints

View Construction (Cont’d) A community specification consists of the following: The specification of enterprise objects that comprise the community The specification of the roles assumed by those objects The policies governing interactions between enterprise objects in the assumed roles The policies governing the life-cycle management of resources used by enterprise objects in the assumed roles The policies governing the structuring of enterprise objects and their role assignments The policies relating to the environment contracts governing the system The enterprise view many be composed of use case models.

Information Viewpoint The information viewpoint defines the universe of discourse of the system: The information content and the information about the processing of the system A logical representation of the data in the system The rules to be followed in the system, e.g., policies specified by the stakeholders.

Stakeholders and Concerns Addressed The information viewpoint addresses the acquirers, endusers, developers, and maintainers of the system. Architects use this view to organize and communicate system semantics with stakeholders. The information view can address qualities such as evolvability and adaptability.

View Construction The information view contains the information object model and environmental contracts for the objects. The information viewpoint specifies three schemata for representing the information objects: Invariant – specifies what must always be true for a set of information objects within a given period of time Static – the state and structure of a set of information objects at a specific point in time Dynamic – all the actions that permit a change in state or structure of a set of information objects

Computational Viewpoint This viewpoint specifies the system in terms of computational objects and their interfaces. It partitions the system into logical objects that perform the capabilities of the system and are capable of being distributed throughout the enterprise.

Stakeholders and Concerns Addressed This viewpoint addresses the same stakeholders as the information viewpoint. It addresses the structure of the application as distributed objects without specifying how they are distributed.

View Construction The elements of the computational viewpoint language are computational objects, computational interfaces, binding objects, interaction types, and interface types. The three types of interactions are Signal – a one-way interaction between an initiating object (client) and a responding object (server) Operation – an interrogation (a request and a response) or announcement (a one-way request) Flow – an ordered set of one or more one-way communications from a producer object to a consumer object.

Engineering Viewpoint This view specifies the mechanisms for physical distribution to support the logical processing model of the computational view without specifying a particular technology or middleware platform.

Stakeholders and Concerns Addressed The engineering viewpoint primarily aggressed the developers and maintainers of the system. It address the concerns of portability and extensibility.

View Construction The engineering viewpoint language consists of: Engineering objects – basic engineering objects correspond to computational objects that specifically provide application services and engineering objects support the distribution mechanisms, infrastructure, binging and transparency. Nodes – a node is a computer Clusters – configurations of basic engineering objects that act as a single entity Capsules – units of processing and storage

Technology Viewpoint The technology viewpoint specifies a language for representing the implementation of a system.

Stakeholders and Concerns Addressed The technology view primarily addresses developers, maintainers, and testers. It addresses qualities such as evolvability, maintainability, testability, buildability, extensibility.

View Construction The technology view maps the other views to implementations, technologies, and standards. This view specifies how the engineering view, in particular, maps to software, hardware, networks, operating systems, and middleware products.

View Construction The technology view maps the other views to implementations, technologies, and standards. This view specifies how the engineering view, in particular, maps to software, hardware, networks, operating systems, and middleware products.

Summary Frameworks differ with respect to methodology. The 4+1 View Model is tied to a use case driven methodology. RM-ODP does not have a strong methodology, but it is much stricter in its modeling languages. The 4+1 View Model focuses on describing object-oriented systems. The RM-ODP is not tied to object-oriented systems and is useful for describing open distributed systems.