SE Sem 5 Imp
SE Sem 5 Imp
It includes checking documents, design, It includes testing and validating the actual
codes and programs. product.
Verification is the static testing. Validation is the dynamic testing.
It does not include the execution of the It includes the execution of the code.
code.
Methods used in verification are reviews, Methods used in validation are Black Box
walkthroughs, inspections and desk- Testing, White Box Testing and non-
checking. functional testing.
It checks whether the software conforms It checks whether the software meets the
to specifications or not. requirements and expectations of a
customer or not.
It can find the bugs in the early stage of the It can only find the bugs that could not be
development. found by the verification process.
The goal of verification is application and The goal of validation is an actual product.
software architecture and specification.
Quality assurance team does verification. Validation is executed on software code
with the help of testing team.
It comes before validation. It comes after verification.
It consists of checking of documents/files It consists of execution of program and is
and is performed by human. performed by computer.
FTR Walkthrough
A formal technical review is a software It is led by the authors.Author,guide the
quality assurance activity performed by participants through the document according to
software engineers(and others). his or her,thought process to achieve a common
understanding and to gather feedback.
In a review, a work product is examined In a Walkthrough,the producer describes the
for defects by individuals other than the product and asks for comments from the
person who produced it. participants.
A Work Product is any important Walkthroughs are usually used to examine
deliverable created during the source code as opposed to design and
requirements, design, coding, or testing requirements documents. The participants do a
phase of software development. step-by-step, line-by-line simulation of the code.
It is often performed as a peer review A walkthrough is especially useful for,higher-
without management participation. level documents, such as requirement
specifications and architectural,documents.
The FTR is actually a class of reviews Walkthrough is a type of Formal Technical
that includes walkthroughs, Review
inspections,round-robin reviews and
other small group technical
assessments of software
Scrum Kanban
It defines the role of each member of the There is no role assigned to individuals.
Scrum team.
It follows the iterative method. It does not follow the iterative approach
To solve a problem, it breaks it into small It does not break a problem into sub-
tasks and then processes it further. problems.
It is a highly prescriptive approach. It is not much prescriptive as compared to
Scrum.
There is no visualization process to perform There is a visualization process to perform
tasks. tasks.
There are sprints that keep track of the They use task cards to keep track of the
progress of any project. progress of any project.
It is processed in successive sprints to It is used to optimize the task to complete a
complete a task. project.
It is not preferred when resources are It is preferred when tasks and resources
limited. are limited.
Scrum Master is the problem solver in case All the members are allowed to pick a
of a problem. problem and solve it.
The process does not get disturbed if a The flow of work gets disturbed if a team
team member leaves in between a sprint. member leaves in between.
3) Incremental Model
Incremental Model is a process of software development where requirements divided
into multiple standalone modules of the software development cycle. In this model,
each module goes through the requirements, design, implementation and testing
phases. Every subsequent release of the module adds function to the previous release.
The process continues until the complete system achieved.
1. Requirement analysis: In the first phase of the incremental model, the product
analysis expertise identifies the requirements. And the system functional
requirements are understood by the requirement analysis team. To develop the
software under the incremental model, this phase performs a crucial role.
2. Design & Development: In this phase of the Incremental model of SDLC, the
design of the system functionality and the development method are finished with
success. When software develops new practicality, the incremental model uses style
and development phase.
3. Testing: In the incremental model, the testing phase checks the performance of
each existing function as well as additional functionality. In the testing phase, the
various methods are used to test the behavior of each task.
4. Implementation: Implementation phase enables the coding phase of the
development system. It involves the final coding that design in the designing and
development phase and tests the functionality in the testing phase. After
completion of this phase, the number of the product working is enhanced and
upgraded up to the final system product
4) Prototyping Model
The Prototyping Model is one of the most popularly used Software Development Life Cycle
Models (SDLC models). This model is used when the customers do not know the exact project
requirements beforehand. In this model, a prototype of the end product is first developed,
tested, and refined as per customer feedback repeatedly till a final acceptable prototype is
achieved which forms the basis for developing the final product.
Step 5: Refining Prototype: If any feedback is given by the user, then improving the client’s
response to feedback and suggestions, the final system is approved.
Step 6: Implement Product and Maintain: This is the final step in the phase of the
Prototyping Model where the final system is tested and distributed to production, here
program is run regularly to prevent failures.
Application:
1) When there is a budget constraint and risk evaluation is important.
2) For medium to high-risk projects.
3) Long-term project commitment because of potential changes to economic priorities
as the requirements change with time.
4) Customer is not sure of their requirements which is usually the case.
5) Requirements are complex and need evaluation to get clarity.
6) New product line which should be released in phases to get enough customer
feedback.
7) V-Model
V-Model also referred to as the Verification and Validation Model. In this, each phase
of SDLC must complete before the next phase starts. It follows a sequential design
process same as the waterfall model. Testing of the device is planned in parallel with
a corresponding stage of development.
So V-Model contains Verification phases on one side of the Validation phases on the
other side. Verification and Validation process is joined by coding phase in V-shape.
Thus it is known as V-Model.
1. Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed during the
module design phase. These UTPs are executed to eliminate errors at code level
or unit level. A unit is the smallest entity which can independently exist, e.g., a
program module. Unit testing verifies that the smallest entity can function
correctly when isolated from the rest of the codes/ units.
2. Integration Testing: Integration Test Plans are developed during the
Architectural Design Phase. These tests verify that groups created and tested
independently can coexist and communicate among themselves.
3. System Testing: System Tests Plans are developed during System Design
Phase. Unlike Unit and Integration Test Plans, System Tests Plans are composed
by the client?s business team. System Test ensures that expectations from an
application developer are met.
4. Acceptance Testing: Acceptance testing is related to the business requirement
analysis part. It includes testing the software product in user atmosphere.
Acceptance tests reveal the compatibility problems with the different systems,
which is available within the user atmosphere. It conjointly discovers the non-
functional problems like load and performance defects within the real user
atmosphere.
8) Agile Process Model
Agile software development describes an approach to software development under which
requirements and solutions evolve through the collaborative effort of self-organizing and
cross-functional teams and their customers (end users).It advocates adaptive planning,
evolutionary development, early delivery, and continual improvement. and it encourages
rapid and flexible response to change.The term Agile was popularized, in this context, by the
Manifesto for Agile Software Development. The values and principles adopted in this
manifesto were derived from and underpin a broad range of software development
frameworks, including Scrum and Kanban.There is significant subjective evidence that
adopting agile practices and values improves the agility of software professionals, teams
and organizations.
Agile software development values
Based on their combined experience of developing software and helping others do that, the
seventeen signatories to the manifesto proclaimed that they value:
Agility Principle
1) The Manifesto for Agile Software Development is based on twelve principles:
2) Customer satisfaction by early and continuous delivery of valuable software.
3) Welcome changing requirements, even in late development.
4) Working software is delivered frequently (weeks rather than months).
5) Close, daily cooperation between business people and developers.
6) Projects are built around motivated individuals, who should be trusted.
7) Face-to-face conversation is the best form of communication (co-location).
8) Working software is the primary measure of progress.
9) Sustainable development, able to maintain a constant pace.
10) Continuous attention to technical excellence and good design.
11) Simplicity is essential.
12) Best architectures, requirements, and designs emerge from self-organizing teams.
13) Regularly, the team reflects on how to become more effective, and adjusts
accordingly
Advantages of SRS
1) SRS contains the base for agreement among the client and the company who develop
the product as per expectations.
2) A SRS gives a base for verification of the completely developed product.
3) Using high-quality SRS, we can develop high-quality software product.
4) A high-quality SRS decreases the cost of development.
15) Management Spectrum, 3ps (People, Product And Process)
• The management spectrum describes the management of a software project or how
to make a project successful
• Its focus is on the three Pe; People, Product and Process Here, the manager of the
project has to control all these Ps to have a smooth flow in the project progress and
to reach the goal.
• We will see all of those three Pa of management spectrum in detail
1. The People
• People of a project includes from manager to developer, from customer to end user
• But mainly people of a project highlight the developers.
• It is so significant to have highly skilled as well as motivated developers that a PM-
CMM (People Management Capability Maturity Model) is developed by the Software
Engineering Institute to enhance the readiness of software enterprises to handle
more and more robust applications by assisting to attract, grow, motivate, deploy,
and retain the talent necessary for the improvement of their software development
capability.
• Enterprises which attain high levels of maturity in the area of people management
have a great probability of carrying efficient software engineering practices.
2. The Product
• Product is nothing but any software which has to be designed and developed. For
successful development of product there is need to set product objectives and
scope, there must be consideration of substitute solutions, and also identification of
technical and management constraints must be done.
• If there is lack of this information, it is not possible to define reasonable as well as
correct estimates of the cost, an efficient estimation of risk, a practical breakdown of
project tasks or a controllable project schedule which provides a meaningful
indication of progress
3. The Process
1) The objective of FPA is to measure the functionality that the user requests and
receives.
2) The objective of FPA is to measure software development and maintenance
independently of the technology used for implementation.
3) It should be simple enough to minimize the overhead of the measurement process.
Benefits of FPA:
1) FPA is a tool to determine the size of a purchased application package by counting all the
functions included in the package.
2) It is a tool to help users discover the benefit of an application package to their
organization by counting functions that specifically match their requirements.
1) Organic
2) Semidetached
3) Embedded
1. Organic: A development project can be treated of the organic type, if the project
deals with developing a well-understood application program, the size of the
development team is reasonably small, and the team members are experienced in
developing similar methods of projects. Examples of this type of projects are simple
business systems, simple inventory management systems, and data processing
systems.
2. Semidetached: A development project can be treated with semidetached type if
the development consists of a mixture of experienced and inexperienced staff.
Team members may have finite experience in related systems but may be
unfamiliar with some aspects of the order being developed. Example of
Semidetached system includes developing a new operating system (OS), a
Database Management System (DBMS), and complex inventory management
system.
3. Embedded: A development project is treated to be of an embedded type, if the
software being developed is strongly coupled to complex hardware, or if the
stringent regulations on the operational method exist. For Example: ATM, Air Traffic
control. For three product categories, Bohem provides a different set of expression
to predict effort (in a unit of person month)and development time from the size of
19) COHESION
Cohesion define the degree to which components of system are related to each other i.e. it
measures the strength of relationship between two components of system.Good system
design must have high cohesion between the components of system.
Advantages of Cohesion
1. High cohesion among system components results in Better program design.
2. High cohesion components can be easily reused.
3. High cohesion components are more reliable.
Disadvantages of Cohesion
1. Low cohesion components are difficult to maintain
2. Low cohesion components cannot be reused.
3. Low cohesion components are difficult to understand.
4. Low cohesion components are less reliable.
20) COUPLING
Coupling is an indication of strength of interconnection between various components of a
system.Highly coupled components are more dependent on each other whereas low
coupled components are less dependent or almost independent on each other.Good design
always has low coupling between components of system
1)Data coupling:Data coupling occurs between two components of system when they pass
data to each other by parameters using argument list and each element in argument list is
used. A component becomes difficult to maintain if too many parameters are passed.
2)Control coupling:When data are passed between two components and that affects
internal there exists control coupling between those two components.It passes the control
flags between system components.
3)Common coupling:Common coupling is also called as global coupling since in these
coupling components of system communicates with each other by using global
area.Common coupling becomes difficult to track when data in global area is changed.
4)Content coupling:When one component refers to the internals of the other component
then those two components are said to be content coupled.As content coupling is worst
type of coupling it should not be used in designing.
5)External coupling:If two components of system share an externally imposed data format,
communication protocol or device interface then they are said to be externally
coupled.External coupling refers to communication between system components and
external tools or devices
6)Message coupling:Message coupling occurs between two components of system when
those components communicate with each other via message passing.In this coupling
components are independent of each other, thus it is low type coupling.
7) coupling:Stamp coupling occurs between two components of system when data between
them are passed by arguments using a data structure containing elements which may or
may not be used.Stamp coupling is also low type coupling.
Advantages of Coupling
1. Low coupling components do not force ripple effect to other components.
2. Low coupled components can be reused.
3. With low coupling among components, system can built faster.
Disadvantages of Coupling
1. High coupling components are difficult to understand.
2. High coupling components forces change in other components if one component
changes.
3. High coupling slows down the development process.
21) Software Testing
Software testing is a procedure to verify whether the actual results are same as of expected
results. Software testing is performed to provide assurance that the software system does
not contain any defects. Defects means errors which are detected by tester when actual
result of our software module is not identical as expected result. Software testing helps us
to find out whether all user requirements are fulfilled by our software or not. Software
quality depends on; at what extend software full fills user requirements and number of
defects occurred in software .Software testing is used to give assurance that we deliver
quality product to customer. To perform software testing we create test cases and test data.
Test case is collected of actions which applied on our software product to check specific
feature or functionality of it .Collected of test cases is called as test suit
Advantages Of Software Testing:
1. Testing reduces the possibility of software failure by removing errors which leads to
software failure.
2. Testing process removes maximum possible errors from software and helps to
deliver qualitative software to customer.
3. Testing ensures correctness and completeness of software along with quality
• Manual Testing is one of the type of Software Testing in which Tester treat himself as
end user and use every module of application from login module to log out module
to checkapplication behavior according to requirement provided by user
• In manual testing, tester manually runs all the test cases without help of any
automation testing tools.
• Manual Testing in the very basic type of all testing types and supports to search the
bug (error) in the software system. First we do manual testing for any new
application before going for automation testing
Automation Testing
• Automation Testing is a process in which we use automation tools to run our test
cases to find out bugs from our software product.
• The automation software is able to enter test data into the software on which we
perform testing and it also matches the expected and actual results to create test
reports.
• Automation testing requires considerable amount of money and resources such as
employees, testing tools etc. After change in requirement or occurrence of error, we
need to make changes in code and werequire executing same test suite again and
again
• We can record test suite by using test automation tools and re-play it when needed.
22) Unit Testing
Software testing levels are the different stages of the software development lifecycle
conducted.
There are four levels of software testing: Unit >> Integration >> System >> Acceptance.
So Cyclomatic complexity provides the number of such execution independent paths. Thus it
provides a upper bound for number of tests that must be produced because for each
independent path, a test should be conducted to see if it is actually reaching the end point
of the procedure or not.
Cyclomatic Complexity for a flow graph is computed in one of three ways:
1. The numbers of regions of the flow graph correspond to the Cyclomatic complexity. 2.
2.Cyclomatic complexity, V(G), for a flow graph G is defined as
(G) = E - N + 2
where E is the number of flow graph edges and N is the number of flow graph nodes
3.Cyclomatic complexity, V(G), for a graph flow G is also defined as Where P is the number
of predicate nodes contained in the flow graph G.
V(G) = P + 1
Example: Consider the following flow graph.
Region, R = 6
Number of Nodes = 13) Number of edges = 17
Number of Predicate Nodes = 5
Cyclomatic Complexity, V(C)
V(C) = R = 6
Or
V(C) Predicate Nodes + 1
=5+1=6
Or
V(C) = E - N + 2
17-13+2=6
29) Explain software reverse engineering in detail
1. It is a procedure to get system specification by analyzing and understanding the existing
system. This procedure can be reverse software development life cycle model, i.e. go
from maintenance phase to requirement gathering phase.
2. Reverse engineering is the procedure that recognizes an object, a device, or technical
properties of system through analysis of architecture of system, functions and
operations.
3. Consider an existing system has design about which we do not know anything. System
designers perform reverse engineering by analyzing the source code and attempt to get
the design. With the help of design, designer attempt to make conclusion about
specifications of software product.
4. Reverse engineering is a process of analyzing an object to observe how software works
in order to duplicate or add new features in the object.
5. Idea of reverse engineering is invented in older industries and now many times it is used
in computer hardware and software generation.
6. Software reverse engineering includes reversing a machine code of program which is in
the format of the sequence of Os and 1s. It is transformed into the source code.
7. Software reverse engineering is performed to find out the source code of a program
since the source code need to study how the program do specific tasks, to enhance the
performance of a program, to repair a bug i.e. correct an error detected in the program
or to detect unsecure contents from program like virus
Maintenance is important phase for software product which is developed using any SDLC
model such as waterfall, spiral or iterative model etc.
Due to corrective and non corrective software actions, we need to make changes in
Software products.
• Communicate with current staff to decide reasons for turnover (eg, poor working
conditions, low pay, competitive job market).
• Mitigate these reasons that are controllable prior to the project starts. and develop
• After commencement of project, assume there will be occurrence of turnover
techniques to take care of continuity when people leave.
• Organize project teams to widely disperse the information regarding each
development activity
• Define work product standards and set system to assure that all the respective
models and documents are developed in expected time duration.
• Allocate a backup staff for all the critical technologists.
The factors are monitored by the project manager which may give a signal of whether the
risk is becoming more or less likely. In the case when there is high staff turnover, the
common attitude of team members depends upon project pressures, communication
among team members, potential problems with compensation as well as benefits. Besides
monitoring these factors, a project manager has also responsibility to maniter the efficiency
of risk mitigation steps For example, a risk mitigation step which is pointed here is called for
the definition of work product standards and mechanisms to assure that there is no time
delay in development of work products It is responsibility of the project manager to monitor
all the respective work products cautiously to assure that each can stand on its own and
that each conveys data that would be essential if a newcomer were forced to join the
existing software team in their work in the middle of the project. Risk management and
contingency planning considers that there is failure in mitigation efforts and that the risk is
really occurred. Continuing the example, the execution of project is going smoothly and
some team members announce they will be leaving. If there is implementation of
mitigation strategy, backup is on hand, information is well-documented .that and
knowledge has been dispersed across the team. Additionally, one can for the time being
refocus resources land manage the project schedule again) to such functions which are
completely staffed, enabling newcomers whose introduction in the team is necessary to
"get up to speed”.
33) Change Control (Configuration Control)
• Changes occur at all phases in the software lifecycle. Design or implementation changes
may be necessary if requirements change, or when deficiencies are identified in the
design or implementation approach to a stable requirement.
• Testing may uncover defects that require changes in the code or the design and
requirements Changes must be made to the right version of the code, testing must
verify performance of the change and the integrity of the remaining software, and all
associated documentation must be updated to be consistent with the final code.
• A mechanism is needed to process change requests (e.g., discrepancies, failure reports,
requests for new features) from a variety of sources throughout the development
process and during operation and support of the software product.
• This mechanism should extend to a definition of a process to track, evaluate, and
implement change requests into a new version and new release of the software.
• Generally, no single procedure can meet the needs of all levels of change management
and approval levels.
• The minimum activities needed for processing changes include:
1. Defining the information needed for approving the requested change.
2. Identifying the review process and
3. routing of information.
4. Describing the control of the libraries
5. used to process the change.
6. Developing a procedure for implementing each change in the code, the
documentation, and the released software product.
The Formal Technical Review is used while providing training and it is also used as an
example for junior developers to study different ways for software analysis, design, and
development. The Formal Technical Reviews is a class of reviews that contains
walkthroughs, inspections, round- robin reviews and other small technical assessments of
software.Every Formal Technical Review is performed as a meeting.If Formal Technical
Reviews is planned, controlled, and attended in correct way then only it becomes successful
Steps In FTR
The review meeting
Every review meeting should be conducted by considering the following constraints:
Involvement of people: Between 3 to 5 people should be involve in the review. Advance
preparation Advance preparation should occur but it should be very short most 2 hours of
work for each person can be spent in this preparation Short duration: The duration of the
review meeting should be less than two hours Rather than attempting to review the entire
design, walkthrough are conducted for modules small group of modules or for The focus of
the FTI in on work product (a software component to be reviewed). The review meeting is
attended by the review leader, all reviewers and the producer. material are then distributed
to reviewers.The review leader is responsible for evaluating the product for its deadlines.
The copies of product The producer organizes walkthrough" for the product, explaining the
material, while the reviewers raise the issues based on their advance preparation.
The analysis and design process of a user interface is iterative and can be
represented by a spiral model. The analysis and design process of user
interface consists of four framework activities.
1. User, task, environmental analysis, and modeling: Initially, the focus is
based on the profile of users who will interact with the system, i.e.
understanding, skill and knowledge, type of user, etc, based on the user’s
profile users are made into categories. From each category requirements
are gathered. Based on the requirements developer understand how to
develop the interface. Once all the requirements are gathered a detailed
analysis is conducted. In the analysis part, the tasks that the user
performs to establish the goals of the system are identified, described
and elaborated. The analysis of the user environment focuses on the
physical work environment. Among the questions to be asked are:
a. Where will the interface be located physically?
b. Will the user be sitting, standing, or performing other tasks
unrelated to the interface?
c. Does the interface hardware accommodate space, light, or noise
constraints?
d. Are there special human factors considerations driven by
environmental factors?
2. Interface Design: The goal of this phase is to define the set of interface
objects and actions i.e. Control mechanisms that enable the user to
perform desired tasks. Indicate how these control mechanisms affect the
system. Specify the action sequence of tasks and subtasks, also called a
user scenario. Indicate the state of the system when the user performs a
particular task. Always follow the three golden rules stated by Theo
Mandel. Design issues such as response time, command and action
structure, error
a. handling, and help facilities are considered as the design
model is refined. This phase serves as the foundation for the
implementation phase.
3. Interface construction and implementation: The implementation activity
begins with the creation of prototype (model) that enables usage
scenarios to be evaluated. As iterative design process continues a User
Interface toolkit that allows the creation of windows, menus, device
interaction, error messages, commands, and many other elements of an
interactive environment can be used for completing the construction of
an interface.
4. Interface Validation: This phase focuses on testing the interface. The
interface should be in such a way that it should be able to perform tasks
correctly and it should be able to handle a variety of tasks. It should
achieve all the user’s requirements. It should be easy to use and easy to
learn. Users should accept the interface as a useful one in their work.