1.3 Objectives of the book
The overall objective of the book is to develop an approach to help the design and development of middleware for mobile systems. Following the basic idea of the architecture centric development (Fig. 1.3), we will propose an approach that supports style-based modeling, refinement, and formal analysis (Fig. 1.4).
The modeling language In order to help to understand complex problems and solutions, the modeling language (Fig. 1.4) should capture the main aspects of the middleware. It should consider and model mobility explicitly, which includes two aspects: the architectural elements related to mobility, and how computation and coordination are influenced by mobility. The models should be represented in an easy understandable form, at the same time be clear and unambiguous, in order to truly help to understand the middleware, and enable easy and unambiguous communication about the middleware among different designers, developers and other stakeholders.
Figure 1.3 Objective of the book: design and development of the middleware using the architecture - centric approach
Figure 1.4 Objective of the book (in detail): architectural style-based modeling and analysis of the middleware
The architectural style The approach should support the modeling of architectural styles (Fig. 1.4) for the middleware, in order to solve the problems brought by diversity and unpredictability in the middleware area, enhance reusability and quality of the software, and simplify the development process. We will explore the specification of architectural styles, to see how we can build a common form of design, how to capture the already established design knowledge or successful experience for a class of related middleware. When building new middleware, the designers and developers can define the middleware design as instances of a specific style, or they can use the style as a reference model for further improvement and development. This will make the design process quite efficient and predictable.
Model-based analysis The approach should support model-based analysis. The approach is intended to model large, complex software system-middleware for mobile systems. The ability to evaluate and analyze the properties of such systems upstream, at an architectural level, can ensure the quality of the developed system in the specification process, and hence substantially lessening the cost of errors. Especially, automation and tool support of the analysis can help a lot since the specification is often complicatedly constructed and thus difficult to be checked manually.
Refinement The approach should support a stepwise refinement, which is generally required by a complex system in order to decrease complexity. The designers can start from a simpler, easier design, come to a more and more concrete, complete design through refinements. In the refinement process, it is difficult to ensure that the concrete specification is a correct refinement of the more abstract one. Especially, the correctness of the newly added architectural elements is difficult to be checked since it is not easy to directly map them to the abstract ones. Therefore, refinement correctness criteria should be provided to guarantee the correctness of a refined concrete specification. Besides, it is very helpful to have tool support and automation of the refinement process, since it is normally a complex task.
Consistency check One important issue of a model-based approach is to correctly bridge the gap between abstract models and concrete models, or even implementations. However, to validate whether a concrete model or an implementation is a correct refinement of an abstract model is usually difficult and complicated. The approach should provide a method to support the validation process between different abstraction layers. This is also important to prevent architectural decay, which is usually gradual divergence between an abstract model and a concrete model, or an implementation. Again, tool support and automation of the validation process are important.