Unit 2
Unit 2
Goals of design:
McGlaughlin suggests three characteristics that serve as a guide for
the evaluation of a good design.
• The design must implement all of the explicit requirements
contained in the analysis model, and it must accommodate all of
the implicit requirements desired by the customer.
• The design must be a readable, understandable guide for those
who generate code and for those who test and subsequently
support the software.
• The design should provide a complete picture of the software,
addressing the data, functional, and behavioral domains from an
implementation perspective.
Quality guidelines:
• In order to evaluate the quality of a design
representation we must establish technical criteria for
good design. These are the following guidelines:
What Is Architecture?
--Architectural design represents the structure
of data and program components that are
required to build a computer-based system. It
considers
-The architectural style that the system will take,
-- The structure and properties of the
components that constitute the system, and
-- The interrelationships that occur among all
architectural components of a system.
The architecture is a representation that
enables a software engineer to
- data design
Data design enables us to represent the
data component of the architecture.
- architectural design.
Architectural design focuses on the
representation of the structure of software
components, their properties, and
interactions.
Why Is Architecture Important?
Representations of software architecture are an
enabler for communication between all parties
(stakeholders) interested in the development of a
computer-based system.
1)Unit Testing
2) Integration Testing
3)Validation Testing and
4)System Testing
A STRATEGIC APPROACH TO SOFTWARE TESTING
• Testing is a set of activities that can be
planned in advance and conducted
systematically.
• For this reason a template for software testing
—a set of steps into which you can place
specific test case design techniques and
testing methods—should be defined for the
software process.
• To perform effective testing, you should conduct effective
technical reviews(Chapter 15). By doing this, many errors
will be eliminated before testing commences.
• Testing begins at the component level and works
“outward” toward the integration of the entire computer-
based system.
• Different testing techniques are appropriate for different
software engineering approaches and at different points
in time.
• Testing is conducted by the developer of the software and
(for large projects) an independent test group.
• Testing and debugging are different activities, but
debugging must be accommodated in any testing
strategy.
Verification and Validation
2) Equivalence partitioning
Divides all possible inputs into classes such
that there are a finite equivalence classes.
Equivalence class
White Box testing
Also called glass box testing
Involves knowing the internal working of a program
Guarantees that all independent paths will be
exercised at least once.
Exercises all logical decisions on their true and false
sides
Executes all loops
Exercises all data structures for their validity