Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur ABSTRACT Admission Process Management System Admission Process management system is computerized and convenient system. Since, the present system is manual all the work is done in papers and ink by hand so it is much costly and difficult to use and to operate and it is also time consuming. So our automated computerized student admission process management system is much feasible, in cost, time, and efforts as compare to the previous manual system. It is economically feasible, it will only require a single operator to operate the system, who is responsible for entering the data into the database via a user interface provided to him, who can also able to show all the data in html tabular form so to provide information regarding the students who are either taken admission or to take admission, since it requires only a single person to operate the whole system thus reduces the cost to operate the system. It is technically feasible, since the whole system is designed into the latest technologies like ASP.NET and MS Access and SQL Server which are the most recent technologies to develop web based systems and design databases. It uses the latest hardware technologies like P4 Systems so easy to operate. It is Behavioral feasible, since the system is providing a attractive user interface to the operator/end user, so he feel very easy to work onto it. Response to operator/end user is very fast and very good. Since, as we mentioned above that it requires much less amount of cost, it uses computer work so it is very fast to operate and it is very easy for user to work on it. 1
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur 1. Lab Objective • What is UML • Why the UML is necessary • How to represent UML components in diagrams 2. Tool used • EDRAW 5 3. Lab Description The Unified Modeling Language (UML) is a visual modeling language that enables system builders to create blueprints that capture their visions in a standard, easy-to-understand way, and provides a mechanism to effectively share and communicate these visions with others. The purpose of the diagrams is to- 1. Present multiple views of a system; 2. This set of multiple views is called a model. 3. UML model describes what a system is supposed to do. 4. It doesn’t tell how to implement the system. The Major nine Diagrams are: 1. Class Diagram 2. Object Diagram 3. Use Case 4. Sequence 5. Collaboration 6. State Chart 7. Activity 8. Component 9. Deployment 2
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Class Diagram – The UML Class diagram is a graphical notation used to construct and visualize object oriented systems. A UML class diagram is made up of: o A set of classes and o A set of relationships between classes A class with three sections. • The upper part holds the name of the class • The middle part contains the attributes of the class • The bottom part gives the methods or operations the class can take or undertake What is a class? A class in an object oriented system provides a crisp abstraction of a well defined set of responsibilities. The class diagram is the main building block in object oriented modelling. It is used both for general conceptual modelling of the systematics of the application, and for detailed modelling translating the models into programming code. The classes in a class diagram represent both the main objects and or interactions in the application and the objects to be programmed A class is a category or group of things that have the same attributes and the same behaviors. A rectangle is the icon that represents the class. It’s divided into three areas The uppermost area contains the name, the middle area holds the attributes, and the lowest area holds the operations. i.e. Anything in the class of washing machines has attributes such as brand name, model, serial number, and capacity. Behaviors for things in this class include the operations “accept clothes,” “accept detergent,” “turn on,” and “turn off.” A class consists of three parts: Class Name: • The name of the class appears in the first partition. Class Attributes: • Attributes are shown in the second partition. • The attribute type is shown after the colon. • Attributes map onto member variables (data members) • in code. 3
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Class Operations (Methods): • Operations are shown in the third partition. They are services the class provides. • The return type of a method is shown after the colon at the end of the method signature. • The return type of method parameters are shown after the colon following the parameter name. • Operations map onto class methods in code Visibility and Access for attributes and operations of a class The +, - and # symbols before an attribute and operation name in a class denote the visibility of the attribute and operation. + denotes public attributes or operations - denotes private attributes or operations # denotes protected attributes or operations We can observe that • attribute1 and op1 of MyClassName are public • attribute3 and op3 are protected. • attribute2 and op2 are private. Relationships between classes A Link is the basic relationship among objects. It is represented as a line connecting two or more object boxes. It can be shown on an object diagram or class diagram. A link is an instance of an association. In other words, it creates a relationship between two classes. A class may be involved in one or more relationships with other classes. Inheritance (or Generalization) • Represents an “is-a” relationship. • An abstract class name is shown in italics. • SubClass1 and SubClass2 are specializations of SuperClass. 4
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Association An association represents a family of links. Binary associations (with two ends) are normally represented as a line, with each end connected to a class box. Higher order associations can be drawn with more than two ends. In such cases, the ends are connected to a central diamond.An association can be named, and the ends of an association can be adorned with role names, ownership indicators, multiplicity, visibility, and other properties. • Simple association: o A structural link between two peer classes. o There is an association between Class1 and Class2 • Aggregation: Aggregation is a variant of the "has a" or association relationship; aggregation is more specific than association. It is an association that represents a part-whole or part-of relationship. As a type of association, an aggregation can be named and have the same adornments that an association can. However, an aggregation may not involve more than two classes. Aggregation can occur when a class is a collection or container of other classes, but where the contained classes do not have a strong life cycle dependency on the container—essentially, if the container is destroyed, its contents are not. A special type of association. It represents a “part-of” relationship. o Class2 is part of Class1. o Many instances (denoted by the *) of Class2 can be associated with Class1. o Objects of Class1 and Class2 have separate lifetimes 5
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur • Composition: A special type of aggregation where parts are destroyed when the whole is destroyed. Class diagram showing Composition between two classes at top and Aggregation between two classes at bottom Composition is a stronger variant of the "owns a" or association relationship; composition is more specific than aggregation. Composition usually has a strong life cycle dependency between instances of the container class and instances of the contained class(es): If the container is destroyed, normally every instance that it contains is destroyed as well. (Note that a part can (where allowed) be removed from a composite before the composite is deleted, and thus not be deleted as part of the composite.) o Objects of Class2 live and die with Class1. o Class2 cannot stand by itself. Differences between Composition and Aggregation When attempting to represent real-world whole-part relationships, e.g., an engine is part of a car, the composition relationship is most appropriate. However, when representing a software or database relationship, e.g., car model engine ENG01 is part of a car model CM01, an aggregation relationship is best, as the engine, ENG01 may be also part of a different car model. Thus the aggregation relationship is often called "catalog" containment to distinguish it from composition's "physical" containment. • Dependency: o Exists between two classes if changes to the definition of one may cause changes to the other (but not the other way around). o Class1 depends on Class2 6
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Class Level Relationships • Generalization Class diagram showing generalization between one superclass and two subclasses The Generalization relationship ("is a") indicates that one of the two related classes (the subclass) is considered to be a specialized form of the other (the super type) and superclass is considered as 'Generalization' of subclass. In practice, this means that any instance of the subtype is also an instance of the superclass. An exemplary tree of generalizations of this form is found in binomial nomenclature: human beings are a subclass of simian, which are a subclass of mammal, and so on. The relationship is most easily understood by the phrase 'an A is a B' (a human is a mammal, a mammal is an animal). The UML graphical representation of a Generalization is a hollow triangle shape on the superclass end of the line (or tree of lines) that connects it to one or more subtypes. The generalization relationship is also known as the inheritance or "is a" relationship. The superclass in the generalization relationship is also known as the "parent", superclass, base class, or base type. The subtype in the specialization relationship is also known as the "child", subclass, derived class, derived type, inheriting class, or inheriting type. Note that this relationship bears no resemblance to the biological parent/child relationship: the use of these terms is extremely common, but can be misleading. Generalization-Specialization relationship A is a type of B E. g. "an oak is a type of tree", "an automobile is a type of vehicle" • Realization In UML modeling, a realization relationship is a relationship between two model elements, in which one model element (the client) realizes (implements or executes) the behavior that the other model element (the supplier) specifies. A realization is indicated by a dashed line with an unfilled arrowhead towards the supplier. Realizations can only be shown on class or component diagrams. A realization is a relationship between classes, interfaces, components, and packages that connects a client element with a supplier element. A realization relationship between classes and interfaces and between components and interfaces shows that the class realizes the operations offered by the interface. 7
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Class Stereotype Descriptions Each class is associated with a stereotype that classifies it into one of three types. A short description of the three stereotypes is given below. A control class represents the persistent information in a system. A Control class models the coordination and monitor main sequencing of other objects in the system.Control classes handle the flow of control for a use-case and can therefore be seen as co-ordinating representation classes. These do not do everything in the use case, but co-ordinate with other classes that can do the work for them. A Boundary classes are responsible for communication with the user & Actor or external systems.A Boundary class represents the interaction between a system and the external world namely consisting of users and other external systems. They are identified by each actor–use- case pair on the system's use-case diagram, with one and only one boundary class existing for each pair A Entity classes model coordination and sequencing of other objects in the system. Entity classes model the information handled by the system, and sometimes the behaviour associated with the information. They should not be identified as database tables or other data- stores.An entity class represent the persistent information in a system. 8
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur 9
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Object Diagram - An object is an instance of a class—a specific thing that has specific values of the class’s attributes. The icon is a rectangle, just like the class icon, but the name is underlined. In The name of the instance begins with a lowercase letter. It’s also possible to have an anonymous object, as the icon on the right of Figure shows. This just means that you don’t supply a specific name for the object, although you do show the class it belongs to. Use Case Diagram – In many design processes, the use case diagram is the first that designers will work with when starting a project. This diagram allows for the specification of high level user goals that the system must carry out. These goals are not necessarily tasks or actions, but can be more general required functionality of the system. A use case is a description of a system’s behavior from a user’s standpoint. For system developers, the use case is a valuable tool: It’s a tried-and-true technique for gathering system requirements from a user’s point of view. Obtaining information from the user’s point of view is important if the goal is to build a system that real people can use. Use Case More formally, a use case is made up of a set of scenarios. Each scenario is a sequence of steps that encompass an interaction between a user and a system. The use case brings scenarios together that accomplish a specific goal of the user. A use case can be specified by textually describing the steps required and any alternative actions at each step. For example, the use case for searching a web for a keyword might be shown as: 1. Customer enters the keyword 2. Customer clicks the search button 3. The search is executed 4. The results are shown Alternative: Search Failed If the search fails at 3, then the user is redirected back to the search screen at step 1 10
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur In Visual Case, you can specify the steps of a use case in its description field. Simply right-click on a use case and select properties. You can then run a report and print or export the results to html or ascii text. Together, the report and the diagrams will include all of the details of the use case - their specific scenarios and the actors that carry them out. Actor The use case diagram allows a designer to graphically show these use cases and the actors that use them. An actor is a role that a user plays in the system. It is important to distinguish between a user and an actor (better thought of as a role). A user of the system may play several different roles through the course of his, her or its job (since an actor may be another system). Examples of actors are salesperson, manager, support person, and web store system. It is possible that the same person may be a sales person and also provide support. When creating a use case model, we are not concerned with the individuals, only the roles that they play. Associations On a use case diagram, associations are drawn between actors and use cases to show that an actor carries out a use case. A use case can be carried out by many actors and an actor may carry out many use cases. In the above diagram, the actors are shown as the green stick figure shapes on the left, the use cases are the blue ellipses, and the associations between them are represented by the connecting lines. The developer and the stakeholder both are responsible for specifying the system roles, but only the developer creates the model. Includes Use cases can also be related to each other with three different links. The diagram below shows the use of the includes link. Both invoice purchase and online purchase include the scenarios defined by purchase valuation. In general, the includes link is to avoid repetition of scenarios in multiple use cases. 11
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Generalization When a use case describes a variation on another use case, use a generalization link. In the example below, the use case limit exceeded describes a situation in which the usual scenario of online purchase is not performed. Use cases that generalize another use case should only specify an alternative, even exceptional, scenario to the use case being generalized. The overall goal of the use cases should be the same. Extends In some instances you want to describe a variation on behaviour in a more controlled form. In such instances you can define extension points in the extended use case. In the example below, search by name is said to extend search at the name extension point. The extends link is more controlled than the generalization link in that functionality can only be added at the extension points. Putting it all Together When starting a use case model, it is very important to keep it simple. Often it is easiest to first determine the actors of the system, and then flush out the use cases that they perform. Your use case diagrams can be as simple or complex as you wish, however simpler, less cluttered diagrams are easier to understand, and are often more powerful in capturing the tasks of the system. In Visual Case, you can explode a use case into a new use case diagram. For example, the use case online purchase may require further specification as you move into the design. You can create a sub-diagram within any use case to help clarify and understand the tasks involved. Remember that a use case represents a goal of a user, not an atomic programming operation. Your use case design should be simple and help to clarify the user's goals and expectations for the system. 12
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Use Case Diagram Sequence Diagram – Class and object diagrams are static model views. Interaction diagrams are dynamic. They describe how objects collaborate. UML sequence diagrams are used to represent or model the flow of messages, events and actions between the objects or components of a system. Time is represented in the vertical direction showing the sequence of interactions of the header elements, which are displayed horizontally at the top of the diagram. Sequence Diagrams are used primarily to design, document and validate the architecture, interfaces and logic of the system by describing the sequence of actions that need to be performed to complete a task or scenario. UML sequence diagrams are useful design tools because they provide a dynamic view of the system behavior which can be difficult to extract from static diagrams or specifications. 13
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Although UML sequence diagrams are typically used to describe object-oriented software systems, they are also extremely useful as system engineering tools to design system architectures, in business process engineering as process flowdiagrams, as message sequence charts and call flows for telecom/wireless system design, and for protocol stack design and analysis. A sequence diagram is an interaction diagram that details how operations are carried out -- what messages are sent and when. Sequence diagrams are organized according to time. The time progresses as you go down the page. The objects involved in the operation are listed from left to right according to when they take part in the message sequence. Objects interact with one another, and these interactions occur over time. The UML sequence diagram shows the time-based dynamics of the interaction Sequence Diagram Header Elements The header portion of the sequence diagram represents the components or objects of the system being modeled and are laid out horizontally at the top of the diagram. See an example sequence diagram here. 14
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur 15
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Use case elaboration. Usage scenarios describe a way the system may be used by its actors. The UML sequence diagram can be used to flesh out the details of one or more use cases by illustrating visually how the system will behave in a particular scenario. The use cases along with their corresponding sequence diagrams describe the expected behavior of the system and form a strong foundation for the development of system architectures with robust interfaces. Distributed & web-based systems. When a system consists of distributed components (such as a client communicating with one or more servers over the Internet), sequence diagrams can be used to document and validate the architecture, interfaces and logic of each of these components for a set of usage scenarios. Complex logic. UML sequence diagrams are often used to model the logic of a complex feature by showing the interactions between the various objects that collaborate to implement each scenario. Modeling multiple scenarios showing different aspects of the feature helps developers take into account special cases during implementation. State machines. Sequence diagram editor makes it so easy to edit your sequence diagrams that you could even make the corrections in real time during the meeting and instantly see the result of the changes as you make them. Complex interactions between components. Sequence diagrams are often used to design the interactions between components of a system that need to work together to accomplish a task. They are particularly useful when the components are being developed in parallel by different teams (typical in wireless and telephony 16
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur systems) because they support the design of robust interfaces that cover multiple scenarios and special cases. Collaboration tool- Sequence diagrams are valuable collaboration tools during design meetings because they allow you to discuss the design in concrete terms. You can see the interactions between entities, various proposed state transitions and alternate courses/special cases on paper as you discuss the design. Sequence diagram editor makes it so easy to edit your sequence diagrams that you could even make the corrections in real time during the meeting and instantly see the result of the changes as you make them. 17
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Documentation- Sequence diagrams can be used to document the dynamic view of the system design at various levels of abstraction, which is often difficult to extract from static diagrams or even the complete source code. The diagrams can abstract much of the implementation detail and provide a high level view of system behavior. Collaboration Diagrams Class and object diagrams are static model views. Interaction diagrams are dynamic. They describe how objects collaborate. With interaction diagram, we introduce the notion of time. Collaboration diagrams represent objects in a system an their associations. Collaboration diagrams show a sequence of activities between specific items. This is where one shows the messages or actions that can be performed on the classes--and which other classes or users perform them. Also, collaboration diagrams show an example sequence between specific actions. Each occurrence of a specific class may be labled with a name They are composed of three elements: o Objects o Associations o Messages Object Interaction diagrams depict dynamic, run-time behavior • communication between objects via messages • sequence of transactions in a dialog between a user and a system • one trace of behavior is ideally one use case Both diagrams are illustrate interaction. • Sequence is used to illustrate temporal interactions. • Collaboration is better suited to display the association between the objects. • Given enough information, a sequence diagram can be converted into a collaboration diagrams (and vice-versa). Collaboration Diagram Semantics - o Member of the Behavioural Group of diagrams as well as Sequence, Statechart, and Activity diagrams o Behavioural description includes static - structural description on the participants dynamic - description on the execution of the actions o Collaboration set of participants and interactions which are meaningful in a c ontext o Purpose models the exchange of messages between objects to achieve something o Can be attached to: 18
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur operation or use case class o Parameterised collaboration can be reused & can assist in defining the structural aspects of a design pattern Collaboration Diagram Notation - o Represents a Collaboration and Interaction o Collaboration set of objects and their interactions in a specific context o Interaction set of messages exchanged in a collaboration to produce a desired result o Objects rectangles containing the object signature object signature: object name : object Class o object name (optional) – starts with lowercase letter o class name (mandatory) – starts with uppercase letter objects connected by lines user (stick man) can appear o Messages are labelled like C and Java function calls o followed by round brackets, and can have parameters and return values are followed by an arrow to show direction internal messages are numbered, starting from 1 Collaboration Diagram Issues - o Message Signature guard o condition applied to the message in square brackets at the start of the signature sequence number o numbers separated by dots, ending in a colon return value o name followed by := operation name argument list o names separated by commas, within round brackets o Types of message flows synchronous, asynchronous, simple o Multiplicity of objects how can messages sent to a multiplicity (e.g., an array) of objects be Communication Diagram - Both the sequence diagram and the communication diagram show interactions among objects. For this reason, the UML refers to them collectively as interaction diagrams. 19
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Each arrow represents a message that goes from one object to another. Time, in this diagram, proceeds from top to bottom. So the first message is timeSoak (), which the timer sends to itself. The second message is sendWater (), which the timer sends to the water pipe. The final message, stopRotating (), goes from the timer to the drum. Activity Diagram Activity diagram is another important diagram in UML to describe dynamic aspects of the system.The activities that occur within a use case or within an object’s behavior typically occur in a sequence is represented by the activity diagram Activity diagram is basically a flow chart to represent the flow form one activity to another activity. The activity can be described as an operation of the system.So the control flow is drawn from one operation to another. This flow can be sequential, branched or concurrent. Activity diagrams deals with all type of flow control by using different elements like fork, join etc. Purpose: The basic purposes of activity diagrams are similar to other four diagrams. It captures the dynamic behaviour of the system. Other four diagrams are used to show the message flow from one object to another but activity diagram is used to show message flow from one activity to another. Activity is a particular operation of the system. Activity diagrams are not only used for visualizing dynamic nature of a system but they are also used to construct the executable system by using forward and reverse engineering techniques. The only missing thing in activity diagram is the message part. It does not show any message flow from one activity to another. Activity diagram is some time considered as the flow chart. Although the diagrams looks like a flow chart but it is not. It shows different flow like parallel, branched, concurrent and single. So the purposes can be described as: • Draw the activity flow of a system. • Describe the sequence from one activity to another. • Describe the parallel, branched and concurrent flow of the system. How to draw Activity Diagram? Activity diagrams are mainly used as a flow chart consists of activities performed by the system. But activity diagram are not exactly a flow chart as they have some additional capabilities. These additional capabilities include branching, parallel flow, swimlane etc. The main element of an activity diagram is the activity itself. An activity is a function performed by the system. After identifying the activities we need to understand how they are associated with constraints and conditions. So before drawing an activity diagram we should identify the following elements: 20
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur • Activities • Association • Conditions • Constraints The following is an example of an activity diagram for Admission Process management system. In the diagram four activities are identified which are associated with conditions. One important point should be clearly understood that an activity diagram cannot be exactly matched with the code. The activity diagram is made to understand the flow of activities and mainly used by the business users. The following diagram is drawn with the four main activities: • Admission request by student • Receipt of the Application • Confirm Application • Dispatch order After receiving the order request condition checks are performed to check if it is normal or special order. After the type of order is identified dispatch activity is performed and that is marked as the termination of the process. Where to use Activity Diagrams? The basic usage of activity diagram is similar to other four UML diagrams. The specific usage is to model the control flow from one activity to another. This control flow does not include messages. The activity diagram is suitable for modeling the activity flow of the system. An application can have multiple systems. Activity diagram also captures these systems and describes flow from one system to another. This specific usage is not available in other diagrams. These systems can be database, external queues or any other system. Now we will look into the practical applications of the activity diagram. From the above discussion it is clear that an activity diagram is drawn from a very high level. So it gives high level view of a system. This high level view is mainly for business users or any other person who is not a technical person. This diagram is used to model the activities which are nothing but business requirements. So the diagram has more impact on business understanding rather implementation details. Following are the main usages of activity diagram: • Modeling work flow by using activities. • Modeling business requirements. • High level understanding of the system's functionalities. • Investigate business requirements at a later stage. 21
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Statechart Diagram The name of the diagram itself clarifies the purpose of the diagram and other details. It describes different states of a component in a system. The states are specific to a component/object of a system. A Statechart diagram describes a state machine. Now to clarify it state machine can be defined as a machine which defines different states of an object and these states are controlled by external or internal events. Activity diagram explained in next chapter, is a special kind of a Statechart diagram. As Statechart diagram defines states it is used to model lifetime of an object. Purpose: Statechart diagram is one of the five UML diagrams used to model dynamic nature of a system. They define different states of an object during its lifetime. And these states are changed by events. So Statechart diagrams are useful to model reactive systems. Reactive systems can be defined as a system that responds to external or internal events. Statechart diagram describes the flow of control from one state to another state. States are defined as a condition in which an object exists and it changes when some event is triggered. So 22
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur the most important purpose of Statechart diagram is to model life time of an object from creation to termination. Statechart diagrams are also used for forward and reverse engineering of a system. But the main purpose is to model reactive system. Following are the main purposes of using Statechart diagrams: • To model dynamic aspect of a system. • To model life time of a reactive system. • To describe different states of an object during its life time. • Define a state machine to model states of an object. How to draw Statechart Diagram? Statechart diagram is used to describe the states of different objects in its life cycle. So the emphasis is given on the state changes upon some internal or external events. These states of objects are important to analyze and implement them accurately. Statechart diagrams are very important for describing the states. States can be identified as the condition of objects when a particular event occurs. Before drawing a Statechart diagram we must have clarified the following points: • Identify important objects to be analyzed. • Identify the states. • Identify the events. A Statechart diagram where the state of Order object is analyzed. The first state is an idle state from where the process starts. The next states are arrived for events like send request, confirm request, and dispatch order. These events are responsible for state changes of order object. The initial and final state of an object is also shown below. Where to use Statechart Diagrams? From the above discussion we can define the practical applications of a Statechart diagram. Statechart diagrams are used to model dynamic aspect of a system like other four diagrams disused in this tutorial. But it has some distinguishing characteristics for modeling dynamic nature. Statechart diagram defines the states of a component and these state changes are dynamic in nature. So its specific purpose is to define state changes triggered by events. Events are internal or external factors influencing the system. Statechart diagrams are used to model states and also events operating on the system. When implementing a system it is very important to clarify different states of an object during its life time and statechart diagrams are used for this purpose. When these states and events are identified they are used to model it and these models are used during implementation of the system. 23
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur If we look into the practical implementation of Statechart diagram then it is mainly used to analyze the object states influenced by events. This analysis is helpful to understand the system behaviour during its execution. So the main usages can be described as: • To model object states of a system. • To model reactive system. Reactive system consists of reactive objects. • To identify events responsible for state changes. • Forward and reverse engineering. At any given time, an object is in a particular state. This transition from one state to the next state is represented by state diagram.i.e A person can be a newborn, infant, child, adolescent, teenager, or adult. An elevator is either moving or stationary. A washing machine can be either in the soaking, washing, rinsing, spinning, or off state. The symbol at the top of the figure represents the start state and the symbol at the bottom represents the end state. 24
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Component Diagram Component diagram is a special kind of diagram in UML. The purpose is also different from all other diagrams discussed so far. It does not describe the functionality of the system but it describes the components used to make those functionalities. So from that point component diagrams are used to visualize the physical components in a system. These components are libraries, packages, files etc. Component diagrams can also be described as a static implementation view of a system. Static implementation represents the organization of the components at a particular moment. A single component diagram cannot represent the entire system but a collection of diagrams are used to represent the whole. So the purpose of the component diagram can be summarized as: • Visualize the components of a system. • Construct executables by using forward and reverse engineering. • Describe the organization and relationships of the components. How to draw Component Diagram? Component diagrams are used to describe the physical artifacts of a system. This artifact includes files, executables, libraries etc. So the purpose of this diagram is different, Component diagrams are used during the implementation phase of an application. But it is prepared well in advance to visualize the implementation details. Initially the system is designed using different UML diagrams and then when the artifacts are ready component diagrams are used to get an idea of the implementation. This diagram is very important because without it the application cannot be implemented efficiently. A well prepared component diagram is also important for other aspects like application performance, maintenance etc. So before drawing a component diagram the following artifacts are to be identified clearly: • Files used in the system. • Libraries and other artifacts relevant to the application. • Relationships among the artifacts. Now after identifying the artifacts the following points needs to be followed: • Use a meaningful name to identify the component for which the diagram is to be drawn. • Prepare a mental layout before producing using tools. • Use notes for clarifying important points. 25
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Where to use Component Diagrams? We have already described that component diagrams are used to visualize the static implementation view of a system. Component diagrams are special type of UML diagrams used for different purposes. These diagrams show the physical components of a system. To clarify it, we can say that component diagrams describe the organization of the components in a system. Organization can be further described as the location of the components in a system. These components are organized in a special way to meet the system requirements. As we have already discussed those components are libraries, files, executables etc. Now before implementing the application these components are to be organized. This component organization is also designed separately as a part of project execution. Component diagrams are very important from implementation perspective. So the implementation team of an application should have a proper knowledge of the component details. Now the usage of component diagrams can be described as: • Model the components of a system. • Model database schema. • Model executables of an application. • Model system's source code. 26
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Deployment Diagram Overview: Deployment diagrams are used to visualize the topology of the physical components of a system where the software components are deployed. So deployment diagrams are used to describe the static deployment view of a system. Deployment diagrams consist of nodes and their relationships. Purpose: The name Deployment itself describes the purpose of the diagram. Deployment diagrams are used for describing the hardware components where software components are deployed. Component diagrams and deployment diagrams are closely related. Component diagrams are used to describe the components and deployment diagrams shows how they are deployed in hardware. UML is mainly designed to focus on software artifacts of a system. But these two diagrams are special diagrams used to focus on software components and hardware components. So most of the UML diagrams are used to handle logical components but deployment diagrams are made to focus on hardware topology of a system. Deployment diagrams are used by the system engineers. The purpose of deployment diagrams can be described as: • Visualize hardware topology of a system. • Describe the hardware components used to deploy software components. • Describe runtime processing nodes. How to draw Deployment Diagram? Deployment diagram represents the deployment view of a system. It is related to the component diagram. Because the components are deployed using the deployment diagrams. A deployment diagram consists of nodes. Nodes are nothing but physical hardwares used to deploy the application. Deployment diagrams are useful for system engineers. An efficient deployment diagram is very important because it controls the following parameters • Performance • Scalability • Maintainability • Portability So before drawing a deployment diagram the following artifacts should be identified: 27
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur • Nodes • Relationships among nodes The following deployment diagram is a sample to give an idea of the deployment view of order management system. Here we have shown nodes as: • Monitor • Modem • Caching server • Server The application is assumed to be a web based application which is deployed in a clustered environment using server 1, server 2 and server 3. The user is connecting to the application using internet. The control is flowing from the caching server to the clustered environment. So the following deployment diagram has been drawn considering all the points mentioned above: Where to use Deployment Diagrams? Deployment diagrams are mainly used by system engineers. These diagrams are used to describe the physical components (hardwares), their distribution and association. To clarify it in details we can visualize deployment diagrams as the hardware components/nodes on which software components reside. 28
Harsh Kishore Mishra B.Tech. IT, IIMET Jaipur Software applications are developed to model complex business processes. Only efficient software applications are not sufficient to meet business requirements. Business requirements can be described as to support increasing number of users, quick response time etc. To meet these types of requirements hardware components should be designed efficiently and in a cost effective way. Now a day's software applications are very complex in nature. Software applications can be stand alone, web based, distributed, mainframe based and many more. So it is very important to design the hardware components efficiently. So the usage of deployment diagrams can be described as follows: • To model the hardware topology of a system. • To model embedded system. • To model hardware details for a client/server system. • To model hardware details of a distributed application. • Forward and reverse engineering Component diagrams are different in terms of nature and behaviour. Component diagrams are used to model physical aspects of a system. Now the question is what are these physical aspects? Physical aspects are the elements like executables, libraries, files, documents etc which resides in a node. So component diagrams are used to visualize the organization and relationships among components in a system. These diagrams are also used to make executable systems. 29

Software Testing and UML Lab

  • 1.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur ABSTRACT Admission Process Management System Admission Process management system is computerized and convenient system. Since, the present system is manual all the work is done in papers and ink by hand so it is much costly and difficult to use and to operate and it is also time consuming. So our automated computerized student admission process management system is much feasible, in cost, time, and efforts as compare to the previous manual system. It is economically feasible, it will only require a single operator to operate the system, who is responsible for entering the data into the database via a user interface provided to him, who can also able to show all the data in html tabular form so to provide information regarding the students who are either taken admission or to take admission, since it requires only a single person to operate the whole system thus reduces the cost to operate the system. It is technically feasible, since the whole system is designed into the latest technologies like ASP.NET and MS Access and SQL Server which are the most recent technologies to develop web based systems and design databases. It uses the latest hardware technologies like P4 Systems so easy to operate. It is Behavioral feasible, since the system is providing a attractive user interface to the operator/end user, so he feel very easy to work onto it. Response to operator/end user is very fast and very good. Since, as we mentioned above that it requires much less amount of cost, it uses computer work so it is very fast to operate and it is very easy for user to work on it. 1
  • 2.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur 1. Lab Objective • What is UML • Why the UML is necessary • How to represent UML components in diagrams 2. Tool used • EDRAW 5 3. Lab Description The Unified Modeling Language (UML) is a visual modeling language that enables system builders to create blueprints that capture their visions in a standard, easy-to-understand way, and provides a mechanism to effectively share and communicate these visions with others. The purpose of the diagrams is to- 1. Present multiple views of a system; 2. This set of multiple views is called a model. 3. UML model describes what a system is supposed to do. 4. It doesn’t tell how to implement the system. The Major nine Diagrams are: 1. Class Diagram 2. Object Diagram 3. Use Case 4. Sequence 5. Collaboration 6. State Chart 7. Activity 8. Component 9. Deployment 2
  • 3.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Class Diagram – The UML Class diagram is a graphical notation used to construct and visualize object oriented systems. A UML class diagram is made up of: o A set of classes and o A set of relationships between classes A class with three sections. • The upper part holds the name of the class • The middle part contains the attributes of the class • The bottom part gives the methods or operations the class can take or undertake What is a class? A class in an object oriented system provides a crisp abstraction of a well defined set of responsibilities. The class diagram is the main building block in object oriented modelling. It is used both for general conceptual modelling of the systematics of the application, and for detailed modelling translating the models into programming code. The classes in a class diagram represent both the main objects and or interactions in the application and the objects to be programmed A class is a category or group of things that have the same attributes and the same behaviors. A rectangle is the icon that represents the class. It’s divided into three areas The uppermost area contains the name, the middle area holds the attributes, and the lowest area holds the operations. i.e. Anything in the class of washing machines has attributes such as brand name, model, serial number, and capacity. Behaviors for things in this class include the operations “accept clothes,” “accept detergent,” “turn on,” and “turn off.” A class consists of three parts: Class Name: • The name of the class appears in the first partition. Class Attributes: • Attributes are shown in the second partition. • The attribute type is shown after the colon. • Attributes map onto member variables (data members) • in code. 3
  • 4.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Class Operations (Methods): • Operations are shown in the third partition. They are services the class provides. • The return type of a method is shown after the colon at the end of the method signature. • The return type of method parameters are shown after the colon following the parameter name. • Operations map onto class methods in code Visibility and Access for attributes and operations of a class The +, - and # symbols before an attribute and operation name in a class denote the visibility of the attribute and operation. + denotes public attributes or operations - denotes private attributes or operations # denotes protected attributes or operations We can observe that • attribute1 and op1 of MyClassName are public • attribute3 and op3 are protected. • attribute2 and op2 are private. Relationships between classes A Link is the basic relationship among objects. It is represented as a line connecting two or more object boxes. It can be shown on an object diagram or class diagram. A link is an instance of an association. In other words, it creates a relationship between two classes. A class may be involved in one or more relationships with other classes. Inheritance (or Generalization) • Represents an “is-a” relationship. • An abstract class name is shown in italics. • SubClass1 and SubClass2 are specializations of SuperClass. 4
  • 5.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Association An association represents a family of links. Binary associations (with two ends) are normally represented as a line, with each end connected to a class box. Higher order associations can be drawn with more than two ends. In such cases, the ends are connected to a central diamond.An association can be named, and the ends of an association can be adorned with role names, ownership indicators, multiplicity, visibility, and other properties. • Simple association: o A structural link between two peer classes. o There is an association between Class1 and Class2 • Aggregation: Aggregation is a variant of the "has a" or association relationship; aggregation is more specific than association. It is an association that represents a part-whole or part-of relationship. As a type of association, an aggregation can be named and have the same adornments that an association can. However, an aggregation may not involve more than two classes. Aggregation can occur when a class is a collection or container of other classes, but where the contained classes do not have a strong life cycle dependency on the container—essentially, if the container is destroyed, its contents are not. A special type of association. It represents a “part-of” relationship. o Class2 is part of Class1. o Many instances (denoted by the *) of Class2 can be associated with Class1. o Objects of Class1 and Class2 have separate lifetimes 5
  • 6.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur • Composition: A special type of aggregation where parts are destroyed when the whole is destroyed. Class diagram showing Composition between two classes at top and Aggregation between two classes at bottom Composition is a stronger variant of the "owns a" or association relationship; composition is more specific than aggregation. Composition usually has a strong life cycle dependency between instances of the container class and instances of the contained class(es): If the container is destroyed, normally every instance that it contains is destroyed as well. (Note that a part can (where allowed) be removed from a composite before the composite is deleted, and thus not be deleted as part of the composite.) o Objects of Class2 live and die with Class1. o Class2 cannot stand by itself. Differences between Composition and Aggregation When attempting to represent real-world whole-part relationships, e.g., an engine is part of a car, the composition relationship is most appropriate. However, when representing a software or database relationship, e.g., car model engine ENG01 is part of a car model CM01, an aggregation relationship is best, as the engine, ENG01 may be also part of a different car model. Thus the aggregation relationship is often called "catalog" containment to distinguish it from composition's "physical" containment. • Dependency: o Exists between two classes if changes to the definition of one may cause changes to the other (but not the other way around). o Class1 depends on Class2 6
  • 7.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Class Level Relationships • Generalization Class diagram showing generalization between one superclass and two subclasses The Generalization relationship ("is a") indicates that one of the two related classes (the subclass) is considered to be a specialized form of the other (the super type) and superclass is considered as 'Generalization' of subclass. In practice, this means that any instance of the subtype is also an instance of the superclass. An exemplary tree of generalizations of this form is found in binomial nomenclature: human beings are a subclass of simian, which are a subclass of mammal, and so on. The relationship is most easily understood by the phrase 'an A is a B' (a human is a mammal, a mammal is an animal). The UML graphical representation of a Generalization is a hollow triangle shape on the superclass end of the line (or tree of lines) that connects it to one or more subtypes. The generalization relationship is also known as the inheritance or "is a" relationship. The superclass in the generalization relationship is also known as the "parent", superclass, base class, or base type. The subtype in the specialization relationship is also known as the "child", subclass, derived class, derived type, inheriting class, or inheriting type. Note that this relationship bears no resemblance to the biological parent/child relationship: the use of these terms is extremely common, but can be misleading. Generalization-Specialization relationship A is a type of B E. g. "an oak is a type of tree", "an automobile is a type of vehicle" • Realization In UML modeling, a realization relationship is a relationship between two model elements, in which one model element (the client) realizes (implements or executes) the behavior that the other model element (the supplier) specifies. A realization is indicated by a dashed line with an unfilled arrowhead towards the supplier. Realizations can only be shown on class or component diagrams. A realization is a relationship between classes, interfaces, components, and packages that connects a client element with a supplier element. A realization relationship between classes and interfaces and between components and interfaces shows that the class realizes the operations offered by the interface. 7
  • 8.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Class Stereotype Descriptions Each class is associated with a stereotype that classifies it into one of three types. A short description of the three stereotypes is given below. A control class represents the persistent information in a system. A Control class models the coordination and monitor main sequencing of other objects in the system.Control classes handle the flow of control for a use-case and can therefore be seen as co-ordinating representation classes. These do not do everything in the use case, but co-ordinate with other classes that can do the work for them. A Boundary classes are responsible for communication with the user & Actor or external systems.A Boundary class represents the interaction between a system and the external world namely consisting of users and other external systems. They are identified by each actor–use- case pair on the system's use-case diagram, with one and only one boundary class existing for each pair A Entity classes model coordination and sequencing of other objects in the system. Entity classes model the information handled by the system, and sometimes the behaviour associated with the information. They should not be identified as database tables or other data- stores.An entity class represent the persistent information in a system. 8
  • 9.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur 9
  • 10.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Object Diagram - An object is an instance of a class—a specific thing that has specific values of the class’s attributes. The icon is a rectangle, just like the class icon, but the name is underlined. In The name of the instance begins with a lowercase letter. It’s also possible to have an anonymous object, as the icon on the right of Figure shows. This just means that you don’t supply a specific name for the object, although you do show the class it belongs to. Use Case Diagram – In many design processes, the use case diagram is the first that designers will work with when starting a project. This diagram allows for the specification of high level user goals that the system must carry out. These goals are not necessarily tasks or actions, but can be more general required functionality of the system. A use case is a description of a system’s behavior from a user’s standpoint. For system developers, the use case is a valuable tool: It’s a tried-and-true technique for gathering system requirements from a user’s point of view. Obtaining information from the user’s point of view is important if the goal is to build a system that real people can use. Use Case More formally, a use case is made up of a set of scenarios. Each scenario is a sequence of steps that encompass an interaction between a user and a system. The use case brings scenarios together that accomplish a specific goal of the user. A use case can be specified by textually describing the steps required and any alternative actions at each step. For example, the use case for searching a web for a keyword might be shown as: 1. Customer enters the keyword 2. Customer clicks the search button 3. The search is executed 4. The results are shown Alternative: Search Failed If the search fails at 3, then the user is redirected back to the search screen at step 1 10
  • 11.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur In Visual Case, you can specify the steps of a use case in its description field. Simply right-click on a use case and select properties. You can then run a report and print or export the results to html or ascii text. Together, the report and the diagrams will include all of the details of the use case - their specific scenarios and the actors that carry them out. Actor The use case diagram allows a designer to graphically show these use cases and the actors that use them. An actor is a role that a user plays in the system. It is important to distinguish between a user and an actor (better thought of as a role). A user of the system may play several different roles through the course of his, her or its job (since an actor may be another system). Examples of actors are salesperson, manager, support person, and web store system. It is possible that the same person may be a sales person and also provide support. When creating a use case model, we are not concerned with the individuals, only the roles that they play. Associations On a use case diagram, associations are drawn between actors and use cases to show that an actor carries out a use case. A use case can be carried out by many actors and an actor may carry out many use cases. In the above diagram, the actors are shown as the green stick figure shapes on the left, the use cases are the blue ellipses, and the associations between them are represented by the connecting lines. The developer and the stakeholder both are responsible for specifying the system roles, but only the developer creates the model. Includes Use cases can also be related to each other with three different links. The diagram below shows the use of the includes link. Both invoice purchase and online purchase include the scenarios defined by purchase valuation. In general, the includes link is to avoid repetition of scenarios in multiple use cases. 11
  • 12.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Generalization When a use case describes a variation on another use case, use a generalization link. In the example below, the use case limit exceeded describes a situation in which the usual scenario of online purchase is not performed. Use cases that generalize another use case should only specify an alternative, even exceptional, scenario to the use case being generalized. The overall goal of the use cases should be the same. Extends In some instances you want to describe a variation on behaviour in a more controlled form. In such instances you can define extension points in the extended use case. In the example below, search by name is said to extend search at the name extension point. The extends link is more controlled than the generalization link in that functionality can only be added at the extension points. Putting it all Together When starting a use case model, it is very important to keep it simple. Often it is easiest to first determine the actors of the system, and then flush out the use cases that they perform. Your use case diagrams can be as simple or complex as you wish, however simpler, less cluttered diagrams are easier to understand, and are often more powerful in capturing the tasks of the system. In Visual Case, you can explode a use case into a new use case diagram. For example, the use case online purchase may require further specification as you move into the design. You can create a sub-diagram within any use case to help clarify and understand the tasks involved. Remember that a use case represents a goal of a user, not an atomic programming operation. Your use case design should be simple and help to clarify the user's goals and expectations for the system. 12
  • 13.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Use Case Diagram Sequence Diagram – Class and object diagrams are static model views. Interaction diagrams are dynamic. They describe how objects collaborate. UML sequence diagrams are used to represent or model the flow of messages, events and actions between the objects or components of a system. Time is represented in the vertical direction showing the sequence of interactions of the header elements, which are displayed horizontally at the top of the diagram. Sequence Diagrams are used primarily to design, document and validate the architecture, interfaces and logic of the system by describing the sequence of actions that need to be performed to complete a task or scenario. UML sequence diagrams are useful design tools because they provide a dynamic view of the system behavior which can be difficult to extract from static diagrams or specifications. 13
  • 14.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Although UML sequence diagrams are typically used to describe object-oriented software systems, they are also extremely useful as system engineering tools to design system architectures, in business process engineering as process flowdiagrams, as message sequence charts and call flows for telecom/wireless system design, and for protocol stack design and analysis. A sequence diagram is an interaction diagram that details how operations are carried out -- what messages are sent and when. Sequence diagrams are organized according to time. The time progresses as you go down the page. The objects involved in the operation are listed from left to right according to when they take part in the message sequence. Objects interact with one another, and these interactions occur over time. The UML sequence diagram shows the time-based dynamics of the interaction Sequence Diagram Header Elements The header portion of the sequence diagram represents the components or objects of the system being modeled and are laid out horizontally at the top of the diagram. See an example sequence diagram here. 14
  • 15.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur 15
  • 16.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Use case elaboration. Usage scenarios describe a way the system may be used by its actors. The UML sequence diagram can be used to flesh out the details of one or more use cases by illustrating visually how the system will behave in a particular scenario. The use cases along with their corresponding sequence diagrams describe the expected behavior of the system and form a strong foundation for the development of system architectures with robust interfaces. Distributed & web-based systems. When a system consists of distributed components (such as a client communicating with one or more servers over the Internet), sequence diagrams can be used to document and validate the architecture, interfaces and logic of each of these components for a set of usage scenarios. Complex logic. UML sequence diagrams are often used to model the logic of a complex feature by showing the interactions between the various objects that collaborate to implement each scenario. Modeling multiple scenarios showing different aspects of the feature helps developers take into account special cases during implementation. State machines. Sequence diagram editor makes it so easy to edit your sequence diagrams that you could even make the corrections in real time during the meeting and instantly see the result of the changes as you make them. Complex interactions between components. Sequence diagrams are often used to design the interactions between components of a system that need to work together to accomplish a task. They are particularly useful when the components are being developed in parallel by different teams (typical in wireless and telephony 16
  • 17.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur systems) because they support the design of robust interfaces that cover multiple scenarios and special cases. Collaboration tool- Sequence diagrams are valuable collaboration tools during design meetings because they allow you to discuss the design in concrete terms. You can see the interactions between entities, various proposed state transitions and alternate courses/special cases on paper as you discuss the design. Sequence diagram editor makes it so easy to edit your sequence diagrams that you could even make the corrections in real time during the meeting and instantly see the result of the changes as you make them. 17
  • 18.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Documentation- Sequence diagrams can be used to document the dynamic view of the system design at various levels of abstraction, which is often difficult to extract from static diagrams or even the complete source code. The diagrams can abstract much of the implementation detail and provide a high level view of system behavior. Collaboration Diagrams Class and object diagrams are static model views. Interaction diagrams are dynamic. They describe how objects collaborate. With interaction diagram, we introduce the notion of time. Collaboration diagrams represent objects in a system an their associations. Collaboration diagrams show a sequence of activities between specific items. This is where one shows the messages or actions that can be performed on the classes--and which other classes or users perform them. Also, collaboration diagrams show an example sequence between specific actions. Each occurrence of a specific class may be labled with a name They are composed of three elements: o Objects o Associations o Messages Object Interaction diagrams depict dynamic, run-time behavior • communication between objects via messages • sequence of transactions in a dialog between a user and a system • one trace of behavior is ideally one use case Both diagrams are illustrate interaction. • Sequence is used to illustrate temporal interactions. • Collaboration is better suited to display the association between the objects. • Given enough information, a sequence diagram can be converted into a collaboration diagrams (and vice-versa). Collaboration Diagram Semantics - o Member of the Behavioural Group of diagrams as well as Sequence, Statechart, and Activity diagrams o Behavioural description includes static - structural description on the participants dynamic - description on the execution of the actions o Collaboration set of participants and interactions which are meaningful in a c ontext o Purpose models the exchange of messages between objects to achieve something o Can be attached to: 18
  • 19.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur operation or use case class o Parameterised collaboration can be reused & can assist in defining the structural aspects of a design pattern Collaboration Diagram Notation - o Represents a Collaboration and Interaction o Collaboration set of objects and their interactions in a specific context o Interaction set of messages exchanged in a collaboration to produce a desired result o Objects rectangles containing the object signature object signature: object name : object Class o object name (optional) – starts with lowercase letter o class name (mandatory) – starts with uppercase letter objects connected by lines user (stick man) can appear o Messages are labelled like C and Java function calls o followed by round brackets, and can have parameters and return values are followed by an arrow to show direction internal messages are numbered, starting from 1 Collaboration Diagram Issues - o Message Signature guard o condition applied to the message in square brackets at the start of the signature sequence number o numbers separated by dots, ending in a colon return value o name followed by := operation name argument list o names separated by commas, within round brackets o Types of message flows synchronous, asynchronous, simple o Multiplicity of objects how can messages sent to a multiplicity (e.g., an array) of objects be Communication Diagram - Both the sequence diagram and the communication diagram show interactions among objects. For this reason, the UML refers to them collectively as interaction diagrams. 19
  • 20.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Each arrow represents a message that goes from one object to another. Time, in this diagram, proceeds from top to bottom. So the first message is timeSoak (), which the timer sends to itself. The second message is sendWater (), which the timer sends to the water pipe. The final message, stopRotating (), goes from the timer to the drum. Activity Diagram Activity diagram is another important diagram in UML to describe dynamic aspects of the system.The activities that occur within a use case or within an object’s behavior typically occur in a sequence is represented by the activity diagram Activity diagram is basically a flow chart to represent the flow form one activity to another activity. The activity can be described as an operation of the system.So the control flow is drawn from one operation to another. This flow can be sequential, branched or concurrent. Activity diagrams deals with all type of flow control by using different elements like fork, join etc. Purpose: The basic purposes of activity diagrams are similar to other four diagrams. It captures the dynamic behaviour of the system. Other four diagrams are used to show the message flow from one object to another but activity diagram is used to show message flow from one activity to another. Activity is a particular operation of the system. Activity diagrams are not only used for visualizing dynamic nature of a system but they are also used to construct the executable system by using forward and reverse engineering techniques. The only missing thing in activity diagram is the message part. It does not show any message flow from one activity to another. Activity diagram is some time considered as the flow chart. Although the diagrams looks like a flow chart but it is not. It shows different flow like parallel, branched, concurrent and single. So the purposes can be described as: • Draw the activity flow of a system. • Describe the sequence from one activity to another. • Describe the parallel, branched and concurrent flow of the system. How to draw Activity Diagram? Activity diagrams are mainly used as a flow chart consists of activities performed by the system. But activity diagram are not exactly a flow chart as they have some additional capabilities. These additional capabilities include branching, parallel flow, swimlane etc. The main element of an activity diagram is the activity itself. An activity is a function performed by the system. After identifying the activities we need to understand how they are associated with constraints and conditions. So before drawing an activity diagram we should identify the following elements: 20
  • 21.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur • Activities • Association • Conditions • Constraints The following is an example of an activity diagram for Admission Process management system. In the diagram four activities are identified which are associated with conditions. One important point should be clearly understood that an activity diagram cannot be exactly matched with the code. The activity diagram is made to understand the flow of activities and mainly used by the business users. The following diagram is drawn with the four main activities: • Admission request by student • Receipt of the Application • Confirm Application • Dispatch order After receiving the order request condition checks are performed to check if it is normal or special order. After the type of order is identified dispatch activity is performed and that is marked as the termination of the process. Where to use Activity Diagrams? The basic usage of activity diagram is similar to other four UML diagrams. The specific usage is to model the control flow from one activity to another. This control flow does not include messages. The activity diagram is suitable for modeling the activity flow of the system. An application can have multiple systems. Activity diagram also captures these systems and describes flow from one system to another. This specific usage is not available in other diagrams. These systems can be database, external queues or any other system. Now we will look into the practical applications of the activity diagram. From the above discussion it is clear that an activity diagram is drawn from a very high level. So it gives high level view of a system. This high level view is mainly for business users or any other person who is not a technical person. This diagram is used to model the activities which are nothing but business requirements. So the diagram has more impact on business understanding rather implementation details. Following are the main usages of activity diagram: • Modeling work flow by using activities. • Modeling business requirements. • High level understanding of the system's functionalities. • Investigate business requirements at a later stage. 21
  • 22.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Statechart Diagram The name of the diagram itself clarifies the purpose of the diagram and other details. It describes different states of a component in a system. The states are specific to a component/object of a system. A Statechart diagram describes a state machine. Now to clarify it state machine can be defined as a machine which defines different states of an object and these states are controlled by external or internal events. Activity diagram explained in next chapter, is a special kind of a Statechart diagram. As Statechart diagram defines states it is used to model lifetime of an object. Purpose: Statechart diagram is one of the five UML diagrams used to model dynamic nature of a system. They define different states of an object during its lifetime. And these states are changed by events. So Statechart diagrams are useful to model reactive systems. Reactive systems can be defined as a system that responds to external or internal events. Statechart diagram describes the flow of control from one state to another state. States are defined as a condition in which an object exists and it changes when some event is triggered. So 22
  • 23.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur the most important purpose of Statechart diagram is to model life time of an object from creation to termination. Statechart diagrams are also used for forward and reverse engineering of a system. But the main purpose is to model reactive system. Following are the main purposes of using Statechart diagrams: • To model dynamic aspect of a system. • To model life time of a reactive system. • To describe different states of an object during its life time. • Define a state machine to model states of an object. How to draw Statechart Diagram? Statechart diagram is used to describe the states of different objects in its life cycle. So the emphasis is given on the state changes upon some internal or external events. These states of objects are important to analyze and implement them accurately. Statechart diagrams are very important for describing the states. States can be identified as the condition of objects when a particular event occurs. Before drawing a Statechart diagram we must have clarified the following points: • Identify important objects to be analyzed. • Identify the states. • Identify the events. A Statechart diagram where the state of Order object is analyzed. The first state is an idle state from where the process starts. The next states are arrived for events like send request, confirm request, and dispatch order. These events are responsible for state changes of order object. The initial and final state of an object is also shown below. Where to use Statechart Diagrams? From the above discussion we can define the practical applications of a Statechart diagram. Statechart diagrams are used to model dynamic aspect of a system like other four diagrams disused in this tutorial. But it has some distinguishing characteristics for modeling dynamic nature. Statechart diagram defines the states of a component and these state changes are dynamic in nature. So its specific purpose is to define state changes triggered by events. Events are internal or external factors influencing the system. Statechart diagrams are used to model states and also events operating on the system. When implementing a system it is very important to clarify different states of an object during its life time and statechart diagrams are used for this purpose. When these states and events are identified they are used to model it and these models are used during implementation of the system. 23
  • 24.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur If we look into the practical implementation of Statechart diagram then it is mainly used to analyze the object states influenced by events. This analysis is helpful to understand the system behaviour during its execution. So the main usages can be described as: • To model object states of a system. • To model reactive system. Reactive system consists of reactive objects. • To identify events responsible for state changes. • Forward and reverse engineering. At any given time, an object is in a particular state. This transition from one state to the next state is represented by state diagram.i.e A person can be a newborn, infant, child, adolescent, teenager, or adult. An elevator is either moving or stationary. A washing machine can be either in the soaking, washing, rinsing, spinning, or off state. The symbol at the top of the figure represents the start state and the symbol at the bottom represents the end state. 24
  • 25.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Component Diagram Component diagram is a special kind of diagram in UML. The purpose is also different from all other diagrams discussed so far. It does not describe the functionality of the system but it describes the components used to make those functionalities. So from that point component diagrams are used to visualize the physical components in a system. These components are libraries, packages, files etc. Component diagrams can also be described as a static implementation view of a system. Static implementation represents the organization of the components at a particular moment. A single component diagram cannot represent the entire system but a collection of diagrams are used to represent the whole. So the purpose of the component diagram can be summarized as: • Visualize the components of a system. • Construct executables by using forward and reverse engineering. • Describe the organization and relationships of the components. How to draw Component Diagram? Component diagrams are used to describe the physical artifacts of a system. This artifact includes files, executables, libraries etc. So the purpose of this diagram is different, Component diagrams are used during the implementation phase of an application. But it is prepared well in advance to visualize the implementation details. Initially the system is designed using different UML diagrams and then when the artifacts are ready component diagrams are used to get an idea of the implementation. This diagram is very important because without it the application cannot be implemented efficiently. A well prepared component diagram is also important for other aspects like application performance, maintenance etc. So before drawing a component diagram the following artifacts are to be identified clearly: • Files used in the system. • Libraries and other artifacts relevant to the application. • Relationships among the artifacts. Now after identifying the artifacts the following points needs to be followed: • Use a meaningful name to identify the component for which the diagram is to be drawn. • Prepare a mental layout before producing using tools. • Use notes for clarifying important points. 25
  • 26.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Where to use Component Diagrams? We have already described that component diagrams are used to visualize the static implementation view of a system. Component diagrams are special type of UML diagrams used for different purposes. These diagrams show the physical components of a system. To clarify it, we can say that component diagrams describe the organization of the components in a system. Organization can be further described as the location of the components in a system. These components are organized in a special way to meet the system requirements. As we have already discussed those components are libraries, files, executables etc. Now before implementing the application these components are to be organized. This component organization is also designed separately as a part of project execution. Component diagrams are very important from implementation perspective. So the implementation team of an application should have a proper knowledge of the component details. Now the usage of component diagrams can be described as: • Model the components of a system. • Model database schema. • Model executables of an application. • Model system's source code. 26
  • 27.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Deployment Diagram Overview: Deployment diagrams are used to visualize the topology of the physical components of a system where the software components are deployed. So deployment diagrams are used to describe the static deployment view of a system. Deployment diagrams consist of nodes and their relationships. Purpose: The name Deployment itself describes the purpose of the diagram. Deployment diagrams are used for describing the hardware components where software components are deployed. Component diagrams and deployment diagrams are closely related. Component diagrams are used to describe the components and deployment diagrams shows how they are deployed in hardware. UML is mainly designed to focus on software artifacts of a system. But these two diagrams are special diagrams used to focus on software components and hardware components. So most of the UML diagrams are used to handle logical components but deployment diagrams are made to focus on hardware topology of a system. Deployment diagrams are used by the system engineers. The purpose of deployment diagrams can be described as: • Visualize hardware topology of a system. • Describe the hardware components used to deploy software components. • Describe runtime processing nodes. How to draw Deployment Diagram? Deployment diagram represents the deployment view of a system. It is related to the component diagram. Because the components are deployed using the deployment diagrams. A deployment diagram consists of nodes. Nodes are nothing but physical hardwares used to deploy the application. Deployment diagrams are useful for system engineers. An efficient deployment diagram is very important because it controls the following parameters • Performance • Scalability • Maintainability • Portability So before drawing a deployment diagram the following artifacts should be identified: 27
  • 28.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur • Nodes • Relationships among nodes The following deployment diagram is a sample to give an idea of the deployment view of order management system. Here we have shown nodes as: • Monitor • Modem • Caching server • Server The application is assumed to be a web based application which is deployed in a clustered environment using server 1, server 2 and server 3. The user is connecting to the application using internet. The control is flowing from the caching server to the clustered environment. So the following deployment diagram has been drawn considering all the points mentioned above: Where to use Deployment Diagrams? Deployment diagrams are mainly used by system engineers. These diagrams are used to describe the physical components (hardwares), their distribution and association. To clarify it in details we can visualize deployment diagrams as the hardware components/nodes on which software components reside. 28
  • 29.
    Harsh Kishore Mishra B.Tech.IT, IIMET Jaipur Software applications are developed to model complex business processes. Only efficient software applications are not sufficient to meet business requirements. Business requirements can be described as to support increasing number of users, quick response time etc. To meet these types of requirements hardware components should be designed efficiently and in a cost effective way. Now a day's software applications are very complex in nature. Software applications can be stand alone, web based, distributed, mainframe based and many more. So it is very important to design the hardware components efficiently. So the usage of deployment diagrams can be described as follows: • To model the hardware topology of a system. • To model embedded system. • To model hardware details for a client/server system. • To model hardware details of a distributed application. • Forward and reverse engineering Component diagrams are different in terms of nature and behaviour. Component diagrams are used to model physical aspects of a system. Now the question is what are these physical aspects? Physical aspects are the elements like executables, libraries, files, documents etc which resides in a node. So component diagrams are used to visualize the organization and relationships among components in a system. These diagrams are also used to make executable systems. 29