List of Experiment
List of Experiment
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.
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.
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.
<Each requirement should be uniquely identified with a sequence number or a meaningful tag of some
kind.>
REQ-1:
REQ-2:
Step 4:
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.
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
Develop DFD model (level-0, level-1 DFD and Data dictionary) of the project.
OVERALL DESCRIPTION:
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 organization 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.
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:
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
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.
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’.
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 gross Pay consists of the components regular Pay and overtime Pay.
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.
Experiment No. 3
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 is 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 checkout 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.
Experiment No. 4
Objective:
Software Required: -
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:
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.
Step 5:
Step 6: -
Step 7:
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:
Step 9:
Step 10:
Create a package
Drag the mouse to create a package surrounding those use cases.
Step 11:
Step 12
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 become
"001".
Suffix The suffix you enter in Suffix text field will be inserted behind the number.
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
NOTE The feature of showing ID does only support for use case, but not for
: 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
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
Objective:
To understand the interactions between objects that are represented as lifelines in a sequential order
of a project using Sequence Diagram.
Software Required: -
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.
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.
Step 5: -
You can also use magnet to pull shapes together. To use magnet, click Magnet on the diagram
toolbar (under the Tools category).
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.
Step 6: -
Step 8: -
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.
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.
Click OK button.
2. Otherwise, click Add button to add a new operand and then name it. Click OK button.
There are two panes, Lifelines and Messages. The Lifelines pane enables you to create different
kinds of actors and lifelines.
Button Shortcut Description
Alt-Shift-A To create an actor
Alt-Shift-L To create a general lifeline
Alt-Shift-E To create an <<entity>> lifeline
Alt-Shift-C To create a <<control>> lifeline
Alt-Shift-B To create a <<boundary>> lifeline
Alt-Shift-O To open the specification of the element chosen in quick editor
Ctrl-Del To delete the element chosen in quick editor
To link with the diagram, which cause the diagram element to be selected when
Ctrl-L
selecting an 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.
Messages pane in quick editor
Button
Shortcut Description
Collapse Quick
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.
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.
Experiment No. 7
Objective: -
To show diagrammatically the objects required and the relationships between them while
developing a software product.
Software Required: -
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.
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.
Step 3: -
To edit multiplicity of an association end, right-click near the association end, select Multiplicity from
the popup menu and then select a multiplicity.
To show the direction of an association, right click on it and select Presentation Options > Show
Direction from the pop-up menu.
Step 4: -
Creating generalization
To create generalization from class, click the Generalization -> 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 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.
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.
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.
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: -
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.
The selected generalizations are grouped. Adjust the connector to make the diagram tidy.
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
What is JUnit?
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.
● 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
A Unit Test Case is a part of code which ensures that 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.
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:
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
OS Task Command
OS Output
Set the JAVA_HOME environment variable to point to the base directory location where Java is
installed on your machine. For example
OS Output
Append the string; C:\Program Files\Java\jdk1.6.0_21\bin to the end of the system variable,
Windows
Path.
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
Windows junit4.10.jar
Linux junit4.10.jar
Mac junit4.10.jar
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
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
Set the environment variable CLASSPATH
Windows
to %CLASSPATH%;%JUNIT_HOME%\junit4.10.jar;.;
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);
}
}
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;
The Business Process Modeling Notation (BPMN) specification provides a graphical notation for
specifying business processes in a Business Process Diagram (BPD).