Self-organizing software architectures
Pohjalainen, Pietu (2013-12-13)
Pohjalainen, Pietu
University of Helsinki
13.12.2013
Julkaisun pysyvä osoite on
https://urn.fi/URN:ISBN:978-952-10-9425-5
Department of Computer Science. Series of Publications A. Report A : 2013-13
https://urn.fi/URN:ISBN:978-952-10-9425-5
Department of Computer Science. Series of Publications A. Report A : 2013-13
Tiivistelmä
Looking at engineering productivity is a source for improving the state of software engineering. We present two approaches to improve productivity: bottom-up modeling and self-configuring software components. Productivity, as measured in the ability to produce correctly working software features using limited resources is improved by performing less wasteful activities and by concentrating on the required activities to build sustainable software development organizations.
Bottom-up modeling is a way to combine improved productivity with agile software engineering. Instead of focusing on tools and up-front planning, the models used emerge, as the requirements to the product are unveiled during a project. The idea is to build the modeling formalisms strong enough to be employed in code generation and as runtime models. This brings the benefits of model-driven engineering to agile projects, where the benefits have been rare.
Self-configuring components are a development of bottom-up modeling. The notion of a source model is extended to incorporate the software entities themselves. Using computational re
ection and introspection, dependent components of the software can be automatically updated to re
ect changes in the dependence. This improves maintainability, thus making software changes faster.
The thesis contains a number of case studies explaining the ways of applying the presented techniques. In addition to constructing the case studies, an empirical validation with test subjects is presented to show the usefulness of the techniques.
Bottom-up modeling is a way to combine improved productivity with agile software engineering. Instead of focusing on tools and up-front planning, the models used emerge, as the requirements to the product are unveiled during a project. The idea is to build the modeling formalisms strong enough to be employed in code generation and as runtime models. This brings the benefits of model-driven engineering to agile projects, where the benefits have been rare.
Self-configuring components are a development of bottom-up modeling. The notion of a source model is extended to incorporate the software entities themselves. Using computational re
ection and introspection, dependent components of the software can be automatically updated to re
ect changes in the dependence. This improves maintainability, thus making software changes faster.
The thesis contains a number of case studies explaining the ways of applying the presented techniques. In addition to constructing the case studies, an empirical validation with test subjects is presented to show the usefulness of the techniques.
Kokoelmat
- Kirjat [4323]