February
2001 Issue: 18
Journal of Conceptual Modeling
www.inconcept.com/jcm
A
System Level Testing Modeling Mechanism
in a Reengineering Environment
by
Dr. Kiran J. Fernandes, Dr. Vinesh H. Raja, and Mark Morley
Abstract
One of the possibilities that has been advocated by the use of the Object Oriented Paradigm (OOP) is system level modeling (FRa00). Although OOP provides a well-founded platform for modeling, one of the main difficulties remains in the area of software system testing and maintenance. This can be attributed to the fact that traditionally code and its tests are developed and described separately. This paper provides a novel approach to object oriented modeling and testing of systems in a systemic re-engineered environment. This work has been carried under the auspices of the EPSRC funded AMORE (A Methodology using Object Orientation in Reengineering Enterprises) grant, M02675 (RBKJ99).
This paper proposes a method of Built-In Test (BIT) for object-oriented applications. The advantage of this method is that the BITs in the software can be inherited and reused as code. Therefore building tests into the conventional software during object-oriented design can be a significant approach for the existing Object Oriented (OO) systems. The comprehension of this novel approach is explained via a rework example from British Aerospace Systems (BAe Systems) (SI 4410).
Introduction
Object-oriented modeling is the process of turning an idea or a problem specification into an object-oriented representation (FRb00)(UF99)(FRc00) and finally into a program. The program consists of a group of objects that communicate with one another. These groups of objects can been derived from use cases (Jac95). The objects are created as the program executes, and are instances of classes that exist in the program's source code. Object-oriented technology is based on several concepts that, when applied to a design or program, can make the resulting product easier to extend and reuse. Five such features are abstraction, encapsulation, specialization, type promotion and polymorphism.
The most powerful feature of OOP is the availability of reuse by inheriting code and structure information at object and system levels. A recent development of OOP is the BIT software in which the test are self-contained rather than in separate modules, so that test can be inherited and reused for the first time as that of code in Object oriented Software (OOS) development and Object Oriented (OO) re-engineering.
This paper proposes a method of BIT for object orientation. The concept of BIT can be applied to software reengineering at object and system levels. We propose that these requirements should be incorporated into the system during the initial design process (requirements analysis). This approach makes the code self-testable, test-reusable and easily maintainable.
Testing problems in Software reengineering
The main problem associated with conventional testing and maintenance is that they are typically application-specific and are not reusable. Even software development giants have different teams that perform various tasks associated with the development process., i.e. the development team, testing team and design team are all independently located and often do not work collaboratively to test or maintain the software. These conventions make testing and maintenance particularly difficult.
BIT is a new philosophy contributing towards the development of testable and maintainable software, and a new approach for OO reengineering. The focus of conventional software systems has been on existing objects and systems, where as the proposed approach draws attention to built-test mechanism into objects and systems during design and coding, so that the successive testing and maintenance processes can be simplified. The most interesting feature of the BIT technique is that tests, for the first time, can be inherited and reused in the same way as that of code in the conventional OO software. The BIT enables the OOS more testable and maintainable for both newly developed and/or re-engineered software, because of its self-containment of code, structure, as well as test within a single source module. Thus the maintenance team and the end users of the OOS are no longer required to redesign and reanalyze the code and class structure during testing and maintenance.
The Case Study
A case study from BAe Systems (SI
44107) defines a method of adding rework notices to a work order, which is
being processed (as referred to in BAe systems as Work-In-Progress). Rework
here can be defined as 'additional work carried out to clear defects', but
does not include unplanned activities in support of agreed changes.
The operator identifies the rework and then determines the suitability of
the authorizer based on internal protocols developed using time factor
analysis. Due to the brevity of this paper we will not discuss the details
of this particular activity. After authorization (either by himself or by
the Production Leader) the Work Order Planner then takes charge. He creates
a new work order or rework operation depending on the status of the work
order. The use case representation of the case domain is represented in
Figure 1.

Figure 1 UML representation of the case domain
Built-in tests in OO systems
The general structure of an object in Object Oriented Paradigm (OOP) is shown in Figure 2. An object consists of two structural parts: the interface and the implementation. The interface of an object is the only means of external access to the member functions contained in the object. The implementation of an object is the description in code of all member functions.
|
|
Class
class-name {
//interface
data
declaration;
constructor
declaration;
destructor
declaration;
function
declaration;
//implementation
constructor;
destructor;
functions; } [object-name-list] |
Figure 2 A typical prototype of an object
An object is reusable because of its features of encapsulation and inheritance. A prototype of built-in test (or BIT) objects can be developed as shown in Figure 3. It is an extension of the conventional object structure by embedding test declarations in the interface and test cases in the implementation. Then the tests can be inherited and reused in the same way as that of member functions within the object.
Class
class-name {
//interface
data declaration;
constructor declaration;
destructor declaration;
function declaration;
Tests declaration;
//Built-in test declarations
//implementation
constructor;
destructor;
functions;
TestCases;
//Built-in test cases
} [object-name-list]
Figure 3 An object with Built-in test cases
The BITs have the same syntactical functions as that of the standard constructor and destructor in an object.
OO re-engineering with BIT can be carried out at object level as shown in Figure 3. In the normal mode, a testable object has the same structure as the conventional object. The static and dynamic behavior of the BIT object is the same as this if the conventional objects. The member functions can be called by ObjectName::FunctionName; and BIT is in stand-by and exists without any effect to the run-time efficiency of the object.
In the test/maintenance mode, the BIT in a testable object can be activated by calling the test cases as member functions, i.e.;
TestableObject::TestCase1;
TestableObject::TestCase2;
…….
TestableObject::TestCaseN
Each TestCaseN consists of a test driver and some test cases for the specific object. The test results can be automatically reported by the BIT driver.
Built-in-test at System Level
The BIT method developed at object level can be naturally extended to the system level in OO Systems. A system with built-in testing classes and subsystem is shown in Figure 3. It is important to incorporate this at a systems level during initial design, as this will eliminate most of the problems associated with software testing. Figure 4 represents the same case study with a built-in testing method at a systems level. A new class (classTester) with all self-testing method and data was defined.

Figure 4 Deployment of built-in
tests in OOS
Within each classes, such as in the identifyRework, closeWorkorder, etc, the
testable mechanisms described in section 3.1 can be adopted in every object.
This was achieved by inheriting the methods from ClassTester. In this way,
ideal OO software with the BITs is implemented. The most interesting
features of the BIT reengineered software are that it is test inheritable,
test reusable and self-testable at object, class and system levels.
In the normal mode, similar to the BIT objects, the static and dynamic behaviors of the OO reengineered system with BIT are the same as those of the conventional ones.
Applying the BIT method in reengineering as existing and maintainability dramatically. Several institutions are planning to apply the BIT method in their system re-engineering and implementation.
Conclusions
We are seeking new methodologies supplementary to OOP in software development and OO re-engineering. This paper extends software reuse methods from code to the BITs. Incorporating the BITs during OO reengineering makes the existing OOS highly testable, test reusable and maintainable based on the self-contained testing mechanisms. Combining the BIT method with the OOP approach, high quality and productivity can be gained in reengineering the existing systems.
The BIT methods provide a new approach for OO reengineering methodologies. The most interesting features of the BIT method are that the BITs can be systematically reused at object and system levels. Incorporating the BIT method with the OO framework techniques in OO reengineering, the existing OO legacy systems can be well re-engineered for higher design quality on system testability, maintainability and reliability.
Acknowledgements
The authors are indebted to the EPSRC for their financial support under the auspices of the AMORE research grant, M02675.
References
FRa00 Fernandes K., and Raja V. Application Of The Publish-Subscribe Paradigm As A Knowledge Transfer Tool. Journal of Knowledge Management Practice, Article 15, February 2000.
FRb00 Fernandes K., and Raja V. Incorporated Tool Selection System using Object Technology. International Journal of Machine Tool and Manufacture, Vol. 40, pp. 1547-1555. 2000.
FRc00 Fernandes K., and Raja V. Tool and Coolant Selection for High Speed Machining using Object Technology. Proceedings of the International Conference on Precision Engineering, Singapore, pp. 477-486, 2000.
Jac95 Jacobson I. Object-oriented Software Engineering - A Use Case Driven Approach. Addison-Wesley, Wokingham, UK. 1995.
R00 Richer C. Designing Flexible Object-oriented Systems with UML. MacMillan Technical Publications. 2000.
RBKJ99 Raja V., Benyon M., Keast J., and Joy M. A Methodology using Object-orientation in Reengineering Enterprises. Engineering and Physical Sciences Research Council Grant M02675.
Ric99 Richer C. Designing Flexible Object-oriented Systems with UML. MacMillan Technical Publishing, USA, 1999.
SI4410 British Aerospace Systems Standards Instruction. Work Order Rework Process. Issue 1, 26/03/99.
UF99 Usher J., and Fernandes K. Object-oriented Application of Tool Selection in Dynamic Process Planning. International Journal of Production Research, Vol. 37(13), 2879-2894. 1999.
![]()
Dr. Kiran Jude Fernandes is a Senior Research Fellow in the Warwick Manufacturing Group at the University of Warwick. He is an alumunus of the Walchand Institute of Technology, Mississippi State University and the Massachusetts Institute of Technology. After working for the National Aeronautics and Space Administration at Stennis Space Centre he moved to join the WMG to work in the area of Information Systems and Modeling.
Mark Morley
Parametric Technology (UK) Limited
Argent Court
Warwick University
Science Park
Coventry CV4 7EZ
Dr. Vinesh Raja is a Principal Research Fellow and the Head of the Information Technology Group at the University of Warwick. Vinesh is also incharge of the Object Technology Centre, the Sun European Manufacturing Centre of Excellence and the Collaborative Product Commernce Centres. He has been an active academic in the field of manufacturing information technology for over 18 years.
![]()
© Copyright, 1998-2004 InConcept
(Information Conceptual Modeling, Inc.) All
Rights Reserved. Privacy Statement.
ISSN: 1533-3825