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

SE notes

Notes for Software Engineering practicals

Uploaded by

rahilshah209.rs
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

SE notes

Notes for Software Engineering practicals

Uploaded by

rahilshah209.rs
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

IT451 - Software Engineering 20DIT092

PRACTICAL-1
AIM:- List & draw at least 7 various Software Development Life Cycle (SDLC) models
and preparing the detailed case study on “VLC Media Player” that which SDLC model
is suitable to develop the “VLC Media Player” desktop application?

Software Development life cycle (SDLC)


Software Development life cycle (SDLC) is a spiritual model used in project management
that defines the stages include in an information system development project, from an initial
feasibility study to the maintenance of the completed application.
There are different software development life cycle models specify and design, which are
followed during the software development phase. These models are also called "Software
Development Process Models." Each process model follows a series of phase unique to its
type to ensure success in the step of software development.

Types of SDLC model


1. Waterfall Model:-
Waterfall approach was first SDLC Model to be used widely in Software Engineering to
ensure success of the project. In "The Waterfall" approach, the whole process of software
development is divided into separate phases. In this Waterfall model, typically, the
outcome of one phase acts as the input for the next phase sequentially.

DEPSTAR-IT PAGE | 1
IT451 - Software Engineering 20DIT092

The sequential phases in Waterfall model are −


 Requirement Gathering and analysis − All possible requirements of the system
to be developed are captured in this phase and documented in a requirement
specification document.
 System Design − The requirement specifications from first phase are studied in
this phase and the system design is prepared. This system design helps in
specifying hardware and system requirements and helps in defining the overall
system architecture.
 Implementation − With inputs from the system design, the system is first
developed in small programs called units, which are integrated in the next phase.
Each unit is developed and tested for its functionality, which is referred to as Unit
Testing.
 Integration and Testing − All the units developed in the implementation phase
are integrated into a system after testing of each unit. Post integration the entire
system is tested for any faults and failures.
 Deployment of system − Once the functional and non-functional testing is done;
the product is deployed in the customer environment or released into the market.
 Maintenance − There are some issues which come up in the client environment.
To fix those issues, patches are released. Also to enhance the product some better
versions are released. Maintenance is done to deliver these changes in the customer
environment.

Application of Waterfall Model


Every software developed is different and requires a suitable SDLC approach to be
followed based on the internal and external factors. Some situations where the use of
Waterfall model is most appropriate are −
 Requirements are very well documented, clear and fixed.
 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to support the product.
 The project is short.

DEPSTAR-IT PAGE | 2
IT451 - Software Engineering 20DIT092

2. Iterative Model:
In the Iterative model, iterative process starts with a simple implementation of a small
set of the software requirements and iteratively enhances the evolving versions until the
complete system is implemented and ready to be deployed.
An iterative life cycle model does not attempt to start with a full specification of
requirements. Instead, development begins by specifying and implementing just part of
the software, which is then reviewed to identify further requirements. This process is then
repeated, producing a new version of the software at the end of each iteration of the
model.

Application of Iterative Model


Like other SDLC models, Iterative and incremental development has some specific
applications in the software industry. This model is most often used in the following
scenarios −
 Requirements of the complete system are clearly defined and understood.
 Major requirements must be defined; however, some functionalities or requested
enhancements may evolve with time.
 There is a time to the market constraint.
 A new technology is being used and is being learnt by the development team while
working on the project.
 Resources with needed skill sets are not available and are planned to be used on
contract basis for specific iterations.
 There are some high-risk features and goals which may change in the future.

DEPSTAR-IT PAGE | 3
IT451 - Software Engineering 20DIT092

3. Spiral Model:-
The spiral model combines the idea of iterative development with the systematic,
controlled aspects of the waterfall model. This Spiral model is a combination of iterative
development process model and sequential linear development model i.e. the waterfall
model with a very high emphasis on risk analysis. It allows incremental releases of the
product or incremental refinement through each iteration around the spiral.
The spiral model has four phases. A software project repeatedly passes through these
phases in iterations called Spirals.
1) Identification
2) Design
3) Construct or Build
4) Evaluation and Risk Analysis

Based on the customer evaluation, the software development process enters the next
iteration and subsequently follows the linear approach to implement the feedback
suggested by the customer. The process of iterations along the spiral continues
throughout the life of the software.

DEPSTAR-IT PAGE | 4
IT451 - Software Engineering 20DIT092

Application of Spiral Model


The Spiral Model is widely used in the software industry as it is in sync with the natural
development process of any product, i.e. learning with maturity which involves minimum
risk for the customer as well as the development firms.
The following pointers explain the typical uses of a Spiral Model −
 When there is a budget constraint and risk evaluation is important.
 For medium to high-risk projects.
 Long-term project commitment because of potential changes to economic
priorities as the requirements change with time.
 Customer is not sure of their requirements which is usually the case.
 Requirements are complex and need evaluation to get clarity.
 New product line which should be released in phases to get enough customer
feedback.
 Significant changes are expected in the product during the development cycle.

4. V-Model:-
The V-model is an SDLC model where execution of processes happens in a sequential
manner in a V-shape. It is also known as Verification and Validation model.
The V-Model is an extension of the waterfall model and is based on the association of a
testing phase for each corresponding development stage. This means that for every single
phase in the development cycle, there is a directly associated testing phase. This is a
highly-disciplined model and the next phase starts only after completion of the previous
phase.

DEPSTAR-IT PAGE | 5
IT451 - Software Engineering 20DIT092

Application of V- Model
V- Model application is almost the same as the waterfall model, as both the models are
of sequential type. Requirements have to be very clear before the project starts, because
it is usually expensive to go back and make changes. This model is used in the medical
development field, as it is strictly a disciplined domain.
The following pointers are some of the most suitable scenarios to use the V-Model
application.
 Requirements are well defined, clearly documented and fixed.
 Product definition is stable.
 Technology is not dynamic and is well understood by the project team.
 There are no ambiguous or undefined requirements.
 The project is short.

5. RAD Model:
The RAD (Rapid Application Development) model is based on prototyping and
iterative development with no specific planning involved. The process of writing the
software itself involves the planning required for developing the product.
Rapid Application Development focuses on gathering customer requirements through
workshops or focus groups, early testing of the prototypes by the customer using iterative
concept, reuse of the existing prototypes (components), continuous integration and rapid
delivery.
RAD model distributes the analysis, design, build and test phases into a series of short,
iterative development cycles.
Following are the various phases of the RAD Model –
1) Business Modelling
2) Data Modelling
3) Process Modelling
4) Application Generation
5) Testing and Turnover

DEPSTAR-IT PAGE | 6
IT451 - Software Engineering 20DIT092

Application of RAD Model


RAD model can be applied successfully to the projects in which clear modularization is
possible. If the project cannot be broken into modules, RAD may fail.
The following pointers describe the typical scenarios where RAD can be used −
 RAD should be used only when a system can be modularized to be delivered in an
incremental manner.
 It should be used if there is a high availability of designers for Modelling.
 It should be used only if the budget permits use of automated code generating
tools.
 RAD SDLC model should be chosen only if domain experts are available with
relevant business knowledge.
 Should be used where the requirements change during the project and working
prototypes are to be presented to customer in small iterations of 2-3 months.

DEPSTAR-IT PAGE | 7
IT451 - Software Engineering 20DIT092

6. Agile Model:-
Agile SDLC model is a combination of iterative and incremental process models with
focus on process adaptability and customer satisfaction by rapid delivery of working
software product. Agile Methods break the product into small incremental builds. These
builds are provided in iterations. Each iteration typically lasts from about one to three
weeks. Every iteration involves cross functional teams working simultaneously on
various areas like −
 Planning
 Requirements Analysis
 Design
 Coding
 Unit Testing and
 Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and important
stakeholders.

Application of Agile Model


 Practically any start-up initiatives, when end user’s early feedback is required.
 Most mid-sized projects in custom software development were business
 requirements cannot be confidently translated to detailed software requirements.
 Large projects that are easy to divide into small functional parts and can be
developed incrementally over each iteration.

DEPSTAR-IT PAGE | 8
IT451 - Software Engineering 20DIT092

CASE STUDY ON “VLC Media Player”

Overview:-
It is open-source video/media player use widely with different video format compatibility.
There are lots of changes and updates happened through many years. It is platform
independent because it can be operated on IOS, android, Windows, Linux and MacOS. It
has very interactive interface and it support all type of high-resolution videos with better
audio compatibility.

Suitable model for development of VLC:-


As there are many models to build VLC media player, but all are not perfect to build upon.
Let’s see which one is appropriate to build.

In case of VLC media player making temporary product or making prototype was not
possible because this is initially developed in collaboration with other companies to make
cross platform software. So, we cannot use Prototype model. Initial goal for making this
software to serve as MVP (Minimum Viable Product). So, there was no significance of
making module by module under Incremental or Agile model. Moreover, we don’t want
any model in which we can no go back to any step of building and we also we can have need
of changing the requirements to make it more viable according to newly coming
technologies. So, locking of requirements should not be there in our suitable model.

Agile model is good to build our media player but we don’t have any time constraint to serve
as we build while there is no any risk analysis and prediction in agile model. So finally,
Spiral model come into play. Which fulfil almost every requirement for building VLC
media player.

AS we always have to consider the risk factor for VLC media player. As it can support every
type of video format so sometime unauthorized video player use it to steal data of the pc or
operate in malfunction. So, risk management can be done only in Spiral model. Under
Digital Millennium Copyright Act of USA decryption of CSS-encrypted DVD content or
unauthorized distribution of CSS decryption is illegitimate but still VLC media player
extract audio or video by decrypting CSS-encrypted DVD content. So later on, many
changes can be happened. So, it is very important to make it more flexible which is supported
in Spiral model.

As VLC media player is not bounded by any specific developers so any one can work on the
project under open source contribution. Even low skilled software engineer too. So Spiral
model support such flexibility.

DEPSTAR-IT PAGE | 9
IT451 - Software Engineering 20DIT092

Conclusion:-
Spiral model is best model to build VLC media player. Because it has few unique features
that make our production and workflow more convenient. Like
1) Risk management
2) No early lock of requirements
3) Anyone can work on project (Even less experienced)

DEPSTAR-IT PAGE | 10
IT451 - Software Engineering 20DIT092

PRACTICAL-2
AIM:- List at least 10 Agile Development tools for desktop and mobile application
development in IT industry and prepare the detailed case study on “JIRA Tool” for
Agile Development.

Agile Development tools


1. Katalon TestOps:-
Katalon TestOps provides an agile workspace for your team. TestOps gives testing and
DevOps teams a clear, connected picture of their tests, resources, and environments to
run the right test, in the right environment, at the right time.

Features:
 Enhance collaboration and transparency through comments, dashboards, KPI
tracking, actionable insights.
 Streamlined result collection through robust failure analysis and reporting
capabilities across any framework.
 Real-time data tracking for accurate debugging through comprehensive test
reports.

2. Sprints:-
Sprints is a tool that helps you to manage your team and product with ease. It enables
you to track your progress with no hassle. This software can be used to find bottlenecks
and discover ways to generate business value.

Features:
 It is integrated with CI/CD tools.
 This tool helps you to get product feedback with ease.
 Allows you to work on any device and place.
 Enables the team to comment on code changes.

DEPSTAR-IT PAGE | 11
IT451 - Software Engineering 20DIT092

3. JIRA:-
JIRA is a defect tracking tool which is used for Agile testing as well as project
management. This tool is not only used for recording, reporting but also integrated with
code development environment.

Features:
 JIRA Query Language helps to create quick filters with a single click.
 This agile tool helps your team become more accurate and efficient.
 Reporting functionality gives team critical insight into their agile process.
 Extensive reporting functionality gives your team critical insight into their agile
process.
 Allows creating custom workflows of any size which is helpful to build, test, and
release software.

4. Soap UI:-
SoapUI is an agile testing tool for service-oriented architectures (SOA) and REST. Its
functionality includes web service inspection, invoking, development, functional testing,
and load testing.

Features:
 It is open-source testing tool
 This agile tool offers Drag and Drop Test Creation
 It allows reusing functional test cases and security scans in just a few clicks
 It Supports Data-Driven Testing
 Multi Environment Support
 Allows service Simulation
 Static Content Mocking

DEPSTAR-IT PAGE | 12
IT451 - Software Engineering 20DIT092

5. Jmeter:-
The Apache JMeter application is an open-source agile performance testing tool. It is
used to load functional test behaviour and measure performance of the website.

Features:
 Ability to load and performance test different applications/server and protocols
 Full featured Test IDE for fast Test Plan recording
 This agile tool offers complete portability and 100% Java purity
 Data analysis and visualization plugins offers great extensibility
 Functions can be used to offer dynamic input to test or provide data manipulation
 Easy Continuous Integration using third party libraries for tools like Maven,
Gradle, and Jenkins

6. Selenium WebDriver:-
Selenium WebDriver is an automation agile testing tool. It aims to mimic the behavior
of a real user, and as such interacts with the HTML of the application.

Features:
 It is a compact Object-Oriented API
 This agile tool Support different languages like Java, Python, Ruby, Perl, PHP,
and JavaScript
 Selenium server initializing is not required
 WebDriver finds any coordinates of any object
 It is easy tool for a WebDriver to build a keyword driven framework

DEPSTAR-IT PAGE | 13
IT451 - Software Engineering 20DIT092

7. Appium:-
Appium is an open-source and free Agile tool. It is helpful for automating mobile web,
iOS, and Android and hybrid applications. Native apps are those written using Android,
iOS, or Windows SDKs.

Features:
 Easy process setup process
 This best agile tool supports Safari on iOS and Chrome or the built-in ‘Browser’
app on Android
 It can automate Native, Hybrid, and Web mobile applications
 It supports programming languages like- Java, PHP, Ruby, Python, C#, etc.
 This agile testing tool allows native, hybrid and web application testing on
physical gadgets as well as on emulator or simulator.

8. Usersnap:-
Usersnap is an Agile testing tool that allows web developers to get screenshots of bugs.
This tool helps testers and developers communicate bugs easily.

Features:
 Runs on every known web browser.
 This best agile tool Connects users with clients and colleagues.
 Does not impede website speed.
 Get visual bug reports with advanced client-side error recording.
 Supports Single Page Applications.

DEPSTAR-IT PAGE | 14
IT451 - Software Engineering 20DIT092

9. Bug Shooting:-
Bug Shooting is a useful tool for software developers as well as agile testing. It provides
an easy way to create screen captures and attach them to items of bug tracking or issue
management system for reporting bugs.

Features:
 Support for Intelligent capture mode.
 Create professional graphics by adding effects to screenshots.
 Easy and fast access to frequently used tools.
 It can automatically store the captured screenshots.

10. Snagit:-
Snagit is a popular screenshot capturing tool. It provides powerful tools to edit, annotate
and share screenshots. It can also be used to submit and push screenshots directly.

Features:
 This agile testing tool offers complete features for screen capture and video
recording.
 Capture videos with a simple, intuitive screen recorder.
 Capture a website, record an online meeting or send feedback in an email.

DEPSTAR-IT PAGE | 15
IT451 - Software Engineering 20DIT092

CASE STUDY ON “AGILE DEVELOPMENT WITH JIRA”

Overview:-
Complaints about project management tools are an old cliché in the software development
industry. They can be heard from people in many roles, in companies of all sizes, and from
all countries. When listening to them, one could come to believe that, oddly, none of the
more than one hundred tools existent in the market solves the problems it should.

On top of that, it's particularly interesting to note that the most popular tool in the industry,
Jira Software, is notably the most infamous. Most project management tool users, both
heavy and light users, have a negative opinion of Jira — weirdly, even those who have never
been in direct touch with it. Several times, I have heard statements like: "I've never used
Jira, but I know it sucks," and "Project management tools such as Jira are counterproductive
because they slow down the team." It's almost like companies were adopting Jira just to go
against the grain. Not surprisingly, though, such comments usually come from teams that
follow no specific methods and processes of work and in which no one has significant
experience with project management.

Agile teams use an iterative approach to break down complex projects. In the past, software
development teams often failed to meet deadlines because of the sheer complexity of their
work. The agile methodology for project management was developed to address the many
inefficiencies present in traditional software development projects.

The agile methodology is based on four basic tenets:


 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan.

Agile project managers embrace change. Since working software is the primary measure of
progress for agile teams, the trajectory of the project is bound to change as feedback from
clients, customers, and team members are integrated with each new release. While this might
sound like it would slow the whole process down, it actually makes teams more nimble and
ensures higher code quality.

Jira has adopted agile principles into every facet of their software. Agile teams can quickly
and easily navigate charts, long-term goals (epics), and tasks. Tracking issues and spotting
bugs can also be done automatically by Jira Software.

DEPSTAR-IT PAGE | 16
IT451 - Software Engineering 20DIT092

Conclusion:-
Jira is a powerful project management system with planning, tracking, releasing, and
reporting all in one place. Teams are able to access information about tasks, productivity,
bugs, and code quality in one location. The result is better coordination among team
members, faster development times, and higher quality code.

By embracing the agile methodology, Jira lets teams build flexible, customizable projects.
Using Jira’s boards and reports lets team members digest critical project information in a
highly visual way. By monitoring releases and generating reports, project managers can lead
better project retrospectives that lead to meaningful changes and improvements in project
processes.

Jira helps teams avoid burnout. By keeping a consistent, agile pace, teams can produce
working software in an iterative fashion. By using a popular project management system
like Jira, software development teams are more likely to succeed through the use of powerful
software tools.

DEPSTAR-IT PAGE | 17
IT451 - Software Engineering 20DIT092

PRACTICAL-3
AIM:- List at least 5 software development planning tools and prepare the detailed
case study of Risk Analysis & Management (i.e. Risk Identification, Risk Projection,
Risk Refinement, Risk Mitigation.) on “VLC Media Player” mobile application.

Software Development Planning Tools


11.JIRA:-
JIRA is a project management tool created for dev teams that like to stay on top of their
game. Helping dev teams gain visibility in their projects, JIRA has gained prominence
for its long list of integrations with apps like Confluence, BitBucket, and more.
Features:
 Custom workflows
 Scrum boards
 Project roadmaps
 Agile reporting
 Integrations
 Automation features

12. ProofHub:-
ProofHub is one of the best tools for dev teams because it offers added flexibility to the
teams with its multiple views (task view, kanban view, Gantt chart/timeline view, and
calendar view). You can create custom workflows to establish clear work processes for
your dev team.
Features:
 Custom workflows and kanban boards
 Gantt charts and project timeline
 Task management
 Group chat tool
 Time tracking and timesheets
 Custom reports
 Email-in
 Online collaboration features (real-time discussions)

DEPSTAR-IT PAGE | 18
IT451 - Software Engineering 20DIT092

13. Hive:-
Hive is another popular project management tool that uses Artificial Intelligence to make
life easy for dev teams. Hive’s highlight is its team collaboration capabilities, which
make it a great option for scattered teams.
Features:
 Project layouts (Gantt chart, Kanban board, table, portfolio view, or calendar view)
 Templates
 Task management
 Hive mail (dedicated email inbox)
 Resource management
 Portfolio view

14. Celoxis:-
Powerful customizations make Celoxis a highly popular tool amongst dev teams. Touted
as a complete project management software, Celoxis has a user-friendly interface,
fantastic collaboration features.
Features:
 Project planning
 Project scheduling capabilities
 Profit and margin tracking
 Resource management
 Custom drill-down charts
 Collaboration features
 Integrations (400+)

15. TeamGantt:-
Badass dev teams know the importance of planning in the success of a project.
TeamGantt is one such badass project management tool for dev teams that helps in
effortless planning and execution of the project.
Features:
 Simplified project management
 Easy collaboration and organization
 Reporting features
 Portfolios
 Calendar and scheduling

DEPSTAR-IT PAGE | 19
IT451 - Software Engineering 20DIT092

16. Zoho Projects:-


Zoho Projects brings an amalgamation of project management and automation
technology to deliver an amazing product. Its issue tracking feature makes it a hit
amongst software development teams. Plus, the customization features you get in Zoho
Projects make it one of the best tools available out there.
Features:
 Tasks and task management
 Kanban boards
 Automation features
 Powerful reporting features
 Time tracking
 Issue tracking
 Gantt charts
 Chat functionality

17. Workzone:-
Workzone is rated highly as a project management software because it helps
organizations adopt project management. From customization to planning, Workzone
has a comprehensive set of features that make it a highly useful tool for software
development teams.
Features:
 Gantt charts
 Project templates
 Request forms
 Document sharing
 Image markup feature
 API and Integrations
 File versioning

DEPSTAR-IT PAGE | 20
IT451 - Software Engineering 20DIT092

CASE STUDY ON “RISK ANALYSIS & MANAGEMENT IN VLC Player”

Overview:-
VideoLan software, or simply VLC media player, is an academic project in 1996. It was
intended to consist of a client and server to stream videos from satellite dishes across a
campus network. The cone icon used in VLC is a reference to the traffic cones collected by
École Centrale's Networking Students' Association. Since development of such great app
includes high risk factors which we will analyse here.
Risk management is concerned with identifying risks and drawing up plans to minimise their
effect on a project.
A risk is a probability that some adverse circumstance will occur.
 Project risks affect schedule or resources.
 Product risks affect the quality or performance of the software being developed.
 Business risks affect the organisation developing or procuring the software.
A risk management process contains 4 major steps.
 Risk identification - Identify project, product and business risks.
 Risk analysis - Assess the likelihood and consequences of these risks.
 Risk planning - Draw up plans to avoid or minimise the effects of the risk.
 Risk monitoring - Monitor the risks throughout the project.

1. Risk Identification
From my perspective, in Risk Identification, there is some risk that can affect VLC media
player and that are:
 Business Impact: there is some similar kind of App. that are in Competition of VLC
media player.
 Technology to the limit: the Technology is latest or not.
 Development environment: If the Development Environment Changes the
Application may get to the Failure

2. Risk Projection
RISK CATEGORY PROBABILITY IMPACT
Other Applications that are similar to
BE 60% 4
VLC player like MX player.
Lack of Technology tools DE 40% 2
Application not meet expectations TE 20% 1

DEPSTAR-IT PAGE | 21
IT451 - Software Engineering 20DIT092

3. Risk Refinement
We can use the risk Identification list that are made on the basis of the risk item checklist
that is built on risk analysis questions. So further that question will be get sub question like
for example we have risk in Lack of technology tools so there is some sub question like what
tools and what is the cost? and risk impact is on level 2 so risk has to be solved.

4. Risk Mitigation
From the Risks that we have discussed above in in risk projection:
 Other Applications that are similar to VLC media player like MX player, Xplayer,
Video player so we can Avoid this Risk for Risk Mitigation.
 Lack of Technology tools so we can Accept the Risk and find the best employee that
can work on any environment.
 Application not meet expectations so for this Risk we can Reduce the Risk.

Conclusion:-
After performing this practical, we understood various project planning tools and also, we
undergone through Risk Analysis & Management process with the example of VLC media
player mobile application, which gave us real-time experience and better understanding of
these concepts.

DEPSTAR-IT PAGE | 22
IT451 - Software Engineering 20DIT092

PRACTICAL-4
AIM:- Design the Software Requirement Specification (SRS) document on VLC
Media Player desktop application in IEEE format only. (Excluding UML Diagram).

DEPSTAR-IT PAGE | 23
Software Requirements
Specification
for

VLC Media Player desktop


application

Version 1.0 approved

Prepared by 20dit092

DEPSTAR College, CHARUSAT

12/08/2023
Software Requirements Specification for VLC Media Player Page ii

Table of Contents
Table of Contents ...................................................................................................................... ii
Revision History ........................................................................................................................ ii
1. Introduction ......................................................................................................................... 1
1.1 Purpose ....................................................................................................................................... 1
1.2 Document Conventions ............................................................................................................... 1
1.3 Intended Audience and Reading Suggestions ............................................................................... 1
1.4 Product Scope ............................................................................................................................. 1
1.5 References .................................................................................................................................. 1
2. Overall Description ............................................................................................................. 1
2.1 Product Perspective..................................................................................................................... 1
2.2 Product Functions ....................................................................................................................... 2
2.3 User Classes and Characteristics ................................................................................................. 2
2.4 Operating Environment ............................................................................................................... 2
2.5 Design and Implementation Constraints....................................................................................... 2
2.6 User Documentation ................................................................................................................... 2
2.7 Assumptions and Dependencies.......................................................…..……..…………………….
3. External Interface Requirements ....................................................................................... 3
3.1 User Interfaces ............................................................................................................................ 3
3.2 Hardware Interfaces .................................................................................................................... 3
3.3 Software Interfaces ..................................................................................................................... 3
3.4 Communications Interfaces ......................................................................................................... 3
4. System Features ................................................................................................................... 3
4.1 System Feature 1 ......................................................................................................................... 3
4.2 System Feature 2 (and so on)..........................................................………………………………...
5. Other Nonfunctional Requirements.................................................................................... 4
5.1 Performance Requirements ......................................................................................................... 4
5.2 Safety Requirements ................................................................................................................... 4
5.3 Security Requirements ................................................................................................................ 4
5.4 Software Quality Attributes ......................................................................................................... 4
5.5 Business Rules ................................................................................………………………………...
6. Other Requirements ............................................................................................................ 4
Appendix A: Glossary ............................................................................................................... 4
Appendix B: Analysis Models .........................................................….…………………...……
Appendix C: To Be Determined List..............................................……………………………..

Revision History
Name Date Reason For Changes Version
Software Requirements Specification for <Project> Page 1

1. Introduction

1.1 Purpose
The main purpose of our product MP4 player is to make a portable media player that comply with
certain standards and formats. The scope of this product includes supporting AVIformat , Photo
Bank (JPEG),movie play(AMV files).
It also includes video recorder, MP3 Player,FM tuner ,A-B segment replay Function.

1.2 Document Conventions


The SRS document is written in Regular Font style of size 11.
For stating terms having high significance and to state high level requirements, we are using
different font with size 12 and Bold.

1.3 Intended Audience and Reading Suggestions


This document is intended for, such as developers, project managers, marketing staff, users,
testers and documentation writers. The sequence for reading the document is beginning with the
overview sections and proceeding through the sections.

1.4 Product Scope


The scope of the project includes adding new features to existing players. It will be a new version
over MP3 player. It will be having functionalities ofMP3 player. Also, It will include JPEG image
browser, image interface, document management for movable disk, Solid radio with full segment
FM reception, support for AVI formats.

1.5 References
Readers can take reference from websitewww.made-in-china.com and www.chinavasion.com.

2. Overall Description

2.1 Product Perspective


This Product is a follow-on member of product family of Media Players. It is a new version
overMP3Player. It contains all functionalities of MP3 player also having certain additional
features like supporting various audio, video formats, Image file formats JPEG. In this way,
it has become replacement for existing media players like MP3 player.
Software Requirements Specification for <Project> Page 2

2.2 Product Functions


The major features include voice recording, FM tuning, support to multiple formats such as MP1,
MP2, MP3, WMA, WMV, ASF and WAV.
It is also having feature of USB 2.0 full speed interface, movie play with AMVfiles, Multilanguage
support, Built-in microphone, A-B segment replay, Photo Bank and JPEG image browse, Image
interface, document management of movable disk, High capacity: 1GB/2GB/4GB available,
Equalizer with 7 different quality, Built-in Lithium rechargeable battery.

2.3 User Classes and Characteristics


One end user class will be of naïve users, who will have no knowledge of internal architecture of
MP4 player, they will follow by a menu driven program.
Other user class can be of sophisticated users having some knowledge of software. They have
some knowledge how to insert, delete, update software and data.
Other user class can be of Experts which will have full knowledge of hardware and software as well
as their interfaces.

2.4 Operating Environment


2.4.1 Hardware
Requirement of storage device either flash or hard disk storage. It also includes memory card slots.
For interface, it may use touch and wheel mechanism. Screen Sizes range all the way up to 7
inches. As well, resolutions also vary. Most screens come with a colour depth of 16-bit, but higher
quality video-oriented devices may range all the way to 24-bit. For FM, it will include a radio
receiver also. Electronic video processing Rockchip supporting AVIformat.

2.4.2 Operating System


It supports Microsoft Windows 98/2000/ME/XP OS, Mac OS 10. It can run on Microsoft windows
like Window 7, Window XP, Window vista.

2.5 Design and Implementation Constraints


The major constraint is on Operating system. We can run it directly on Microsoft windows, but
cannot run it on Linux directly. For this task, we will need an MP4 Convertor. Also, it should be
designed in a way that it can support multiple formats like MP1, MP2, MP3, WMA, WMV, ASF and
WAV.

2.6 User Documentation


It will include user manuals to guide user how to use MP4 Player. Manuals will provide information
to user about various functionalities of MP4 player like Movie play, FM tuning, voice recording etc.
Software Requirements Specification for <Project> Page 3

3. External Interface Requirements

3.1 User Interfaces


For user interface, it provides1.8"/260K color display screen. It supports double screen display in-
phase. It can support Touch and wheel mechanism for interface. It also supports shortcut key start-
up.

3.2 Hardware Interfaces


It provides USB2.0 full speed interface .It includes memory card slots .It provides high capacity:
1GB/2GB/4GB .

3.3 Software Interfaces


It supports Microsoft Windows 98/2000/ME/XP OS, Mac OS 10. It also provides Image interface,
document management of movable disk. It also provides interface for multiple audio and video
formats.

3.4 Communications Interfaces


To communicate with radio (FM) channels it provides solid radio interface with full segment FM
reception. It also provides FM tuner to communicate with different radio channels.

4. System Features
Better video access in any OS or any version of Desktop. It should be compatible with almost every
type of video file extension.

4.1 System Feature 1


<Don’t really say “System Feature 1.” State the feature name in just a few words.>
4.1.1 Description and Priority
First priority is on timing of access and volatility of video. Security and user interface
are next priority. There is no cost boundations.
4.1.2 Functional Requirements
Req-1) Play, pause, next functionality
Req-2) Key board short cut keys support for major functionality
Req-3) Availability of captions for given video. Different languages should be supported
Req-4) There should be option for taking screenshot or record the video for specific duration
Req-5) Able to sync where last stopped or paused, when reopen.
Software Requirements Specification for <Project> Page 4

5. Other Nonfunctional Requirements

5.1 Performance Requirements


The main requirement for performance is good audio quality. It should provide equalizer with
different qualities. It should provide a sophisticated volume control system.
The other main requirement for performance is good video quality. It should provide fine resolution
for videos.

5.2 Safety Requirements


The main safety requirement is use of good quality hardware, so that there should be minimum
wear out of hardware. The screen should be made of appropriate material, so that it can work for
long time. For safety concerns, we can make it water proof

5.3 Security Requirements


The main security requirement is including of GPS system, so that if it gets misplaced somewhere,
we can easily find it out.

5.4 Software Quality Attributes


It includes adaptability, availability, correctness, flexibility, interoperability, maintainability,
portability, reliability, reusability, robustness, testability of Software. The important quality attribute
is that it should support all audio and video formats.

6. Other Requirements

Appendix A: Glossary
1. AVI: - It is Audio Video Interleave. It is a multimedia container format. AVI files can contain
both audio and video data in a file container that allows synchronous audio-with video
playback.
2. AMV: - AMV is a proprietary video file format, produced for MP4 players. The container is a
modified version of AVI.
3. JPEG: - It is Joint Photographic Experts Group. In multimedia, Motion JPEG (M-JPEG) is
an informal name for a class of video formats where each video frame or interfaced field of
a digital video sequence is separately compressed as a JPEG image.
4. WMV: - It is Windows Media Video. It is a compressed video compression format for
several proprietary codecs developed by Microsoft.
5. WMA: - Windows Media Audio (WMA) is an audio data compression technology developed
by Microsoft. The name can be used to refer to its audio file format or its audio codecs. It is
a proprietary technology that forms part of the Windows Media framework.
IT451 - Software Engineering 20DIT092

PRACTICAL-5
AIM:- List at least 10 software design principals & online/offline tools for software
development process and draw the UML diagram (Diagram Must 1. Use Case, 2.
Activity, 3. State, 4. Sequence, 5. Data Flow (DFD) 6. Class) for VLC Media Player
desktop application.

SOFTWARE DESIGN PRINCIPLES


1. Single Responsibility Principle (SRP):-
 It is a software engineering principle that states that a class should have only one
reason to change. In other words, it must have only one responsibility. Here, we are
talking about cohesion. All elements in given class structures or modules should have
a functional affinity to one another. By clearly defining your class’s responsibility,
you increase its cohesiveness. This is the first principle denoted by “S”.

2. Open/Closed Principle (OCP):-


 The principle says that you should be able to change the behaviour of a class without
modifying it. Therefore, you can extend the class’s behaviour through composition,
interface, and inheritance. However, you cannot open it for minor modifications. This
is the second principle denoted by “O”.

3. Liskov Substitution Principle (LSP):-


 The LSP principle mainly focusses on the degree of use of the Inheritance in a
software. While inheritance is beneficial, it is advisable to use it contextually and
moderately. The principle strives to prevent cases where classes are extended only
through common things. You need to consider the pre-conditions and post-conditions
of a class before performing inheritance. This is the third principle denoted by “L”.

4. Interface Segregation Principle (ISP):-


 ISP prefers many specific interfaces to a general interface. The goal is to have finely
grained and client-specific interfaces. You need to enhance cohesion in interfaces and
develop modules with few behaviors. Interfaces that have many behaviors are hard to
maintain and evolve. So, they should be completely avoided. This is the fourth
principle denoted by “I”.

DEPSTAR-IT PAGE | 24
IT451 - Software Engineering 20DIT092

5. Dependency Inversion Principle (DIP):-


 The fifth and the final principle of SOLID is Dependency Inversion Principle and is
denoted by “D”. The principle asserts that programmers should depend on
abstractions and not on concrete classes. This can be broken down to 2 parts as: We
can break it into two:
✓ High-level modules need to be independent of low-level ones. Both should depend
on abstractions
✓ Abstractions should be independent of details. Details should depend on
abstractions.

6. Keep It Simple:-
 Ensuring that the program coding is simple and very easy to understand is very much
important. The code shouldn’t give a new person hard time to figure out how things
are working. Methods and functions should be as brief as possible but also easily
understandable. Each of them should solve only one problem or two at max. Also, the
project code should not have a lot of conditions (simple and nested conditions).
Optimizing the conditions would help understanding and finding bugs easily for the
QA team.

7. You Aren't Gonna Need It (YAGNI):-


 Most programmers fall into the pit of trying to implement all the functionalities at
once, from the word go. In the end, some or most of these functionalities become
useless. Start by adding just a few methods to a class. After that, as your project starts
taking shape and new demands arise, you can add more functionalities. That way,
you’ll achieve a lean development software. YAGNI saves time, efforts, and costs
that you would have wasted in trying to understand or debug the code.

8. Measure Twice and Cut Once:-


 The development life cycle’s requirement stage usually introduces more than 50%
coding issues if not done well. Therefore, a systematic approach should be developed.
It is very much important to double check all the project requirements so that one does
not miss any important section(feature) OR does not accidentally add too much. After
that, make blueprints that will guide the whole process to achieve high-quality coding
throughout. Always test your project from basics to ensure everything is fine. This
principle gives much more predictable outcomes, especially if the project’s cost is
already high. You’ll save yourself headaches that come with deleting or adding code
lines to meet requirements.

DEPSTAR-IT PAGE | 25
IT451 - Software Engineering 20DIT092

9. Don’t Repeat Yourself (DRY):-


 When writing your code, don’t repeat yourself. That is, avoid copy-pasting your code
in different places. Otherwise, future maintenance will be difficult. The reason is that
you will have to make changes to the coding in those various places. Those changes
will further necessitate changes in the tests to make the results click green. All of that
will need more time, effort, and money. To avoid such a pitfall, you can extract a
common logic into functions. Additionally, if there are any manual works that you
can automate, do so to keep your code lean. For software development, the above
steps will help in the code re-usability without having to repeat it.

10. Least Astonishment:-


 The principle of least astonishment says that it is advisable to design a feature that
doesn’t have a high-astonishment factor. Your system’s components should behave
in a way that end-users expect. Therefore, your project’s outcomes will be profitable
only if they are obvious, predictable, and consistent. Otherwise, users will shy from
using features or structures that astonish, surprise, or confuse them. You are making
software products for people to use. Thus, you’ll reap a lot by designing user-friendly
features. Strive to match human beings’ mental models, experience, and expectations.
Remember, you have to capture the user’s attention as quickly as possible. As we
know, the current users’ attention span has plummeted.

SOFTWARE DEVELOPMENT PROCESS TOOLS

1. Embold: Fixing bugs before deployment saves a lot of time and energy in the long
run. Embold is a software analytics platform that analyses source code and uncovers
issues that impact stability, robustness, security, and maintainability.
Features:
 With the Embold plugins, you can pick up code smells and vulnerabilities as
you code, before making commits.
 Unique anti-pattern detection prevents the compounding of unmaintainable
code.
 Integrate seamlessly with GitHub, Bitbucket, Azure, and Git and plugins
available for Eclipse and IntelliJ IDEA.
 Get deeper and faster checks than standard code editors, for over 10 languages.

DEPSTAR-IT PAGE | 26
IT451 - Software Engineering 20DIT092

2. Linux: Linux is a low code IDE and server. IT pros use Linux to quickly create
custom automated business processes, integrate applications, expose web services and
to efficiently handle high workloads.
Features:
 Easy-to-use, drag-and-drop interface
 Over 100 pre-built functions and services for rapid development
 One-click deployment to any local or remote Linux Server directly from the
IDE
 Input and outputs include nearly any SQL & NoSQL databases, numerous file
formats (text and binary) or REST and SOAP Web services
 Live debugging with step through logic
 Automate backend processes via timer, directory events or message queue or
expose web services, and call APIs via HTTP requests

3. Studio 3T: Studio 3T for MongoDB helps you to build queries fast, generate instant
code, import/export in multiple formats, and much more.
Features:
 Query MongoDB faster with our Visual Query Builder, IntelliShell, or SQL
Query tool.
 Our Data Masking tool enables data compliance and bolsters security with
powerful field-level data obfuscation.
 Import to MongoDB from JSON, CSV, BSON/mongodump, and SQL, and get
a preview of your output documents as you make changes.
 Migration from MongoDB to SQL (or vice versa) has never been easier with
our Migration tools."

4. Kite: Kite is IDE for Software Development that automatically completes multiple
line codes. This editor supports more than 16 languages. It helps you to code faster
with no hassle.
Features:
 It offers Software Development documentation.
 This editor provides a function signature as you type.
 You will get a tooltip on mouse hover.
 Provides support in email.

DEPSTAR-IT PAGE | 27
IT451 - Software Engineering 20DIT092

5. NetBeans: NetBeans is an open source and a free software development tool written
in Java that develops world-class web, mobile, and desktop applications easily and
quickly. It uses C / C++, PHP, JavaScript, Java etc.
Features:
 Support for fast & smart code editing.
 Easy & Efficient Project Management process.
 Rapid User Interface Development.
 Helps to write bug-free code.
 NetBeans IDE offers superior support for C/C++ and PHP developers.

6. Cloud9 IDE: Cloud9 IDE is an online integrated software development environment.


It supports many programming languages like C, C++, PHP, Ruby, Perl, Python,
JavaScript and Node.js.
Features:
 Allows to clone entire development environment.
 Built-In Terminal for command-line wizard.
 Code Completion suggestions helps software developers to code faster and
avoid typos.
 The Debugger helps developers to set breakpoints, and inspect variables of any
JS/Node.js app.
 Simply drag any file or Terminal to create multiple split views.
 Developers can select an extensive set of default Runners to execute app, such
as Ruby, Python, PHP/Apache.

7. Atom: -Atom is a solid all-around text-editor. It is fully free and open source. It can
be customized to do anything but without a need of modifying the config file.
Features: -
 Atom works across many popular operating systems like OS X, Windows, or
Linux.
 It helps developers to write code faster with a smart, flexible autocomplete.
 Easily browse and open whole project or multiple projects in one window.
 It is possible to split Atom interface into multiple panes to compare and edit
code across files.
 Find, preview, and replace text type in a file or across the entire project.

8. GitHub: GitHub is a powerful collaboration tool and development platform for code
review and code management. With this GitHub, the users can build applications and
software, manage the projects, host the code, review the code etc.

DEPSTAR-IT PAGE | 28
IT451 - Software Engineering 20DIT092

Features:
 With GitHub, developers can easily document their code and can host the same
from the repositories.
 GitHub’s project management tools help its users to stay aligned, co-ordinate
easily and get their task done accordingly.
 Few features of GitHub that make it a useful tool are its code security, access
control among the team members, integration with other tools etc.

9. Bitbucket: Bitbucket is a distributed, web-based version control system that is used


for collaboration between software development teams (code and code review). It is
used as a repository for source code and development projects.
Features:
 Useful features of Bitbucket that makes it a powerful tool are its flexible
deployment models, unlimited private repositories, code collaboration on
steroids etc.
 Bitbucket supports few services like code search, issue tracking, Git large file
storage, bitbucket pipelines, integrations, smart mirroring etc.
 Using Bitbucket, one can organize the repositories into the projects with which
they can focus easily on their goal, process or product.
 To rationalize the development process of any software it can integrate into the
prevailing workflow.
 Bitbucket offers a free plan for 5 users with unlimited private repositories.

10. JIRA: Jira is the most popular software development tool that is used by agile teams
for planning, tracking and releasing the software.
Features:
 This tool is customizable and also has some prevailing features that are used in
every development phase.
 Using Jira, we can accomplish the work in progress, generate reports, backlogs
etc.
 Few other important features of Jira software are Scrum boards, Kanban
boards, GitHub integration, Disaster recovery, Code Integration, Portfolio
Management, Sprint Planning, Project Management etc.
 Jira works for Windows and Linux/Solaris operating systems.

DEPSTAR-IT PAGE | 29
IT451 - Software Engineering 20DIT092

USECASE DIAGRAM

ACTIVITY DIAGRAM

DEPSTAR-IT PAGE | 30
IT451 - Software Engineering 20DIT092

STATE DIAGRAM

SEQUENCE DIAGRAM

DEPSTAR-IT PAGE | 31
IT451 - Software Engineering 20DIT092

DATA FLOW DIAGRAM

CLASS DIAGRAM

DEPSTAR-IT PAGE | 32
IT451 - Software Engineering 20DIT092

PRACTICAL-6
AIM:- List at least 10 type of Testing for software development life cycle in IT industry
and Design Test Case, Test Suites & Testing Strategy for the “VLC Media Player”
Mobile Application.

INTRODUCTION OF TESTING
 Testing is the process of executing a program with the aim of finding errors. To make
our software perform well it should be error-free. If testing is done successfully, it will
remove all the errors from the software.

Principles of Testing:-
1) All the test should meet the customer requirements
2) To make our software testing should be performed by a third party
3) Exhaustive testing is not possible. As we need the optimal amount of testing based on
the risk assessment of the application.
4) All the test to be conducted should be planned before implementing it
5) It follows the Pareto rule (80/20 rule) which states that 80% of errors come from 20%
of program components.
6) Start testing with small parts and extend it to large parts.

Different Types of Software Testing:-


Given below is a list of some common types of Software Testing:
Functional Testing types include:
 Unit Testing
 Integration Testing
 System Testing
 Sanity Testing
 Smoke Testing
 Interface Testing
 Regression Testing
 Beta/Acceptance Testing
Non-functional Testing types include:
 Performance Testing
 Load Testing
 Stress Testing

DEPSTAR-IT PAGE | 33
IT451 - Software Engineering 20DIT092

 Volume Testing
 Security Testing
 Compatibility Testing
 Install Testing
 Recovery Testing
 Reliability Testing
 Usability Testing
 Compliance Testing

TYPES OF TESTING:-
1. Unit Testing
 It focuses on the smallest unit of software design. In this, we test an individual unit
or group of interrelated units. It is often done by the programmer by using sample
input and observing its corresponding outputs.
Example:
a) In a program we are checking if loop, method or
function is working fine
b) Misunderstood or incorrect, arithmetic precedence.
c) Incorrect initialization

2. Integration Testing
 The objective is to take unit tested components and build a program structure that
has been dictated by design. Integration testing is testing in which a group of
components is combined to produce output.
 Integration testing is of four types: (i) Top-down (ii) Bottom-up (iii) Sandwich (iv)
Big-Bang
Example:
a) Black Box testing:- It is used for validation.
In this we ignore internal working mechanism and
focused on what is the output?

b) White Box testing:- It is used for verification.


In this we focus on internal mechanism i.e.
how the output is achieved?

DEPSTAR-IT PAGE | 34
IT451 - Software Engineering 20DIT092

3. Regression Testing
 Every time a new module is added leads to changes in the program. This type of
testing makes sure that the whole component works properly even after adding
components to the complete program.
Example:
In school record suppose we have module staff, students
and finance combining these modules and checking if on
integration these module works fine is regression testing

4. Smoke Testing
 This test is done to make sure that software under testing is ready or stable for
further testing
 It is called a smoke test as the testing an initial pass is done to check if it did not
catch the fire or smoke in the initial switch on.
Example:
If project has 2 modules so before going to module
make sure that module 1 works properly

5. Alpha Testing
 This is a type of validation testing. It is a type of acceptance testing which is done
before the product is released to customers. It is typically done by QA people.
Example:
When software testing is performed internally within
the organization

6. Beta Testing
 The beta test is conducted at one or more customer sites by the end-user of the
software. This version is released for a limited number of users for testing in a
real-time environment
Example:
When software testing is performed for the limited
number of people

DEPSTAR-IT PAGE | 35
IT451 - Software Engineering 20DIT092

7. System Testing
 This software is tested such that it works fine for the different operating systems.
It is covered under the black box testing technique. In this, we just focus on the
required input and output without focusing on internal working.
 In this, we have security testing, recovery testing, stress testing, and performance
testing
Example:
This include functional as well as non-functional
testing

8. Stress Testing
 In this, we give unfavourable conditions to the system and check how they perform
in those conditions.
Example:
a) Test cases that require maximum memory or other
resources are executed
b) Test cases that may cause thrashing in a virtual
operating system
c) Test cases that may cause excessive disk requirement

9. Performance Testing
 It is designed to test the run-time performance of software within the context of an
integrated system. It is used to test the speed and effectiveness of the program. It
is also called load testing. In it we check, what is the performance of the system in
the given load.
Example:
Checking number of processor cycles.

10. Object-Oriented Testing


 This testing is a combination of various testing techniques that help to verify and
validate object-oriented software. This testing is done in the following manner:
 Testing of Requirements,
 Design and Analysis of Testing,
 Testing of Code,
 Integration testing,
 System testing,
 User Testing.

DEPSTAR-IT PAGE | 36
IT451 - Software Engineering 20DIT092

Test Plan Vs Test Strategy

TEST PLAN TEST STRATEGY


It is derived from software requirement It is derived from the Business Requirement
specification (SRS). document (BRS).

It is prepared by the test lead or manager. It is developed by the project manager or the
Business analyst.

Test plan id, features to be tested, test techniques, Objectives and scope, documentation formats,
testing tasks, features pass or fail criteria, test test processes, team reporting structure, client
deliverables, responsibilities, and schedule, etc. communication strategy, etc. are the
are the components of the test plan. components of test strategy.

If there is a new feature or a change in the Test strategy maintains the standards while
requirement that is happened then the test plan preparing the document. It is also called as
document gets updated. Static document.

We can prepare the test plan individually. In smaller projects, test strategy is often found
as a section of a test plan.

We can prepare a Test plan at the project level. We can use Test strategy at multiple projects.

It describes how to test , when to test, who will It describes what type of technique to follow
test and what to test. and which module to test.

We can describe about the specifications by using Test strategy describes about the general
a Test Plan. approaches.

Test Plan will change over the course of the Test Strategy usually will not change once
project. approved.

Test plan is written after requirement sign off. Test strategy is made before the test plan.

Test plans can be of different types. There will be There will be only one test strategy document
a master test plan and separate test plan for for a project.
different types of testing like system test plan,
performance test plan, etc.

Test plan should be clear and concise. Test strategy provides overall guidance for the
project in hand.

DEPSTAR-IT PAGE | 37
IT451 - Software Engineering 20DIT092

Test Case Vs. Test Script

TEST CASE TEST SCRIPT


It is a step by step by procedure that is used to test It is a set of instructions to test an application
an application automatically.

The term Test Case is used in the manual testing The term Test Script is used in automation
environment. testing environment.

It is done manually. It is done by scripting format.

It is developed in the form of templates. It is developed in the form of scripting.

Test case template includes Test Suit ID, Test In Test Script we can use different commands
Data, Test procedure, Actual results, Expected to develop script.
results etc.

Is used to test an application. It is also used to test an application.

It is the base form to test an application in Once we develop, the script will run it multiple
sequence. times until the requirement is changed.

Example: We need to verify the login button in Example: We want to click an image button in
an application, an application.
The steps include: The script includes:
a) Launch the application. a) Click the Image Button.
b) Verify if the login button is displaying or not.

TEST CASE, TEST SUITE AND TESTING STRATEGY FOR VLC MEDIA
PLAYER MOBILE APPLICATION
1) Verify that Media Player should be installed in Mobile.
2) Verify that Media Player should support the Mobile OS.
3) Verify that Media Player should evoke effortlessly with one action.
4) Verify that Media Player should be close effortlessly.
5) Verify that Media Player should have controllers like Play, Pause, Next, Previous, Stop,
Close, Volume increase and decrease button, contrast increase and decrease button.
6) Verify that Media Player should be able to work and display in both Portrait and
Landscape view.

DEPSTAR-IT PAGE | 38
IT451 - Software Engineering 20DIT092

7) Verify that Media Player should maintain its consistency of controllers In both Portrait
and Landscape view.
8) Verify that Media Player should be able to run Video file of any format like AVI, MKV
etc.
9) Verify that Media Player should be able to run an audio file of any format lie mp3, WAV
etc.
10) Verify that Media Player is able or not able to run Video file of any quality like 3GP,
MP4, Low definition, High definition, 144p, 240p, 360p, 480p, 720p, 1080p etc.
11) Verify that Media Player is able or not able to run Audio file of any quality, bit rate,
bandwidth.
12) Verify that Media Player is able or not able to change the Aspect ratio.
13) Verify that Media Player is able or not able to change the Crop.
14) Verify that Media Player is able or not able to update from the Internet.
15) Verify that Media Player should be able or not able to run audio or video files from
SD/ Memory card.
16) Verify that Media Player should be able or not able to run the Audio or Video files
from Phone Memory/Internal Memory.
17) Verify that Media Player is able or not able to run the Audio or video files from the
internet.
18) Verify that Media Player should continue to run the Video file if Media Player go to
backgrounds or minimizes.
19) Verify that Media Player should continue to run the Audio file if Media Player go to
backgrounds or minimizes.
20) Verify that Media Player should be able to Stop or Minimizes if pressing back button
one or two times.
21) Verify that Media Player should have Media Library files.
22) Verify that Media files in Media Player’s Media Library should be a shuffle, Add,
Remove Media Files.
23) Verify that Media File in Media Player’s Media Library should be add Media files.
24) Verify that Media files in Media Player’s Media Library should be remove Media
Files.
25) Verify that Audio and Video files both can be Add, Shuffle and Remove Media files.

DEPSTAR-IT PAGE | 39
IT451 - Software Engineering 20DIT092

PRACTICAL-7
AIM:- Prepare the details Case Study on Design coding standards and guidelines for
your respective SGP project definition and justify which Software Quality Standards
& Testing Tool will be suitable for your SGP project.

Different modules specified in the design document are coded in the Coding phase according
to the module specification. The main goal of the coding phase is to code from the design
document prepared after the design phase through a high-level language and then to unit test
this code.
Good software development organizations want their programmers to maintain to some
well-defined and standard style of coding called coding standards. They usually make their
own coding standards and guidelines depending on what suits their organization best and
based on the types of software they develop. It is very important for the programmers to
maintain the coding standards otherwise the code will be rejected during code review.

Purpose of Having Coding Standards:-


 A coding standard gives a uniform appearance to the codes written by different engineers.
 It improves readability, and maintainability of the code and it reduces complexity also.
 It helps in code reuse and helps to detect error easily.
 It promotes sound programming practices and increases efficiency of the programmers.
Some of the coding standards are given below:-

1. Limited use of globals:


 These rules talk about which types of data that can be declared global and the data
that can’t be.

2. Standard headers for different modules:


 For better understanding and maintenance of the code, the header of different modules
should follow some standard format and information. The header format must contain
below things that is being used in various companies:
 Name of the module
 Date of module creation

DEPSTAR-IT PAGE | 40
IT451 - Software Engineering 20DIT092

 Author of the module


 Modification history
 Synopsis of the module about what the module does
 Different functions supported in the module along with their input output
parameters
 Global variables accessed or modified by the module

3. Naming conventions for local variables, global variables, constants and functions:
 Some of the naming conventions are given below:
 Meaningful and understandable variables name help anyone to understand the
reason of using it.
 Local variables should be named using camel case lettering starting with small
letter (e.g., local Data) whereas Global variables names should start with a capital
letter (e.g., Global Data). Constant names should be formed using capital letters
only (e.g., CONSDATA).
 It is better to avoid the use of digits in variable names.
 The names of the function should be written in camel case starting with small
letters.
 The name of the function must describe the reason of using the function clearly
and briefly.

4. Indentation:
 Proper indentation is very important to increase the readability of the code. For
making the code readable, programmers should use White spaces properly. Some of
the spacing conventions are given below:
 There must be a space after giving a comma between two function arguments.
 Each nested block should be properly indented and spaced.
 Proper Indentation should be there at the beginning and at the end of each block
in the program.
 All braces should start from a new line and the code following the end of braces
also start from a new line.

DEPSTAR-IT PAGE | 41
IT451 - Software Engineering 20DIT092

5. Error return values and exception handling conventions:


 All functions that encountering an error condition should either return a 0 or 1 for
simplifying the debugging.
 On the other hand, Coding guidelines give some general suggestions regarding the
coding style that to be followed for the betterment of understandability and readability
of the code. Some of the coding guidelines are given below:

6. Avoid using a coding style that is too difficult to understand:


 Code should be easily understandable. The complex code makes maintenance and
debugging difficult and expensive.

7. Avoid using an identifier for multiple purposes:


 Each variable should be given a descriptive and meaningful name indicating the
reason behind using it. This is not possible if an identifier is used for multiple purposes
and thus it can lead to confusion to the reader. Moreover, it leads to more difficulty
during future enhancements.

8. Code should be well documented:


 The code should be properly commented for understanding easily. Comments
regarding the statements increase the understandability of the code.

9. Length of functions should not be very large:


 Lengthy functions are very difficult to understand. That’s why functions should be
small enough to carry out small work and lengthy functions should be broken into
small ones for completing small tasks.

10. Try not to use GOTO statement:


 GOTO statement makes the program unstructured, thus it reduces the
understandability of the program and also debugging becomes difficult.

DEPSTAR-IT PAGE | 42
IT451 - Software Engineering 20DIT092

JUSTIFY WHICH SOFTWARE QUALITY STANDARDS & TESTING TOOL


WILL BE SUITABLE FOR YOUR SGP PROJECT.

1. Testim – Best scalable A I-powered test automatio n

Testim is a low -code tool with a modern, intuitive UI. Tests are cre ated with a
Chrome extension that records a user’s actions. Tests can be edited in the
Testim visual editor to rearrange steps, create reusable groups that are shared
across tests, add assertions or code -like functions, including loops, and
conditions.

Cr oss -browser tests can be initiated by the built -in scheduler or from a CI action.
Testim integrates with all significant CIs. Testim’s test status feature enables
users to treat test failures differently as they run in the CI (stop the build, pass the
build with info only). Testim integrates with popular version control systems for
code/test branch synchronization and collaboration and bug tracking tools.

View test results from the dashboard that shows the last ten runs for each test. Failures can
be quickly diagnosed with failed step indicators and before/after screenshots, parsed
consoles, and network logs. Testim even aggregates failure types to help triage test run
results.
Testim’s biggest value driver stems from the AI-powered locators that keep tests stable,
reducing maintenance costs, and customer case studies indicate fast authoring and root cause
features also generate time savings.

DEPSTAR-IT PAGE | 43
IT451 - Software Engineering 20DIT092

Testim is free for up to 1000 runs/month. Higher-level plans offer customized pricing upon
request.

Software Testing Tools Comparison Criteria


What are we looking for when we compare software for review? Here’s a summary of my
evaluation criteria:
1. User Interface (UI): Is it clean and attractive? Does it look and work like the modern
software? Is item placement intuitive, even for low-tech individuals?
2. Usability: Is it easy to learn and master? Does the company offer good tech support,
user support, tutorials, and training? Is there an online community/forum around the
product?
3. Features & Functionality:
a. Range of devices/browsers available for testing – Can the software test across
different OSs, browsers, and mobile devices? Does it have integration testing
tools?
b. Diverse programming language – Can you use a variety of the most popular
programming languages with the testing tool?
c. Processing Power – Does the tool have decent processing power across different
devices? Is optimal processing accessible?
d. Reporting – Is reporting output detailed, readable, and customizable?
4. Integrations: Is it easy to connect with other tools? Any pre-built integrations? Can
you import objectives and goals designed in other software?
5. Value for $: How appropriate is the price for the features, capabilities, and use case?
Is pricing clear, transparent, and flexible?

DEPSTAR-IT PAGE | 44
IT451 - Software Engineering 20DIT092

PRACTICAL-8
AIM:- List at least 5 online or offline Software Maintenance tools & prepare the detail
case study on “VLC Media Player” Maintenance document as a VLC Media Player
Developer.

ONLINE OR OFFLINE S/W MAINTENANCE TOOLS:

1. File comparator:
 Compares two files or systems and maintains the record of the differences in the files.
In addition, it determines whether the two files or the systems are identical.

2. Compiler and linker:


 Compilers are used to check syntax errors and, in some cases, locate the type of errors.
When the code is compiled, the linker is used to link the code with other components,
which are required for the program execution. Linkers sometimes are used to track
the version numbers of the components so that appropriate versions are linked
together.

3. Debugger:
 Allows tracing the logic of the program and examines the contents of the registers and
memory areas.

4. Cross-reference generator:
 Assures that the changes in code are in compliance with the existing code. When a
change to a requirement is requested, this tool enables to know which other
requirements, design, and code components will be affected.

5. Static code analyzer:


 Measures information about the code attributes such as the number of lines of code,
number of spanning paths, and so on. This can be calculated whether new versions of
the system are developed.

DEPSTAR-IT PAGE | 45
IT451 - Software Engineering 20DIT092

PRACTICAL-9
AIM:- Prepare the detailed case study on Puppet DevOps tool in the area of cloud
business application.

ABSTRACT:
Puppet is a management that manages infrastructure physical as well as virtual
machines. It is an open – source software configuration developed by Ruby. The one who
wants to know Puppet must have knowledge of system administration, infrastructure and
network protocol communication. One should know how to command on Ruby script
writing and the system in order to use Puppet.

WHAT IS DEVOPS ?
DevOps is a way to release better software. It is not just technical tools or workflows.
DevOps is also a cultural practice. DevOps produces better software, faster, by aligning
development, staging, and deployment. DevOps engineers usually have a more
comprehensive range of functions, and they connect all the phases into the whole by
applying process automation. They gather code, describe infrastructure, deploy testing
environments promptly, and quickly update production without losing quality.

WHAT IS PUPPET?
Puppet is developed by Puppet Labs to automate infrastructure management and
configuration. Puppet is a very powerful tool which helps in the concept of Infrastructure as
code. Puppet is a cross-platform client-server-based application used for configuration
management. It handles software configurations on multiple servers. There are two versions
available. One is open-source, the other is a commercial version. It works on both Linux and
Windows platforms. It uses a declarative approach to automate updates, installations, and
other tasks.

DEPSTAR-IT PAGE | 46
IT451 - Software Engineering 20DIT092

Puppet is one of the great DevOps programs for managing multiple servers.

Puppet – Workflow:-
Puppet uses the following workflow to apply configuration on the system.

1. Puppet Master
Puppet Master is mechanism which handles all the configuration. And this applies the
configuration to nodes using the Puppet agent.

DEPSTAR-IT PAGE | 47
IT451 - Software Engineering 20DIT092

2. Puppet Agent
Puppet Agents are managed by the Puppet master. They have the Puppet agent daemon
service running inside them.

3. Config Repository
This is the repo where all nodes and server related configurations are saved and pulled when
required.

4. Facts
Facts are the details related to the master machine. which are basically used for analysing
the current status of any node. On the basis offacts all changes are done on any target
machine. There are so many pre-defined and custom facts in Puppet.

5. Catalog
All the configuration which are written in Puppet are 1st converted into a compiled format
called catalog and later those catalogs are applied on the target machine.

6. Puppet Installation
Puppet works on the client server architecture, where we call the server as the Puppet master
and the client as the Puppet node. This setup is achieved by installing Puppet on both the
client and well as on all the server machines.

7. Prerequisites
Factor is the only pre-requisite.

Installing Puppet and Facter Using Ruby Gem


# Installing Facter
$ wget http://puppetlabs.com/download s/gems/facter-1.5.7.gem
$ sudo gem install facter- 1.5.7.gem
# Installing Puppet
$ wget http://puppetlabs.com/download s/gems/puppet-0.25.1.gem
$ sudo gem install puppet- 0.25.1.gem

DEPSTAR-IT PAGE | 48
IT451 - Software Engineering 20DIT092

DEPSTAR-IT PAGE | 49
IT451 - Software Engineering 20DIT092

PRACTICAL-10
AIM:- Prepare the detailed case study on Design Thinking methodology in the area of
Mobile application development (Android or iOS).

WHAT IS DESIGN THINKING?


Design thinking is a method used by designers in ideation as well as mobile app
development. It is very useful when complex problem is given by client. It also helps in
tackling problems which are unknown. Design Thinking is not only limited to IT field it also
helpful in Engineering, medicine, business, architecture, sports, research, etc.

DESIGN THINKING PROCESS

 Research: Research the requirements of the users or target users.


 Define: Define and understand the problems using research data.
 Ideation: Find the solution for defined problems and ideas.
 Prototype: Develop a prototype for solution.
 Testing: Test the prototype to check that whether it is developed as per the
requirements or not.
These 5 stages are not always sequential, they can occur simultaneously as well as
repetitively.

DEPSTAR-IT PAGE | 50
IT451 - Software Engineering 20DIT092

IMPORTANCE OF DESIGN THINKING


 As Design Thinking has a human-centred approach, it focuses on the end-users and
how to make the user experience better and more fulfilling.
 Since it involves multidisciplinary teams, the collective advantage of wisdom,
expertise and experience is available while creating solutions.
 It also involves finding solutions in an unconventional way. So, while solving real
problems this creates & delivers value to the end-users.
 Going to the market with a MVP (minimum viable product) is totally perfect for
design driven firms. In such cases, they learn from the feedback of users, incorporate
the same in their build and release an upgraded version of the product. E.g. Facebook,
Instagram, WhatsApp and the likes.
 It helps create successful brands and generate ROI from these brands.

BENEFITS OF USING DESIGN THINKING IN MOBILE APP DEVELOPMENT


 Increase in sales: If the UX for end-user is seamless, the end-user will repeatedly use
your application. This repeated use suggests brand loyalty which can further result in
increase in sales

DEPSTAR-IT PAGE | 51

You might also like