Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

SRM IST, NCR CAMPUS, MODINAGAR

DEPARTMENT OF COMPUTER APPLICATIONS

PRACTICAL FILE

Object Oriented Analysis & Design


(PCA20C07J)

IInd Year, III Semester

Session: 2022-23

Submitted To: Submitted By:


Dr. Preeti Bala Tripathi Soumya Tyagi
(Assistant Professor) REG NO –RA2132241030017
MCA
SRM INSTITUTE OF SCIENCE & TECHNOLOGY
NCR CAMPUS, MODINAGAR
DEPARTMENT OF COMPUTER APPLICATIONS

Registration No:

BONAFIDE CERTIFICATE

Certified to be the bona-fide record of the work done by Soumya Tyagi of


MCA, Second year, 3nd Semester for the award of MCA degree course in the
Department of Computer Applications in Object Oriented Analysis and

Design during the Academic year-2022-23 .

LAB IN-CHARGE HEAD OF DEPARTMENT

Submitted for the university examination held on_______________

INTERNAL EXAMINER-I INTERNAL EXAMINER-II


INDEX

PAGE
S.NO TITLE OF EXPERIMENT DATE NO. SIGNATURE
/REMARKS
Experiment-1

Aim: The problem identified


We are familiar with many existing voice assistants like Alexa, Siri, Google Assistant, Cortana which uses
concept of language processing, and voice recognition. They listens the command given by the user as per
their requirements and performs that specific function in a very efficient and effective manner. As these
voice assistants are using Artificial Intelligence hence the result that they are providing are highly accurate
and efficient. These assistants can help to reduce human effort and consumes time while performing any
task, they removed the concept of typing completely and behave as another individual to whom we are
talking and asking to perform task. These assistants are no less than a human assistant but we can say that
they are more effective and efficient to perform any task. The algorithm used to make these assistant
focuses on the time complexities and reduces time. But for using these assistants one should have an
account (like Google account for Google assistant, Microsoft account for Cortana) and can use it with
internet connection only because these assistants are going to work with internet connectivity. They are
integrated with many devices like, phones, laptops, and speakers etc.
Experiment-2

Aim: The solution to tackle that problem identified.


It was an interesting task to make my own assistant. It became easier to send emails without typing any
word, Searching on Google without opening the browser, and performing many other daily tasks like
playing music, opening your favorite IDE with the help of a single voice command. Jarvis is different
from other traditional voice assistants in terms that it is specific to desktop and user does not need to
make account to use this, it does not require any internet connection while getting the instructions to
perform any specific task. The IDE used in this project is Visual studio code. All the python files were
created in Visual studio code and all the necessary packages were easily installable in this IDE. For
this project following modules and libraries were used i.e. pyttsx3, SpeechRecognition, Datetime,
Wikipedia, Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt etc. I have created a live GUI for
interacting with the JARVIS as it gives a design and interesting look while having the conversation.
With the advancement JARVIS can perform any task with same effectiveness or can say more
effectively than us. By making this project, I realized that the concept of AI in every field is decreasing
human effort and saving time. Functionalities of this project include, It can send emails, It can read
PDF, It can send text on WhatsApp, It can open command prompt, your favorite IDE, notepad etc., It
can play music, It can do Wikipedia searches for you, It can open websites like Google, YouTube, etc.,
in a web browser, It can give weather forecast, It can give desktop reminders of your choice. It can
have some basic conversation.
Experiment-3

Aim: SRS Document


Software Requirement Specification (SRS) Format as name suggests, is complete specification and
description of requirements of software that needs to be fulfilled for successful development of software
system. These requirements can be functional as well as non-functional depending upon type of
requirement. The interaction between different customers and contractor is done because its necessary to
fully understand needs of customers.

SRS is a document created by system analyst after the requirements are collected from various stakeholders.
SRS defines how the intended software will interact with hardware, external interfaces, speed of operation,
response time of system, portability of software across various platforms, maintainability, speed of recovery
after crashing, Security, Quality, Limitations etc.
The requirements received from client are written in natural language. It is the responsibility of system analyst
to document the requirements in technical language so that they can be comprehended and useful by the
software development team.
SRS should come up with following features:
 User Requirements are expressed in natural language.
 Technical requirements are expressed in structured language, which is used inside the organization.
 Design description should be written in Pseudo code.
 Format of Forms and GUI screen prints.
 Conditional and mathematical notations for DFDs etc.

Software requirement specification is a kind of document which is created by a software analyst after the
requirements collected from the various sources - the requirement received by the customer written in
ordinary language. It is the job of the analyst to write the requirement in technical language so that they can be
understood and beneficial by the development team.

The models used at this stage include ER diagrams, data flow diagrams (DFDs), function decomposition
diagrams (FDDs), data dictionaries, etc.

o Data Flow Diagrams: Data Flow Diagrams (DFDs) are used widely for modeling the requirements.
DFD shows the flow of data through a system. The system may be a company, an organization, a set of
procedures, a computer hardware system, a software system, or any combination of the preceding. The
DFD is also known as a data flow graph or bubble chart.

o Data Dictionaries: Data Dictionaries are simply repositories to store information about all data items
defined in DFDs. At the requirements stage, the data dictionary should at least define customer data
items, to ensure that the customer and developers use the same definition and terminologies.
o Entity-Relationship Diagrams: Another tool for requirement specification is the entity-relationship
diagram, often called an "E-R diagram." It is a detailed logical representation of the data for the
organization and uses three main constructs i.e. data entities, relationships, and their associated
attributes.

Feasibility Study
Feasibility Study in Software Engineering  is a study to evaluate feasibility of proposed project or system.
Feasibility study is one of stage among important four stages of Software Project Management Process .

As name suggests feasibility study is the feasibility analysis or it is a measure of the software product in
terms of how much beneficial product development will be for the organization in a practical point of view.
Feasibility study is carried out based on many purposes to analyze whether software product will be right in
terms of development, implantation, contribution of project to the organization etc.  

Need of Feasibility Study : 

Feasibility study is so important stage of Software Project Management Process  as after completion of
feasibility study it gives a conclusion of whether to go ahead with proposed project as it is practically
feasible or to stop proposed project here as it is not right/feasible to develop or to think/analyze about
proposed project again. 

Along with this Feasibility study helps in identifying risk factors involved in developing and deploying
system and planning for risk analysis also narrows the business alternatives and enhance success rate
analyzing different parameters associated with proposed project development.

a) Economical Feasibility:-

We decide the technology on minimum possible cost.

Overall we have estimated that the benefit the organization is going to received by system will be
much more than the it’s cost.

b) Technical Feasibility

For this feasibility study, we studied the complete functionality to be provided in the system, as
described in SRS, and checked that everything is possible with help of different tools and technology.
c) Schedule Feasibility

We will be able to design the system in the given time frame.

Functional Requirement

These are the requirements that the end user specifically demands as basic facilities that the system should
offer. All these functionalities need to be necessarily incorporated into the system as a part of the contract.
These are represented or stated in the form of input to be given to the system, the operation performed and
the output expected. They are basically the requirements stated by the user which one can see directly in the
final product, unlike the non-functional requirements.

Functional requirements define a function that a system or system element must be qualified to perform and
must be documented in different forms. The functional requirements describe the behavior of the system as it
correlates to the system's functionality.

Functional requirements should be written in a simple language, so that it is easily understandable. The
examples of functional requirements are authentication, business rules, audit tracking, certification
requirements, transaction corrections, etc.

These requirements allow us to verify whether the application provides all functionalities mentioned in the
application's functional requirements. They support tasks, activities, user goals for easier project management.

There are a number of ways to prepare functional requirements. The most common way is that they are
documented in the text form. Other formats of preparing the functional requirements are use cases, models,
prototypes, user stories, and diagrams.

1.Wish

2.News

3.Sending mails

4.Weather

5.Pdf Reader

6.Opening Notepad

7.Open command Prompt

8.Open Camera

9.Play Music
10.Ip Address

11.Open You tube

12.Open Facebook

13. Wake-up function

14.Open Google

15.Sleep Function

16.Write a note function

17.Show me the note Function

18.Wikipedia function

19.Set alarm

20.Tell Me a Joke

SYSTEM FEATURE

For this project following modules and libraries were used i.e. pyttsx3, SpeechRecognition, Datetime,
Wikipedia, Smtplib, pywhatkit, pyjokes, pyPDF2, pyautogui, pyQt etc.

Functionality:-

A. Speech Recognition: The process of converting speech to text by using Google’s speech recognition
algorithm is known as speech recognition, we user gives voice input it converts into the text from the special
corpora organized on the computer network server, the information stored from the microphone is temporarily
stored in the system which is the sent to the google cloud for speech recognition, The required text is then
received and fed into the central processor

B. Python Backend: The python backend parses the voice recognition module's output to determine whether
the command or speech output is an API Call, Context Extraction, or System Call. The output is then sent
back to the python backend to provide the user with the desired results.

C. API Calls : The acronym for Application Programming Interface (API) is Application Programming
Interface. A software that allows the communication between two apps is known as API. In simple words API
is a messenger that sends the request to the provider and receives the required output.
D. Content Extraction : Context extraction (CE) is the process of obtaining structured data from machine-
readable materials that are unstructured or semi-structured. The majority of the time, this activity entails using
natural language processing to process human language texts (NLP). TEST RESULTS for context extraction
can be seen in recent activities in multimedia document processing, such as automatic annotation and content
extraction from images/audio/video.

E. System Calls : The mechanism through which a computer software requests a service from the kernel of the
operating system on which it is running is known as a system call. Hardware-related services (for example,
accessing a hard disc drive), the creation and execution of new processes, and communication with core kernel
services such as process scheduling are all examples of this. A process's interface with the operating system is
provided by system calls.

F. Text-To-Speech : The capacity of computers to read text aloud is referred to as text-to-speech (TTS).
Written text is converted to a phonemic representation, which is subsequently converted to waveforms that
can be generated as sound by a TTS Engine. Third-party publishers offer TTS engines in a variety of
languages, dialects, and specialist vocabularies.

Non Functional Requirements

These are basically the quality constraints that the system must satisfy according to the project contract. The
priority or extent to which these factors are implemented varies from one project to other. They are also
called non-behavioral requirements.

Non-functional requirements are not related to the software's functional aspect. They can be the necessities
that specify the criteria that can be used to decide the operation instead of specific behaviors of the system.
Basic non-functional requirements are - usability, reliability, security, storage, cost, flexibility, configuration,
performance, legal or regulatory requirements, etc.

They are divided into two main categories:

Execution qualities like security and usability, which are observable at run time.

Evolution qualities like testability, maintainability, extensibility, and scalability that embodied in the static
structure of the software system.

Non-functional requirements specify the software's quality attribute. These requirements define the general
characteristics, behavior of the system, and features that affect the experience of the user. They ensure a better
user experience, minimizes the cost factor. Non-functional requirements ensure that the software system must
follow the legal and adherence rules. The impact of the non-functional requirements is not on the functionality
of the system, but they impact how it will perform. For a well-performing product, atleast some of the non-
functional requirements should be met.

They basically deal with issues like:


i. Usability :-

The System’s primary focus should be on providing a user friendly, easy to understand interface,
which can be used easily by anyone.

ii. Response Time:-

The system should response quickly ( should not take more than 10 sec) after user login.

iii. Security:-

Only admin with valid user name and password should be able to login into the system.

Software Requirement

Software requirements for a system are the description of what the system should do, the service or services
that it provides and the constraints on its operation. The IEEE Standard Glossary of Software Engineering
Terminology defines a requirement as:

1. A condition or capability needed by a user to solve a problem or achieve an objective.


2. A condition or capability that must be met or possessed by a system or system component to satisfy a
contract, standard, specification, or other formally imposed document.
3. A documented representation of a condition or capability as in 1 or 2.
The activities related to working with software requirements can broadly be broken down into elicitation,
analysis, specification, and management.

• Windows XP or Higher versions.

• Visual Studio Code.

• Python Script.

• PYQT5 Designer.
DESIGN OBJECTIVE

Design is an exact blueprint of what will be built & a basis for the configuration & content of that blueprint.
The primary objective of the design is to deliver the requirements as specified in the feasibility report.
Following objectives should be kept in mind: -

1. Practicability:-

The system must be stable & can be operated by people of average intelligence.

2. Efficiency:-

Good design should be efficient as it should properly use the scare resource of system. two of the
important such resources are processor time & memory. An efficient system consume less processor
time & memory.

3. Cost: -

It is desirable to aim for a system with a minimum cost subject to the condition that it must satisfy all
the requirements.

4. Flexibility: -

on the changing needs of the user, Such modifications should not entail extensive reconstruction or
recreation of software. The system should be modifiable depending are. It should also be portable to
different computer systems.

5. Security: -

This is very important aspect of the design & should cover areas as hardware reliability, fall back
procedures, physical security of data & provision of detection of fraud & abuse.

6. Reliability:-

The end user will normally specify reliability requirements for a new system.these requirements may
be expressed in terms of mean time between failure or mean time to repair or system availability.
7. Correctness:-

Good design should correctly implement both ,all of the explicit requirements contained in the analysis
model and all of the implicit requirements desired by the customer.

8. Understandability:-

The design should be a readable , simple, understandable guide for those who generate code and for
those who test and subsequently support the system.

9. Modularity:-

It aims for composition of a problem into modules which results in reduction of complexity of the
design solution.

10.Completeness:-

Good design should cover all relevant data structures , modules ,external interface and module
interconnection .

11.Consistency:-

Design should follow consistency through the system. it aims that there is no inherent inconsistencies
in the design.

12.Verifiability:-

Concerned with how easily the correctness of design can be checked.

13.Traceabiliy:-

Design should be traceable. traceable design aid design verification


Experiment-4

Aim: Identify which use case diagram is to be made related to the software
for the problem identified

Use Case:
A use case diagram is used to represent the dynamic behavior of a system. It encapsulates the system's
functionality by incorporating use cases, actors, and their relationships. It models the tasks, services, and
functions required by a system/subsystem of an application. It depicts the high-level functionality of a system
and also tells how the user handles a system.

It has main 3 factors:

Actors : A use case diagram shows the interaction between the system and entities external to the system.
These external entities are referred to as actors. Actors represent roles which may include human users,
external hardware or other systems.

Use Cases: A use case is a single unit of meaningful work. It provides a high-level view of behavior
observable to someone or something outside the system. The notation for a use case is an ellipse.

System Boundary: A system boundary is a rectangle that you can draw in a use-case diagram to separate the
use cases that are internal to a system from the actors that are external to the system.
Use Case Diagram
Experiment-5

Aim: Make Class Diagram and Object Diagram but differentiate which is
associated with class and which is not.

Class diagrams: 
Class diagrams are the main building blocks of every object-oriented method. The class diagram can be
used to show the classes, relationships, interface, association, and collaboration. UML is standardized in
class diagrams.

The main purpose to use class diagrams are: 


 
 This is the only UML that can appropriately depict various aspects of the OOPs concept.
 Proper design and analysis of applications can be faster and efficient.
 It is the base for deployment and component diagram.

Object Diagram:

An Object Diagram can be referred to as a screenshot of the instances in a system and the relationship that
exists between them. Since object diagrams depict behaviour when objects have been instantiated, we are
able to study the behavior of the system at a particular instant. Object diagrams are vital to portray and
understand functional requirements of a system.
In other words, “An object diagram in the Unified Modeling Language (UML), is a diagram that shows
a complete or partial view of the structure of a modeled system at a specific time.”

Difference between an Object and a Class Diagram –


An object diagram is similar to a class diagram except it shows the instances of classes in the system. We
depict actual classifiers and their relationships making the use of class diagrams. On the other hand, an
Object Diagram represents specific instances of classes and relationships between them at a point of time.
Object Diagram
Experiment-6

Aim : Relationship between Use Case Diagram and Sequence


Diagram. What actors are using here.

Sequence Diagrams:
A sequence diagram simply depicts interaction between objects in a sequential order i.e. the order in which
these interactions take place. We can also use the terms event diagrams or event scenarios to refer to a
sequence diagram. Sequence diagrams describe how and in what order the objects in a system function.

Relationship between Use Case Diagram and Sequence Diagram


A use-case model is built and the actors are connected to use cases. Each use case represents a task in which
the actor participates. For each use case, a sequence diagram is built. Each sequence diagram specifies the
main interaction steps to be achieved for each task (i.e. use case).

Cases details:-

Case 1- related to voice input and voice output between client and server.

Case 2- related to task input and executed output between client and server.

Case 3- related to voice input and fetching command between client , server and storage

file.

Case 4- related to sending response from storage file to server.

Case 5- related to sending response from server to client


Sequence Diagram for Use Case 1&2

Sequence Diagram for Use Case 3


Sequence Diagram for Use Case 4&5

You might also like