Comparative Analysis of Architectural Views Based on UML

Similar documents
CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

A Design Rationale Representation for Model-Based Designs in Software Engineering

A Lightweight Language for Software Product Lines Architecture Description

Rose/Architect: a tool to visualize architecture

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

UNIT-I Introduction of Object Oriented Modeling

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

Component-Based Applications: A Dynamic Reconfiguration Approach with Fault Tolerance Support

Modeling Requirements

CIS 771: Software Specifications

CISC 322 Software Architecture

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

CHAPTER 9 DESIGN ENGINEERING. Overview

Introduction to Software Engineering. 5. Modeling Objects and Classes

Architecture Viewpoint Template for ISO/IEC/IEEE 42010

Chapter 12. UML and Patterns. Copyright 2008 Pearson Addison-Wesley. All rights reserved

Extending Architectural Representation in UML with View Integration

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

Software Architectures

Object-Oriented Design

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

The Unified Modeling Language (UML)

1 Executive Overview The Benefits and Objectives of BPDM

Available online at ScienceDirect. Procedia Computer Science 56 (2015 )

Unified Modeling Language (UML)

Dimensions for the Separation of Concerns in Describing Software Development Processes

Software Development. Modular Design and Algorithm Analysis

Lecture 13 Introduction to Software Architecture

Meta Architecting: Towered a New Generation of Architecture Description Languages

CS560 Lecture: Software Architecture Includes slides by I. Sommerville

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT)

ICAD A USE CASE BASED OBJECT-ORIENTED SOFTWARE DESIGN APPROACH USING THE AXIOMATIC DESIGN THEORY

Software Service Engineering

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Object-Oriented Theories for Model Driven Architecture

Computer Science 520/620 Spring 2013 Prof. L. Osterweil" Use Cases" Software Models and Representations" Part 4" More, and Multiple Models"

Computer Science 520/620 Spring 2013 Prof. L. Osterweil" Software Models and Representations" Part 4" More, and Multiple Models" Use Cases"

Unified Modelling Language User Guide READ ONLINE

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

RIGOROUSLY AUTOMATING TRANSFORMATIONS OF UML BEHAVIOR MODELS

LESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

Unit 1 Introduction to Software Engineering

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Software Engineering from a

Rational Software White paper

Chapter 3 System Models

Darshan Institute of Engineering & Technology for Diploma Studies

Computer Science 520/620 Spring 2014 Prof. L. Osterweil" Use Cases" Software Models and Representations" Part 4" More, and Multiple Models"

What is a software architecture?

CSE 308. UML Overview Use Case Diagrams. Reference. Class diagrams. Session 6 UML Intro/Use cases. Robert Kelly, B. Bruegge,

BUSINESS REQUIREMENTS SPECIFICATION (BRS) Documentation Template

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML

Introduction to UML. Danang Wahyu utomo

Software Development Methodologies

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

Aspect Design Pattern for Non Functional Requirements

What is your definition of software architecture?

The Unified Modeling Language User Guide

Introduction to the UML

UML 2.0 State Machines

What is a Data Model?

06. Analysis Modeling

Formal Specification of Software Systems

Architecture. Readings and References. Software Architecture. View. References. CSE 403, Spring 2003 Software Engineering

Lecture #2 on Object-Oriented Modeling

HyperFrame - A Framework for Hypermedia Authoring

Extending Architectural Representation in UML with View Integration

How and Why to Use the Unified Modeling Language. among software components, architectural-based

Object-Oriented Software Engineering Practical Software Development using UML and Java

The UML Extension Mechanisms

Integrating Systems and Software Engineering Concepts in AP-233

Architecture. CSE 403, Winter 2003 Software Engineering.

ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES

Unified Modeling Language (UML)

Software Language Engineering of Architectural Viewpoints

UML Modeling. Sumantra Sarkar. 29 th June CIS 8090 Managing Enterprise Architecture

PIP: Progressive Implementation Pattern

UML Primer. -Elango Sundaram

Open Work of Two-Hemisphere Model Transformation Definition into UML Class Diagram in the Context of MDA

UML-Based Conceptual Modeling of Pattern-Bases

Exploiting Visual Languages Generation and UML Meta Modeling to Construct Meta-CASE Workbenches

History of object-oriented approaches

Notation Standards for TOGAF:

On Traceability of Informal Specifications for Model-Based Verification

Systems Analysis & Design

A SIMULATION ARCHITECTURE DESCRIPTION LANGUAGE FOR HARDWARE-IN-LOOP SIMULATION OF SAFETY CRITICAL SYSTEMS

1 OBJECT-ORIENTED ANALYSIS

Software Architecture Recovery based on Dynamic Analysis

Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Using Patterns to Integrate UML Views

Chapter 2 Overview of the Design Methodology

Object Oriented Modeling

Transcription:

Electronic Notes in Theoretical Computer Science 65 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume65.html 12 pages Comparative Analysis of Architectural Views Based on UML Lyrene Fernandes da Silva 3 Virginia C. Carneiro de Paula 1,2 Informatics Department Federal University of Rio Grande do Norte Natal-RN, Brazil Abstract The need to model systems and their different aspects leads to research and development of models which support all views of a system. The growing complexity of the software imposes the use of architectures, not only because we want to build accurate systems, but also because we need to understand them. Separating aspects of different views usually helps us to manage software complexity. The current work is an analysis of two important approaches on architectural views and on the use of UML to reason about views. Our goal is to analyze the different aspects addressed by them and how UML is inserted on each of these models. 1 Introduction As defined by IEEE Draft Standard 1471, a view addresses one or more interests of the system stakeholders: developer, user, customer, etc [2]. We can say that those interests are functional (its static structures and dynamic interactions), non-functional (time, reliability, safety requirements etc) and organizational (organization of the work, the code modules mapping etc). Nevertheless, a view can supply information to requirements, organization, people, technology, report of changes, structure of the product, view transitions etc., being used by some language to describe its aspects of interest. Views can be presented using a natural, a graphical or a formal language. Software architecture is the most effective solution to manage those different points-of-view, and to control the iteractive and incremental development of a system [3]. The representation of a system through its components, 1 Research for this paper was done with valuable support from CNPq (Brazilian Council for Development of Science and Technology) under process 68.0102/01-9 2 Email: vccpaula@ufrnet.br 3 Email: lyrene@ufrnet.br c 2002 Published by Elsevier Science B. V.

inter-relationships and interfaces [1] provides foundation to find and to solve problems in advance. Therefore, the costs with maintainance can be minimized and the productivity and the global quality of the software systems can be maximized. A software architecture presents a set of special features that should be modeled [4]. The representativity of the static and dynamic characteristics of the system, and the easy understanding and communication between the developers and other project stakeholders are essential points in the choice of an Architecture Description Language (ADL). In the context of software engineering, UML (Unified Modeling Language) has become a standard language for modeling systems. The developers are quite interested in the use of this language because it is flexible and easy to learn and to understand. It is not restricted to a particular methodology and it has being used to model several aspects of a system. Although it is not considered an ADL, UML has been used, appraised and integrated to existing ADLs as shown in [1],[5],[6] and [7]. One of the causes of UML success is the support to the representation of several views. Although the concept of views is plenty clear (however, very generic), there are different approaches about this concept and its use with UML. The present work makes a comparative analysis of the different aspects approached by two important studies about architectural views which use UML [1,2], and the UML meaning in each of the approaches. 2 UML UML (Unified Modeling Language) is a language to specify, to visualize, to build and to document the artifact of the software system, as well as to model business and other systems that are not software [Booch-Rumbaugh-Jacobson 97 in 2]. It is composed of a group of nine diagrams with clearly defined syntax and semantics. The diagrams are: Use case, Classes, Objects, Sequence, Collaboration, State, Activities, Implantation and Components Diagrams. Each of them depicts different aspects of a system. Together, they offer the representation of a complete system. Each view of a system can be described by one or by several diagrams. A diagram can depict aspects of more than one view. Usually, the use case, classes, objects, implantation and components diagrams depict static aspects of a system. The dynamic aspects are represented by the sequence, collaboration, state and activities diagrams [3]. Due to its flexibility, UML has been used with success in the description of architectures and meta-models for software development [1]. However, this flexibility is source of problems such as duplication and inconsistency of information in the global model, as well as poor integration among its several diagrams or among methods that aid in the conversion of the information from a diagram to another. Therefore, to guarantee the conceptual integrity of the 2

description, it is necessary a great ability to identify mismatching elements in the model and to integrate its properties. An approach to integrate the diagrams (or views) developed during the architecture of a system is supplied by the Qualifying report by Alexander Egyed that will be presented in the next section. This is the first approach analyzed in this work. 3 Architectural Views According to Egyed The Qualifying report by Alexander Egyed [2] offers a framework for integrating views. The objective is the resolution of integrity, consistence and completeness problems of the models built in the development of a system using UML as modeling language. The main mismatches mentioned by Egyed are among layers of classes - classes diagrams in different levels of abstraction; among sequence and classes diagrams - mismatches among the interaction sequences of the sequence diagram and the existing relationships in the classes diagram designed; among states and collaboration diagrams - differences between the possible states of a class and the interactions among the objects of the collaborations diagram; and cardinality mismatch - the cardinality allowed in a relationship (in the classes diagram) can be violated in objects and sequence diagrams etc. Those mismatches usually happen because the same or similar information appear in different time or diagrams, causing duplication or inconsistency of information. Nevertheless, to guarantee the conceptual integrity, the model elements which were duplicated and their integration properties should be identified [2]. In Figure 1, are shown the UML views and other views that frequently are part of the main development steps - analysis, architecture and design of a software system. The arrows generically depict the dependences among the views. The framework developed by Egyed is based upon the definition of dimensions and some types of views, as described in the following. The types of views are: Diagrammatic Views - Class/Object, Sequence, State, Collaboration Diagram etc. In other words, the UML diagrams themselves which possess a well defined semantics and functionality; Textual Views - Object Constraints Language (OCL) and programming languages. The dimensions of views are: Vertical - it reflects the decomposition/refinement of the system, in other words, the system is decomposed in layers where each layer represents the complete system, but in a different level of abstraction. 3

Fig. 1. Architectural Views in UML [2] Horizontal - it reflects the group of views used to represent a system completely (a layer). The horizontal dimension is frequently divided in static and dynamic view. Process - it reflects the integration of the produced artifacts (for instance, the diagrams) during the life cycle, also referred to as version control or configuration management. Understanding why the things happen in the way they do (or change the way they do) supplies important design information. Therefore, Egyed considers views as each one of the diagrams of UML, if we regard the dimension of horizontal view; and abstraction/refinement of diagrams considering the vertical dimension. With the problems caused by the division of the model in several views in mind, (as many of the development models defined today, for instance UML), Egyed defines a model that contains the union of all the views, therefore with minimum of duplication. This model uses the paradigm of the View Independent Representation (VIR). Using the VIR, instead of seeing views as components of the system representation, we see them consisting of models that has views or points of view. The views give meaning to the model. In Figure 2, we can see an illustration of VIR centralizing the several existing views.. Egyed still defines three activities to guarantee the conceptual integrity (Summarized in Figure 3): Mapping - Identifies related pieces of information through the use of naming dictionaries, traces and trace simulation, and certain forms associations/patterns. 4

Fig. 2. Integration using VIR [2] Fig. 3. View Integration Activities Transformation - Manipulates elements in views so that they can be shared with other views. For instance, through abstraction techniques to generalize or to detail diagrams, and reorganization of the model elements (or pieces) in different manners to create new perspectives (merging or splitting ). Differentiation - Traverses the system model to identify potentials mismatches between views and derived views (derived view is a view in different levels of abstraction). (Potential) mismatches are described in the form of rules and constraints, using the Object Constraint Language - OCL, to be validated with other mismatches and with other information of the modeling. The Transformation corresponds to the components (boxes and arrows 5

Fig. 4. Meta-model of the conceptual architecture view [1] in generic structural diagrams), and Mapping corresponds to the connectors (relationships between boxes and arrows). The configuration derived through Transformation and Mapping is the foundation for analyzing the conceptual integrity of the system, through the Differentiation. For more details of this framework see the original Egyed work [2]. As we have just described, Egyeds work presents an approach of the views of UML, i. e., any system modeled through UML will probably use the types and dimensions of views previously defined. These views form the UML itself. However, they depict very generic important aspects for the development of any system, as for instance, static and dynamic aspects; and in any phase of the development or during the analysis or the design. 4 Architectural Views According to Hofmeinster, Nord and Soni The book Applied Software Architecture [1] is the result of the authors experience in the software architecture area. It is a detailed and practical guide for the tasks of software architecture. The necessary requirements for the creation of a system architecture are the starting point for Hofmeinster, Nord and Soni four meta-models which depict these characteristics, or architectural views. Each one of them is loosely coupled and addresses different engineering concerns. They are : (i) Conceptual view - This view describes the system in terms of its design elements and the relationships among them (configuration). In this view, the functionality of the system is mapped into the elements of the architecture called components, with the coordination and changes of data mapped into elements called connectors (Figure 4). The components and connectors possess interaction points denominated ports and roles, respectively. Each port and role are associated to a protocol which defines how the incoming and outgoing operations can be ordered. 6

Fig. 5. Meta-model of the module architecture view [1] (ii) Module view - In this view, the components and connectors of the conceptual view are mapped into subsystems and modules, and these are organized in layers. The focus of this view is how the conceptual solution can be accomplished by the current software technologies and platforms (Figure 5). The subsystems correspond to the conceptual components of higher level (one that is decomposed in other components and connectors), they can contain other subsystems or modules. A module can correspond to only one conceptual element (component, port, connector, or role) or to a group of them. They can be decomposed in other modules, but in this case the parent module is a container. The modules encapsulate data and operations to provide/require a service, that is defined by the interface that the module provide/require. Layers organize the modules in a hierarchy and also provide/require interfaces. (iii) Execution view - This view describes how modules are mapped into the elements provided by the execution platform, and how these are mapped into the hardware architecture. The execution view defines the entities of run time and its attributes (Figure 6). It is necessary to accomplish an analysis of the hardware and software platforms that will be used. For the hardware platform, it is necessary to list the hardware components used in the system, as well as the topology and interconection of such components. For the software platform, it is necessary to know the existing software infrastructure between the product and the hardware platform (usually the operational system). Then, the conceptual components and modules are mapped into the platform elements (modules are usually assigned for execution entities) and the way they communicate. (iv) Code view - This view determines the organization of the source code inside of code object, libraries and binary by mapping the elements of the Module and Execution views into code components and by organizing 7

Fig. 6. Meta-model of the execution architecture view [1] Fig. 7. Meta-model of the code architecture view [1] them (Figure 7). These four views represent the minimum to consider when a software system is meant to be designed. According to the views presented, it is defined a process for the architecture development using those meta-models. For more details see [1]. The language used for the documentation of those views is UML, which is only a notation used by the models. Those meta-models represent what should be thought during the development of a software architecture. In other words, they depict the static aspects of the architecture. To represent the dynamic aspects of the architecture, in other words, the behavior of the components (and/or system), Hofmeinster et. al [1] use the states, activities and sequence diagrams. And the organizational aspects are modeled by the components diagram, all defined by UML. 8

Fig. 8. Views according to the approach of Egyed 5 Comparative Analysis According to the models presented above, the work of Egyed presents UML as a group of views that together depicts the model of a complete system. Such views can be represented by each one of UML diagrams (class/object, sequence, collaboration, state, activities, components, and execution) in an horizontal dimension, or for diagrams in different levels of abstraction in a vertical dimension. The fact that the information can be divided and represented by different diagrams, is pointed by Egyed as a likely source of duplication and inconsistency of information. Our observation is that his proposal of a Views Independent Representation (VIR) oposes the definition of UML because several views are proposed as a form of representing a system completely, while Egyed proposes a single built explicit model from which several views can be extracted. The solution proposed by Egyed is quite complex, because it places all the views in an single model. This means that the user has to deal with complex problems which motivated the generation of views dependent models which are known today, as for instance UML. Therefore, Egyed suggests this to be an automated solution that is a consequence of the problems generated by the flexibility of UML. In summary, any system model which uses UML as modeling language will present the dimensions defined by Egyed, as well as the integration problems decurrent of the views in UML. It is worth saying these two aspects constitute the UML definition itself. Therefore, each level of abstraction can be seen as a set of UML diagrams as illustrated by Figure 8. On the other hand, Hofmeinster et. al propose a solution for the modeling of software architectures. Their solution is composed by four views, each of them representing different aspects of an architecture. The modeling language used is UML. Four meta-models were created. They represent the constituent elements of each view. Therefore, they represent the static aspects of a system. The UML classes diagram has been used to model these meta-models. The dynamic aspects are represented through the states, sequence and components UML diagrams, as well as through natural language and tables. 9

Fig. 9. UML and software architecture views Each of the defined views by Hofmeinster et. al represents the complete system, under different aspects or different points of view. They can be seen as adjacent layers that represent the system or like Egyed would denominate it, horizontal views. Figure 9 displays each one of the arquitetural views defined by Hofmeinster et. al, showing which UML diagrams (or horizontal views of UML, as defined by Egyed) are used in each of them. Each of those views can be seen as Egyed defined views. For instance, the classes view of UML. The development based on those meta-models (and in UML) will present the inherent characteristics of UML like, for instance, the vertical and horizontal dimensions, the static and dynamic aspects and the decurrent integration problems of the views dependent representation. For a complete and consistent representation of a software architecture during a development process, it would be necessary the integration of the two approaches presented in this work, the one offered by Egyed and the one proposed by Hofmeinster et. al, guaranteeing the consistence of the model and the completeness of the architecture, respectively. The solution proposed by Hofmeinster et. al would guarantee that all the referring aspects to a software architecture would be treated. On the other hand, the solution offered by Egyed, would guarantee that the designed models using UML would be consistent. These are two of the most important aspects to be treated during the design of the architecture. 6 Conclusions and Future Work The use of views for the software development is necessary due to the great complexity of software. This work analyzed two important approaches on views. Both agree in the meaning of views, however they focus different aspects and in a distinguished way. The work of Egyed focuses on UML and describes the different aspects modeled by each one of its views or diagrams, as well as the problems caused 10

by the flexibility of this language in terms of his views. The work of Hofmeinster, Nord and Soni focus on the software architecture and identifies four necessary views for the development of a complete software architecture. These models use UML as notation for the meta-models. We can see that UML has been playing an important role in researches upon the development of software systems, as a main focus on the identification and on resolution of intrinsic problems as well as support to other activities as description of meta-models or architectures. A great amount of work can be done to deal with UML and software architecture. For instance: To use UML to describe architectural styles based on the conceptual view of Hofmeinster et. al; To elaborate a development methodology using the views of Hofmeinster et. al and UML; To use the integration framework of Egyed during the development of architectures based on the views of Hofmeinster et. al; and To verify if the approach of Hofmeinster et. al can satisfy any system type. A result of the first item mentioned above, is a master thesis, written by one of the authors of this paper. A meta-model has being elaborated to specify software architectures which follow the layer style [8]. References [1] Hofmeinster, Christine, Robert Nord and Dilip Soni, Applied Software Architecture, Addison Wesley, 2000. [2] Egyed, Alexander, Integrating Architectural Views in UML, Technical report, USC/CSE-99-TR-514, march 1999. [3] Booch, Grady, James Rumbaugh and Ivar Jacobson, The Unified Modeling Language User Guide, Addison Wesley, 1999. [4] Clements, Paul C., A Survey of Architecture Description Languages, Eighth International Workshop on Software Specification and Design, Germany, March 1996. [5] Robbins, Janson E., David F. Redmiles and David S. Rosenblum, Intregrating C2 with the Unified Modeling Language, California Software Symposium, Irvine, CA, november 1997. [6] Maranhão, Dina; Integrating ZCL Architecture Description Language with UML, Undergraduation Report, UFRN, Natal-RN, Brazil, 2000. (In Portuguese) [7] Silva, Lyrene F. and Virgnia C.C. de Paula, Software Architecture and UML, I Technical-Scientific Workshop - DIMAp 15 years, UFRN, Natal-RN, Brazil, 2000. (In Portuguese) 11

[8] Silva, Lyrene F., Integrating styles via meta-models, Master Thesis, DIMAp/UFRN, Brazil, 2002. (In Portuguese) 12