SE Lab
SE Lab
GREATER NOIDA-201306
(An Autonomous Institute)
School of Computer Sciences & Engineering in
Emerging Technologies
(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 Members:
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.
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.
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.
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.
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.
Specific Requirements
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.
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
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.
Class Diagram
Collaboration Diagram
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.
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.
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.
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
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.
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.
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}
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) {
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.
5. Priority Management: Allow users to assign priority levels to tasks and sort them based on
priority to focus on high-priority tasks first.
7. User Settings: Allow users to customize their preferences, such as notification settings, time
zone, and date format.
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.
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.
- Notification Service: Utilize email, SMS, or push notification services for sending reminders
and notifications to users.
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.