KEMBAR78
Software Engineering Lab Manual - 4th Sem AIML | PDF | Use Case | Software Engineering
0% found this document useful (0 votes)
8 views65 pages

Software Engineering Lab Manual - 4th Sem AIML

The document is a lab manual for Software Engineering (AL-403) at Gyan Ganga Institute of Technology and Sciences, detailing various experiments and objectives related to software requirements specification, data flow diagrams, and UML models. It includes a grading sheet and evaluation criteria for practical records, as well as specific procedures for developing requirements and diagrams. The manual serves as a guide for students to complete their lab work in the 2024-25 academic session.

Uploaded by

Aarna Soni
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views65 pages

Software Engineering Lab Manual - 4th Sem AIML

The document is a lab manual for Software Engineering (AL-403) at Gyan Ganga Institute of Technology and Sciences, detailing various experiments and objectives related to software requirements specification, data flow diagrams, and UML models. It includes a grading sheet and evaluation criteria for practical records, as well as specific procedures for developing requirements and diagrams. The manual serves as a guide for students to complete their lab work in the 2024-25 academic session.

Uploaded by

Aarna Soni
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 65

GYAN GANGA INSTITUTE OF TECHNOLOGY AND SCIENCES,

JABALPUR

DEPARTMENT OF CSE-Artificial Intelligence & Machine Learning

LAB MANUAL

Software Engineering

(AL-403)

NAME:

AARNA SONI

ENROLLMENT NUMBER:

0206AL231002

SESSION: 2024-25
Subject Name: Software Engineering
Subject Code: [AL-403]
Index
S Experiment Date of Sign Remarks
. Performance
N
o.

Develop requirements specification for a given


problem (The requirements specification should
1 include both functional and non-functional
requirements. For a set of about 20 sample
problems)

Develop DFD Model (Level 0, Level 1 DFD and


2 data dictionary) of the sample problem (Use of a
CASE tool required).

3 Develop an E-R Diagram of the sample problem.

Develop UML Use case model for a problem (Use


4 of a CASE tool any of Enterprise Architect,
Rational rose, Argo UML etc. is required)

5 Develop Sequence Diagrams

6 Develop Class and object diagrams.

7 Develop State Diagram

8 Develop Collaboration Diagram

Use testing tool such as Junit


9
or Jmeter.

1 Develop Business Process Diagram of the


0
sample problem.
Evaluation Sheet

Student Name :AARNA SONI

Student Roll No.: 0206AL231002

Subject Name : SOFT3WARE ENGINEERING

Subject Code: AL-403

Practical Record Execution & Record


Completion Result Viva Submission
(6 marks) (6 marks) (4 marks) (4 marks)

Record
Complete Record with Proper Output for all Answer
correct syntax
6 program
6 Correctly
4 submitted 4
S in time
Total
. Name of
Answer
Record out of
N Experiment Complete Record with Proper Output for not
improper syntax
4 some program
4 Satisfactor 2 submitted
2 20
o ily
in time

Record
Partially Complete Unable to
Record
2 Partial Output 2 Answer
0 Not 0
Submitted

Incomplete Record 0 Output not shown 0

Develop
requirements
specification for
a given problem
(The
requirements
specification
1 should include
both functional
and non-
functional
requirements.
For a set of
about 20 sample
problems)

Develop DFD
Model (Level 0,
Level 1 DFD
and data
2
dictionary) of the
sample problem
(Use of a CASE
tool required).
Develop an E-R
3 Diagram of the
sample problem.

Develop UML
Use case model
for a problem
(Use of a CASE
tool any of
4
Enterprise
Architect,
Rational rose,
Argo UML etc. is
required)

Develop
5 Sequence
Diagrams

Develop Class
6 and object
diagrams.

Develop State
7
Diagram

Develop
8 Collaboration
Diagram

Use testing tool


9 such as Junit or
Jmeter

Develop

Business
1
0 Process
Diagram of the

sample problem.

Grand Total

Marks out of 20
Signature of Subject Faculty

Grading Sheet for 4th Semester (2023-27)


Lab Files (Total Marks – 20)

A+ 19-20
A 17-18
B+ 15-16
B 13-14
C+ 11-12
C 9-10
Lab Experiment No.1

Develop requirements specification for a given problem

Objective:
To find the requirement specification (both functional and nonfunctional) of a given
Problem.
Procedure:
Step 1:
Introduction:

Purpose

Identify the product whose software requirements are specified in this document.
Describe the scope of the product that is covered by this SRS, particularly if this SRS describes
only part of the system or a single subsystem . Describe the different types of user that the
document is intended for, such as developers, project managers, marketing staff, users, testers,
and documentation writers. Describe what the rest of this SRS contains and how it is organized.
Suggest a sequence for reading the document, beginning with the overview sections and
proceeding through the sections that are most pertinent to each reader type.

Project Scope

Provide a short description of the software being specified and its purpose, including
relevant benefits, objectives, and goals. Relate the software to corporate goals or business
strategies. If a separate vision and scope document is available, refer to it rather than duplicating
its contents here. An SRS that specifies the next release of an evolving product should contain its
own scope statement as a subset of the long-term strategic product vision.
Step 2:

Overall Description

Product Perspective

Describe the context and origin of the product being specified in this SRS. For example,
state whether this product is a follow-on member of a product family, a replacement for certain
existing systems, or a new, self-contained product. If the SRS defines a component of a larger
system, relate the requirements of the larger system to the functionality of this software and
identify interfaces between the two. A simple diagram that shows the major components of the
overall system, subsystem interconnections, and external interfaces can be helpful.
Product Features

Summarize the major features the product contains or the significant functions that it
performs or lets the user perform. Only a high level summary is needed here. Organize the
functions to make them understandable to any reader of the SRS. A picture of the major groups of
related requirements and how they relate, such as a top level data flow diagram or a class
diagram, is often effective.

User Classes and Characteristics

Identify the various user classes that you anticipate will use this product. User classes
may be differentiated based on frequency of use, subset of product functions used, technical
expertise, security or privilege levels, educational level, or experience. Describe the pertinent
characteristics of each user class. Certain requirements may pertain only to certain user classes.
Distinguish the favored user classes from those who are less important to satisfy.

Operating Environment

Describe the environment in which the software will operate, including the hardware
platform, operating system and versions, and any other software components or applications with
which it must peacefully coexist.

Design and Implementation Constraints

Describe any items or issues that will limit the options available to the developers. These
might include: corporate or regulatory policies; hardware limitations (timing requirements,
memory requirements); interfaces to other applications; specific technologies, tools, and
databases to be used; parallel operations; language requirements; communications protocols;
security considerations; design conventions or programming standards (for example, if the
customer’s organization will be responsible for maintaining the delivered software).

Step 3:
System Features
This template illustrates organizing the functional requirements for the product by system
features, the major services provided by the product. You may prefer to organize this section by
use case, mode of operation, user class, object class, functional hierarchy, or combinations of
these, whatever makes the most logical sense for your product.

System Feature 1
Don’t really say “System Feature 1.” State the feature name in just a few words.

1 Description and Priority


Provide a short description of the feature and indicate whether it is of High,
Medium, or Low priority. You could also include specific priority component
ratings, such as benefit, penalty, cost, and risk (each rated on a relative scale from
a low of 1 to a high of 9).

2 Stimulus/Response Sequences
List the sequences of user actions and system responses that stimulate the
behavior defined for this feature. These will correspond to the dialog elements associated
with use cases.
3 Functional Requirements
Itemize the detailed functional requirements associated with this feature. These
are the software capabilities that must be present in order for the user to carry out the
services provided by the feature, or to execute the use case. Include how the product
should respond to anticipated error conditions or invalid inputs. Requirements should be
concise, complete, unambiguous, verifiable, and necessary.

<Each requirement should be uniquely identified with a sequence number or a


meaningful tag of some kind.>

REQ-1:
REQ-2:

Step 4:

External Interface Requirements

User Interfaces

Describe the logical characteristics of each interface between the software product and
the users. This may include sample screen images, any GUI standards or product family style
guides that are to be followed, screen layout constraints, standard buttons and functions (e.g.,
help) that will appear on every screen, keyboard shortcuts, error message display standards, and
so on. Define the software components for which a user interface is needed. Details of the user
interface design should be documented in a separate user interface specification.

Hardware Interfaces

Describe the logical and physical characteristics of each interface between the software
product and the hardware components of the system. This may include the supported device
types, the nature of the data and control interactions between the software and the hardware, and
communication protocols to be used.

Software Interfaces

Describe the connections between this product and other specific software components
(name and version), including databases, operating systems, tools, libraries, and integrated
commercial components. Identify the data items or messages coming into the system and going
out and describe the purpose of each. Describe the services needed and the nature of
communications. Refer to documents that describe detailed application programming interface
protocols. Identify data that will be shared across software components. If the data sharing
mechanism must be implemented in a specific way (for example, use of a global data area in a
multitasking operating system), specify this as an implementation constraint.

Communications Interfaces

Describe the requirements associated with any communications functions required by this
product, including e-mail, web browser, network server communications protocols, electronic
forms, and so on. Define any pertinent message formatting. Identify any communication
standards that will be used, such as FTP or HTTP. Specify any communication security or
encryption issues, data transfer rates, and synchronization mechanisms.

Nonfunctional Requirements

Performance Requirements

If there are performance requirements for the product under various circumstances, state
them here and explain their rationale, to help the developers understand the intent and make
suitable design choices. Specify the timing relationships for real time systems. Make such
requirements as specific as possible. You may need to state performance requirements for
individual functional requirements or features.

Safety Requirements

Specify those requirements that are concerned with possible loss, damage, or harm that
could result from the use of the product. Define any safeguards or actions that must be taken, as
well as actions that must be prevented. Refer to any external policies or regulations that state
safety issues that affect the product’s design or use. Define any safety certifications that must be
satisfied.

Security Requirements

Specify any requirements regarding security or privacy issues surrounding use of the
product or protection of the data used or created by the product. Define any user identity
authentication requirements. Refer to any external policies or regulations containing security
issues that affect the product. Define any security or privacy certifications that must be satisfied.

Software Quality Attributes

Specify any additional quality characteristics for the product that will be important to
either the customers or the developers. Some to consider are: adaptability, availability,
correctness, flexibility, interoperability, maintainability, portability, reliability, reusability,
robustness, testability, and usability. Write these to be specific, quantitative, and verifiable when
possible. At the least, clarify the relative preferences for various attributes, such as ease of use
over ease of learning.

Other Requirements
Define any other requirements not covered elsewhere in the SRS. This might include
database requirements, internationalization requirements, legal requirements, reuse objectives for
the project, and so on. Add any new sections that are pertinent to the project.
Experiment No. 2

AIM OF THE EXPERIMENT:


Develop DFD model (level-0, level-1 DFD and Data dictionary) of the project.

OVERALL DESCRIPTION :

Data analysis attempts to answer four specific questions:

 What processes make up a system?

 What data are used in each process?

 What data are stored?

 What data enter and leave the system?

Data drive business activities and can trigger events (e.g. new sales order data) or be processed to
provide information about the activity. Data flow analysis, as the name suggests, follows the flow
of data through business processes and determines how organisation objectives are accomplished.
In the course of handling transactions and completing tasks, data are input, processed, stored,
retrieved, used, changed and output. Data flow analysis studies the use of data in each activity
and documents the findings in data flow diagrams, graphically showing the relation between
processes and data.

Physical and Logical DFDs


There are two types of data flow diagrams, namely physical data flow diagrams and logical data
flow diagrams and it is important to distinguish clearly between the two:

Physical Data Flow Diagrams


An implementation-dependent view of the current system, showing what tasks are carried
out and how they are performed. Physical characteristics can include:

Names of people

Form and document names or numbers

Master and transaction files


Equipment and devices used

Logical Data Flow Diagrams

An implementation-independent view of the a system, focusing on the flow of data between


processes without regard for the specific devices, storage locations or people in the system. The
physical characteristics listed above for physical data flow diagrams will not be specified.

ORDERS

CUSTOMERS

INVOICES

Fig. A typical DFD

Data Flow Diagram (DFD)

The DFD (also known as a bubble chart) is a hierarchical graphical model of a system that shows
the different processing activities or functions that the system performs and the data interchange among
these functions. Each function is considered as a processing station (or process) that consumes some input
data and produces some output data. The system is represented in terms of the input data to the system,
various processing carried out on these data, and the output data generated by the system. A DFD model
uses a very limited number of primitive symbols [as shown in fig. 5.1(a)] to represent the functions
performed by a system and the data flow among these functions.

Symbols used for designing DFDs

Here, two examples of data flow that describe input and validation of data are considered.
In Fig. 5.1(b), the two processes are directly connected by a data flow. This means that
the ‘validate-number’ process can start only after the ‘read-number’ process had supplied
data to it. However in Fig 5.1(c), the two processes are connected through a data store.
Hence, the operations of the two bubbles are independent. The first one is termed
‘synchronous’ and the second one ‘asynchronous’.

Importance of DFDs in a good software design


The main reason why the DFD technique is so popular is probably because of the fact
that DFD is a very simple formalism – it is simple to understand and use. Starting with a set of
high-level functions that a system performs, a DFD model hierarchically represents various sub-
functions. In fact, any hierarchical model is simple to understand. Human mind is such that it can
easily understand any hierarchical model of a system – because in a hierarchical model, starting
with a very simple and abstract model of a system, different details of the system are slowly
introduced through different hierarchies. The data flow diagramming technique also follows a
very simple set of intuitive concepts and rules. DFD is an elegant modeling technique that turns
out to be useful not only to represent the results of structured analysis of a software problem, but
also for several other applications such as showing the flow of documents or items in an
organization.

Data dictionary
A data dictionary lists all data items appearing in the DFD model of a system. The data
items listed include all data flows and the contents of all data stores appearing on the
DFDs in the DFD model of a system. A data dictionary lists the purpose of all data items
and the definition of all composite data items in terms of their component data items. For
example, a data dictionary entry may represent that the data grossPay consists of the
components regularPay and overtimePay.

Balancing a DFD
The data that flow into or out of a bubble must match the data flow at the next level of
DFD. This is known as balancing a DFD. The concept of balancing a DFD has been
illustrated in fig. 5.3. In the level 1 of the DFD, data items d1 and d3 flow out of the
bubble 0.1 and the data item d2 flows into the bubble 0.1. In the next level, bubble 0.1 is
decomposed. The decomposition is balanced, as d1 and d3 flow out of the level 2
diagram and d2 flows in.

A DFD model of a system graphically depicts the transformation of the data input to the
system to the final result through a hierarchy of levels. A DFD starts with the most
abstract definition of the system (lowest level) and at each higher level
DFD, more details are successively introduced. To develop a higher-level DFD model,
processes are decomposed input data to these functions and the data output by these
functions and represent them appropriately in the diagram.
If a system has more than 7 high- level functional requirements, then some of the related
requirements have to be combined and represented in the form of a bubble in the level 1
DFD. Such a bubble can be split in the lower DFD levels. If a system has less than three
high-level functional requirements, then some of them need to be split into their sub-
functions so that we have roughly about 5 to 7 bubbles on the diagram.

Decomposition:-
Each bubble in the DFD represents a function performed by the system. The bubbles are
decomposed into sub-functions at the successive levels of the DFD.
Decomposition of a bubble is also known as factoring or exploding a bubble. Each
bubble at any level of DFD is usually decomposed to anything between 3 to 7 bubbles.
Too few bubbles at any level make that level superfluous. For example, if a bubble is
decomposed to just one bubble or two bubbles, then this decomposition becomes
redundant. Also, too many bubbles, i.e. more than 7 bubbles at any level of a DFD makes
the DFD model hard to understand. Decomposition of a bubble should be carried on until
a level is reached at which the function of the bubble can be described using a simple
algorithm.

Numbering of Bubbles:-
It is necessary to number the different bubbles occurring in the DFD. These numbers help
in uniquely identifying any bubble in the DFD by its bubble number. The bubble at the
context level is usually assigned the number 0 to indicate that it is the 0 level DFD.
Bubbles at level 1 are numbered, 0.1, 0.2, 0.3, etc, etc. When a bubble numbered x is
decomposed, its children bubble are numbered x.1, x.2, x.3, etc. In this numbering
scheme, by looking at the number of a bubble we can unambiguously determine its level,
its ancestors, and its successors.

Example:-
A supermarket needs to develop the following software to encourage regular customers.
For this, the customer needs to supply his/her residence address, telephone number, and
the driving license number. Each customer who registers for this scheme is assigned a
unique customer number (CN) by the computer. A customer can present his CN to the
check out staff when he makes any purchase. In this case, the value of his purchase is
credited against his CN. At the end of each year, the supermarket intends to award
surprise gifts to 10 customers who make the highest total purchase over the year. Also, it
intends to award a 22 caret gold coin to every customer whose purchase exceeded
Rs.10,000. The entries against the CN are the reset on the day of every year after the
prize winners’ lists are generated.
Page 15 of 65
Experiment No.3

Develop an E-R Diagram of the sample problem

Page 16 of 65
Experiment No.4

Develop UML Use case model for a problem

Objective :
To understand the users view of a project using Use case Diagram

Software Required :-

Visual Paradigm for UML 8.2

Procedure :-
You can draw use case diagrams in VP-UML as well as to document the event flows of use cases using
the flow-of-events editor of UML 8.2 .The steps are as follows.

Step 1:
Right click Use Case Diagram on Diagram Navigator and select New Use Case Diagram from the
pop-up menu.

Step 2:-

Page 17 of 65
Enter name for the newly created use case diagram in the text field of pop-up box on the top left corner.

Step 3:

Drawing a system
To create a system, select System on the diagram toolbar and then click it on the diagram pane. Finally,
name the newly created system when it is created.

Step 4:

Drawing an actor
To draw an actor, select Actor on the diagram toolbar and then click it on the diagram pane. Finally,
name the newly created actor when it is created.

Page 18 of 65
Step 5 :-

Drawing a use case


Besides creating a use case through diagram toolbar, you can also create it through resource icon.
Move the mouse over a shape and press a resource icon that can create use case. Drag it and then release
the mouse button until it reaches to your preferred place. The source shape and the newly created use case
are connected. Finally, name the newly created use case.

Step 6:-

Create a use case through resource icon


Line wrapping use case name
If a use case is too wide, for a better outlook, you may resize it by dragging the filled selectors. As a
result, the name of use case will be line-wrapped automatically.

Step 7:

Resize a use case

Page 19 of 65
To create an extend relationship, move the mouse over a use case and press its resource icon Extend ->
Use Case. Drag it to your preferred place and then release the mouse button. The use case with extension
points and a newly created use case are connected. After you name the newly created use case, a pop-
up dialog box will ask whether you want the extension point to follow the name of use case. Click Yes if
you want it to do so; click NO if you want to enter another name for extension point.

Step 8:

Create an extend relationship


Drawing <<Include>> relationship
To create an include relationship, mouse over a use case and press its resource icon Include -> Use Case.
Drag it to your preferred place and then release the mouse button. A new use case together with an
include relationship is created. Finally, name the newly created use case.

Step 9:

Include relationship is created


Structuring use cases with package
You can organize use cases with package when there are many of them on the diagram.
Select Package on the diagram toolbar (under Common category).

Step 10:

Create a package
Drag the mouse to create a package surrounding those use cases.

Page 20 of 65
Step 11:
Surround use cases with package
Finally, name the package.

Page 21 of 65
Step 12

Name the
package
Assigning IDs to actors/Use cases
You may assign IDs to actors and use cases. By default, IDs are assigned with the order of object
creation, starting from one onwards. However, you can define the format or even enter an ID manually.
Defining the format of ID
To define the format of ID, select Tools > Options from the main menu to unfold the Options dialog
box. Select Diagramming from the list on the left hand side and select the Use Case Diagram tab on the
right hand side. You can adjust the format of IDs under Use Case Diagram tab. The format of ID consists
of prefix, number of digits and suffix.

Step 13:

Use Case Diagram tab


The description of options for ID generator format is shown below.
Option

Description

Prefix The prefix you enter in Prefix text field will be inserted before the number.

Num of digits The number of digits for the number. For example, when digit is 3, ID "1" will

Page 22 of 65
become "001".

Suffix The suffix you enter in Suffix text field will be inserted behind the number.

Options for formatting ID

Showing ID on diagram
By default, ID is just a text property. It usually doesn't appear on diagram. However, you can make it
shown within a use case.
Right click on the diagram background, select Presentation Options and the specific model element
display option from the pop-up menu.

Step 14 :

Show ID on diagram
As a result, the use case is displayed with ID.

A use case with ID displayed

The feature of showing ID does only support for use case, but not for
NOTE:
actor.

ID assignment
There are several ways that you can assign an ID to a model element, including:
 Through the specification dialog box (Right click on the selected model element and select Open
Specification... from the pop-up menu)
 Through the Property Pane

Page 23 of 65
Drawing business use case
1. Right click on a use case and select Model Element Properties > Business Model from the pop-
up menu.

Step 15:

1.
Click Business Model
2. After selected, an extra slash will be shown on the left edge of the use case.

Business model

And Finally The Use case Diagram is ready.

Page 24 of 65
Lab Experiment No.5

Develop sequence diagram

Objective :
To understand the interactions between objects that are represented as lifelines in a sequential
order of a project using Sequence Diagram.

Software Required :-

Visual Paradigm for UML 8.2

Procedure :-
A sequence diagram is used primarily to show the interactions between objects that are
represented as lifelines in a sequential order.

Step 1:-
Right click Sequence diagram on Diagram Navigator and select New Sequence Diagram from the
pop-up menu to create a sequence diagram.

Step 2:-
Enter name for the newly created sequence diagram in the text field of pop-up box on the top left corner.
Creating actor
To create actor, click Actor on the diagram toolbar and then click on the diagram.

Page 25 of 65
Creating lifeline
To create lifeline, you can click LifeLine on the diagram toolbar and then click on the diagram.
Alternatively, a much quicker and more efficient way is to use the resource-centric interface. Click on
the Message -> LifeLine resource beside an actor/lifeline and drag.

Step 3:-
Move the mouse to empty space of the diagram and then release the mouse button. A new lifeline will be
created and connected to the actor/lifeline with a message.

Auto extending activation


When create message between lifelines/actors, activation will be automatically extended.

Page 26 of 65
Step 4:-
Using sweeper and magnet to manage sequence diagram
Sweeper helps you to move shapes aside to make room for new shapes or connectors. To use sweeper,
click Sweeper on the diagram toolbar (under the Tools category).

Page 27 of 65
The picture below shows the message specify visit time is being swept downwards, thus new room is
made for new messages.

Step 5:-

You can also use magnet to pull shapes together. To use magnet, click Magnet on the
diagram toolbar (under the Tools category).

Page 28 of 65
Magnet

Click on empty space of the diagram and drag towards top, right, bottom or left. Shapes affected will be
pulled to the direction you dragged.
The picture below shows when drag the magnet upwards, shapes below dragged position are pulled
upwards.

Page 29 of 65
Step 6:-

Creating combined fragment for messages


To create combined fragment to cover messages, select the messages, right-click on the selection and
select Create Combined Fragment, and then select a combined fragment type (e.g. loop) from the
popup menu.

Step 7:-

A combined fragment of selected type will be created to cover the messages .

Page 30 of 65
Step 8:-

Adding/removing covered lifelines


After you've created a combined fragment on the messages, you can add or remove the covered lifelines.
1. Move the mouse over the combined fragment and select Add/Remove Covered Lifeline... from
the pop-up menu.

2. In the Add/Remove Covered Lifelines dialog box, check the lifeline(s) you want to cover or
uncheck the lifeline(s) you don't want to cover. Click OK button.

Page 31 of 65
3. As a result, the area of covered lifelines is extended or narrowed down according to your
selection.

Managing Operands
After you've created a combined fragment on the messages, you can also add or remove operand(s).
1. Move the mouse over the combined fragment and select Operand > Manage Operands... from
the pop-up menu.

Step 9:-
1. To remove an operand, select the target operand from Operands and click Remove button.
ClickOK button.

Page 32 of 65
2. Otherwise, click Add button to add a new operand and then name it. Click OK button.

Developing sequence diagram with quick editor or keyboard shortcuts


In sequence diagram, an editor appears at the bottom of diagram by default, which enables you to
construct sequence diagram with the buttons there. The shortcut keys assigned to the buttons provide a
way to construct diagram through keyboard. Besides constructing diagram, you can also access diagram
elements listing in the editor.

Page 33 of 65
There are two panes, Lifelines and Messages. The Lifelines pane enables you to create different kinds of
actors and lifelines.

ButtonShortcut Description
Alt-Shift-
To create an actor
A
Alt-Shift-
To create a general lifeline
L
Alt-Shift-
To create an <<entity>> lifeline
E
Alt-Shift-
To create a <<control>> lifeline
C
Alt-Shift-
To create a <<boundary>> lifeline
B
Alt-Shift-
To open the specification of the element chosen in quick editor
O
Ctrl-Del To delete the element chosen in quick editor
To link with the diagram, which cause the diagram element to be selected when selecting an
Ctrl-L
element in editor, and vice versa

Step 10:-
Buttons in Lifelines
pane

Editing messages
The Messages pane enables you to connect lifelines with various kinds of messages.

Page 34 of 65
Messages pane in quick editor

Button

Shortc
Description
ut

Alt-Shift-M To create a message that connects actors/lifelines in diagram

Alt-Shift-D To create a duration message that connects actors/lifelines in diagram

Alt-Shift-C To create a create message that connects actors/lifelines in diagram

Alt-Shift-S To create a self message on an actor/lifeline in diagram

Alt-Shift-R To create a recursive message on an actor/lifeline in diagram

Alt-Shift-F To create a found message that connects to an actor/lifeline

Alt-Shift-L To create a lost message from an actor/lifeline

Alt-Shift-E To create a reentrant message that connects actors/lifelines in diagram

Ctrl-Shift-Up To swap the chosen message with the one above

Ctrl-Shift-DownTo swap the chosen message with the one below

Ctrl-R To revert the direction of chosen message

Page 35 of 65
Shortc
Description
ut

Alt-Shift-O To open the specification of the message chosen in quick editor

Ctrl-Del To delete the message chosen in quick editor

To link with the diagram, which cause the message to be selected when selecting a message in editor, and vice
Ctrl-L
versa

Buttons in Messages pane

Expanding and collapsing the editor


To hide the editor, click on the down arrow button that appears at the bar on top of the quick editor. To
expand, click on the up arrow button.

Collapse the quick editor

Setting different ways of numbering sequence messages


You are able to set the way of numbering sequence messages either on diagram base or frame base.
Diagram-based sequence message
Right click on the diagram's background, select Sequence Number and then either Single
Levelor Nested Level from the pop-up menu.

Step 11:-
If you choose Single Level, all sequence messages will be ordered with integers on diagram base. On the
other hand, if you choose Nested Level, all sequence messages will be ordered with decimal place on
diagram base.

Page 36 of 65
Right click on the diagram's background, select Sequence Number and then either Frame-based Single
Level or Frame-based Nested Level from the pop-up menu.

When you set the way of numbering sequence messages on frame base, the sequence messages in frame
will restart numbering sequence message since they are independent and ignore the way of numbering
sequence message outside the frame.

Page 37 of 65
Page 38 of 65
Experiment No. 6:

Develop Class diagram

Objective:-
To show diagrammatically the objects required and the relationships between them while
developing a software product.

Software Required :-

Visual Paradigm for UML 8.2

Procedure :-

Step 1:-
Right click Class Diagram on Diagram Navigator and select New Class Diagram from the pop-up
menu to create a class diagram.

Step 2:-

Creating class
To create class, click Class on the diagram toolbar and then click on the diagram.

Page 39 of 65
A class will be created.

Creating association
To create association from class, click the Association -> Class resource beside it and drag.

Drag to empty space of the diagram to create a new class, or drag to an existing class to connect to it.
Release the mouse button to create the association.

To create aggregation, use the Aggregation -> Class resource instead.

Step 3:-

To edit multiplicity of an association end, right-click near the association end, select Multiplicityfrom the
popup menu and then select a multiplicity.

Page 40 of 65
To show the direction of an association, right click on it and select Presentation Options > Show
Direction from the pop-up menu.

Step 4:-

The direction arrow is shown beside the association.

Creating generalization
To create generalization from class, click the Generalization -> Class resource beside it and drag.

Page 41 of 65
Drag to empty space of the diagram to create a new class, or drag to an existing class to connect to it.
Release the mouse button to create the generalization.

Creating attribute
To create attribute, right click the class and select Add > Attribute from the pop-up menu.

An attribute is created.

Creating attribute with enter key


After creating an attribute, press the Enter key, another attribute will be created. This method lets you
create multiple attributes quickly and easily.

Page 42 of 65
Creating operation
To create operation, right click the class and select Add > Operation from the pop-up menu.

An operation is created.

Similar to creating attribute, you can press the Enter key to create multiple operations continuously.
Drag-and-Drop reordering, copying and moving of class members
To reorder a class member, select it and drag within the compartment, you will see a thick black line
appears indicating where the class member will be placed.

Release the mouse button, the class member will be reordered.

To copy a class member, select it and drag to the target class while keep pressing the Ctrl key, you will
see a thick black line appears indicating where the class member will be placed. A plus sign is shown
beside the mouse cursor indicating this is a copy action.

Page 43 of 65
Release the mouse button, the class member will be copied.

To move a class member, select it and drag to the target class, you will see a thick black line appears
indicating where the class member will be placed. Unlike copy, do not press the Ctrl key when drag, the
mouse cursor without the plus sign indicates this is a move action.

Release the mouse button, the class member will be moved.

Model name completion for class


The model name completion feature enables quick creation of multiple views for the same class model.
When create or rename class, the list of classes is shown.

Page 44 of 65
Type text to filter classes in the list.

Press up or down key to select class in the list, press Enter to confirm. Upon selecting an existing class,
all class members and relationships are shown immediately.

Step 5:-

Continue to complete the diagram.

Page 45 of 65
Generalization set
A generalization set defines a particular set of generalization relationships that describe the way
in which a general classifier (or superclass) may be divided using specific subtypes. To define a
generalization set, select the generalizations to include, right click and select Generalization set > Create
Generalization Set... from the popup menu.

Step 6:-
Name the set in the Manage Generalization Sets dialog box, and confirm by pressing OK.

Page 46 of 65
The selected generalizations are grouped. Adjust the connector to make the diagram tidy .

Page 47 of 65
Repeat the steps for other generalizations.

Page 48 of 65
Lab Experiment No.7

Develop State Diagram

A State Machine Diagram is used to represent the condition of the system or part
of the system at finite instances of time. It’s a behavioral diagram and it
represents the behavior using finite state transitions.
A state diagram is used to represent the condition of the system or part of the
system at finite instances of time. It’s a
behavioral diagram and it represents the behavior using finite state transitions.

 State Machine diagrams are also referred to as State Machines Dia -


grams and State-Chart Diagrams.
 These terms are often used interchangeably. So simply, a state machine
diagram is used to model the dynamic behavior of a class in response to
time and changing external stimuli.
 We can say that each and every class has a state but we don’t model
every class using State Machine diagrams.
 We prefer to model the states with three or more states.
Basic components and notations of a State Machine diagram
2.1. Initial state
We use a black filled circle represent the initial state of a System or a Class.

Page 49 of 65
2.2. Transition
We use a solid arrow to represent the transition or change of control from one
state to another. The arrow is labelled with the event which causes the change in
state.

2.3. State
We use a rounded rectangle to represent a state. A state represents the conditions
or circumstances of an object of a class at an instant of time.

Page 50 of 65
2.4. Fork
We use a rounded solid rectangular bar to represent a Fork notation with
incoming arrow from the parent state and outgoing arrows towards the newly
created states. We use the fork notation to represent a state splitting into two or
more concurrent states.

2.5. Join
We use a rounded solid rectangular bar to represent a Join notation with incoming
arrows from the joining states and outgoing arrow towards the common goal
state. We use the join notation when two or more states concurrently converge
into one on the occurrence of an event or events.

Page 51 of 65
2.6. Self transition
We use a solid arrow pointing back to the state itself to represent a self transition.
There might be scenarios when the state of the object does not change upon the
occurrence of an event. We use self transitions to represent such cases.

2.7. Composite state


We use a rounded rectangle to represent a composite state also. We represent a
state with internal activities using a composite state.

2.8. Final State


We use a filled circle within a circle notation to represent the final state in a state
machine diagram.

Page 52 of 65
3. How to draw a State Machine diagram in UML?

Below are the steps of how to draw the State Machine Diagram in UML:
Step1. Identify the System:
 Understand what your diagram is representing.
 Whether it’s a machine, a process, or any object, know what different
situations or conditions it might go through.
Step2. Identify Initial and Final States:
 Figure out where your system starts (initial state) and where it ends (fi-
nal state).
 These are like the beginning and the end points of your system’s jour-
ney.
Step3. Identify Possible States:
 Think about all the different situations your system can be in.

Page 53 of 65
 These are like the various phases or conditions it experiences.
 Use boundary values to guide you in defining these states.
Step4. Label Triggering Events:
 Understand what causes your system to move from one state to another.
 These causes or conditions are the events.
 Label each transition with what makes it happen.
Step5. Draw the Diagram with appropriate notations:
 Now, take all this information and draw it out.
 Use rectangles for states, arrows for transitions, and circles or rounded
rectangles for initial and final states.
 Be sure to connect everything in a way that makes sense.
Let’s understand State Machine diagram with the help of an example :

Page 54 of 65
Lab Experiment No.8

Develop Collaboration Diagram

he collaboration diagram is used to show the relationship between the objects in a


system. Both the sequence and the collaboration diagrams represent the same
information but differently. Instead of showing the flow of messages, it depicts the
architecture of the object residing in the system as it is based on object-oriented
programming. An object consists of several features. Multiple objects present in
the system are connected to each other. The collaboration diagram, which is also
known as a communication diagram, is used to portray the object's architecture in
the system.

Notations of a Collaboration Diagram

Following are the components of a component diagram that are enlisted below:

1. Objects: The representation of an object is done by an object symbol with


its name and class underlined, separated by a colon.
In the collaboration diagram, objects are utilized in the following ways:
o The object is represented by specifying their name and class.
o It is not mandatory for every class to appear.
o A class may constitute more than one object.
o In the collaboration diagram, firstly, the object is created, and then its
class is specified.
o To differentiate one object from another object, it is necessary to
name them.
2. Actors: In the collaboration diagram, the actor plays the main role as it in-
vokes the interaction. Each actor has its respective role and name. In this,
one actor initiates the use case.
3. Links: The link is an instance of association, which associates the objects
and actors. It portrays a relationship between the objects through which the
messages are sent. It is represented by a solid line. The link helps an object
to connect with or navigate to another object, such that the message flows
are attached to links.

Page 55 of 65
4. Messages: It is a communication between objects which carries information
and includes a sequence number, so that the activity may take place. It is
represented by a labeled arrow, which is placed near a link. The messages
are sent from the sender to the receiver, and the direction must be navigable
in that particular direction. The receiver must understand the message.

When to use a Collaboration Diagram?

The collaborations are used when it is essential to depict the relationship between
the object. Both the sequence and collaboration diagrams represent the same
information, but the way of portraying it quite different. The collaboration
diagrams are best suited for analyzing use cases.

1. To model collaboration among the objects or roles that carry the functional-
ities of use cases and operations.
2. To model the mechanism inside the architectural design of the system.
3. To capture the interactions that represent the flow of messages between the
objects and the roles inside the collaboration.

Page 56 of 65
4. To model different scenarios within the use case or operation, involving a
collaboration of several objects and interactions.
5. To support the identification of objects participating in the use case.
6. In the collaboration diagram, each message constitutes a sequence number,
such that the top-level message is marked as one and so on. The messages
sent during the same call are denoted with the same decimal prefix, but with
different suffixes of 1, 2, etc. as per their occurrence.

Lab Experiment No.9


Page 57 of 65
Use testing tool such as Junit.

Testing is the process of checking the functionality of the application whether it is


working as per requirements and to ensure that at developer level, unit testing
comes into picture. Unit testing is the testing of single entity (class or method).
Unit testing is very essential to every software company to give a quality product
to their customers.
Unit testing can be done in two ways

Manual testing Automated testing

Executing the test cases manually without


any tool support is known as manual Taking tool support and executing the
testing. test cases by using automation tool is
known as automation testing.
 Time consuming and tedious: Since
test cases are executed by human  Fast Automation runs test cases
resources so it is very slow and significantly faster than human
tedious. resources.

 Huge investment in human  Less investment in human


resources: As test cases need to be resources:Test cases are
executed manually so more testers executed by using automation
are required in manual testing. tool so less tester are required in
automation testing.
 Less reliable: Manual testing is less
reliable as tests may not be  More reliable: Automation tests
performed with precision each time perform precisely same
because of human errors. operation each time they are run.

 Non-programmable: No  Programmable: Testers can


programming can be done to write program sophisticated tests to
sophisticated tests which fetch bring out hidden information.
hidden information.

What is JUnit ?

Page 58 of 65
JUnit is a unit testing framework for the Java Programming Language. It is
important in the test driven development, and is one of a family of unit testing
frameworks collectively known as xUnit.
JUnit promotes the idea of "first testing then coding", which emphasis on setting
up the test data for a piece of code which can be tested first and then can be
implemented . This approach is like "test a little, code a little, test a little, code a
little..." which increases programmer productivity and stability of program code
that reduces programmer stress and the time spent on debugging.

Features

 JUnit is an open source framework which is used for writing & running tests.
 Provides Annotation to identify the test methods.
 Provides Assertions for testing expected results.
 Provides Test runners for running tests.
 JUnit tests allow you to write code faster which increasing quality
 JUnit is elegantly simple. It is less complex & takes less time.
 JUnit tests can be run automatically and they check their own results and
provide immediate feedback. There's no need to manually comb through a
report of test results.
 JUnit tests can be organized into test suites containing test cases and even
other test suites.
 Junit shows test progress in a bar that is green if test is going fine and it turns
red when a test fails

What is a Unit Test Case ?

A Unit Test Case is a part of code which ensures that the another part of code
(method) works as expected. To achieve those desired results quickly, test
framework is required .JUnit is perfect unit test framework for java programming
language.

Page 59 of 65
A formal written unit test case is characterized by a known input and by an
expected output, which is worked out before the test is executed. The known input
should test a precondition and the expected output should test a postcondition.
There must be at least two unit test cases for each requirement: one positive test
and one negative test. If a requirement has sub-requirements, each sub-requirement
must have at least two test cases as positive and negative.
Online
You really do not need to set up your own environment to start learning
Java &JUnit programming language. Reason is very simple, we already
have setup Java Programming environment online, so that you can
compile and execute all the available examples online at the same time
when you are doing your theory work. This gives you confidence in what
you are reading and to check the result with different options. Feel free
to modify any example and execute it online.

Try following example using Try it option available at the top right
corner of the below sample code box:

public class MyFirstJavaProgram {

public static void main(String []args) {


System.out.println("Hello World");
}
}

For most of the examples given in this tutorial, you will find Try it
option, so just make use of it and enjoy your learning.

Local Environment Setup

JUnit is a framework for Java, so the very first requirement is to have JDK
installed in your machine.

System Requirement

Page 60 of 65
JDK 1.5 or above.

Memory no minimum requirement.

Disk Space no minimum requirement.

Operating System no minimum requirement.

Step 1 - verify Java installation in your machine

Now open console and execute the following java command.


OS Task Command

Window
Open Command Console c:\> java –version
s

Open Command
Linux $ java –version
Terminal

Mac Open Terminal machine:~ joseph$ java -version


Let's verify the output for all the operating systems:

OS Output

java version "1.6.0_21"


Window
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
s
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)

java version "1.6.0_21"


Linux Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)

java version "1.6.0_21"


Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Mac
Java HotSpot(TM)64-Bit Server VM (build 17.0-b17, mixed mode,
sharing)

Page 61 of 65
Step 2: Set JAVA environment

Set the JAVA_HOME environment variable to point to the base directory location where Java is
installed on your machine. For example

Window Set the environment variable JAVA_HOME to C:\Program Files\Java\


s jdk1.6.0_21

Linux export JAVA_HOME=/usr/local/java-current

Mac export JAVA_HOME=/Library/Java/Home


Append Java compiler location to System Path.

OS Output

Window Append the string ;C:\Program Files\Java\jdk1.6.0_21\bin to the end of


s the system variable, Path.

Linux export PATH=$PATH:$JAVA_HOME/bin/

Mac not required

Verify Java Installation using java -version command explained above.

Step 3: Download Junit archive

Download latest version of JUnit jar file from http://www.junit.org. At the time of
writing this tutorial, I downloaded Junit-4.10.jar and copied it into C:\>JUnit folder.
OS Archive name

Window
junit4.10.jar
s

Linux junit4.10.jar

Mac junit4.10.jar

Step 4: Set JUnit environment

Page 62 of 65
Set the JUNIT_HOME environment variable to point to the base directory location where JUNIT
jar is stored on your machine. Assuming, we've stored junit4.10.jar in JUNIT folder on various Operating
Systems as follows.

OS Output

Window Set the environment variable JUNIT_HOME to C:\


s JUNIT

Linux export JUNIT_HOME=/usr/local/JUNIT

Mac export JUNIT_HOME=/Library/JUNIT

Step 5: Set CLASSPATH variable

Set the CLASSPATH environment variable to point to the JUNIT jar location. Assuming, we've
stored junit4.10.jar in JUNIT folder on various Operating Systems as follows.

OS Output

Window Set the environment variable CLASSPATH to %CLASSPATH%;


s %JUNIT_HOME%\junit4.10.jar;.;

Linux export CLASSPATH=$CLASSPATH:$JUNIT_HOME/junit4.10.jar:.

Mac export CLASSPATH=$CLASSPATH:$JUNIT_HOME/junit4.10.jar:.

Step 6: Test JUnit Setup

Create a java class file name Test unit in C:\ > JUNIT_WORKSPACE

importorg.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestJunit {
@Test
public void testAdd() {
String str= "Junit is working fine";
assertEquals("Junit is working fine",str);
Page 63 of 65
}
}

Create a java class file name TestRunner in C:\ > JUNIT_WORKSPACE to


execute Test case(s)
importorg.junit.runner.JUnitCore;
importorg.junit.runner.Result;
importorg.junit.runner.notification.Failure;

public class TestRunner {


public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}

Step 7: Verify the Result

Compile the classes using javac compiler as follows


C:\JUNIT_WORKSPACE>javac TestJunit.java TestRunner.java

Now run the Test Runner to see the result


C:\JUNIT_WORKSPACE>java Test Runner

Verify the output.

Lab Experiment No.10

Develop Business Process Diagram of the sample problem

Page 64 of 65
The Business Process Modeling Notation (BPMN) specification provides a graphical notation for
specifying business processes in a Business Process Diagram (BPD).

Page 65 of 65

You might also like