Requirement and Knowledge Engineering

Theme leader: Aladdin Ayesh

Theme members: Duska Rosenberg, Feng Chen, Ali H. Al-Bayatti, Helge Janicke, Antonio Cau, Hongji Yang, Francois Siewe

The De Montfort Creativity Assistant.



Under this Theme, we explore novel approaches and their supporting technologies to requirement and knowledge elicitation and analysis, in the adaptation and use of formal specifications, and in the provision of software support tools for aspects such as animation and interpretation of requirements specifications.

Bridging the gap between requirements and business objectives and goals and handling changes in requirements are of particular interests. This has led us to investigate new frameworks within which a theory of Co-Evolution can be formulated. These include

  • K-Mediator, the "K" stands for knowledge,which rests on the notion of three generic stakeholders (Business User, Application Developer, and Component Developer) their different viewpoints and, importantly, their different areas of expertise. It proposes that `three plus one' types of knowledge are required to give rational support to the build versus buy versus reuse decisions of component provisioning. These types of knowledge are encapsulated in the decision-making framework for stakeholder negotiation.
  • GOOD, Grammar-oriented Object Design, is an integration Grammar-oriented Object Design was shown to be a potent combination of extending methods, incorporating DSLs from a given business domain (BDSLs) and Variation-oriented Design in order to provide a seamless transition from business models to component-based software architectures. GOOD starts by extending current object modeling techniques to include the discovery and explicit modeling of higher levels of reuse, starting from subsystems, defining their manners using a domain-specific business language, i.e., using use-case grammars, that describe the rules governing the creation, dynamic configuration and collaboration of large-grained, business-process-scale, adaptive software components with plug-gable behaviour, through the application of architectural patterns and representation of component manners in the BDSL. This presents immense potential for applications in the domains of grid services, services on demand and utility-based computing.

A suite of integrated tools supporting our investigation was developed. This ranges from encoding ITL axiomatic system and its refinement rules and Calculus of Evolution within PVS (the ITL-Workbench) to the impact analyser, AnaTempura. The ITL-Workbench is fundamental as proof assistant and for manipulating ITL specifications. Several case small-to-medium case studies were used to evaluate our tools and conceptual framework. Some of the case studies were based at IBM and some were provided to us by BT and Abbey National.

Furthermore, we continued to explore the feasibility of generative pattern languages for software development with particular reference to creative software architecture and design. Software Architecture has been an emerging discipline since the middle 1990's but most effort in research has been focussed on the analysis and evaluation of architectures once a system has been specified and designed, if not already constructed. Little in comparison has been done to establish the best practices for designing the system in the first place - yet intuitively 'architecture' has more to do with 'construction' than 'deconstruction'. In the object-oriented community a promising contribution has been made by the Patterns Movement which has borrowed some of the ideas of the radical architect Christopher Alexander to document observed best practice in software design.

Through previous work on the ADAPTOR pattern language we have established a number of basic theoretical premises as the foundation of this research: that creative software architecture involves configurationally knowledge, a kind of knowledge that is typically non-discursive and therefore difficult to report on or disseminate, and cannot currently be formalised; that software development can be regarded as design discipline (a cousin of architecture, industrial design etc.) as well as a mathematical one; and that software-intensive systems like organic systems or synthetic 3-D systems can also be described in terms of 'foci' and 'centres' - notions which are fundamental to Alexander's original theory of patterns.

Feb 18 2014
Home | Training | Research | Members | About | News