|
Concurrent software is composed of several active execution units, such as processes, threads, Java applications and applets, or CORBA business objects. These units are distributed and concurrently executed over a concurrent execution infra- structure. For concurrent software development, there are several critical issues emerged but not addressed sequential software, such as parallelism, distributed, communication, etc. Besides, concurrent software often provides services to multi- users, and different users require different services. Hence the development of concurrent software is more complicated than that of sequential software. Conventional software analysis and design methods, including object-oriented analysis and design methods which is convinced as the most efficient methods for software development, mostly emphasize the development of sequential software. They do not offer appropriate support to the development of concurrent software. The goal of the thesis is to propose a proper requirement analysis method of concurrent software. The aim of the software requirement analysis is to acquire the users'' requirements and then describe the requirement specification unambiguously. Although concurrent software is distributed on several computer systems, from the user''s point, no perceptible difference between concurrent and sequential software, and their requirements can be expressed as a set of functional service requirement. However, to the concurrent software system, each service is usually achieved through the collaboration of several execution units. Therefore, this thesis proposes "Functional Decomposition Object Oriented Analysis for Concurrent Software" that is based on "Functional Decomposition Object Oriented Analysis", with the extension of the role concept to assist the requirement analysis of concurrent software. We define a role as a basic execution unit of the concurrent software system. The users with the same (similar) requirement are given an environmental role to propose their requirement in terms of a set of service requirements. These service requirements are then analyzed with the techniques of functional decomposition and bottom-up composition to construct the software architecture. The system roles and the interactions between different system roles should be defined to delineate the collaboration required in the service requirements. When the analysis is finished, the whole system is composed of a group of roles, each of which is composed of a group of objects and provides a series of services for other roles. The products from the "Functional Decomposition Object Oriented Analysis for Concurrent Software" are role model, function model, class model, role deployment model, dynamic model, object model, and the requirement specification. The role model is used to express the roles included in the system and the collaboration among them. The function model is used to illustrate the function hierarchy and candidate objects. The class model describes the classes included in the system and the relationship among them. The role deployment model presents the basic deployment of the roles in the concurrent software. The dynamic model indicates the behavior of each class in terms of a state transition diagram. The object model shows the global behavior of the system by role interaction diagrams and object interaction diagrams. The requirement specification is written in the improved "An Object Oriented Rapid Prototyping Language". We have applied our method to the requirement analysis of "Meeting Arrangement Supporting System" successfully, and hereby verify the feasibility of the analysis steps and the expressiveness of the models and specification language.
|