0% found this document useful (0 votes)
50 views

Topics Covered Software Scope: Lesson 2

Uploaded by

Srawan Nath
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Topics Covered Software Scope: Lesson 2

Uploaded by

Srawan Nath
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

SOFTWARE ENGINEERING TECHNIQUES

LESSON 2:

Topics Covered This leads to your clarifications of what a software scope


Definition of Software Metrics, Software Scope, Business is?
Software, Different types of testing, Software Quality Factors,
Software Scope
Software Re-Engineering
Software scope must be unambiguous and understandable at
Objectives the management and technical levels. A statement of software
Upon completion of this Lesson, you should be able to: scope must be bounded i.e., quantitative data are stated
• Explain what is meant by software metrics explicitly constraints and/or limitations are noted and
mitigating factors are described.
• Know more about the scope of software
Now let us see what you mean by business software.
• Explain what is business software
• Know about the various types of testing and the quality Business Software
factors of software Business information processing is the largest single software
application area. Discrete system (Ex. Payroll, accounts
• Know more about what is meant by software re-engineering
receivable/payable, inventory) has evolved into management
In the previous lecture we saw a few definitions. We have plenty information software that accesses one or more large databases
more! containing business information. Applications in this area
Software Metrics restructure existing data in a way that facilitates business
The IEEE standard defines METRIC as a quantitative measure operations or management decision-making. In addition to
of the degree to which a system, component, or process conventional data processing application, business software
possesses a given attribute. When a single data point has been applications also encompass interactive computing Ex: point-
collected, for example: no of errors uncovered in a review, a of-sale transaction processing.
measure has been established. Measurement occurs as a result We are well aware of the testing done on the medicines and the
of the collection of one or more data points. A software metric various other products that we use in our daily life. Similarly
relates the individual measures in some way. Ex: The average testing is also concerned with software. Now we’ll see what do
no. of errors found per review. Metrics should be collected so you mean by software testing and how can it be done. For now
that process and product indicators can be ascertained. Process we’ll just go through the various types of testing that can be
metrics are used for strategic purposes. done on software.
Metrics collected from past projects are used as a basis from Software Testing
which effort and time estimates are made for current software
work. As technical work commences, other metrics begin to Unit Testing
have significance. Production rates represented in terms of This is the first level of testing in which different modules are
pages of documentation review hours, function points and tested against the specifications produced during design for the
deliver source lines are measured. The intent of metrics two modules. Unit testing is essentially for verification of the code
fold, first, they are used to make adjustments necessary to avoid produced during the coding phase, and hence the goal is to test
delays and mitigate potential problems and risks. Second, the internal logic of the modulus. The programmer of the
metrics are used to assess product quality on an ongoing basis, module typically does it. The module is considered for
and when necessar4y, modify the technical approach to improve integration and use by others only after it has been unit tested
quality. satisfactorily. As the focus of this testing is on testing the code,
structural or white-box testing is best suited for this level.
Just try answering the following questions:
Integration Testing
a. How does the software to be built fit into a larger system,
This is a type of test in which many unit tested modules are
product or business context and
combined into sub-systems, which are then tested. The goal
what constraints are imposed as a result of the context? here is to see if the modules can be integrated properly. Hence
b. What customer visible data objects are a produced as output the emphasis is one testing interfaces between modules. This
from the software? What data objects are required for testing activity can be considered as testing the design.
inputs?
System Testing
c. What function does the software perform to transform The entire software and hardware are combined and tested as to
input data into output? Are any special performance suitability, and inter-operability. This test can be related to
characteristics to be addressed? system requirements. The goal is to ensure that the software
developed interacts efficiently and effectively with the operating
system, other application software and the hardware

© Copy Right: Rai University


3E.253 5
environment. System testing can be considered to be a process functional and performance requirements, explicitly
SOFTWARE ENGINEERING TECHNIQUES

of verification in the developer’s environment documented development standards, and implicit characteristics
that are expected of all professionally developed software. The
Regression Testing
emphasis in this definition is on three points:
This is an important type of test that is performed when some
corrections or changes are made to an existing system. Changes a. Software requirements are the foundation from which
are fundamental and inevitable in software. Any software must quality is measured. Lack of conformance to requirements is
undergo changes. Usually, a change is made either to correct lack of quality.
detected errors or to add new features and functionality. It has b. Specified standards define a set of development criteria that
been found that whenever such corrections or changes are made. guide the manner in which software is engineered. If the
Some how they result in the propagation of unexpected and criterion is not allowed, lack of quality will almost surely
obviously undesirable side effects. Therefore the purpose of result.
regression testing is to ensure that changes made to the c. There is a set of implicitly requirements that often goes
software have not altered the behaviors or functionality. It has unmentioned.
been found that whenever such corrections or changes are made,
Ex: The desire for ease of use. If software conforms to its
somehow they result in the propagation of unexpected and
explicit requirements but fails to meet implicit requirements,
obviously undesirable side effects. Therefore the purpose of
software quality is suspect.
regression testing is the need for adequate and accurate
documentation at every stage. Of all software re-engineering is an important concept in the
development process, now it’s high time that we know of what
Many of you will not be aware of the term baseline. We’ll see
do you mean by software re-engineering.
what a baseline is?
Baseline Software Reengineering
Software reengineering is the process of examining and altering
A baseline is software configuration management concept that
a software system to reconstitute and re-implement it in a new
helps us to control change without seriously impeding
form. Basically, this means improving the documentation
justifiable change. The IEEE defines a baseline as a specification
(understanding and describing what a system does, its inputs
or product that has been formally reviewed and agreed upon
and outputs, its actions), redesigning and restructuring an
and, that thereafter serves as the basis for further development,
existing system to obtain a core acceptable form of a system.
and that can be changed only through formal change control
The two main sub-processes of a reengineering project are
procedures. In the context of software engineering, a baseline is
reverse engineering and forward engineering. Reserve
a milestone in the development of software that is marked by
engineering starts with an existing system, analyzing a system to
the delivery of one or more software configuration items (SCIs)
identify its components and inter-relationships among
and the approval of these SCIs that is obtained through the
components. A principle benefit of reverse engineering is that it
format technical review. For ex: the elements of a design
results in the recovery of useful information and structures.
specification have been documented and reviewed. Errors are
Forward engineering is the classical software development
found and corrected. Once all parts of the specification have
process where there is a movement from high-level description
been reviewed, corrected. Once all parts of the specification have
of a system (requirements) to identification of software
been reviewed, corrected and then approved the design
structures (architectures), to coding and physical
specification becomes the baseline. Further changes to the
implementation of system design.
program architecture can be made only after each has been
evaluated and approved. The most common software baselines Exercises
are system specification, software requirements, design 1. Assume that you are the manager of a software
specification, source code, test, plans, operational system and development team.
implementation.
Write a description of the software scope and resources
McCall’s Quality Factors required.
The quality factors focus on three important aspects of a 2. Write a paper summarizing recent advances in one of the
software product: it’s operational characteristics, it’s ability to leading edge software application areas. Potential choices
undergo change and it’s adaptability to new environments. The include: advanced Web-based applications, virtual reality,
factors relating to the operational phase are correctness, artificial neural networks, advanced human interfaces,
reliability, usability, integrity, and efficiency. Those relating to the intelligent agents.
revision phase are maintainability, flexibility and testability. And
3. Discuss whether software being developed needs to be
the factors relating to the transition phase are portability,
tested or not.
reusability, and interoperability.
Quality is also a subject for software. Now we will see what is Further Readings and Information Resources
software quality? The current state of the art in software engineering can best be
determined from monthly publications such as IEEE Software,
Software Quality Computers and the IEEE Transactions on Software
Software quality can be defined as conformance to explicitly Engineering.
stated functional and performance requirements explicitly stated

© Copy Right: Rai University


6 3E.253
Minasi(The software Conspiracy: Why Software Companies Put

SOFTWARE ENGINEERING TECHNIQUES


Out Faulty Products, How They Can Hurt You, and What You
Can Do, McGraw Hill, 2000) argues that the modern scourge of
software bugs can be eliminated and suggests ways to
accomplish this.
A wide variety of information sources on software related
topics and management is available on the Internet. An up-to-
date list of World Wide Web references that are relevant to
software can be found at the SEPA Web site:
http://www.mhhe.com/engcs/compsci/pressman/resources/
product.mhtml
Notes

© Copy Right: Rai University


3E.253 7

You might also like