0% found this document useful (0 votes)
7 views50 pages

EEX3467 DS#5 PPT

The document covers key concepts in software engineering, including software quality, testing strategies, maintenance, and project management. It defines software quality characteristics, outlines various testing methods such as black box and white box testing, and discusses the importance of software maintenance and project management activities. The content is structured to provide a comprehensive understanding of the software development lifecycle and the critical aspects that influence software quality and project success.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views50 pages

EEX3467 DS#5 PPT

The document covers key concepts in software engineering, including software quality, testing strategies, maintenance, and project management. It defines software quality characteristics, outlines various testing methods such as black box and white box testing, and discusses the importance of software maintenance and project management activities. The content is structured to provide a comprehensive understanding of the software development lifecycle and the critical aspects that influence software quality and project success.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 50

Software Engineering

Concepts and Programming


Day School 5

Center for IT Education Services (CITES)


Faculty of Engineering Technology
The Open University of Sri Lanka
25th April 2024
CONTENT

• Software Quality
• Software quality characteristics
• Software Testing
• Testing Strategies
• Software Maintenance
• Project Management
SOFTWARE QUALITY

• What is Quality
To the producer, a product is a quality product if it
meets or conforms to the statement of
requirements that defines the product. However, to
the customer, a product is a quality product if it meets
the customer’s needs, regardless of whether the
requirements were met.

• What is Software quality


Related to software, a product may be called a quality product if
it is defect free.
SOFTWARE QUALITY
CHARACTERISTICS
• Correctness
• Reliability
• Efficiency
• Integrity
• Usability
• Maintainability
• Flexibility
• Testability
• Portability
• Reusability
SOFTWARE TESTING
• Programming errors are called bugs and the process of finding them and
correcting them is called debugging
• Programming errors :

 Syntax errors - Any programming language can


execute a program only if it is written in the correct
syntax

 Runtime errors will appear once the program start


running. These are also called Exceptions

 Semantic errors are the logical problems in a


program. If there is a semantic error, most probably the
program will not give an error message but will give a
wrong output.
• Software Testing : Fault detection and removal
VERIFICATION
Definition : The process of evaluating work-
products (not the actual final product) of a
development phase to determine whether
they meet the specified requirements for
that phase.

Are we building the product right?


Evaluation Items: Plans, Requirement Specs,
Design Specs, Code, Test Cases
VALIDATION
Definition : The process of
evaluating software during or at
the end of the development
process to determine whether it
satisfies specified business
requirements.

Are we building the right product?


Evaluation items: The actual
product/software.
TESTING IN VARIOUS STAGES OF
THE LIFE CYCLE
TESTING STRATEGIES: BLACK BOX
TESTING

• Test cases are derived from the


requirements without reference to the
code itself or its structure.
• Mainly focuses on input and output of
software applications
BLACK BOX TESTING TECHNIQUES

• Equivalence Class Testing: It is used to


minimize the number of possible test cases.

• Boundary Value Testing: Boundary value


testing is focused on the values at
boundaries. This technique determines
whether a certain range of values are
acceptable by the system or not.
Day School Activity

The X system reading integer values from the number 1 to number 10.
As a Quality Assurance Engineer you have to do the above Black box
testing techniques.

Write down the Equivalence Class Testing, Boundary Value Testing


approaches in your notebook.
TESTING STRATEGIES: WHITE BOX
TESTING
• Detailed investigation of internal logic
and structure of the code
• Called glass testing or open box testing
In order to perform white box testing
on an application, the tester needs to
possess knowledge of the internal
working of the code
• The tester needs to have a look inside
the source code and find out which
unit/chunk of the code is behaving
inappropriately
WHITE BOX TESTING
TECHNIQUES

• Path testing
• Loop testing
• Condition testing
PATH TESTING
LOOP TESTING

{
…….
while(50,000)
……
……
}

Test P
{
……
…… }
CONDITION COVERAGE
Can be done with 2 test cases
(A
1 ) = 2, B = 0, X = 4 ), (A = 1, B = 1, X =
Multiple condition testing
Can be done with 4 test cases
(A
1 ),= 2, B = 0, X = 4 ), (A = 2, B = 1, X =
(A
1 ) = 1, B = 0, X = 2 ), (A = 1, B = 1, X =
In the example the test cases for decision
testing
cover paths : <ace> and <abd>
Another valid set of test cases
={(A
1 ),=}1, B = 0, X = 3 ), (A = 2, B = 1, X
both cover the same path <abe>
This
test emphasizes the need for combining
strategies.
COMPUTING TEST
COVERAGE
• Cyclomatic complexity (or conditional complexity)
• directly measures the number of linearly
independent paths through a program's source
code
• computed using the control flow graph of the
program: the nodes of the graph correspond to
indivisible groups of commands of a program,
and a directed edge connects two nodes if the
second command might be executed
immediately after the first command
• Cyclomatic complexity may also be applied to
individual functions, modules, methods or classes
within a program
BASIS PATH TESTING
Is to test each linearly independent path through the
program; the number of test cases will equal the
Mathematically, the cyclomatic complexity of a
structured program
• Cyclomatic complexity M, M = E − N + 2P
where
• E = the number of edges of the graph
• N = the number of nodes of the graph
• P = the number of connected components

(P is the number of exit points, usually


Refer:
http://en.wikipedia.org/wiki/Cyclomatic_complexity)
CYCLOMATIC COMPLEXITY EXAMPLE

Sequence
1

Step 1 : Print x
Step 2 : Print y

Cyclomatic Complexity = E - N 2
+2P
= 1-
2+2
=1
CYCLOMATIC COMPLEXITY EXAMPLE
Selection
1
Step 1 : IF X>0
Step 2 : PRINT “X is Positive”;
Step 3 : ELSE PRINT “X is Negative”;
Step 4 : PRINT X
2 3

Cyclomatic Complexity = E - N
+2P
= 4-4+2 4
=2
1

CYCLOMATIC COMPLEXITY EXAMPLE


2
Repetition
Step 1 : PrintDifferent(int x, int y)
3
Step 2 :{
Step 3 : while(x>y){
Step 4 : if (x>0)
Step 5 : x=x-y; 4
Step 6 : else y=y-x;
Step 7 :} 5
Step 8 : print x, y;
Step 9 : } 7

9 8
1

CYCLOMATIC COMPLEXITY
EXAMPLE 2
Repetition
Step 1 : PrintDifferent(int x, int y)
3
Step 2 :{
Step 3 : while(x>y){
Step 4 : if (x>0)
Step 5 : x=x-y; 4
Step 6 : else y=y-x;
Step 7 :} 6
Step 8 : print x, y;
Step 9 : } 7

9 8
1

CYCLOMATIC COMPLEXITY EXAMPLE


2
Repetition
Step 1 : PrintDifferent(int x, int y)
3
Step 2 :{
Step 3 : while(x>y){
Step 4 : if (x>0)
Step 5 : x=x-y; 4
Step 6 : else y=y-x;
Step 7 :} 5 6
Step 8 : print x, y;
Step 9 : } 7

Cyclomatic Complexity = E - N +2P


= 10-9+(2*1) 9 8
=3
BASIC COVERAGE CRITERIA
• Function coverage - Has each function (or
subroutine) in the program been called?
• Statement coverage - Has each node in the
program been executed?
• Decision coverage (not the same as branch
coverage)
- Has every edge in the program been executed?
i.e have the requirements of each branch of
each control structure (such as in
IF and CASE statements) been met as well as not
met?
• Condition coverage (or predicate coverage) - Has
each boolean sub-expression evaluated both to true
and false? This does not necessarily imply decision
coverage.
• Condition/decision coverage - Both decision and
condition coverage should be satisfied
•A techniqueGREY BOX
to test the TESTING
application with limited
knowledge of the internal workings of an application In
software testing, the term the more you know the
better carries a lot of weight when testing an
application
• Masteringthe domain of a system always gives the
tester an edge over someone with limited domain
knowledge
• Unlike black box testing, where the tester only tests the
application's user interface, in grey box testing, the
tester has access to design documents and the
database.
Having this knowledge, the tester is able to better
prepare test data and test scenarios when making the
test plan
SOFTWARE MAINTENANCE
• Software Maintenance is the process of modifying a software
product after it has been delivered to the customer. The main
purpose of software maintenance is to modify and update
software application after delivery to correct faults and to
improve performance.
• Why we need maintenance
Correct faults
 Improve the design.
Implement enhancements.
Interface with other systems.
Accommodate programs so that different
hardware, software, system features, and
telecommunications facilities can be used.
Migrate legacy software.
Retire software.
CATEGORIES OF SOFTWARE
MAINTENANCE
• Corrective maintenance:
Corrective maintenance of a software product may
be essential either to rectify some bugs observed
while the system is in use, or to enhance the
performance of the system.
• Adaptive maintenance:
This includes modifications and updates when the
customers need the product to run on new
platforms, on new operating systems, or when they
need the product to interface with new hardware
and software.
CATEGORIES OF SOFTWARE
MAINTENANCE cont..
• Perfective maintenance:
A software product needs maintenance to support
the new features that the users want or to change
different types of functionalities of the system
according to the customer demands.
• Preventive maintenance:
This type of maintenance includes modifications and
updates to prevent future problems of the software.
It goals to attend problems, which are not significant
at this moment but may cause serious issues in
future.
KEY ISSUES IN SOFTWARE
MAINTENANCE
Technical issues
• Limited understanding
• Testing
• Impact analysis
• Maintainability
Management issues
• Alignment with organizational objectives
• Staffing
• Process
• Organizational aspects of maintenance
• Outsourcing
MAINTENANCE PROCESS
• Maintenance Processes
• Maintenance processes provide needed
activities and detailed inputs/outputs to
those activities
• Maintenance Activities
• Unique activities
• Supporting activities
• Maintenance planning activity
• Software configuration management
• Software quality
THE IEEE1219-98 MAINTENANCE
PROCESS ACTIVITIES
TECHNIQUES
• Program FOR MAINTENANCE
Comprehension
• Programmers spend considerable time in
reading and understanding programs in order
to implement changes
• Code browsers are key tools for program
comprehension. Clear and concise
documentation can aid in program
comprehension.
• Reengineering
• Reengineering is defined as the examination
and alteration of software to reconstitute it in
a new form
• Reverse engineering
• reproduction of another manufacturer's
product after detailed examination of its
construction or composition
Project
Management
What is project management? (youtube.com)
Video
PROJECT MANAGEMENT
• Project management and software process are about
the aspects related to:
• managing a software project
• managing the people who contribute to develop the
software and
• about adhering to process to achieve the targets.

• Activities in a software project comprise a combination


of engineering and management activities
• Need to understand management and engineering
aspects of software project management and the
importance of managing, quality, cost and schedule
SOFTWARE PROJECT MANAGEMENT IS
AIMED TO,

• Ensure that the software is delivered on


time,
• within budget,
• with required functionality and
• satisfies the requirements of the client
MANAGEMENT ACTIVITIES

• Writing proposals
• Planning the project
• Scheduling the project
• Estimating the cost of the project
• Monitoring and reviewing the
project’s progress
• Selecting, hiring, and evaluating
personnel
• Writing reports and giving
presentations
The 4 P’s in Project
Management

People — the most important element of a


successful project

Product — the software to be built

Process — the set of framework activities and


software engineering tasks to get
the job done

Project — all work required to make the product a


reality
1. People

• The Stakeholders
• Team leaders
• The software team
Stakeholders
 Senior managers who define the business issues that often
have significant influence on the project.

 Project (technical) managers who must plan, motivate,


organize, and control the practitioners who do software
work.

 Developers who deliver the technical skills that are


necessary to engineer a product or application.

 Customers who specify the requirements for the software


to be engineered and other stakeholders who have a
peripheral interest in the outcome.

 End-users who interact with the software once it is released


for production use.
Team Leader
The MOI Model:

● Motivation: The ability to encourage (by “push or


pull”) technical people to produce to their best
ability.

● Organization: The ability to mold existing


processes (or invent new ones) that will enable
the initial concept to be translated into a final
product.

● Ideas or innovation: The ability to encourage


people to create and feel creative even when they
must work within bounds established for a
particular software product or application.
Factors to be considered when selecting
a software project team structure ...
 The difficulty of the problem to be solved
 The size of the resultant program(s) in lines of code or
function points
 The time that the team will stay together (team lifetime)
 The degree to which the problem can be modularized
 The required quality and reliability of the system to be
built
 The degree of sociability (communication) required for
the project
2. Product

Need to know,
 The product scope
 Problem decomposition
The Product Scope
 Determination of software scope: Scope is defined by,

● Context:
● How does the software to be built fit into a larger system,
product, or business context
● what constraints are imposed as a result of the context?

● Information objectives:
● What customer-visible data objects are produced as output
from the software?
● What data objects are required for input?

● Function and performance:


● What function does the software perform to transform
input data into output?
● Are any special performance characteristics to be
addressed?

 Software project scope must be definite and understandable


at the management and technical levels.
Problem Decomposition
 Sometimes called partitioning or problem elaboration, is
at the core of software requirement analysis

 Once scope is defined,


● The problem is decomposed into constituent functions
● The process that will be used to deliver it will be
decomposed.

Decomposition process continues until all functions or


problem classes have been defined

This is the strategy that applies as project planning


begins, and used to evaluate the estimations of cost
and schedule.
3. The Process
• The generic phases that characterizes the software
process - definition, development and support are
applicable to all software

• Selecting the process model that is appropriate for the


software to be engineered is important:
• The customers who have requested the product and
the people who will do the work
• The characteristics of the product itself
• The project environment in the software team works
4. Software
Projects
Factors that influence the end
result ...
• size

• cost
• delivery deadline
• budgets and costs
• application domain
• technology to be
implemented
• system constraints
• user requirements
• available resources
• product quality
Day School Activity
Day School Activity 5.5 GROUP ACTIVITY

Topic - Develop Mobile application Development project for the


Tourism Industry in Sri Lanka.

As per the above scenario students need to identify the 4 P's in


Project management concepts and describe using four column
tables for the activity in the provided google slide.
Project Management Skills

• Communication Skills
• Organizational Skills
• Team Building Skills
• Leadership Skills
• Technological Skills
Thank you

PO Box 21, Nawala, Nugegoda, Sri Lanka


Phone: +94 11 288 100
www.ou.ac.lk

You might also like