Friday, March 1, 2019
Approach to Software Architecture Description Using UML
The 3+1 Approach to package Architecture Description Using ML Revision 2. 2 Henries BArab Christensen, Anion Sorry, and Klaus Marcus Hansen Department of Computer Science, University of Argus Beograd 34, 8200 rush N, Denmark May 2011 plagiarize This document presents a practical way of describing softw be architectures victimisation the coordinated Modeling Language. The approach is based on a 3+1 structure in which three sales booths on the recognized frame ar utilize module, comp superstarnt & continuative, and all(prenominal)ocation ar used to signalise a solution for a redress of architectural requirements.Introduction Software architecture manufactures an get hold of level of abstraction for many schema development activities Bass et al. , 2003. Consequently and correspondingly, tolerate software package corpse architectural explanations whitethorn support, e. G. , stakeholder communication, iterative and incremental architectural approach pattern, or evaluation of architectures Bass et al. , 2003, Clement et al. , Bibb, Clement et al. , AAA.This document represents a practical basis for architectural interpretation and in doing so, we follow the IEEE recomm cobblers lasted practice for architectural interpretation of software-intensive carcasss Software Engineering Standards Committee, 2000. primeval to this recommended practice is the concept of a datepoint through which the software architecture of a transcription is described (see Figure 1). A concrete architectural description consists of a set of views corresponding to a chosen set of standpoints. This document recommends the use of three viewpoints (in accordance with the recommendations of Clement et al. AAA) A Module viewpoint concerned with how operativeity of the remains maps to static development units, a Component & continuative viewpoint concerned with the runtime mapping of nationality to components of the architecture, and an Allocation viewpoint conc erned with how software entities are mapped to environmental entities In addition to the views on the architecture, we recommend stash away architecturally signifi trampt requirements (see Section 2) in the architecture living.This corresponds to the mission of a system as described in Software Engineering Standards Committee, 2000. The views corresponding to these viewpoints are described using the Unified Modeling Language standard (ML OMG, 2003). This reports proffers mannequins of doing so. The ML has trusted shortcomings in describing software architectures effectively , but is used present to strike a balance among precision/expressiveness and understandability of architectural descriptions. Figure 1 Ontology of architectural descriptions 1. Structure The rest of this document is structure in two main sub functions One introducing the Architectural Requirements section of the sustenance (Section 2, scallywag 3), and one introducing the Architectural Description sec tion of the documentation (Section 2, page 3). These sections are introduced in general and a peculiar(prenominal) example of consecrateing them to the documentation of a system is provided. The examples are created to describe a point-of-sale system ( neighboring POS) for, e. G. , a supermarket point-of-sales. The example is inspired by the case study of Alarms Alarms, 2002.The system supports the recording of sales and handling of payments for a generic store it includes ironware components as a bar code image s squirtner, a display, a register, a terminal in the inventory hall, and so forth More percentage points of the usefulity of the system can be fix in Section 2. 1 This is in cross connected to the central Component & joining viewpoint Clement et al. , AAA 2 Architectural Requirements Two fibres of descriptions of architecturally significant requirements are appropriate scenario-based and fictitious character attribute-based requirements.The architecturally signi ficant scenarios (or use cases) birth a subset of the general scenarios providing the functional requirements for the system. These can possibly be augmented with requirements on performance, availability, reliability etc. Related to the scenarios. Moreover, non-functional scenarios, e. G. , describing modifiability of the system may be useful as a supplements . All requirements cannot be described as scenarios of system functionality, and we propose supplementing the scenarios with a set of the most faultfinding quality attributes that the system should fulfill.Since quality attributes (such as modifiability and performance) are often in conflict, this needs to be a subset of all architectural quality attributes. The goal of describing architectural requirements is to enable the construction of a set of test cases against which chit architectural designs may be compared and/or evaluated. 2. 1 Example In the Next POS case, a scenario is a specific path through a use case. An ex ample of such a scenario is Process Sale A customer arrives at a assay with items to purchase. The cashier uses the POS system to record to each one purchased item.The system presents a footrace total and line-item expound. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a recognise from the system and then leaves with the items. Critical architectural attributes for the Next POS system area Availability. The system shall be highly available since the costiveness of sales depends on its availability Portability. The system shall be portable too range of curb platforms to support a product line of POS systems Usability.The system shall be working(a) by clerks with a minimum of training and with a high distributor point of e science 3 Architectural Description It is beneficial, when documenting software architecture, to apply deterrent viewpoints to the system. Otherwise the description of the system will be incomprehensible. 2 Architecturally significant scenarios are the basis of many architectural evaluation approaches Clement et al. , Bibb 3 Note that this choice of quality attributes excludes, e. G. Performance, scalability, security, safety, reliability, intolerability, and testability.Taken this into account, it is first important with a viewpoint which describes the functionality of the system in terms of how functionality is mapped into follow outation. Secondly, it is important to describe how the functionality of the system maps to components and interaction among components. And thirdly, it is important to see how software components map onto the environment, in circumstance hardware structures. These three viewpoints are the module, component & connector, and allocation viewpoints respectively in concordance with Clement et l. AAA. The viewpoints used in the architectural description section are define as proposed in Software Engineering Standards Commi ttee, 2000 for each, we first realise a section describing the concerns of this viewpoint, then a section describing the stakeholders, then a section describing the elements and relations that can be used to describe views in this viewpoint, and at long last an example of a view. 3. 1 3. 1. 1 Module viewpoint Concerns This architectural viewpoint is concerned with how the functionality is mapped to the units of implementation.It visualizes the static view of the systems architecture by wowing the elements that act the system and their relationships. 3. 1. 2 Stakeholder Roles This viewpoint is important to architects and developers working on or with the system. 3. 1 . 3 Elements and Relations The elements are units of implementation including Class A course of instruction describing the properties of the objects that exist at runtime. Package A logical division of classes in the system. This can refer to packages as we find them in coffee berry or Just give a logical division among the classes of the system.Interface A classification of the porthole of the element that realizes it. It can refer to the interfaces found in e. G. Java or Just a description of an interface that a class can conform to. The relations describe constraints on the runtime relationships betwixt elements Association Shows that at that place is a hard or wispy aggregation relationship between the elements and can be used between classes. Generalization Shows that there is a generalization relation between the elements and can be used between two classes or two interfaces. realization Shows that one element realizes the other and can be used from a class to the interface it implements. Dependency Shows that there is a dependency between the elements and can be used between all the elements. 3. 1 . 4 Examples The module view of the POS system can be described using the class plots of JIMS, which can contain all the above mentioned elements and relations. It is possible to descr ibe the system top-down by starting with the most top-level diagram. In fingerbreadth 2 the overall packages of the system are tryn.Figure 3 and visualise 4 show further decomposition of the Domain Model package and the Payments package in the Domain Model package. Figure 2 Package overview diagram for the POS system Dependencies among packages are also shown these dependencies a nobble because of relationship among classes in deterrent packages. As an example, consider the association between figure 4 there is an association from classes in Payments to the Customer class of the gross sales package. This relationship gives rise to a dependency from the Payments to Sales package as shown in figure 3.Figure 3 Decomposition of the Domain Model package of the POS system Typically, class diagrams such as figure 4 will suppress detail and also omit elements for clarity, since a major purpose of architectural description is come annunciation. In figure 4, e. G. , details of methods and attributes of classes have been suppressed and certain classes have been omitted. Figure 4 Decomposition of the Payments package of the POS system 3. 2 3. 2. 1 Component and Connectors (C&C) Viewpoint This viewpoint is concerned with the run-time functionality of the system?I. . What does the system do? This functionality lies as the heart of purpose of the system under development, and then this viewpoint is of course a rattling central viewpoint, and architectural design often starts from tit . In this viewpoint, software systems are received as consisting of components which are blackball units of functionality and connectors which are first-class re intros of communication paths between components. Components body functional behavior while control and communication aspects are defined by the connectors.Paraphrasing this, you can say that components define what parts of the system is liable for doing while connectors define how components exchange control and data. It is im portant to describe properties of two components and connectors in the documentation. This is done using a combination of textual descriptions (listing susceptibilities for example) with diagrams exhibit communications protocols, state transitions, threading and concurrency issues as seems relevant to the architecture at hand. 4 Hoverflies et al. Hoverflies et al. , 1999 defines a process where this viewpoint is the first to be considered and other viewpoints are derived and clarify from it. 6 Figure 5 C&C overview of the POS system 3. 2. 2 This viewpoint is important to architects, developers, and may also serve to give an moving picture of the overall system runtime behavior to customers and end users. 3. 2. 3 The C&C viewpoint has one element type and one relation type Component A national unit that has a well-defined behavioral responsibility.Connector A communication relation between components that defines how control and data is exchanged. twain are first class citizens of this viewpoint and both may contain behavior. This is obvious for components, but connectors may exhibit behavior as well. Examples of connectors with behavior are those that provide buffering of data between a data producer and consumer, data convention, adoption of protocols, remote procedure calls, networking, etc. A connector defines one or more protocols. A protocol defines both inward and outgoing operations and mandates the ordering of them.Thus a connectors protocol is radically deterrent from a class interface that only tells what operations its instances provide (not uses) and does not describe any sequencing of method calls. 3. 2. 4 The POS system has four major functional parts as shown in the C&C view in figure 5. Components are represented by ML active objects, connectors by links with association accounts and possibly role names. Active objects are typically processes or threads in the operating system or programming language, and links the communication paths between them.The diagram cannot stand alone, as component names and connector names are only asserting(a) of the functional responsibilities associated with each. We 7 therefore provide an description of component functionality in terms of responsibilities Barded Scanner. Responsible for 1) Control and communication with bar code scanner hardware and 2) notification providing ID of scanned bar code for items passing the scanner. Sales. Responsible for 1) retentivity track of items scanned their price and quantity running total of scanned items and 2) initiation and end of sales handling. Presentation. Responsible for 1) displaying item names, quantity, subtotals and grand total on a terminal 2) printing item, quantity, subtotals and grand total on paper receipt 3) handle key board input for defining quantities when only one of a set of items are scanned. Inventory. Responsible for 1) keeping track of items in store 2) mapping between bar code IDs and item name and unit price. Lik ewise, the connectors protocols needs to be described in more detail. The level of detail needed depends on the architecture at hand.For some connectors, it may be us cent with a short textual description (for instance if it is a straightforward application of the observer pattern or if it is a direct memory read) others may best be explained by ML interaction diagrams and still others may have a very large set of potential interactions ( standardized a SQL connector) of which only a a few(prenominal) may be worthwhile to describe in more detail. The POS example names three connectors MFC. A standard MFC patterns is the protocol for this connector that connects the Sales component share the role of model and Presentation serving as controller and view. JDBC. This connector handles standard SQL queries over the JDBC protocol. BPCS. This connector defines a protocol for connecting with a barded scanner. Data and control is exchanged using ASCII strings in a coded format containing control words and data elements. Sequence diagrams can be used to describe connector protocols. Depending on the system, it may be relevant to document connector protocols individually (a sequence diagram for each protocol) and/or to provide the big picture showing interaction over a set of connectors.Typical use cases as well as critical failure scenarios may be considered for description. In our point of sales example, an overall sequence diagram (diagram 6 seems most elevate, as the individual connectors have rather simple protocols. The scenario shown in the diagram is the event of a wizard item being scanned and registered. Further detail can be provided, like a sequence diagram showing observer registration and fast(a) state operation for the MFC connector perhaps table layout or SQL statements for the JDBC or command language for the BPCS connector.However, most likely this information does not provide architectural insight (they do not eject architectural qualities) and th eir details should be found in more detailed documentation instead. 8 Figure 6 POS item scanned scenario 3. 3 3. 3. 1 Allocation Viewpoint This architectural viewpoint is concerned with how the software elements of the system in particular the C&C viewpoint elements and relations are mapped to platform elements in the environment of the system.We are interested in what the software elements require (e. G. , impact power, memory availability, network bandwidth) and what the hardware elements provide. 3. 3. 2 This viewpoint is important to a number of stakeholders Maintainers needing to deploy and maintain the system, to users/customers who need to know how nationality is mapped to hardware, to developers who need to implement the system, and to architects. 3. 3. 3 The deployment viewpoint has two primary element types Software elements These may be, e. . , executables or link libraries containing components from the C&C views. environmental elements Nodes of computing hardware Fur thermore, there are three main relation types Allocated-to relations Shows to which environmental elements software elements are allocated at runtime. These relations may be both static or dynamic (e. G. , if components move between environmental elements). Dependencies among software elements Protocol links among environmental elements showing a communication protocol used between nodes. 3. 3. 4 Figure 7 shows the deployment of the Next POS system using a ML deployment diagram. The deployment is a typical 3-tier deployment in which presentation is run on a thickening, domain code is run on a JEEZ application server, and data is stored on a database server. Figure 7 Deployment view of the Next POS system The following elements are of interest Environmental elements (shown as ML nodes) The Barded Scanner is the device used for inputting sold items into the system.It s read via an ROARS connection to the POS Terminals The Terminal is the main point of interaction for the users of the Next POS system The natural covering Server is a machine dedicated for serving all Terminals on an application level A Database Server provides second-string storage Software elements (Shown as ML components) The POS executable component runs the client part of the Next POS system including presentation and handling of external devices (biz. The Barded Scanner). It communicates with the Application Server via RMI over IIOP Jobs is an open source application server which is used for running the domain- elated functionality of the system. It uses the Database Server via JDBC 10 Myself is an open source SQL database which handles defenestrated functionality (storage, transactions, concurrency control) of the system. 3. 4 Overview The three viewpoints and their associated elements and relations are summarized below.Module c Deployment Elements Class Component workable Interface Computing node Package Relations Association Connector Allocated-to Generalization Dependency Reali zation Protocol link +1 view Architectural requirements The mapping to ML is straight forward for the module and deployment viewpoint UT less so for the C viewpoint. For the C viewpoint, components are show by ML Active Objects (that represent run-time entities with their own thread of execution, typically threads and processes), while connectors are shown by ML links (that represent control- and data flow using some protocol).2
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment