|
|
STEM |
|
Today's trends in software engineering are towards composition of network-based systems using of-the-shelf components. Managing this type of development requires high-level notations and analysis tools, software architecture forms a basis for these. In software architectures components and connectors are the basic building blocks and research in this area has proposed notations and methods for description and analysis. These notations and analysis tools all lack in support of dynamism. Dynamism is the property of a system that can be re-configured during runtime. Another important area is how to compose a system with certain, system-wide properties like reliability, availability, and scalability. Assembling components and also achieve these "ilities" is still an unsolved problem.
One of the objectives of this research project is to develop notations, methods, and tool support for specification and analysis of dynamic software architectures. The notations must include possibilities to express run-time changes that reacts to internal and external events. We are currently developing a support tool that will allow for a developer to express a static architecture in an existing architectural description language and annotate the descriptions with architectural agents. The agents introduces sets of event-condition-action rules that will govern the dynamic behavior. Agents will have a monitoring capability that can be used to supervise the "ilities" at run-time and react and act properly on the architecture when needed. The tool will provide some simulation functionality which allows for a developer to simulate a dynamic architecture, trigger events, and review the the resulting changes in animated form. In this way a developer can establish a confidence in the rule-set that control the agents behavior.
Another problem of dynamic software architectures is the need to update components in large software systems at run-time, to allow old and new versions to co-exist, and to transform the state of old versions of components to become compatible with updated versions of those components. A prototype system, JDRUMS, supporting simple dynamic update of Java Beans components, has been implemented in a first version, and is being extended to investigate more advanced aspects of dynamic update.
An important objective of this research is to develop technology for uniform composition of software components. Components can be composed by the application of composition operators which transform the components during composition, generated glue code between components, and weave aspects of components together. This can increase the productivity of end-users and software engineers since large parts of their tasks are simplified to composition. The current sub-project aims at developing a composition system for XML-based data and software components.
An area that has become important in the recent past is the area of
e-commerce.
E-procurement is one of the most fundamental applications in
Business-to-Business e-commerce. It is defined as the process of purchasing
parts, components or services from partners via internet. Traditionally this
is a labour-, paper- and time-consuming repetitive task with a huge potential
automation value. Recently the developers of e-procurement systems have been
offered a variety of partially competing XML-based frameworks which ease
access over internet, information modelling and communication. During 2000
we have contributed:
1. A literature survey of the most important XML-based frameworks, with
explanation of terminology and comparison between the variety of existing
frameworks. This work was presented at the International Conference on
Enterprise Information Systems in July 2000.
2. A demonstration system implementing all important aspects of an
e-procurement system. A customer enters an order which is split into part
orders by a manufacturing server. The part orders are sent to various
suppliers that are urged for a bid. The prices are set dynamically through
an auction, and winning and losing suppliers are informed. The implementation
primarily demonstrates the feasibility of the implementation technique and
the architecture. Second, it can be noted that the demonstrating system was
implemented entirely with open source and free-ware, showing that there is a
low-cost alternative for purposes such as education, evaluation and
experimentation. The experience will be reported in Yuxaio Zhao's licentiate
thesis which is due during the first half of 2001.
Another important area is the field of documentation. In this project the objective is to provide dynamic and active reference documentation for developers working on code-level design. By dynamic is meant a documentations which can present multiple views, to which new views can be added, and which contains dynamically presentable entities. By active is meant a documentation that provides support for tasks readers' have, for instance to move information from the documentation to working documents or to communicate with group members. Dynamic and active documentations may be achieved by automated generation of web-based documentation from the documentation base format. Finally, the project plan includes qualitative user studies, of which the results will be incorporated in the design choices. This project has resulted in the development of a dynamic documentation system for Java, called DJavadoc. Additional information about DJavadoc is available at the DJavadoc page (http://www.ida.liu.se/~eribe/djavadoc/).
Graduate students: Jesper Andersson (lic 1999), Erik Berglund
(lic 1999), Marcus Comstedt, Jens Gustavsson and Yuxiao Zhao.
Supervisors: Henrik Eriksson, Peter Fritzson, Bengt Lennartsson, Kristian Sandahl, Uwe Assmann.