Class diversity support in object-oriented languages

Authors
Citation
A. Romanovsky, Class diversity support in object-oriented languages, J SYST SOFT, 48(1), 1999, pp. 43-57
Citations number
17
Categorie Soggetti
Computer Science & Engineering
Journal title
JOURNAL OF SYSTEMS AND SOFTWARE
ISSN journal
01641212 → ACNP
Volume
48
Issue
1
Year of publication
1999
Pages
43 - 57
Database
ISI
SICI code
0164-1212(19990801)48:1<43:CDSIOL>2.0.ZU;2-#
Abstract
We start with a general approach to introducing software fault tolerance (S FT) into object-oriented (OO) systems [Xu, J., Randell, B., Rubira, C.M.F., Stroud, R.J., 1995. Toward an object-oriented approach to software fault-t olerance. In: Avreski, D. (Ed.) Fault-Tolerant Parallel and Distributed Sys tems. DEEE CS Press, Silver Spring, MD.] and proceed in two directions. The first one is the use of SFT schemes within standard OO languages. New ques tions which arise when we are dealing with these languages are addressed. O ur intention is to thoroughly analyse all engineering steps which allow div ersity to be introduced in systems programmed in these languages. Some new general problems are spotted and discussed as well. The second direction is dealing with version concurrency and distributedness in a general way. We investigate providing SFT by class diversity, which is the most general way of designing diverse software in OO systems. We concentrate on N-version p rogramming (NVP) and give an exhaustive discussion of this approach. One of the main reasons for this choice is that we have come to believe that the general approach which allows a unified discussion of all SFT schemes is ra ther restrictive because it-does not properly address the differences betwe en these schemes which represent their essences and the most difficult part s of their implementation and support. Our intention is to discuss the use of NVP in OO terms and to outline all novelties arising from this. The re-u sability of SFT features is a key point in our approach. One of the conclus ions we have arrived at is that, generally speaking, the entire states of v ersion objects should be compared to defect and mask the faulty one. We pro pose unifying in one component features dealing with adjudication and fault y object recovery because these functionalities have a lot in common. Our a pproach is demonstrated using Ada 95. (C) 1999 Elsevier Science Inc. All ri ghts reserved.