This paper provides a new methodology to verify the timing constraints of real-time distributed systems. Several works concerning different facets of real-time distributed systems are integrated to achiveve this goal. As a modeling tool, communicating real-time state machines (CRSM’s)) [1] are employed. Depending on the nature of the system, finite state of infinite state, two approached are employed. For a finite state system a reachability graph is built from the CRSM’s model. All the possible execution paths of CRSM’s are represented in reachability graph. By real-time temporal logic, the timing constraints are specified. The timing constraints are verified using the reachability graph. For infinite state systems we have designed and built a simulator. The behavior of the system is simulated on the simulator and the timings can be observed from the history files generated by the simulator.
The thesis project describes the development of the Integrate Software Base (ISB) application
ISB is a window driven utility that allows a user to access by search, and reuse software elements stored in its software base. In the context of ISB, an element is defined as an independent, useful software entity. A software base is defined as a repository which stores software elements. ISB employs a simple and effective means for classifying the elements stored in the base in order to facilitate search and retrieval.
The software elements are defined and classified using a faceted classification scheme.
ISB can be accessed by a user while creating/editing a file in an editor. The user inferface of ISB provides a template in an entry window where the user can specify the attributes for the target element. ISB searches its software base for all candidate elements which fit the description of the target component specified by the user. If the search is successful, ISB displays the abstract of the candidate element(s). The user can further view the source code and/or the textual description of any candidate element. This source code and/or the textual description can also be imported into the editing session of the user.
Apart from searching and retrieval of elements stored in its software base, ISB provides librarian facilities for inserting new elements, and updating and deleting existing elements.
While ISB is not intended to be a full software development environment, it is a significant component and a good foundation of one. It supports the software development reusability concept, which is becoming more and more popular in the software reusability concept, which is becoming more and more popular in the software engineering discipline. ISB provides the integration of an editor, relational database, and a user interface. Thus the goals of ISB are to develop a valuable software generation tool while promoting software reusability and software integration.
Another goal of the project is to use rigorous and formal software development techniques promoted throughout the software engineering program to develop the software system from its requirements to its implementation and testing. Thus it studies the possibilities and advantages of using the formal specification language Z to specify the functionalities of a non-trivial software system. It will also be shown how Z provides a strong framework for subsequent design and implementation.
The user interface is also a significant feature of ISB’s development. A specification language based on a variation of State Transition Diagrams is used to specify the user interface. Throughout ISB’s development every effort was made to couple as loosely as possible its software base and user interface components. This leaves open the possibility to easily adapt an alternate user interface at a later stage. ISB’s help library, which provides context sensitive help, is also a significant feature of the user interface.
The ISB project has been a challenge
from beginning to end. Its development contained both theoretical and practical
aspects, and this made it interesting. It is hoped that ISB’s software
base will grow over time and that programmers will avail of its usefulness.
The concept of software reusability encourages programmers to reuse software
which has already been developed and tested.
This paper presents a library of re-usable
data structures in the context of an object oriented software development
methodology. The object-oriented methodology is based on proven software
engineering principles such as abstraction, encapsulation, modularity,
reusability, and safety. The C++ programming language provides mechanisms
to implement these principles at the code level. This paper defines the
object-oriented foundations and demonstrates the constructs in C++ which
allow a programmer to effectively implement these principles. Complete
examples of several data structures based on these foundations and constructs
are illustrated. The specifications for stack and queue classes are presented
including both static and dynamic representations. The specifications for
lists and binary trees are then presented using a dual paradigm which supports
both positional and recursive navigation.
This paper provides a set of verification criteria to verify the product of object-oriented analysis and design(OOAD).
Several stages of work are integrated
to achieve this goal. The importance of verification in OOAD motivates
the thesis. Several popular OOAD methodologies are analyzed and compared.
Critical OOAD concepts and components which are independent of OOAD methodologies
are extracted. A set of verification criteria is established based on these
critical concepts and components to verify each OOAD component for its
completeness, consistency and correctness.