Software Engineering Lab Manual
Software Engineering Lab Manual
LAB MANUAL
B.TECH.
COMPUTER SCIENCE AND ENGINEERING
(2021-2022)
Submitted To : Submitted By :
Ms. Srishti Agarwal
Department of Computer Science & Engineering
MEERUT INSTITUTE OF TECHNOLOGY, MEERUT
INDEX
Problem Statement
A software solution is required to manage the records of employees in an organization. Software
shall provide an option to add the details of the employee as soon as he/ she join the
organization. There must be an option to update the record of an employee if required. If the
employee leaves the organization then software must provide an option to remove the record of
employee from the active usage. If the details of an employee are required at any time for any
purpose then software should also give an option to view the record of an employee. Only the
designated person in the organization must have the right to add, update, remove and view the
record of an employee. Along with the designated person as mentioned above, every employee
must be given an option to see his/ her details at any time. Only the person designated and the
employee must be allowed to use the system as per the privileges described above.
ISO/IEC/IEEE 29148:2011(E) Format
For
Software Requirements Specification (SRS) Document
2.1 Introduction
The software requirements specification (SRS) is a specification for a particular
software product, program, or set of programs that performs certain functions in a
specific environment. The SRS may be written by one or more representatives of the
supplier, one or more representatives of the acquirer, or by both.
It is important to consider the part that the SRS plays in the total project plan. The
software may contain essentially all the functionality of the project or it may be part of a
larger system. In the latter case typically there will be a requirement specification that
will state the interfaces between the system and its software portion, and will place
external performance and functionality requirements upon the software portion. Of
course the SRS should then agree with and expand upon these system requirements.
The SRS indicates the precedence and criticality of requirements. The SRS defines all
of the required capabilities of the specified software product to which it applies, as well
as documenting the conditions and constraints under which the software has to perform,
and the intended verification approaches for the requirements
2.3.1 Purpose
Delineate the purpose of the software to be specified.
2.3.2 Scope
Describe the scope of the software under consideration by
a) Identifying the software product(s) to be produced by name (e.g., Host DBMS, Report
Generator, etc.);
b) Explaining what the software product(s) will do;
c) Describing the application of the software being specified, including relevant benefits,
objectives, and goals;
d) Being consistent with similar statements in higher-level specifications (e.g., the
system requirements specification), if they exist.
2.3.3.7 Operations
Specify the normal and special operations required by the user such as
a) The various modes of operations in the user organization (e.g., user-initiated
operations);
b) Periods of interactive operations and periods of unattended operations;
c) Data processing support functions;
d) Backup and recovery operations.
NOTE This is sometimes specified as part of the User Interfaces section.
2.3.3.8 Site adaptation requirements
The site adaptation requirements include
a) Definition of the requirements for any data or initialization sequences that are specific
to a given site, mission, or operational mode (e.g., grid values, safety limits, etc.);
b) Specification of the site or mission-related features that should be modified to adapt
the software to a particular installation.
2.3.6 Limitations
Provide a general description of any other items that will limit the supplier's options,
including
a) Regulatory policies;
b) Hardware limitations (e.g., signal timing requirements);
c) Interfaces to other applications;
d) Parallel operation;
e) Audit functions;
f) Control functions;
g) Higher-order language requirements;
h) Signal handshake protocols (e.g., XON-XOFF, ACK-NACK);
i) Quality requirements (e.g., reliability)
j) Criticality of the application;
k) Safety and security considerations.
l) Physical/mental considerations
2.3.11 Functions
Define the fundamental actions that have to take place in the software in accepting and
processing the inputs and in processing and generating the outputs, including
a) Validity checks on the inputs
b) Exact sequence of operations
c) Accessing capabilities;
d) Data entities and their relationships;
e) Integrity constraints;
f) Data retention requirements.
2.3.18 Verification
Provide the verification approaches and methods planned to qualify the software. The
information items for verification are recommended to be given in a parallel manner with
the information items in sub clause 2.3.10 to 2.3.17.
2.1 INTRODUCTION
2.1.1 Purpose
2.1.1.1 The purpose of this SRS is to describe the requirements
involved in developing a system to manage employee records.
2.1.1.2 The intended audience is any person who wants
2.1.1.2.1 To check employee details (both employee and administrator mode).
2.1.1.2.2 To add new employee, modify any employee’s details
or deleterecords for the employee (only administer mode).
2.1.2
scope
2.1.2.1 The product is titled Employee Management System (EMS).
2.1.2.2. The product will perform the following tasks
2.1.2.2.1Allow either an employee or an administrator to view employee details.
2.1.2.2.2 Allow the administrator to add a new employee with corresponding details.
2.1.2.2.3 Allow the administrator to modify the detail of an employee.
2.1.2.2.4 Allow the administrator to delete the records for an employee.
2.1.3 Definitions, Acronyms and Abbreviations
2.1.3.1 EMS: Employee Management System.
2.1.4 References
2.1.4.1 IEEE standard 830-1998 recommended practice for Software
Requirements Specifications-Description.
2.1.5 Overview
2.1.5.1 The SRS contains an analysis of the requirements necessary to help easy design.
2.1.5.2 The overall description provides interface requirements for the Employee
Management System, product perspective, hardware interfaces, software
interfaces, communication interface, memory constraints, product functions, user
characteristics and other constraints.
2.1.5.3 Succeeding pages illustrate the characteristics of typical naïve users
accessing the system along with legal and functional constraints enforced that
affect Employee Management System in any fashion.
2.3.4.1 Saving a new employee’s records (Populating all of the tables with data) and Add
a record to an employee’s data records.
Saving new employee’s records: The whole process comprises a few actions, but not all
of them are compulsory to be accomplished at once! First of all, to unlock the fields in
order to get them prepared for accepting new data, the (“Add Employee”) button has to
be clicked. Afterwards, we can go to the desired form and fill the required data in. It’s not
necessary to fill in all of the forms with an exception of the two first, which ones hold the
data for the parent table into the database, and to be able to perform a successful save into
the database, we need to fill in all of the fields required there! Of course, if not all of the
rest forms are populated with data, a message appears on screen asking the user whether
he would like to proceed anyway saving only the data, filled till the moment, or go back
and fill them in. The next approach has been made up to resolve the saving problem:
Firstly, it is known that the primary key values in all tables are automatically generated
by saving a record as they have been set to an AutoNumber type. When data is saved into
the parent table, we have the primary key, which one is the Employee_ID_Number, but
this value is also needed for proceeding to another (child) table and populate it with data
as the database needs to know the responding record into the parent table! Apparently, we
need to specify to which employee (person) from the parent table, the current record we
are trying to save, belongs to. As it concerns all child tables into the database, it could be
done in the following way: When a record is populated into the parent table and we try to
save another one into a child table, the primary key’s value is taken and put into the child
table where we want to save the current record. Afterwards, we go to the child table and
save the record there. To implement this in code, a few functions have been constructed
(one for each child table and one for establishing the connection between the parent and
the child tables)
2.4 Conclusion
In this report, the requirements of the Employee Management Systems have been
specified. Apparently, the role of such systems is basic and essential within each
company that wants to keep a really good control and record concerning its personnel
data, functionality and performance on all levels in its structure. Every organization, in
now-a-days, has the necessity of managing its staff on a really good level as the staff has
definitely the greatest merit of building up a company as such as it is.
That’s why the development of such systems is not just a programming business – a lot of
people are ordinarily involved in such projects and one of the basic requirements is the
reliability of the system, especially what concerns the storage of data and all of the
operations that will be performed upon it.
Experiment No. 3
User Interface
Main Window
Diagram Area
Sidebar
Sidebar is the area left containing Working Diagrams panel and Toolbox.
To show or hide Sidebar, press Ctrl+1 or check (or uncheck) View | Sidebar in Menu Bar.
Working Diagrams
Working Diagrams panel shows a list of the opened working diagram. The selected diagram is
shown in the Diagram Area.
Toolbox
To create an element: 1. Select an element in Toolbox 2. Mouse down on the Diagram Area and
then drag as the size of the element to be created. If the element is a kind of relationship, connect
two elements by drag and drop.
To show or hide Toolbox, press Ctrl+5 or check (or uncheck) View | Toolbox in Menu Bar.
Navigator
To show or hide Navigator, press Ctrl+2 or check (or uncheck) View | Navigator in Menu Bar.
Model Explorer
To change the order of elements: 1. Select the Model Explorer Settings menu in the right up
corner of Model Explorer. 2. Select one of the sorting types
Sort by Added
Sort by Name
To show or hide stereotypes in front of element name by check of uncheck Show Stereotype
Text in the Model Explorer Settings menu.
Editors (Holder)
Editors (Holder) contains editors to edit properties of model and view elements. It includes Style
Editor, Property Editor, and Documentation Editor.
To show or hide Editors, press Ctrl+6 or check (or uncheck) View | Editors in Menu Bar.
Style Editor
Property Editor
Documentation Editor
Toolbar
Toolbar shows tool buttons typically provided from default or installed third-party extensions.
To show or hide Toolbar, press Ctrl+3 or check (or uncheck) View | Toolbar in Menu Bar.
Bottom Panel
Bottom Panel is a panel shown below Diagram Area typically provided from default or installed
third-party extensions including Find Results, Diagram Thumbnails, Validation Results,
Markdown Editor and etc.
Statusbar
To show or hide Statusbar, press Ctrl+4 or check (or uncheck) View | Statusbar in Menu Bar.
Experiment No. 4
Code:
class Student
{
int rollNo;
char name[20];
public:
void putData(int,char*);
virtual void display();
};
void Student::putData(int rn,char *n)
{
rollNo=rn;
strcpy(name,n);
}
void Student::display()
{
cout<<"\n Roll No. : "<<rollNo;
cout<<"\n Name : "<<name;
}
public:
void putData(int,char*,char,int);
void display();
};
void ClassRepresentative::putData(int rn,char *n,char pg,int note)
{
Student::putData(rn,n);
performanceGrade=pg;
noOfTimesElected=note;
}
void ClassRepresentative::display()
{
Student::display();
cout<<"\n Performance Grade: "<<performanceGrade;
cout<<"\n No of times elected previously: "<<noOfTimesElected;
}
Model:
Experiment No. 13
Model:
Code:
class Course
{
int courseId;
char courseName[20];
public:
void putData(int,char*);
void display();
};
void Course::putData(int id,char *cname)
{
courseId=id;
strcpy(courseName,cname);
}
void Course::display()
{
cout<<"\n Course :"<<courseName<<" ("<<courseId<<")";
}
class Student
{
int rollNo;
char name[20];
Course cou;
public:
void putData(int,char*,Course);
void display();
};
void Student::putData(int rn,char *n,Course pCou)
{
rollNo=rn;
strcpy(name,n);
cou=pCou;
}
void Student::display()
{
cout<<"\n Roll No. : "<<rollNo;
cout<<"\n Name : "<<name;
cou.display();
}