0% found this document useful (0 votes)
30 views32 pages

SE Lab

Uploaded by

iroyharshkumar
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)
30 views32 pages

SE Lab

Uploaded by

iroyharshkumar
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

NOIDA INSTITUTE OF ENGINEERING & TECHNOLOGY

GREATER NOIDA-201306
(An Autonomous Institute)
School of Computer Sciences & Engineering in
Emerging Technologies

Department of CSE (Data Science)

Session (2023 - 2024)


SOFTWARE ENGINEERING
(ACSDS0653)

(6th Semester)

Submitted By:
Submitted To:
Name : Sushant Kumar
Roll No : 2101331540109
Dr Nidhi Gupta
Section : DS - B

Affiliated to Dr. A.P.J Abdul Kalam Technical University, Uttar Pradesh, Lucknow
INDEX
Page
S NO Practical Conducted Date
No
Grade Sign.

Team formation and allotment of Mini project :


1 problem statement, Literature survey,
Requirement analysis.

Draw the use case diagram: specify the role of


2 each of the actors, Data Flow Diagram (DFD):
All levels.

3 Design an ER diagram for with multiplicity.

Prepare a SRS document in line with the IEEE


4
recommended standards.

Create a Software Design Document (SDD):


5
Object and Class diagram.

Create Interaction diagram: sequence


6
diagram, collaboration diagram for SDD.

Create Activity diagram and Component


7
diagram for SDD

Estimation of Test Coverage Metrics and


8
Structural Complexity.

Design test suite for equivalence class


9
partitioning.

10 Design test cases for Boundary value analysis

11 Mini project with CASE tools


Program 01
Team Formation and allotment of Mini Project: Problem Statement,
Literature survey, Requirement Analysis

Project Title: Schedule Management App Development

Team Members:

1. Sushant Kumar (2101331540109)


2. Mohsin Khan (2201331549010)
3. Vaibhav Singh (2201331549025)

Topic: Schedule Management App Development


Problem Statement:
With increasing demands on individuals' time, managing schedules efficiently has
become crucial. This project aims to develop a comprehensive schedule
management app to help users organize their tasks and appointments effectively.
Literature Survey:
1. Title: Automated Schedule Optimization Techniques
- Authors: Johnson, A., Smith, B., & Lee, C.
- Abstract: Explored various algorithms for automated schedule optimization.

- Result: Achieved improved scheduling efficiency using genetic algorithms.

2.Title: User-Centric Schedule Management Systems


- Authors: Chen, D., Wang, E., & Liu, F.

- Abstract: Investigated user preferences and behavior in schedule management


apps.
- Result: Identified key features for enhancing user experience and engagement.

Sushant Kumar 2101331540109


3. Title: Mobile Schedule Management Apps: Trends and Challenges
Authors: Park, G., Kim, H., & Lee, J.
Abstract: Analyzed trends and challenges in mobile schedule management apps.
Result: Highlighted the importance of intuitive UI/UX design and real-time
synchronization.

4. Title: Machine Learning for Personalized Schedule Recommendations


Authors: Zhang, L., Wu, M., & Li, S.
Abstract: Proposed machine learning algorithms for personalized schedule
recommendations.
Result: Demonstrated improved schedule adherence and user satisfaction.

Requirement Analysis:

1. Functional Requirements:
- Task Management: Allow users to create, edit, and prioritize tasks.
- Calendar Integration: Sync schedules with users' existing calendars (e.g., Google
Calendar, Apple Calendar).
- Notification System: Send reminders and notifications for upcoming tasks and
appointments.
- Data Backup: Provide options for data backup and synchronization across devices.

Sushant Kumar 2101331540109


2. Non-Functional Requirements:

Usability: Ensure intuitive user interface and seamless navigation.


Performance: Optimize app performance for quick loading and responsiveness.
Security: Implement robust security measures to protect user data.
Scalability: Design the app to accommodate a growing user base and increasing
data volume.

Abstract:
Managing busy schedules effectively is essential for productivity and work-life balance. This
project aims to develop a user-friendly schedule management app equipped with features
such as task management, calendar integration, and personalized recommendations. By
leveraging insights from existing literature and incorporating user-centric design principles,
the app seeks to streamline the scheduling process and enhance users' productivity and time
management skills.

Sushant Kumar 2101331540109


Program 02
Draw the use case diagram: specify the role of each of the actors. Data Flow
diagram (DFD): All levels.

Definition: - A use case diagram is a representation of a user's interaction with thesystem


that shows the relationship between the user and the different use cases in which the user is
involved.
Scenario: User Interaction
Actors: An actor is an individual, entity, or external structure that plays a role with our
structure in one or more encounters (actors are usually drawn as UML Stick Figures Use
case diagrams).

USE CASE DIAGRAM

Sushant Kumar 2101331540109


Data Flow Diagram:

A data flow diagram (DFD) is a visual representation of how data moves through a system. It
illustrates the flow of information between external entities, processes, and data stores.
External entities are sources or destinations of data, processes perform operations on the data,
and data stores are repositories where data is stored. Data flows are depicted by arrows,
showing the movement of data between these components. DFDs are useful for understanding
system architecture, identifying processes, and communicating system requirements. They are
typically organized into different levels, starting from a high-level overview and then breaking
down processes into more detailed subprocesses.

Sushant Kumar 2101331540109


Program 03
Design a ER diagram with multiplicity

ER-Diagram is a pictorial representation of data that describes how data is communicated and
related to each other. Any object, such as entities, attributes of an entity, sets of relationship,
and other attributes of relationship, can be characterized with the help of the ER diagram.

Entities: They are represented using the rectangle-shaped box. These rectangles are named with
the entity set they represent.
Attributes describe the properties or characteristics of entities. For instance, a student entity
might have attributes such as student ID, name, and date of birth. Similarly, a course entity
might have attributes like course ID, title, and credit hours.
Relationships illustrate how entities are related to each other. They describe the associations or
connections between entities. For example, in a university database, there could be a
relationship between students and courses indicating which students are enrolled in which
courses.
In an ER diagram, entities are represented as rectangles, attributes are depicted as ovals, and
relationships are shown as diamond shapes connecting the related entities. Additionally, lines
between entities and attributes indicate the relationship between them, while lines between
entities represent the connections between them.
Overall, an ER diagram provides a clear and concise visualization of the structure of a
database, helping database designers and developers understand the relationships between
different elements and plan the database schema effectively.

Sushant Kumar 2101331540109


Program 04
To prepare a SRS document in line with the IEEE recommended standards.

1. Introduction
1.1 Purpose
Proving that most of the movie rating website in 2015 had a bias towards rating movies
better to sell more tickets. The goal of the Fake News Challenges to explore how
artificial intelligence technologies, particularly machine learning and natural language
processing, might be leveraged to combat the fake news problem. We believe that these
AI technologies hold promise for significantly automating parts of the procedure
human fact checkers use today to determine if a story is real or a hoax.
1.2 Scope
This product is intended to detect fake news vs real news using machine learning. This
product will help the user to distinguish between a legitimate news and a real news. This
will help the users to protect from malicious sites and keep the system safe. This
product can predict this by using random forests, naïve based classifier, decision trees.
Its scope is more towards detecting authentic news and preventing spread of
misinformation.

1.3 Overview
.A human being is unable to detect all these fake news. So there is a need for machine
learning classifiers that can detect these fake news automatically. Use of machine
learning classifiers for detecting the fake
news is described in this systematic literature review.
2. General Description
2.1 Product Perspective

These social media platforms in their current state are extremely powerful and useful
for their ability to allow users to discuss and share ideas and debate over issues such as
democracy, education, and health. However, such platforms are also used with a
negative perspective by certain entities commonly for monetary gain [3, 4] and in other
cases for
creating biased opinions, manipulating mindsets, and spreading satire or absurdity.
The phenomenon is commonly known as fake news.

Sushant Kumar 2101331540109


2.2Product Functions
The product model will test the unseen data, the results will be plotted, and accordingly, the
product will be a model that detects and classifies fake articles and can be used and
integrated with any system for future use.
2.3 User Characteristics
This software can be used by anyone who wishes to be vigilant of the news articles that they
are reading and find out whether they are real or not.

Specific Requirements

2.4 Functional Requirement

3.1.1 Functional Requirement II

Collecting Dataset: Creating a dataset for the training of the models is the primary task.
Datasets can be created manually and then augmented.
Pre-Processing: sending the dataset to the model, the dataset should be pre-processed. This
includes splitting the data into three folds.

Training Models: To do an optimal phishing detection model, they should be trained and
validated. Detecting Fake News: Training of models to detect real news from the pool of
fake news.

3.2.1 Communication Interface


Since the different components of the system are responsible for different functions and as 19
they are dependent on each other as well, then communication between them is important.
All components would be looking for each other for their own data to be processed in some
way. So, for this, the underlying operating system would be responsible and will carry out all
the communication or data transfer processes.

2.5 Performance Requirement


This software will require good internet connection to connect with servers and a good
processing system to give best performance. However, developers are trying hard to make
applications lighter and easier to use.

2.6 Design constraints

Sushant Kumar 2101331540109


3.4.1 Standard Compliance
One of the biggest constraints would be that there would be constant requirement of internet
connection like Wi-Fi networks or LAN connections to operate.

3.4.2 Hardware Limitations


As the product would be using a big database to analyze issues, it might get slow and it might
get tough to get quick responses. Reverse engineering of the product is not possible unless
permitted by the company.

2.7 Attributes
• Adaptability – The product is very adaptable. It can work on maximum platforms, its features
might not change with the change of platform.

• Availability – This product will be available on the official website for free.

• Correctness – This software uses machine learning models to predict whether news is fake or
not with an accuracy of 97%. Therefore there is correctness

Sushant Kumar 2101331540109


Program 05
Create a Software Design Document (SDD): Object and Class Diagram.

A Software Design Document (SDD) typically includes class diagrams and object diagrams to
describe the structure and relationships within a software system.

Class Diagram: A class diagram is a visual representation of the classes, attributes, methods, and
relationships within a software system. It illustrates the static structure of the system, showing how
classes are related to each other and how they interact. In a class diagram:
Classes: Represented as rectangles with three compartments: the top compartment contains the
class name, the middle compartment lists the class attributes, and the bottom compartment lists
the class methods.
Attributes: Properties or data members of a class, depicted as name : type.
Methods: Functions or operations that a class can perform, depicted as name(parameters) :
return_type.
Relationships: Associations, dependencies, inheritances, and aggregations between classes are
depicted using various types of lines and symbols.

Object Diagram: An object diagram is a snapshot of a system at a specific point in time, showing
instances of classes and their relationships. It represents the dynamic aspect of the system,
illustrating how objects interact with each other to accomplish tasks. In an object diagram:
Objects: Instances of classes, represented as rectangles labeled with the object name and its
attributes and values.
Links: Connections between objects, representing relationships such as associations or
dependencies.
Attributes and Values: Values assigned to object attributes, illustrating the state of the objects at
the particular moment.

Sushant Kumar 2101331540109


Object Diagram

Class Diagram

Sushant Kumar 2101331540109


Program 06
Create Interaction Diagram: Sequence Diagram, collaboration diagram for
SDD

A sequence diagram is a visual representation of the interactions between objects or components in


a system over time. It illustrates the flow of messages exchanged between these objects to
accomplish a specific task or scenario. In a sequence diagram, objects are depicted as vertical lines,
and messages are shown as horizontal arrows between them, indicating the order of communication.
Activation bars above an object's lifeline represent the period during which it is actively processing a
message. Sequence diagrams help in understanding the dynamic behavior of a system, including how
objects collaborate to achieve functionality and the timing constraints of these interactions. They are
valuable for communication among stakeholders and guiding the implementation process in software
development.

Sequence Diagram for Loginpage

Sushant Kumar 2101331540109


A collaboration diagram, also known as a communication diagram, is a visual representation of
the interactions between objects or components in a system. Unlike sequence diagrams, which
focus on the chronological order of messages exchanged, collaboration diagrams emphasize the
relationships and interactions between objects without strictly adhering to a time-based
sequence. In a collaboration diagram, objects are depicted as nodes, and the relationships
between them are represented by labeled lines indicating the types of interactions, such as
associations, dependencies, or messages. Collaboration diagrams are useful for understanding
the structural relationships and communication patterns within a system, providing insights into
how objects collaborate to achieve specific tasks or functionalities. They are valuable tools for
communication among stakeholders, aiding in the design, analysis, and documentation of
software systems.

Collaboration Diagram

Sushant Kumar 2101331540109


Program 07
Create Activity Diagram and Component Diagram for SDD.

An activity diagram is a visual representation of the flow of activities or actions within a system or
process. It depicts the sequence of actions, decisions, and control flows from the start to the
completion of a task or process. In an activity diagram:

- Activities: Represented as rounded rectangles, each activity represents a specific action or task
to be performed within the system.
- Transitions : Arrows between activities indicate the flow of control from one activity to another,
illustrating the sequence of actions.
- Decisions : Diamond-shaped nodes represent decision points where the flow of control can take
different paths based on conditions or criteria.
- Forks and Joins : Parallel bars represent forks, indicating the simultaneous execution of multiple
activities, while merge symbols represent joins, indicating the synchronization of parallel paths.
- Start and End Nodes : Rounded rectangles with a single incoming or outgoing arrow represent
the starting and ending points of the activity diagram, respectively.

Activity diagrams are useful for modeling business processes, software workflows, and system
behaviors, providing a visual representation of the steps involved and their relationships. They
help stakeholders understand the logic and flow of activities within a system, aiding in analysis,
design, and communication during the software development lifecycle.

Activity Diagram for SDD

Sushant Kumar 2101331540109


A component diagram is a visual representation of the high-level structure of a system, showcasing
the components or modular building blocks of the system and their relationships. It illustrates
how various software components interact with each other to achieve specific functionalities or
services. In a component diagram:
Components: Represented as rectangles, each component encapsulates a set of related
functionalities, such as classes, modules, libraries, or subsystems.
Interfaces: Depicted as small rectangles attached to components, interfaces define the services
or functionalities that a component provides or requires from other components.
Dependencies: Arrows between components indicate relationships, such as dependencies or
associations, showing how components rely on each other.
Connectors: Represented as lines connecting interfaces, connectors illustrate the
communication paths or interactions between components.
Ports: Small squares on the edges of components represent ports, which are connection points
for interactions between components.

Component Diagram for SDD

Sushant Kumar 2101331540109


Program 08
Estimation of test coverage metrics and structural complexity

➢ After completing this experiment you will be able to:


• Identify basic blocks in a program module, and draw it's control flow graph (CFG)
• Identify the linearly independent paths from a CFG
• Determine Cyclomatic complexity of a module in a program

A control flow graph (CFG) is a directed graph where the nodes represent different instructions of a
program, and the edges define the sequence of execution of such instructions. Figure 1 shows a
small snippet of code (compute the square of an integer) along with it's CFG. For simplicity, each
node in the CFG has been labeled with the line numbers of the program containing the instructions.
A directed edge from node #1 to node #2 in figure 1 implies that after execution of the first
statement, the control of execution is transferred to the second instruction

A program, however, doesn't always consist of only sequential statements. There could be
branching and looping involved in it as well. Figure 2 shows how a CFG would look like if there are
sequential, selection and iteration kind of statements in order.

Sushant Kumar 2101331540109


The size of a CFG could be reduced by representing each basic block with a node. To illustrate
this, let's consider the following example.

sum = 0;
i = 1;
while (i ≤ n) {
sum += i;
++i;
}
printf("%d", sum);
if (sum > 0) {
printf("Positive");
}
The CFG with basic blocks is shown for the above code in figure 3.

Sushant Kumar 2101331540109


Path
A path in a CFG is a sequence of nodes and edges that starts from the initial node (or entry
block) and
ends at the terminal node. The CFG of a program could have more than one terminal nodes.

Linearly Independent Path


A linearly independent path is any path in the CFG of a program such that it includes at least
one new edge not present in any other linearly independent path. A set of linearly independent
paths give a clear picture of all possible paths that a program can take during it's execution.
Therefore, path-coverage testing of a program would suffice by considering only the linearly
independent paths.

In figure 3 we can find four linearly independent paths:

1 - 3 - 6 - (7, 8) - 10
1 - 3 - 6 - (7, 8) - 9 - 10
1 - 3 - (4, 5) - 6 - (7, 8) - 10
1 - 3 - (4, 5) - 6 - (7, 8) - 9 - 10

Note that 1 - 3 - (4, 5) - 3 - (4, 5) - 6 - (7, 8) - 10, for instance, won't qualify as a linearly
independent path because there is no new edge not already present in any of the above four
linearly independent paths

Cyclomatic Complexity
Cyclomatic Complexity is a software metric used to measure the complexity of a program. It is
computed based on the control flow of the program. The formula for Cyclomatic Complexity
(CC) is derived from

Sushant Kumar 2101331540109


Program 09
Title: Equivalence Partitioning and Boundary value Analysis

For Triangle Problem


SOFTWARE REQUIRED : C language

THEORY: Equivalence Class Testing In this method, input domain of a program is partitioned into a
finite number of equivalence classes such that one can reasonably assume, but not be absolutely
sure, that the test of a representative value of each class is equivalent to a test of any other value.

Two steps are required to implementing this method:

1. The equivalence classes are identified by taking each input condition and partitioning it into valid
and invalid classes. For example, if an input condition specifies a range of values from 1 to 999, we
identify one valid equivalence class
[1<item999].

2. Generate the test cases using the equivalence classes identified in the previous step. This is
performed by writing test cases covering all the valid equivalence classes. Then a test case is written
for each invalid equivalence class so that no test contains more than one invalid class. This is to
ensure that no two invalid classes mask each other.

Most of the time, equivalence class testing defines classes of the input domain. However,
equivalence classes should also be defined for output domain. Hence, we should design equivalence
classes based on input and output domain.

Sushant Kumar 2101331540109


#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int a,b,c;
clrscr();
printf("Enter first side");
scanf("%d",&a);
printf("Enter second side");
scanf("%d",&b);
printf("Enter third side");
scanf("%d",&c);
if((a+b)<c):
{
printf("It is not a triangle");
}
else if((a==b)&&(b==c)&&(c==a))
{
printf("It is an equilateral triangle");
}
else if((a==b)||(b==c)||(c==a))
{
printf("It is an isoscales triangle");
}
else if ((a!=b)&&(b!=c)&&(c!=a))
{ printf("It is an scales triangle");
}
getch();
}

TEST CASES:
Output domain equivalence class test cases can be identified as follows:
O1={:Not a triangle with sides x,y,z}
O2={:Equilateral triangle with sides x,y,z}
O3={:Isosceles triangle with sides x,y,z }
O4={:Scalene triangle with sides x,y,z}

Sushant Kumar 2101331540109


Input domain equivalence class test cases can be identified as follows:

I1= {x: x<1}


I2= {x: 1<=x<=100}
I3= {x: x>100}
I4= {y: y<1}
I5= {y: 1<=y<=100}
I6= {y: y>100}
I7= {z: z<1}
I8= {z: 1<=z<=100}
I9= {z: z>100}
I10= {<x,y,x>: x=y=z}
I11= {<x,y,z> x!=y, y!=z, x!=z}
I12= {<x,y,z>: x=y, x!=z}
I13= {<x,y,z>: x=z, x!=y}
I14= {<x,y,z>: y=z, y!=x}
I15= {<x,y,z>: x=y+z}
I16= {<x,y,z>: x>y+z}
I17= {<x,y,z>: y=x+z}
I18= {<x,y,z>: y>x+z}
I19= {<x,y,z>: z=x+y}
I20= {<x,y,z>: z>x+y}

Sushant Kumar 2101331540109


TEST RESULTS
We have performed 4 test cases to perform Output Domain Equivalence Class Testing while there are
20 test cases to perform Input Domain Equivalence Class Testing of A triangle problem which has
resulted into above expected outputs.

Sushant Kumar 2101331540109


Experiment - 10
Title: Equivalence Partitioning and Boundary value Analysis

Problem Statement:
When getting a person’s weight and height as input, the program prints the person’s body
weight index. The weight is given in kilograms (as a real number, for instance: 82.0) and the
height in meters (as a real number, for instance: 1.86). The body weight index equals weight
divided by height squared: weight / (height * height).Design test cases for testing the program
with the black-box strategy.

Program:

#include <stdio.h>
#include <conio.h>
void main()
{
float ht, wt, bmi;
clrscr();
ht = 0; wt = 0;
while (ht<0.3 || ht>2.4) {

printf("Enter valid height in meters");


scanf("%f", &ht);
}
while (wt<2.0 || wt>350) {
printf("\nEnter valid weight in kilograms");
scanf("%f", &wt);
}
bmi=wt/(ht*ht);
printf("\nBMI=%f kg/sq.m",bmi);
getch();
}

Sushant Kumar 2101331540109


Conclusion: The program was tested with the above test cases and worked fine.

Sushant Kumar 2101331540109


Experiment - 11
Title: Mini project with CASE tools
Sure, here's a mini project idea for a schedule management system using CASE (Computer-
Aided Software Engineering) tools:

Project Title: Schedule Master: A CASE-aided Schedule Management System

Project Description:
Schedule Master is a desktop application designed to help users efficiently manage their
schedules, tasks, and deadlines. It provides a user-friendly interface and robust features for
organizing and prioritizing tasks, setting reminders, and tracking progress. The system is
developed using CASE tools to ensure proper documentation, design consistency, and efficient
development.

Key Features:

1. User Authentication: Implement a secure login system to allow users to create accounts and
securely access their schedules.

2. Task Management: Users can create, edit, and delete tasks. Each task can have a title,
description, due date, priority level, and status (e.g., pending, in progress, completed).

3. Calendar View: Display tasks and deadlines on a calendar interface, allowing users to
visualize their schedule and plan accordingly.

4. Reminders and Notifications: Implement reminders and notifications to alert users of


upcoming deadlines and overdue tasks.

5. Priority Management: Allow users to assign priority levels to tasks and sort them based on
priority to focus on high-priority tasks first.

Sushant Kumar 2101331540109


6. Search and Filter: Provide functionality to search for specific tasks and filter tasks based on
criteria such as due date, priority, or status.

7. User Settings: Allow users to customize their preferences, such as notification settings, time
zone, and date format.

CASE Tools Implementation:

1. Requirement Analysis: Use CASE tools like Rational Rose or Enterprise Architect to create
detailed use case diagrams, specifying the functional requirements of the system and interactions
between different user roles.

2. Design Phase: Utilize CASE tools to design the system architecture, including class diagrams,
sequence diagrams, and entity-relationship diagrams. Ensure proper documentation of design
decisions and system structure.

3. Code Generation: Use CASE tools to generate code skeletons or templates based on the design
diagrams, accelerating the development process and ensuring consistency between design and
implementation.

4. Testing and Debugging: Employ CASE tools for test case generation, test coverage analysis,
and debugging support to ensure the reliability and quality of the system.

5. Documentation: Utilize CASE tools to automatically generate documentation, including user


manuals, API documentation, and system architecture documentation, ensuring thorough and
up-to-date documentation throughout the development lifecycle.

Technologies:

- Programming Language: Choose a suitable language such as Java, Python, or C# based on the
team's expertise and project requirements.

- GUI Framework: Use frameworks like JavaFX, PyQt, or Windows Presentation Foundation
(WPF) for building the graphical user interface.

- Database: Employ a relational database management system (e.g., MySQL, PostgreSQL,


SQLite) for storing user data and task information.

- Authentication: Implement authentication using frameworks like OAuth, JWT, or custom


authentication mechanisms.

- Notification Service: Utilize email, SMS, or push notification services for sending reminders
and notifications to users.

Sushant Kumar 2101331540109


-FLOWCHART:

Sushant Kumar 2101331540109


-OUTPUT :

Sushant Kumar 2101331540109


-OUTPUT :

Sushant Kumar 2101331540109


-Conclusion:

Schedule Master aims to provide users with a reliable and efficient tool for managing their
schedules and tasks effectively. By leveraging CASE tools for requirements analysis, design,
development, testing, and documentation, the project ensures high-quality software with
proper documentation and structured development processes.

Sushant Kumar 2101331540109

You might also like