9 research outputs found

    Experiences with the Unified Modeling Language (UML)

    Get PDF

    A Machine With Class: A Framework for Object Generation, Integration and Language Authentication (FROGILA)

    Get PDF
    The object technology model is constantly evolving to address the software crisis problem. This novel idea which informed and currently guides the design style of most modern scalable software systems has caused a strong belief that the object-oriented technology is the ultimate answer to the software crisis, i.e. applying an object-oriented development method will eventually lead to quality code. It is important to emphasise that object-orientedness does not make testing obsolete. As a matter of fact, some aspects of its very nature introduce new problems into the production of correct programs and their testing due to paradigmatic features like encapsulation, inheritance, polymorphism and dynamic binding as this research work shows. Most work in testing research has centred on procedure-oriented software with worthwhile methods of testing having been developed as a result. However, those cannot be applied directly to object-oriented software owing to the fact that the architectures of such systems differ on many key issues. In this thesis, we investigate and review the problems introduced by the features of the object technology model and then proceed to show why traditional structured software testing techniques are insufficient for testing object-oriented software by comparing the fundamental differences in their architecture. Also, by reviewing Weyuker’s test adequacy axioms we show that program-based testing and specification-based testing are orthogonal and complementary. Thus, a software testing methodology that is solely based on one of these approaches (i.e. program-based or specification-based testing) cannot adequately cover all the essential paths of the system under test or satisfactorily guarantee correctness in practice. We argue that a new method is required which integrates the benefits of the two approaches and further builds upon their individual strengths to create a more meaningful, practical and reliable solution. To this end, this thesis introduces and discusses a new automaton-based framework formalism for object-oriented classes called the Class-Machine and a test method that is based on this formalism. Here, the notion of a class or the idea behind classification in object-oriented languages is embodied within a machine framework. The Class-Machine model represents a polymorphic abstraction for heterogeneous families of Object-Machines that model a real life problem in a given domain; these Object-Machines are instances of different concrete machine types. The Class-Machine has an extensible machine implementation as well as an extensible machine interface. Thus, the Class-Machine is introduced as a formal framework for generating autonomous Object-Machines (i.e. Object-Machine Generator) that share common Generic Class-Machine States and Specific Object-Machine States. The states of these Object-Machines are manipulated by a set of processing functions (i.e. Class-Machine Methods and Object-Machine Methods) that must satisfy a set of preconditions before they are allowed to modify the state(s) of the Object-Machines. The Class-Machine model can also be viewed as a platform for integrating a society of communicating Object-Machines. To verify and completely test systems that adhere to the Class-Machine framework, a novel testing method is proposed i.e. the fault-finders (f²) - a distributed family of software checkers specifically designed to crawl through a Class-Machine implementation to look for a particular type of fault and tell us the location of the fault in the program (i.e. the class under test). Given this information, we can statistically show the distribution of faults in an object-oriented system and then provide a probabilistic assertion of the number and type of faults that remain undetected after testing is completed. To address the problems caused through the encapsulation mechanism, this thesis introduces and discusses another novel framework formalism that has complete visibility on all the encapsulated methods, memory states of the instance and class variables of a given Object-Machine or Class-Machine system under test. We call this the Class Machine Friend Function (CMƒƒ). In order to further illustrate all the fundamental theoretical ideas and paradigmatic features inherent within our proposed Class-Machine model, this thesis considers four different Class-Machine case studies. Finally, to further show that the Class-Machine theoretical purity does not mitigate against practical concerns, our novel object-oriented specification, verification, debugging and testing approaches proposed in this thesis are exemplified in an automated testing tool called: The Class-Machine Testing Tool (CMTT)

    Erweiterung des CRC-Karten-Konzeptes um Rollen

    Get PDF
    Die rollenbasierte Modellierung ist ein aktueller Forschungszweig, welcher Verfahren für die Analyse und die Lehre benötigt. Zu diesem Zweck präsentiert die Arbeit eine Erweiterung des klassischen, objektorientierten CRC-Karten-Verfahrens um rollenbasierte Konzepte. Diese basiert auf grundlegenden Eigenschaften rollenbasierter Elemente, wie Rollen, Objekte und Kontexte, welche modular in das CRC-Karten- Verfahren eingebunden werden. Weiterhin soll anhand einer empirische Studie ermittelt werden, wie gut das rollenerweiterte R-CRC-Karten-Verfahren für die Aufgaben in Analyse und Lehre geeignet ist. Das R-CRC-Karten-Verfahren soll letztendlich eine effiziente Möglichkeit bieten, Problemstellungen rollenbasiert zu analysieren und rollenbasierte Konzepte in der Lehre zu vermitteln

    Heuristics for use case descriptions.

    Get PDF
    Use cases, as part of the Unified Modelling Language, have become an industry standard. The major focus has been on the use case diagram. It is only recently that any detailed attention has been paid to the use case description. The description should be written in such a way as to make it communicable to its reader. However, this does not always appear to be the case. This thesis presents the 7 C's of Communicability as quality features of use case descriptions that make them more comprehensible. The 7 C's are derived from software engineering best practice on use case descriptions and from theories of text comprehension. To help in writing descriptions, the CP Use Case Writing Rules are proposed, a small set of guidelines derived from the 7 C's. Going beyond requirements, software engineers often employ use case descriptions to help them build initial design models of the proposed system. Despite Jacobson's claim that "objects naturally fall out of use cases", fording design-oriented classes and objects in use case descriptions is shown not to be straightforward. This thesis proposes a Question Set which allows the engineer to interrogate the description for important elements of specification and design. Experimentation shows that the CP Writing Rules furnish descriptions that are as comprehensible as those written by other guidelines proposed in the literature. It is also suggested that descriptions be written from the perspective of their intended audience. The limitations of conducting requirements engineering experiments using students are considered and it is suggested that experimenters should not expect large effects from the results. An industrial case study shows that although the CP Rules could not be applied to all events in the use case descriptions, they were applied to most and at varying levels of abstraction. The case study showed that the 7 C's did identify problems with the written descriptions. The Question Set was well received by the case study stakeholders, but it was considered time consuming. One of the overriding findings from the case study was that project time constraints would not allow the company to use the techniques suggested, although they recognised the need to do so. Automation would make industrial application of the CP Rules and 7 C's more feasible

    Improving integration and consistency in the OMT methodology

    Get PDF
    Object Modeling Technique (OMT) by Rumbaugh et al, is a methodology for the analysis and design of object-oriented systems. The primary strength of the OMT methodology is that it allows a complete specification of a system, covering it's static structure, dynamic behaviour and functionality. It models each system from three related but different viewpoints - the functional model specifies what happens, the dynamic model specifies when it happens and the object model describes what it happens to. Each model uses a concise and understandable notation, and thus all three models can be appreciated to a large extent on their own. However, as each of these models represents a different view of the system, they need to be integrated together in order to get the overall picture. Herein lies the crux of the problem as the diversity present in the OMT methodology is also paradoxically it's major weakness. Each model is developed more or less independently, and the interrelationships between the three models are not explicit, resulting in a lack of integration, and subsequent lack of consistency between the object, dynamic and functional models. The purpose of my research is two-fold. Firstly to discover and document the cause of this lack of integration and consistency, namely the apparent weakness of the functional model, caused by the unsuitability of using data flow diagrams to model the functionality of an object-oriented system; and the inadequate inter-model relationships, which are poorly defined and are neither supported by formal steps in the methodology nor a comprehensive illustrated example. The second part of my research involves developing solutions to alleviate this lack of integration and consistency, in the form of a somewhat revised functional model which embraces the object-oriented paradigm; and improved inter-model relationships which extend the OMT methodology, to incorporate guidelines for constructing an integrated analysis model, as well as guidelines for checking the completed model for consistency. The layout of the thesis is as follows. The first chapter introduces the OMT methodology by describing the object, dynamic and functional models as proposed by Rumbaugh. The second chapter documents the two major factors which are responsible for the unsatisfactory level of integration and consistency within OMT, while the third chapter proposes detailed solutions to each of these identified problems in the form of a revised functional model and inter-model relationships. The fourth chapter comprises a case study detailing how to construct the revised functional model, and how to integrate the three OMT models. And finally, the fifth chapter concludes the thesis by discussing the strengths and weaknesses of the revised OMT approach, as well as reviewing current research in OMT, and identifying some areas of potential future research for the methodology

    Modelling global behaviour with scenarios in object-oriented analysis

    Get PDF
    The first object-oriented analysis methods focused on the specification of the classes of a system and on the static relationships between them. Dynamic relationships between classes and the functional view of the system as a whole were neglected, and no models were offered for capturing system requirements. This changed with the publication of use case driven approaches such as OOSE (1992) and Fusion (1994). Modelling global behaviour by scenarios in both requirements analysis and design has since been adopted by many object-oriented methods. Scenarios are also called use cases, system operations or business processes, and they are modelled using different notations. Some of the analysis methods that use scenarios have common characteristics, namely i) the similarity of the relationship between the entities of a data model and the scenarios of a flat scenario model with a matrix, and ii) the assumption that the externally visible behaviour of the system can be subdivided into more or less independent scenario types. In the following, we will refer to these characteristics by the term matrix approach. While in many projects the matrix approach has been used successfully, several difficulties arise when more complex systems are modelled: relationships and similarities between different scenario types cannot be expressed, the dependencies between scenario types are not modelled, only one abstraction level can be represented, and the apparently seamless transition from the analysis to the design model may result in a low quality object model with a strong bias towards data modelling. These difficulties lead us to propose an enhanced scenario modelling technique (called SEAM) which overcomes some of the weaknesses of the matrix approach. This modelling technique includes composition, aggregation, specialisation and extension hierarchies of services, and is based on the paradigm of interacting objects (which can be atomic objects, subsystems or systems) offering services. Scenario types, showing the possible interaction sequences for a specific service, can be modelled on several abstraction levels, and can describe the services of any kind of object (and thus also the global behaviour of a whole system) from both an internal and external point of view. We describe the concepts and the notation of SEAM, and we show how it can be integrated into the Fusion method. The difficulties that may arise in projects using methods based on the matrix approach are not only due to the limitations of scenario modelling techniques. A major factor is the often contradictory definition of the analysis model goals, which leads to clashes of intent. Therefore we discuss the nature of such intent clashes and analyse how the different software development methods deal with them. Finally we give an overview of the various notations and basic concepts used by different scenario modelling techniques, and we provide summaries of current, mostly objectoriented, approaches to modelling global behaviour

    Improving Object-Oriented Analysis with Roles

    No full text
    Abstract – Object-Oriented Analysis (OOA) has been proposed and applied in software engineering for more than fifteen years. Many researchers and practitioners have published many articles and books to discuss this methodology. Many companies and organizations have also published many standards in software development. However, there is one critical problem that is becoming the bottle neck affecting the efficiency and correctness of OOA, i.e., the gap between customers, analysts and designers is too large to obtain a satisfactory requirement analysis report. Role-based analysis is one possible way to alleviate this symptom. It can at least improve the quality of the requirement analysis report. This paper gives a retrospect to the past OOA methodology, analyzes the weakness of it, proposes how to practice a new method for system analysis, i.e., role-based analysis, and demonstrates the benefits of this method
    corecore