SD Lab Manual Kushagra Mehrotra A117
SD Lab Manual Kushagra Mehrotra A117
SD Lab Manual Kushagra Mehrotra A117
Academic Year-2020-21
Department of Electronics & Telecommunication
Programme: B.Tech(Integrated)- Computer
Year-II, Semester- IV
Course: Software Design with UML
COURSE FACULTY
Tejaswini Chavan
Index
2 Course Outcomes 4
5 Lab Manual 6
Student Outcomes
2. Apply engineering design to produce solutions that meet specified needs with consideration
of public health, safety, and welfare, as well as global, cultural, social, environmental, and
economic factors.
6. Develop and conduct appropriate experimentation, analyze and interpret data, and use
engineering judgment to draw conclusions.
7. Acquire and apply new knowledge as needed, using appropriate learning strategies.
Course Outcomes:
CO-1 M
CO-2 H M
CO-3 H
CO-4 M H M
SVKM’s NMIMS
School of Technology Management & Engineering
Computer Engineering Department
Program: B.Tech CSBS
9. Coding for any Two module of your Code, understanding about CO4
project selected according to the unit testing, integration testing
designs which already designed and
analyzed in EXP.1-7
10. To understand and develop test cases Function point, COCOMO CO4
for object oriented systems. model
PART A
EXPERIMENT NO. 1
A.1 AIM: - Learning the Star UML environment.
A.2 Prerequisite
1. Concepts of Software Engineering, Process Model
A.3 Outcome
After successful completion of this training students will be able to use Star
UML for creating the UML model with respect to given case study.
Design solution using unified modeling language.
A.4 Task:
Every student needs to follow following steps and record the findings
in appropriate section of PART B
1. Download Star UML software in your machine and Prepare necessary documentation
for doing hands on with Star UML.
2. Select the appropriate case study to design UML diagrams.
3. Identify the Scope of the problems selected
4. Identify the end user of the solution
5. Identify the functional requirements of the project
6. Identify the non-functional requirements of the project
7. Identify the feasibility of the project(Economical feasibility)
8. Frame the final problem statement.
9. List down the list of user requirements, system requirements.
10. Identify the ambiguities, inconsistencies, incompleteness from the requirements
gathered.
11. List down the development plan for the selected problem
statements- SDLC(Software development life cycle)
PART B
(PART B: TO BE COMPLETED BY STUDENTS)
(Students must submit the soft copy as per the following segments within two hours of the
practicals. The soft copy must be uploaded on Blackboard LMS or emailed to the concerned
Lab in charge Faculties at the end of practical; in case Blackboard is not accessible)
Class: - Batch: A2
Grade:
B.3 Conclusion
We learned about and how to use Star UML software.
2. What is SRS? Download sample IEEE SRS format and prepare the relevant part of
the same for this experiment
A. Functional requirements are the specific tasks and functions that the software must
perform to meet the user's needs. They define what the software should do and how it
should behave. Examples of functional requirements include user authentication, data
processing, report generation, and error handling.
PART A
EXPERIMENT NO. 2
A.1 AIM: - Modeling UML Use Case diagrams and capturing Use Case scenarios.
A.2 Prerequisite
Concepts of Actor, Use Case and Relationships
A.3 Outcome
After successful completion of this experiment students will be able to
Design solution using unified modeling language.
A.4 Theory
Use case diagrams
Use case diagrams belong to the category of behavioral diagram of UML diagrams. Use case
diagrams aim to present a graphical overview of the functionality provided by the system. It
consists of a set of actions (referred to as use cases) that the concerned system can perform,
one or more actors, and dependencies among them.
Actor
An actor can be defined as an object or set of objects, external to the system, which interacts
with the system to get some meaningful work done. Actors could be human, devices, or even
other systems.
For example, consider the case where a customer withdraws cash from an ATM. Here,
customer is a human actor.
Actors can be classified as below :
• Primary actor: They are principal users of the system, who fulfill their goal by availing
some service from the system. For example, a customer uses an ATM to withdraw cash
when he needs it. A customer is the primary actor here.
• Supporting actor: They render some kind of service to the system. "Bank
representatives", who replenishes the stock of cash, is such an example. It may be noted
that replenishing stock of cash in an ATM is not the prime functionality of an ATM.
In a use case diagram primary actors are usually drawn on the top left side of the diagram.
Use Case
A use case is simply a functionality provided by a system. Continuing with the example of the
ATM, withdraw cash is a functionality that the ATM provides. Therefore, this is a use case.
Other possible use cases includes, check balance, change PIN, and so on.
Use cases include both successful and unsuccessful scenarios of user interactions with the
system. For example, authentication of a customer by the ATM would fail if he enters wrong
PIN. In such case, an error message is displayed on the screen of the ATM.
Subject
Subject is simply the system under consideration. Use cases apply to a subject. For example,
an ATM is a subject, having multiple use cases, and multiple actors interact with it. However,
one should be careful of external systems interacting with the subject as actors.
Graphical Representation
An actor is represented by a stick figure and name of the actor is written below it. A use case
is depicted by an ellipse and name of the use case is written inside it. The subject is shown by
drawing a rectangle. Label for the system could be put inside it. Use cases are drawn inside the
rectangle, and actors are drawn outside the rectangle, as shown in below figure:
Association between Actors and Use Cases
A use case is triggered by an actor. Actors and use cases are connected through binary
associations indicating that the two communicates through message passing.
An actor must be associated with at least one use case. Similarly, a given use case must be
associated with at least one actor. Association among the actors are usually not shown.
However, one can depict the class hierarchy among actors.
Include Relationship
Include relationships are used to depict common behaviour that are shared by multiple use
cases. This could be considered analogous to writing functions in a program in order to avoid
repetition of writing the same code. Such a function would be called from different points
within the program.
Example
For example, consider an email application. A user can send a new mail, reply to an email he
has received, or forward an email. However, in each of these three cases, the user must be
logged in to perform those actions. Thus, we could have a login use case, which is included
bycompose mail, reply, and forward email use cases. The relationship is shown in below
figure.
Extend Relationship
Use case extensions are used used to depict any variation to an existing use case. They are used
to specify the changes required when any assumption made by the existing use case becomes
false.
Example
Let's consider an online bookstore. The system allows an authenticated user to buy selected
book(s). While the order is being placed, the system also allows to specify any special shipping
instructions, for example, call the customer before delivery. This Shipping Instructionsstep is
optional, and not a part of the main Place Order use case. Below figure depicts such
relationship.
Place Order
<<extends>>
Shipping
Instruction
Generalization Relationship
Generalization relationship are used to represent the inheritance between use cases. A derived
use case specializes some functionality it has already inherited from the base use case.
Example
To illustrate this, consider a graphical application that allows users to draw polygons. We could
have a use case draw polygon. Now, rectangle is a particular instance of polygon having four
sides at right angles to each other. So, the use case draw rectangle inherits the properties of the
use case draw polygon and overrides it's drawing method. This is an example of generalization
relationship. Similarly, a generalization relationship exists between draw rectangle and draw
square use cases.
A.5 Task:
For the problem statement, complete use case modelling in StarUML.
PART B
(PART B: TO BE COMPLETED BY STUDENTS)
(Students must submit the soft copy as per the following segments within two hours of the
practicals. The soft copy must be uploaded on Blackboard LMS or emailed to the concerned
Lab in charge Faculties at the end of practical; in case Blackboard is not accessible)
Class: - Batch: A2
Date of Experiment: - Date of Submission:
Grade:
B.1 Actors:
B.5 Conclusion
We completed use case modelling in star UML.
a. A set of actions
b. Time sequence of statements executed
c. How to use a particular module
d. Don’t know
Answer:_ b. A use case derives from a base use case and specializes some of its inherited
functionality.
PART A
EXPERIMENT NO. 3
A.1 AIM: - To draw the behavioral view diagram: Sequence diagram, Collaboration
diagram
A.2 Prerequisite
Determine the desired flow of action and their interaction with each other
A.3 Outcome
After successful completion of this experiment students will be able to -
1. Better understanding of the interaction diagrams.
2. Get familiar with sequence & collaboration diagrams.
3. Practice drawing the interaction diagrams using StarUML
A.4 Theory
Interaction diagrams describe how groups of objects collaborate in some behavior. An
interaction diagram typically captures the behavior of a single use case. Interaction diagrams
do not capture the complete behavior, only typical scenarios.
Diagram is used to describe some type of interactions among the different elements in the
model. Interaction is part of the dynamic behavior of the system – snapshot of running system
at a particular moment. Sequence diagram emphasizes on time sequence of messages
collaboration diagram emphasizes on the structural organization of the objects that send and
receive messages.
For sequence diagram things to be identified:
– Objects taking part in the interaction – three types of objects – Entity, Control, Boundary
objects
– Message flow among objects
– The sequence in which messages are flowing
– Object organization
Sequence Diagram -
Sequence diagrams are a graphical way to illustrate a scenario:
• They are called sequence diagrams because they show the sequence of message
passing between objects.
• Another big advantage of these diagrams is that they show when the objects are
created and when they are destructed. They also show whether messages are
synchronous or asynchronous
Collaboration Diagram -
They are the same as sequence diagrams but without a time axis:
• Their message arrows are numbered to show the sequence of message sending.
• They are less complex and less descriptive than sequence diagrams.
• These diagrams are very useful during design because you can figure out how objects
communicate with each other.
A.5 Procedure/Algorithm
A.5.1 Task:
Draw a sequence diagram for the case study.
Class: - Batch: A2
Grade:
B.1 Objects
Entity objects:
Boundary objects:
Control objects:
B.4 Conclusion
We drew the behavioral view diagrams: Sequence diagram and Collaboration diagram.
B.5 Questions of Curiosity:
Q1. State the difference between entity, boundary and control objects.
A. Entity objects represent the data or information that is being manipulated or processed by the
system. They typically correspond to the nouns in a problem domain and are often used to represent
persistent data that needs to be stored or retrieved from a database. Examples of entity objects
might include Customer, Order, or Invoice.
Boundary objects represent the interaction between the system and its environment, such as
the user interface or other external systems. They are responsible for input/output operations
and for presenting information to the user. Examples of boundary objects might include a
web form, a report, or a dialog box.
Control objects represent the logic and control flow of the system. They are responsible for
coordinating the interaction between the entity and boundary objects, and for implementing
the business rules that govern the system's behavior. Examples of control objects might
include a controller, a manager, or a process.
Collaboration diagrams, on the other hand, show the relationships between objects in a
system and the messages that are passed between them to accomplish a specific task.
Collaboration diagrams are more focused on the static relationships between objects and how
they work together to achieve a common goal.
B.6 Conclusion
We drew the behavioral view diagrams: Sequence diagram, Collaboration diagram
PART A
EXPERIMENT NO. 4
A.1 AIM: - Modeling UML Class diagrams.
A.2 Prerequisite
Concepts of Actor, Use Case and Relationships, Sequence and collaboration
diagram
A.3 Outcome
After successful completion of this experiment students will be able to
Design solution using unified modeling language.
A.4 Task:
PART B
(PART B: TO BE COMPLETED BY STUDENTS)
(Students must submit the soft copy as per the following segments within two hours of the
practicals. The soft copy must be uploaded on Blackboard LMS or emailed to the concerned
Lab in charge Faculties at the end of practical; in case Blackboard is not accessible)
Grade:
B.4 Conclusion
We modelled the class diagram on Star UML.
A.4 Theory
Activity diagrams are flow charts that are used to show the workflow of a system.
They also:
Activity1
• Swimlane (vertical)
• Swimlane (horizontal): Swim lane- depicts which human organization is responsible
for an activity. Organization – sales, finance, marketing, purchasing etc. Swim lane
indicates that activity is performed by a person or persons within the organization.
Swimlane1
Swimlane2
PART B
(PART B: TO BE COMPLETED BY STUDENTS)
(Students must submit the soft copy as per the following segments within two hours of the
practicals. The soft copy must be uploaded on Blackboard LMS or emailed to the concerned
Lab in charge Faculties at the end of practical; in case Blackboard is not accessible)
Class: - Batch: A2
Grade:
Q.2 State the difference between branches and fork and join in activity diagram.
A. For the branching of flows in two or more parallel flows we use a synchronization bar,
which is depicted as a thick horizontal or vertical line i.e. frok, on the other hand, for the
consolidation of two or more parallel flows we also use a synchronization bar, which is
depicted as a thick horizontal or vertical line i.e. join.
PART A
EXPERIMENT NO. 6
A.1 AIM: - To draw the State Diagram
A.2 Prerequisite
Determine the State Diagram for the case study.
A.3 Outcome
After successful completion of this experiment students will be able to -
Draw the state diagrams using StarUML
A.4 Procedure/Algorithm
A.4.1 Task:
Draw a state diagram for the case study.
PART B
(PART B: TO BE COMPLETED BY STUDENTS)
(Students must submit the soft copy as per the following segments within two hours of the
practicals. The soft copy must be uploaded on Blackboard LMS or emailed to the concerned
Lab in charge Faculties at the end of practical; in case Blackboard is not accessible)
Class: - Batch: A2
Grade:
PART A
EXPERIMENT NO. 7
A.1 AIM: - To draw Component Diagram
A.2 Outcome
After successful completion of this experiment students will be able to –
Practice drawing the component and deployment diagram using StarUML
A.3 Theory
This exercise focuses on component diagram, which depict the implementation of a
system.
Component modeling is a specialized type of structural modeling concerned with
modeling the implementation of a system. Using the UML, you can communicate the
implementation of a system using component diagrams. You usually apply component
modeling during design activities to determine how implementation activities will build
the system; that is, to determine the elements of the system on which implementation
activities will focus. Component modeling typically starts after the design of the system
is fairly complete, as determined by your system development process.
1. Component
A component is a part of the system that exists when the system is executing. For
example, the project management system may be decomposed into the following
components:
A user interface component
Responsible for providing a user interface through which users may interact with
the system
A business-processing component
Responsible for implementing business functionality, including all the project
management functionality provided by the project management system
A data component
For implementing data storage functionality
A security component
Provides various forms of security functionality to the business-processing and data
components, including user authentication and verifying user privileges when
accessing data
You can use the UML to talk about classes of components as well as specific
components of a class. When speaking of a class of components, it's customary to
use the terms component or component class. Thus, while you might think of a
component as a specific thing, in the UML, a component really represents a class
of things. When speaking of a specific component of a class, use the
term component instance.
A component exists during execution time and requires a resource on which to
execute,. In the UML, a component is shown as a rectangle with two small
rectangles protruding from its side. The rectangle is labelled with the name of the
component class.
Figure 1 shows various components associated with the project management
system, including user interface, business-processing, data, and security
components.
2. Nodes
Figure 3 shows various nodes associated with the project management system,
including a desktop client, business-processing server, database server, and printer
node.
Figure 4 shows various node instances of the node classes in Figure 3, including
two desktop client node instances, named Jonathan's Computer and Andy's
Computer, two business-processing node instances, named Group Server
and Enterprise Server, a printer node instance, named Group Printer, and a database
server node instance.
3. Dependencies
Figure 1 shows components associated with the project management system, and
Figure 3 shows nodes associated with the project management system, but how are
components related to undifferentiated and differentiated classes, packages,
subsystems, and to other components and nodes? Specialized types of dependencies
called reside, use, and deploy dependencies address these questions. The next few
sections discuss these specialized types of dependencies.
Figure 6 shows that the Business Processing subsystem and Utility package reside
in the Business Processing component. Because the Business Processing subsystem
provides the IBusiness Processing interface, the Business Processing component
also provides the interface. Again, because the Business Processing subsystem
depends on the Utility package, the Business Processing subsystem
and Utility package must reside in the same component; otherwise,
the Business Processing subsystem would not be able to use the Utility package.
Remember, it's perfectly fine for an element to reside in more than one component.
For example, the Utility package resides in both the User Interface and Business
Processing components, and, as you will soon see, in the Data component.
Notice that the Utility package resides in all the components in Figures Figure 5,
Figure 6, and Figure 7, because each component described in those figures has a
package that uses the Utility package.
Figure 8 shows how the various components of the project management system are
related:
Figure 9 shows that the User Interface component is deployed on the Desktop
Client node.
Class: - Batch: A2
Grade:
B.4 Conclusion
We drew the component diagram.
PART A
EXPERIMENT NO. 8
A.2 Outcome
After successful completion of this experiment students will be able to -
A.3 Theroy
This exercise focuses on component diagram, which depict the implementation of a
system.
Component modeling is a specialized type of structural modeling concerned with
modeling the implementation of a system. Using the UML, you can communicate the
implementation of a system using component diagrams. You usually apply component
modeling during design activities to determine how implementation activities will build
the system; that is, to determine the elements of the system on which implementation
activities will focus. Component modeling typically starts after the design of the system
is fairly complete, as determined by your system development process.
4. Component
A component is a part of the system that exists when the system is executing. For
example, the project management system may be decomposed into the following
components:
A data component
For implementing data storage functionality
A security component
Provides various forms of security functionality to the business-processing and data
components, including user authentication and verifying user privileges when
accessing data
You can use the UML to talk about classes of components as well as specific
components of a class. When speaking of a class of components, it's customary to
use the terms component or component class. Thus, while you might think of a
component as a specific thing, in the UML, a component really represents a class
of things. When speaking of a specific component of a class, use the
term component instance.
5. Nodes
A node is a resource that is available during execution time. Traditionally, nodes
refer to computers on a network, but in the UML a node may be a computer, printer,
server, Internet, or any other kind of resource available to components. For
example, the project management system may be deployed on the following nodes:
A desktop client
On which the user interface component executes
A printer
Which the project management system uses to print reports
A business-processing server
On which the business-processing component executes
A database server
On which the data component executes and where project-related information is
stored.
Nodes follow the type-instance dichotomy and applied to classes and objects. You
can use the UML to talk about classes of nodes, as well as specific nodes of a class.
When speaking of a class of nodes, it's customary to use the terms node or node
class. Thus, while you might think of a node as a specific thing, in the UML, a node
really represents a class of nodes. When speaking of a specific component of a class,
use the term node instance.
A node is available during execution time and is a resource on which components
may execute. In the UML, a node is shown as a three-dimensional rectangle labelled
with the node's name.
Figure 3 shows various nodes associated with the project management system,
including a desktop client, business-processing server, database server, and printer
node.
Figure 4 shows various node instances of the node classes in Figure 3, including
two desktop client node instances, named Jonathan's Computer and Andy's
Computer, two business-processing node instances, named Group Server
and Enterprise Server, a printer node instance, named Group Printer, and a database
server node instance.
6. Dependencies
Figure 1 shows components associated with the project management system, and
Figure 3 shows nodes associated with the project management system, but how are
components related to undifferentiated and differentiated classes, packages,
subsystems, and to other components and nodes? Specialized types of dependencies
called reside, use, and deploy dependencies address these questions. The next few
sections discuss these specialized types of dependencies.
Figure 5 shows that the User Interface and Utility packages reside in
the User Interface component. Because the User Interface package depends on
the Utility package, the User Interface and Utility packages must reside in the same
component; otherwise, the User Interface package would not be able to use the
Utility package.
Figure 6 shows that the Business Processing subsystem and Utility package reside
in the Business Processing component. Because the Business Processing subsystem
provides the IBusiness Processing interface, the Business Processing component
also provides the interface. Again, because the Business Processing subsystem
depends on the Utility package, the Business Processing subsystem
and Utility package must reside in the same component; otherwise,
the Business Processing subsystem would not be able to use the Utility package.
Remember, it's perfectly fine for an element to reside in more than one component.
For example, the Utility package resides in both the User Interface and Business
Processing components, and, as you will soon see, in the Data component.
Figure 6. Reside dependencies for subsystems
Notice that the Utility package resides in all the components in Figures Figure 5,
Figure 6, and Figure 7, because each component described in those figures has a
package that uses the Utility package.
Class: - Batch: A2
Grade:
B.4 Conclusion
We drew the deployment diagram.
PART A
EXPERIMENT NO. 9
Experiment 9
A.1 Aim: Coding for any Two module of your project selected according to the designs
which already designed and analyzed in EXP.1-6
A.2 Prerequisite:
Use case diagram, class diagram, State diagram
A.3 Outcome:
Coding : The objective of the coding phase is to transform the design of a system into code in
a high-level language and then to unit test this code. Good software development organizations
normally require their programmers to adhere to some well-defined and standard style of
coding called coding standards.
Coding Standards- A coding standard gives a uniform appearance to the codes written by
different engineers. It enhances code understanding. It encourages good programming
practices.
Limiting the use of global data type. Contents of the headers preceding codes for different
modules naming conventions for global variables, local variables, and constant identifiers.
Error return conventions and exception handling mechanisms Representative Coding
Standards. Do not use a coding style that is too clever or too difficult to understand. Avoid
obscure side effects .Do not use an identifier for multiple purposes. The code should be well-
documented.
Code Review:
Code review for a model is carried out after the module is successfully compiled and all the
syntax errors have been eliminated. Normally, two types of reviews are carried out on the code
of a module.
Code Walk Through: To discover the algorithm and logical errors in the code.
Code Inspection: The aim of code inspection is to discover some common types of errors
caused due to oversight and improper programming.
Software Documentation:Good documents are very useful and serves the following purposes.
Good documents enhance understandability and maintainability of a software product. It helps
the users in effectively using the system. Helps in effectively handling the manpower turnover
problem. Helps the manager in effectively tracking the progress of the project.
Software Documentation classified into the following: Internal documentation: These are
provided in the source code itself
External documentation: These are the supporting documents that usually accompany a
software product
**********************
PART B
(PART B: TO BE COMPLETED BY STUDENTS)
(Students must submit the soft copy as per the following segments within two hours of the
practicals. The soft copy must be uploaded on Blackboard LMS or emailed to the concerned
Lab in charge Faculties at the end of practical; in case Blackboard is not accessible)
Class: - Batch: A2
Grade:
B.1 Task:
While viewing from PC:
While viewing from Phone:
B.1 Conclusion
We developed the user interface as required of our project i.e. Library Management System.
PART A
EXPERIMENT NO. 10
A.1 AIM: - To Design Test Cases
A.2 Outcome
After successful completion of this experiment students will be able to design the test
cases
Learn different testing methods and design test cases for their project
A.3 Theory
A.4 Task:
For Selected Case Study write appropriate test cases and adopt necessary test comments to
existing coding. Improve the quality of the coding which is performed in Experiment-9.
PART B
(PART B: TO BE COMPLETED BY STUDENTS)
(Students must submit the soft copy as per the following segments within two hours of the
practicals. The soft copy must be uploaded on Blackboard LMS or emailed to the concerned
Lab in charge Faculties at the end of practical; in case Blackboard is not accessible)
Class: - Batch: A2
Grade:
B.1 Task:
For Selected Case Study write appropriate test cases and adopt necessary test comments to
existing coding. Improve the quality of the coding which is performed in Experiment-9.