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

Lesson 5:: Topics Covered

Uploaded by

Srawan Nath
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Lesson 5:: Topics Covered

Uploaded by

Srawan Nath
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

SOFTWARE ENGINEERING TECHNIQUES

LESSON 5:

Topics Covered c. Bheavioral Model View: This part of the analysis model
Object Oriented analysis and design, Object Oriented testing represents the dynamic or behavioral aspects of the system.
tools, Software Re-engineering It also depicts the interactions or collaborations between
various structural elements described in the user model and
Objectives
structural model views.
Upon completion of this Lesson, you should be able to:
d. Implementation Model View: The structural and
• Know what do you mean by object oriented analysis and
behavioral aspects of the system are represented as they are
design
to be built.
• Know what are the various object oriented testing tools
e. Environment Model View: The structural and behavioral
• Know what is software re-engineering
aspects of the environment in which the system is to be
Till now we have been seeing the models and the other implemented are represented.
important concepts of software engineering. Today we’ll have a In general, UML analysis modeling focuses on the user model
look at the one of the latest emerging trends in software and and structural model and structural model views of the system.
that is object-oriented analysis. UML design modeling addresses the behavioral model,
Let me ask you what is object-oriented analysis? implementation model and environmental model views.
Object-oriented Analysis What is object-oriented design?
The objective of Object Oriented Analysis [OOA] is to develop Object Oriented Design
a model that describes computer software as it works to satisfy a The design of object Oriented software requires the definition
set of customer-defined requirements. The analysis model of a multi-layered software architecture, the specification of sub
depicts information, function and behavior within the context systems that perform required functions and provide
of the elements of the object model. To perform OOA a infrastructure support, a description of objects [classes] that
software engineer should perform the following generic steps form the building blocks of the system, and a description of
a. Elicit customer requirements for the system the communication mechanisms that allow data to flow
b. Identify scenarios or use-cases between layers, subsystems, and objects. The unique nature of
OOD lies in its ability to build upon tour important software
c. Select classes and objects using basic requirements as a guide
design concepts.
d. Identify attributes and operations for each system object.
• Abstraction
e. Define structures and hierarchies that organize classes.
• Information hiding
f. Build an object-relationship model
• Functional independence
g. Build an object-behavior mode
• Modularity
h. Review the OO Analysis model against user-cases and
scenarios. Let us discuss about the design methods

Now let us one of the nest important topic, that is UML, All design methods strive for software that exhibits these
What is UML? fundamental characteristics, but only OOD provides a
mechanism that enables the designer to achieve all four without
Over the past decade, Grady Booch, James Rumbagh and Ivar complexity or compromise. To perform OOD, a software
Jacobson have collaborated to combine the best features of engineer should perform the following generic steps.
their individual OOA and OOD methods into a unified
method. The result, called the Unified Modelling Language a. Describe each subsystem and allocate it to processors and
[UML] has become widely used throughout the industry. In tasks
UML, a system is represented using five different “views” that b. Choose a design strategy for implementing data
describe the system from distinctly different perspectives. The management, interface support and task management
views present in UML are: c. Design an appropriate control mechanism for the system
a. User Model View; This view represents the system [or d. Perform object design by creating a procedural representation
product] from the users perspective. for each operation and data structures for class attributes.
b. Structural Model View: Data and functionality are viewed e. Perform message design using collaborations between
from inside the system. That is, static structure [classes, objects and object relationships
objects and relationships] is modeled. f. Create the messaging model.
g. Review the design model and iterate as required

© Copy Right: Rai University


18 3E.253
What is object-oriented testing? difference between both and what are the characteristics of

SOFTWARE ENGINEERING TECHNIQUES


software over hardware that distinguishes it.
Object-oriented Testing [OOT]
The architecture of object oriented software results in a series of Software and Hardware Compared
layered subsystems that encapsulate collaborating classes. Each a. Software is developed or engineered, it is not manufactured
of these system elements [subsystems and classes] performs in the classical sense. [Refer to ‘bathtub’ curve for hardware
functions that help to achieve system requirements. It is failure and modified curve for software failure.]
necessary to test an OO system at a variety of different levels in
b. Software does not ‘wear out’ This introduces the problem or
an effort to uncover errors that may occur as classes collaborate
retirement and replacement.
with one another and subsystems communicate across
architectural layers. c. Although the industry is moving towards component based
assembly, most software continues to be custom-built
OO Testing is strategically similar to the testing of conventional
system, but is tactically different. Because the OO analysis and d. Software advances have not kept pace with advances in
design models are similar in structure and content to the hardware [refer “moore’s law’]
resultant OO program, “testing” begins with the review of These distinctions apart, software is likely to be differentiated.
these models. Once code has been generated, OO testing begins We are moving inexorably towards a “knowledge society’ and all
in the “small” with class testing. A series of tests are designed of us in one sense or the other would become “knowledge
that exercise class operations and examine whether errors exist workers” In this scenario, the ability to use information as a
as one class operations and examine whether errors exists as one Stratetgic Resource gains formidable importance. Hardware is
class collaborates with other classes. As classes are integrated to tangible, technology-based and can easily be replicated. As such,
form a subsystem, thread-based, use-based and cluster testing, even if it is possible to develop a competitive advantage
along with fault-based approaches are applied to fully exercise through hardware, such advantage is bound to be transient. On
collaborating classes. Finally, use case [developed as part of the the other hand, software, being in the intellectual, intangible
OO analysis model] is used to uncover errors at the software domain, belongs to the category of Capabilities. Therefore
validation level. any advantage gained through software is likely to be more
We have already seen the different techniques of testing in the enduring. Resources based competencies are imitable and less
case of a conceptual software, now let us see it in the case of an durable. Capability based competencies are more difficult to
object-oriented software and see whether both are the same imitate and are therefore more durable
• Unit testing in the OO context: Class Testing of OO Software Re-engineering: Re-engineering
software is the equivalent of unit testing for conventional a system means examining and altering a software system to
software. reconstitute and re-implement it in a new form. Basically, this
• Integration Testing In the OO Context: There are two means improving the documentation, understanding and
different strategies for integration testing. The first, Thread describing what a system does, its inputs and outputs, its
Based testing, integrates the set of classes required to transforms, redesigning and restructuring an existing system to
respond to one input or event for the system. Each thread is obtain a more acceptable and functionally more superior form
integrated and tested individually. The second integration of a system. The two main sub-processes of a reengineering
approach, Use Based testing begins the construction of the projector Reverse Engineering And Forward Engineering.
system by testing those classes [called independent classes] Reverse engineering starts with an existing system, analyzing a
that use very few [if any] of server classes. After the system to identify its components and interrelationships
independent classes are tested, the next layer of classes, called among components. A principal benefit of reverse engineering
Dependent Classes, are tested. Cluster Testing is one step is it results in the recovery of useful information and structures.
in the integration testing of OO software. Here, a cluster of Examples of items that can be recovered are reusable data
collaborating classes is exercised by designing test cases that models, control structures, interface descriptions, designs,
attempt to uncover errors in the collaboration. behavioral properties, functional and performance requirements
data structures, objects, algorithms, architectures and business
• Validation Testing in the OO context: At the validation or
rules, Reverse engineering is performed to gain a better
system level, the details of class connection disappear. The
understanding of an existing system. In other words, reverse
validation of OO software focuses on user-visible action and
engineering is an analysis process. FORWARD
user-recognizable output from the system. To assists in the
ENGINEERING is found in a software process where there is
derivation of validation tests, the tester should draw upon
a movement from a high-level description [requirements], to
the use-cases that are part of the analysis mode.
identification of software structures [architectures] to coding
Conventional black-box testing methods can be used to
and physical implementation of a system design.
drive validation tests. In addition, test cases may be derived
from the object-behavior model and from event flow We have been learning about software re-engineering through
diagram created as part of OOA the last four sessions but then what is the need for re-
engineering.
We have been learning about or hearing the terms software and
hardware. But then have you ever thought of what is the

© Copy Right: Rai University


3E.253 19
Need for Reengineering A wide variety of information sources on software related
SOFTWARE ENGINEERING TECHNIQUES

Legacy Systems, cost of maintenance being very high; The topics and management is available on the Internet. An up-to-
exorbitant cost of developing new systems; the inability to date list of World Wide Web references that are relevant to
modify an existing software by conventional methods; the need software can be found at the SEPA Web site:
to enhance functionality and performance while keeping costs http://www.mhhe.com/engcs/compsci/pressman/resources/
within manageable limits. OOA.mhtml
Steps http://www.mhhe.com/engcs/compsci/pressman/resources/
• Inventory Analysis OOD.mhtml
• Document Restructuring http://www.mhhe.com/engcs/compsci/pressman/resources/
• Reverse engineering
OOT.mhtml

• Code restructuring
http://www.itmweb.com/essay554.htm

• Data restructuring Notes


• Forward Engineering
Now let me see what’s the difference between software re-
engineering and restructuring.
Restructuring
Software Restructuring modified source code and/or data in an
effort to make it amenable to future changes. In general,
restructuring does not modify the overall program architecture.
It tends to focus on the design details of individual modules
and on local data structures defined within modules. If the
restructuring effort extends beyond module boundaries and
encompasses the software architecture, Restructuring becomes
Forward Engineering.
Summary
In this lecture we have reviewed some important concepts
associated with object-oriented methodology. One of the
primary advantages of the object-oriented approach is increased
productivity. The reason why object-oriented projects achieve
dramatically higher levels of productivity is primarily due to the
re-use of classes and objects and partly because of inheritance as
well as the conceptual simplicity brought about by the object
approach.
Exercise
1. What is the difference between object-oriented analysis and
object-oriented design?
2. Enumerate some of the important characteristics of a good
object-oriented design?
Further Readings and Information Sources
The explosion of interest in object-technologies has resulted in
the publication of literally hundreds of books during the past
years.
Zamir(Handbook of Object Technology, CRC Press, 1998) has
edited a voluminous treatment that covers every aspect of
Object technologies.
The unique nature of the OO paradigm poses special challenges
to project managers. Books by Cockburn(Surviving Object-
Oriented projects : A manager’s guide, Addition Wesley, 1995),
Goldberg and Rubin(Succeeding with objects: Decision
Frameworks for Project Management, Addition Wesley,
1995)consider strategies for planning, tracking, and controlling
OO projects.

© Copy Right: Rai University


20 3E.253

You might also like