Professional Documents
Culture Documents
Lab Report
Of
Session 2019-2020
I.E.T.,B.U.,Jhansi I.E.T.,B.U.,Jhansi
CONTENTS
RESULT
Various types of software characteristics are studied.
Practical – 02
AIM:-
To study about the various kinds of application of various software.
THEORY:-
There are various kind of softwares and each have their own uses.But mainly
there are 3 categories which is further subcategories.
1.SYSTEM SOFTWARE
System software is a type of computer program that is designed to run a
computer’s hardware and application programs. If we think of the computer
system as a layered model, the system software is the interface between the
hardware and user applications.
It is a software that provides plateform to other softwares,Some of the are
operating system , disk formatting softwares , computer language translators
,compiler etc.
Features:-
1.Closeness to the system.
2.Fast speed.
3.Different to manipulate.
4.Written in low-level language.
5.Different to design.
1.1EMBEDDED SOFTWARES
Embedded software is computer software, written to control machines or
devices that are not typically thought of as computers, commonly known
as embedded systems. It is typically specialized for the particular hardware that it
runs on and has time and memory constraints. This term is sometimes used
interchangeably with firmware.
2.APPLICATION SOFTWARE
These are the basic softwares used to run to accomplish a particular action and
task .These are dedicated softwares designed to perform simple and single task.
RESULT
Various types of softwares applications and its examples are studied.
Practical:-03
AIM:-
To study various software myths.
THEORY:-
Some clients believe that if developers are out of their sight, they‟re
unmotivated, uncontrollable, and unaccountable. This is hardly true,
having modern project management practices, excellent communication
opportunities, and project management systems.
This myth is the opposite of the previous. Some clients believe that a brief
list of generic requirements is enough to start development: details can
be added in due course. Some misinterpret Agile as “no more planning
and no more documentation.” Others equate changing things to changing
a few lines of code.
Myth IV: There is a silver bullet technology/methodology
People that believe in this myth have many reasons for it. For example,
people outside the IT industry think that anyone can test software.
However, only QA experts understand the overall workings of the
software, what the dependencies are, and the impacts of one module on
another. Sometimes clients give up testing arguing that it‟s time-
consuming.
It‟s an inherently false belief. Nobody knows what „perfect‟ looks like till
people start using the product. It‟s better to build a Minimum Viable
Product (MVP) with the essential functionality rather than require (and
wait for) the whole nine yards from the developers.
The idea sounds convenient, but software products rather resemble living
organisms: they have their life cycles and are subject to change. Markets,
businesses, and technologies are evolving rapidly. End-users increasingly
demand functionalities and improvements.
THEORY :-
In software projects , there are many risks given as below :
(1). Inherent Schedule Flows.
Software development given the intangible nature and uniqueness of software , is
inherently difficulty to estimate and schedule.
(2). Requirement Inflation
As the project progress more and more features that were not identified at the
beginning of the project emerge that threaten estimated and timelines.
RESULT
Various kinds of risks in a software Projects are studied.
Practical -05
AIM:-
To study about Risk Assessment.
THEORY:-
The risk assessment process is a careful examination of what
could cause harm and what could be harmed and how. It will
help you to determine what risk control measures are needed
and whether you are doing enough
There are three types of risk assessments, baseline, issue-
based and continuous risk assessments.
Baseline risk assessments:
The baseline risk assessment is done to determine the risk for
the first time, i.e. to establish a broad-based risk profile.
Depending on the results of the baseline risk assessment
specific aspects or issues will be highlighted. The baseline risk
assessment must be reviewed on regular intervals to re-
establish the baseline profile as to minimize the risks in the
organization.
Issue-based risk assessments:
This is when baseline risk assessments are assessed in far
more detail using the appropriate issue-based risk assessment
techniques such as HAZOP, FMEA, Fault Tree Analysis, etc.
An issue-based risk assessment will be performed due to
highlighted aspects or issues, new processes, new machines or
the risk assessments in an organization.
Continuous risk assessments:
These risk assessments are part of all forms formal and
informal inspections and observations that take place daily or
on regular intervals.
.
Research risks:
Typical risks that need to be considered as part of research
ethics are:
Social risks: disclosures that could affect participants
standing in the community, in their family, and their job.
Legal risks: activities that could result in the participant,
researchers and / or University committing an offence;
activities that might lead to a participant disclosing criminal
activity to a researcher which would necessitate reporting to
enforcement authorities; activities that could result in a civil
claim for compensation.
Economic harm: financial harm to participant, researcher
and / or University through disclosure or other event.
Reputational risk: damage to public perception of University
or the University/researchers’ reputation in the eyes of
funders, the research community and / or the general public.
Safeguarding risks: Risk to young people, vulnerable
adults and / or researcher from improper behaviour, abuse or
exploitation. Risk to researcher of being in a comprising
situation, in which there might be accusations of
improper behaviour.
Health and safety risks: risks of harm to health, physical
injury or psychological harm to participants or the
researcher.
RESULT
Various kinds of risk assessments in a software Projects are studied.
Practical -06
AIM:-
To study about Risk mitigation (RMMM).
THEORY:-
Risk analysis support the project team in constructing a strategy to deal
with risks.
RMMM Plan:
c) Risk Management:-
Risk management is the process of identifying, assessing and controlling
threats to an organization's capital and earnings. These threats, or risks,
could stem from a wide variety of sources, including financial
uncertainty, legal liabilities, strategic management errors, accidents and
natural disasters. IT security threats and data-related risks, and the risk
management strategies to alleviate them, have become a top priority for
digitized companies.
As a result, a risk management plan increasingly includes companies'
processes for identifying and controlling threats to its digital assets,
including proprietary corporate data, a customer's personally
identifiable information and intellectual property.
Risk Management Process:-
The process should create value for the organization.
It should be an integral part of the overall organizational process.
It should factor into the company's overall decision-making process.
It must explicitly address any uncertainty.
It should be systematic and structured.
It should be based on the best available information.
It should be tailored to the project.
It must take into account human factors, including potential errors.
It should be transparent and all-inclusive.
It should be adaptable to change.
RESULT
Various kinds of risk mitigation (RMMM) in a software Projects are
studied.
Practical -07
AIM:-
To study about requirement
specification.
THEORY:-
SRS (Software Requirement Specification) is a document created by
system analyst after the requirements are collected from various
stakeholders.
SRS defines how the intended software will interact with hardware,
external interfaces, speed of operation, response time of system,
portability of software across various platforms, maintainability, speed
of recovery after crashing, Security, Quality, Limitations etc.
The requirements received from client are written in natural language.
It is the responsibility of system analyst to document the requirements
in technical language so that they can be comprehended and useful by
the software development team.
SRS should come up with following features:
Clear
Correct
Consistent
Coherent
Comprehensible
Modifiable
Verifiable
Prioritized
Unambiguous
Traceable
Credible source
Functional Requirements:
Requirements, which are related to functional aspect of software fall
into this category.
They define functions and functionality within and from the software
system.
Examples -
Security
Logging
Storage
Configuration
Performance
Cost
Interoperability
Flexibility
Disaster recovery
Accessibility
easy to operate
quick in response
effectively handling operational errors
providing simple yet consistent user interface
This section will outline any design constraints that have been imposed
on the design of the system by the customer, thereby removing certain
options from being considered by the developers. Also, this section
will contain any assumptions that have been made by the requirements
engineering team when gathering and analyzing the requirements. If
any of the assumptions are found to be false, the system requirements
specification would need to be re-evaluated to make sure that the
documented requirements are still valid.
RESULT
Various kinds of software requirement specifications in a software
Projects are studied.
Practical – 08
AIM:-
To study about Requirement Engineering.
THEORY:-
Requirement engineering processes have been used for many years in software development. The
processes consist of four stages namely elicitation, analysis and negotiation, specification, and
validation. The appropriate use of the different stages for a given project, and tailoring the stages to
a specific requirement has been a challenge since requirement engineering varies from organization
to organization. Nowadays, more than ever, software development projects are geared towards
failures due to poor requirements. As resolution, solutions have been proposed to overcome the
difficulties encountered and to bridge the gaps resulting in enhanced requirement engineering and
potentially much better software.
The Requirements Engineering Specialist Group (RESG) of the British Computer Society defines
requirements engineering as “…a key activity in the development of software systems and is
concerned with the identification of the goals of stakeholders and their elaboration into precise
statements of desired services and behaviour.” [18] Requirement Engineering is one of the most
important tasks in software development. Requirements are the foundation of software and
requirement engineers come across numerous challenges to develop successful software [10]. Many
problems arise in software development due to wrongly defined requirements [5] which are:
Schedule slippage
Cost overruns
A. Requirement Elicitation
Requirements elicitation can be broken down into the activities of fact-finding, information
gathering, and integration [6]. Research has shown that the potential impact of poorly
formulated requirements is substantial. In a previous research, Boehm suggested that
requirements, specification and design errors are the most numerous in a system, averaging
64% compared to 36% for coding errors [6]. Classification of key requirement elicitation
challenges .
1) Problems of scope: The boundary of the system is ill-defined whereby unnecessary information
may be given, or necessary information ignored. Huzooree et al., International Journal of Advanced
Research in Computer Science and Software Engineering
3) Requirement volatility: Requirements evolve over time, either because of changing needs or
because of changing perceptions by the stakeholders. As a consequence, stakeholder expectations
might go unexpressed and unfulfilled.
4) Identification of stakeholder: Potential stakeholders need to be identified since they are directly
or indirectly affected by each phase of the project.
1) Vague requirements. Vague requirement is the great bugaboo in software requirement and can
have several meanings, incomplete or not sufficiently well defined. Consequently, software
development can diverged from real features and lead to expensive rework.
2) Time constraints. Due to lack of time to deliver the software, requirement engineers quickly
analyse the requirements and proceed to development under schedule pressure.
4) Skill shortage. Due to lack of skills, requirement engineers fail to analyse and negotiate conflicting
requirements.
5) Risk assessment. Risks that can cause project failures are analysed and mitigating strategies are
evaluated. Due to lack of time, risks assessment are often skipped or scheduled for later.
C. Requirement Specification
Requirements and specifications are very important components in software development. When
requirements are clarified and documented, the corresponding specifications emerge commonly
known as the SRS (Software Requirement Specification) document.
1) Incorrect requirements. Change is ongoing during software development and failure to update the
requirement document often leads incorrect requirement.
2) Requirement maintenance. Requirements inevitably change over time; therefore need to be
maintained continuously through techniques such as software configuration management. Failure to
do so will result in different versions of requirement documents.
3) Requirement definition. Defining requirements is the only process to define the meaning of the
software developed. Improper requirement definitions will lead to ambiguity in the software
development process.
D. Requirement Validation
Validating requirements means ensuring that (1) the set of requirements is correct, complete, and
consistent, (2) a model that satisfies the requirements can be created, and (3) a real-world solution
can be built and tested to prove that it satisfies the requirements.
1) Incomplete and ambiguous requirements. Software requirements tend to suffer from uncertainty
thus leading to incomplete descriptions of the requirement.
2) Inconsistent requirements. Often, requirements engineers fail to write the requirements correctly
leading to inconsistent requirements. One apparent reason is the lack of training of requirements
engineers.
3) Unverifiable test results. A major cause of unverifiable test results is the use of ambiguous terms
in the requirements since they are subjective to interpretation.
RESULT
Various requirements of engineering are studied.
Practical – 09
AIM:-
To study about System Modeling.
THEORY:-
System modeling is the process of developing abstract models of a system, with each
model presenting a different view or perspective of that system. It is about representing a
system using some kind of graphical notation, which is now almost always based on
notations in the Unified Modeling Language (UML). Models help the analyst to
understand the functionality of the system; they are used to communicate with customers.
Models can explain the system from different perspectives:
Context models are used to illustrate the operational context of a system - they
show what lies outside the system boundaries. Social and organizational concerns
may affect the decision on where to position system boundaries. Architectural
models show the system and its relationship with other systems.
The example below shows a UML activity diagram.
Interaction models
Types of interactions that can be represented in a model:
Use cases were developed originally to support requirements elicitation and now
incorporated into the UML. Each use case represents a discrete task that involves external
interaction with a system. Actors in a use case may be people or other systems. Use cases
can be represented using a UML use case diagram and in a more detailed textual/tabular
format.
Structural models
Structural models of software display the organization of a system in terms of the
components that make up that system and their relationships. Structural models may
be static models, which show the structure of the system design, or dynamic models,
which show the organization of the system when it is executing. You create structural
models of a system when you are discussing and designing the system architecture.
UML class diagrams are used when developing an object-oriented system model to show
the classes in a system and the associations between these classes. An object class can be
thought of as a general definition of one kind of system object. An association is a link
between classes that indicates that there is some relationship between these classes.
Behavioral models
Behavioral models are models of the dynamic behavior of a system as it is executing.
They show what happens or what is supposed to happen when a system responds to a
stimulus from its environment. Two types of stimuli:
Many business systems are data-processing systems that are primarily driven by data. They
are controlled by the data input to the system, with relatively little external event
processing. Data-driven models show the sequence of actions involved in processing
input data and generating an associated output.
THEORY:-
The architecture of a system describes its major components, their relationships
(structures), and how they interact with each other. Software architecture and
design includes several contributory factors such as Business strategy, quality
attributes, human dynamics, design, and IT environment.
We can segregate Software Architecture and Design into two distinct phases:
Software Architecture and Software Design. In Architecture, nonfunctional
decisions are cast and separated by the functional requirements. In Design,
functional requirements are accomplished.
Architecture serves as a blueprint for a system. It provides an abstraction to manage
the system complexity and establish a communication and coordination mechanism
among components.
Goals of Architecture
The primary goal of the architecture is to identify requirements that affect the
structure of the application. A well-laid architecture reduces the business risks
associated with building a technical solution and builds a bridge between business
and technical requirements.
Some of the other goals are as follows −
Expose the structure of the system, but hide its implementation details.
Realize all the use-cases and scenarios.
Try to address the requirements of various stakeholders.
Handle both functional and quality requirements.
Reduce the goal of ownership and improve the organization’s market
position.
RESULT
Architecture of analysis has been studied.
Practical – 11
AIM:-
To study about Software Design.
THEORY:-
Design is a meaningful engineering representation of something that is to be built.
It is essential to develop a design of a system before writing any software that will be
used to control the system or to interact with it. Designing the software is probably
the hardest part of any software. Producing good software designs requires a
considerable amount of practice, with a great deal of feedback on the quality of the
designs with the resulting software products influencing the design of the next
software system.
Following are some types of patterns that seem to repeatedly occur in software
development :
1. A menu-driven system, where the user must pass through several steps in a
hierarchy in order to perform his or her work. The menus may be of the pull-down
type such as is common on personal computers or may be entirely text based.
2. An event-driven system, where the user must select steps in order to perform his
or her work. The steps need not be taken in a hierarchical order. This pattern is most
commonly with control of concurrent processes where actions may be repeated
indefinitely, in contrast to pattern 3rd. It is also typical of a user interface that is
guided by selection of options from both menus and combinations of keystrokes,
such as in menus that may pop-up in response to user requests. In any case, there
is less of a hierarchy than in the previous pattern.
3. A system in which the actions taken depend on one of a small number of ―states‖
and a small set of optional actions that can be taken for each state. The optional
action taken depends on both the state and the value of an input ―token.‖ In this
pattern, the tokens are usually presented as a stream. Once a token is processed, it
is removed from the input stream.
4. A system in which a sequence of input tokens (usually in text format) is
processed, one token at a time. This pattern differs from the previous pattern in that
the decision about which action to take may depend on more information than is
available from just the pair consisting of the state and the input token. In this pattern,
the tokens may still remain in the input stream after being processed.
5. A system in which a large amount of information is searched for one or more
specific pieces of information. The searches may occur once or many times.
6. A system that can be used in a variety of applications but needs adjustments to
work properly in new settings.
7. A system in which everything is primarily guided by an algorithm, rather than
depending primarily on data.
8. A system that is distributed, with many relatively independent computational
actions taking place. Some of the computational actions may communicate with
other computational actions.
MODULARITY:
In software engineering, modularity refers to the extent to which a software/Web
application may be divided into smaller modules. Software modularity indicates that
the number of application modules are capable of serving a specified business
domain.
Modularity is successful because developers use prewritten code, which saves
resources. Overall, modularity provides greater software development manageability.
STRATEGY OF DESIGN:
There are many strategies or techniques for performing system design. They are:
1. Bottom-up approach:
The design starts with the lowest level components and subsystems.
By using these components, the next immediate higher level components and
subsystems are created or composed. The process is continued till all the
components and subsystems are composed into a single component, which is
considered as the complete system. The amount of abstraction grows high as the
design moves to more high levels.
By using the basic information existing system, when a new system needs to be
created, the bottom up strategy suits the purpose.
2. Top-down approach:
Each system is divided into several subsystems and components.
Each of the subsystem is further divided into set of subsystems and
components. This process of division facilitates in forming a system hierarchy
structure. The complete software system is considered as a single entity and in
relation to the characteristics, the system is split into sub-system and
component. The same is done with each of the sub-system.
This process is continued until the lowest level of the system is reached. The
design is started initially by defining the system as a whole and then keeps on
adding definitions of the subsystems and components. When all the definitions
are combined together, it turns out to be a complete system.
For the solutions of the software need to be developed from the ground level,
top-down design best suits the purpose.
3. Hybrid Design:
It is a combination of both the top – down and bottom – up design
strategies. In this we can reuse the modules.
2.Data Dictionaries:
Data dictionaries are simply repositories to store information about all
data items defined in DFDs. At the requirement stage, data dictionaries
contains data items. Data dictionaries include Name of the item, Aliases (Other
names for items), Description / purpose, Related data items, Range of values,
Data structure definition / form.
3.Structure Charts:
It is the hierarchical representation of system which partitions the
system into black boxes (functionality is known to users but inner details are
unknown). Components are read from top to bottom and left to right. When a
module calls another, it views the called module as black box, passing required
parameters and receiving results.
Pseudo Code:
Pseudo Code is system description in short English like phrases
describing the function. It use keyword and indentation. Pseudo codes are used
as replacement for flow charts. It decreases the amount of documentation
required.
DESIGN REVIEWS:
A major goal of a software manager is to predict risk in a software development
project. He or she would like to minimize risks entirely. Design reviews have much in
common with requirements reviews. They are extremely important to the success of
a project. They require considerable planning, and a large expenditure of time and
resources. For simplicity, we will only discuss design reviews that take place at a
single meeting location with all stakeholders present. A checklist for a design review
is given below:-
1. The presentation should be rehearsed.
2. The time of the presentation should fall within allotted limits.
3. Sufficient time should be available for questions.
4. People who can answer technical questions should be in attendance.
5. All slides, transparencies, and multimedia materials must be checked for
accuracy.
6. All slides, transparencies, and multimedia materials must be checked for
spelling.
7. Paper copies of slides, transparencies, and multimedia materials should be
available to all participants.
8. Someone must verify that the meeting room has all necessary equipment:
microphones, overhead projector, slide projector, videotape player and
monitor, computer-monitor hookup, etc.
9. An attendance list with names, addresses, phone numbers, and affiliations
must be passed around, and all attendees must sign it.
RESULT
The software design has been studied.
Practical – 12
AIM:-
To study about various kinds of testing techniques.
THEORY:-
Testing is a process of executing a program with the aim of finding error. 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.
Functional Testing:
2. Integration testing: After integrating the modules, you need to see if the
combined modules work together or not. This type of testing is known as integration
testing. You need to perform fewer integration tests than unit tests.
5. Black box testing: Performed by the QA team of a company, black box testing
is a testing technique that involves the checking of the application’s functionality
without having any technical knowledge of the application, like the knowledge of the
code’s logic, how the code works, knowledge of the internal structure, etc.
6. White box testing: Performed by the development team, white box testing is a
testing method that requires a good understanding of the application’s code. It
requires great knowledge of the app’s internal logic.
7. Acceptance testing: The client who will purchase your software will perform
acceptance testing (also known as User Acceptance Testing) to see if the software
can be accepted or not by checking whether your software meets all the client’s
requirements and preferences. If your software doesn’t meet all the requirements or
if your client doesn’t like something in the app, they may request you to make
changes before accepting the project.
7. User Interface Testing: User interface testing involves the testing of the
application’s user interface. The aim of UI tests is to check whether the user
interfaces have been developed according to what is described in the requirements
specifications document.
8. Smoke testing
9. Sanity testing
Non-functional Testing
3. Beta testing: As said earlier, beta testing takes place after alpha testing. Beta
testing is done before the launch of the product. It is carried out in a real user
environment by a limited number of actual customers or users, in order to be certain
that the software is completely error-free and it functions smoothly. After collecting
feedback and constructive criticism from those users, some changes are made to
make the software better.
4. Ad-hoc testing: As the name suggests, ad-hoc testing is a kind of testing that is
performed in an ad-hoc manner, without using any test cases, plans, documentation,
or systems. Unlike all other types of testing, this kind of testing is not carried out in a
systematic manner.
9. Load testing: Load testing is one kind of performance testing that tests how
much load a system can take before the software performance begins to degrade.
By running load tests, we can know the capacity of taking load of a system.
10. Recovery testing: Recovery testing involves the checking of whether the
application can recover from crashes and how well it recovers. In this kind of tests,
testers observe how well the software can come back to the normal flow of
execution. Crashes can happen anytime. Even if your software is of exceptional
quality, crashes may happen. You don’t know when they may take place and annoy
the users.
11. Agile testing: Carried out by the QA team, Agile testing is a type of testing that
is conducted according to the rules of agile methodology. This kind of testing is done
from the actual customers’ viewpoint.
12. API testing: Just like unit testing, API testing is also a code-level testing type.
The basic difference between unit testing and API testing is that unit testing is
performed by the development team whereas API testing is handled by the QA team.
13. Security testing: Security tests are performed to ensure the security of your
application, in order that security breaches can be prevented. Security experts run
this kind of tests to see how much your software is secure from attacks and to find
security issues so that the app’s security can be strengthened.
15. Scalability testing: Scalability testing verifies whether the software is scalable
or not. In other words, it checks if your app performs well when the number of users,
amount of data, or the number of transactions increases significantly. A software
application that is not scalable may cause great business loss.
16. Reliability testing: Reliability testing is a type of software testing that verifies if
the software is reliable or not. In other words, it checks whether the software runs
error-free and that one can rely on it.
RESULT
The various kinds of testing has been studied.
Practical – 13
AIM:-
To study about Object Oriented analysis and design.
THEORY:-
It’s a structured method for analyzing, designing a system by applying the object-
orientated concepts, and develop a set of graphical system models during the
development life cycle of the software.
The software life cycle is typically divided up into stages going from abstract
descriptions of the problem to designs then to code and testing and finally to
deployment. The earliest stages of this process are analysis (requirements) and
design. The distinction between analysis and design is often described as ―what Vs
how‖.
In analysis developers work with users and domain experts to define what the
totally ignored at this phase. The goal of the analysis phase is to create a model of
done via use cases and definition of the most important objects using conceptual
model.
The design phase refines the analysis model and applies the needed technology and
behavior, and interactions. The design model should have all the details required so
that programmers can implement the design in code.
Object-Oriented Analysis
Object-Oriented Design
The analysis phase identifies the objects, their relationship, and behavior using the
conceptual model (a definition for the objects).
While in design phase, we describe these objects (by creating class diagram from
In addition to applying the software design principles and patterns which will be
covered in later tutorials.
analysis. But, analysis and design may occur in parallel, and the results of one
activity can be used by the other.
where you get to be really specific about object-oriented principles like inheritance
and polymorphism.
RESULT