0% found this document useful (0 votes)
4 views

srs

srs document on social media website

Uploaded by

kikon44542
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)
4 views

srs

srs document on social media website

Uploaded by

kikon44542
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/ 39

EXPERIMENT - 1

PROBLEM STATEMENT

Social Networking Site (Fanconnect)

AIM

The aim of this project is to create an innovative social networking platform designed to
connect users and fans in a Simplified and Easy-to-use environment. this platform
designed to help influencers, content creators, and public figures engage with their
fanbase. It provides tools for monetizing content, interacting with followers, and offering
exclusive experiences. Fans can subscribe to their favourite creators for exclusive content
and updates. In this platform user also share image, video, post and vote on it and also
comment on the content.

REQUIREMENTS:

Hardware Interfaces:

• Server Infrastructure:

o Web Server:

 Processor: Multi-core CPU (e.g., Intel Xeon or AMD EPYC)


 RAM: Minimum 16 GB, scalable based on user load.
 Storage: SSD-based storage, minimum 500 GB with RAID
configuration for reliability.

 Network: High-speed internet connection with redundancy. o


Database Server:
 Processor: Multi-core CPU (e.g., Intel Xeon or AMD EPYC).

 RAM: Minimum 16 GB, scalable according to the database size.

1
 Storage: SSD-based storage, minimum 1 TB with RAID for data
integrity.

o Backup Server:

 Processor: Similar to the database server.

 RAM: 16 GB.

 Storage: Large capacity (e.g., 2-5 TB), depending on the backup


strategy.

o Load Balancer:

 Type: Hardware/Software Load Balancer (e.g., HAProxy, Nginx) to


manage traffic distribution.

• User Devices:

o For Students and Educators:

 Processor: Modern multi-core CPU.

 RAM: Minimum 4 GB (8 GB recommended).

 Storage: Minimum 64 GB.

 Internet: Reliable connection with a minimum speed of 5 Mbps.

o Proctoring Devices: Webcams and microphones for online proctoring if


needed.

• Networking:

o Routers/Switches: High-performance network equipment. o Firewall: To


secure the network from external threats. o VPN: For remote access by
administrators if necessary.

2
Software Interfaces:

• Operating System:

o Server OS: Linux (e.g., Ubuntu Server, CentOS) or Windows Server.

o Client OS: Windows, macOS, Linux, Android, iOS (for end-user devices).

• Web Server Software:

o Options: Apache HTTP Server or Nginx.

• Database Management System (DBMS):

o Options: MySQL, PostgreSQL, or Microsoft SQL Server.

• Programming Languages & Frameworks:

o Backend:

 Options: PHP, Python (Django/Flask), Java (Spring Boot), or


Node.js.

 API: REST API for communication between frontend and backend.

o Frontend:

 Languages: HTML, CSS, JavaScript.

 Frameworks: React.js, Angular.js, or Vue.js.

• Security Software:

o SSL/TLS Certificates: To secure data transmission. Anti-cheat Software:


Proctoring tools or custom solutions.
o Firewall and IDPS: For network security.

3
• Development Tools:

o IDE: Visual Studio Code, PyCharm, Eclipse, etc.

o Version Control: Git, with platforms like GitHub, GitLab, or Bitbucket.

• Testing and Deployment:

o Testing Frameworks: Selenium, JUnit, PyTest.

o CI/CD Tools: Jenkins, GitLab CI/CD.

• Monitoring and Logging:

o Monitoring Tools: Nagios, Prometheus, Grafana.

o Logging Tools: ELK Stack (Elasticsearch, Logstash, Kibana).

• Browser Support:

o Compatibility: Ensure platform functionality across all modern browsers


(Chrome, Firefox, Safari, Edge

Relevance: In today’s world, where people are more apart from each other. Social
networking websites are the ways that we connect with each other. But instead of
connecting with each other, the social networking websites/apps have made us more
connected from each other So, from the vast no of social networking apps available in
the market, fan-connect stand apart from all of these social networking website which
help the creator and fans connect and for more interaction with each other.

THEORY:

Social networking sites have intensely transformed how the exchange information,
individuals interact and making communities online. The social networking site help to
make strong bonding and bridging between people, even with those geographically

4
distance. This website help us to interact with the users and fans without any problem. In
this website the subscription plan is also active so creator give you exclusive right and
private interact and chat with users . users also give suggestion to the creator which topic
he make next video and project so user interact more in this platform. This system help
the creator to decentralize money from the system the money he get the users. the money
user transfer to the creator also use blockchain system so there is no track backing of the
money the the creator save some money.

CONCLUSION: The rise of platforms is part of a broader trend toward decentralized,


creatorcontrolled economies where individuals can leverage their social capital directly
for financial gain. This shift will likely continue to blur the lines between social
interaction, entertainment, and commerce, creating hybrid models that offer new ways to
connect and support content creators. As the model evolves, these platforms could
influence everything from how we consume media to how creators fund their projects,
ultimately reshaping the digital landscape and the relationship between content producers
and their audience.

5
6
7
8
9
10
11
12
13
14
15
16
17
EXPERIMENT - 3
Cost Estimation
Social media website
Introduction
This document outlines the project estimation for developing an social media website (SMW)
for a clothing brand like Myntra using the COCOMO Model (Constructive Cost Model).
COCOMO helps in estimating the effort, time, and manpower required for software
development projects. This helps breakdown the costs that have been used in the development,
testing and marketing.

Constructive Cost Model


The COCOMO model (Constructive Cost Model) is a software cost estimation model used to
estimate the effort, cost, and schedule required for a software development project based on
the size of the software and various project attributes.
How it works
 Based on the input given explaining the type of software to be used, the number of lines
of code and various factors, the COCOMO model uses a mathematical formula to
calculate the effort based on the input provided.
 The mathematical expression is
E = a*(KLOC)b PM, where
 E is the effort applied in Persons-Months.
 KLOC is the estimated size of the software product in kilo lines of code.
 a and b are constants
 The output is based on the inputs and will provide the information on effort applied,
time taken and how much it will cost to develop.

COCOMO Models:
COCOMO has different types of models for different estimations:
1.Basic COCOMO: it is simple way to estimate the effort that will be required to develop the
software project.
2.Intermediate Model: it involves in including more factors besides the line of code such as
reliability, experience and capability.
3.Detailed Model: a model with a wider range of parameters compared to the basic and
intermediate models such as team experience and software complexity.

18
COMPARISON OF THE THREE COCOMO MODELS:

Model Project size Nature of the project Innovation Deadline Development


of the Environment
project
Organic Typically, 2- Small size project, Little Not tight Familiar & In house
50 KLOC experienced developers in
the familiar environment.
For example, pay roll,
inventory projects etc.
Semi Typically, Medium size project, Medium Medium Medium
detached 50-300 medium size team, Average
KLOC previous experience on
similar project. For
example: Utility systems
like compilers, database
systems, editors etc.
Embedded Typically, Large project, Real time Significant Tight Complex Hardware/
over 300 systems, Complex customer Interfaces
KLOC interfaces, very little required
previous experience. For
example: ATMs, Air
Traffic Control etc.

COCOMO Formulas
The basic COCOMO model is used to estimate the effort \(E\) (in Person-Months) and
development time \(D\) (in Months) for the project. It does not factor in additional parameters
like software complexity and team experience.
BASIC COCOMO COEFFICIENTS
Software Project ab bb cb db
Organic 2.4 1.05 2.5 0.38
Semidetached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32

Basic Equations
Effort (E):
E = ab*(KLOC)^bb
Where:
E is the effort in Person-Months (PM).

19
KLOC is the number of thousands of lines of code.
ab and bb are mode-specific constants (for Semidetached Mode: ( ab = 3.0 ), ( bb = 1.12 )).

Development Time (D):


D = cb*(E)^db
Where:
D is the development time in Months.
Cb and db are mode-specific constants (for Semidetached Mode: ( cb = 2.5 ), ( db = 0.35 )).

Project Assumptions
For the social media website, the estimated size of the project is 50 KLOC (50,000 lines of
code). This assumption is based on the complexity and functionality of an IMS for a large e-
commerce platform.

The project type is organic based on the KLOC.

So, ab = 2.4, bb = 1.05, cb = 2.5, db = 0.38

Effort applied in Person-Months:

E=ab(KLOC)^bb

E = 2.4*(50) ^1.05

E=126PM

Development Time:

D=Cb(E)^db

D= 2.5*(126) ^0.38

D = 8.899344 PM

Staffing Requirement:

Average Staff Size (SS) = E/D persons

SS = 126/8.8993

SS = 14 Persons

20
Productivity(P):

P = KLOC/E KLOC/PM

P = 50/126 KLOC/PM

P = 0.39682 KLOC/PM

8.Conclusion
The COCOMO model provides a clear framework to estimate the effort, time, and resources
required for the development of an social media website. For an e-commerce platform like
Facebook, unifan this model gives a good overview of what it takes to build such a complex
system. Further refinement can be done by applying more detailed COCOMO models or
adjusting based on actual project needs and constraints.

---

21
EXPERIMENT - 4

ER DIAGRAM – SOCIAL NETWORKING SITE

WHAT IS AN ER DIAGRAM?

An ER Diagram is a method to represent the relationships between entities and the various relations
in which they are connected to each other. It’s commonly used in database designs, software
planning and project development. We can identify how different elements interact with each other
using an ER diagram.

An ER Diagram consists of the following components:

1. Entities: Entities represent the real-world objects and are shown using rectangles. An entity can
either be a weak entity or a strong entity.

2. Attributes: Attributes are the qualities or characteristics that an entity might contain. These are
useful for identifying a specific entity among a pool of entities, using useful characteristics such
as primary keys. These are represented by oval shape and can be of various types.

3.Relationships: Relationships tell us how the various entities are related to each other. These are
useful for threading a huge number of entities in a big project. These are represented by rhombus
or diamond shape.

4.Primary Key: Primary key is used to uniquely identify an entity from a pool of entities. It is
represented by an underline in an attribute container.

5.Cardinality Constraints: These are used to show the proportion in which entities are related to
each other. These could be 1-1 (one-to-one), 1-N (one-to-many) or M-N (many-to-many).

Example:

Entities: User, Admin, Posts, etc.

Attributes: User_id, Admin_id, User_name, etc.

22
Relationships: User manages Photos, Posts, etc.

ER Diagram – User Side

23
ER Diagram – Admin Side

24
EXPERIMENT - 5

Class Object Diagram

Aim:

To understand the concept of the domain classes and identify a list of potential domain classes
from the given project and make the class object diagram

In ULM (Unified Modelling Language), a domain class represents a concept or entity from the
problem domain being modelled. It typically corresponds to a class in object-oriented
programming and represents a real-world entity, such as a person, place, thing, or concept, that has
attributes and behaviours.

 Domain classes are used to model the structure and behaviour of objects in a system. They
define the properties (attributes) that objects of the class possess and the operations
(methods) that they can perform.

 Domain classes are often used to represent the core concepts and relationships in a system,
providing a foundation for designing and implementing the system’s functionality.

25
EXPERIMENT – 6

Activity Diagram for Social Networking Website

Aim:
To identify the distinct state causing the transition from one state to another and represent the
above information pictorially using activity diagram

The main components of the activity diagram for the Social Networking site Fanconnect:
1. Actors (fans)
 User: Actions like posting, messaging, liking, tagging, filtering content, and blocking.
 Fanconnect System: Automated tasks such as verifying login, moderating content,
filtering posts, managing notifications, and storing data.
 User Swimlane: User-driven activities (e.g., post creation, sending messages).

26
2. Start/End Symbols
 Start: The diagram starts with a filled circle, symbolizing the beginning of user
interaction, such as a user logging in or accessing the platform.
 End: The process concludes with a filled circle surrounded by a border, marking the
completion of actions like a successful post, message sent, or user logging out.

3. Actions/Activities
 Activities are denoted by rounded rectangles that represent a specific action or step in
the process.
 Examples:
 Create Post: User creates a new post.
 Send Message: User sends a message to another user.
 Apply Filter: System filters content based on user preferences.

4. Decisions/Branches
 Represented by a diamond shape, decision points show where the flow of the process
branches based on a condition.
 In this diagram, there are two decision points:
o Is Content Appropriate? If yes, the post is published; if no, the system applies filters.
o Message Sent? If yes, the message is delivered; if no, the user is notified of failure.

5. Flows/Transitions
 Arrows represent the direction of the flow, showing how one activity leads to the next.
 Example: From "Create Post" to "Publish Post", the arrow shows the transition between
these two activities in the user's journey.

6. Synchronization Bars
 Purpose: Used to represent parallel processes or synchronize actions.

27
 Example: Could show "Send Notification" and "Update Activity Log" happening
simultaneously after a user sends a message or creates a post.
 These bars help illustrate processes occurring in parallel within the workflow.

7. Interaction Between Actors


 User-System Interactions: Divided across swim lanes, with arrows showing actions
transitioning between user and system.
 Example:
 User: Creates a post, sends a message, or applies content filters.
 System: Publishes the post, delivers the message, or moderates/filter
content.

Example Workflow in the Diagram


 User's Journey:
1. Logs In:
 Action: User enters credentials to access their account.
 Outcome: Successful access to the personalized dashboard.
2. Creates a Post:
 Action: User types content, adds media, and sets privacy options.
 Outcome: Post is submitted for review or published immediately.
3. Sends a Message:
 Action: User composes and sends a message to a friend.
 Outcome: Message appears in both users’ chat interfaces.
4. Filters Content:
 Action: User adjusts settings to customize their feed.
 Outcome: Feed updates to show only relevant posts.

28
EXPERIMENT - 7

SEQUENCE DIAGRAM FOR SOCIAL NETWORKING SITE

Login Request: The User submits login credentials, and the System verifies them against the
UserDatabase. If successful, access is granted with a success message; otherwise, an error is
shown.

Request Feed: The User requests their feed, and the System retrieves their filter preferences from
the PreferencesDatabase and content from the ContentDatabase, displaying the filtered feed.

29
Start Anonymous Chat: The User starts an anonymous chat by sending a request. The System
opens a chat session in the MessagingSystem, where messages are exchanged, and chat history is
saved for future reference.

Report/Block Content: The User reports or blocks content, and the System logs the action in the
ReportSystem. The User's feed and preferences are then updated accordingly.

30
31
32
EXPERIMENT – 9
CONTROL FLOW GRAPH(CFG)

What is CFG?
 Control Flow Graph (CFG) is a graphical representation of all possible paths that might
be traversed through a program during its execution.
 Each node in a CFG represents a basic block, which is a sequence of statements or
instructions with no branches except at the entry and exit. The edges in the graph
represent the control flow paths between these blocks.

What is Cyclomatic Complexity?


 Cyclomatic Complexity is a software metric used to measure the complexity of a
program's control flow. It represents the number of independent paths through a
program, function, or method.
 By calculating cyclomatic complexity, developers and testers can understand the
potential number of test cases required for full branch coverage of a program. Higher
complexity often indicates that the code may be more difficult to understand, maintain,
and test.
Methods to Calculate Cyclomatic Complexity
There are three different ways to compute cyclomatic complexity:
Method 1
Given a control flow graph G of a program, the cyclomatic complexity V(G) can be computed
as:
V(G)= E−N+2
where:
 N is the number of nodes in the control flow graph.
 E is the number of edges in the control flow graph.

Method 2
In the program’s control flow graph GGG, any region enclosed by nodes and edges can be
called a bounded area.
The formula to compute cyclomatic complexity in this method is:
V(G)=Total number of bounded areas + 1
Method 3:
The cyclomatic complexity of a program can also be easily computed by computing the number
of decision statements of the program. If N is the number of decision statement of a program,
then the McCabe's metric is equal to N+1.

33
V(G) = N+1
Q1. IF A = 354
THEN IF B > C
THEN A = B
ELSE A = C
END IF
END IF
PRINT A

Q2. Calculate cycloma c complexity for the given code-


begin int x, y, power;
float z;
input (x, y);
if(y<0)
power = -y;
else power = y;
z=1;
while (power! =0)
{z=z*x;
power=power-1;
} if(y<0)
z=1/z;
output(z);

34
end

35
EXPERIMENT - 10
DESIGNING TEST SUITS
Understanding Software Testing
Software testing is an integral phase of the software development lifecycle, focusing on
enhancing software quality by uncovering and rectifying defects. It involves systematically
evaluating a software product against its requirements to identify deviations (defects, errors, or
bugs) and ensure the software behaves as intended.

Core Concepts of Software Testing 1.

1.Verification and Validation:

a) Verification assesses whether the software aligns with its predefined


specifications.
b) Validation ensures the software meets the needs and expectations of its
users.

2. Defect
A defect is the disparity between the expected outcome and the actual results. It can
stem from errors in design, incorrect specifications, or coding flaws.

Role of Testing Frameworks


Testing frameworks are essential for simplifying and automating testing tasks. Some popular
tools include:

1. JUnit: A framework for Java-based unit testing.

2. Selenium: Widely used for web application testing and automation.

3. HP QC (Quality Center): Designed for comprehensive test management.

Why is Software Testing Necessary?


Software testing is vital for ensuring system robustness and dependability. Its primary goals
include:

1. Detecting and resolving faults early in the development process.

2. Enhancing system quality, reliability, and maintainability.

3. Validating compliance with industry standards or legal requirements.

Types of Software Testing

1. Unit Testing

Focused on individual software components or modules, ensuring they function correctly.

36
I. Black Box Testing: Examines the input-output behaviour without delving into internal
code structures. Techniques include:

a. Equivalence Class Partitioning: Grouping inputs into valid and invalid


categories.

b. Boundary Value Analysis: Testing edge cases and limits.

II. White Box Testing: Evaluates the internal workings of code. Techniques involve:

a. Testing data flow to ensure proper variable usage.

b. Verifying error handling mechanisms.

2. Integration Testing
Evaluates how individual units interact when combined. This testing can be approached in two
ways:

I. Top-Down Approach: Testing begins with higher-level modules.


II. Bottom-Up Approach: Testing starts with lower-level modules and progresses
upwards.

3. System Testing
A comprehensive assessment of the entire system to ensure functionality and non-functional
attributes (e.g., reliability, security).

I. Alpha Testing: Conducted by internal developers to identify major flaws.

II. Beta Testing: Performed by a select group of users before the final release.
III. User Acceptance Testing (UAT): Ensures the product aligns with client requirements
and expectations.

4. Regression Testing
Focused on verifying that recent code changes, such as bug fixes or feature additions, have not
adversely impacted existing functionalities. Regression testing is performed regularly after
updates or modifications.

37
Example

Write a program to calculate the square of a number in the range 1-100.

#include <stdio.h>

int main()

int n, res;

printf("Enter a number: ");

scanf("%d", &n);

if (n >= 1 && n <= 100)

res = n * n;

printf("\nSquare of %d is %d\n", n, res);

38
}

else if (n <= 0 || n > 100)

printf("Beyond the range");

return 0;

Output

Inputs Outputs

I1 : -2 O1 : Beyond the range

I2 : 0 O2 : Beyond the range

I3 : 1 O3 : Square of 1 is 1

I4 : 100 O4 : Square of 100 is 10000

I5 : 101 O5 : Beyond the range

I6 : 4 O6 : Square of 4 is 16

I7 : 62 O7 : Square of 62 is 3844

Test Cases

T1 : {I1 , O1}

T2 : {I2 , O2}

T3 : {I3 , O3}

T4 : {I4 , O4}

T5 : {I5 , O5}

T6 : {I6 , O6}

T7 : {I7 , O7}

39

You might also like