: A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS

Size: px
Start display at page:

Download ": A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS"

Transcription

1 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN ABSTRACT. Architecting, designing, configuring and deploying a sophisticated distributed system is a challenging process that involves many complicated design and specification tasks. A unifying architectural specification framework can be a valuable tool for organizing the designs of distributed systems and their constituent components, and for documenting configuration and deployment constraints and requirements. We present an integrated multi-level specification framework, called, that supports the definition of architectural properties of distributed object and component systems. Each of the five levels of the framework addresses distributed component system definition at a distinct level of abstraction that incorporates both the software and hardware components of distributed systems. The specification at each level is done in terms of a definition language that admits both textual and graphical representation. We define formally using the Z specification language. The five levels deal with the specifications of component interfaces, implementation, integration, instantiation and installation. To illustrate the semantics at each level of specification we use the UML implementation diagrams. Keywords: Distributed software engineering, formal specification language, software architecture, configuration management. 1. INTRODUCTION Extant network technology allows for creation of large distributed computing environments that incorporate numerous types of user interface devices, general purpose computers, specialized servers, network equipment and other electronic devices. Such inherently heterogeneous distributed computing environments, even when their size is modest, present numerous challenges to THE WORK IN THIS PAPER HAS BEEN PARTIALLY SUPPORTED BY RE- SEARCH GRANT F FROM AFOSR. 1

2 2 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN those who need to architect, design, develop and deploy distributed applications. One of the challenges faced by architects and designers is that, despite the emergence of object-oriented design tools and interface specification languages, there are no comprehensive methodologies and tools that deal specifically, and in depth, with distributed object-oriented application designs. In designing a sophisticated distributed application, the best practice today involves a patchwork of specifications including graphical object-oriented modeling tools, manual documentation of object interaction, automated class dependency analysis, ad hoc specification of type vs. class subtleties, formal specification of interfaces, descriptions of distributed algorithms and protocols at varying degrees of formality, and specifications of distributed system configuration and deployment. Without a comprehensive design framework, it is very difficult to ensure that all necessary types of specifications are produced within the design effort. It is usually the case that when a distributed system is first deployed, numerous forgotten or underspecified aspects of the system begin to surface. Even when one is able to amass all necessary specifications, it is extremely difficult to deal with the dissimilar kinds of specifications and specification formats and media. During the development of a system, it becomes difficult to maintain traceability between the specifications and the resulting implementation. This problem is further aggravated when an existing distributed system needs to be refined, extended or redeployed. Our broad goal is to provide a comprehensive specification framework for capturing and organizing complete architectural designs of object-oriented and component-oriented distributed applications. Assuming an object-oriented approach to distributed system architecture is natural because it allows the designers to represent physical and logical resources and components in a distributed environment as objects. Distributed middleware is also taking an increasingly object-oriented approach and is providing better support for distributed application developers. Significant steps in the direction of complete system specification are being made, for example, by UML [6]. UML is a standard object-oriented design specification language that enjoys wide support from many software companies. UML includes graphical formalisms that help developers visualize the structure of the system under construction, and this is a valuable feature for distributed system designers. Our goals for defining a complete specification framework include the goal of taking advantage of existing specification frameworks, such as UML.

3 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS 3 Contributions. We present an integrated multi-level specification framework, called, that supports the definition of architectural properties of distributed object and component systems. includes five specification levels for defining, at different levels of abstraction, the distributed system and its hardware and software components in an integrated and uniform way. The framework can be used to organize the design and documentation processes for new systems, as well as to document fully developed, and existing or deployed distributed systems. This documentation enhances the system implementation traceability and provides a sound basis for system configuration management. Since the framework deals with the architectural specification of a distributed system, we allow for the detailed designs, e.g., specific algorithms and protocols, to be incorporated as necessary within the context of a particular project using the notation and the level of formality chosen by the designers. The five levels of deal with the Interface, Implementation, Integration, Instantiation, and Installation aspects of the distributed system specification: The Interface level deals with different types of components in the system and nodes in the target network, and with type inheritance. The Implementation level deals with the classes that realize the component types and node types. The existence of implementation inheritance is also specified in this level. The Integration level establishes the requirements for software/hardware class integration. The Instantiation level deals with instances of the component and node classes when the instances are statically defined. The Installation level defines or constraints the deployment of instance components over the instance nodes of the network. We explicitly address the distinction between types and classes, and enable class inheritance to modify the type inheritance structures. This is necessary to allow multiple coexisting implementation of the same functionality, and also to deal methodically with heterogeneity in the distributed setting. The specification at each of the five levels of is done in terms of a definition language. We present a formal specification of the five definition lnguages of using the Z specification language [17]. Disitributed system specifications in admit both the traditional textual representations and the graphical representations, for example, in terms of the UML implementation diagrams [6]. The benefits of the dual representation is that the system definition

4 4 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN can be done in precise detail given the flexibility and power of the textual languages, while providing a user-friendly way of visualizing the designs using the graphical languages. The formal specification of allows us to build an automated design tool for specifying distributed systems using its integrated textual/visual representation. The design of ensures that during any step of the specification process we may switch between the textual and graphical modes of representation. We plan to pursue this work in the future. The features of UML that can be used for modeling distributed systems component and deployment diagrams have not been fully used in practice yet [9]. Thus, our integrated framework contributes motivation for further development of these capabilities in UML. Furthermore, any tool that supports existing UML diagrams does not need to reinvent notation for the required features, additionally taking advantage of UML makes such tool appealing to a broad user community. Related Work. Early inspiration for our work can be found in the ideas behind OSF s I4DL family of languages [2, 8]. There have been similar efforts defining dual textual/graphical specifications for distributed systems such as [7, 13] that deal with support tools and their use in documentation and configuration management. Our approach distinguishes between types and classes, and allows for class inheritance to modify the type inheritance structures. We also designed our graphical representation based on UML implementation diagrams thus avoiding inventing another notation. Many other formalisms have been used to describe distributed systems. In [16] and [15], Z is also used to specify software architectures; in [1], Wright is presented to model dynamic aspects of software architecture. In [10], inputoutput automata are used to specify distributed systems as a set of interacting components. In general all these formalisms deal with detailed specification having the goal of the analysis of system properties. The focus of our approach is on the system structure and integration of its diverse aspects, such as the software, the hardware and their relationships and dependencies, into a comprehensive specification. We see substantial potential in future integration of our architectural specification approach with detailed algortihm and protocol specification approaches, and their associated methodologies. The Paper. In Section 2 we define the background concepts and describe the five levels of. In Section 3 we formally define in an incremental manner using the Z specification language; we also ilustrate the features that

5 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS 5 may be included in the specification using UML s implementation diagrams component and deployment diagrams. Conclusions and future work are in Section DEFINITIONS, CONCEPTS AND OVERVIEW is a specification framework for defining distributed systems in terms of five hierarchical levels. The five levels of are: interface, implementation, integration, instantiation and installation, describing the distributed systems software, hardware and dependencies between software and hardware, in an integrated manner, and at different levels of abstraction and detail Background Concepts. Among the key concepts in this paper are: types, classes, instances, and inheritance. In particular, we define the notion of inheritance in different contexts. We now define these terms and explain their usage. Interface. The interface of a component defines its interaction with its environment. This definition comprises the signature that specifies the interaction at the syntactical level, and of all calls made to operations at other components. Type. A type is an abstract entity defined by its interface and its semantics. Currently, we are only using the interface to formally characterize a type; adding the corresponding semantics will be considered in our future work. TYPES T1 I2 C1 I2 CLASSES Type inheritance (a) T2 I2 I4 Realization Implementation inheritance C2.1 I2 I4 (b) C2.2 I2 I4 FIGURE 1. Interfaces, types, classes and inheritance. Type inheritance. A subtype inherits the interface and semantics defined for its supertype and it may specialize the supertype. We allow multiple type inheritance whenever it generates no conflict (see Figure 1, (a)). Class. A class is the implementation of a type. Multiple implementations may be possible for a particular type. This is due to different programming languages, different algorithms and different target platforms. Any class must implement the respective type interface and type semantics. Classes are represented with filled boxes in Figure 1, (b).

6 6 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN Realization. We define realization to be the relationship between a type and a class that implements it (Figure 1, (a) and (b)). Implementation inheritance. Implementations provided for a class may be inherited by the classes implementing the subtypes. Implementation inheritance must be specified in addition to type inheritance when addressing portability and optimization issues. This is often done adhoc in real practice. We make the distinction between type and class inheritance specifications explicit in (Figure 1, (b)). Instance. An instance is an element of a class. The instantiation can be static (done at system initialization) or dynamic (occuring at runtime). We consider instances software components, instance computer nodes and instance connectors. We assume that all inheritance-induced references are resolved prior to the instantiation The Five Levels of Specification. Our multi-level specification framework takes a divide-and-conquer approach in specifying complex distributed systems. This is done by addressing the distributed system architectural specification at five different levels of abstraction. The specification at five levels induces a methodology, in which each of the five levels are specified one after the other by adding detail that is appropriate and necessary for each level of abstraction. This process can be repeated in a spiral fashion. has five levels: Interface, Implementation, Integration, Instantiation, and Installation, each dealing with a different aspects of the distributed system specification. Interface. Includes the definition of the different types of components in the application and the nodes and connectors in the network, as well as their dependencies and connections. The Interface level includes type inheritance in a similar way as Java interfaces and CORBA IDL [5, 11, 14]. Implementation. Implementation refers to the classes that realize the component types and node types defined in the Interface level. The existence of implementation inheritance for component classes is also specified in this level. Node classes are the different computer classes that form (part of) the target network. We express the realization relationship for the software components and also for the nodes in the network, yielding a specification with pleasing symmetry. Integration. This level establishes the requirements and constraints for mapping instances of component classes to instances of node class. We define the

7 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS 7 relationship supports to represent the constraint that instances of a component class may only run on instance nodes of the indicated classes. Instantiation. The actual instances of the component and node classes are specified as part of the Instantiation level and uniquely identified. In our specification we only address the static configuration; adding dynamic configuration [12], where processes or instances are created and/or destroyed at runtime, is subject to future work (note that dynamic instances can always be modeled at fine levels of granularity when they are entirely contained within a deployable component). Only the instances of the classes identified in the Implementation level may be part of the final system. The specification has three different kinds of elements: types, classes, and instances for describing the software and the hardware. Table 1 shows the different levels of specification and the symmetry between hardware and software specification. Component Node Type Specifies interface and semantics Role played by the node Class Type implementation (multiples Platform and/or operating system possible) that implements the role Instance An executable instance of a class Instance computer TABLE 1. Levels of Specification for Components and Nodes. Installation. This level defines where each instance component is to be deployed over the instance nodes identified in the Instantiation level. Installation requirements such as fixed locations for some components, or the need of running two components in the same or different nodes, are also included. In Figure 2 we summarize the specifications in each level and their relationships. Each horizontal level represents a specification level and the meaning of the arrows is the following: 1. Implementation classes refine types specified in the Interface level. 2. Classes defined in Implementation are integrated. 3. Classes defined in Implementation are instantiated. 4. Each instance component must have at least one instance node where the component may run. 5. The relations together and separated can be specified for instance components of the application. 6. The location of some components may be fixed at certain instance nodes in a way that is consistent with Integration level specification.

8 8 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN 7. Installation satisfies all separated, together and fix constraints, and it includes all instance components and nodes. SOFTWARE HARDWARE COMPONENT NODE TYPES TYPES 1 1 COMPONENT IMPLEMENTATION CLASSES 2 2 NODE IMPLEMENTATION CLASSES INTERFACE IMPLEMENTATION 3 IMPLEMENTATION 3 INTEGRATION COMPONENT INSTANTIATION 4 4 APPLICATION INSTANTIATION 5 6 NODE INSTANTIATION 4 INTEGRATION INSTANTIATION INSTALLATION REQUIREMENTS (together, separated) 7 INSTALLATION REQUIREMENTS (fixed components) INSTALLATION 7 7 FINAL INSTALLATION FIGURE 2. Definition Languages in. 3. FORMAL DEFINITION OF We formalize using the Z specification language [17]. A distributed system may have many structural features and complex constraints. We present the five level definitions in order, with each specification level introducing details incrementally. A level may define new elements and additional integrity constraints with respect to the previous levels. In this way we get a specification that is manageable at each level, and that captures all the decisions made in the process from designing to deploying a distributed system Interface. The Interface level of specification is the highest level and the only independent one. Here we specify the types of software components and their dependencies, as well as the hardware node and connector types. Software component types specify their unique type from among the set of all assumed component types COMP TYPE. Component types are also formed by their interfaces and calls, the union of those locally defined and those inherited from the supertypes [A,B]. For a given type, the interfaces are the services available for other components to call, and the calls are those interfaces in

9 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS 9 other Comp Types that it calls. More than one Comp Type may implement the same interface, so calls are identified with a pair (Comp Type, Interface) to avoid ambiguity. We state as a constraint that every call to an interface in another component type is such that the interface is a part of the interfaces of that component type [C]. COMP TYPE Comp Type type COMP TYPE supertypes Comp Type local int Interface interfaces Interface local calls Comp Type Interface calls Comp Type Interface interfaces supertypes interfaces local int [A] calls supertypes calls local calls [B] ct i calls i ct interfaces [C] CT1 I1 interface CT3 I3 <<generalization>> CT2 I2 CT4 I3 I4 interfaces FIGURE 3. Component types in a distributed system. Standard UML component diagrams provide all the elements necessary to model the software Interface level, as shown in Figure 3: interfaces are shown with the lollypop symbol, and calls are stereotyped dependencies between component types and interfaces, type inheritance is represented with the generalization arrow. The Interface level of the software specification is a set of uniquely identified component types [D] such that all calls [E] and type inheritance [F] are satisfied within the system; we call it I S.

10 10 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN I S comp types Comp Type c c comp types c type c type c c [D] ct i comp types calls ct comp types [E] ct comp types ct supertypes comp types [F] For the hardware Interface specification, we include the types of nodes and connectors that form part of the system. NODE TYPE Node Type type NODE TYPE CONN TYPE Conn Type type CONN TYPE Node types classify nodes according to their assumed features and the roles they play in the system (e.g., a database server, ATM machine) and connector types identify the type of communication service they provide at an appropriate level of abstraction (e.g., point-to-point serial line, transport-level connection). connt1 NT1 connt2 NT2 connt3 connt4 NT3 FIGURE 4. Node types in a distributed system. UML s deployment diagrams show the physical architecture of the hardware and software in the system; they have a type and an instance version [4, 6]. Deployment diagrams, including only the node types are used for specifying the hardware interface, as shown in Figure 4. Node types may be connected using different connector types. The lines representing connectors in the figure represent connector types that may connect the specified node types;

11 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS 11 if there are multiple connector types, then each connector type must be represented between the same pair of node types. Connector types between a node type and itself correspond to connections between nodes of the same type. The Interface level of the hardware I H can be specified as a set of node types, a set of connector types, and a relation connects that relates connector types and node types. I H node types Node Type conn types Conn Type connects Conn Type Node Type dom connects conn types [G] ran connects node types [H] nt node types ct nt set connects nt nt set [I] Only node types and connector types identified as part of the system can participate in the connects relation [G,H], and all node types must be connected with at least one type of connector [I]. Then, the whole Interface level is the conjunction of the specifications of the software and the hardware; we call it I. Schema conjunction is a standard Z operation and is such that the resulting schema includes the union of all the state variables in each schema and the conjunction of all their constraints. I I S I H 3.2. Implementation. In the Implementation level we specify the realizations, that is, the different classes implementing both, the hardware node types and the software component types. There may be different classes implementing the same type, but classes can only realize types defined in the Interface level. C CLASS Comp Class Comp Type class C CLASS superclasses Comp Class cl call Comp Class Interface cc superclasses cc Comp Type supertypes [A] cc i cl call ct i calls cc Comp Type ct [B]

12 12 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN All interfaces identified for the component type are preserved in the implementation classes just by including the Comp Type. All implementation inheritance relations identified in superclasses are refinements of type inheritance relations in supertypes [A]. A call of the component type is refined to calls to interfaces on one, some or all the classes implementing the type realizing the target interface, but all calls in cl call realize calls in calls [B]. CT1 I1 <<realizes>> IC1 I1 <<realizes>> IC3 I3 CT3 I3 implementation inheritance type inheritance CT4 I3 I4 <<realizes>> IC4.1 I3 I4 IC4.2 I3 I4 <<realizes>> FIGURE 5. Component implementation: realization. Figure 5 shows how some of the component types in Figure 3 are realized into implementation classes. In the UML, a refinement relationship is indicated by a dependency arrow from the more specific element to the more general element. The dependency is stereotyped with the keyword realizes. We can express I S as follows: I S I S c classes Comp Class c classes type comp types [C] cc c classes cc superclasses c classes [D] cc i c classes cl call cc c classes [E] The classes included in I S can only be the realizations of the types specified as part of I S [C]. All superclasses must also be part of the system [D]. All calls must be to interfaces implemented by classes in the system [E]. We also specify the Implementation level for nodes and connectors. N CLASS

13 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS 13 Node Class Node Type class N CLASS C CLASS Conn Class Conn Type class C CLASS The specification of the Implementation level for the hardware includes the refinement of the nodes, connectors and connections: I H I H node classes Node Class conn classes Conn Class connects cl Conn Class Node Class node classes Node Type node types [F] conn classes Conn Type conn types [G] cc nc set connects cl ct nt set connects cc Conn Type ct nc set Node Type nt set [H] All node classes and connector classes must be refinements of some node type and connector type included in I H [F,G]. All connections between node classes, those identified in connects cl, are refinements of the connections identified in connects [H]. We use a UML deployment diagram in its type version in Figure 6 to show the refinement of the node types into node classes. Connector and node classes refine connector and node types in a non trivial way, they document a specific design decision and this information cannot be automatically derived from the Interface level specification. We can then put things together and specify the complete Implementation level I as the conjunction of I S and I H. I I S I H 3.3. Integration. For the Integration we put together the complete Implementation and state that some component classes can only run on certain classes of nodes.

14 14 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN connt1 connt4 NT1 connt2 NT2 connt3 <<realizes>> NT3 NC3.1 <<realizes>> <<realizes>> <<realizes>> <<realizes>> <<realizes>> connc3.1 <<realizes>> connc1 connc3.2 NC3.2 NC1 connc2 NC2 <<realizes>> connc4 NC3.3 FIGURE 6. Node implementation: refinement. I I supports Comp Class Node Class dom supports c classes [A] ran supports node classes [B] The supports relation is expressed in UML with the stereotype supports be- IC1 IC3 IC4.1 <<suports>> <<suports>> <<suports>> <<suports>> <<suports>> NC3.3 NC1 NC2 FIGURE 7. Integration constraints: supports. tween the component and the node classes as shown in Figure 7. Even though supports is not a standard stereotype, it has already been used in [6] with precisely the same meaning. The supports relation between component classes and node classes shows the need of a component class to be deployed to a certain class of node to run. It is a relation and not a function because a component may be able to run on

15 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS 15 more than one class of node. Only component and node classes identified as part of the Implementation level may participate in the supports relation [A,B] Instantiation. Instance components and nodes that form part of the system must belong to the classes identified in the Implementation level. However, defining component instances that need to run on node classes not instantiated in the specified system serves no purpose; in this sense, the complete Instantiation also depends on the Integration level. Inst Comp Comp Class inst id String inst call Inst Comp ic i inst call Interface cc i cl call ic Comp Class cc [A] Instances of each component class implement all interfaces defined in the Implementation level, thus every interface of the class becomes an interface of each instance. Every call may become zero, one or many calls to instances of the same class [A] in the Instantiation. Then, I S is a set of component instances of the classes defined in the Implementation level [B] such that all calls are satisfied within the system [C]. I S I S i comp Inst Comp i comp Comp Class c classes [B] ran i comp inst call i comp interfaces [C] Figure 8 shows the instance components that form the actual system. In UML notation, instances are identified with a lower case name separated by a colon from the type name, and everything underlined. In in our case we do not instantiate types but classes. Node and connector instances are also instances of the node and connector classes. We can have a connector class connecting nodes of only one class, but it only make sense to connect more than one instance [D]. Inst Node Node Class inst id String

16 16 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN IC1 I1 IC4.1 I3 I4 <<instantiates>> <<instantiates>> <<instantiates>> inst1:ic1 I1 inst1:ic4.1 I3 I4 <<instantiates>> inst2:ic1 I1 inst3:ic1 I1 FIGURE 8. Instance components of the actual application. Inst Conn Conn Class inst id String inst nodes Inst Node inst nodes [D] The actual network is formed by the instance nodes and the instance connectors; we call it I H. All node and connector instances must be of the classes identified in the Implementation level [E,F], and connector instances must connect instance nodes that belong to the same system [G]. All instance identifiers are unique [H,I]. Instance connectors implement the connection relationships identified in the Implementation level as part of the connects cl relation [J]. I H I H nodes conns Inst Node Inst Conn nodes class node classes [E] conns class conn classes [F] conns inst nodes nodes [G] in in nodes in inst id in inst id in in [H] ic ic conns ic inst id ic inst id ic ic [I] ci conns cc nc set connects cl ci Conn Class cc ci inst nodes Node Class nc set [J]

17 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS 17 NC3.1 NC3.2 node1:nc2 inst_conn1 node1:nc3.3 inst_conn2 NC1 NC2 <<instantiates>> inst_conn3 node2:nc2 inst_conn4 node2:nc3.3 NC3.3 <<instantiates>> FIGURE 9. Instance nodes and connectors of the actual network. Figure 9 shows the actual network; it only includes instances of two classes. Connections specified at the Implementation level are also preserved. Even though Instantiation of software and hardware independently does not depend on the Integration level, the complete I4 does. I I I S I H ic i comp in nodes ic class in class supports [K] All instance components must be able to run on at least one instance node of the network [K] Installation. The Installation level indicates the deployment of the instance components over the instance nodes in the actual system. This is a comprehensive description of the running distributed system; most of the times it can result in a very large diagram or a very long specification, thus the previous four levels guide the process of getting this final description, as well as giving the rationale behind many design decisions. We divide the Installation specification into installation requirements and the complete installation. Among the installation requirements we have: fixing the location of certain instance components, or the need to deploy some components either to the same instance node or to different nodes. All instance components must be installed once [A] and only over instance nodes identified in the Instantiation level [B]. The instance nodes must support

18 18 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN the class of instance components they are assigned [C]. Those instance components that have a fix location, must be deployed to the precise node [D]. Every pair of instance components that belong to a set in together or separated, must be deployed to the same [E] or different [F] instance node, respectively. I I together Inst Comp separated Inst Comp fix Inst Comp Inst Node deployment Inst Comp Inst Node dom deployment i comp [A] ran deployment nodes [B] c n deployment c class n class supports [C] fix deployment [D] i set together ic ic i set deployment ic deployment ic [E] i set separated deployment ic [F] ic ic i set deployment ic inst2:ic1 I1 inst_conn1 inst1:ic4.1 I3 I4 inst3:ic1 I1 node1:nc2 node1:nc3.3 inst_conn3 inst_conn2 inst1:ic1 I1 inst_conn4 node2:nc3.3 node2:nc2 FIGURE 10. Complete Deployment. We cannot use UML s deployment diagrams to express the separated relation, but we can express fix and together. Figure 10 shows the complete deployment of the instance components over the instance nodes.

19 : A FRAMEWORK FOR ARCHITECTURAL SPECIFICATION OF DISTRIBUTED SYSTEMS DISCUSSION A complete integrated specification of the software and hardware comprising a distributed system provides traceability and helps in the future configuration management. Our approach presents a framework whose layered structure makes it an efffective and convenient approach to system specification. We have used for specifying a real distributed system [3]. In this paper we used graphical notation to present example definitions. Even though the graphical notation is clearer for visualizing the structure of the distributed application, it gets much more more complex during the design of a large system. In the textual specification, on the other hand, is difficult to visualize design, but as it grows in size, it does not become structurally more complex. Having the possibility of switching between the two types of specification, and having changes made in one reflected in the other adds power to the specification technique since designers can choose the specification form based on what they consider appropriate. We are currently considering a number of extensions to this work. An automated tool for. The formalization of makes it possible to build a tool for specifying, documenting and guiding the design of distributed systems. The correspondence of each level of with constrained UML implementation diagrams, makes it possible to use these diagrams for building the tool that would have the strength of a fully formalized textual definition. Type Semantics. We have defined Types just with their interfaces. A more comprehensive approach would also need to be able to deal with semantics. We are considering using an existing methodology (e.g., [10]) for defining semantics and veryfying that (abstract) implementations correctly implement types. Dynamically Changing Systems. Creating and destroying processes at runtime in distributed systems is a common practice. Adding this capability to implies adding instances of the already specified classes to the nodes and i comp sets defined in the Instantiation level. REFERENCES [1] Robert Allen and David Garlan. A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodoly, 6(3): , July [2] Matthias Autrata and Colin Strutt. DME Framework and Design, chapter 23, pages Network and Distributed Systems Management. Addison Wesley, 1994.

20 20 M. CECILIA BASTARRICA, STEVEN A. DEMURJIAN, ALEX A. SHVARTSMAN [3] M. Cecilia Bastarrica, Scott Craig, Steven A. Demurjian, and Alex A. Shvartsman. Using for Specifying Real World Distributed Systems. Technical Report CSE-TR-99-3, Department of Computer Science and Engineering, University of Connecticut, May [4] Grady Booch, James Rumbaugh, and Ivar Jacobson. Version 1.1 of the Unified Modeling Language (UML), September Rational Software Corporation. Available at [5] Digital Equipment Corporation. ObjectBroker. System Integrator s Guide. Technical report, Maynard, Massachusets, [6] Hans-Erik Eriksson and Magnus Penker. UML Toolkit. Johen Wiley and Sons, Inc., first edition, [7] Halldor Fossa and Morris Sloman. Implementing Interactive Configuration Management for Distributed Systems. In International Conference on Configurable Distributed Systems (IC- CDS 96), Annapolis, May IEEE Press. [8] Open Software Foundation. OSF Distributed Management Environment (DME) architecture. May [9] Martin Fowler. UML Distilled. Applying the Standard Object Modeling Language. Object Technology Series. Addison Wesley, 7 edition, June [10] Stephen J. Garland and Nancy A. Lynch. The ioa language and toolset: Support for designing, analyzing, and building distributed systems. Technical Report Technical Report MIT/LCS/TR-762, MIT Laboratory for Computer Science, Cambridge, MA, August [11] Thomas J. Howbray and Ron Zahavi. The Essential CORBA. Systems Integration Using Distributed Objects. John Wiley and Sons, Inc., [12] Jeff Magee. Configuration of Distributed Systems., chapter 18, pages Network and Distributed Systems Management. Addison Wesley, [13] Keng Ng, Jeff Kramer, and Jeff Magee. A CASE Tool for Software Architecture Design. Journal of Automated Software Engineering (JASE), Special Issue on CASE, [14] OMG. Common Object Request Broker: Architecture and Specification. rev 2.0, February OMG Document Number Available at [15] Michael D. Rice and Stephen B. Seidman. Using z as a substrate for an architectural style description language. Technical Report CS , Department of Computer Science, Colorado State University, September [16] Mary Shaw and David Garlan. Software Architecture. Perspectives on an Emerging Discipline. Prentice Hall, [17] J. M. Spivey. Understanding Z. Cambridge Tracts in Theoretical Computer Science 3. Cambridge University Press, Authors addresses: M. Cecilia Bastarrica, Department of Computer Science and Engineering, University of Connecticut, cecilia@cse.uconn.edu Steven A. Demurjian, Department of Computer Science and Engineering, University of Connecticut, steve@cse.uconn.edu Alex Shvartsman, Dept. of Computer Science and Engineering, University of Connecticut and Laboratory for Computer Science, MIT, alex@theory.lcs.mit.edu.

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

LESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS LP Rev. : 00 Page 1 of 6 UNIT: I FUNDAMENTALS SEMESTER : 5 FUNDAMENTALS 8 An overview of object oriented systems development Object basics Object oriented systems development life cycle. OBJECTIVE: To

More information

Object-Oriented Software Development Goal and Scope

Object-Oriented Software Development Goal and Scope Object-Oriented Software Development Goal and Scope Koichiro Ochimizu Japan Advanced Institute of Science and Technologies School of Information Science Scope and Goal Goal enable you to understand basic

More information

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools UML Modeling I Instructor: Yongjie Zheng September 3, 2015 CS 490MT/5555 Software Methods and Tools Object-Oriented Design: Topics & Skills Rational Unified Process Unified Modeling Languages (UML) Provide

More information

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. OBM 7 -draft 09/02/00 1 Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. Martin L. Griss, Laboratory Scientist, Hewlett-Packard Laboratories, Palo Alto, CA. Effective

More information

1 Introduction. 1.1 Introduction

1 Introduction. 1.1 Introduction 1 Introduction 1.1 Introduction This book introduces and guides you through the use of the Unified Modeling Language (UML) and the Unified Process (both originally devised by Grady Booch, James Rumbaugh

More information

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

JOURNAL OF OBJECT TECHNOLOGY Online at  Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 Vol. 1, No. 2, July-August 2002 Representing Design Patterns and Frameworks in UML Towards

More information

Comparative Analysis of Architectural Views Based on UML

Comparative Analysis of Architectural Views Based on UML 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

More information

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

How and Why to Use the Unified Modeling Language. among software components, architectural-based This article addresses the Unified Modeling Language and its purpose, constructs, and application to defense software development applications. The Unified Modeling Language (UML) is a notation that can

More information

Capturing Design Expertise in Customized Software Architecture Design Environments

Capturing Design Expertise in Customized Software Architecture Design Environments Capturing Design Expertise in Customized Software Architecture Design Environments Robert T. Monroe School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213 Abstract: Software architecture

More information

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

UML Modeling. Sumantra Sarkar. 29 th June CIS 8090 Managing Enterprise Architecture UML Modeling Sumantra Sarkar ssarkar@cis.gsu.edu 29 th June 2010 CIS 8090 Managing Enterprise Architecture All diagrams and definitions used in this presentation have been acknowledged in the reference

More information

Research Review on Basic Principles of Unified Modelling Language

Research Review on Basic Principles of Unified Modelling Language Research Review on Basic Principles of Unified Modelling Language Agha Salman Haider Sr Lecturer, Jazan University, Saudi Arabia Abstract This paper presents review of concepts, ideas and the introduction

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

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

Chapter 12. UML and Patterns. Copyright 2008 Pearson Addison-Wesley. All rights reserved Chapter 12 UML and Patterns Copyright 2008 Pearson Addison-Wesley. All rights reserved Introduction to UML and Patterns UML and patterns are two software design tools that can be used within the context

More information

Software Architectural Modeling of the CORBA Object Transaction Service

Software Architectural Modeling of the CORBA Object Transaction Service Software Architectural Modeling of the CORBA Transaction Service Susanne Busse Fraunhofer ISST Mollstr. 1 D-10178 Berlin, Germany Susanne.Busse@isst.fhg.de Stefan Tai Technische Universität Berlin Sekr.

More information

Approaches of using UML for Embedded System Design

Approaches of using UML for Embedded System Design Approaches of using UML for Embedded System Design Sudeep D. Thepade Lecturer, Dept. of Information Technology, Thadomal Shahani Engg. College, Bandra, Mumbai sudeepthepade@gmail.com Abstract New approaches

More information

Coordination Patterns

Coordination Patterns Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch

More information

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Chapter 8 The Enhanced Entity- Relationship (EER) Model Chapter 8 The Enhanced Entity- Relationship (EER) Model Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 Outline Subclasses, Superclasses, and Inheritance Specialization

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

The UML Extension Mechanisms

The UML Extension Mechanisms Jasmine Farhad Dept of Computer Science University College London 13-Dec-02 The UML Extension Mechanisms Introduction There is an important need for organisations to evolve in today s market. This has

More information

Software Engineering from a

Software Engineering from a Software Engineering from a modeling perspective Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Softwaredevelopment problems Little or no prior planning

More information

Lecture #2 on Object-Oriented Modeling

Lecture #2 on Object-Oriented Modeling Outline Lecture #2 on Object-Oriented Modeling Thierry Géraud EPITA Research and Development Laboratory (LRDE) 2006 Thierry Géraud Lecture #2 on Object-Oriented Modeling EPITA-LRDE 2006 1 / 38 Outline

More information

Introduction to Modeling

Introduction to Modeling Introduction to Modeling Software Architecture Lecture 9 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Objectives Concepts What is modeling? How do we choose

More information

Designing Component-Based Architectures with Rational Rose RealTime

Designing Component-Based Architectures with Rational Rose RealTime Designing Component-Based Architectures with Rational Rose RealTime by Reedy Feggins Senior System Engineer Rational Software Rose RealTime is a comprehensive visual development environment that delivers

More information

Model Driven Development Unified Modeling Language (UML)

Model Driven Development Unified Modeling Language (UML) Model Driven Development Unified Modeling Language (UML) An Overview UML UML is a modeling notation standardized by OMG (proposal 1997, ver.1.1 in 1998, ver. 2.0 in 2004) now in 2.4.1 mature based on notations

More information

Software Architectures

Software Architectures Software Architectures Richard N. Taylor Information and Computer Science University of California, Irvine Irvine, California 92697-3425 taylor@ics.uci.edu http://www.ics.uci.edu/~taylor +1-949-824-6429

More information

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive

More information

Quality-Driven Architecture Design Method

Quality-Driven Architecture Design Method Quality-Driven Architecture Design Method Matinlassi Mari, Niemelä Eila P.O. Box 1100, 90571 Oulu Tel. +358 8 551 2111 Fax +358 8 551 2320 {Mari.Matinlassi, Eila.Niemela}@vtt.fi Abstract: In this paper

More information

administrivia today UML start design patterns Tuesday, September 28, 2010

administrivia today UML start design patterns Tuesday, September 28, 2010 administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified

More information

AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT

AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT Zoran Stojanovic, Ajantha Dahanayake Faculty of Information Technology and Systems, Delft University of Technology,

More information

Engineering Design w/embedded Systems

Engineering Design w/embedded Systems 1 / 40 Engineering Design w/embedded Systems Lecture 33 UML Patrick Lam University of Waterloo April 4, 2013 2 / 40 What is UML? Unified Modelling Language (UML): specify and document architecture of large

More information

Object Oriented Modeling

Object Oriented Modeling Overview UML Unified Modeling Language What is Modeling? What is UML? A brief history of UML Understanding the basics of UML UML diagrams UML Modeling tools 2 Modeling Object Oriented Modeling Describing

More information

Software Architecture and Design I

Software Architecture and Design I Software Architecture and Design I Instructor: Yongjie Zheng February 23, 2017 CS 490MT/5555 Software Methods and Tools Outline What is software architecture? Why do we need software architecture? How

More information

Practical Model-Driven Development with the IBM Software Development Platform

Practical Model-Driven Development with the IBM Software Development Platform IBM Software Group Practical Model-Driven Development with the IBM Software Development Platform Osmond Ng (ong@hk1.ibm.com) Technical Consultant, IBM HK SWG 2005 IBM Corporation Overview The Challenges

More information

Credit where Credit is Due. Goals for this Lecture. Introduction to Design

Credit where Credit is Due. Goals for this Lecture. Introduction to Design Credit where Credit is Due Lecture 17: Intro. to Design (Part 1) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some material presented in this lecture is taken

More information

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Ninat Wanapan and Somnuk Keretho Department of Computer Engineering, Kasetsart

More information

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Course Softwaretechnik Book Chapter 2 Modeling with UML Course "Softwaretechnik" Book Chapter 2 Modeling with UML Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Modeling,

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1. Outline of UML and Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule Feb. 27th 13:00 Scope and Goal 14:30 Basic Concepts on Representing the World (object, class, association,

More information

The Dynamic Model. An Introduction to UML. Enterprise Architect. by Geoffrey Sparks. All material (c) Geoffrey Sparks

The Dynamic Model. An Introduction to UML. Enterprise Architect. by Geoffrey Sparks. All material (c) Geoffrey Sparks An Introduction to UML The Dynamic Model by Geoffrey Sparks All material (c) Geoffrey Sparks 2001 www.sparxsystems.com.au Geoffrey Sparks 2001 Page:1 Table of Contents THE DYNAMIC MODEL... 3 INTRODUCTION

More information

TTool Training. I. Introduction to UML

TTool Training. I. Introduction to UML TTool Training I. Introduction to UML Ludovic Apvrille ludovic.apvrille@telecom-paris.fr Eurecom, Office 223 Ludovic Apvrille TTool Training - 2004. Slide #1 Outline of the Training Introduction to UML

More information

The Unified Modeling Language User Guide

The Unified Modeling Language User Guide The Unified Modeling Language User Guide Grady Booch James Rumbaugh Ivar Jacobson Rational Software Corporation TT ADDISON-WESLEY Boston San Francisco New York Toronto Montreal London Munich Paris Madrid

More information

Chapter 8: Enhanced ER Model

Chapter 8: Enhanced ER Model Chapter 8: Enhanced ER Model Subclasses, Superclasses, and Inheritance Specialization and Generalization Constraints and Characteristics of Specialization and Generalization Hierarchies Modeling of UNION

More information

Architecture-Centric Evolution in Software Product Lines:

Architecture-Centric Evolution in Software Product Lines: Architecture-Centric Evolution in Software Product Lines: Position Paper Hassan Gomaa Department of Information and Software Engineering George Mason University Fairfax, Virginia 22030, USA hgomaa@gmu.edu

More information

The Method for Verifying Software Architecture with FSP Model

The Method for Verifying Software Architecture with FSP Model The Method for Verifying Software Architecture with FSP Model Kim, Jungho SKC&C Inc., SK u-tower 25-1, Jeongja-dong, Bundang-gu, Seongnam-si, Gyeonggi-do 463-844, Korea kimjh@skcc.com Abstract C&C view

More information

Rational Software White paper

Rational Software White paper Unifying Enterprise Development Teams with the UML Grady Booch Rational Software White paper 1 There is a fundamental paradox at play in contemporary software development. On the one hand, organizations

More information

Unified Modeling Language (UML) and Modeling

Unified Modeling Language (UML) and Modeling LECTURE-11 Unified Modeling Language (UML) and Modeling UML is a graphical notation useful for OO analysis and design Allows representing various aspects of the system Various notations are used to build

More information

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

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

More information

DEVELOPMENT OF AN INTERACTIVE ENVIRONMENT USED FOR SIMULATION OF SHORTEST PATHS ALGORITHMS

DEVELOPMENT OF AN INTERACTIVE ENVIRONMENT USED FOR SIMULATION OF SHORTEST PATHS ALGORITHMS 1. Anca Elena IORDAN DEVELOPMENT OF AN INTERACTIVE ENVIRONMENT USED FOR SIMULATION OF SHORTEST PATHS ALGORITHMS 1. UNIVERSITY POLITEHNICA OF TIMISOARA, FACULTY OF ENGINEERING HUNEDOARA, ROMANIA ABSTRACT:

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090

More information

Software Architecture

Software Architecture Software Architecture Prof. R K Joshi Department of Computer Science and Engineering IIT Bombay What is Architecture? Software Architecture? Is this an Architecture? Is this an Architecture? Is this an

More information

Integrating Software Lifecycle Models into a uniform Software Engineering Model

Integrating Software Lifecycle Models into a uniform Software Engineering Model Integrating Software Lifecycle Models into a uniform Software Engineering Model Jonas Helming Technische Universitaet Muenchen Department of Computer Science Chair for Applied Software Engineering Bolzmannstraße

More information

Using Z as a Substrate for an Architectural Style Description Language 1. September 17, Technical Report CS

Using Z as a Substrate for an Architectural Style Description Language 1. September 17, Technical Report CS Computer Science Technical Report Colorado State University Using Z as a Substrate for an Architectural Style Description Language 1 Michael D. Rice Computer Science Group Mathematics Department Wesleyan

More information

Concurrent Object-Oriented Development with Behavioral Design Patterns

Concurrent Object-Oriented Development with Behavioral Design Patterns Concurrent Object-Oriented Development with Behavioral Design Patterns Benjamin Morandi 1, Scott West 1, Sebastian Nanz 1, and Hassan Gomaa 2 1 ETH Zurich, Switzerland 2 George Mason University, USA firstname.lastname@inf.ethz.ch

More information

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview CHAPTER 1 Topic: UML Overview After studying this Chapter, students should be able to: Describe the goals of UML. Analyze the History of UML. Evaluate the use of UML in an area of interest. CHAPTER 1:

More information

Pattern-Based Architectural Design Process Model

Pattern-Based Architectural Design Process Model Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying

More information

L02.1 Introduction... 2

L02.1 Introduction... 2 Department of Computer Science COS121 Lecture Notes: L02 Introduction to UML and DP 25 July 2014 Copyright c 2012 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents L02.1 Introduction.................................

More information

Outline of Unified Process

Outline of Unified Process Outline of Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule(3/3) March 12 13:00 Unified Process and COMET 14:30 Case Study of Elevator Control System (problem definition,

More information

Modeling variability with UML

Modeling variability with UML Modeling variability with UML Matthias Clauß Intershop Research Software Engineering Group Intershop, Jena Dresden University of Technology Matthias.Clauss@gmx.de Keywords: product families, domain modeling,

More information

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lecture 33 April 4, 2013 Patrick Lam version 1 Unied Modelling Language The Unied Modelling Language (UML) is a language for specifying and

More information

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh UML big picture Perdita Stevens School of Informatics University of Edinburgh Plan Whence UML? Parts of UML How it all fits together UML as a language Consistency: what does it mean, do we need it? Defining

More information

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams Today s Topic Lecture 5 Introduction to UML What is UML Why use UML? UML Static Use case, Class, Object Deployment, Component (Physical ) Dynamic Sequence, Collaboration (Interaction ) Activity, State

More information

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

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML MSc programme (induction week) Department of Informatics INTRODUCTION TO UML Some of this material is based on Bernd Bruegge and Allen H. Dutoit (2009) Object-Oriented Software Engineering: Using UML,

More information

Software Engineering

Software Engineering Software Engineering A systematic approach to the analysis, design, implementation and maintenance of software. Software Development Method by Jan Pettersen Nytun, page 1 Software Engineering Methods Most

More information

COSC 3351 Software Design. An Introduction to UML (I)

COSC 3351 Software Design. An Introduction to UML (I) COSC 3351 Software Design An Introduction to UML (I) This lecture contains material from: http://wps.prenhall.com/esm_pfleeger_softengtp_2 http://sunset.usc.edu/classes/cs577a_2000/lectures/05/ec-05.ppt

More information

Software Development. Modular Design and Algorithm Analysis

Software Development. Modular Design and Algorithm Analysis Software Development Modular Design and Algorithm Analysis Functional Decomposition Functional Decomposition in computer science, also known as factoring, refers to the process by which a complex problem

More information

Object-Oriented Analysis Techniques Coad s OOA Technique Short History Terminological Comparison Postscript and Remarks

Object-Oriented Analysis Techniques Coad s OOA Technique Short History Terminological Comparison Postscript and Remarks Object-Oriented Analysis Object-Oriented Analysis Techniques Coad s OOA Technique Short History Terminological Comparison Postscript and Remarks Object-Oriented Analysis -- 1 Object-Oriented Analysis Object-Oriented

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Troy Mockenhaupt Chi-Hang ( Alex) Lin Pejman ( PJ ) Yedidsion Overview Definition History Behavior Diagrams Interaction Diagrams Structural Diagrams Tools Effect on Software

More information

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

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process Quatrani_Ch.01.fm Page 1 Friday, October 27, 2000 9:02 AM Chapter 1 Introduction What Is Visual Modeling? The Triangle for Success The Role of Notation History of the UML The Role of Process What Is Iterative

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2003 Vol. 2, No. 6, November-December 2003 UML 2 Activity and Action Models Part 3:

More information

Systems Analysis & Design

Systems Analysis & Design Systems Analysis & Design Dr. Ahmed Lawgali Ahmed.lawgali@uob.edu.ly Slide 1 Systems Analysis & Design Course Textbook: Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition

More information

A Tutorial on Agent Based Software Engineering

A Tutorial on Agent Based Software Engineering A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far A Tutorial on Agent Based Software Engineering Qun Zhou December, 2002 Abstract Agent oriented software

More information

CISC 322 Software Architecture

CISC 322 Software Architecture CISC 322 Software Architecture UML - The Unified Modelling Language Nicolas Bettenburg 1 DEFINITION The Unified Modelling Language (UML) is a graphical language for visualizing, specifying, constructing,

More information

Object-Oriented Introduction

Object-Oriented Introduction Object-Oriented Introduction Or: Your Honor, I Object... Jonathan Sprinkle 1 University of Arizona Department of Electrical and Computer Engineering PO Box 210104, Tucson, AZ 85721, USA August 22, 2012

More information

Integrating Systems and Software Engineering Concepts in AP-233

Integrating Systems and Software Engineering Concepts in AP-233 Integrating Systems and Software Engineering Concepts in AP-233 Asmus Pandikow, Erik Herzog, Anders Törne Real-Time Systems Laboratory Linköpings Universitet 581 83 Linköping, Sweden E-mail: {asmpa, erica,

More information

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

A Design Rationale Representation for Model-Based Designs in Software Engineering A Design Rationale Representation for Model-Based Designs in Software Engineering Adriana Pereira de Medeiros, Daniel Schwabe, and Bruno Feijó Dept. of Informatics, PUC-Rio, Rua Marquês de São Vicente

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development Jens Gulden and Prof. Dr. Ulrich Frank University Duisburg-Essen, Universitaetsstr. 9,

More information

Introduction. ADL Roles

Introduction. ADL Roles Architecture Description Languages (ADLs) 1 Introduction Architecture is key to reducing development costs development focus shifts to coarse-grained elements Formal architectural models are needed ADLs

More information

OBJECT-ORIENTED MODELING AND DESIGN. Introduction

OBJECT-ORIENTED MODELING AND DESIGN. Introduction OBJECT-ORIENTED MODELING AND DESIGN Introduction Contents: Introduction. Course Relevance Learning Outcomes Overview of the syllabus Introduction to Object Orientation Introduction Object Oriented Approach

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 02: Semantical Model 2013-10-23 02 2013-10-23 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents

More information

Architectures in Context

Architectures in Context Architectures in Context Software Architecture Lecture 2 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Learning Objectives Understand architecture in its relation

More information

Meta Architecting: Towered a New Generation of Architecture Description Languages

Meta Architecting: Towered a New Generation of Architecture Description Languages Journal of Computer Science 1 (4): 454-460, 2005 ISSN 1549-3636 Science Publications, 2005 Meta Architecting: Towered a New Generation of Architecture Description Languages Adel Smeda, Tahar Khammaci and

More information

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL Ali Hamie, John Howse School of Computing, Mathematical and Information Sciences, University of Brighton, Brighton, UK. {a.a.hamie@brighton.ac.uk,

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 3 Seminal Object-Oriented Methodologies: A Feature-Focused Review 1 Responsibility-Driven Design (RDD) Introduced in 1990; a UML-based

More information

Software Engineering

Software Engineering Software Engineering Object-Oriented Analysis and Design and Modeling with UML Assoc. Prof. Marenglen Biba MSc in Computer Science, UoG-UNYT Foundation Programme 3-1 Material Get the material from http://www.marenglenbiba.net/foundprog/

More information

OO Analysis and Design with UML 2 and UP

OO Analysis and Design with UML 2 and UP OO Analysis and Design with UML 2 and UP Dr. Jim Arlow, Zuhlke Engineering Limited Clear View Training 2008 v2.5 1 UML principles Clear View Training 2008 v2.5 2 1.2 What is UML? Unified Modelling Language

More information

CS560 Lecture: Software Architecture Includes slides by I. Sommerville

CS560 Lecture: Software Architecture Includes slides by I. Sommerville CS560 Lecture: Software Architecture 2009 Includes slides by I. Sommerville Architectural Design Design process for identifying the sub-systems making up a system and the framework for sub-system control

More information

Mining Relationships Between the Participants of Architectural Patterns

Mining Relationships Between the Participants of Architectural Patterns Mining Relationships Between the Participants of Architectural Patterns Ahmad Waqas Kamal and Paris Avgeriou Department of Mathematics and Computing Science, University of Groningen, The Netherlands a.w.kamal@rug.nl,

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: , Q.1 What is Object Orientation? Explain the concept of class, objects, instance, generalization, and associations. Ans :-- In the past, information systems used to be defined primarily by their functionality:

More information

Model Driven Development of Component Centric Applications

Model Driven Development of Component Centric Applications Model Driven Development of Component Centric Applications Andreas Heberle (entory AG), Rainer Neumann (PTV AG) Abstract. The development of applications has to be as efficient as possible. The Model Driven

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

Pattern for Structuring UML-Compatible Software Project Repositories

Pattern for Structuring UML-Compatible Software Project Repositories Pattern for Structuring UML-Compatible Software Project Repositories Pavel Hruby Navision Software a/s Frydenlunds Allé 6 2950 Vedbaek, Denmark E-mail: ph@navision.com Web site: www.navision.com/services/methodology/default.asp

More information

Configuration Management for Component-based Systems

Configuration Management for Component-based Systems Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,

More information

Software Engineering Lab Manual

Software Engineering Lab Manual Kingdom of Saudi Arabia Ministry Education Prince Sattam Bin Abdulaziz University College of Computer Engineering and Sciences Department of Computer Science Software Engineering Lab Manual 1 Background:-

More information

SUMMARY: MODEL DRIVEN SECURITY

SUMMARY: MODEL DRIVEN SECURITY SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park Overview Unified Modeling Language (UML) Models & views Class diagrams Sequence

More information

Introduction to Software Engineering 10. Software Architecture

Introduction to Software Engineering 10. Software Architecture Introduction to Software Engineering 10. Software Architecture Roadmap > What is Software Architecture? > Coupling and Cohesion > Architectural styles: Layered Client-Server Blackboard, Dataflow,... >

More information

Implementing Architectures

Implementing Architectures Implementing Architectures Software Architecture Lecture 15 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Learning Objectives Formulate implementation as a mapping

More information