Software Notes
Software Notes
+
+
++, Difference between Program and Product
It is handled by the
5. program managers. It is handled by product managers.
S.No. Program Product
V 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.
]
]
V-Model - Verification Phases
There are several Verification phases in the V-Model, each of these are explained in detail
below.
Business Requirement Analysis
This is the first phase in the development cycle where the product requirements are
understood from the customer’s perspective. This phase involves detailed communication
with the customer to understand his expectations and exact requirement. This is a very
important activity and needs to be managed well, as most of the customers are not sure about
what exactly they need. The acceptance test design planning is done at this stage as
business requirements can be used as an input for acceptance testing.
System Design
Once you have the clear and detailed product requirements, it is time to design the complete
system. The system design will have the understanding and detailing the complete hardware
and communication setup for the product under development. The system test plan is
developed based on the system design. Doing this at an earlier stage leaves more time for the
actual test execution later.
Architectural Design
Architectural specifications are understood and designed in this phase. Usually more than one
technical approach is proposed and based on the technical and financial feasibility the final
decision is taken. The system design is broken down further into modules taking up different
functionality. This is also referred to as High Level Design (HLD).
The data transfer and communication between the internal modules and with the outside
world (other systems) is clearly understood and defined in this stage. With this information,
integration tests can be designed and documented during this stage.
Module Design
In this phase, the detailed internal design for all the system modules is specified, referred to
as Low Level Design (LLD). It is important that the design is compatible with the other
modules in the system architecture and the other external systems. The unit tests are an
essential part of any development process and helps eliminate the maximum faults and errors
at a very early stage. These unit tests can be designed at this stage based on the internal
module designs.
Coding Phase
The actual coding of the system modules designed in the design phase is taken up in the
Coding phase. The best suitable programming language is decided based on the system and
architectural requirements.
The coding is performed based on the coding guidelines and standards. The code goes
through numerous code reviews and is optimized for best performance before the final build
is checked into the repository.
Validation Phases
The different Validation Phases in a V-Model are explained in detail below.
Unit Testing
Unit tests designed in the module design phase are executed on the code during this
validation phase. Unit testing is the testing at code level and helps eliminate bugs at an early
stage, though all defects cannot be uncovered by unit testing.
Integration Testing
Integration testing is associated with the architectural design phase. Integration tests are
performed to test the coexistence and communication of the internal modules within the
system.
System Testing
System testing is directly associated with the system design phase. System tests check the
entire system functionality and the communication of the system under development with
external systems. Most of the software and hardware compatibility issues can be uncovered
during this system test execution.
Acceptance Testing
Acceptance testing is associated with the business requirement analysis phase and involves
testing the product in user environment. Acceptance tests uncover the compatibility issues
with the other systems available in the user environment. It also discovers the non-functional
issues such as load and performance defects in the actual user environment.
V- Model ─ Application
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.
]
]
V Model :-
The V-model is a type of SDLC model where process executes in a
sequential manner in V-shape. It is also known as Verification and Validation
model. It is based on the association of a testing phase for each
corresponding development stage. Development of each step directly
associated with the testing phase. The next phase starts only after
completion of the previous phase i.e. for each development activity, there is a
testing activity corresponding to it.
Verification: It involves static analysis technique (review) done without
executing code. It is the process of evaluation of the product development
phase to find whether specified requirements meet.
Validation: It involves dynamic analysis technique (functional, non-
functional), testing done by executing code. Validation is the process to
evaluate the software after the completion of the development phase to
determine whether software meets the customer expectations and
requirements.
Requirement Analysis: This phase contains detailed
communication with the customer to understand their requirements
and expectations. This stage is known as Requirement Gathering.
System Design: This phase contains the system design and the
complete hardware and communication setup for developing
product.
Architectural Design: System design is broken down further into
modules taking up different functionalities. The data transfer and
communication between the internal modules and with the outside
world (other systems) is clearly understood.
Module Design: In this phase the system breaks down into small
modules. The detailed design of modules is specified, also known
as Low-Level Design (LLD).
Test Phases:-
Unit Testing: Unit Test Plans are developed during module
design phase. These Unit Test Plans are executed to eliminate
bugs at code or unit level.
Integration testing: After completion of unit testing Integration
testing is performed. In integration testing, the modules are
integrated and the system is tested. Integration testing is performed
on the Architecture design phase. This test verifies the
communication of modules among themselves.
System Testing: System testing test the complete application with
its functionality, inter dependency, and communication.It tests the
functional and non-functional requirements of the developed
application.
User Acceptance Testing (UAT): UAT is performed in a user
environment that resembles the production environment. UAT
verifies that the delivered system meets user’s requirement and
system is ready for use in real world.
Principles of V-Model:
Large to Small: In V-Model, testing is done in a hierarchical
perspective, For example, requirements identified by the project
team, create High-Level Design, and Detailed Design phases of the
project. As each of these phases is completed the requirements,
they are defining become more and more refined and detailed.
Data/Process Integrity: This principle states that the successful
design of any project requires the incorporation and cohesion of
both data and processes. Process elements must be identified at
each and every requirements.
Scalability: This principle states that the V-Model concept has the
flexibility to accommodate any IT project irrespective of its size,
complexity or duration.
Cross Referencing: Direct correlation between requirements and
corresponding testing activity is known as cross-referencing.
Tangible Documentation: This principle states that every project
needs to create a document. This documentation is required and
applied by both the project development team and the
The spiral model is a systems development lifecycle (SDLC) method used
for risk management that combines the iterative development process
model with elements of the Waterfall model. The spiral model is used by
software engineers and is favored for large, expensive and complicated
projects.
When viewed as a diagram, the spiral model looks like a coil with many
loops. The number of loops varies based on each project and is often
designated by the project manager. Each loop of the spiral is a phase in the
software development process.
In order to form a good SRS, here you will see some points which can be
used and should be considered to form a structure of good SRS. These are
as follows : 1. Introduction
(i) Purpose of this document
(ii) Scope of this document
(iii) Overview
2. General description 3. Functional Requirements 4. Interface Requirements
5. Performance Requirements 6. Design Constraints 7. Non-Functional
Attributes 8. Preliminary Schedule and Budget 9. Appendices Software
Requirement Specification (SRS) Format as name suggests, is complete
specification and description of requirements of software that needs to be
fulfilled for successful development of software system. These requirements
can be functional as well as non-functional depending upon type of
requirement. The interaction between different customers and contractor is
done because its necessary to fully understand needs of
What is SRS?
A software requirements specification (SRS) is a description of a software
system to be developed. It lays out functional and non-functional
requirements and may include a set of use cases that describe user
interactions that the software must provide.
The output of requirement engineering is the requirement specification
document (SRD). it can be considered as a contract between the
development team and the customer which can be also used to resolve any
disagreement that may arise in future.
it is the specification for the particular software product , program or set of
programs that perform certain function. it serves a number of purposes
depending upon who is writing it. the srs document must be written in two
phase:
Components of DFD
The Data Flow Diagram has 4 components:
Process Input to output transformation in a system takes place
because of process function. The symbols of a process are
rectangular with rounded corners, oval, rectangle or a circle. The
process is named a short sentence, in one word or a phrase to
express its essence
Data Flow Data flow describes the information transferring between
different parts of the systems. The arrow symbol is the symbol of
data flow. A relatable name should be given to the flow to determine
the information which is being moved. Data flow also represents
material along with information that is being moved. Material shifts
are modeled in systems that are not merely informative. A given
flow should only transfer a single type of information. The direction
of flow is represented by the arrow which can also be bi-directional.
Warehouse The data is stored in the warehouse for later use. Two
horizontal lines represent the symbol of the store. The warehouse is
simply not restricted to being a data file rather it can be anything
like a folder with documents, an optical disc, a filing cabinet. The
data warehouse can be viewed independent of its implementation.
When the data flow from the warehouse it is considered as data
reading and when data flows to the warehouse it is called data
entry or data updation.
Terminator The Terminator is an external entity that stands outside of
the system and communicates with the system. It can be, for
example, organizations like banks, groups of people like customers
or different departments of the same organization, which is not a
part of the model system and is an external entity. Modeled systems
also communicate with terminator.
Goals of UML
A picture is worth a thousand words, this idiom absolutely fits describing UML. Object-
oriented concepts were introduced much earlier than UML. At that point of time, there were
no standard methodologies to organize and consolidate the object-oriented development. It
was then that UML came into picture.
There are a number of goals for developing UML but the most important is to define some
general purpose modeling language, which all modelers can use and it also needs to be made
simple to understand and use.
UML diagrams are not only made for developers but also for business users, common people,
and anybody interested to understand the system. The system can be a software or non-
software system. Thus it must be clear that UML is not a development method rather it
accompanies with processes to make it a successful system.
In conclusion, the goal of UML can be defined as a simple modeling mechanism to model all
possible practical systems in today’s complex environment.
Things
Things are the most important building blocks of UML. Things can be −
Structural
Behavioral
Grouping
Annotational
Structural Things
Structural things define the static part of the model. They represent the physical and
conceptual elements. Following are the brief descriptions of the structural things.
Class − Class represents a set of objects having similar responsibilities.
Interface − Interface defines a set of operations, which specify the responsibility of a class.
Use case −Use case represents a set of actions performed by a system for a specific goal.
Behavioral Things
A behavioral thing consists of the dynamic parts of UML models. Following are the
behavioral things −
Interaction − Interaction is defined as a behavior that consists of a group of messages
exchanged among elements to accomplish a specific task.
State machine − State machine is useful when the state of an object in its life cycle is
important. It defines the sequence of states an object goes through in response to events.
Events are external factors responsible for state change
Grouping Things
Grouping things can be defined as a mechanism to group elements of a UML model
together. There is only one grouping thing available −
Package − Package is the only one grouping thing available for gathering structural and
behavioral things.
Annotational Things
Annotational things can be defined as a mechanism to capture remarks, descriptions, and
comments of UML model elements. Note - It is the only one Annotational thing available. A
note is used to render comments, constraints, etc. of an UML element.
Relationship
Relationship is another most important building block of UML. It shows how the elements
are associated with each other and this association describes the functionality of an
application.
There are four kinds of relationships available.
Dependency
Dependency is a relationship between two things in which change in one element also affects
the other.
Association
Association is basically a set of links that connects the elements of a UML model. It also
describes how many objects are taking part in that relationship.
Generalization
Generalization can be defined as a relationship which connects a specialized element with a
generalized element. It basically describes the inheritance relationship in the world of objects.
Realization
Realization can be defined as a relationship in which two elements are connected. One
element describes some responsibility, which is not implemented and the other one
implements them. This relationship exists in case of interfaces.
the various decision paths that exist while the activity is being executed. We
can depict both sequential processing and concurrent processing of activities
using an activity diagram. They are used in business and process modelling
where their primary use is to depict the dynamic aspects of a system
UML State Machine Diagram
The state machine diagram is also called the Statechart or State Transition diagram,
which shows the order of states underwent by an object within the system. It
captures the software system's behavior. It models the behavior of a class, a
subsystem, a package, and a complete system.
Following are the types of a state machine diagram that are given below:
It blueprints an interactive system that response back to either the internal events or
the external ones. The execution flow from one state to another is represented by a
state machine diagram. It visualizes an object state from its creation to its
termination.
b. Final state: It represents the final state (end) of a system. It is denoted by a filled
circle present within a circle.
d. Transition: A change of control from one state to another due to the occurrence of
some event is termed as a transition. It is represented by an arrow labeled with an
event due to which the change has ensued.
Types of State
The UML consist of three states:
AD
The primary focus of the state machine diagram is to depict the states of a system.
These states are essential while drawing a state transition diagram. The objects,
states, and events due to which the state transition occurs must be acknowledged
before the implementation of a state machine diagram.
Following are the steps that are to be incorporated while drawing a state machine
diagram:
1. A unique and understandable name should be assigned to the state transition that
describes the behavior of the system.
2. Out of multiple objects, only the essential objects are implemented.
3. A proper name should be given to the events and the transitions.
It portrays the changes underwent by an object from the start to the end. It basically
envisions how triggering an event can cause a change within the system.
Initially, the ATM is turned off. After the power supply is turned on, the ATM starts
performing the startup action and enters into the Self Test state. If the test fails, the
ATM will enter into the Out Of Service state, or it will undergo a triggerless
transition to the Idle state. This is the state where the customer waits for the
interaction.
Whenever the customer inserts the bank or credit card in the ATM's card reader, the
ATM state changes from Idle to Serving Customer, the entry action readCard is
performed after entering into Serving Customer state. Since the customer can
cancel the transaction at any instant, so the transition from Serving Customer state
back to the Idle state could be triggered by cancel event.
Sequence Diagram Notations –
Figur
e – a scenario where delete message is used
Self Message – Certain scenarios might arise where the
object needs to send a message to itself. Such messages
are called Self Messages and are represented with a U
shaped arrow. Figure – self
messageFor example – Consider a scenario where the
device wants to access its webcam. Such a scenario is
represented using a self
message.
Figure
– a scenario where a self message is used
Reply Message – Reply messages are used to show the
message being sent from the receiver to the sender. We
represent a return/reply message using an open
arrowhead with a dotted line. The interaction moves
forward only when a reply message is sent by the
receiver. Figure
– reply messageFor example – Consider the scenario
where the device requests a photo from the user. Here the
message which shows the photo being sent is a reply
message.
Figure
– a scenario where a reply message is used
Found Message – A Found message is used to represent
a scenario where an unknown source sends the message.
It is represented using an arrow directed towards a lifeline
from an end point. For example: Consider the scenario of
Fig
ure – a scenario where found message is used
Lost Message – A Lost message is used to represent a
scenario where the recipient is not known to the system. It
is represented using an arrow directed towards an end
point from a lifeline. For example: Consider a scenario
where a warning is
Figure – a sequence diagram for an emotion based music playerThe above
sequence diagram depicts the sequence diagram for an emotion based
music player:
1. Firstly the application is opened by the user.
2. The device then gets access to the web cam.
3. The webcam captures the image of the user.
4. The device uses algorithms to detect the face and predict the
mood.
5. It then requests database for dictionary of possible moods.
6. The mood is retrieved from the database.
7. The mood is displayed to the user.
8. The music is requested from the database.
9. The playlist is generated and finally shown to the user.