Analysis and Design with the Universal Design Pattern

Size: px
Start display at page:

Download "Analysis and Design with the Universal Design Pattern"

Transcription

1 Analysis and Design with the Universal Design Pattern by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable. Software projects are often canceled, finish late and over budget, or yield low-quality results -- setting software development apart from established engineering disciplines. As others have observed, the key to successful software development is a good, resilient architecture. The Universal Design Pattern (which I discussed in the December 2000, January 2001, and February 2001 issues of The Rational Edge) is a set of design rules that can help software developers create quality architectures in a systematic fashion. In this fourth article, I will outline how the rules of the Universal Design Pattern should be applied for software analysis and design. The Universal Design Pattern fits very nicely into the framework of the Rational Unified Process (RUP ): A software architect can easily apply the Universal Design Pattern when deriving the initial architectural design of a software system from a use-case model. Let me start by summarizing the key features of the Universal Design Pattern, a design method based on an abstract set of design elements and narrative rules. The Universal Design Pattern is truly universal because it applies to software of all application domains. Software developers can use the Universal Design Pattern no matter what design language, modeling tools, or programming languages they employ. The Universal Design Pattern features four types of design elements: Data Entities, I/O Servers, Transformation Servers, and Data Flow Managers. Each type of design element is concerned with exactly one specific aspect of system operation:

2 Data entities represent the input data, output data, and internal persistent data of the software system. Data entities are solely concerned with data structures and primitive operations on those data structures. A data entity is an entirely passive object -- pure data -- oblivious to system algorithms, external interfaces, or sequence of actions. I/O servers encapsulate the external (hardware) interfaces and internal databases the software system interacts with. I/O servers are solely concerned with input/output and servicing external (hardware) interfaces. An I/O server may be concerned with I/O timing, but not with scheduling or triggering other system actions. I/O servers do not perform any algorithmic tasks with respect to the input or output data they handle. Transformation servers perform the transformation from input data to output data -- possibly updating internal state data. Transformation servers are solely concerned with system algorithms. A transformation server never has to worry about where data is coming from or where it is going. All operations of a transformation server are sequential and deterministic. Transformation servers are not concerned with data representation, external interfaces, or sequence of actions. Data flow managers obtain input data from the I/O servers, invoke the transformation servers (which transform input data into output data), and deliver output data to the I/O servers. Data flow managers are concerned solely with data flow and sequence of actions. Data flow managers know what actions the system needs to perform and in what sequence, but they are not concerned with the details of those actions: the algorithms and external (hardware) interfaces. While data flow managers own the internal state data, they are not concerned with its representation. See Figure 1 for an example of a very simple architectural design.

3 Figure 1: A Simple Architectural Design Translating Use-Case Models Use-case modeling is one of the most compelling and successful techniques for finding and capturing functional software requirements. The requirements workflow of the Rational Unified Process describes the usecase modeling technique at length. As a brief summary, we can say that use cases specify the externally visible behavior of a software system: how a system interacts with external entities (called actors). Figure 2 is an example of a simple use case as it might appear in a use-case model.

4 Figure 2: A Simple Use Case A use case is realized by three kinds of analysis classes: boundary classes, control classes, and entity classes. The Analysis & Design Workflow of the Rational Unified Process explains at length how to find analysis classes. We can summarize by saying that actor/system interactions give rise to boundary classes, the use-case behavior gives rise to a control class, and stored information gives rise to entity classes. The use case depicted in Figure 2, for example, might be realized by boundary classes, control classes, and entity classes, as shown in Figure 3. Figure 3: A Simple Analysis Class Diagram As we will see below, there is a simple correspondence between the analysis classes/objects and the modeling elements of the Universal Design Pattern. A software architect can therefore easily refine the analysis model and create an architectural design model according to the rules of the Universal Design Pattern. Of course, requirements analysis with use cases is not a prerequisite for applying the Universal Design Pattern. There are many ways a software developer can discover data entities, I/O servers, transformation servers, and data flow managers when studying the software requirements. Often, considering external interfaces and the data transformations that are needed to produce output data from the input data will lead a developer to create a reasonable architectural design that obeys the rules of the Universal Design Pattern. Boundary Classes A boundary class embodies several aspects of the interface with which it is associated, including the physical I/O device, the available input and output operations, the data the system produces or retrieves for processing, and the layout of the information presented to, or requested from, the actor. The Universal Design Pattern requires that an architect

5 separate these aspects in the design model. Each boundary class translates to a set of design elements: An I/O Server. The I/O server encapsulates the driver that controls the interface hardware. Often the driver does not interact with the hardware directly (though it can), but with lower level I/O servers or operating system drivers. The I/O server also provides the abstract input and output operations other design elements of the system use. Finally, the I/O server encapsulates the layout of the external interface and its components. Many input data entities and output data entities. The data entities embody the logical structure and operations of the data objects other design elements exchange with the I/O server. The input and output data entities are the parameters of the input and output operations of the I/O server. Note that the structure of the input and output data entities is independent of the layout of the external interface. Upon refining the design of the I/O server, a software developer will often discover other data entities and subordinate I/O servers that are needed for its implementation. Also, a single I/O server often implements many or all boundary classes that are associated with the same external interface. See Figure 4 for an example of a design model with an I/O server derived from the RadarReceiverInterface and the RadarTransmitterInterface boundary classes. Figure 4: Refined Class Diagram of RadarReceiverInterface Control Classes A control class represents the behavior of a use case, the sequence of events the software system responds to, and the sequence of actions the system performs while the use case is executed. If there are several use cases that describe communication with the same actor or through the

6 same external interface, then the control classes of all these use cases can often be translated into a single modeling element: A Data Flow Manager. Note, however, that a data flow manager never responds to an event; a data flow manager always acts. The flow of events of a use case is usually described in reactive terms. The software developer has to translate that description into a sequence of pure actions performed by the data flow manager. Consider, for example, the following use-case outline, which is realized by the RadarLoopControl class: The UpdateTrackerPosition use case is executed every 20 milliseconds. 1. The use case starts when the radar receiver sends a telegram with target position data to the system. 2. The system retrieves the filter state and computes the new tracker position. The system then updates the filter state. 3. The system sends the new tracker position to the tracker motor. In skeletal Ada, the corresponding data flow manager would look like this: TASK Tracking_Loop_Manager IS State : Filter_State; BEGIN LOOP Radar_Io_Server.wait_for_20ms_telegram(20ms_telegram); Filter.compute_new_position (State, 20ms_telegram, new_tracker_position); Tracker_Io_Server.set_position(new_tracker_position); END LOOP; END; Note how the data flow manager is actively waiting for and retrieving the input data provided by the I/O server (the Radar_Io_Server in this example). The I/O server does not invoke the data flow manager or send data to the data flow manager. Entity Classes Entity classes represent data the system stores across several executions of a use case. An entity class embodies several aspects of the data, namely its structure, its operations, and the means by which it is stored persistently in the system. The Universal Design Pattern requires that an architect separate these aspects in the design model. Furthermore, an entity class can translate to different sets of modeling elements, depending on the significance of the data the entity class represents. We

7 mainly have to consider two cases: 1) If the entity class represents persistent data the system stores in an internal database, then the entity class translates to two modeling elements: A persistent data entity. The persistent data entity embodies the logical structure of the stored data objects. A persistent data entity typically has few operations. In particular, it should not have any operations that pertain to the means by which it is stored. A database I/O server. This I/O server embodies the database object that stores the data objects. The operations of the database I/O server are typically of the get and put type and take an in or out parameter of the persistent data entity above. The database I/O server encapsulates any internal structures (e.g., index tables) and functionality needed to store the data objects in the database. See Figure 5 for an example of a design model with a database I/O server and a persistent data entity derived from the TacticalData entity class. Figure 5: Refined Class Diagram of TacticalData If the tactical data resides on some kind of external medium, then it obviously has to be represented by a database I/O server, because it is accessed through an external (hardware) interface. But even if the tactical data is kept in memory, it must be represented by a database I/O server to separate the data structure aspects from the storage/retrieval aspects. 2) If the entity class represents internal state data associated with a system algorithm, then the entity class translates into a Transformation Server. The transformation server embodies both the logical structure of the state data and the algorithm. The transformation server has a compute type operation that takes an input data entity and an output data entity as parameters. Note that in non-object-oriented programming languages, the internal state data object would also be a parameter that is passed in and out.

8 See Figure 6 for an example of a design model with a transformation server derived from the FilterState entity class. Figure 6: Refined Class Diagram of FilterState An internal state data object is always owned by a single data flow manager. Although different data flow managers may use the same transformation server (which is a class), they maintain independent state data objects (which are instances of the transformation server class). The Four Realms of Software The Universal Design Pattern divides a system's software into four separate realms at the highest level of design: The realm of data entities (representing the problem domain) The realm of transformation servers (representing the domaindependent solution space) The realm of I/O servers (representing the target environment) The realm of data flow managers (representing the targetdependent solution space) These four realms are quite distinct from one another, and the classes/objects of each realm are likely to be modeled and implemented in different ways. Note that data entities and transformation servers usually constitute the bulk of a software system. The Realm of Data Entities The realm of data entities represents the problem domain. Most objects or concepts within the problem space are represented by data entities. Data entities are largely oblivious to the target environment of the software system. Together with transformation servers, data entities model the problem domain reality.

9 Each data entity is a class of a data objects, and its primitive operations are class operations. Data entities are often related to other data entities; for example: Data entities can be composed of other, more fundamental data entities. Data entities can be derived from more fundamental ancestor data entities. Primitive operations can be inherited from ancestor data entities. Data entities represent all the input data, output data, and persistent data a software system handles. Any number of data objects (instances of data entities) may exist in a software system at any given time. Data objects come and go; they are created and destroyed continually as the software executes. Data entities are entirely passive. Although other types of design elements pass them around and invoke their operations, they cannot truly interact with data entities. Data entities are best modeled with an object-oriented design language like the Unified Modeling Language (UML). UML is very powerful and provides a broad range of features, however, and many of those features are unsuitable for data entity design. A software developer should observe the following restrictions: Message sequence diagrams, object interaction diagrams, and state machines have no place in data entity design. Remember, data entities are entirely passive; they do not exchange messages and do not have state (in fact, they are state). Primitive operations must not invoke global methods or otherwise interact with global objects. A primitive operation of a data entity may invoke other operations of that data entity, operations of its component data entities, or operations of its parameters, but nothing else. In particular, a primitive operation must not invoke operations of any I/O servers or transformation servers. Data entities (the classes) must not have global, static state. The detailed structure of a data entity or its primitive operations need not be exposed in the top-level design of a software system. The top-level data entities usually correspond to the input data and output data of the software system, as well as persistent data identified during requirements modeling. A software developer always introduces new data entities while refining the top-level data entities and breaking them into smaller objects. Data entities can only be composed of other data entities, though. No I/O servers, transformation servers, or data flow managers ever emerge during the detailed design of a data entity. Note that it is a mistake to start data entity design by identifying domain concepts. Data entities representing domain concepts will emerge eventually, as the design model is refined, but they should never be the starting point of architectural design.

10 The Realm of Transformation Servers The realm of transformation servers represents the domain-dependent solution space. Each transformation server represents a domain-specific algorithm pertinent to the problem a software system solves. Transformation servers are oblivious to the target environment. Together with the data entities, they model the problem domain reality. Each transformation server implements an algorithm (sometimes several algorithms) that is sequential and deterministic. A transformation server is thus simply modeled as a class with operations implementing the algorithm. All the usual elements of procedural languages and structured design languages can be used to implement transformation server operations: loops, conditional statements, subroutines, parameters, recursion, etc. You might think that transformation servers would functionally decompose a software system, but that is not the case. A transformation server is usually associated with a transformation state. The transformation state is internal data a transformation operation uses and updates whenever it is invoked. And the transformation state is the class with which a transformation operation is associated. For example, in C++: class Filter { public: void compute_next_position (20msTelegram &input, TrackerPosition &output); private: FilterState state; }; In the procedural programming language C we would specify the transformation server class as follows: struct FilterState { }; void compute_next_position (FilterState *pstate, 20msTelegram *pinput, TrackerPosition *poutput);

11 Note that both code snippets specify a class! In the C example, the FilterState object is explicitly passed as an in-out parameter when the transformation server operation is invoked. In the C++ example, the FilterState object is passed implicitly as the object to which the compute_next_position operation belongs. The following guidelines apply to transformation server design and implementation: A transformation server (the class) must not have any global, static state. All data objects a transformation server uses must be passed as parameters to its transformation operation -- either explicitly or implicitly. The algorithm implemented by a transformation server must depend only on its parameters. A transformation server may invoke the operations of other transformation servers or primitive operations of its parameters. But a transformation server must not invoke I/O server operations. The restrictions above ensure that all transformation server operations are reentrant. Any object-oriented or structured design language is adequate to model transformation servers. After all, a transformation server is nothing more than an algorithm; therefore, any design language able to describe algorithms will do. The detailed structure of a transformation server does not need to be exposed in the top-level design. The algorithm of a transformation server can often be broken into discrete steps. Each of these steps can itself be represented as a subordinate transformation server. Some of the steps may already be implemented by an unrelated transformation server, and can be invoked. As the software developer refines the design of a transformation server, he will normally introduce new transformation servers and new data entities. The data entities emerge as a by-product, representing parameters the transformation server passes to subordinate transformation servers. I/O servers and data flow managers never emerge during the detailed design of a transformation server. It's important to note that transformation servers and data entities are conceptually very different design elements. Although they are both modeled and implemented as classes, they have different responsibilities within a software system. Data entities model domain objects and concepts; transformation servers model algorithms pertinent to the software solution. The Realm of I/O Servers The realm of I/O servers represents the target environment. Each I/O server encapsulates an external (hardware) interface or internal database

12 with which the software system interacts. I/O servers are concerned only with the target environment of the software system, not with problem domain objects or concepts. Together with the data flow managers, the I/O servers model the target environment reality. I/O servers are best characterized as passive-reactive. They are passive until they either receive an external signal or a client invokes an input/output operation. Once activated, however, an I/O server autonomously performs all the necessary steps to either serve the external (hardware) interface it encapsulates or to satisfy the client request. Note that the only clients of an I/O server are data flow managers. An I/O server can be fairly complex and expensive to implement, depending on the nature of the external interface it encapsulates. Imagine, for example, an I/O server representing a CORBA interface or implementing a TCP/IP stack. However, the complexity of an I/O server should be related solely to the input/output operations it performs and the external (hardware) interface it services. I/O servers should not be concerned with any computations related to the data they receive, transmit, or store. The following guidelines apply to I/O server design and implementation: An I/O server may invoke the operations of another I/O server but not of a transformation server. An I/O server should use operations of input or output data entities only to create or destroy them. To access the external interface, an I/O server should use its own thread of control. When a client delivers output data to an I/O server, the data should always be copied into a local buffer. When a client obtains input data from an I/O server, the data should always be copied out of a local buffer. An I/O server can be modeled as a class, although I/O servers are usually solitary objects. The input and output operations an I/O server provides often depend only on the target environment, not on the problem domain. I/O servers typically have get, put, and wait type operations. Here is an example in Ada:

13 PACKAGE Radar_Io_Server IS PROCEDURE wait_for_20ms_telegram (output : OUT Telegram20ms); PROCEDURE put_control_telegram (input : IN ControlTelegram); END; No design language is entirely adequate for modeling an I/O server. Skeletal, high-level language code is therefore often the best choice. The capsules of UML/RT capture the passive-reactive nature of I/O servers very well. However, capsule-interaction by signals and messages is inadequate to describe some of the interactions between I/O servers and data flow managers -- especially waiting for input data. The detailed structure of an I/O server does not need to be exposed in the top-level design. Higher-level I/O servers often rely on subordinate, lowerlevel I/O servers to perform the required input/output operations. Sometimes a lower-level external interface is already encapsulated by an I/O server, and a higher-level I/O server can invoke operations of the latter. As the software developer refines the design of an I/O server, he will normally introduce new I/O servers and new data entities. Data entities emerge as a by-product, representing parameters the I/O server passes to subordinate I/O servers. Transformation servers and data flow managers never emerge during the detailed design of an I/O server. The Realm of Data Flow Managers The realm of data flow managers represents the target-dependent solution space. Each data flow manager represents a sequence of actions the system performs. Data flow managers are largely oblivious to the problem domain -- domain concepts and domain-specific algorithms. Together with the I/O servers the data flow managers model the target environment reality. The data flow managers are the active elements of a system. Each data flow manager implements an independent thread of control. In a system that is implemented in Ada, the data flow managers would most likely be Ada tasks. Data flow managers are the means by which a software developer implements concurrency within a software system. All data flow managers of a software system perform their actions concurrently. The following guidelines apply to data flow manager design and implementation: A data flow managers always acts on I/O servers and transformation servers; it never reacts. Data flow managers have no interface. It is therefore not possible

14 for other design elements to invoke a data flow manager or to send messages to a data flow manager. A data flow manager performs its actions as quickly as possible; data flow managers are not controlled by a clock. When a data flow manager retrieves input data from an I/O server, it may have to wait for the input data to become available. But because waiting for input is considered to be an action, a data flow manager still performs its actions as quickly as possible. Data flow managers may explicitly synchronize with each other, though explicit synchronization should be avoided if at all possible. Explicit synchronization is considered to be an action. A data flow manager does not have to perform all its actions sequentially. It can perform some actions conditionally or repeatedly. A data flow manager should never be concerned with the details of the actions it performs. A data flow manager knows what the software does and in what sequence, but not how it is being done. The actions of a data flow manager must be simple, such as invoking operations of an I/O server or a transformation server. Algorithms or input/output details should be implemented not in the data flow manager itself but in the operation it invokes. A data flow manager may temporarily store data entities. It must not, however, use any of the operations of those data entities. In skeletal Ada, for example, a data flow manager might look like this: TASK Tracking_Loop_Manager IS State : Filter_State; BEGIN LOOP Radar_Io_Server.wait_for_20ms_telegram(20ms_telegram); IF Filter.is_new_asm(State, 20ms_telegram) THEN Filter.start_asm_tracking(State); Console_Io_Server.sound_asm_alarm; END IF; Filter.compute_new_position (State, 20ms_telegram, new_tracker_position); Tracker_Io_Server.set_position(new_tracker_position); END LOOP; END; Data flow managers can be modeled with a variety of modeling languages,

15 although -- just as for modeling I/O servers -- none is entirely adequate. A software developer can easily use UML's activity state diagrams or skeletal high-level language code to describe the sequence of actions a data flow manager performs. Note that a UML/RT capsule cannot represent a data flow manager because data flow managers are active, and not reactive, design elements. All data flow managers of a software system must be present in the toplevel design. A data flow manager is not composed of any subordinate objects and cannot be broken into subordinate design elements, other than the actions it performs. As far as data flow managers are concerned, the design of a software system is flat. This forces a software architect to provide a detailed model of the operationally complicated interactions within a software system -- interactions between the data flow managers and other design elements -- at the highest level of design. The operationally simple bulk of the software system however -- I/O servers, transformation servers, and data entities -- does not need to be detailed at a high level. Although I/O servers may interact with other I/O servers and transformation servers may interact with other transformation servers, these interactions are simple because they are sequential and hierarchical. Model Each Realm Separately As we have seen, it is quite easy to obtain initial design elements from the use-case model of a software system. Each design element belongs to one, and only one, realm of software. It is either a data entity, a transformation server, an I/O server, or a data flow manager. A software developer can refine and relate those design elements according to the rules of the Universal Design Pattern (as provided above) to obtain a quality architectural design. It is imperative though, that a software developer does not introduce design elements that belong to multiple realms! Similarly, the general rule that a design element can only be composed of design elements of the same type (data entities being a by-product of decomposition) is absolutely essential. Note that this is the way we design systems in other industries. When designing a car, for example, we would never introduce arbitrary design elements -- say a front-end and a back-end -- and then discover later that the front-end contains a driver's seat, spark plugs, and tires. No; we would divide the elements of the car into separate realms at the highest level of design -- such as passenger comfort, power train, and rolling gear - - and then model the design elements of each realm separately. For more information on the products or services discussed in this article, please click here and follow the instructions provided. Thank you!

16 Copyright Rational Software 2001 Privacy/Legal Information

From Craft to Science: Rules for Software Design -- Part II

From Craft to Science: Rules for Software Design -- Part II From Craft to Science: Rules for Software Design -- Part II by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable.

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi Software Engineering (CSC 4350/6350) Rao Casturi Recap 1 to 5 Chapters 1. UML Notation 1. Use Case 2. Class Diagrams 3. Interaction or Sequence Diagrams 4. Machine or State Diagrams 5. Activity Diagrams

More information

Experiment no 4 Study of Class Diagram in Rational Rose

Experiment no 4 Study of Class Diagram in Rational Rose Experiment no 4 Study of Class Diagram in Rational Rose Objective-: To studyclass Diagram in Rational Rose. References-: www.developer.com The Unified Modeling Language User Guide by Grady Booch Mastering

More information

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment Copyright Rational Software 2002 http://www.therationaledge.com/content/dec_02/m_uiiterativeenvironment_jc.jsp Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

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

Architectural Blueprint

Architectural Blueprint IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint

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

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

3. UML Class Diagrams Page 1 of 15

3. UML Class Diagrams Page 1 of 15 3. UML Class Diagrams Page 1 of 15 The UML Class Diagram: Part 1 In the last article, we saw what use cases were, and how to identify and create use cases. Taking the series ahead, in this article, we

More information

Use case modeling. Use case modeling Søren Langkilde Madsen mail: mail:

Use case modeling. Use case modeling Søren Langkilde Madsen mail: mail: Use Case 3 Use Case 1 Actor Use Case 4 Use Case 2 Item: Author: Use case modeling Søren Langkilde Madsen mail: soeren.langkilde@tietoenator.com

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright Complexity Object Orientated Analysis and Design Benjamin Kenwright Outline Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean by Complexity? How do

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

UNIT 5 - UML STATE DIAGRAMS AND MODELING

UNIT 5 - UML STATE DIAGRAMS AND MODELING UNIT 5 - UML STATE DIAGRAMS AND MODELING UML state diagrams and modeling - Operation contracts- Mapping design to code UML deployment and component diagrams UML state diagrams: State diagrams are used

More information

Chapter : Analysis Modeling

Chapter : Analysis Modeling Chapter : Analysis Modeling Requirements Analysis Requirements analysis Specifies software s operational characteristics Indicates software's interface with other system elements Establishes constraints

More information

Editor's Notes Better Software Requires a Better Process

Editor's Notes Better Software Requires a Better Process Editor's Notes Better Software Requires a Better Process Reader Mail Readers comment on Kurt Bittner's article in the December issue. Read the letters and Kurt's Response. Reader Question: How do I automate

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze

More information

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD A Comparison of the Booch Method and Shlaer-Mellor OOA/RD Stephen J. Mellor Project Technology, Inc. 7400 N. Oracle Rd., Suite 365 Tucson Arizona 85704 520 544-2881 http://www.projtech.com 2 May 1993 The

More information

G Programming Languages Spring 2010 Lecture 13. Robert Grimm, New York University

G Programming Languages Spring 2010 Lecture 13. Robert Grimm, New York University G22.2110-001 Programming Languages Spring 2010 Lecture 13 Robert Grimm, New York University 1 Review Last week Exceptions 2 Outline Concurrency Discussion of Final Sources for today s lecture: PLP, 12

More information

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Modeling Applications using Language Mappings Programmer s Reference Manual How to use this Reference Card: The consists of a set of fundamental modeling elements which appear

More information

Activities Radovan Cervenka

Activities Radovan Cervenka Unified Modeling Language Activities Radovan Cervenka Activity Model Specification of an algorithmic behavior. Used to represent control flow and object flow models. Executing activity (of on object) is

More information

Introduction to Object Oriented Analysis and Design

Introduction to Object Oriented Analysis and Design A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,

More information

Interactions A link message

Interactions A link message Interactions An interaction is a behavior that is composed of a set of messages exchanged among a set of objects within a context to accomplish a purpose. A message specifies the communication between

More information

SOME TYPES AND USES OF DATA MODELS

SOME TYPES AND USES OF DATA MODELS 3 SOME TYPES AND USES OF DATA MODELS CHAPTER OUTLINE 3.1 Different Types of Data Models 23 3.1.1 Physical Data Model 24 3.1.2 Logical Data Model 24 3.1.3 Conceptual Data Model 25 3.1.4 Canonical Data Model

More information

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic Exercise Unit 2: Modeling Paradigms - RT-UML UML: The Unified Modeling Language Statecharts RT-UML in AnyLogic Simulation and Modeling I Modeling with RT-UML 1 RT-UML: UML Unified Modeling Language a mix

More information

Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify

Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify http://cs.lth.se/eda040 Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify Klas Nilsson 2016-09-20 http://cs.lth.se/eda040 F4: Monitors: synchronized, wait and

More information

C++ Inheritance and Encapsulation

C++ Inheritance and Encapsulation C++ Inheritance and Encapsulation Private and Protected members Inheritance Type Public Inheritance Private Inheritance Protected Inheritance Special method inheritance 1 Private Members Private members

More information

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9 Implementing Scheduling Algorithms Real-Time and Embedded Systems (M) Lecture 9 Lecture Outline Implementing real time systems Key concepts and constraints System architectures: Cyclic executive Microkernel

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

The Process of Software Architecting

The Process of Software Architecting IBM Software Group The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK peter.eeles@uk.ibm.com 2009 IBM Corporation Agenda IBM Software Group Rational software Introduction Architecture,

More information

Object Oriented Analysis and Design - Part2(Design)

Object Oriented Analysis and Design - Part2(Design) Object Oriented Analysis and Design - Part2(Design) Exam A QUESTION 1 Which statement is true about elements within the subsystem and public visibility? A. Only the subset of elements that define the subsystems

More information

Executable UML. Stephen J. Mellor

Executable UML. Stephen J. Mellor Executable UML Stephen J. Mellor Executable UML is here. While it is possible today to add code to UML diagrams and then execute them, in so doing you must make a series of decisions about implementation

More information

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

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/06-6 revision 2 Date: May 22, 2006 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular documentation

More information

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered Object-oriented development Object-oriented Design Object-oriented analysis, design and programming are related but distinct. OOA is concerned with developing an object model of the application domain.

More information

Recalling the definition of design as set of models let's consider the modeling of some real software.

Recalling the definition of design as set of models let's consider the modeling of some real software. Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

Context-Awareness and Adaptation in Distributed Event-Based Systems

Context-Awareness and Adaptation in Distributed Event-Based Systems Context-Awareness and Adaptation in Distributed Event-Based Systems Eduardo S. Barrenechea, Paulo S. C. Alencar, Rolando Blanco, Don Cowan David R. Cheriton School of Computer Science University of Waterloo

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

Chapter 2: The Object-Oriented Design Process

Chapter 2: The Object-Oriented Design Process Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and

More information

Software Architecture. Lecture 5

Software Architecture. Lecture 5 Software Architecture Lecture 5 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements : tactics

More information

Lecture Notes on Memory Layout

Lecture Notes on Memory Layout Lecture Notes on Memory Layout 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 11 1 Introduction In order to understand how programs work, we can consider the functions,

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

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

Mat 2170 Week 9. Spring Mat 2170 Week 9. Objects and Classes. Week 9. Review. Random. Overloading. Craps. Clients. Packages. Randomness.

Mat 2170 Week 9. Spring Mat 2170 Week 9. Objects and Classes. Week 9. Review. Random. Overloading. Craps. Clients. Packages. Randomness. Spring 2014 Student Responsibilities Reading: Textbook, Sections 6.1 6.3 Attendance Recall: Writing Methods Decomposition: break a problem down into smaller subproblems Use methods whenever you can in

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design. Submitted by, Roll Numbers:-49-70

ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design. Submitted by, Roll Numbers:-49-70 ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design Submitted by, Roll Numbers:-49-70 Functional Models The functional model specifies the results of a computation without specifying

More information

Lecture Notes on Program Equivalence

Lecture Notes on Program Equivalence Lecture Notes on Program Equivalence 15-312: Foundations of Programming Languages Frank Pfenning Lecture 24 November 30, 2004 When are two programs equal? Without much reflection one might say that two

More information

Incremental development A.Y. 2018/2019

Incremental development A.Y. 2018/2019 Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with

More information

Introducing the UML Eng. Mohammed T. Abo Alroos

Introducing the UML Eng. Mohammed T. Abo Alroos Introducing the UML Eng. Mohammed T. Abo Alroos Islamic University of Gaza Introduction to the UML: The UML stands for Unified Modeling Language. It was released in 1997 as a method to diagram software

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

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Multithreading Multiprocessors Description Multiple processing units (multiprocessor) From single microprocessor to large compute clusters Can perform multiple

More information

RSARTE External C++ Integration

RSARTE External C++ Integration RSARTE External C++ Integration Anders Ek IBM RSARTE EXTERNAL C++ INTEGRATION...1 INTRODUCTION...2 BUILD/FILE INTEGRATION...2 FILE ARTIFACTS... 2 EXTERNAL CDT PROJECTS... 4 EXTERNAL COMPONENTS... 4 FUNCTIONAL

More information

Impact of Platform Abstractions on the Development Workflow

Impact of Platform Abstractions on the Development Workflow Impact of Platform Abstractions on the Development Workflow Johannes Pletzer, Wolfgang Pree Technical Report September 7, 2009 C. Doppler Laboratory Embedded Software Systems University of Salzburg Austria

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.)

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.) Process Concept Chapter 3 Processes Computers can do several activities at a time Executing user programs, reading from disks writing to a printer, etc. In multiprogramming: CPU switches from program to

More information

Software Development Chapter 1

Software Development Chapter 1 Software Development Chapter 1 1. Introduction Software Applications are increasingly used to tackle problems that concern everyday life : Automatic Bank tellers Airline reservation systems Air traffic

More information

Software Architecture. Lecture 4

Software Architecture. Lecture 4 Software Architecture Lecture 4 Last time We discussed tactics to achieve architecture qualities We briefly surveyed architectural styles 23-Jan-08 http://www.users.abo.fi/lpetre/sa08/ 2 Today We check

More information

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Software Design Fundamentals. CSCE Lecture 11-09/27/2016 Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -

More information

Master of Science Thesis. Modeling deployment and allocation in the Progress IDE

Master of Science Thesis. Modeling deployment and allocation in the Progress IDE Master of Science Thesis (D-level) Akademin för innovation, design och teknik David Šenkeřík Modeling deployment and allocation in the Progress IDE Mälardalen Research and Technology Centre Thesis supervisors:

More information

CIS233J Java Programming II. Threads

CIS233J Java Programming II. Threads CIS233J Java Programming II Threads Introduction The purpose of this document is to introduce the basic concepts about threads (also know as concurrency.) Definition of a Thread A thread is a single sequential

More information

Student Responsibilities. Mat 2170 Week 9. Notes About Using Methods. Recall: Writing Methods. Chapter Six: Objects and Classes

Student Responsibilities. Mat 2170 Week 9. Notes About Using Methods. Recall: Writing Methods. Chapter Six: Objects and Classes Student Responsibilities Mat 2170 Week 9 Objects and Classes Spring 2014 Reading: Textbook, Sections 6.1 6.3 Lab 9 Attendance 1 2 Recall: Writing Methods 3 Decomposition: break a problem down into smaller

More information

Slide 1 Welcome to Fundamentals of Health Workflow Process Analysis and Redesign: Process Mapping: Entity-Relationship Diagrams. This is Lecture e.

Slide 1 Welcome to Fundamentals of Health Workflow Process Analysis and Redesign: Process Mapping: Entity-Relationship Diagrams. This is Lecture e. WORKFLOW ANALYSIS Audio Transcript Component 10 Unit 3 Lecture E Fundamentals of Health Workflow Process Analysis & Redesign Interpreting and Creating Process Diagrams Process Mapping UML notation for

More information

1 Executive Overview The Benefits and Objectives of BPDM

1 Executive Overview The Benefits and Objectives of BPDM 1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will

More information

Traditional Approaches to Modeling

Traditional Approaches to Modeling Traditional Approaches to Modeling Timeliness, Performance and How They Relate to Modeling, Architecture and Design Mark S. Gerhardt Chief Architect Pittsburgh, PA 15213 Levels of Real Time Performance

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Object Oriented Programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 23, 2010 G. Lipari (Scuola Superiore

More information

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten Architectural Blueprint The 4+1 View Model of Software Architecture Philippe Kruchten Model What is a model? simplified abstract representation information exchange standardization principals (involved)

More information

Internetworking Models The OSI Reference Model

Internetworking Models The OSI Reference Model Internetworking Models When networks first came into being, computers could typically communicate only with computers from the same manufacturer. In the late 1970s, the Open Systems Interconnection (OSI)

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

Graphical Editor for the Metropolis Meta-model

Graphical Editor for the Metropolis Meta-model EE249 Project Report, Fall 2001 1 Graphical Editor for the Metropolis Meta-model Jiagen Ding (jgding@newton.berkeley.edu) Hongjing Zou (zouh@eecs.berkeley.edu) http://www-cad.eecs.berkeley.edu/ zouh/ee249project.html

More information

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

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/06-6 revision 0 Date: March 0, 2006 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular documentation

More information

CS112 Lecture: Variables, Expressions, Computation, Constants, Numeric Input-Output

CS112 Lecture: Variables, Expressions, Computation, Constants, Numeric Input-Output CS112 Lecture: Variables, Expressions, Computation, Constants, Numeric Input-Output Last revised January 12, 2006 Objectives: 1. To introduce arithmetic operators and expressions 2. To introduce variables

More information

Software Design Description Report

Software Design Description Report 2015 Software Design Description Report CodeBenders Haldun Yıldız 1819663 Onur Aydınay 1819002 Deniz Can Yüksel 1819697 Ali Şihab Akcan 1818871 TABLE OF CONTENTS 1 Overview... 3 1.1 Scope... 3 1.2 Purpose...

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

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester Lab Manual Object Oriented Analysis And Design TE(Computer) VI semester Index Sr. No. Title of Programming Assignment Page No. 1 2 3 4 5 6 7 8 9 10 Study of Use Case Diagram Study of Activity Diagram Study

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

CS4514 Real-Time Systems and Modeling

CS4514 Real-Time Systems and Modeling CS4514 Real-Time Systems and Modeling Fall 2015 José M. Garrido Department of Computer Science College of Computing and Software Engineering Kennesaw State University Real-Time Systems RTS are computer

More information

13/11/2017. Meltem Özturan misprivate.boun.edu.tr/ozturan/mis515

13/11/2017. Meltem Özturan misprivate.boun.edu.tr/ozturan/mis515 Meltem Özturan misprivate.boun.edu.tr/ozturan/mis515 2 1 Traditional Approach to Requirements Data Flow Diagram (DFD) A graphical system model that shows all of the main requirements for an information

More information

Sequentialising a concurrent program using continuation-passing style

Sequentialising a concurrent program using continuation-passing style Sequentialising a concurrent program using continuation-passing style Juliusz Chroboczek Université de Paris-Diderot (Paris 7) jch@pps.jussieu.fr 28 January 2012 1/44 Outline Everything you ever wanted

More information

In his paper of 1972, Parnas proposed the following problem [42]:

In his paper of 1972, Parnas proposed the following problem [42]: another part of its interface. (In fact, Unix pipe and filter systems do this, the file system playing the role of the repository and initialization switches playing the role of control.) Another example

More information

The Web Service Sample

The Web Service Sample The Web Service Sample Catapulse Pacitic Bank The Rational Unified Process is a roadmap for engineering a piece of software. It is flexible and scalable enough to be applied to projects of varying sizes.

More information

EMF Temporality. Jean-Claude Coté Éric Ladouceur

EMF Temporality. Jean-Claude Coté Éric Ladouceur EMF Temporality Jean-Claude Coté Éric Ladouceur 1 Introduction... 3 1.1 Dimensions of Time... 3 3 Proposed EMF implementation... 4 3.1 Modeled Persistence... 4 3.2 Modeled Temporal API... 5 3.2.1 Temporal

More information

A Concurrency Control for Transactional Mobile Agents

A Concurrency Control for Transactional Mobile Agents A Concurrency Control for Transactional Mobile Agents Jeong-Joon Yoo and Dong-Ik Lee Department of Information and Communications, Kwang-Ju Institute of Science and Technology (K-JIST) Puk-Gu Oryong-Dong

More information

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram UML Fundamental NetFusion Tech. Co., Ltd. Jack Lee 2008/4/7 1 Use-case diagram Class diagram Sequence diagram OutLine Communication diagram State machine Activity diagram 2 1 What is UML? Unified Modeling

More information

Performance Throughput Utilization of system resources

Performance Throughput Utilization of system resources Concurrency 1. Why concurrent programming?... 2 2. Evolution... 2 3. Definitions... 3 4. Concurrent languages... 5 5. Problems with concurrency... 6 6. Process Interactions... 7 7. Low-level Concurrency

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Appendix H Unified Modeling Language (UML) Preview The Unified Modeling Language (UML) is an object-oriented modeling language sponsored by the Object Management Group (OMG) and published as a standard

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 15: Refining Analysis Relationships Department of Computer Engineering Sharif University of Technology 1 Refining Analysis Relationships Relationships in analysis are converted

More information

Object Oriented System Development

Object Oriented System Development Object Oriented System Development Ratna Wardani Semester Genap, 2012 2/26/2012 Ratna W/PSBO2012 1 About This Course It shows how to apply OOAD technique to analyze and develop systems.. It gives you an

More information

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 06 Object-Oriented Analysis and Design Welcome

More information

Element: Relations: Topology: no constraints.

Element: Relations: Topology: no constraints. The Module Viewtype The Module Viewtype Element: Elements, Relations and Properties for the Module Viewtype Simple Styles Call-and-Return Systems Decomposition Style Uses Style Generalization Style Object-Oriented

More information

Hippo Software BPMN and UML Training

Hippo Software BPMN and UML Training Hippo Software BPMN and UML Training Icon Key: www.hippo-software.co.uk Teaches theory concepts and notation Teaches practical use of Enterprise Architect Covers BPMN, UML, SysML, ArchiMate Includes paper

More information

Lecture Notes on Programming Languages

Lecture Notes on Programming Languages Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered

More information

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 Network Working Group Request for Comments: 969 David D. Clark Mark L. Lambert Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 1. STATUS OF THIS MEMO This RFC suggests a proposed protocol

More information

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram Modeling with UML A language or notation intended for analyzing, describing and documenting all aspects of the object-oriented software system. UML uses graphical notations to express the design of software

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

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

(Refer Slide Time: 1:40)

(Refer Slide Time: 1:40) Computer Architecture Prof. Anshul Kumar Department of Computer Science and Engineering, Indian Institute of Technology, Delhi Lecture - 3 Instruction Set Architecture - 1 Today I will start discussion

More information