Manual 21-22
Manual 21-22
EXPERIMENT NO:1
Name of the Student: -__________________________________________________
Roll No.____________
Objectives:
Outcome:
Background: The software engineer is a key person analyzing the business, identifying
opportunities for improvement, and designing information systems to implement these ideas. It
is important to understand and develop through practice the skills needed to successfully design
and implement new software systems.
Introduction: · In this lab you will practice the software development life cycle (project
management, requirements engineering, systems modeling, software design, prototyping, and
testing) using CASE tools within a team work environment.
Tools Used in the Lab: Software Engineering lab is one of the most challenging of all labs.
Developing a complete software application requires from each of you a good level of
know-how of various tools.
Theory:
methodologies are based on the systems development principles that have served as a foundation
for the creation of the systems development to date which can be either sequential or iterative.
Sequential approach means that the methodology is made up of a series of steps/stages that
follow each other sequentially. The steps are dependent on each. The emphasis of the traditional
development approach is to create ample documentation which serves as a means for
communication and traceability of the design. Documentation also plays a vital role in sharing
knowledge and keeping tacit knowledge within the organisation. There are a variety of
traditional systems development methodologies that can be adopted within the organisation.
They include waterfall, Spiral, V-Model, Rational Unified Process (RUP) and Rapid Application
Development, Prototype Model, Concurrent Model. The traditional methodology is the most
commonly used approach by organisations whereby software development activities are
completed sequentially.
Waterfall Model: The waterfall model (also referred to as systems development life cycle) is the
most popular of the traditional models. This model was originally proposed by Winston W.
Royce in 1970 to define a potential software engineering practice. It is made up of various stages
and has distinct goals for each stage of software development. It consists of six stages including
requirement gathering, analysis, design, testing, implementation, and maintenance.
Each stage within the waterfall model flows downward into each other. Each stage has to be
completed prior to the next stage could commence. One of the strengths of the waterfall model is
the extensive documentation of requirements which is good for communication among the
systems development team. However, the waterfall model does not allow changes to be made to
the previously completed stage.
As a result, the system will have to be implemented with missing/faulty requirements or mistakes
committed in any stage of system development. Fixing such mistakes is not easy but costly and it
also leads to late delivery of the requested system. The user requirements keep on changing
throughout the system development because the client does not usually know what they exactly
want. To fix mistakes or gaps encountered in the business requirements specification, change
requests are often logged but can only be attended to once the system has been implemented.
Spiral Model: The spiral model was introduced by Barry W. Boehm in 1988. It was introduced
to solve the limitations encountered in the waterfall model. Boehm created the spiral model with
the intention of introducing iterative software development.
This model combines the features of the prototyping and the waterfall model.The spiral
model consists of four stages starting with the planning, objectives, risk analysis and
development. The model arranges all the activities in the form of a spiral. All the stages are
continuously repeated for a certain period of time until the completion of the requested system.
The emphasis of the spiral model is to evaluate risks, which are used as a source for decision
making to further develop the system. In each cycle, problems that are encountered are resolved.
The next iteration occurs until the system completes and meets the user requirements. A
prototype is built for every iteration.
Due to the iterative pattern of the spiral development,feedback given on each stage makes it
possible to fix errors at early stages, enhance requirements and get rid of risks identified.
Problems encountered in every iteration are resolved quicker and possible risks are removed at
earlier stages of systems development. This approach makes it possible for the organisations to
save costs since it is cheaper to identify problems and risk in the early stages of the systems
development. This model also makes it possible to enhance or make changes to the requirements
until the acceptable system is delivered to the users.
The spiral development starts smaller and grows bigger depending on the number of
iterations. However, lots of activities occur parallel and make it difficult to manage the systems
development and rework is likely to occur since requirements are not fully specified prior to
systems development. Due to the fact that requirements are not fully specified when the
development starts, additional work may be required.
The main reason for not specifying all requirements at once is because users do not
normally know exactly what they want until the system is delivered to them. Another setback of
the spiral model is that it works better for big projects than small ones.
Conclusion:
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------
Questions:
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------
3. Write advantages and disadvantages of traditional software development process models.
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
EXPERIMENT NO:2
Name of the Student: -__________________________________________________
Roll No.____________
Theory:
Agile methodology is the most significant approach to project management which is effectively
used in the process of software development. This agile approach has been majorly introduced in
the field of software development to overcome difficulties with earlier waterfall and traditional
software development models and to make processes more flexible and effective.agile
development methodology, requirements and solutions evolve through proper collaboration
between cross-functional teams and the product owner. This unique software development
process ensures teams to deliver value faster with quality and predictability and handles changes
effectively.
1. Agile Scrum Methodology: Scrum is an Agile framework that is used to implement the ideas
behind Agile software development. It is the most popular Agile framework used in companies.
Created by Jeff Sutherland and Ken Schwaber (who were also part of the 13 individuals who
cemented the Agile Manifesto), it comprises five values: commitment, courage, focus, openness,
and respect. Its goal is to develop, deliver, and sustain complex products through collaboration,
accountability, and iterative progress.
What distinguishes Scrum from other Agile methodologies are the roles, events, and artifacts that
it is made up of, with which it operates. Here’s what they are:
● Product owner: Product expert who represents the stakeholders, and is the voice of the
customer.
● Development team: Group of professionals who deliver the product (developers,
programmers, designers).
● Scrum master: Organized servant-leader who ensures the understanding and execution of
Scrum is followed.
Scrum events
● Sprint: Iterative timeboxes where a goal is accomplished. Time frame does not exceed
one calendar month and is consistent throughout the development process.
● Sprint planning: Where the entire Scrum team gets together—at the beginning of every
Sprint—to plan the upcoming sprint.
● Daily Scrum: 15 minute time boxed meeting held at the same time, every day of the
Sprint, where the previous day’s achievements are discussed, as well as the expectations
for the following one.
● Sprint review: An informal meeting held at the end of every Sprint where the Scrum team
present their Increment to the stakeholders, and discuss feedback.
● Sprint retrospective: A meeting where the Scrum team reflects on the proceedings of the
previous Sprint and establishes improvements for the next Sprint.
Scrum Artifacts
● Product backlog: Managed by the Product Owner, it’s where all the requirements needed
for a viable product are listed in order of priority. Includes features, functions,
requirements, enhancements, and fixes that authorize any changes to be made to the
product in future releases.
● Sprint backlog: A list of the tasks and requirements that need to be accomplished during
the next Sprint. Sometimes accompanied by a Scrum task board, which is used to
visualize the progress of the tasks in the current Sprint, and any changes that are made in
a ‘To Do, Doing, and Done’ format.
2. Kanban: Kanban is a lean method to manage and improve work across human systems. This
approach aims to manage work by balancing demands with available capacity, and by improving
the handling of system-level bottlenecks.
Work items are visualized to give participants a view of progress and process, from start to
finish—usually via a Kanban board. Work is pulled as capacity permits, rather than work being
pushed into the process when requested.
In knowledge work and in software development, the aim is to provide a visual process
management system which aids decision-making about what, when, and how much to produce.
The underlying Kanban method originated in lean manufacturing,[1] which was inspired by the
Toyota Production System.
A Kanban board is one of the tools that can be used to implement Kanban to manage work at a
personal or organizational level.
Kanban boards visually depict work at various stages of a process using cards to represent work
items and columns to represent each stage of the process. Cards are moved from left to right to
show progress and to help coordinate teams performing the work. A Kanban board may be
divided into horizontal "swimlanes" representing different kinds of work or different teams
performing the work. Simple boards have columns for "waiting", "in progress" and "completed"
or "to-do", "doing", and "done". Complex Kanban boards can be created that subdivide "in
progress" work into multiple columns to visualise the flow of work across a whole value stream
map
Applications: Kanban can be used to organize many areas of an organization and can be
designed accordingly. The simplest kanban board consists of three columns: "to-do", "doing" and
"done", though some additional detail such as WiP limits are needed to fully support the Kanban
Method. Business functions that use kanban boards include:
● Kanban board for software development team. A popular example of a Kanban board
for agile or lean software development consists of: Backlog, Ready, Coding, Testing,
Approval, and Done columns. It is also a common practice to name columns in a
different way, for example: Next, In Development, Done, Customer Acceptance,
Live.
Conclusion:
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------
Questions:
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------
EXPERIMENT NO:3
Name of the Student: -__________________________________________________
Roll No.____________
Background
A requirement is a statement of a behaviour or attribute that a system must possess for the
system to be acceptable to a stakeholder. Software Requirement Specification (SRS) is a
document that describes the requirements of a computer system from the user's point of view.
Writing Requirements
● Never assume: others do now know what you have in mind. Use meaningful words;
avoid words like: process, manage, perform, handle, and support.
● State requirements not features
● Feature: general, tested only for existence.
● Requirement: specific, testable, measurable.
● Avoid:
○ Conjunctions: ask yourself whether the requirement should be split into two
requirements.
○ Conditionals: if, else, but, except, although. Possibilities: may, might, probably,
usually.
Writing Specifications:
Creating specifications is important. However, you may not create specifications if:
1. Hardware
2. Peripherals
3. Users
7. Other
Conclusion:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
Questions:
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
EXPERIMENT NO:4
Name of the Student: -__________________________________________________
Roll No.____________
Background:
Structured Analysis is a development method that allows the analyst to understand the system
and its activities in a logical way.
It is a systematic approach, which uses graphical tools that analyze and refine the objectives of
an existing system and develop a new system specification which can be easily understandable
by the user.
It has following attributes −
● It is a graphic which specifies the presentation of the application.
● It divides the processes so that it gives a clear picture of system flow.
● It is logical rather than physical i.e The elements of a system do not depend on the vendor
or hardware.
● It is an approach that works from high-level overviews to lower-level details.
Modeling:
Software is getting larger, not smaller; for example, Windows XP has more than 40
million lines of code. A single programmer cannot manage this amount of code in its entirety.
Code is often not directly understandable by developers who did not participate in the
development; thus, we need simpler representations for complex systems (modeling is a means
for dealing with complexity).
A wide variety of models have been in use within various engineering disciplines for a long time.
In software engineering a number of modeling methods are also available.
A data flow data diagram is one means of representing the functional model of a software
product. DFDs do not represent program logic like flowcharts do.
Conclusion:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………
Questions:
1.Define DFD?
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………
EXPERIMENT NO:5
Name of the Student: -__________________________________________________
Roll No.____________
Background: In this experiment, we will learn how to estimate cost, effort and duration for a
software project, and then select one solution approach which will be found suitable to fulfill the
organizational goal.
Theory: The scope of a software project is comparatively quite large, and such a project could
take several years to complete. However, the phrase "quite large" could only give some (possibly
vague) qualitative information. As in any other science and engineering discipline, one would be
interested to measure how complex a project is. One of the major activities of the project
planning phase, therefore, is to estimate various project parameters in order to make proper
decisions. Some important project parameters that are estimated include:
Project size: What would be the size of the code written say, in number of lines, files, modules?
Cost: How much would it cost to develop a software? A software may be just pieces of code, but
one has to pay to the managers, developers, and other project personnel.
Duration: How long would it be before the software is delivered to the clients?
Effort: How much effort from the team members would be required to create the software?
In this experiment we will focus on two methods for estimating project metrics: COCOMO
COCOMO (Constructive Cost Model): was proposed by Boehm. According to him, there could
be three categories of software projects: organic, semi-detached, and embedded. The
classification is done considering the characteristics of the software, the development team and
environment.
These product classes typically correspond to application, utility and system programs,
respectively. Data processing programs could be considered as application programs. Compilers,
linkers, are examples of utility programs.
Operating systems, real-time system programs are examples of system programs. One could
easily apprehend that it would take much more time and effort to develop an OS than an
attendance management system.
The concept of organic, semi-detached, and embedded systems are described below.
● Organic: A development project is said to be of organic type, if
○ The project deals with developing a well understood application
○ The development team is small
○ The team members have prior experience in working with similar types of
projects
● Semi-detached: A development project can be categorized as semi-detached type, if
○ The team consists of some experienced as well as inexperienced staff
○ Team members may have some experience on the type of system to be developed
● Embedded: Embedded type of development project are those, which
○ Aims to develop a software strongly related to machine hardware
○ Team size is usually large
Boehm suggested that estimation of project parameters should be done through three stages:
Basic COCOMO, Intermediate COCOMO, and Complete COCOMO.
Effort = a * (KDSI)b PM
Tdev = 2.5 * (Effort)c Months
where.
● KDSI is the estimated size of the software expressed in Kilo Delivered Source
Instructions
● a, b, c are constants determined by the category of software project
● Effort denotes the total effort required for the software development, expressed in person
months (PMs).
● Tdev denotes the estimated time required to develop the software (expressed in months)
Software project a b c
Product attributes
Hardware attributes
environment
Personnel attributes
Project attributes
· Database
· Graphical User Interface (GUI)
· Networking facilities
Among these, development of the GUI is considered as an organic project type; the database
module could be considered as a semi-detached software. The networking module can be
considered as an embedded software. To obtain a realistic cost, one should estimate the costs for
each component separately, and then add it up.
Advantages of COCOMO:
COCOMO is a simple model, and should help one to understand the concept of project metrics
estimation.
Drawbacks of COCOMO:
COCOMO uses KDSI, which is not a proper measure of a program's size. Indeed, estimating the
size of a software is a difficult task, and any slight miscalculation could cause a large deviation
in subsequent project estimates. Moreover, COCOMO was proposed in 1981 keeping the
waterfall model of project life cycle in mind. It fails to address other popular approaches like
prototype, incremental, spiral, agile models. Moreover, in the present day a software project may
not necessarily consist of coding every bit of functionality. Rather, existing software components
are often used and glued together towards the development of a new software. COCOMO is not
suitable in such cases. COCOMO II was proposed later in 2000 to address these issues.
Conclusion:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
Questions:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………
EXPERIMENT NO:6
Name of the Student: -__________________________________________________
Roll No.____________
Theory:
Can you imagine starting a long car trip to an unfamiliar destination without a map or
navigation system? You're pretty sure you have to make some turns here and there, but you have
no idea when or where, or how long it will take to get there. You may arrive eventually, but you
run the risk of getting lost, and feeling frustrated, along the way.
Essentially, driving without any idea of how you're going to get there is the same as
working on a project without a schedule. No matter the size or scope of your project, the
schedule is a key part of project management. The schedule tells you when each activity should
be done, what has already been completed, and the sequence in which things need to be finished.
Luckily, drivers have fairly accurate tools they can use.
Scheduling, on the other hand, is not an exact process. It's part estimation , part
prediction, and part "educated guessing." Because of the uncertainty involved, the schedule is
reviewed regularly, and it is often revised while the project is in progress. It continues to develop
as the project moves forward, changes arise, risks come and go, and new risks are identified. The
schedule essentially transforms the project from a vision to a time-based plan.
Critical Path Analysis – This is the process of looking at all of the activities that must be
completed, and calculating the "best line" – or critical path – to take so that you'll complete the
project in the minimum amount of time. The method calculates the earliest and latest possible
start and finish times for project activities, and it estimates the dependencies among them to
create a schedule of critical activities and dates. Learn more about Critical Path Analysis.
Schedule Compression – This tool helps shorten the total duration of a project by decreasing the
time allotted for certain activities. It's done so that you can meet time constraints, and still keep
the original scope of the project.
Crashing – This is where you assign more resources to an activity, thus decreasing the time it
takes to complete it. This is based on the assumption that the time you save will offset the added
resource costs.
Fast-Tracking – This involves rearranging activities to allow more parallel work. This means
that things you would normally do one after another are now done at the same time. However, do
bear in mind that this approach increases the risk that you'll miss things, or fail to address
changes.
Project Review:
Once you have outlined the basic schedule, you need to review it to make sure that the timing for
each activity is aligned with the necessary resources.
Here are tools commonly used to do this:
"What if" scenario analysis – This method compares and measures the effects of different
scenarios on a project. You use simulations to determine the effects of various adverse, or
harmful, assumptions – such as resources not being available on time, or delays in other areas of
the project. You can then measure and plan for the risks posed in these scenarios.
Resource leveling – Here, you rearrange the sequence of activities to address the possibility of
unavailable resources, and to make sure that excessive demand is not put on resources at any
point in time. If resources are available only in limited quantities, then you change the timing of
activities so that the most critical activities have enough resources.
Critical chain method – This also addresses resource availability. You plan activities using their
latest possible start and finish dates. This adds extra time between activities, which
you can then use it to manage work disruptions.
Risk multipliers – Risk is inevitable, so you need to prepare for its impact. Adding extra time to
high-risk activities is one strategy. Another is to add a time multiplier to certain tasks or certain
resources to offset overly optimistic time estimation.
After the initial schedule has been reviewed, and adjustments made, it's a good idea to
have other members of the team review it as well. Include people who will be doing the work –
their insights and assumptions are likely to be particularly accurate and relevant.
Schedule Tracking:
▪ Conduct periodic project status meetings in which each team member reports
• Earned value
– Is a measure of progress
– Enables us to assess the “percent of completeness” of a project using quantitative
analysis rather than rely on a gut feeling
– “provides accurate and reliable readings of performance from as early as 15 percent
into the project.” [FLE98]
• The budgeted cost of work scheduled (BCWS) is determined for each work task
represented in the schedule.
– BCWSi is the effort planned for work task i.
– To determine progress at a given point along the project schedule, the value of
BCWS is the sum of the BCWSi values for all work tasks that should have been
completed by that point in time on the project schedule.
• The BCWS values for all work tasks are summed to derive the budget at completion, BAC.
Hence,
• BAC = ∑ (BCWSk) for all tasks k
• Next, the value for budgeted cost of work performed (BCWP) is computed.
– The value for BCWP is the sum of the BCWS values for all work tasks that have
actually been completed by a point in time on the project schedule.
• “the distinction between the BCWS and the BCWP is that the former represents the budget
of the activities that were planned to be completed and the latter represents the budget of
the activities that actually were completed.” [WIL99]
• Given values for BCWS, BAC, and BCWP, important progress indicators can be computed:
• Schedule performance index, SPI = BCWP/BCWS
Conclusion:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
Questions:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
……………………………………………………………………
3. Consider the following table of activities: After 8 days of work, activity A has been completed
on time. Activity C has 4 deliverables and 3 have been completed. Assuming each day’s work
costs $100, what is the Cost Variance, the Schedule Variance, the CPI and SPI?
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
…………………………………………………………………
EXPERIMENT NO:7
Name of the Student: -__________________________________________________
Roll No.____________
Theory:
Black-box testing is a method of software testing that examines the functionality of an
application without peering into its internal structures or workings. This method of test can be
applied virtually to every level of software testing: unit, integration, system and acceptance. It is
sometimes referred to as specification-based testing.
Test Procedure: Specific knowledge of the application's code, internal structure and
programming knowledge in general is not required. The tester is aware of what the software is
supposed to do but is not aware of how it does it. For instance, the tester is aware that a particular
input returns a certain, invariable output but is not aware of how the software produces the output
in the first place.
● Decision table testing: Decision tables are a concise visual representation for specifying
which actions to perform depending on given conditions. They are algorithms whose
output is a set of actions. The information expressed in decision tables could also be
As present in the above image, the “AGE” text field accepts only numbers from 18 to 60. There
will be three sets of classes or groups.
Two invalid classes will be:
a) Less than or equal to 17.
b) Greater than or equal to 61.
A valid class will be anything between 18 and 60.
We have thus reduced the test cases to only 3 test cases based on the formed classes thereby
covering all the possibilities. So, testing with any one value from each set of the class is
sufficient to test the above scenario.
Boundary value analysis:
The name itself defines that in this technique, we focus on the values at boundaries as it is found
that many applications have a high amount of issues on the boundaries. Boundary refers to
values near the limit where the behavior of the system changes. In boundary value analysis, both
valid and invalid inputs are being tested to verify the issues.
For Example:
If we want to test a field where values from 1 to 100 should be accepted, then we choose the
boundary values: 1-1, 1, 1+1, 100-1, 100, and 100+1. Instead of using all the values from 1 to
100, we just use 0, 1, 2, 99, 100, and 101.
Conclusion:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
Questions:
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------
EXPERIMENT NO:8
Name of the Student: -__________________________________________________
Roll No.____________
Theory:
building test cases to make sure they thoroughly test the application and the given
results are recorded accordingly.
3. Output involves preparing final report that encompasses all of the above
preparations and results
1) Statement coverage:
In a programming language, a statement is nothing but the line of code or instruction for
the computer to understand and act accordingly. A statement becomes an executable statement
when
it gets compiled and converted into the object code and performs the action when the program is
in a running mode. Hence “Statement Coverage”, as the name itself suggests, is the method of
validating whether each and every line of the code is executed at least once.
2) Branch Coverage:
“Branch” in a programming language is like the “IF statements”. An IF statement has two
branches: True and False. So in Branch coverage (also called Decision coverage), we validate
whether each branch is executed at least once.
In case of an “IF statement”, there will be two test conditions: One to validate the true
branch and, Other to validate the false branch.
Hence, in theory, Branch Coverage is a testing method which is when executed ensures that each
and every branch from each decision point is executed.
3) Path Coverage
Path coverage tests all the paths of the program. This is a comprehensive technique which
ensures that all the paths of the program are traversed at least once. Path Coverage is even more
powerful than Branch coverage. This technique is useful for testing complex programs.
Let’s take a simple example to understand all these white box testing techniques. Also check =>
Different Types of testing.
For Statement Coverage – we would only need one test case to check all the lines of the code.
That means:
If I consider TestCase_01 to be (A=40 and B=70), then all the lines of code will be executed.
Now the question arises:
1. Is that sufficient?
2. What if I consider my Test case as A=33 and B=45?
Because Statement coverage will only cover the true side, for the pseudo code, only one test case
would NOT be sufficient to test it. As a tester, we have to consider the negative cases as well.
Hence for maximum coverage, we need to consider “Branch Coverage”, which will evaluate the
“FALSE” conditions.
In the real world, you may add appropriate statements when the condition fails.
So now the pseudocode becomes:
INPUT A & B
C=A+B
IF C>100
PRINT “ITS DONE”
ELSE
PRINT “ITS PENDING”
Since Statement coverage is not sufficient to test the entire pseudo code, we would require
Branch coverage to ensure maximum coverage.
So for Branch coverage, we would require two test cases to complete the testing of this pseudo
code.
TestCase_01: A=33, B=45
TestCase_02: A=25, B=30
With this, we can see that each and every line of the code is executed at least once.
Conclusion:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
Questions:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
EXPERIMENT NO:9
Name of the Student: -__________________________________________________
Roll No.____________
Theory:
Software risks:
There are two characteristics of the risks
1. The risk may or may not happen. It shows the uncertainty of the risk.
2. When risks occur, unwanted consequences or losses will occur.
Different types of risk
1. Project Risk
Project risk arises in the software development process then they basically affect budget,
schedule, staffing, resources, and requirements. When project risks become severe then the total
cost of the project increases.
2. Technical Risk
These risks affect the quality and timeliness of the project. If technical risk becomes
reality then potential design, implementation, interface, verification and maintenance problems
get created.Technical risks occur when a problem becomes harder to solve.
3. Business Risk
When feasibility of a software product is in doubt then business risks occur. Business
risks can be classified as follows.
i. Market Risk
When the quality of a software product is built but if there is no customer for this product
then it is called market risk (i.e. no market for product).
ii. Strategic Risk
When a product is built and if it is not following the company’s business policies then
such product brings strategic risks.
iii. Sales Risk
When a product is built but how to sell it is not clear then such a situation brings sales
risk.
When senior management or the responsible staff leaves the organizations then
management risk occurs.
v. Budget Risk
Losing the overall budget of the project called Budget risk.
4. Known risks are those that are identified by evaluating the project plan. There are two
types of known risk
a. Predictable Risk
Predictable risk are those that can be identified in advance based on past project
experience
b. Unpredictable Risk
Unpredictable risks are those that cannot be guessed earlier.
RMMM
RMM stands for risk mitigation, monitoring and management. There are three issues in
strategy for handling the risk is
1. Risk Avoidance
2. Risk Monitoring
3. Risk Management
Risk Mitigation
Risk mitigation means preventing the risk to occur (risk avoidance). Following are the
steps to be taken for mitigating the risks.
● Communicate with the concerned staff to find probable risk.
● Find out and eliminate all those causes that can create risk before the project starts.
● Develop a policy in an organization which will help to continue the project even though
the same staff leaves the organization.
● Everybody in the project team should be acquainted with the current development
activity
● Maintain the corresponding documents in timely manner
● Conduct timely reviews in order to speed up work.
● For conducting every critical activity during software development, provide the
additional staff if required.
Risk Monitoring
In the Risk Monitoring process the following thing must be monitored by the project
manager.
● The approach and behaviour of the team member as pressure of the project varies.
● The degree in which the team performs with the spirit of “Team-Work”.
● The type of cooperation between the team members.
● The type of problem occurs in team members.
Risk Management
Project manager performs this task when risk becomes a reality. If project manager is
successful in applying the project mitigation effectively then it becomes very much easy to
manage the risks.
For example,
Consider a scenario where many people are leaving the organization then if sufficient additional
staff is available, if current development activity is known to everybody in the team, if latest and
systematic documentation is available then any ‘new comer’ can easily understand current
development activity. This will ultimately help in continuing the work without any interval.
Conclusion:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
Questions:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
EXPERIMENT NO:10
Name of the Student: -__________________________________________________
Roll No.____________
Theory:
d) Employees or contributor of the project can contribute from anywhere irrespective of the
different geographical locations through this VCS,
e) For each different contributor of the project a different working copy is maintained and not
merged to the main file unless the working copy is validated. A most popular example is Git,
Helix core, Microsoft TFS,
f) Helps in recovery in case of any disaster or contingent situation,
g) Informs us about Who, What, When, Why changes have been made.
Use of Version Control System:
A repository: It can be thought of as a database of changes. It contains all the edits and
historical versions (snapshots) of the project.
Copy of Work (sometimes called as checkout): It is the personal copy of all the files in a
project. You can edit this copy, without affecting the work of others and you can finally commit
your changes to a repository when you are done making your changes.
Types of Version Control Systems:
Local Version Control Systems: It is one of the simplest forms and has a database that kept all
the changes to files under revision control. RCS is one of the most common VCS tools. It keeps
patch sets (differences between files) in a special format on disk. By adding up all the patches it
can then re-create what any file looked like at any point in time.
Centralized Version Control Systems: Centralized version control systems contain just one
repository and each user gets their own working copy. You need to commit to reflecting your
changes in the repository. It is possible for others to see your changes by updating.
Two things are required to make your changes visible to others which are:
● You commit
● They update
The benefit of CVCS (Centralized Version Control Systems) makes collaboration amongst
developers along with providing an insight to a certain extent on what everyone else is doing on
the project. It allows administrators to fine-grained control over who can do what.
It has some downsides as well which led to the development of DVS. The most obvious is the
single point of failure that the centralized repository represents if it goes down during that period
collaboration and saving versioned changes is not possible. What if the hard disk of the central
database becomes corrupted, and proper backups haven’t been kept? You lose absolutely
everything.
Distributed Version Control Systems: Distributed version control systems contain multiple
repositories. Each user has their own repository and working copy. Just committing your changes
will not give others access to your changes. This is because commit will reflect those changes in
your local repository and you need to push them in order to make them visible on the central
repository. Similarly, When you update, you do not get other’s changes unless you have first
pulled those changes into your repository.
To make your changes visible to others, 4 things are required:
● You commit
● You push
● They pull
● They update
The most popular distributed version control systems are Git, Mercurial. They help us overcome
the problem of a single point of failure.
● Multiple people can work simultaneously on a single project. Everyone works on and
edits their own copy of the files and it is up to them when they wish to share the
changes made by them with the rest of the team.
1. GitHub
GitHub helps software teams to collaborate and maintain the entire history of code
changes. You can track changes in code, turn back the clock to undo errors and share your efforts
with other team members.
It is a repository to host Git projects. For those wondering what is Git? It is an open
source version control system that features local branching, multiple workflows, and convenient
staging areas. Git version control is an easy to learn option and offers faster operation speed.
2. GitLab
GitLab comes with a lot of handy features like an integrated project, a project website,
etc. Using the continuous integration (CI) capabilities of GitLab, you can automatically test and
deliver the code.
You can access all the aspects of a project, view code, pull requests, and combine the
conflict resolution.
3. Beanstalk
Beanstalk is an ideal option for those who need to work from remote places. This
software is based on browser and cloud, allowing users to code, commit, review and deploy
using a browser.
It can be integrated with messaging and email platforms for efficient collaborations
related to codes and updates. It supports both Git and SVN and comes with built-in analytics
features.
For security, it leverages encryption, two-factor authentication, and password protection
functionalities.
4. PerForce
Perforce delivers the version control capabilities through its HelixCore. The HelixCore
comes with a single platform for seamless team collaboration, and support for both centralized
and distributed development workflows.
It is a security solution that protects the most valuable assets. HelixCore allows you to
track the code changes accurately and facilitates a complete Git ecosystem.
5. Apache Subversion
Apache Subversion is another open source version control system, which was founded by
CollabNet a couple of decades ago. Both the open source arena and enterprises consider it a
reliable option for valuable data.
Key features of Subversion include inventory management, security management, history
tracking, user access controls, cheap local branching, and workflow management.
6. AWS CodeCommit
AWS CodeCommit is a managed version control system that hosts secure and scalable
private Git repositories. It seamlessly connects with other products from Amazon Web Services
(AWS) and hosts the code in secured AWS environments. Hence, it is a good fit for the existing
users of AWS.
AWS integration also provides access to several useful plugins from AWS partners,
which helps in software development.
Conclusion:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………
Questions:
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………