Professional Documents
Culture Documents
Srs (Spotify) New
Srs (Spotify) New
Signature:
INDEX
1. Introduction
1.1 Purpose
1.2 Scope
1.3 Overview
1.4 Intended Audience
2. Overall Description
2.1 Product perspective
2.2 Product functions
2.3 User classes and characteristics
2.4 Product constraints
2.5 Usecase Diagram
2.6 E-R Diagram
2.7 Sequence Diagram
2.8 UML Diagram
3. System Features
3.1 User Interface
3.2 Features and Functions
3.3 Hardware Interface
3.4 Software Interface
4. Functional and Non-functional Interface
4.1 Functional Requirement
4.2 Non-functional Requirement
5. Testing methodologies
5.1 Usability Testing
5.2 Functional Testing
5.3 System Testing
1. INTRODUCTION
1.1 PURPOSE
Musify is a digital music streaming service that allows you access to millions of songs and other
entertaining content from creators worldwide. Thus, one can listen to their favorite music online
comfortably without downloading songs to their devices and overloading the memory.
With free Spotify, users can access functions like playing music for free. Also, it offers
personalized services like recommending music based on your music history, builds collections of
music and podcasts, and so on.
1.2 SCOPE
The product musify is an imaginery product that will support listening to streamed music and
handle playlists in the mobile phone , even in the offline mode.
1.3 OVERVIEW
With free musify, users can access functions like playing music for free. Also, it offers
personalized services like recommending music based on your music history, builds collections of
music and podcasts, and so on.
2. OVERALL DESCRIPTION
2.1 PRODUCT PERSPECTIVE
It is a music streaming webpage which provide a free platform to listen music without
downloading it.
This webpage is user-friendly from login to listening music. With the various features, users can
enjoy listening to their favourite songs with ease.
Some music player are only available in online . So musify clone will provide the offline platform
for users. Users will use the offline option to stream the album and listen without using the
internet.
The software application will be used to play music and store playlists. Since this is a data-centric
product it will need
storage space to store information of artists, music, playlists, etc.
The musify system provides an interface to the end-user . The major logical components are:
• List of playlist
• Playlist of music
• Music player
• Search screen
• Create a Profile
Users can create and edit their profile through the efficient web, including uploading their
profile picture, details, etc.
• Music List
Users can view the active music list to get status updates like which songs they have recently
listened to, most trendy, etc.
• Select Playlist
Browse for new songs to make smart choices from the available music list on the website;
they can choose to play any as per their need.
• Add Favourite
Choose to share details over social media platforms by adding single or multiple kinds of
music to your favourite list.
• Simple users that intend to hear a song. These users could be of any age, with no special
knowledge. Knowing how to use a computer is essential.
• Users with poor internet connectivity will benefit even more because the only place we
require internet connection is where we are required to update the metadata of the
music for giving correct suggestions.
• Programmers - Software Developers – Open Source project participants of any age that
could understand the program’s source code and expand or improve it. Must have
knowledge of the programming language that thesoftware is written in, in order to be
able to understand exactly what it does and how it does it. Also some experience in
programming will most certainly help in extending or improving the project.
• There is no restriction in user’s categories and everyone using a computer can use this
program.
This is an Open Source project and anyone who desires to distribute to the project is
welcome
Musify being an online player is independent of any admin. The user can and does manages the
entire system by themselves. Broadly, the user has three component to run:
• Control Music: Using this functionality, the user can play music, seek to a part of the song,
stop the playing song, control the volume, pause the song, and change the tracks.
• Edit Metadata: Metadata of the albums, songs, playlists, etc. This then works together with
Local Storage to modify the metadata.
• Manage Songs: Add songs and remove songs from the system. we are planning to
implement a system where the player automatically detects files that can played with out
system. Until that, the user has to manually add and delete songs into the system.
Usecase description table:
Creating a complete Entity-Relationship Diagram (ERD) for a musify would be quite complex and
beyond the scope of a text-based response.
In a musify, you would typically have entities such as User, Song, Album, Artist, Playlist, and
among others. Here's a basic representation:
Entities:
1. User
2. Artist
3. Album
4. Song
5. Playlist
"Admin" is another actor who may have special privileges, such as managing content, users, or
settings.
Relationships:
➢ User can create many Playlists (One-to-Many relationship between User and Playlist)
➢ Playlist can contain many Songs (Many-to-Many relationship between Playlist and Song)
➢ User can follow many Artists (Many-to-Many relationship between User and Artist)
➢ Artist can have many Albums (One-to-Many relationship between Artist and Album)
➢ Album can contain many Songs (One-to-Many relationship between Album and Song)
➢ Song can belong to many Playlists (Many-to-Many relationship between Song and Playlist)
Attributes:
This is a simplified representation, and a real-world system like Spotify would have many more
entities and relationships to capture all its features and functionality.
A sequence diagram consists of a group of objects that are represented by lifelines, and the
messages that they exchange over time during the interaction. A sequence diagram shows the
sequence of messages passed between objects. Sequence diagrams can also show the control
structures between objects.
A sequence diagram for a Music player would illustrate the interactions and communication
between various components or objects in the system. Here's a high-level description of what
you might find in such a diagram:
User: The diagram would typically start with a user object, representing an individual interacting
with the Music Player.
Client Interface: This object represents the user interface of the Music Player (e.g., a mobile app or
a web app).
Authentication: The user would initiate the authentication process to log in or sign up. This would
involve interactions with an authentication service, which might include checking credentials and
providing access tokens.
Search and Playback: Users can search for songs, playlists, or albums. The sequence diagram
would show the flow of user requests, including interactions with the search and playback
functionalities.
Music Database: There would be interactions with a music database or server that stores
information about songs, playlists, and albums. Queries for song data and streaming requests
would be included.
User Profile: Users can view and update their profiles. The diagram would show interactions
related to profile management.
Playlists and Library: Users can create, edit, and manage playlists. Interactions with playlist and
library management components would be shown.
In a sequence diagram, we represent these components as objects and show the order and nature
of their interactions using arrows and lifelines. Each step in a user's action would trigger a
sequence of events and communication between these objects, which the diagram would depict.
• Browse Music: The user can view and explore the available music catalog.
• Search Music: Users can search for specific songs, artists, or albums.
• Create Playlist: Users can create custom playlists by adding songs from the catalog.
• Play Music: Users can listen to music by selecting songs, playlists, or albums.
The "Admin" actor's use cases might involve tasks like managing user accounts, adding or
removing music from the catalog, or configuring system settings.
2.7 CLASS DIAGRAM
A class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that
describes the structure of a system by showing the system's classes, their attributes, operations
(or methods), and the relationships among objects.
The class diagram is the main building block of object-oriented modeling. It is used for general
conceptual modeling of the structure of the application, and for detailed modeling, translating
the models into programming code. Class diagrams can also be used for data modeling. The
classes in a class diagram represent both the main elements, interactions in the application, and
the classes to be programmed.
In the diagram, classes are represented with boxes that contain three compartments:
The top compartment contains the name of the class. It is printed in bold and centered, and the
first letter is capitalized.
The middle compartment contains the attributes of the class. They are left-aligned and the first
letter is lowercase.
The bottom compartment contains the operations the class can execute. They are also left-
aligned and the first letter is lowercase.
3. SYSTEM FEATURES
The system features and functional requirements are described in detail, to help the reader
understand the application better and developers and testers in their future work in Music
Player.
With this operation the chosen song starts playing. If there are no registered records in the
playlist when users
choose Play, then the user has the opportunity to choose songs from the disk automatically.
• Pause
This choice interrupts the song and if the user chooses Play then the song starts playing from the
same point.
• Stop
With this choice the song stops playing. If the user chooses the choice Play the file will start to
play from the beginning.
• Previous on Playlist
With this choice the previous song on the playlist is chosen automatically and starts playing.
• Next on Playlist
With this choice the next song on the playlist is chosen automatically and starts playing.
• Playlist
This choice pops up a new window where songs are to be played.
Functional Description
requirement
Name
Pause music The user will be able to pause the track being able to play it again
from the same timeline.
Seek track The user will be able to move anywhere in the timeline of the
track
Stop music The user will be able to stop the track which will close the track,
in order for the user to play another track or exit software
Go to next track The user will be able to play the next track
Local Store is persistence layer of application, it will be implemented as SQLite Database. It will
store all the information required for software to work.
The user will be able to essentially cache data into a local store while importing a track into the
application.
• On adding a track or importing a track from the offline music library of the user to the
application the track will be added into the local store.
• On removing the track from the application the track will also be removed from the Local
store. In short the Local store maintains the library of the application.
• It will not be available for user to direct interaction, This component will be used by other
components internally.
User actions
This section will state all the use cases of the application and what the user will be able to do
with the application.
Music management
A music manager is an industry professional who works closely with artists to help them meet
their goals. Music managers help with all aspects of a music career, including music production,
performance and promotion of the artist
Control music
The user can control music in the music player component by the following actions:
• play music
• pause music
• control volume
• go to the next track
• go to the previous track
• seek a playing track
User Interactions
The following are the use cases and how the actor: user interacts with them
Brief Description
The user manages tracks, can import and remove them from the application
User interaction
Brief Description
The user can control music which means he/she can play, pause, stop, go to the next track, go to
the previous track, control the volume
User interaction
Brief Description
User interaction
The user defined metadata of a track is going to be updated in the local area.
Musify requires a small amount of disk space for installation-10MB. It is characterized by fast
loading and executing times. It‘s not a heavy program and it can work while other programs are
running.
• Quickness-- System should be fast enough to play music and respond to any of the user
action in any Way Without any shattering and buffering , else it will be not a good experience
• Robustness – System should be robust to deal and act accordingly with common errors
scenarios Unsupportable metadata, unsupportable file type etc.
The software should be able to restrict or warn(in the first place) the user from doing things not
suitable, like, increasing volume beyond threshold, or exiting the software without saving the
changed data.
Musify is easy to use because it is a small program. Users can easily learn to use it. The
software’s interface is quite friendly, simple, easily understood, it works fast and is organized. RC
Music Player is a very fast and efficient program and users can easily change its options to satisfy
their needs. Some Software Quality Attributes of RC Music Player are:
Error Handling - System should not cause or trigger any events that will leave Operating System
in unrecoverable state
5. TESTING METHODOLOGIES
Usability testing – It is performed to the perceptive of the client to evaluate how the GUI is
user- friendly ? How easily client learn?
Functional testing – It a testing to ensure that specified functionality required in SRS . It involves
observation of output for certain input values.
System testing - System testing test the system as a whole .once all components are integrated,
the complete integration is tested to see that it needs the specific quality standards