SE notes
SE notes
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?
DEPSTAR-IT PAGE | 1
IT451 - Software Engineering 20DIT092
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.
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
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
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.
DEPSTAR-IT PAGE | 8
IT451 - Software Engineering 20DIT092
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.
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.
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
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.
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.
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
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
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
Prepared by 20dit092
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.5 References
Readers can take reference from websitewww.made-in-china.com and www.chinavasion.com.
2. Overall Description
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.
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.
DEPSTAR-IT PAGE | 24
IT451 - Software Engineering 20DIT092
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.
DEPSTAR-IT PAGE | 25
IT451 - Software Engineering 20DIT092
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.
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.
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
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.
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?
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.
DEPSTAR-IT PAGE | 36
IT451 - Software Engineering 20DIT092
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
The term Test Case is used in the manual testing The term Test Script is used in automation
environment. testing environment.
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.
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.
DEPSTAR-IT PAGE | 40
IT451 - Software Engineering 20DIT092
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
DEPSTAR-IT PAGE | 42
IT451 - Software Engineering 20DIT092
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.
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.
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.
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.
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.
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).
DEPSTAR-IT PAGE | 50
IT451 - Software Engineering 20DIT092
DEPSTAR-IT PAGE | 51