SE Practicals
SE Practicals
Practical No:1
Aim: Study of different software engineering process models.
Software Used: None
Theory:
Software Engineering process models
Software engineering process models are frameworks that define the sequence of activities,
tasks, and deliverables required to develop high-quality software. These models act as a
roadmap, providing a step-by-step guide for software development teams.
1) Waterfall model:
The classical waterfall model divides the life cycle into a set of phases. This model
considers that one phase can be started after the completion of the previous phase. That is
the output of one phase will be the input to the next phase. Thus the development process
can be considered as a sequential flow in the waterfall. Here the phases do not overlap with
each other.
Information Technology 1
Enrollment no.:230863116003 Software Engineering (3161605)
The aim of the requirement analysis and specification phase is to understand the exact
requirements of the customer and document them properly.
Phase3: Design
The goal of this phase is to convert the requirements acquired in the SRS into a format that
can be coded in a programming language. It includes high-level and detailed design as well
as the overall software architecture. A Software Design Document is used to document all
of this effort.
In the coding phase software design is translated into source code using any suitable
programming language. Thus each designed module is coded. The aim of the unit testing
phase is to check whether each module is working properly or not.
Integration of various modules is carried out incrementally over a number of steps. During
each integration step, previously planned modules are added to the partially integrated
system and the resultant system is tested. Finally, after all the modules have been
successfully integrated and tested, the full working system is obtained and system testing
is carried out on this.
Phase6: Maintenance
Maintenance is the most important phase of a software life cycle. The effort spent on
maintenance is 60% of the total effort spent to develop a full software.
Information Technology 2
Enrollment no.:230863116003 Software Engineering (3161605)
Advantages:
Disadvantages:
2) Spiral model:
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 Spiral Model is a software development life cycle (SDLC) model that
providesa systematic and iterative approach to software development. It is based on the idea
of aspiral, with each iteration of the spiral representing a complete software development
cycle, from requirements gathering and analysis to design, implementation, testing, and
maintenance.
Information Technology 3
Enrollment no.:230863116003 Software Engineering (3161605)
Spiral Model Phases: Each phase of the Spiral Model is divided into four quadrants as
shown in the above figure. The functions of these four quadrants are discussed below
During the third quadrant, the identified features are developed and verified through testing.
At the end of the third quadrant, the next version of the software is available.
In the fourth quadrant, the Customers evaluate the so far developed version of the software.
In the end, planning for the next phase is started.
Information Technology 4
Enrollment no.:230863116003 Software Engineering (3161605)
Advantages:
• Risk Handling: The projects with many unknown risks that occur as the
development proceeds, in that case, Spiral Model is the best development model to
follow due to the risk analysis and risk handling at every phase.
• Good for large projects: It is recommended to use the Spiral Model in large and
complex projects.
• Flexibility in Requirements: Change requests in the Requirements at later phase
can be incorporated accurately by using this model.
• Customer Satisfaction: Customer can see the development of the product at the
early phase of the software development and thus, they habituated with the system
by using it before completion of the total product.
Disadvantages:
• Complex: The Spiral Model is much more complex than other SDLC models.
• Expensive: Spiral Model is not suitable for small projects as it is expensive.
• Too much dependability on Risk Analysis: The successful completion of the
project is very much dependent on Risk Analysis. Without very highly
experienced experts, it is going to be a failure to develop a project using this
model.
• Difficulty in time management: As the number of phases is unknown at the
start of the project, so time estimation is very difficult.
3) V Model:
V-Model also referred to as the Verification and Validation Model. In this, each phase of
SDLC must complete before the next phase starts. It follows a sequential design process
same as the waterfall model. Testing of the device is planned in parallel with a
corresponding stage of development.
Information Technology 5
Enrollment no.:230863116003 Software Engineering (3161605)
Verification: It involves a static analysis method (review) done without executing code. It
is the process of evaluation of the product development process to find whether specified
requirements meet.
V- Model contains Verification phases on one side of the Validation phases on the other
side. Verification and Validation process is joined by coding phase in V-shape. Thus it is
known as V-Model.
1. Business requirement analysis: This is the first step where product requirements
understood from the customer's side. This phase contains detailed communication to
understand customer's expectations and exact requirements.
2. System Design: This phase contains the system design and the complete hardware and
communication setup for developing product.
Information Technology 6
Enrollment no.:230863116003 Software Engineering (3161605)
4. Module Design: In the module design phase, the system breaks down into small
modules. The detailed design of the modules is specified, which is known as Low-Level
Design.
5. Coding Phase: After designing, the coding phase is started. Based on the requirements,
a suitable programming language is decided. There are some guidelines and standards for
coding.
1. Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed during the module
design phase. These Unit Test Plans are executed to eliminate bugs at codeor unit level.
2. Integration Testing: Integration Test Plans are developed during the Architectural
Design Phase. These tests verify that groups created and tested independently can coexist
and communicate among themselves.
3. System Testing: System Tests Plans are developed during System Design Phase. System
testing test the complete application with its functionality, inter dependency, and
communication. It tests the functional and non-functional requirements of the developed
application.
4. Acceptance Testing: This test is performed in a user environment that resembles the
production environment. UAT verifies that the delivered system meets user’s requirement
and system is ready for use in real world.
• The V-shaped model should be used for small to medium sized projects where
requirements are clearly defined and fixed.
• The V-Shaped model should be chosen when ample technical resources are
available with needed technical expertise.
Advantage:
• Easy to Understand.
• Testing Methods like planning, test designing happens well before coding.
• This saves a lot of time. Hence a higher chance of success over the waterfall model.
• Avoids the downward flow of the defects.
Information Technology 7
Enrollment no.:230863116003 Software Engineering (3161605)
• Works well for small plans where requirements are easily understood.
Disadvantage:
• Very rigid and least flexible.
• If any changes happen in the midway, then the test documents along with the required
documents, has to be updated.
4) RAD Model: A software project can be implemented using this model if the project can
be broken down into small modules wherein each module can be assigned independently
to separate teams. These modules can finally be combined to form the final product. We
use this model when the system should need to create the project that modularizes in a short
span time (2-3 months), When the requirements are well-known, When the technical risk is
limited.
RAD Phases:
Phase1: Business Modelling: The information flow among business functions is defined
by answering questions like what data drives the business process, what data is generated,
who generates it, where does the information go, who process it and so on.
Phase2: Data Modelling: The data collected from business modeling is refined into a set
of data objects (entities) that are needed to support the business. The attributes (character
Information Technology 8
Enrollment no.:230863116003 Software Engineering (3161605)
of each entity) are identified, and the relation between these data objects (entities) is
defined.
Phase3: Process Modelling: The information object defined in the data modelling phase
are transformed to achieve the data flow necessary to implement a business function.
Processing descriptions are created for adding, modifying, deleting, or retrieving a data
object.
Phase4: Application Generation: Automated tools are used to facilitate construction of
the software; even they use the 4th GL techniques.
Phase5: Testing & Turnover: Many of the programming components have already been
tested since RAD emphasis reuse. This reduces the overall testing time.
When to use RAD Model?
• When the system should need to create the project that modularizes in a short span
time (2-3 months).
• When the requirements are well-known.
• When the technical risk is limited.
• When there's a necessity to make a system, which modularized in 2-3 months of
period.
• It should be used only if the budget allows the use of automatic code generating
tools.
Advantage:
Disadvantage:
Information Technology 9
Enrollment no.:230863116003 Software Engineering (3161605)
5) Agile Model: Agile process model refers to a software development approach based on
iterative development. Agile methods break tasks into smaller iterations, or parts do not
directly involve long term planning. we can use this model when frequent changes are
required, when a highly qualified and experienced team is available, when a customer is
ready to have a meeting with a software team all the time, when project size is small.
Agile Phases:
Phase1. Requirements gathering: In this phase, you must define the requirements. You
should explain business opportunities and plan the time and effort needed to build the
project. Based on this information, you can evaluate technical and economic feasibility.
Phase2. Design the requirements: When you have identified the project, work with
stakeholders to define requirements. You can use the user flow diagram or the high-level
UML diagram to show the work of new features and show how it will apply to your existing
system.
Phase3. Construction/ iteration: When the team defines the requirements, the work
begins. Designers and developers start working on their project, which aims to deploy a
working product. The product will undergo various stages of improvement, so it includes
simple, minimal functionality.
Phase4. Testing: In this phase, the Quality Assurance team examines the product's
performance and looks for the bug.
Information Technology 10
Enrollment no.:230863116003 Software Engineering (3161605)
Phase5. Deployment: In this phase, the team issues a product for the user's work
environment.
Phase6. Feedback: After releasing the product, the last step is feedback. In this, the team
receives feedback about the product and works through the feedback.
Advantage:
• Frequent Delivery
• Face-to-Face Communication with clients.
• Efficient design and fulfils the business requirement.
• Anytime changes are acceptable.
• It reduces total development time.
Disadvantage:
• The lack of formal documents creates confusion and important decisions taken
during different phases can be misinterpreted at any time by different team
members.
• Agile development models often involve working in short sprints, which can make
it difficult to plan and forecast project timelines and deliverables. This can lead to
delays in the project and can make it difficult to accurately estimate the costs and
resources needed for the project.
• Agile development models require a high degree of expertise from team members,
as they need to be able to adapt to changing requirements and work in an iterative
environment. This can be challenging for teams that are not experienced in agile
development practices and can lead to delays and difficulties in the project.
• Due to the absence of proper documentation, when the project completes and the
developers are assigned to another project, maintenance of the developed project
can become a problem.
Information Technology 11
Enrollment no.:230863116003 Software Engineering (3161605)
Phases of Incremental:
Phase1: Requirement analysis: In the first phase of the incremental model, the product
analysis expertise identifies the requirements. And the system functional requirements are
understood by the requirement analysis team.
Phase2: Design & Development: In this phase of the Incremental model of SDLC, the
design of the system functionality and the development method are finished with success.
Phase3: Testing: In the incremental model, the testing phase checks the performance of
each existing function as well as additional functionality. In the testing phase, the various
methods are used to test the behaviour of each task.
Information Technology 12
Enrollment no.:230863116003 Software Engineering (3161605)
Advantage:
Disadvantage:
Information Technology 13
Enrollment no.:230863116003 Software Engineering (3161605)
Practical No:2
Aim: Study of SRS and prepare SRS document for DE project.
Software Used: Vs Code , Xampp
1. Introduction
1.1 Purpose
The purpose of this document is to describe the software requirements for the Digital Archive
system. By using this system, users can efficiently store, manage, and access digital records,
saving time and improving organization.
This document is intended for stakeholders, developers, and other parties involved in the
development and implementation of the Digital Archive system. It serves as a reference for
understanding its features, requirements, and functionality.
It is recommended that readers familiarize themselves with the overall goals and objectives of
the Digital Archive system before reviewing this document. This will provide better context for
understanding the system’s features and requirements.
2. Overall Description
The system will be designed to provide users with a seamless and optimized experience by
allowing them to manage and access digital documents efficiently. The aim is to create a user-
friendly, secure, and scalable Digital Archive system capable of adapting to various
institutional and user-specific needs.
• General public
• Students and Researchers
• Administrative Staff
• Authorized Visitors
Information Technology 14
Enrollment no.:230863116003 Software Engineering (3161605)
For the Digital Archive project, to implement the feature where users can control appliances,
you can create a draggable display showing a list of appliances. Here's an outline of how this
can be done:
1. Appliance List Display: Use a draggable list, which can be implemented with a
combination of HTML, CSS, and JavaScript. Each appliance could be a list item within
a container that users can drag to reorder or select.
2. Drag-and-Drop: You can utilize HTML5's drag and drop features or libraries like
react-dnd for React.js, or jQuery UI for a more generic solution, to make the appliances
draggable.
• The system should comply with relevant user gestures for intuitive appliance control.
• The system should be compatible with a wide range of appliances for seamless
integration.
• The system should be capable of handling a large number of user interactions without
performance degradation.
• Users can access documents within a specified proximity of the system interface.
• Users can interact with and manage documents without the need for physical
interaction, enabling a seamless digital experience.
• The system should efficiently handle a large volume of document interactions without
compromising performance.
3. User Management
• The system should provide signals for integration with external systems (such as
database triggers) and then update the document status.
• Integrated systems should be able to access real-time data of document interactions,
enabling seamless updates and management in the digital archive.
Information Technology 15
Enrollment no.:230863116003 Software Engineering (3161605)
5. Non-Functional Requirements
Information Technology 16
Enrollment no.:230863116003 Software Engineering (3161605)
Practical No:3
Aim: Draw Data Flow Diagram for Library Management System
Software Used: StarUML
Theory:
DFD
• DFD is the abbreviation for Data Flow Diagram. The flow of data of a system or
a process is represented by DFD.
• DFD does not have control flow and no loops or decision rules are present.
• The DFD belongs to structured-analysis modelling tools.
Components of DFD:
• Process
• Data Flow
• External Entity
• Data store
Levels of DFD
● 0-level DFD
● 1-level DFD
● 2-level DFD
OUTPUT:
● Level-0 for Library management system:
Information Technology 17
Enrollment no.:230863116003 Software Engineering (3161605)
Information Technology 18
Enrollment no.:230863116003 Software Engineering (3161605)
Practical No:4
Aim: Draw Use Case Diagram for ATM System.
Software Used: StarUML
Theory:
A Use Case Diagram is a type of Unified Modeling Language (UML) diagram that
represents the interaction between actors (users or external systems) and a system under
consideration to accomplish specific goals. It provides a high-level view of the system’s
functionality by illustrating the various ways users can interact with it.
Purpose of Use Case Diagrams
The main purpose of a use case diagram is to portray the dynamic aspect of a system. It
accumulates the system's requirement, which includes both internal as well as external
influences. It invokes persons, use cases, and several things that invoke the actors and
elements accountable for the implementation of use case diagrams. It represents how an
entity from the external environment can interact with a part of the system.
• Actors:
• UseCase:
Information Technology 19
Enrollment no.:230863116003 Software Engineering (3161605)
• System Boundary:
OUTPUT:
Use Case diagram for ATM System
Information Technology 20
Enrollment no.:230863116003 Software Engineering (3161605)
Practical No:5
Aim: Draw use case diagram and class diagram for hospital management
system.
Software Used: StarUML
Theory:
Class diagram:
Class diagrams are a type of UML (Unified Modeling Language) diagram used in software
engineering to visually represent the structure and relationships of classes within a system
i.e. used to construct and visualize object-oriented systems. Class diagrams provide a high-
level overview of a system’s design, helping to communicate and document the structure
of the software. They are a fundamental tool in object-oriented design and play a crucial
role in the software development lifecycle.
for example:
Visibility notations indicate the access level of attributes and methods. Common visibility
notations include:
Information Technology 21
Enrollment no.:230863116003 Software Engineering (3161605)
Relationship
Association
Aggregation
Composition
Inheritance (Generalization)
Multiplicity
0..* 0 or Many
0..1 0 or one
1..0
1. .*
Information Technology 22
Enrollment no.:230863116003 Software Engineering (3161605)
OUTPUT:
Use case diagram for hospital management system
Information Technology 23
Enrollment no.:230863116003 Software Engineering (3161605)
Practical No:6
Aim: Draw E-R Diagram for Online shopping System
Software Used: EdrawMax
Theory:
E-R Diagram:
The Entity Relational Model is a model for identifying entities to be represented in the
database and representation of how those entities are related. The ER data model specifies
enterprise schema that represents the overall logical structure of a database graphically.
Components:
• Entity:
• Attributes:
• Relationship:
• Weak Entity:
• Derived Attribute:
Information Technology 24
Enrollment no.:230863116003 Software Engineering (3161605)
OUTPUT:
E-R Diagram for Online shopping System.
Information Technology 25
Enrollment no.:230863116003 Software Engineering (3161605)
Practical No:7
Aim: Calculate cyclomatic complexity for any program.
Software Used: EdrawMax
Theory:
The cyclomatic complexity of a code section is the quantitative measure of the number of
linearly independent paths in it. It is a software metric used to indicate the complexity of a
program. It is computed using the Control Flow Graph of the program. The nodes in the
graph indicate the smallest group of commands of a program, and a directed edge in it
connects the two nodes i.e. if the second command might immediately follow the first
command.
Formula:
1. Cyclomatic complexity= Total no. of region in graph
2. V(G)=E-N+2 where E is Total no. of edges, N is Total no. of nodes
3. V(G)=P+1 where P is Total no. of predicate nodes
Code:
i = 0;
n=4; //N-Number of nodes present in the graph
while (i<n-1) do
j = i + 1;
while (j<n) do
if A[i]<A[j] then
swap(A[i], A[j]);
end do;
j=j+1;
end do;
Information Technology 26
Enrollment no.:230863116003 Software Engineering (3161605)
V(G)=3+1 = 4
Information Technology 27
Enrollment no.:230863116003 Software Engineering (3161605)
Practical No:8
Aim: Prepare the Data Flow Diagram (DFD) diagram using procedural
approach for the current semester project.
Level 0 DFD
Information Technology 28
Enrollment no.:230863116003 Software Engineering (3161605)
Practical No:9
Aim: Study and Design Test Cases for various functionality of current
semester project.
Theory:
Software testing is known as a process for validating and verifying the working of a
software/application. It makes sure that the software is working without any errors, bugs,
or any other issues and gives the expected output to the user. The software testing process
isn’t limited to finding faults in the present software but also finding measures to upgrade
the software in various factors such as efficiency, usability, and accuracy. So, to test
software the software testing provides a particular format called a Test Case.
Information Technology 29
Enrollment no.:230863116003 Software Engineering (3161605)
Information Technology 30