bcs-651 SE Lab Manual
bcs-651 SE Lab Manual
KANPUR
Semester - VI
Lab File
Software Engineering
(BCS 651)
● List of Experiments
● Index
ii. To prepare students for emerging trends in computer and related industry.
iii. To develop competence in students by providing them with skills and aptitude to foster
culture of continuous and lifelong learning.
iv. To develop practicing engineers who investigate research, design, and find workable
solutions to complex engineering problems with awareness & concern for society as well as the
environment.
ii. Graduates will possess the capability of designing successful innovative solutions to real life
problems that are technically sound, economically viable and socially acceptable.
iii. Graduates will be competent team leaders, effective communicators and capable of working
in multidisciplinary teams following ethical values.
iv. The graduates will be capable of adapting to new technologies/tools and constantly upgrading
their knowledge and skills with an attitude for lifelong learning
The students of the Computer Science and Engineering Department will be able:
2. Problem analysis: Identify, formulate, review research literature, and analyze complex
engineering problems reaching substantiated conclusions using first principles of
mathematics, natural sciences, and Computer Science & Engineering sciences.
5. Modern tool usage: Create, select, and apply appropriate techniques, resources, and
modern engineering and IT tools including prediction and modelling to complex
Computer Science & Engineering activities with an understanding of the limitations.
8. Ethics: Apply ethical principles and commit to professional ethics and responsibilities
and norms of the Computer Science & Engineering practice.
11. Project management and finance: Demonstrate knowledge and understanding of the
Computer Science & Engineering and management principles and apply these to one’s
own work, as a member and leader in a team, to manage projects and in
multidisciplinary environments.
12. Life-long learning: Recognize the need for and have the preparation and ability to
engage in independent and life-long learning in the broadest context of technological
change.
2. Understand the processes that support the delivery and management of information
systems within a specific application environment.
BCS-651.2 Discuss [2. Comprehension] the scope of Software Engineering to students where
they can infer small, real-life problems.
Apply [3. Application] the development & design concepts in DFDs, UML
BCS-651.3
Diagrams, others to develop, implement, and demonstrate the learning through a
project that meet stated specifications.
Requirements:
Software Requirements:
Theory:
SRSs are typically developed during the first stages of "Requirements Development,"
which is the initial product development phase in which information is gathered about
what requirements are needed--and not. This information-gathering stage can include
onsite visits, questionnaires, surveys, interviews, and perhaps a return-on-investment
(ROI) analysis or needs analysis of the customer or client's current business environment.
The actual specification, then, is written after the requirements have been gathered and
analyzed.
b) External interfaces. How does the software interact with people, the system’s hardware,
other hardware, and other software?
c) Performance. What is the speed, availability, response time, recovery time of various
software functions, etc.?
6. Other Requirements
Appendix A: Terminology/Glossary/Definitions list
7.
Appendix B: To be determined
Conclusion: The SRS was made successfully by following the steps described above.
SRS-
Software Requirements:
Theory:
According to the UML specification a use case diagram is “a diagram that shows the
relationships among actors and use cases within a system.” Use case diagrams are often
used to:
● Model your analysis of your usage requirements in the form of a system use case
model
Use case models should be developed from the point of view of your project stakeholders
and not from the (often technical) point of view of developers. There are guidelines for:
Use Cases
Actors
Relationships
1. Use Cases
A use case describes a sequence of actions that provide a measurable value to an actor. A
use case is drawn as a horizontal ellipse on a UML use case diagram.
An actor is a person, organization, or external system that plays a role in one or more
interactions with your system (actors are typically drawn as stick figures on UML Use
Case diagrams).
3. Relationships
There are several types of relationships that may appear on a use case diagram:
Associations are depicted as lines connecting two modeling elements with an optional
open-headed arrowhead on one end of the line indicating the direction of the initial
invocation of the relationship. Generalizations are depicted as a close-headed arrow with
the arrow pointing towards the more general modeling element.
The rectangle around the use cases is called the system boundary box and as the name
suggests it indicates the scope of your system – the use cases inside the rectangle
represent the functionality that you intend to implement.
We start by identifying as many actors as possible. You should ask how the actors
interact with the system to identify an initial set of use cases. Then, on the diagram, you
connect the actors with the use cases with which they are involved. If actor supplies
information, initiates the use case, or receives any information as a result of the use case,
then there should be an association between them.
THEORY
UML 2 activity diagrams are typically used for business process modeling, for modeling
the logic captured by a single use case or usage scenario, or for modeling the detailed
logic of a business rule. Although UML activity diagrams could potentially model the
internal logic of a complex operation it would be far better to simply rewrite the
operation so that it is simple enough that you don’t require an activity diagram. In many
ways UML activity diagrams are the object-oriented equivalent of flow charts and data
flow diagrams (DFDs) from structured development.
Basic notation:
● Initial node. The filled in circle is the starting point of the diagram. An initial
node isn’t required although it does make it significantly easier to read the
diagram.
● Activity final node. The filled circle with a border is the ending point. An activity
diagram can have zero or more activity final nodes.
● Activity. The rounded rectangles represent activities that occur. An activity may
be physical, such as Inspect Forms, or electronic, such as Display Create Student
Screen.
● Join. A black bar with several flows entering it and one leaving it. All flows
going into the join must reach it before processing may continue. This denotes the
end of parallel processing.
● Condition. Text such as[Incorrect Form] on a flow, defining a guard which must
evaluate to true to traverse the node.
● Decision. A diamond with one flow entering and several leaving. The flows
leaving include conditions although some modelers will not indicate the
conditions if it is obvious.
● Partition. If figures are organized into three partitions, it is also called swimlanes,
indicating who/what is performing the activities (either the Applicant, Registrar,
or System).
● Flow final. The circle with the X through it. This indicates that the process stops
at this point.
1.General Guidelines
2.Activities
3.Decision Points
4.Guards
5.Parallel Activities
6.Swimlane Guidelines
7.Action-Object Guidelines
Conclusion: The activity diagram was made successfully by following the steps described.
A class model is comprised of one or more class diagrams and the supporting specifications
that describe model elements including classes, relationships between classes, and interfaces.
There are guidelines:
1. General issues
Because class diagrams are used for a variety of purposes – from understanding
requirements to describing your detailed design – it is needed to apply a different
style in each circumstance. This section describes style guidelines pertaining to
different types of class diagrams.
2. Classes
A class in the software system is represented by a box with the name of the class written
inside it. A compartment below the class name can show the class's attributes (i.e. its
properties). Each attribute is shown with at least its name, and optionally with its type,
initial value, and other properties
3. Interfaces
An interface is a collection of operation signature and/or attributes definitions that
ideally define a cohesive set of behaviors. Interface a class or component must
implement the operations and attributes defined by the interface. Any given class or
component may implement zero or more interfaces, and one or more classes or
components can implement the same interface.
4. Relationships
A relationship is a general term covering the specific types of logical connections
found in a class and object diagram.
Class diagrams also display relationships such as containment, inheritance,
associations and others.
The association relationship is the most common relationship in a class diagram.
The association shows the relationship between instances of classes.
When designing classes the attributes and operations it will have are observed. Then
determining how instances of the classes will interact with each other. These are the very
first steps of many in developing a class diagram. However, using just these basic
steps in the analysis and design of an object oriented system.
Theory:
UML sequence diagrams model the flow of logic within the system in a visual manner,
enabling the user both to document and validate the logic, and are commonly used for
both analysis and design purposes. Sequence diagrams are the most popular UML artifact
for dynamic modeling, which focuses on identifying the behavior within your system.
Sequence diagrams, along with class diagrams and physical data models are the most
important design-level models for modern application development.
2. The logic of methods. Sequence diagrams can be used to explore the logic of a
complex operation, function, or procedure. One way to think of sequence
diagrams, particularly highly detailed diagrams, is as visual object code.
3. The logic of services. A service is effectively a high-level method, often one that
can be invoked by a wide variety of clients. This includes web-services as well as
business transactions implemented by a variety of technologies such as
CICS/COBOL or CORBA-compliant object request brokers (ORBs).
Sequence diagramming really is visual coding, even when you are modeling a usage
scenario via a system-level sequence diagram.
While creating a sequence diagram, start by identifying the scope of what you are trying
to model. You should typically tackle small usage scenarios at the system level or a
single method/service at the detailed object level.
You should then work through the logic with at least one more person, laying out
classifiers across the top as you need them. The heart of the diagram is in the messages,
which you add to the diagram one at a time as you work through the logic. You should
rarely indicate return values, instead you should give messages intelligent names which
It is interesting to note that as you sequence diagram you will identify new
responsibilities for classes and objects, and, sometimes, even new classes. The
implication is that you may want to update your class model appropriately, agile
modelers will follow the practice Create Several Models in Parallel, something that
CASE tools will do automatically. Remember, each message sent to a class invokes a
static method/operation on that class each message sent to an object invokes an operation
on that object.
Regarding style issues for sequence diagramming, prefer drawing messages going from
left-to-right and return values from right-to-left, although that doesn’t always work with
complex objects/classes. Justify the label on messages and return values, so they are
closest to the arrowhead. Also prefer to layer the sequence diagrams: from left-to-right.
indicate the actors, then the controller class(es), and then the user interface class(es), and,
finally, the business class(es). During design, you probably need to add system and
persistence classes, which you should usually put on the right-most side of sequence
diagrams. Laying your sequence diagrams in this manner often makes it easier to read
and also makes it easier to find layering logic problems, such as user interface classes
directly accessing persistence.
Hardware Requirements:
Pentium 4 processor (2.4 GHz), 128 Mb RAM, Standard keyboard and mouse, colored
monitor.
Software Requirements:
Star UML, Windows XP
THEORY
Collaboration diagrams are also relatively easy to draw. They show the relationship
between objects and the order of messages passed between them. The objects are listed as
icons and arrows indicate the messages being passed between them. The numbers next to
the messages are called sequence numbers. As the name suggests, they show the
sequence of the messages as they are passed between the objects. There are many
acceptable sequence numbering schemes in UML. A simple 1, 2, 3... format can be used,
as the example below shows, or for more detailed and complex diagrams a 1, 1.1 ,1.2,
1.2.1... scheme can be used.
The example below shows a simple collaboration diagram for placing an order use case.
This time the names of the objects appear after the colon, such as Order Entry Window
following the object Name: class Name naming convention. This time the class name is
shown to demonstrate that all of objects of that class will behave the same way.
REQUIREMENTS:
Software Interfaces
THEORY:
State Chart Diagrams provide a way to model the various states in which an object can exist.
There are two special states: the start state and the stop state.
A condition enclosed in square brackets is called a guard condition and controls when
transition can or cannot occur.
Process that occur while an object is in a certain state are called actions.
● Now double click on the new diagram to open it on the stage. To begin the diagram click on
the “START STATE” button.
Place a start state icon on the diagram by clicking the mouse once.
Now add states to the diagram, these make up the content of the diagram.
Click on the state button. Place the instances for each state into the diagram and
type in names for them.
● Now arrange the states to fill the diagram better. Drag the states to new positions to make the
easiest layout to work with.
● Add an end state to the diagram by clicking the “END STATE” button. Place an instance into
the diagram. Now add relationships to the diagram.
● Click on the “STATE TRANSITION” button and drag arrows between the appropriate states.
● To edit the specification secondary click on the relation lines and select
“OPENSPECIFICATION” button. Add a name for the event in the specification. Then click
on “apply” and then on “OK” button.
● Add details to the specifications of the other relationships in the same way.
● There may be instances on the diagram where a state can join more than one state. In this case
add a relationship in the same way. Then enter the specification for the new state.
Conclusion: The state chart diagram was made successfully by following the steps described
above.
EXPERIMENT 8
Aim:
Steps to draw the Component Diagram using Star UML.
Software Requirements:
Star UML, Windows XP
THEORY
Example
Deployment diagram is a structure diagram which shows the architecture of the system as the
deployment (distribution) of software artifacts to deployment targets. Artifacts represent concrete
elements in the physical world that are the result of a development process. A deployment target is
usually represented by a node, which is either a hardware device or some software execution
environment. Nodes can be connected through communication paths to create networked systems of
arbitrary complexity.
Deployment diagrams can describe architecture at the specification level (also called type level) or at the
instance level (similar to class diagrams and object diagrams).
Component Diagram-
EXPERIMENT 9
Aim: Steps to draw the Deployment Diagram using Star UML.
Software Requirements:
Star UML, Windows XP
THEORY
Deployment diagram visualizes the topological view of an entire system. It represents the
deployment of a system. A deployment diagram consists of nodes which describe the physical
devices used inside the system. On these nodes, artifacts are deployed. We can also have node
instances on which artifact instances are going to be implemented.
Node and artifacts of a system participate in the final execution of a system. A deployment diagram
plays a critical role during the administrative process, and it must satisfy the following parameters:
● High performance
● Maintainability
● Scalability
● Portability
● Easily understandable
Nodes and artifacts are the essential elements of deployment. Before actually drawing the
deployment diagram, all nodes and the relationship between every node of the system must be
identified.
If all the nodes, relations, and artifacts are known, then it becomes easy to develop a
deployment diagram.
Software Requirements:
Star UML, Windows XP,
THEORY
Entity Relationship Diagrams are a major data modelling tool and will help organize the data in
your project into entities and define the relationships between the entities. This process has
proved to enable the analyst to produce a good database structure so that the data can be stored
and retrieved in a most efficient manner.
Entity
A data entity is anything real or abstract about which we want to store data. Entity types fall into
five classes: roles, events, locations, tangible things or concepts. E.g. employee, payment,
campus, book. Specific examples of an entity are called instances. E.g. the employee John Jones,
Mary Smith's payment, etc.
Relationship
A data relationship is a natural association that exists between one or more entities. E.g.
Employees process payments. Cardinality defines the number of occurrences of one entity for a
single occurrence of the related entity. E.g. an employee may process many payments but might
not process any payments depending on the nature of her job.
Attribute
A data attribute is a characteristic common to all or most instances of a particular entity.
Synonyms include property, data element, field. E.g. Name, address, Employee Number, pay rate
are all attributes of the entity employee. An attribute or combination of attributes that uniquely
identifies one and only one instance of an entity is called a primary key or identifier. E.g.
Employee Number is a primary key for Employee.