Atmiya University: Faculty of Engineering and Technology
Atmiya University: Faculty of Engineering and Technology
Atmiya University: Faculty of Engineering and Technology
LIST OF TUTORIALS
Sr. Experiments SIGN DATE
1. Study the complete Software
Development Life Cycle
(SDLC) and analyze various
activities conducted as apart of
various phases. For each SDLC
phase, identify the objectives
and summaries outcomes.
2. To perform the system analysis:
Requirement analysis, SRS.
3. To perform the function oriented
diagram: DFD and Structured
chart.
4. To perform the user’s view
analysis: Use case diagram for
railway reservation system.
5. To draw the structural view
diagram: Class diagram for
library management system.
6. To draw the behavioural view
diagram: Activity diagram for
flight control system.
7. To study Selenium Tool with a real
time example.
8. To perform sequence diagram for
Library management system.
9. Capability Maturity Model (CMM)
& it’s Levels in Software
Engineering
10. Calculate cyclomatic complexity
for given Code. Identify
number of Independent path
require for testing.
11. Generate a test suite using the
white box testing strategies.
12. Apply basic and intermediate
COCOMO technique.
TUTORIAL
There are seven primary stages of the modern system development life cycle.
• Planning stage
• Feasibility or Requirements of Analysis Stage
1. Planning Stage:
→ The planning stage (also called the feasibility stage) is exactly what it sounds like: the
phase in which developers will plan for the upcoming project.
→It helps to define the problem and scope of any existing systems, as well as determine the
objectives for their new systems.
→Perhaps most importantly, the planning stage sets the project schedule, which can be of key
importance if development is for a commercial product that must be sent to market by a
certain time.
2. Analysis Stage:
→The analysis stage includes gathering all the specific details required for a new system as
well as determining the first ideas for prototypes.
→Developers may:
• User interfaces
• System interfaces
• Databases
4. Development Stage:
→The development stage is the part where developers actually write code and build the
application according to the earlier design documents and outlined specifications.
→Developers will follow any coding guidelines as defined by the organization and utilize
different tools such as compilers, debuggers, and interpreters.
→Programming languages can include staples such as C++, PHP, and more. Developers will
choose the right programming code to use based on the project specifications and
requirements.
5. Testing Stage:
→Now it must be tested to make sure that there aren’t any bugs and that the end-user
experience will not negatively be affected at any point.
→During the testing stage, developers will go over their software with a fine-tooth comb,
noting any bugs or defects that need to be tracked, fixed, and later retested.
6. Implementation and Integration Stage:
→After testing, the overall design for the software will come together. Different modules or
designs will be integrated into the primary source code through developer efforts, usually
by leveraging training environments to detect further errors or defects.
→The information system will be integrated into its environment and eventually installed.
After passing this stage, the software is theoretically ready for market and may be
provided to any end-users.
7. Maintenance Stage:
→The SDLC doesn’t end when software reaches the market. Developers must now move into
a maintenance mode and begin practicing any activities required to handle issues reported
by end-users.
→Furthermore, developers are responsible for implementing any changes that the software
might need after deployment.
• Objectives:
Sol.:
Software systems analysis is a field in which analysts continually learn new techniques and
approaches to properly capture, maintain, understand, and develop more efficient and effective
software systems.
Concise:The SRS report should be concise and at the same time, unambiguous, consistent, and
complete. Verbose and irrelevant descriptions decrease readability and also increase error
possibilities.
Conceptual integrity:It should show conceptual integrity so that the reader can merely
understand it. Response to undesired events: It should characterize acceptable responses to
unwanted events. These are called system response to exceptional conditions.
Verifiable: All requirements of the system, as documented in the SRS document, should be
correct. This means that it should be possible to decide whether or not requirements have been
met in an implementation.
Function Oriented design is a method to software design where the model is decomposed into a
set of interacting units or modules where each unit or module has a clearly defined function.
Thus, the system is designed from a functional viewpoint.
Example:
• Structured Charts :
Structure Chart represents hierarchical structure of modules. It breaks down the entire system
into lowest functional modules; describe functions and sub-functions of each module of a system
to a greater detail. Structure Chart partitions the system into black boxes (functionality of the
system is known to the users but inner details are unknown). Inputs are given to the black boxes
and appropriate outputs are generated.
Sol.:
Sol.:
Sol.:
7. . To study Selenium Tool with a real time example.
Sol.:
•Selenium tool:
→Selenium is one of the most widely used open source Web UI (User Interface) automation testing suite. It was
originally developed by Jason Huggins in 2004 as an internal tool at Thought Works. Selenium supports
automation across different browsers, platforms and programming languages.
→Selenium can be easily deployed on platforms such as Windows, Linux, Solaris and Macintosh. Moreover, it
supports OS (Operating System) for mobile applications like iOS, windows mobile and android.
→Selenium supports a variety of programming languages through the use of drivers specific to each language.
Languages supported by Selenium include C#, Java, Perl, PHP, Python and Ruby.
→Currently, Selenium Web driver is most popular with Java and C#. Selenium test scripts can be coded in any of
the supported programming languages and can be run directly in most modern web browsers.
→Browsers supported by Selenium include Internet Explorer, Mozilla Firefox, Google Chrome and Safari.
Sol.:
Sol.:
→The Capability Maturity Model (CMM) is a procedure used to develop and refine an organization's software
development process.
→The model defines a five-level evolutionary stage of increasingly organized and consistently more mature
processes.
→CMM was developed and is promoted by the Software Engineering Institute (SEI), a research and development
centre promote by the U.S. Department of Defence (DOD).
→Capability Maturity Model is used as a benchmark to measure the maturity of an organization's software process.
• Levels of Capability Maturity Model
1. Initial:
→Ad hoc activities characterize a software development organization at this level. Very few or no processes are
described and followed. Since software production processes are not limited, different engineers follow their
process and as a result, development efforts become chaotic.
→Therefore, it is also called a chaotic level.
2. Repeatable
→At this level, the fundamental project management practices like tracking cost and schedule are established.
→Size and cost estimation methods, like function point analysis, COCOMO, etc. are used.
3. Defined
→At this level, 2 methods for both management and development activities are defined and documented.
→There is a common organization-wide understanding of operations, roles, and responsibilities.
→The ways through defined, the process and product qualities are not measured. 4.Managed
→At this level, the focus is on software metrics. Two kinds of metrics are composed.
1. Product metrics measure the features of the product being developed, such as its size, reliability, time
complexity, understandability, etc.
2. Process metrics follow the effectiveness of the process being used, such as average defect correction
time, productivity, the average number of defects found per hour inspection, the average number of failures
detected during testing per LOC, etc.
oThe software process and product quality are measured, and quantitative quality requirements for the
product are met. oVarious tools like Pareto charts, fishbone diagrams, etc. are used to measure the product
and process quality. oThe process metrics are used to analyze if a project performed satisfactorily. Thus, the
outcome of process measurements is used to calculate project performance rather than improve the process.
5.Optimizing
→At this phase, process and product metrics are collected. Process and product measurement data are evaluated for
continuous process improvement.
10. Calculate cyclomatic complexity for given Code. Identify number of Independent path require for testing.
{ inti, j, k;
for (i=0 ;i<=N ; i++)
p[i] = 1;
for (i=2 ;i<=N ; i++)
{
k = p[i]; j=1;
while (a[p[j-1]] > a[k] {
p[j] = p[j-1];
j--;
}
p[j]=k;
}
Method-01:
Cyclomatic Complexity
= Total number of closed regions in the control flow graph + 1
=3+1
=4
Method-02:
Cyclomatic Complexity
=E–N+2
= 16 – 14 + 2
=4
Following are the properties of Cyclomatic complexity:
Method-01:
Independent Paths
11.Generate
= Total number a oftest suite
closed usinginthe
regions the white box testing
strategies.
control flow graph + 1
=2+1
=3
Sol.:
1)Method-02:
Statement coverage:
InIndependent
a programmingPathslanguage, a statement is nothing but the line of code or
instruction
=E–N+2 for the computer to understand and act accordingly. A statement
becomes
=8–7+ an2executable statement when it gets compiled and converted into the
object
=3 code and performs the action when the program is in a running mode.
Hence “Statement Coverage”, as the name itself suggests, it is the method
of validating whether each and every line of the code is executed at least once.
Example
INPUT A & B
C=A+B
IF C>100
PRINT “ITS DONE”
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: Is that sufficient?
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.
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.
INPUT A & B
C=A+B
IF C>100
PRINT “ITS DONE”
ELSE
4) 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 the complex programs.
INPUT A & B
C=A+B
IF C>100
PRINT “ITS DONE”
END IF
IF A>50
PRINT “ITS PENDING”
END IF
Sol.:
The basic COCOMO model provide anaccurate size of the project parameters.
The following expressions give the basic COCOMO estimation model:
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
Where,
o KLOC is the estimated size of the software product indicate in Kilo Lines
of Code
o a1,a2,b1,b2 are constants for each group of software products
o Tdev is the estimated time to develop the software, expressed in months
o Effort is the total effort required to develop the software product,expressed
in person months (PMs).
Estimation Of Development Effort
For the three classes of software products, the formulas for estimating the effort
based on the code size are shown below:
o Organic:
Effort = 2.4(KLOC) 1.05 PM
o Semi-detached:
Effort = 3.0(KLOC) 1.12 PM
o Embedded:
For the three classes of software products, the formulas for estimating
thedevelopment time based on the effort are given below:
o Organic:
Tdev = 2.5(Effort) 0.38 Months
o Semi-detached:
Tdev = 2.5(Effort) 0.35 Months
o Embedded:
Tdev = 2.5(Effort) 0.32 Months
Example: Suppose a project was estimated to be 400 KLOC. Calculate the effort and
development time for each of the three model i.e., organic,semi-detached & embedded.
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
D = 2.5 * (1295.31)0.38=38.07 PM
D = 2.5 * (2462.79)0.35=38.45 PM
D = 2.5 * (4772.8)0.32 = 38 PM
Intermediate Model:
The basic Cocomo model considers that the effort is only a function of the number of
lines of code and some constants calculated according to the various software systems.
The intermediate COCOMO model recognizes these facts and refines theinitial estimates
obtained through the basic COCOMO model by using a set of 15 cost drivers based on
various attributes of software engineering.