SE Lab Manual
SE Lab Manual
(050)
SOFTWARE ENGINEERING
(2160701)
LAB MANUAL
2160701 Software Engineering
List of Experiment
Branch: Computer Semester : 6th
Subject Name :Software Engineering Subject Code : 2160701
List of experiments
2
2160701 Software Engineering
PRACTICAL-1
Aim: Phases in software development project, overview, needs for coverage of
topic.
3
2160701 Software Engineering
Stage 1: Planning and Requirement Analysis : Requirement analysis is the most important and
fundamental stage in SDLC. It is performed by the senior members of the team with inputs from
the customer, the sales department, market surveys and domain experts in the industry. This
information is then used to plan the basic project approach and to conduct product feasibility
study in the economical, operational, and technical areas.
Planning for the quality assurance requirements and identification of the risks associated with the
project is also done in the planning stage. The outcome of the technical feasibility study is to
define the various technical approaches that can be followed to implement the project
successfully with minimum risks.
Stage 2: Defining Requirements : Once the requirement analysis is done the next step is to
clearly define and document the product requirements and get them approved from the customer
or the market analysts. This is done through ‘SRS’ – Software Requirement Specification
document which consists of all the product requirements to be designed and developed during
the project life cycle.
Stage 3: Designing the product architecture : SRS is the reference for product architects to
come out with the best architecture for the product to be developed. Based on the requirements
specified in SRS, usually more than one design approach for the product architecture is proposed
and documented in a DDS - Design Document Specification. This DDS is reviewed by all the
important stakeholders and based on various parameters as risk assessment, product robustness,
design modularity , budget and time constraints , the best design approach is selected for the
product.
A design approach clearly defines all the architectural modules of the product along with its
communication and data flow representation with the external and third party modules (if any).
The internal design of all the modules of the proposed architecture should be clearly defined with
the minutest of the details in DDS.
Stage 4: Building or Developing the Product : In this stage of SDLC the actual development
starts and the product is built. The programming code is generated as per DDS during this stage.
If the design is performed in a detailed and organized manner, code generation can be
accomplished without much hassle.
Developers have to follow the coding guidelines defined by their organization and programming
tools like compilers, interpreters, debuggers etc are used to generate the code. Different high
level programming languages such as C, C++, Pascal, Java, and PHP are used for coding. The
programming language is chosen with respect to the type of software being developed.
4
2160701 Software Engineering
Stage 5: Testing the Product : This stage is usually a subset of all the stages as in the modern
SDLC models, the testing activities are mostly involved in all the stages of SDLC. However this
stage refers to the testing only stage of the product where products defects are reported, tracked,
fixed and retested, until the product reaches the quality standards defined in the SRS.
Stage 6: Deployment in the Market and Maintenance : Once the product is tested and ready
to be deployed it is released formally in the appropriate market. Sometime product deployment
happens in stages as per the organizations’ business strategy. The product may first be released
in a limited segment and tested in the real business environment (UAT- User acceptance testing).
Then based on the feedback, the product may be released as it is or with suggested enhancements
in the targeting market segment. After the product is released in the market, its maintenance is
done for the existing customer base.
5
2160701 Software Engineering
PRACTICAL-2
Aim: To assign the requirement of engineering task.
Requirements Engineering Tasks
6
2160701 Software Engineering
Inception Task
Elicitation Task
Elaboration Task
• During elaboration, the software engineer takes the information obtained during inception
and elicitation and begins to expand and refine it
• Elaboration focuses on developing a refined technical model of software functions,
features, and constraints
• It is an analysis modeling task
– Use cases are developed
– Domain classes are identified along with their attributes and relationships
– State machine diagrams are used to capture the life on an object
• The end result is an analysis model that defines the functional, informational, and
behavioral domains of the problem
7
2160701 Software Engineering
Negotiation Task
• During negotiation, the software engineer reconciles the conflicts between what the
customer wants and what can be achieved given limited business resources
• Requirements are ranked (i.e., prioritized) by the customers, users, and other stakeholders
• Risks associated with each requirement are identified and analyzed
• Rough guesses of development effort are made and used to assess the impact of each
requirement on project cost and delivery time
• Using an iterative approach, requirements are eliminated, combined and/or modified so
that each party achieves some measure of satisfaction
Specification Task
Validation Task
8
2160701 Software Engineering
• These tables may be stored in a database that relate features, sources, dependencies,
subsystems, and interfaces to the requirements
• A requirements traceability table is also placed at the end of the software requirements
specification
9
2160701 Software Engineering
PRACTICAL-3
Aim: To perform the system analysis, requirement analysis & SRS.
Functional Requirement
R1Faculty Management
- Performance Reports
- Profile
- Faculty login
R2Student Management
- Profile
- Login
- Performance
- Result
R3Attendance Management
-Faculty Attendance
-Student Attendance
-SMS
R4Placement Management
-Officer's Details
-List of Companies
-Records of Students
R5Library Management
-List of Books
-Issue & Return Records
-Admin Login
R6Exam Management
-Timetable
10
2160701 Software Engineering
-Block Allocation
-Papers Distribution
-Result
R7Transport Management
-Bus Details
-Driver Details
-Collection of Fees
-Student & Faculty Records
R8Account Management
-Faculty salary Details
-Students Fees
-Refund
R9Administration
-Certification
-Scholarship Details
-ID Cards
-Enquiry
Non-Functional Requirement
1). Security- The system must provide password to log on the system.
3) Availability- The system should be available during the college hours only.
11
2160701 Software Engineering
Functional Requirement
R1user-Login
R1.1sign in(existing)
-username
-password
R2Plan my travel
-From(List of Source cities)
-To(List of Destination cities)
-Date(Calendar)
-Ticket Type
-Quota
-Find Train
R3Ticket Booking
R3.1Quick Book
12
2160701 Software Engineering
-Source City
-Destination City
-Date
-Train no.
R3.2General Book
-List of Trains
-Select train
-Check seat Availability
-Enter Candidate Name
-Age
-Identicard
R4Payment
13
2160701 Software Engineering
R5Service
-Receive ticket conformation by sms
-Receive ticket conformation by e-mail
R6User Profile
-update Profile
-Change Password
R7Contact
-Toll free no
-email id
R8Ticket Cancelation
-Booking History
-Select Ticket
-Cancel
-Cancelation amount.
R9My Transactions
-Booked History
-Print E-Ticket
-Cancel E-Ticket/Refund
-Cancelled History
-Refund status of Cancelled Ticket
-Refund Status of Failed transaction
R10General
-Terms & Conditions
-Cancellation Procedure
-Feedback
-Track your Ticket
14
2160701 Software Engineering
R11Administrator
-update train list
-update train Route
-update seat availability
-update Ticket Charges
-update Reservation charges
-update Tatkal quota charges
-works on feedback received by users
Non-Functional Requirement
3) Security- The system must provide password to log on the system. The
users should be allowed to the access the whole system for railway reservation.
The user is allowed to change their password for security purpose.
15
2160701 Software Engineering
PRACTICAL-4
Aim: To perform the functional oriented diagram DFD.
Whilst state transition diagrams can show how the system moves from one state to another,
sometimes the emphasis is to understand how data is changed as it flows through the system.
And this strength of analysis tool is called as a 'Data Flow Diagram' or DFD. Data flow
diagrams are often used to show how an organization handles incoming data such as a customer
order.
[LEVEL 0]
16
2160701 Software Engineering
[LEVEL 1]
17
2160701 Software Engineering
[LEVEL 2]
18
2160701 Software Engineering
[LEVEL 0]
19
2160701 Software Engineering
[LEVEL 1]
20
2160701 Software Engineering
PRACTICAL-5
Aim: To perform the users view analysis.(use case diagram)
Use Case Diagram: A use case illustrates a unit of functionality provided by the system. The
main purpose of the use-case diagram is to help development teams visualize the functional
requirements of a system, including the relationship of "actors" (human beings who will interact
with the system) to essential processes, as well as the relationships among different use cases.
Use-case diagrams generally show groups of use cases -- either all use cases for the complete
system, or a breakout of a particular group of use cases with related functionality. To show a use
case on a use-case diagram, draw an oval in the middle of the diagram and put the name of the
use case in the center of, or below, the oval. To draw an actor (indicating a system user) on a
use-case diagram, you draw a stick person to the left or right of your diagram (and just in case
you're wondering, some people draw prettier stick people than others). Use simple lines to depict
relationships between actors and use cases.
21
2160701 Software Engineering
22
2160701 Software Engineering
PRACTICAL-6
Aim: To draw the structural view diagram: Class diagram, object diagram.
Class Diagram : The class diagram shows how the different entities (people, things, and data)
relate to each other; in other words, it shows the static structures of the system. A class diagram
can be used to display logical classes. Class diagrams can also be used to show implementation
classes, which are the things that programmers typically deal with. An implementation class
diagram will probably show some of the same classes as the logical class diagram. The
implementation class diagram won't be drawn with the same attributes, however, because it will
most likely have references to things like Vectors and Hash Maps. A class is depicted on the
class diagram as a rectangle with three horizontal sections, as shown in Figure. The upper section
shows the class's name; the middle section contains the class's attributes; and the lower section
contains the class's operations (or "methods").
23
2160701 Software Engineering
24
2160701 Software Engineering
25
2160701 Software Engineering
PRACTICAL-7
Aim: To draw the behavioral view diagram:Sequence diagram, Collaboration
diagram.
Sequence Diagram: Sequence diagrams show a detailed flow for a specific use case or even
just part of a specific use case. They are almost self explanatory; they show the calls between the
different objects in their sequence and can show, at a detailed level, different calls to different
objects. A sequence diagram has two dimensions: The vertical dimension shows the sequence of
messages/calls in the time order that they occur; the horizontal dimension shows the object
instances to which the messages are sent. A sequence diagram is very simple to draw. Across
the top of your diagram, identify the class instances (objects) by putting each class instance
inside a box . In the box, put the class instance name and class name separated by a
space/colon/space " : " . If a class instance sends a message to another class instance, draw a line
with an open arrowhead pointing to the receiving class instance; place the name of the
message/method above the line. Optionally, for important messages, you can draw a dotted line
with an arrowhead pointing back to the originating class instance; label the return value above
the dotted line.
26
2160701 Software Engineering
RAILWAY
PASSENGER TRAIN ETICKET DATABASE BANK
ADMINISTRATOR
Login to reservation
Successful login
Check avialability
If available
Request to eticket
Provide eticket
27
2160701 Software Engineering
28
2160701 Software Engineering
PRACTICAL-8
Aim: To draw the behavioral view diagram:State-chart diagram, Activity
diagram.
State-chart Diagram : The statechart diagram models the different states that a class can be
in and how that class transitions from state to state. It can be argued that every class has a state,
but that every class shouldn't have a statechart diagram. Only classes with "interesting" states --
that is, classes with three or more potential states during system activity -- should be modeled.
The notation set of the state chart diagram has five basic elements: the initial starting point,
which is drawn using a solid circle; a transition between states, which is drawn using a line with
an open arrowhead; a state, which is drawn using a rectangle with rounded corners; a decision
point, which is drawn as an open circle; and one or more termination points, which are drawn
using a circle with a solid circle inside it. To draw a statechart diagram, begin with a starting
point and a transition line pointing to the initial state of the class. Draw the states themselves
anywhere on the diagram, and then simply connect them using the state transition lines.
29
2160701 Software Engineering
Activity Diagram: Activity diagrams show the procedural flow of control between two or
more class objects while processing an activity. Activity diagrams can be used to model higher-
level business process at the business unit level, or to model low-level internal class actions. In
my experience, activity diagrams are best used to model higher-level processes, such as how the
company is currently doing business, or how it would like to do business. This is because activity
diagrams are "less technical" in appearance, compared to sequence diagrams, and business-
minded people tend to understand them more quickly. An activity diagram's notation set is
similar to that used in a state chart diagram. Like a state chart diagram, the activity diagram starts
with a solid circle connected to the initial activity. The activity is modeled by drawing a
rectangle with rounded edges, enclosing the activity's name. Activities can be connected to other
30
2160701 Software Engineering
activities through transition lines, or to decision points that connect to different activities guarded
by conditions of the decision point. Activities that terminate the modeled process are connected
to a termination point (just as in a statechart diagram). Optionally, the activities can be grouped
into swimlanes, which are used to indicate the object that actually performs the activity, as
shown in Figure.
31
2160701 Software Engineering
32
2160701 Software Engineering
PRACTICAL-9
Aim: To draw the implementation view diagram:Component diagram.
Component Diagram: A component diagram provides a physical view of the system. Its
purpose is to show the dependencies that the software has on the other software components
(e.g., software libraries) in the system. The diagram can be shown at a very high level, with just
the large-grain components, or it can be shown at the component package level.
33
2160701 Software Engineering
34
2160701 Software Engineering
PRACTICAL-10
Aim: To draw the environmental view diagram:Deployment diagram.
Deployment Diagram: The deployment diagram shows how a system will be physically
deployed in the hardware environment. Its purpose is to show where the different components of
the system will physically run and how they will communicate with each other. Since the
diagram models the physical runtime, a system's production staff will make considerable use of
this diagram. The notation in a deployment diagram includes the notation elements used in a
component diagram, with a couple of additions, including the concept of a node. A node
represents either a physical machine or a virtual machine node (e.g., a mainframe node). To
model a node, simply draw a three-dimensional cube with the name of the node at the top of the
cube. Use the naming convention used in sequence diagrams: [instance name] :[instance type].
35
2160701 Software Engineering
36