SE Lab Manual
SE Lab Manual
Software
Engineering
(203105304)
5th SEMESTER
COMPUTER SCIENCE & ENGINEERING ENT
Laboratory Manual
Submitted to: Faculty Name
CERTIFICATE
completed her laboratory experiments in the Software Engineering (203105304) from the
Date of Submission:.........................
Staff In charge:...........................
Head Of Department:...........................................
INDEX
SE Practical 1
Definition: Attendance Management keeps track of your employee hours. It is the system you use to
document the time your employees work and the time they take off. Attendance Management can be done
by recording employee hours on paper, using spreadsheets, punching time cards, or using online
attendance software for your company.
Information: Attendance management is the act of managing attendance or presence in a work setting to
minimize loss due to employee down time. Attendance control has traditionally been approached using
time clocks, timesheets, and time tracking software, but attendance management goes beyond this to
provide a working environment which maximizes and motivates employee attendance. Recently it has
become possible to collect attendance data automatically through using real-time location systems, which
also allow for cross-linking between attendance data and performance.
Attendance management takes place in all educational campuses be they university
Objectives: It facilitates to access the attendance information of a particular student in a particular class.
... This system will also help in evaluating attendance eligibility criteria of a student. Purpose The purpose
of developing attendance management system is to computerized the tradition way of taking attendance.
Functions:
i. Administrator
ii. User (Teacher & Student)
Administrator: Administrator have the rights to manage student details, add a new student, provide
register number for all students, assign each student a course etc. Administrator can update his profile,
and also can give help to teachers and students.
User: There are 2 users
a. Student: Student do the login and see profile. Attendance Details etc.
b. Teacher: Add student, view the student details and take attendance student.
Features
• Manage attendance of all the students and staff from one place.
• Manage basic attendance, day boarding attendance, lunch attendance and snacks attendance for
students if the school provides day boarding facilities.
• Simple and easy interface for filling attendance of all staff and students.
• The administrator can keep a note of staff attendance and keep a record of the same.
• As staff attendance is linked with the payroll module, it allows automatic calculation of working
days and generate pay slips for all the staff members.
SE Practical 2
Aim: Identify Suitable Design and Implementation model from the different software engineering model
Spiral Model
In each phase of the Spiral Model, the features of the product dated and analysed, and the risks at that
point in time are identified and are resolved through prototyping. Thus, this model is much more flexible
compared to other SDLC models.
Spiral model is one of the most important Software Development Life Cycle models, which provides
support for Risk Handling. In its diagrammatic representation, it looks like a spiral with many loops. The
exact number of loops of the spiral is unknown and can vary from project to project. Each loop of the
spiral is called a Phase of the software development process. The exact number of phases needed to
develop the product can be varied by the project manager depending upon the project risks. As the project
manager dynamically determines the number of phases, so the project manager has an important role to
develop a product using the spiral model.
Aim: Study Software Requirement engineering. Student should include SRS document for current
semester project. SRS (Software requirement specification)
ASSUMPTION:
1. Users are already registered.
Requirement 1: Registration
Accuracy :
The level of accuracy in the proposed system will be higher . All operation would be done correctly and
it ensures that whatever information is coming from the center is accurate.
Reliability :
The reliability of the system will be high due to the above stated reason. The reason for the increased
reliability of the system is that now there would be proper storage of the information
No Redundancy :
In the system the utmost care would be that no information is repeated anywhere, in the storage or
otherwise. This would assure economic use of storage space and consistency in the data stored.
The main objective of the system is to provide for a quick and efficient retrieval of information. Any
type of information would be available whenever the user requires.
Easy to operate :
The system should be easy to operate and should be such that it can be developed within a short period
of time and fir in the limited budget of the user.
3)External Interfaces:
3.1)Hardware Interfaces:
All the components able to be executed on personal computer with Windows OS and Mac Os. Following
are some minimum hardware requirement for the system which will be compatible with the os-
All the Interfaces will be ASPX pages running within the internet Browser. The system will be hosted in
web server and languages and database used are-
1)C++
2)MongoDB
3) Os- Windows 7 or above and for Mac os Mavericks
This project can compatible with all platforms. Connections to the system will be over TCP/IP
connection , project supports all types of web browsers .
SE Practical 4
Aim: Study Software project management planning. Student should write SPMP document for current
semester project.
Scheduling in project management is the listing of activities, deliverables, and milestones within
a project.
Seven Principle of Software Scheduling:
1) Compartmentalization –
The project must be compartmentalized into a number of manageable activities ans tasks.
To accomplish compartmentalization, both the product and process are decomposed.
2) Inderdependency-
The interdependency of each compartmentalized activity or task must be determined.
Some tasks must occur insequence while others can occur in parallel
3) Time allocation-
4) Effort validation-
Every project has a defined number of staff members. As time allocation occurs
The project manager must ensure that no more than the allocated number of
People has been scheduled at any given time.
5) Defined resposibilites-
6) Defined Outcomes –
7) Defined milestones-
Every task or group of tasks should be associated with a project
Scheduling methods:-
Two project scheduling methods that can be applied to software development.
Enrollment No: 190303105497
Faculty of Engineering & Technology
Subject-Name: Software Engineering
Subject-Code:203105304
B.Tech CSE Year: 3RD Semester: 5TH
– Program Evaluation and Review Technique (PERT)
– Critical Path Method (CPM)
Both techniques are driven by information already developed in earlier project planning activities:
– estimates of effort
– a decomposition of the product function
– the selection of the appropriate process model and task set
–decomposition of the tasks that are selected
PERT and CPM provide quantitative tools that allow you to:
– Determine the critical path—the chain of tasks that determines the duration of the
project
– Establish “most likely” time estimates for individual tasks by applying statistical
models
– Calculate “boundary times” that define a “time window” for a particular task
WHAT IS GANTT CHART:-Gantt chart, commonly used in project management, is one of the most
popular and useful ways of showing activities (tasks or events) displayed against time. On the left of the
chart is a list of the activities and along the top is a suitable time scale. Each activity is represented by a
bar; the position and length of the bar reflects the start date, duration and end date of the activity. This
allows you to see at a glance:
Gantt Chart
SE Practical 5
Aim: Do cost and Effort Estimation using Software Cost Estimation Model
Objectives: To make use of COCOMO model to find out the cost of software development.
Organic: A development project can be considered of organic type, if the project deals with developing
a well understood application program, the size of the development team is reasonably small, and the
team members are experienced in developing similar types of projects
Basic COCOMO Model: The basic COCOMO model gives an approximate estimate of the project
parameters. The basic COCOMO estimation model is given by the following expressions:
EFFORT = a1 * (KLOC)^a2 PM
Tdev =b1 x (EFFORT)^b2 Months
• KLOC is the estimated size of the software product expressed in Kilo Lines of Code,
• a1, a2, b1, b2 are constants for each category of software products,
• Tdev is the estimated time to develop the software, expressed in months,
• Effort is the total effort required to develop the software product, expressed in person months
(PMs).
• Every line of source text should be calculated as one LOC irrespective of the actual number of
instructions on that line
• If a single instruction spans several lines (say n lines), it is considered to be nLOC
• The values of a1, a2, b1, b2 for different categories of products (i.e., organic, semidetached, and
embedded) as given by Boehm.
EI = 7 * 3 = 21
EO = 2 * 4 = 8
EQs = 3 * 3 = 9
IFS = 1 * 7 = 7
EIFS= 2 * 5 = 10
Count Total = 55
F5: Will the system run in an existing, heavily utilized operational environment?
0
F7: Does the online data entry require the input transaction to be built over multiple screens or
operation? 3
F14: Is the application designed to facilitate change and ease of use by the user?
4
∑FI=5+5+1+3+2+3+4+1+1+2+1+1+2+4=34
Which is approximately
So, by the Basic COCOMO model the Effort and Development time required for our Organic type
Software is
EFFORT = a1 * (KLOC)^a2 PM
=2.4 x (40) ^1.05
=115 PM
If the salary of the developer is Rs. 10,000/- then the cost of development will be Rs. 1,15,000/-
SE Practical 6
Aim: Prepare System Analysis and System Design of identified Requirement specification using
structure design as DFD with data dictionary and Structure chart for the specific module
Aim: Designing the module using Object Oriented approach including Use case Diagram with
scenarios, Class Diagram and State Diagram, Collaboration Diagram, Sequence Diagram and Activity
Diagram
Class Diagram: A Class diagram which is a type of static structure diagram that describes the
structure of a system by showing the system's classes, their attributes, operations (or methods), and
the relationships among objects.
Use Case Diagram: A use case diagram is a graphical depiction of a user's possible interactions
with a system. A use case diagram shows various use cases and different types of users the system
has and will often be accompanied by other types of diagrams as well. The use cases are
represented by either circles or ellipses.
State Diagram: A state diagram is a type of diagram used in computer science and related fields
to describe the behavior of systems. State diagrams require that the system described is composed
of a finite number of states; sometimes, this is indeed the case, while at other times this is a
reasonable abstraction.
Sequence Diagram: A sequence diagram is a Unified Modeling Language (UML) diagram that
illustrates the sequence of messages between objects in an interaction. A sequence diagram shows
the sequence of messages passed between objects. Sequence diagrams can also show the control
structures between objects.
Coding Standard :
Coding conventions are a set of guidelines for a specific programming language that recommend programming
style, practices, and methods for each aspect of a program written in that language. These conventions usually
cover file organization, indentation, comments, declarations, statements, white space, naming conventions,
programming practices, programming principles, programming rules of thumb, architectural best practices, etc.
These are guidelines for software structural quality. Software programmers are highly recommended to follow
these guidelines to help improve the readability of their source code and make software maintenance easier.
Coding conventions are only applicable to the human maintainers and peer reviewers of a software project.
Conventions may be formalized in a documented set of rules that an entire team or company follows, or may be
as informal as the habitual coding practices of an individual. Coding conventions are not enforced by compilers.
The reason why coding standards are important is that they help to ensure safety, security, and reliability
Every development team should use one. Even the most experienced developer could introduce a coding defect
— without realizing it. And that one defect could lead to a minor glitch. Or worse, a serious security breach.
There are four key benefits of using coding standards:
Without predefined conditions that all team member should follow can result in the following:
• Naming Conventions: The naming convention is how your packages, classes methods, variables,
• File and folder Naming and Organization: This is how your file and folder should be named and
structured
• Formatting and Indentation: the code should be written in a standardized format and indentation
• Commenting and Documenting: This makes it easy for the reviewer of your code to better
• Classes and Functions: This specifies how classes and functions should behave.
• Testing: This specifies which approach and tools should be used to test the codes
• Limited use of globals : These rules tell about which types of data that can be declared global
maintenance of the code, the header of different modules should follow some standard format and
information. The header format must contain below things that is being used in various companies
like Name of module , Date of Module creation , Author of the Module , Modification History ,
• Naming conventions for local variables, global variables, constants and functions:
name helps anyone to understand the reason of using it. Local variables should be named using
camel case lettering starting with small letter (e.g. localData) whereas Global variables names
letter (e.g. GlobalData). Constant names should be formed using capital letters only (e.g.
variable names.The names of the function should be written in camel case starting with small letters
The name of the function must describe the reason of using the function clearly and briefly.
All functions that encountering an error condition should either return a 0 or 1 for simplifying the
debugging. All braces should start from a new line and the code following the end of braces
also start from a new line.
Code should be easily understandable. The complex code makes maintenance and debugging
difficult and expensive.
Every company has its own process of performing code review but we look into four of the best and most code
review techniques.
The most direct form of reviewing code is the Instant Code review technique. In this, the developer is writing
code while the reviewer sits beside reading the code simultaneously and correcting it on the go. Also known as
pair programming, this process is best suited for highly complex programs where two minds can solve the
problem much quicker and efficiently.
While this process looks favorable for companies but in reality, the time and workforce needed by this technique
make it unfavorable. Two or more people working on code together means less average lines per developer.
Interruption for corrections also halts the flow of work for the author of the code and the learning curve for a
developer hinders if constant support or solution is presented right away by a reviewer for a complex problem.
Also known as “Over the Shoulder” code-review process. It is the most commonly used process with around 75%
of companies participating in ad-hoc reviews. In this type of synchronous method, the coder produces the code
Enrollment No: 190303105497
Faculty of Engineering & Technology
Subject-Name: Software Engineering
Subject-Code:203105304
B.Tech CSE Year: 3RD Semester: 5TH
and then asks the reviewer to review the code. The reviewer joins the coder at the screen, reviews the code while
discussing it, over the shoulder. It is implemented wisely because it is informal and spontaneous. The process is
successful only if the reviewer is available at the time or it disrupts the coder’s speed.
This method has a high probability of missing errors and glitches as most of the time, the reviewer lacks the
knowledge of the goal of the task. Immediate review missed to bring out better results as a team would have in
their refinement sessions together with tasks discussed upfront
The ad-hoc review usually results in only a developer knowing the goal of the project. The major problem of this
process is forced context-switching. Imagine working on a complex software yourself, and then being called by
your junior member for an ad-hoc review. You would have to leave your station immediately to review the code
of your co-worker. Having to leave your work suddenly can create exhaustion and frustration.
This is the least commonly used process with only 44% using it once a month. In meeting based code review,
coders complete their work, and a meeting is called. The whole tech team sits, commenting, and attempting to
improve the code together. It is a temporary process as it is highly unlikely to perform constantly considering the
amount of time, loss of workforce for the time, decreased efficiency and inability to get the whole team together.
Meeting based code reviews make sense only when the whole team is inexperienced with the code review
process. It involves assembling the entire team in a room, sharing ideas and solving problems for a few times.
This helps every team member to understand the process much clearer. With just over half of the companies using
this, this process is not adequate as a code quality assurance standard.
This process is not done by a team together, at least not on the same screen. It is also called an asynchronous code
review. In this, once the code gets finished, the coder makes it available for others to review. The reviewer will
review the code on their screen commenting, or even amending the errors in the codes. Then notifying the coder
who on her agenda will improve it. When there are no changes, the code is marked with no comments for
improvements and the software gets approved.
Enrollment No: 190303105497
Faculty of Engineering & Technology
Subject-Name: Software Engineering
Subject-Code:203105304
B.Tech CSE Year: 3RD Semester: 5TH
SE Practical 9
The testing process cannot take place without prior communication with the programmers of the
software. This is because the testers cannot start testing the software unless they know what the code
does and how it works. Similarly, communicating with other software testers is also important. It helps
to understand:
1. What to test?
2. What resources will be needed?
3. What will the schedule be?
The software test plan is the principal way through which software testers communicate their intent to
the code developers. The test case is the heart of a test plan. A test case is a document that
describes a set of data inputs and operating conditions required to run a test, together with the expected
results of the run.
The tester should run the software according to the test case documentation and then compare the actual
results with the expected results noted in the documents.
If the obtained results are in complete agreement with the expected results, then it indicates that no error
has been identified. The result of such a test case is said to be ‘pass’.
A potential error is said to be identified when some or all of the results do not agree with the expected
results. In such cases, the test case will have the status ‘fail’
Test Test case Objective Test Case Input Expected Output Results
Case Description
ID
1 To check the interface link Click on the Button To be directed to the Pass
between the login page and theLOGIN Clicked Home page
home page Button Button Remains Unchanged
not
Clicked
2 To check the interface link Click on the Button To be directed to Pass
between the home page and the Dashboard Clicked Dashboard
dashboard page Button Button Remains Unchanged
not
Clicked
3 To check the interface link Click on the Button To be directed to Pass
between the Dashboard Page Attendance Clicked Attendance Page
and Attendance Page Button Button Remains Unchanged
not
Clicked
4 To check the interface link Click on Button To be directed to Pass
between the Attendance page View/Add Clicked View/Add Attendance
and View/Add attendance Window
Button Remains Unchanged
not
Clicked
Selenium IDE :
Selenium IDE (Integrated Development Environment) is the simplest tool in the Selenium Suite. It is a
Firefox add-on that creates tests very quickly through its record-and-playback functionality. This feature
is similar to that of QTP. It is effortless to install and easy to learn.
Because of its simplicity, Selenium IDE should only be used as a prototyping tool, not an overall
solution for developing and maintaining complex test suites.
• Large community.
• Simultaneous tests.
• Mobile support.
• Not beginner-friendly.
• No image verification.
• Ease of use.
• Customization.
• Timely updates.
• Support of desktop apps.
• No Mac support.
• Visualized reports.
• Choice of languages.
Installation of Selenium:
Below are the steps to follow to create and execute our Selenium codes on Eclipse.
All you need to do is to click on File -> New -> Others -> Maven Project.
In the above img, we have added the group id and artifact id. The same will be reflected or required in
your pom.xml after you have clicked on the finish button.
Pom.xml is a file that contains the dependencies. Here we can add as many dependencies as we like.
The dependencies could be Selenium, GitHub, TestNG and so on.
After you have downloaded all the jars, you need to follow the below steps in order.
• Click on Java Build Path -> Libraries -> Add Jars -> Apply and Close.
Adding Jars in Java Build Path
Example: Let’s take the example of Facebook. Whenever you try automating www.facebook.com using
Chrome, you will see the following alert.
In the above script, we have passed our ChromeDriver path as an argument in the system.setProperty().
This will let the WebDriver to control Google Chrome.
Upon executing the above script, we will be logged into Facebook using the email id and password.
However, an alert will pop up which would further deny any operation that we will do on the website
through our script.
Final output: