Component-Oriented Software Development with UML

Total Page:16

File Type:pdf, Size:1020Kb

Component-Oriented Software Development with UML ICSEA 2011 : The Sixth International Conference on Software Engineering Advances Component-oriented Software Development with UML Nara Sueina Teixeira Ricardo Pereira e Silva Graduate Program in Computer Science Department of Informatics and Statistics - INE Federal University of Santa Catarina - UFSC Federal University of Santa Catarina - UFSC Florianópolis, Brasil Florianópolis, Brasil E-mail: [email protected] E-mail: [email protected] Abstract — This paper proposes to automate the process of Mouakher, Lanoix and Souquières [8] improved the structural and behavior analysis of component-oriented approach [6] by adding an interface protocol, described in software fully specified in UML. The structural specification PSM (Protocol State Machine), to the CI specification and uses component, class and deployment diagrams, and the proposing adapters when incompatible interfaces were behavior specification, state machine diagram. The produced identified. However, the analysis is also performed between structural analysis tool analyzes a connection between pairs of two connected interfaces, disregarding problems associated components at a time. The produced behavioral analysis tool considers the behavior of the system as a whole, leading to with the whole set of application components. In [6] and [8] behavioral specification of the application automatically from the notion of component port is not treated. the machine state of each connected component. It is Bracciali, Brogi and Channel [9] describe the interface of performed the convertion of the state machines of the components through IDLs (Interface Description Language) individual components and of the application to Petri nets in a and they use a subset of Lambda Calculus to represent the transparent manner to the user. The behavioral assessment is behavior of components. This low level solution becomes done by analyzing Petri net properties, considering the context difficult to be applied to describe complex systems. of the components. Analysis results are produced without The component compatibility analysis should be demand effort, allowing early location of design problems. performed based on the CI specification and must consider three distinct aspects: structural, behavioral, and functional. Keywords-Component-oriented development; structural compatibility analysis; behavioral compatibility analysis; UML; “The structural aspect concerns the static features of a Petri Nets. component and corresponds to the set of required and provided operation signatures of the CI. The behavioral I. INTRODUCTION aspect defines constraints in the invocation order of provided and required operations. The functional aspect describes For the component-based software development what the component does, not necessarily going into details approach, software construction consists in an of its implementation” [10]. interconnection of a collection of units: the components. “A The lack of a widely accepted standard for the component represents a modular part of a system that specification of CI makes the analysis of compatibility encapsulates its contents and whose manifestation is between components difficult and hence, their reuse. The replaceable within its environment” [1]. “A component second version of UML, called henceforth UML [1] provides interface (CI) is a collection of service access points, each mechanisms to deal with components, but does not establish one with a defined semantics” [2]. The latter establishes the a standard for complete specifications. services required and provided by a component, not In a previous publication [11] were proposed ways of considering implementation details. specifying component-oriented software and CI, in which the Some research efforts suggest the automation of specification is based on the object-oriented paradigm and component compatibility analysis evaluating their CIs. Dias uses only UML diagrams. For the CI structural specification and Vieira [3] use the Argus-I tool integrated to the SPIN component and class diagrams are used and for the CI tool [4] for the component compatibility analysis, in which behavioral specification is utilized the state machine specifications are produced in ADL (Architecture diagram. Thus, each component has its own state machine Description Language) and state machine diagram is (SM) representing its externally observable behavior – being converted to PROMELA [5]. The architectural analysis this observable behavior the sequence of required and considers the "super state model", but the authors do not provided operations performed during the component’s detail how it is generated. operation. The organization of components of an application Chouali and Souquières [6] use refinement in B to prove is described by using the deployment diagram. the compatibility between two interfaces, through the tool This paper proposes the automation of the component’s AtelierB [7]. The CI specification is converted to the formal compatibility analysis process from the component-based method B and consists of a data model associated with each software specification [11]. The approach used in this paper is implemented in the current version of the SEA component provided and the required interface. The environment [10] [12] [13], which uses UML. SEA is a interoperability does not cover behavioral aspects, therefore development environment in which the object-oriented it does not assess the feasibility of the component-based paradigm is used for production and use of reusable software application. Copyright (c) IARIA, 2011. ISBN: 978-1-61208-165-6 269 ICSEA 2011 : The Sixth International Conference on Software Engineering Advances artifacts. Some tools were built in this environment to a design specification without changing it and produce automate the analysis of structural and behavioral reports with the specification features. The tools SAT and compatibility. BAT are analyzers. The structural analysis tool (SAT) handles at each time, PECIFICATION OF OMPONENT ASED OFTWARE pairs of connected ports. The behavioral analysis tool (BAT) III. S C -B S considers not only the individual behavior of each A. Structural Specification component, but also the behavior of the system as a whole. It The structural specification concerns to all the operation involves the entire set of application’s interconnected signatures of the CI. “The CI refers to the portion of the components at the same time. In this work, the application component responsible for communicating with its external SM is automatically obtained from the union of the SMs of environment. Taking into account the nomenclature of UML, each connected component. the CI is composed by a port collection, each one associated For the behavioral analysis, the UML state machine to one or more UML interfaces” [11]. diagram is converted in Petri net (PN). This conversion is In this approach, producing the CI structural specification done automatically in a transparent way to the user, who requires the specification of all interfaces associated with the does not need any knowledge of this modeling technique. component (in class diagram) and the definition of the Behavioral problems are identified through the component ports, associating required or provided interfaces interpretation of PN properties, considering the component to each of them in component diagram. context. The conversion method (of SM to PN) used in this With the establishment of the interfaces related to the study is similar to that proposed in [14], however, it only component ports through realization or dependency handles PNs of the ordinary kind and presents particularities relationship, it becomes possible to check what operations of the treaty context. are provided or required from a component’s port. Functional compatibility analisys consists in evaluate if Figure 1 illustrates the structural specification of a the execution steps of an operation are in agreement with hypothetical component, CompB, made in the SEA environment. At the right side there is the class diagram the need of the component that invokes the operation. This with the interfaces; at the left side, a component, in a kind of analisys is not automatable and is beyond the scope component diagram, that is related to the declared interfaces. of this work. In the SEA environment, the connection between The following sections are organized as: Section II components is made in the deployment diagram, linking the presents concepts related to OCEAN / SEA, and Section III ports of connected components. Figure 2 illustrates a presents the approach to specify component-based software. deployment diagram with a hypothetical software artifact In Section IV, the automated structural compatibility analysis consisting of the interconnection of three components. All is described, while in Section V, the behavioral analysis is the components must be declared in component diagram and presented. Software specification and analysis are supported all the interfaces, in class diagram. by the tools inserted in SEA environment. Section VI presents how the evaluation of the produced tools occurred. B. Behavioral Specification The article ends with conclusions, in Section VII. The CI behavioral specification sets restrictions on the invocation order of operations provided and required by the II. OCEAN /S EA IMPLEMENTATION component. In this approach, the behavioral specification is OCEAN [10] is an object-oriented framework for the represented by a UML state machine diagram.
Recommended publications
  • Component Diagrams in UML
    9. UML Component Diagrams Page 1 of 4 Component Diagrams in UML The previous articles covered two of the three primary areas in which the UML diagrams are categorized (see Article 1)—Static and Dynamic. The remaining two UML diagrams that fall under the category of Implementation are the Component and Deployment diagrams. In this article, we will discuss the Component diagram. Basics The different high-level reusable parts of a system are represented in a Component diagram. A component is one such constituent part of a system. In addition to representing the high-level parts, the Component diagram also captures the inter- relationships between these parts. So, how are component diagrams different from the previous UML diagrams that we have seen? The primary difference is that Component diagrams represent the implementation perspective of a system. Hence, components in a Component diagram reflect grouping of the different design elements of a system, for example, classes of the system. Let us briefly understand what criteria to apply to model a component. First and foremost, a component should be substitutable as is. Secondly, a component must provide an interface to enable other components to interact and use the services provided by the component. So, why would not a design element like an interface suffice? An interface provides only the service but not the implementation. Implementation is normally provided by a class that implements the interface. In complex systems, the physical implementation of a defined service is provided by a group of classes rather than a single class. A component is an easy way to represent the grouping together of such implementation classes.
    [Show full text]
  • Using the UML for Architectural Description?
    Using the UML for Architectural Description? Rich Hilliard Integrated Systems and Internet Solutions, Inc. Concord, MA USA [email protected] Abstract. There is much interest in using the Unified Modeling Lan- guage (UML) for architectural description { those techniques by which architects sketch, capture, model, document and analyze architectural knowledge and decisions about software-intensive systems. IEEE P1471, the Recommended Practice for Architectural Description, represents an emerging consensus for specifying the content of an architectural descrip- tion for a software-intensive system. Like the UML, IEEE P1471 does not prescribe a particular architectural method or life cycle, but may be used within a variety of such processes. In this paper, I provide an overview of IEEE P1471, describe its conceptual framework, and investigate the issues of applying the UML to meet the requirements of IEEE P1471. Keywords: IEEE P1471, architectural description, multiple views, view- points, Unified Modeling Language 1 Introduction The Unified Modeling Language (UML) is rapidly maturing into the de facto standard for modeling of software-intensive systems. Standardized by the Object Management Group (OMG) in November 1997, it is being adopted by many organizations, and being supported by numerous tool vendors. At present, there is much interest in using the UML for architectural descrip- tion: the techniques by which architects sketch, capture, model, document and analyze architectural knowledge and decisions about software-intensive systems. Such techniques enable architects to record what they are doing, modify or ma- nipulate candidate architectures, reuse portions of existing architectures, and communicate architectural information to others. These descriptions may the be used to analyze and reason about the architecture { possibly with automated support.
    [Show full text]
  • Plantuml Language Reference Guide (Version 1.2021.2)
    Drawing UML with PlantUML PlantUML Language Reference Guide (Version 1.2021.2) PlantUML is a component that allows to quickly write : • Sequence diagram • Usecase diagram • Class diagram • Object diagram • Activity diagram • Component diagram • Deployment diagram • State diagram • Timing diagram The following non-UML diagrams are also supported: • JSON Data • YAML Data • Network diagram (nwdiag) • Wireframe graphical interface • Archimate diagram • Specification and Description Language (SDL) • Ditaa diagram • Gantt diagram • MindMap diagram • Work Breakdown Structure diagram • Mathematic with AsciiMath or JLaTeXMath notation • Entity Relationship diagram Diagrams are defined using a simple and intuitive language. 1 SEQUENCE DIAGRAM 1 Sequence Diagram 1.1 Basic examples The sequence -> is used to draw a message between two participants. Participants do not have to be explicitly declared. To have a dotted arrow, you use --> It is also possible to use <- and <--. That does not change the drawing, but may improve readability. Note that this is only true for sequence diagrams, rules are different for the other diagrams. @startuml Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response Alice -> Bob: Another authentication Request Alice <-- Bob: Another authentication Response @enduml 1.2 Declaring participant If the keyword participant is used to declare a participant, more control on that participant is possible. The order of declaration will be the (default) order of display. Using these other keywords to declare participants
    [Show full text]
  • APECS: Polychrony Based End-To-End Embedded System Design and Code Synthesis
    APECS: Polychrony based End-to-End Embedded System Design and Code Synthesis Matthew E. Anderson Dissertation submitted to the faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Engineering Sandeep K. Shukla, Chair Lamine Mili Alireza Haghighat Chao Wang Yi Deng April 3, 2015 Blacksburg, Virginia Keywords: AADL, CPS, Model-based code synthesis, correct-by-construction code synthesis, Polychrony, code generators, OSATE, Ocarina Copyright 2015, Matthew E. Anderson APECS: Polychrony based End-to-End Embedded System Design and Code Synthesis Matthew E. Anderson (ABSTRACT) The development of high integrity embedded systems remains an arduous and error-prone task, despite the efforts by researchers in inventing tools and techniques for design automa- tion. Much of the problem arises from the fact that the semantics of the modeling languages for the various tools, are often distinct, and the semantics gaps are often filled manually through the engineer's understanding of one model or an abstraction. This provides an op- portunity for bugs to creep in, other than standardising software engineering errors germane to such complex system engineering. Since embedded systems applications such as avionics, automotive, or industrial automation are safety critical, it is very important to invent tools, and methodologies for safe and reliable system design. Much of the tools, and techniques deal with either the design of embedded platforms (hardware, networking, firmware etc), and software stack separately. The problem of the semantic gap between these two, as well as between models of computation used to capture semantics must be solved in order to design safer embedded systems.
    [Show full text]
  • Systems Engineering with Sysml/UML Morgan Kaufmann OMG Press
    Systems Engineering with SysML/UML Morgan Kaufmann OMG Press Morgan Kaufmann Publishers and the Object Management Group™ (OMG) have joined forces to publish a line of books addressing business and technical topics related to OMG’s large suite of software standards. OMG is an international, open membership, not-for-profi t computer industry consortium that was founded in 1989. The OMG creates standards for software used in government and corporate environments to enable interoperability and to forge common development environments that encourage the adoption and evolution of new technology. OMG members and its board of directors consist of representatives from a majority of the organizations that shape enterprise and Internet computing today. OMG’s modeling standards, including the Unifi ed Modeling Language™ (UML®) and Model Driven Architecture® (MDA), enable powerful visual design, execution and maintenance of software, and other processes—for example, IT Systems Modeling and Business Process Management. The middleware standards and profi les of the Object Management Group are based on the Common Object Request Broker Architecture® (CORBA) and support a wide variety of industries. More information about OMG can be found at http://www.omg.org/. Related Morgan Kaufmann OMG Press Titles UML 2 Certifi cation Guide: Fundamental and Intermediate Exams Tim Weilkiens and Bernd Oestereich Real-Life MDA: Solving Business Problems with Model Driven Architecture Michael Guttman and John Parodi Architecture Driven Modernization: A Series of Industry Case Studies Bill Ulrich Systems Engineering with SysML/UML Modeling, Analysis, Design Tim Weilkiens Acquisitions Editor: Tiffany Gasbarrini Publisher: Denise E. M. Penrose Publishing Services Manager: George Morrison Project Manager: Mónica González de Mendoza Assistant Editor: Matt Cater Production Assistant: Lianne Hong Cover Design: Dennis Schaefer Cover Image: © Masterfile (Royalty-Free Division) Morgan Kaufmann Publishers is an imprint of Eslsevier.
    [Show full text]
  • Component Diagrams
    1.COMPONENT DIAGRAMS 2. PACKAGE DIAGRAMS What is a component? – A component is an autonomous unit within a system – UML component diagrams enable to model the high-level software components, and the interfaces to those components – Important for component-based development (CBD) – Component and subsystems can be flexibly REUSED and REPLACED – UML components diagrams are Implementation diagrams i.e., it describe the different elements required for implementing a system Example – When you build a house, you must do more than create blueprints – you've got to turn your floor plans and elevation drawings into real walls, floors, and ceilings made of wood, stone, or metal. – If you are renovating a house, you'll reuse even larger components, such as whole rooms and frameworks. – Same is the case when we develop software…. COMPONENT NOTATION – A component is shown as a rectangle with – A keyword <<component>> – Optionally, in the right hand corner a component icon can be displayed – A component icon is a rectangle with two smaller rectangles jutting out from the left-hand side – This symbol is a visual stereotype – The component name Component types Components in UML could represent – logical components (e.g., business components, process components) – physical components (e.g., EJB components, COM+ and .NET components) Component ELEMENTS – A component can have – Interfaces An interface represents a declaration of a set of operations – Usage dependencies A usage dependency is relationship which one element requires another element for its full
    [Show full text]
  • UML Basics: the Component Diagram
    English Sign in (or register) Technical topics Evaluation software Community Events UML basics: The component diagram Donald Bell ([email protected]), IT Architect, IBM Corporation Summary: from The Rational Edge: This article introduces the component diagram, a structure diagram within the new Unified Modeling Language 2.0 specification. Date: 15 Dec 2004 Level: Introductory Also available in: Chinese Vietnamese Activity: 259392 views Comments: 3 (View | Add comment - Sign in) Average rating (629 votes) Rate this article This is the next installment in a series of articles about the essential diagrams used within the Unified Modeling Language, or UML. In my previous article on the UML's class diagram, (The Rational Edge, September 2004), I described how the class diagram's notation set is the basis for all UML 2's structure diagrams. Continuing down the track of UML 2 structure diagrams, this article introduces the component diagram. The diagram's purpose The component diagram's main purpose is to show the structural relationships between the components of a system. In UML 1.1, a component represented implementation items, such as files and executables. Unfortunately, this conflicted with the more common use of the term component," which refers to things such as COM components. Over time and across successive releases of UML, the original UML meaning of components was mostly lost. UML 2 officially changes the essential meaning of the component concept; in UML 2, components are considered autonomous, encapsulated units within a system or subsystem that provide one or more interfaces. Although the UML 2 specification does not strictly state it, components are larger design units that represent things that will typically be implemented using replaceable" modules.
    [Show full text]
  • Examples of UML Diagrams
    UML Diagrams Examples Examples by Technology or Application Domain Online shopping UML diagrams Ticket vending machine UML diagrams Bank ATM UML diagrams Hospital management UML diagrams Digital imaging and communications in medicine (DICOM) UML diagrams Java technology UML diagrams Application development for Android UML diagrams Software licensing and protection using SafeNet Sentinel HASP security solution Examples by Types of Diagrams Activity diagram examples Class diagram examples Communication diagram examples Component diagram examples Composite structure diagram examples Deployment diagram examples Information flow diagram example Interaction overview diagram examples Object diagram example Package diagram examples Profile diagram examples http://www.uml-diagrams.org/index-examples.html 1/15/17, 1034 AM Page 1 of 33 Sequence diagram examples State machine diagram examples Timing diagram examples Use case diagram examples Use Case Diagrams Business Use Case Diagrams Airport check-in and security screening business model Restaurant business model System Use Case Diagrams Ticket vending machine http://www.uml-diagrams.org/index-examples.html 1/15/17, 1034 AM Page 2 of 33 Bank ATM UML use case diagrams examples Point of Sales (POS) terminal e-Library online public access catalog (OPAC) http://www.uml-diagrams.org/index-examples.html 1/15/17, 1034 AM Page 3 of 33 Online shopping use case diagrams Credit card processing system Website administration http://www.uml-diagrams.org/index-examples.html 1/15/17, 1034 AM Page 4 of 33 Hospital
    [Show full text]
  • UML Why Develop a UML Model?
    App Development & Modelling BSc in Applied Computing Produced Eamonn de Leastar ([email protected]) by Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie Introduction to UML Why develop a UML model? • Provide structure for problem solving • Experiment to explore multiple solutions • Furnish abstractions to manage complexity • Decrease development costs • Manage the risk of mistakes #3 The Challenge #4 The Vision #5 Why do we model graphically? " Graphics reveal data.! " Edward Tufte$ The Visual Display of Quantitative Information, 1983$ " 1 bitmap = 1 megaword.! " Anonymous visual modeler #6 Building Blocks of UML " The basic building blocks of UML are:! " model elements (classes, interfaces, components, use cases, etc.)! " relationships (associations, generalization, dependencies, etc.)! " diagrams (class diagrams, use case diagrams, interaction diagrams, etc.)! " Simple building blocks are used to create large, complex structures! " eg elements, bonds and molecules in chemistry! " eg components, connectors and circuit boards in hardware #7 Example : Classifier View #8 Example: Instance View #9 UML Modeling Process " Use Case! " Structural! " Behavioural! " Architectural #10 Use Case Visual Paradigm Help #11 Structural Modeling Visual Paradigm Help #12 Behavioural Modeling Visual Paradigm Help #13 Architectural Modeling Visual Paradigm Help #14 Structural Modeling " Core concepts! " Diagram Types #15 Structural Modeling Core Elements " a view of an system that emphasizes
    [Show full text]
  • TAGDUR: a Tool for Producing UML Sequence, Deployment, and Component Diagrams Through Reengineering of Legacy Systems
    TAGDUR: A Tool for Producing UML Sequence, Deployment, and Component Diagrams Through Reengineering of Legacy Systems Richard Millham, Jianjun Pu, Hongji Yang De Montfort University, England [email protected] & [email protected] Abstract: A further introduction of TAGDUR, a documents this transformed system through a reengineering tool that first transforms a series of UML diagrams. This paper focuses on procedural legacy system into an object-oriented, TAGDUR’s generation of sequence, deployment, event-driven system and then models and and component diagrams. Keywords: UML (Unified Modeling Language), Reengineering, WSL This paper is a second installment in a series [4] accommodate a multi-tiered, Web-based that introduces TAGDUR (Transformation and platform. In order to accommodate this Automatic Generation of Documentation in remodeled platform, the original sequential- UML through Reengineering). TAGDUR is a driven, procedurally structured legacy system reengineering tool that transforms a legacy must be transformed to an object-oriented, event- system’s outmoded architecture to a more driven system. Object orientation, because it modern one and then represents this transformed encapsulates variables and procedures into system through a series of UML (Unified modules, is well suited to this new Web Modeling Language) diagrams in order to architecture where pieces of software must be overcome a legacy system’s frequent lack of encapsulated into component modules with documentation. The architectural transformation clearly defined interfaces. A transfer to a Web- is from the legacy system’s original based architecture requires a real-time, event- procedurally-structured to an object-oriented, driven response rather than the legacy system’s event-driven architecture.
    [Show full text]
  • UML Meets CORBA Page 1 Design of a Fault-Tolerant Distributed System Version 1.0
    UML meets CORBA Page 1 Design of a fault-tolerant distributed system Version 1.0 UML Meets CORBA Design of a fault-tolerant distributed system By: Craig Borysowich Chief Technology Architect Imagination Edge Inc. www.imedge.net Page 1 of 43 UML meets CORBA Page 2 Design of a fault-tolerant distributed system Version 1.0 Executive Summary This paper presents the development of a distributed fault-tolerant system, in a CORBA environment, using the Unified Modeling Language (UML). The paper is useful as (1) an example of actual modeling using the UML and (2) a non-trivial example of modeling distributed fault-tolerant object distributed systems for a CORBA environment. The example application is part of a commodity trading environment, supporting individual traders in a commodity trading environment, and focuses on two functions: the monitoring and gathering of market information, and the completion of a commodity trade. The application has significant requirements regarding distribution and fault-tolerance. The modeling building and presentation is organized into three layers: a domain analysis model, a design architecture, and a packaging and deployment model. The emphasis of the modeling exercise is on the architectural design layer, and the emphasis of the design is on the representation of services in a CORBA system. We use seven types of UML diagrams in our example: use case diagrams, class diagrams, sequence diagrams, state transition diagrams, collaboration diagrams, component diagrams, and deployment diagrams. Page 2 of 43 UML meets CORBA Page 3 Design of a fault-tolerant distributed system Version 1.0 Table of Contents 1. Introduction .................................................................................................................................................5 1.1.
    [Show full text]
  • UML Basics: the Component Diagram
    IBM Copyright http://www.ibm.com/developerworks/rational/library/dec04/bell/index.html Country/region [select] Terms of use All of dW Home Products Services & solutions Support & downloads My account developerWorks > Rational > UML basics: The component diagram Level: Introductory Contents: The diagram's purpose Donald Bell The notation IBM Global Services, IBM The basics 15 Dec 2004 Beyond the basics from The Rational Edge: This article introduces the component diagram, a structure diagram Conclusion within the new Unified Modeling Language 2.0 specification. Notes About the author This is the next installment in a series of articles about the essential diagrams used within the Unified Modeling Language, Rate this article or UML. In my previous article on the UML’s class diagram, Subscriptions: (The Rational Edge, September 2004), I described how the dW newsletters class diagram’s notation set is the basis for all UML 2’s structure diagrams. Continuing down the track of UML 2 structure dW Subscription diagrams, this article introduces the component diagram. (CDs and downloads) The Rational Edge The diagram's purpose The component diagram’s main purpose is to show the structural relationships between the components of a system. In UML 1.1, a component represented implementation items, such as files and executables. Unfortunately, this conflicted with the more common use of the term “component," which refers to things such as COM components. Over time and across successive releases of UML, the original UML meaning of components was mostly lost. UML 2 officially changes the essential meaning of the component concept; in UML 2, components are considered autonomous, encapsulated units within a system or subsystem that provide one or more interfaces.
    [Show full text]