Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
14 views46 pages

Software Engineering

The document outlines practical exercises in software engineering, focusing on project planning, tracking, configuration management, risk management, and software requirement specifications. It details the use of Microsoft Project for project planning and tracking, and discusses various configuration management tools like SVN and Perforce. Additionally, it includes a project report on a Course Management System, covering technology used, project modules, and system requirements.

Uploaded by

dhandasanmeet86
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views46 pages

Software Engineering

The document outlines practical exercises in software engineering, focusing on project planning, tracking, configuration management, risk management, and software requirement specifications. It details the use of Microsoft Project for project planning and tracking, and discusses various configuration management tools like SVN and Perforce. Additionally, it includes a project report on a Course Management System, covering technology used, project modules, and system requirements.

Uploaded by

dhandasanmeet86
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

Software Engineering Lab

PRACTICAL NO. :- 1
AIM: Study and usage of Open Project or similar software to draft a project
plan.
Project planning is part of project management, which relates to the use of schedules such as Gantt
charts to plan and subsequently report progress within the project environment. Project
management software has the capacity to help plan, organize, and manage resource tools and
develop resource estimates.
The purpose of the Project Plan is to document all managerial aspects of a project that are required
to execute it successfully within its constraints. If some aspects are defined in separate plans the
Project Plan should refer to these documents

Project planning is part of project management, which relates to the use of schedules such as charts
to plan and subsequently report progress within the project environment.Software project
planning is task, which is performed before the production of software actually starts. It is there
for the software production but involves no concrete activity that has any direction connection
with software production; rather it is a set of multiple processes, which facilitates software
production.

List of software planning project :-

1. Ms project
2. Accelo
3. Slack
4. Wrike
5. Freshdesk
6. Confluence
7. Zoho Projects
8. Teamwork projects
9. Procore
In the above mentioned softwares, we chose MS Project.

MS Project Introduction :-

Microsoft Project is a project management software program developed and sold by Microsoft,
designed to assist a project manager in developing a schedule, assigning resources to tasks,
tracking progress, managing the budget, and analyzing workloads.

Page 1
Software Engineering Lab

Project creates budgets based on assignment work and resource rates. As resources are assigned
to tasks and assignment work estimated, the program calculates the cost, equal to the work times
the rate, which rolls up to the task level and then to any summary task, and finally to the project
level.
Each resource can have its own calendar, which defines what days and shifts a resource is
available. Microsoft Project is not suitable for solving problems of available materials (resources)
constrained production. Additional software is necessary to manage a complex facility that
produces physical goods.

MS Project can help you :-

● Visualize your project plan in standard defined formats.


● Schedule tasks and resources consistently and effectively.
● Track information about the work, duration, and resource requirements for your project.
● Generate reports to share in progress meetings.

Blank Project Tab:-

Page 2
Software Engineering Lab

Project Information:-

Gantt Chart:-

Page 3
Software Engineering Lab

Network Diagram:-

Page 4
Software Engineering Lab

Task Sheet:-

Task Form:-

Page 5
Software Engineering Lab

Resource Sheet :-

Timeline :-

Page 6
Software Engineering Lab

PRACTICAL NO. :- 2

AIM: Study and usage of Open Project or similar software to track the
progress of a project.
Project Tracking refers to Project Management software, which automates the tracking of tasks,
assignments, events and activities related to the project.
Though Microsoft Project makes monitoring and tracking the progress of your schedule easy, there
are several steps to take before you can begin monitoring project progress.
Monitoring your project can generally be broken down into reviewing and tracking project
progress. Variances from the original plan (or baseline) are identified and managed to keep the
project within scope, on time, and within budget.
Keep the following in mind as you monitor the progress of your schedule.
1. Create a baseline of project: After creating the schedule, consider creating a baseline for
it. A baseline is similar to a version of our project that can be used to compare against the
progress of our tasks. The baseline allows you to make a comparison between the original
schedule and a later version.

Page 7
Software Engineering Lab

We can move our project dates i.e change the dates of our project,

After creating a project plan and baselines, the project begins. At this stage, the project manager
would be focusing on collecting, monitoring, analyzing project performance, and updating project
status by communicating with the stakeholders.

How we can track our project:

Blank Project :-

Page 8
Software Engineering Lab

Gantt Chart :-

Network Diagram :-

Page 9
Software Engineering Lab

Tracking Gantt Chart :-

Timeline :-

Page12
Software Engineering Lab

PRACTICAL NO. :- 3

AIM: Preparartion of Preparation of configuration management and risk


management related documents.
Description:-

Configuration management is a technique or discipline to systematically manage, organize and


control the changes in the documents, codes, artifacts and other entities during the development
life cycle.

Features of a good CM tools are :-


● Ease for the developers to work simultaneously .
● Ensuring that the developers don’t over write watch others code.
● Maintenance the history of everything.

List of Software configuration management tools available are :-

Page11
Software Engineering Lab

● VSS – Visual source safe


● CVS- Concurrent version system
● Rational Clear Case
● SVN- Subversion
● Perforce
● TortoiseSVN
● IBM Rational team concert
● IBM Configuration management version management
● Razor
● Quma version control system

Features of various Configuration Management Tools are as follows:-

1. SVN (SubVersion) : SVN is the most popular open source Configuration Management tool
used for version controlling. Being open source, it is freely available over the net. It provides
many quality control and cost effective benefits to switch to mid projects. Some of the key
features include:
● Ease of set up and administration.
● Fast and flexible update commits.
● Provides high visibility to changes with the ease of reverting the changes of a file.
● SVN has automatic merging and conflict resolution which makes locking
unnecessary.
● Full revision history is maintained by for the files that are renamed, copied or moved.
● Has good integration capability with almost everything (window explorer, leading
IDEs, Agile and continuous integration tools).
● Switching between the branches is easy.

2. Perforce : Perforce is a version controlling software developed by Perforce Software Inc. here
the users connect to shared file repository and files are transferred between the repositories and
individual workstations. Some of the features include:

Page12
Software Engineering Lab

● Has a built in document compare tool to quickly understand what the changes between
the 2 versions of file are.
● We can compare and combine the MS word and power point documents with changes
from other team members.
● We can group the files into projects and teams and can set space level access control to
manage who can see, share edit and comment.
● Has good feature of email sharing and workflow.
● Provides immediate notifications.

3. VSS (Visual Source Safe) : Visual Source safe is a centralized version control system from
Microsoft. Some of the salient features include:
● High performance with local and remote access.
● All the repository data is stored in Microsoft SQL Server to ensure the integrity of the
data.
● Since it is built in C++ and JAVA, it has a minimal system requirement. We can install it
in 32 bit and 64 bit OSes.
● Has good security features as it uses SSl and Blowfish encryption.
Stability of VSS is many times questioned, because it uses direct file based mechanism which
allows user to modify the file once they have locked it. If the machine crashes in the middle of
updating any file, the file can get corrupt, Many times users use a utility which checks the database
for corruption and corrects the error when found.
4. CVS (Concurrent Version System) : CVS is an open source version controlling system
which lets group of people work simultaneously on group of files. Some of the features are:
a. It maintains a central repository of the most recent repository. We can check out a
copy to our local. If the file is updated by some other user, we can update our local
copy.

b. We can edit the copy of the files freely. If new versions of the files have been put in
the repository in the meantime, doing an update merges the changes in the central
copy into our copy.

Page13
Software Engineering Lab

c. Client server cvs enables developers who are scattered across different geographies
or slow networks to function as a single team.
d. It allows more than one developers to work on the same file at the same time.

5. Rational Clearcase : Rational Clear Case is a configuration management tool developed


by IBM. It provides version control, parallel development, build auditing and workspace
management. It can be easily integrated with other rational products and can be used for
small, large and huge teams which are geographically distributed. Some of the features
include:
a. Manages files directories and other development assets across the lifecycle.
b. Manages issues and resolution
c. Manages parallel development
d. Provides better authentication features by providing electronic signatures and audit
trials.
e. Unlike SVN or Perforce, It is File Centric, which means that check in has to be
done file per file.

f. It is integrated easily with other rational products along with eclipse and windows
explorer.

Risk : Risk is an expectation of loss, a potential problem that may or may not occur in the
future. Loss of anything, increase in production cost, development of poor quality software, not
being able to complete the project on time. A possibility of suffering from loss in software
development process is called software risk.

Risk Management Process:-

Page12
Software Engineering Lab

Risk Risk Type Probability Strategy


/ Effects
Organizational Low and Prepare a briefing document for senior
Financial Catastrophic management showing how the project is
Problems High and making a very important contribution to the
Organizational Organizational Serious goals of the business.
Restructuring
Reorganize team so that there is more overlap
Staff illness People Moderate of work and people therefore understand each
and Serious other’s job.
Derive Traceability information to assess
Requirement Requirements Moderate requirement, change impact, and maximize
Changes and Serious hiding in the design.
Moderate Replace potentially defective component with
Defective Technology and bought in components of known reliability.
Components Tolerable
Database Moderate Investigate the possibility of buying a higher
Tools
Performance and Serious performance database.
Underestimated Investigate buying in components; investigate
High and the use of program generator.
Development Estimation
Time Serious

16 | P a g e
Software Engineering Lab

PRACTICAL NO. :- 4

AIM : Preparation of software requirement specification document, design


document and testing phase related documents for some problems.

SOFTWARE REQUIREMENTS SPECIFICATION


ON
“COURSE MANAGEMENT SYSTEM”

GUIDED BY:
ER. GURSHARAN SAINI
SUBMITTED BY:

Suhan (2106689)

(B.TECH-CSE/5TH)

17 | P a g e
Software Engineering Lab
TABLE OF CONTENTS :

CHAPTER-1 :- OVERVIEW OF TECHNOLOGY USED FOR MAKING


PROJECT
1.1 JAVA INTRODUCTION
1.2 MySQL
1.3 APACHE
1.4 JAVA SCRIPT
1.5 WHAT IS DATABASE ?
1.6 PHPMYADMIN

CHAPTER-2 :- PROJECT REPORT WORK


2.1 INTRODUCTION (PROJECT MODULES)
2.2 SYSTEM OVERVIEW
2.2.1 OBJECTIVE
2.2.2 PURPOSE
2.2.3 SCOPE OF PROJECT
2.2.4 PROBLEM SPECIFICATION
2.2.5 EXISTING SYSTEM
2.3 FEASIBILITY STUDY
2.3.1 OPERATIONAL FEASIBILITY
2.3.2 TECHNICAL FEASIBILITY
2.3.3 ECONOMICAL FEASIBILITY

18 | P a g e
Software Engineering Lab
2.4 TESTING
2.5 HARDWARE / SOFTWARE REQUIREMENTS

CHAPTER-3 :- DFD
3.1 DATAFLOW DIAGRAM
3.1.5 USE CASE DIAGRAM
CHAPTER-4 :- CONCLUSION & FUTURE SCOPE
4.1 CONCLUSION
4.2 FUTURE SCOPE
4.3 REFERENCES

19 | P a g e
Software Engineering Lab

CHAPTER 1

OVERVIEW OF TECHNOLOGY USED FOR MAKING THE PROJECT

1.1 JAVA
1.1.1 INTRODUCTION
Java was developed by James gosling at Sun Micro Systems in the year 1995, later by oracle
corporation . it is simple programming language . Java makes writing , compiling ,and
debugging programming easy.it helps to create reusable code and modular programs . Java is
a class based , object oriented programming language and is designed to have as few
implementation dependencies as possible . A general purpose programming language made
for developers to write once run anywhere that is compiled Java code can run on all platforms
that support java . java applications are compiled to byte code that can run on any Java
Virtual machine , The Syntax of java is similar to C/C++.

1.2 MYSQL
MySQL is a relational database. MySQL is a powerful database. It's very good and free of
charge.

Many developers in the world selected My SQL and PHP for developing their website.

 SQL stands for Structured Query Language


 SQL lets you access and manipulate databases
 SQL is an ANSI (American National Standards Institute) standard

Some of The Most Important SQL Commands

• SELECT - extracts data from a database

• UPDATE - updates data in a database

• DELETE - deletes data from a database

• INSERT INTO - inserts new data into a database

20 | P a g e
Software Engineering Lab
• CREATE DATABASE - creates a new database

• ALTER DATABASE - modifies a database

• CREATE TABLE - creates a new table

• ALTER TABLE - modifies a table

• DROP TABLE - deletes a table

• CREATE INDEX - creates an index (search key)

• DROP INDEX - deletes an index

1.3 APACHE
Apache HTTP Server is a free and open-source web server that delivers web content through
the internet. It is commonly referred to as Apache and after development; it quickly became
the most popular HTTP client on the web. It’s widely thought that Apache gets its name from
its development history and process of improvement through applied patches and modules but
that was corrected back in 2000. It was revealed that the name originated from the respect of
the Native American tribe for its resiliency and durability.

21 | P a g e
Software Engineering Lab

CHAPTER 2
PROJECT REPORT WORK
2.1 OVERALL DESCRIPTION

Course management system become an integral a part of the upper education system.
They create teaching and course management easier by providing a framework and set of
tools
for instructors. The executive aspects of such systems could include class rosters and
therefore the ability to record students’ grades. With relevance the teaching aspects, however,
it might include learning objects, class exercises, quizzes and tests. The CMS might also
include tools for real-time chat, or asynchronous bulletin board kind communications. The
CMS tool additionally focuses on all aspects of teaching, learning and teacher-student
interaction.
As we all know that education has come to be today as nothing more than an Instrument of
livelihood. It should enable the student to take out his livelihood. Education must prepare the
student for future occupational positions, the youth should be enabled to play a productive
role in society. Accordingly, great emphasis has been placed on vocational training.
For every education or course there should be consistent interaction between students for
submitting assignments and home works, projects, and thesis and acquire feedback. In this
exiting system students need to visit faculties and take appointment from faculties or
instructors to submit work.
The system has been developed considering every single quality factor. Due to this reason the
system is extremely secure from the crash down downside. Moreover, the system is very
reliable and attributable to the safety features, provides for the course management system,
unauthorized users cannot access the system. that contains 3 Considering problems in existing
system code application is meant modules.

PROJECT MODULES :-

1. Admin Module: Admin can produce accounts for college students and faculties and make
course programmed list and add instructors and students to it course list.
Admin can produce course details exploitation course creation kind that consists in fact name,
course id, and choose student. Using Student creator kind student details are entered to
information. User name, adapt username, password, given name and name, ID. After
accounts are produced supported every students and instructors are divided and accessorial to
list exploitation create missing students kind.

22 | P a g e
Software Engineering Lab
2. Students Module: Student can register with application or the proposed system and login
with user name and password. He will check and submit any question. Every student can
have id.
3. HOD Module: It can track student’s queries or the doubts. HOD can also delete and update
the student information including their names, emails, addresses, passwords etc.

2.2 SYSTEM OVERVIEW


2.2.1 OBJECTIVES
1.To develop and design the java based software for Course Management System.
2.To implement the new technology development system.
3. To make it digitalized, authorized, secured one in the given web server .

4. To kept it records as many years we want to keep it for its future use as per our need.

2.2.2 PURPOSE

The objectives of this study are summarized below:

● The main objective of the project is to design and develop a user friendly efficient
computerized Course Management System.
● An accurate and secure system.
● Secure the user ends data by providing each user’s own personal credentials
● A flexible system which can manoeuvre the student-student relationship in a effective
manner.
● To provide better services at both ends.
● Computerization can be helpful as means of saving time & money.

2.2.3 SCOPE OF PROJECT


The Course management system has a wide scope which covers the following perspectives:
1.The Admin has the full-fledged right over this system.
2.The Admin can register and view the student/HOD profile data.
3.The Admin can make changes about anything.
4. Admin can also delete accounts of student/HOD.
5. Admin will add accounts of student/HOD, update accounts , delete accounts ,view accounts
of all the Databases available in the system.

2.2.4 PROBLEM SPECIFICATION


The software to be produced is on Course management System. Here are three users. They
are the Admin, HOD and the students. Admin can add the details of a student who wish to
send/receive any kind of information. Their personal information including their username,

23 | P a g e
Software Engineering Lab
email, password, phone number and address are collected. The HOD also provides
information about the person who can receive and send any sort of query.
As soon as that particular person arrives, his account will be made by Admin. The HOD can
also note down the information of any student. Admin has more authority than the HOD. He
provides unique ID and password for the HOD and students . He also has the right to delete
or modify the students information.

2.2.5 EXISTING SYSTEM


Initially before coming of computers, the data processing activities faced many problems such
as inaccuracy, delays, improper record maintenance etc. As everything is being done manually,
some of the problems are detailed as follows: -

 INACCURACY: - In the existing system, the Customer’s information such as personal


details , time duration of stay is stored in various long registers which leads to slowa
session of desired information, besides the inaccuracy, which is caused due to manual
storage of data.
 IMPROPER RECORD MAINTENANCE: - In the existing system, everything is
maintained on paper, making it inconvenient to modify data. In manual system, if the
number of mistakes is high, then the whole set of records may have to be written again,
to avoid any possible errors occurring thereof. This results in wasting a lot of time just
to correct a few mistakes.
 REDUNDANCY OF RECORDS: - In the existing system all the data is maintained
in different files & registers with considerable data duplication & wastage of storage
space.
 PROBLEM OF UPDATION: - In the existing system, since everything is stored in
registers, it is quite difficult & time consuming to update all of them. The major
problem encountered is modification, which must be reflected in all the entries, and
summaries also need to be updated.
 TIME & RETRIEVAL PROBLEM: - Retrieval of information is time consuming
because of large volume of data. To trace a particular account or record a large number
of registers need to be scanned.
 STORAGE PROBLEM: - As the data if voluminous, more space is required to store
it. Everything is being stored on registers. This storage is prone to damage with time
and due to other accidental factors.

2.3 FEASIBILITY STUDY


Prior to stating whether the system we have to develop is feasible or not we believe that we
should emphasize on what is implied by the word “Feasibility”. Feasibility is the measure of
how beneficial or practical the development of the system will be to the organization. It is a

24 | P a g e
Software Engineering Lab
preliminary survey for the systems investigation. It aims to provide information to facilitate a
later in-depth investigation.

TYPES
There are various measures of feasibility that helps to decide whether a particular project is
feasible or not. These measures include –

➢ Operational Feasibility: A study about the operational aspects of the system.

➢ Technical Feasibility: A study of function, performance and constraints that may


affect the ability to achieve an acceptable system.

 Economic Feasibility: An evaluation of development cost weighted against the


ultimate income or benefit derived from the developed system.

2.4 TESTING
System Testing:
Testing is a set of activities that can be planned in advance and conducted systematically. The
proposed system is tested in parallel with the software that consists of its own phases of
analysis, implementation, testing and maintenance.

Unit Testing:
During the implementation of the system each module of the system was tested separately to
uncover errors within its boundaries. User interface was used as a guide in the process.

Module Testing:
A module is composed of various programs related to that module. Module testing is done to
check the module functionality and interaction between units within a module. It checks the
functionality of each program with relation to other programs within the same module.

Integration Testing:
Integration testing is a systematic technique for constructing the program structure while
conducting tests to uncover errors associated with interfacing. The objective is to take unit-
tested module and build a program structures that has been dictated by design.

Acceptance Testing:
The software has been tested with the realistic data given by the client. The client satisfying all
the requirements specified by them has also developed the software within the time limitation
specified. A demonstration has been given to the client and the end-user giving all the
operational features.

Implementation Phase:
25 | P a g e
Software Engineering Lab
The implementation is the final and important phase. It involves user training, system testing
and successful running of the developed system. An elaborate testing of data is prepared and
system is tested using the tests data. The next phase in the implementation was to educate the
system. A demonstration of all the functions that can be carried out by the system was given to
examination department person, who will make extensive use of the system.

2.5 HARDWARE REQUIREMENTS

For this project minimum hardware and software requirement are listed below:
The hardware requirements stated above are recommended for the optimum
Possible performance of the new system (computerized system).

Hardware Requirements

1. Processor : Intel Core i3


2. RAM : 4GB
3. Hard Disk : 20 GB

Software Requirements

1. Operating System : Window 10


2. Web Browser : Chrome/Opera
3. Web Server : Xamp
4. Front end : JAVA
5. Back end : My SQL

26 | P a g e
Software Engineering Lab

CHAPTER 3

3.1 DATAFLOW DIAGRAMS (DFD)


A dataflow diagram is a structure analysis and design tool that can be used for flowcharting. A
DFD is a network that describes the flow of data and the process that change or transform the data
throughout a system. This network is constructed using a set of symbol that do not imply any
physical implementation. DFD can be considered to an abstraction of the logic of an information
oriented or a process oriented system flow chart.

3.1.1

ADMIN
LOGIN

HOD
STUDENT

3.1.2

ADD
STUDENT

UPDATE/ UPDATE/
DELETE ADMIN DELETE
HOD STUDENT

ADD HOD

Page 27
Software Engineering Lab

3.1.3

ADD
STUDENT

UPDATE DELETE
STUDENT HOD STUDENT

VIEW
STUDENT

3.1.4

ADD
QUERY

UPDATE REPLY
STUDENT
QUERY QUERY

VIEW
QUERY

Page 28
Software Engineering Lab

3.1.5
USE CASE DIAGRAMS

ADMIN

ADD/
DELETE STUDENTS

VIEW / UPDATES
STUDENTS

ADD /DELETE
HOD
HOD

VIEW/UPDATE
HOD

ADD/VIEW
STUDENTS

ADD QUERY
STUDENT
Page 29
Software Engineering Lab

CHAPTER 4
CONCLUSION AND FUTURE SCOPE

The project entitled as “Course Management System” is the system that deals with the issues
related to a particular institution. This project is successfully implementedwith all the
features mentioned in system requirements specification. Course Management System
Software is an online management application, built as a software development project in
Java programming language. Its main purpose are making efficient interaction between
students and instructors in college during the period of submission of assignments, projects,
for getting appropriate feedback frominstructors.
SCOPE :-
A “Course Management System”(CMS) is a software solution that helps institutes to handle
courses interactions especially for distance learning. It creates an environmentthat can be
accessed by teachers, students to update news or to convey urgent information to the students.
In this system students can easily post their queries and can get efficient reply to their doubts.
It creates space for the students to clear their doubts. It helps to create an effective teaching
plan and manage the courses. In this students get opportunity to interact with other students.
The Admin and HOD can
keep track of student’s information like their names, emails, passwords, addresses, contact
numbers and can delete and update them.
REFERENCE :-
Website URLs

 www.oracle.com
 www.javatpoint.comz
 www.geeksforgeeks.com

pg. 30
Software Engineering Lab

PRACTICAL NO. :-5


AIM: Study and usage of any Design phase CASE tools.

Computer-aided software engineering (CASE) is the domain of software tools used to design
and implement applications. CASE tools are similar to and were partly inspired by computer-aided
design (CAD) tools used for designing hardware products. CASE tools are used for developing
high-quality, defect-free, and maintainable software. CASE software is often associated with
methods for the development of information systems together with automated tools that can be
used in the software development process.
CASE tools supports specific tasks in the software development life-cycle. They can be divided
into the following categories:

1. Business and Analysis modelling. Graphical modelling tools. E.g., E/R modelling, object
modelling, etc.
2. Development. Design and construction phases of the life-cycle. Debugging environments.
E.g., GNU Debugger.
3. Verification and validation. Analyze code and specifications for correctness, performance,
etc.
4. Metrics and measurement. Analyze code for complexity, modularity (e.g., no "go to's"),
performance, etc.
5. Project management. Manage project plans, task assignments, scheduling.
Benefits of Case Tools
1.Rapid Application Development
2.Testing
3.Documentation
4.Project Management
5.Reduce the maintenance cost
The various case tools are as follows:
1.Artiso Visual Case
2.Db main
3.Meta edit
4.Microsoft Visio
5.Smartdraw
6.Argo Uml
7.Visible Anal
[Type here] [Type here] [Type here]
Software Engineering Lab

CASE Tool Products Features Comparison.

Feature Rational Visible Smart Visual Omni ADOit


Visio ArgoUML MetaEdit+ DB-Main
Support Rose Analyst draw Case graffle

UPPPER CASE

data flow Valid Valid Valid Valid Valid Valid Valid X Valid Valid
diagramming

ER Valid Valid Valid Valid Valid Valid Valid Valid Valid Valid
diagramming

workflow Valid Valid Valid Valid Valid Valid Valid X Valid Valid
diagramming

object oriented Valid Valid Valid Valid Valid Valid Valid X Valid Valid
diagramming

data dictionary Valid Valid Valid Valid Valid X Valid Valid X Valid

business rule Valid Valid Valid Valid Valid X Valid X X Valid


adoption

analysis tools X Valid X X X X Valid X X Valid

LOWER CASE

code generation Valid Valid Valid Valid Valid X Valid Valid X Valid

form generation Valid Valid Valid X Valid X X X X Valid

report generation Valid Valid Valid X Valid X V X X Valid

document Valid Valid Valid Valid Valid X X Valid X Valid


generation

import and Valid Valid Valid Valid Valid X Valid Valid X Valid
export
utilities

program coding X Valid Valid X Valid X Valid X X X

Testing X Valid Valid X Valid X X X X X

[Type here] [Type here] [Type here]


Software Engineering Lab

SmartDraw
Smart Draw is a diagram tool used to make flowcharts, organization charts, mind maps, project
charts, and other business visuals. It integrates with Microsoft Word, Excel, PowerPoint and
Microsoft Project; it can export diagrams to common image formats and PDF format. SmartDraw
is the only diagramming solution that you can install behinda firewall on a Windows desktop and
also run on a Mac and online with all of the third party integrations you'd expect.

And better yet, the powerful online version is fully integrated and compatible with the Windows
version. You can move seamlessly between them. SmartDraw includes over 4,500 templates for
more than 70 different diagram types and over 34,000 symbols for every discipline including
engineering, software design, healthcare as well as the standard shapes used for flowcharts,
organization charts and many other diagrams.

FEATURES:-

1. Find Your Documents Easier

SmartDraw Cloud now has thumbnail previews of your own saved diagrams. You no longer have
to try to remember what you named a document, just look for its image in the template browser.

2. Full Asian Character Support

You can now add text and customize templates in your native language. This is a must for today's
global economy.

3. Working with Complex Symbols

You can now ungroup and edit the components of complex symbols to help you draw technical
diagrams more easily.

[Type here] [Type here] [Type here]


Software Engineering Lab

PRACTICAL NO. :- 6

AIM: To perform unit testing and integration testing.

Unit Testing: Unit testing assesses the software in regards to its implementation. We focus on
testing units of a program (i.e. individual methods) and disregard who calls/uses these units. Hence,
we essentially treat each unit as a standalone unit. There are many unit testing tools, one of the
most popular one is JUnit. Note that unit testing is the lowest level of testing because it assesses
the actual code units produced after implementation. This type of testing that is done before
integration testing.
Efficient unit testing helps ensure that integration testing will not be painful, since it is cheaper
and easier to spot and fix bugs when doing unit testing

Steps of unit testing:-

1. Find a tool/ framework for your language.

2. Do not create test cases for everything. Instead, focus on the tests that impact the behavior of
the system.

3. Isolate the development environment from the test environment.

4. Use test data that is close to that of production.

5. Before fixing a defect, write a test that exposes the defect. Why? First, you will later be able
to catch the defect if you do not fix it properly. Second, your test suite is now more
comprehensive. Third, you will most probably be too lazy to write the test after you have
already fixed the defect.

6. Write test cases that are independent of each other. For example if a class depends on a
database, do not write a case that interacts with the database to test the class. Instead, create an
abstract interface around that database connection and implement that interface with mock
object.

7. Aim at covering all paths through the unit. Pay particular attention to loop conditions.

8. Make sure you are using a version control system to keep track of your test scripts.

[Type here] [Type here] [Type here]


Software Engineering Lab

9. In addition to writing cases to verify the behaviour, write cases to ensure performance of
thecode.

10. Perform unit tests continuously and frequently.

Integration Testing:- It is needed to ensure that our software still work when two or more
components are combined. You can perform integration testing before the system is complete.
Integration testing is done after unit testing. It is often the case that the individual components
work fine but when everything is put together, we suddenly see bugs appearing due to
incompatibilities/issues with interfaces.

Other levels of testing include:

Regression Testing: This type of testing is given a lot of importance because developers
commit changes to software quite often typically, so we want to make sure that these changes
do not introduce bugs. The key for effective regression testing is to limit the size of the regression
tests so that it does not take too long to finish testing otherwise the test set will not finish running
before the next commit. We must also pick effective test cases that will not miss bugs .This type
of testing should be automated .It is important to note that we can always keep on adding more machines
in order to counteract the increasing amount of regression tests but at some point the tradeoff is not worth
it.
Acceptance Testing: With this testing we assess software in relation to the provided
requirements, basically we see if the software we have produced meets the requirements we were
given. This is usually the last type of testing done in the sequence of software development activities.
Inconsequence this type of testing is done after unit testing and integration testing.

Steps to perform integration testing :-


1.Understand the architecture of your application.
2.Identify the modules
3.Understand how the data is transferred from one module to another.
4.Understand how the data is entered and received into the system
5.Segregate the application to suite your testing needs.
6.Identify and create the test conditions

Page 34
Software Engineering Lab

PRACTICAL NO. :-7

AIM: To Perform Black Box and White Box Testing Techniques.


Description: - Black box testing treats the system as a “black-box”, so it doesn’t explicitly use
Knowledge of the internal structure or code. Main focus in black box testing is on functionality
of the system as a whole. The term ‘behavioral testing’ is also used for black box testing.
Black box testing occurs throughout the software development and testing life cycle i.e in Unit,
Integration, System, Acceptance and regression testing stages.

Tools used for Black Box Testing are:-


Black box testing tools are mainly record and playback tools. These tools are used for regression
testing that to check whether new build has created any bug in previous working application
functionality. These record and playback tools records test cases in the form of some scripts like
TSL, VB script, Java script, Perl.

Advantages of Black Box Testing


● Tester can be non-technical.
● Used to verify contradictions in actual system and the specifications.
● Test cases can be designed as soon as the functional specifications are complete.
Disadvantages of Black Box Testing
● The test inputs needs to be from large sample space.
● It is difficult to identify all possible inputs in limited testing time. So writing test cases is
slow and difficult.
● Chances of having unidentified paths during this testing.

Black Box Testing Techniques:-


1. Graph Based Testing Methods:-
Each and every application is build up of some objects. All such objects are identified and graph is
prepared. From this object graph each object relationship is identified and test cases written accordingly to
discover the errors.

Page 35
Software Engineering Lab

2. Error Guessing:-
This is purely based on previous experience and judgment of tester. Error Guessing is the art of
guessing where errors can be hidden. For this technique there are no specific tools, writing the test
cases that cover all the application paths.
3. Boundary Value Analysis:-
Many systems have tendency to fail on boundary. So testing boundary values of application is
important. Boundary Value Analysis (BVA) is a test Functional Testing technique where the
extreme boundary values are chosen. Boundary values include maximum, minimum, just
inside/outside boundaries, typical values, and error values.

Extends equivalence partitioningTest both sides of each boundary Look at output boundaries
for test cases tooTest min, min-1, max, max+1, typical values.

BVA techniques:
1. Number of variables For n variables: BVA yields 4n + 1 test cases.
2. Kinds of ranges Generalizing ranges depends on the nature or type of variables.

Advantages of Boundary Value Analysis:-


1. Robustness Testing – Boundary Value Analysis plus values that go beyond the limits.
2. Min –1, Min, Min+1, Nom, Max-1, Max, Max+1.
3. Forces attention to exception handling.

Limitations of Boundary Value Analysis:- Boundary value testing is efficient only for
variables of fixed values i.e boundary.

4. Equivalence Partitioning:
Equivalence partitioning is a black box testing method that divides the input domain of a program
into classes of data from which test cases can be derived.

Page 36
Software Engineering Lab

How this partitioning is performed while testing:-


1. If an input condition specifies a range, one valid and one two invalid classes are defined.
2. If an input condition requires a specific value, one valid and two invalid equivalence classes are
defined.
3. If an input condition specifies a member of a set, one valid and one invalid equivalence class is
defined.
4. If an input condition is Boolean, one valid and one invalid class is defined.

White Box Testing (WBT) is also known as Code-Based Testing or Structural Testing. White box
testing is the software testing method in which internal structure is being known to tester who is
going to test the software.
In this method of testing the testcases are calculated based on analysis internal structure of the
system based on Code coverage, branches coverage, paths coverage, condition Coverage etc.

What do you verify in White Box Testing?

In the White box testing following steps are executed to test the software code:

1.Basically verify the security holes in the code.


2. Verify the broken or incomplete paths in the code.

3. Verify the flow of structure mention in the specification document.

4.Verify the Expected outputs.


5.Verify the all conditional loops in the code to check the complete functionality of the application.
6.Verify the line by line or Section by Section in the code & cover the 100% testing.

Page 37
Software Engineering Lab

White Box Testing Techniques:-

1. Statement Coverage :- In this white box testing technique try to cover 100% statement
coverage of the code, it means while testing the every possible statement in the code is executedat
least once.
Tools: To test the Statement Coverage the Cantata++ can be used as white box testing tool.

2. Decision Coverage:- In this white box testing technique try to cover 100% decision coverage
of the code, it means while test the every possible decision conditions like if-else, for loop and
other conditional loops in the code is executed at least once.
Tools: To cover the Decision Coverage testing in the code the TCAT-PATH is used. This
supports for the C, C++ and Java applications.

3. Condition Coverage :- In this white box testing technique try to cover 100% Condition
coverage of the code, it means while testing the every possible conditions in the code is executed
at least once.

4. Decision/Condition Coverage:In this mixed type of white box testing technique try to cover
100% Decision/Condition coverage of the code, it means while testing the every possible
Decisions/Conditions in the code is executed at least once.

5. Multiple Condition Coverage:In this type of testing we use to cover each entry point of the
system to be execute once.
Advantages of White Box Testing :-

● To start the testing of the software no need to wait for the GUI, you can start the White Box

Testing.

● As covering all possible paths of code so this is a thorough testing.

● Tester can ask about implementation of each section, so it might be possible to remove unused

lines of code which might be causing introduction of bug.


Page 38
Software Engineering Lab

● As the tester is aware of internal coding structure, then it is helpful to derive which type of

input data is needed to testing software application effectively.

● White box testing allows you to help in the code optimization.

Disadvantages of White Box Testing :-

● To test the software application a highly skilled resource is required to carry out testing

who know the deep knowledge of internal structure of the code which increase the cost.

● Update test script is required if changing the implementation too frequently.

● If the application under test large is size then exhaustive testing is impossible.

● It is not possible for testing each and every path/condition of software program, which

might miss the defects in code.

● White box testing very expensive type of testing.

● To analyze each line by line or path by path is nearly impossible work which may introduce

or miss the defects in the code.

● To test each paths or conditions may require different input conditions, so to test full

application tester need to create fill range of inputs which may be a time consuming.

Page 39
Software Engineering Lab

Difference between Black Box Testing and White Box Testing :-

S.No. Black Box Testing White Box Testing


Black box testing is the Software testing White box testing is the software testing
method which is used to test thesoftware method in which internal structure is being
1
without knowing the internal known to tester who is going to test the
structure of code or program. software
This type of testing is carried out by This type of testing is carried out by
2
software testers. software developers.
Implementation Knowledge is not Implementation Knowledge is required to
3
required to carry out Black Box Testing. carry out White Box Testing.
In White Box testing is primarily
In Black Box testing is primarily
concentrate on the testing of program code
4 concentrate on the functionality of the
of the system under test like code structure,
system under test.
branches, conditions, loops etc.
The main aim of this testing to check on
The main aim of White Box testing to check
5 what functionality is performing by the
on how System is performing.
system under test.
Black Box testing can be started based
The main aim of White Box testing to check
6 on Requirement Specifications
on how System is performing.
documents.

Page 40
Software Engineering Lab

Test Case

A Test Case is a set of actions executed to verify a particular feature or functionality of your
software application.

Test Case Name Check Login Functionality


Test Case 1: Check results on entering valid User Id & Password
Test Case 2: Check results on entering Invalid User ID & Password

Test Case 3: Check response when User ID is Empty & Login Button is pressed, and many more

Below is format of a standard login Test case

Test
Test Expected Actual
Case Test Steps Test Data Pass/Fail
Scenario Results Results
ID

1. Go to site
Check http://www.gmail.co Userid = abc User should
Customer m As
TU01 Password = Login into Pass
Login with 2. Enter UserId Expected
3. Enter Password pass1@23 application
valid Data
4. Click Submit

Check 1. Go to site http:// User should


www.gmail.com Userid = abc
Customer not Login As
TU02 2. Enter UserId Password = Pass
Login with into Expected
3. Enter Password pass1@34
invalid Data 4. Click Submit application

Page 41
Software Engineering Lab

PRACTICAL NO. :- 8
AIM: Testing of a web site.

Web Testing in simple terms is checking your web application for potential bugs before its made
live or before code is moved into the production environment.
During this stage issues such as that of web application security, the functioning of the site, its
access to handicapped as well as regular users and its ability to handle

Web Application Testing Checklist:-


Some or all of the following testing types may be performed depending on your web testing
requirements.

1. Functionality Testing :-This is used to check if your product is as per the specifications you
intended for it as well as the functional requirements you charted out for it in your
developmentaldocumentation. Testing Activities Included:

Test all links in your webpage’s are working correctly and make sure there are no broken links.
Links to be checked will include -

● Outgoing links
● Internal links
● Anchor Links
● Mail To Links

Test Forms are working as expected. This will include:-

● Scripting checks on the form are working as expected. For example- if a user does not fill
a mandatory field in a form an error message is shown.
● Check default values are being populated
● Once submitted, the data in the forms is submitted to a live database or is linked to a
working email address
● Forms are optimally formatted for better readability

Page 42
Software Engineering Lab

Test Cookies are working as expected. Cookies are small files used by websites to primarily
remember active user sessions so you do not need to log in every time you visit a website. Cookie
Testing will include

● Testing cookies (sessions) are deleted either when cache is cleared or when they reach their
expiry.
● Delete cookies (sessions) and test that login credentials are asked for when you next visit
the site.

Test HTML and CSS to ensure that search engines can crawl your site easily. This will include

● Checking for Syntax Errors


● Readable Color Schemas
● Standard Compliance. Ensure standards such W3C, OASIS, IETF, ISO, ECMA, or WS-I
are followed.

Test business workflow- This will include

1. Testing your end - to - end workflow/ business scenarios which takes the user through a
series of webpage’s to complete.
2. Test negative scenarios as well, such that when a user executes an unexpected step,
appropriate error message or help is shown in your web application.

2. Performance Testing :-This will ensure your site works under all loads. Testing activities
willinclude but not limited to:-

● Website application response times at different connection speeds


● Load test your web application to determine its behavior under normal and peak loads
● Stress test your web site to determine its break point when pushed to beyond normal loads
at peak time.
● Test if a crash occurs due to peak load, how does the site recover from such an event
● Make sure optimization techniques like gzip compression, browser and server side cache
enabled to reduce load times

Page 43
Software Engineering Lab

3. Usability testing :- Usability Testing has now become a vital part of any web based project.
It can be carried out by testers like you or a small focus group similar to the target audience
of the web application.

Test the site Navigation :-

● Menus, buttons or Links to different pages on your site should be easily visible and
consistent on all webpages
● Content should be legible with no spelling or grammatical errors.
● Images if present should contain an "alt" text

4. Interface Testing :- Three areas to be tested here are - Application, Web and Database Server

● Application: Test requests are sent correctly to the Database and output at the client side
is displayed correctly. Errors if any must be caught by the application and must be only
shown to the administrator and not the end user.
● Web Server: Test Web server is handling all application requests without any service
denial.
● Database Server: Make sure queries sent to the database give expected results.

Test system response when connection between the three layers (Application, Web and
Database) cannot be established and appropriate message is shown to the end user.

5. Database Testing: Database is one critical component of your web application and stress
mustbe laid to test it thoroughly. Testing activities will include-

● Test if any errors are shown while executing queries


● Data Integrity is maintained while creating, updating or deleting data in database.
● Check response time of queries and fine tune them if necessary.
● Test data retrieved from your database is shown accurately in your web application

Page 44
Software Engineering Lab

6. Compatibility testing: Compatibility test ensures that your web application displays
correctlyacross different devices. This would include-

Browser Compatibility Test :- Same website in different browsers will display differently. You
need to test if your web application is being displayed correctly across browsers, JavaScript, AJAX
and authentication is working fine. You may also check for Mobile Browser Compatibility.

The rendering of web elements like buttons, text fields etc. changes with change in Operating
System. Make sure your website works fine for various combination of Operating systems such
as Windows, Linux, Mac and Browsers such as Firefox, Internet Explorer, Safari etc.

7. Security testing: Security Testing is vital for e-commerce website that store sensitive
customerinformation like credit cards. Testing Activities will include-

● Test unauthorized access to secure pages should not be permitted


● Restricted files should not be downloadable without appropriate access
● Check sessions are automatically killed after prolonged user inactivity
● On use of SSL certificates, website should re-direct to encrypted SSL pages.

LOGIN PAGE :-

Page 45
Software Engineering Lab

pg. 46

You might also like