Meta-CASE Support for Method-Based Software Development

Similar documents
Requirements Engineering Through Viewpoints

Technology Transfer: Software Engineering and Engineering Design

FL-ARCH DESIGN: Formal Description Languages for the Architectural Design of Software Systems

Towards an MDA-based development methodology 1

Designing Semantic Virtual Reality Applications

UNIT-III LIFE-CYCLE PHASES

An Ontology for Modelling Security: The Tropos Approach

AGENT BASED MANUFACTURING CAPABILITY ASSESSMENT IN THE EXTENDED ENTERPRISE USING STEP AP224 AND XML

Intelligent Modelling of Virtual Worlds Using Domain Ontologies

Towards a Software Engineering Research Framework: Extending Design Science Research

A Social Creativity Support Tool Enhanced by Recommendation Algorithms: The Case of Software Architecture Design

Meta-models, Environment and Layers: Agent-Oriented Engineering of Complex Systems

Distilling Scenarios from Patterns for Software Architecture Evaluation A Position Paper

STUDY ON FIREWALL APPROACH FOR THE REGRESSION TESTING OF OBJECT-ORIENTED SOFTWARE

AOSE Technical Forum Group

On the use of the Goal-Oriented Paradigm for System Design and Law Compliance Reasoning

A Framework for Requirements Engineering for Context-Aware Services

Realising the Flanders Research Information Space

Systems Requirements: Once Captured, are Slaughtered

GOALS TO ASPECTS: DISCOVERING ASPECTS ORIENTED REQUIREMENTS

Failure modes and effects analysis through knowledge modelling

DESIGN AND CAPABILITIES OF AN ENHANCED NAVAL MINE WARFARE SIMULATION FRAMEWORK. Timothy E. Floore George H. Gilman

Research on the Integration and Verification of Foundational Software and Hardware

A DECOMPOSITION APPROACH TO DESIGN INFORMATION AND KNOWLEDGE ISSUES FOR ENGINEERING DESIGN

A Unified Model for Physical and Social Environments

INTERNATIONAL CONFERENCE ON ENGINEERING DESIGN ICED 03 STOCKHOLM, AUGUST 19-21, 2003

A Brief Survey of HCI Technology. Lecture #3

Collaborative Product and Process Model: Multiple Viewpoints Approach

Developing a Mobile, Service-Based Augmented Reality Tool for Modern Maintenance Work

TOWARDS AN ARCHITECTURE FOR ENERGY MANAGEMENT INFORMATION SYSTEMS AND SUSTAINABLE AIRPORTS

Towards Integrated System and Software Modeling for Embedded Systems

Advancing Object-Oriented Standards Toward Agent-Oriented Methodologies: SPEM 2.0 on SODA

MULTI-AGENT BASED SOFTWARE ENGINEERING MODELS: A REVIEW

Randall Davis Department of Electrical Engineering and Computer Science Massachusetts Institute of Technology Cambridge, Massachusetts, USA

ABSTRACT. Keywords Virtual Reality, Java, JavaBeans, C++, CORBA 1. INTRODUCTION

Proposal for the Conceptual Design of Aeronautical Final Assembly Lines Based on the Industrial Digital Mock-Up Concept

HOW CAN CAAD TOOLS BE MORE USEFUL AT THE EARLY STAGES OF DESIGNING?

Computer Log Anomaly Detection Using Frequent Episodes

Using Variability Modeling Principles to Capture Architectural Knowledge

Session 3 _ Part A Effective Coordination with Revit Models

A Conceptual Modeling Method to Use Agents in Systems Analysis

HORIZONS FORESIGHT METHOD. How to use this manual. Module

AN INTERROGATIVE REVIEW OF REQUIREMENT ENGINEERING FRAMEWORKS

The essential role of. mental models in HCI: Card, Moran and Newell

LINKING CONSTRUCTION INFORMATION THROUGH VR USING AN OBJECT ORIENTED ENVIRONMENT

Agris on-line Papers in Economics and Informatics. Implementation of subontology of Planning and control for business analysis domain I.

The AMADEOS SysML Profile for Cyber-physical Systems-of-Systems

Methodology for Agent-Oriented Software

Defining Process Performance Indicators by Using Templates and Patterns

Transactions on Information and Communications Technologies vol 8, 1995 WIT Press, ISSN

TIES: An Engineering Design Methodology and System

Introduction. Requirements Engineering: Why RE? What is RE? How to do RE? -> RE Processes. Why RE in SysE? Case Studies and The Standish Report

Towards a multi-view point safety contract Alejandra Ruiz 1, Tim Kelly 2, Huascar Espinoza 1

Sales Configurator Information Systems Design Theory

Human-Computer Interaction based on Discourse Modeling

DEVELOPMENT OF A ROBOID COMPONENT FOR PLAYER/STAGE ROBOT SIMULATOR

VR-MOG: A Toolkit For Building Shared Virtual Worlds

A Conceptual Modeling Method to Use Agents in Systems Analysis

DEPUIS project: Design of Environmentallyfriendly Products Using Information Standards

AOSE Agent-Oriented Software Engineering: A Review and Application Example TNE 2009/2010. António Castro

A FORMAL METHOD FOR MAPPING SOFTWARE ENGINEERING PRACTICES TO ESSENCE

The Decision View of Software Architecture: Building by Browsing

Design and Implementation Options for Digital Library Systems

Socio-cognitive Engineering

DSM-Based Methods to Represent Specialization Relationships in a Concept Framework

An Introduction to Agent-based

THE CONSTRUCTION- AND FACILITIES MANAGEMENT PROCESS FROM AN END USERS PERSPECTIVE - ProFacil

NEES CYBERINFRASTRUCTURE: A FOUNDATION FOR INNOVATIVE RESEARCH AND EDUCATION

Module Role of Software in Complex Systems

Impediments to designing and developing for accessibility, accommodation and high quality interaction

SAFETY CASE PATTERNS REUSING SUCCESSFUL ARGUMENTS. Tim Kelly, John McDermid

Explicit Domain Knowledge in Software Engineering

Software LEIC/LETI. Lecture 21

João Cadete de Matos. João Miguel Coelho Banco de Portugal Head of the Current and Capital Accounts Statistics Unit

Understanding Software Architecture: A Semantic and Cognitive Approach

Design Studio of the Future

REPRESENTATION, RE-REPRESENTATION AND EMERGENCE IN COLLABORATIVE COMPUTER-AIDED DESIGN

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

Non-formal Techniques for Early Assessment of Design Ideas for Services

Getting Started Guide

Models as a Foundation for Systems Engineering Should We Expect a Breakthrough? Brett Malone Vitech Corporation

PPP InfoDay Brussels, July 2012

Object-Process Methodology: A Graphic-Textual Requirements Engineering Platform

Lecture Notes in Computer Science

A User Interface Level Context Model for Ambient Assisted Living

Co-evolution of agent-oriented conceptual models and CASO agent programs

Automatic Generation of Web Interfaces from Discourse Models

The Industry 4.0 Journey: Start the Learning Journey with the Reference Architecture Model Industry 4.0

Creating a 3D environment map from 2D camera images in robotics

Towards the definition of a Science Base for Enterprise Interoperability: A European Perspective

Evaluation Plan for a Cardiological Multi- Media Workstation (I4C Project)

Agent-Oriented Software Engineering

Soft Systems in Software Design*

SPICE: IS A CAPABILITY MATURITY MODEL APPLICABLE IN THE CONSTRUCTION INDUSTRY? Spice: A mature model

Agent-Oriented Software Engineering

An Integrated Framework for Assembly-Oriented Product Design and Optimization

Mr. Wolfgang Metzen was trained as a mechanical

Recommended code of good practice for the interpretation of Directive 2006/42/EC on machinery concerning air handling units Second Edition

Cognitive dimensions and grounded theory in learning software modeling.

ISO/TC145-IEC/SC3C JWG 11 N 15C +

Transcription:

(to appear in) Proc. of 1st Int. Congress on Meta-CASE, 5-6th January 1995, Sunderland, UK. Meta-CASE Support for -Based Software Development Bashar Nuseibeh Department of Computing Imperial College 180 Queen s Gate London, SW7 2BZ, UK Email: ban@doc.ic.ac.uk Position Paper ABSTRACT This paper defines the scope and context of meta-case technology in software engineering. It then outlines the role of meta-case tools in multi-perspective software development ; that is, development in which multiple participants deploy multiple methods to specify their respective areas of concern. CONTEXT: SOFTWARE ENGINEERING Software engineering is the discipline of software development. It provides and combines (1) methods for software development, which in turn provide techniques for specification, implementation, quality assurance, coordination, management and control of development; and (2) automated tool support for many of the activities in this process. A model representing such a development process (its constituent activities and their ordering) is generally termed a software development life cycle model. As Fig. 1 illustrates, the final objective of software engineering is to produce a software artefact (application) and install it in an environment. Developers working in a particular organisation use tools based on methods to produce such an artefact. These methods support a particular software development life cycle. The software application that is produced by this process is used by application users. Fig. 1 shows these high level software development activities in this setting. method engineering Life Cycle & s meta-case Tools process modelling computer-aided software engineering SOFTWARE adopted-by used-by used-by installed-in Organisation belong-to Developers Users contains Environment (Problem World) Figure 1: A perspective on method-based software development. The role of meta-case technology in this context is to provide automated support for part of this development process. In Fig. 1, this is shown as a an activity that takes software development methods as input, and produces (CASE) tools as output.

ROAD MAP: META-CASE TECHNOLOGY Meta-CASE tools are software tools that support the design and generation of CASE tools. In their most automated form, they take a formal description of a language or application as input, and generate one or more tools to support that language or application. Meta-CASE tools for some applications (also called application generators [2]) have been available for a number of years [8]. These include compiler-compilers such as Yacc [9], code generators such as Tags [10], and third and fourth generation language systems [11] such as COBOL and Oracle respectively. Meta-CASE tools that generate CASE tools to support software development methods however, have only recently started to emerge and are sometimes called method meta-case tools [1]. Fig. 2 is a schematic overview of a generic method meta-case environment. The figure assumes that a method definition is sufficient to implement the tool supporting that method. In practice however, some tool-specific information (such as a user-interface definition) is also needed before the meta- CASE tool generator can produce a CASE tool that supports the defined method. Design Definition Customise/Evolve Meta-CASE Tool Generator Engineering IPSE CASE Tool(s) Use/Evaluate CASE Tool(s) Use Repository Software Specification/Product Figure 2: A generic, method-based meta-case environment. Rectangles with rounded corners denote activities or processes whose inputs and outputs are represented by the arrows. Normal rectangles represent artefacts which are outputs produced by, or inputs to, activities or processes. The oval represents a repository and its data/object management system. meta-case tools that efficiently generate usable CASE tool sets rely on a number key factors and technologies. The method for which tool support is required must be well understood and documented, so that a formal, or at least precise, description of that method [17] can be used as input to the meta-case tool. A good meta-case tool also facilitates the analysis, design and description of a method whose full and formal definition is not readily available. In this setting, the meta-case tool is a support tool for the method designer or engineer, and is therefore sometimes called a Computer-Aided Engineering (CAME) [7] tool. Meta-CASE tools must also be capable of documenting the definitions of, typically graphical, notations and their relationships, and therefore rely on the successful incorporation of generic (diagram) editing and rule checking systems and techniques [20]. Care has to be taken not to allow developers using these facilities to diverge wildly from their organisations method standards. Thus, it is preferable that a meta-case tool is only used by method engineers to define their organisation s method and tool standards, and that individual software developers are not allowed to change or - 2 -

deviate from these. In fact, because of these and other fears, the market for meta-case tools has not been large and has consisted mainly of CASE tool builders rather than end users [19]. An attractive, general property of meta-case tools is their ability to specify and generate themselves; that is, like a compiler-compiler, a meta-case tool should also be able to bootstrap itself. One example of a commercial meta-case tool that has been tested in this way, is the IPSYS Tool Builder s Kit (TBK) [1]. TBK is an integrated collection of generic tools and function libraries that can be used to specify software development methods, and to generate quality CASE tool sets to support them. It allows a tool developer to define the syntax and semantics of the various notations deployed by a method, provides a database interface based on a functional model of data which may be used to specify a method s (and its products ) data model, and includes a user interface management system (UIMS) based on OSF/Motif for defining the presentation of user input to and output from the generated tools. Another commercial meta-case tool is the Virtual Software Factory (VSF) [16]. VSF provides a unified formal definition of the method to be supported and a kernel environment for the execution of that definition. A method definition in VSF consists of two parts: the construction of a semantic model of the method in a special-purpose language called Cantor; and, a syntactic definition of textual and graphical views in a Viewpoint Definition Language (separate sub-languages for defining textual and graphical views are provided). The VSF execution kernel, called the Analyst Workbench (AWB), then animates the formal method definition to produce a CASE tool set to support that method. A number of other meta-case systems are also commercially available, some of which are listed in Table 1 below. Status Tool Name Source Commercial Research Tool Builder s Kit (TBK) Virtual Software Factory (VSF) Excelerator with Customizer MetaEdit Paradigm Plus ObjectMaker (Tool Development Kit) GraphTalk Predict CASE Metaview MetaPlex SISU The Viewer IPSYS Ltd. (UK) VSF - formerly Systematica - Ltd. (UK) Intersolv (Maryland, USA) MetaCase Consulting (Finland) ProtoSoft Inc. (Texas, USA) Mark V Software (California, USA) Rank Xerox (France) Software AG (Germany) University of Alberta (Canada) University of Saskatchewan (Canada) George Mason University, (USA) Ramatic (Sweden) Imperial College (UK) Table 1: A representative sample of meta-case tools. Metaview is a multi-faceted research project, one of whose aims is the construction of a metasystem for describing and automatically generating custom software development environments [18]. The Metaview architecture consists of a meta level, an environment level and a user level. At the meta level, a meta model is defined which is sufficiently expressive to support the description of a large class of development techniques (called environments in Metaview). At the environment level, the environment definition produced at the meta level is processed to generate a particular tool configuration. The tools generated at the environment level are then ready to be used by developers (users) at the user level of the architecture. - 3 -

Finally, a class of tools known as environment generators are also an area of increasing research. These generate language or application-specific environments, typically from some kind of formal description. Examples of these include Gandalf [6], in which programming environments (e.g., for Modula-2 and Ada) are generated from grammar definitions; and, the structured transformational approach to generating application-specific environments described in [5]. To summarise, meta-case tools have a number of uses in the context of method engineering and CASE tools development. A meta-case tool facilitates the development of CASE tools to support one or more methods. It facilitates the process of extending and customising existing CASE tools. It is an aid to the design and construction of new methods, and facilitates prototyping of CASE tools for these methods, which in turn may clarify customer (developer) requirements. Finally, it is a vehicle for method integration in which, traditionally, a common repository and shared data model for different methods are used to provide an integration thread. METHOD ENGINEERING FOR MULTI-PERSPECTIVE SOFTWARE DEVELOPMENT The focus of our work is on what we call multi-perspective software development. Software development in this context is characterised by the existence of multiple development participants who deploy multiple methods (and representation schemes) to specify their respective areas of concern. integration and the provision of automated tool support for method-based software development in this context are particularly problematic. We have proposed an organisational framework within which the above issues may be addressed [4]. This framework, based on distributable objects called ViewPoints, separates the activities of method engineering and method use, which in turn define the scope of meta-case technology in this setting. Each ViewPoint encapsulates partial method knowledge and specification knowledge about a system and its domain. Consequently, this simplifies the method engineering process [14], since the method designer is concerned with partial knowledge. use is also simplified, since ViewPoints are a vehicle for separation of concerns, which naturally reduces development complexity. Of course, separation of concerns also requires subsequent integration, which we have addressed by explicitly expressing the relationships between multiple ViewPoints during method design in this framework [15]. We have developed a prototype environment, called The Viewer [12], to support the ViewPoints framework. The Viewer supports the activities of method engineering in which ViewPoint types ( templates ) are defined, and method use in which these templates are instantiated to create instances (ViewPoints) that partially describe a problem domain. In a multi-perspective environment such as this, method engineering is an activity that requires the design, construction and management of a number of ViewPoint templates. It therefore also provides an opportunity for the provision of tool support. In The Viewer, this tool support is provided in the form of a TemplateBrowser (Fig. 3), which supports the definition, customisation and integration of a variety of ViewPoint templates (the building blocks of methods in our framework). We believe that tool support for such a method engineering process also falls within the scope of meta-case, even though method engineering itself is not as frequent an activity as method use 1. The Viewer also has a simple traditional meta-case toolkit that partially transforms template definitions into simple CASE tools. 1 Nonetheless, method customisation for different organisations is becoming increasingly common, and in need of automated support. - 4 -

Figure 3: The Template Browser of The Viewer. Template names are shown in the top-left hand corner of the window. A graphical icon editor is provided in the bottom-right part of the window, while other textual attributes of style and work plan are defined in the bottom-left window pane. Finally, a comment regarding the role of meta-case technology in the modelling of software development processes [3]. Our framework facilitates so-called fine-grain process modelling [13], in which the development processes of individual development participants are described. This facilitates the provision of method guidance at the level of individual development participants. We have also found that modelling fine-grain development processes simplifies the construction of CASE tools to support such processes, and in turn the meta-case technology to support this construction process. Acknowledgements I would like to thank my colleagues in the Distributed Software Engineering Group at Imperial College for their feedback on my work. The work described in this paper was partly funded by the UK Department of Trade and Industry as part of the Advanced Technology Programme of the Eureka Software Factory (ESF). Papers describing related work are available by anonymous ftp from dse.doc.ic.ac.uk in directories dse-papers/viewpoints and dse-papers/modelling. References [1] Alderson, A. (1991); Meta-CASE Technology ; Proceedings of European Symposium on Software development Environments and CASE Technology, Königswinter, Germany, June 1991, 81-91; LNCS, 509, Springer-Verlag. [2] Cleaveland, J. C. (1988); Building Application Generators ; Software, 5(4): 25-34, July 1988; IEEE Computer Society Press. [3] Finkelstein, A., J. Kramer and B. Nuseibeh (Eds.) (1994); Software Process Modelling and Technology, Advanced Software Development Series, Research Studies Press Ltd. (Wiley), Somerset, UK. - 5 -

[4] Finkelstein, A., J. Kramer, B. Nuseibeh, L. Finkelstein and M. Goedicke (1992); Viewpoints: A Framework for Integrating Multiple Perspectives in System Development ; International Journal of Software Engineering and Knowledge Engineering, 2(1): 31-58, March 1992; World Scientific Publishing Company. [5] Garlan, D., L. Cai and R. L. Nord (1992); A Transformational Approach to Generating Application- Specific Environments ; Software Engineering Notes (Proceedings of ACM SIGSOFT Symposium on Software Development Environments), 17(5): 63-77, 9-11th December 1992; SIGSOFT & ACM Press. [6] Habermann, A. N. and D. Notkin (1986); Gandalf: Software Development Environments ; Transactions on Software Engineering, 12(12): 1117-1127, IEEE Computer Society Press. [7] Harmsen, F. and S. Brinkkemper (1993); Computer Aided Engineering based on existing Meta- CASE Technology ; Proceedings of 4th European Workshop on the Next Generation of CASE Tools (NGCT 93), Sorbonne, Paris, France, 7-8th June 1993, Memorandum Informatica 93-32, University of Twente, Holland. [8] Horowitz, E., A. Kemper and B. Narasimhan (1985); A Survey of Application Generators ; Software, 2(1): 40-54, IEEE Computer Society Press. [9] Johnson, S. C. (1975); Yacc: Yet Another Compiler-Compiler ; Computer Science Technical Report, 32; Bell Laboratories, Murray Hill, New Jersey, USA. [10] Lewis, T. (1990); Code Generators ; Software, 7(3): 67-70, May 1990; IEEE Computer Society Press. [11] Misra, S. and P. Jalics (1988); Third-generation versus Fourth-generation Software Development ; Software, 5(4): 8-14, July 1988; IEEE Computer Society Press. [12] Nuseibeh, B. and A. Finkelstein (1992); ViewPoints: A Vehicle for and Tool Integration ; Proceedings of 5th International Workshop on Computer-Aided Software Engineering (CASE 92), Montreal, Canada, 6-10th July 1992, 50-60; IEEE Computer Society Press. [13] Nuseibeh, B., A. Finkelstein and J. Kramer (1993); Fine-Grain Process Modelling ; Proceedings of 7th International Workshop on Software Specification and Design (IWSSD-7), Redondo Beach, California, USA, 6-7 December 1993, 42-46; IEEE Computer Society Press. [14] Nuseibeh, B., A. Finkelstein and J. Kramer (1994); Engineering for Multi-Perspective Software Development ; (to appear in) Information and Software Technology, Butterworth-Heinemann [15] Nuseibeh, B., J. Kramer and A. Finkelstein (1994); A Framework for Expressing the Relationships Between Multiple Views in Requirements Specification ; Transactions on Software Engineering, 20(10): 760-773, October 1994, IEEE Computer Society Press. [16] Pocock, J. N. (1991); VSF and its Relationship to Open Systems and Standard Repositories ; Proceedings of European Symposium on Software development Environments and CASE Technology, Königswinter, Germany, June 1991, 53-68; LNCS, 509, Springer-Verlag. [17] Sommerville, I., R. C. Welland and S. Beer (1987); Describing Software Design ologies ; Computer Journal, 30(2): 128-133, April 1987; Cambridge University Press on behalf of the BCS. [18] Sorenson, P., J.-P. Tremblay and A. J. McAllister (1988); The Metaview System for Many Specification Environments ; Software, 5(2): 30-38, March 1988; IEEE Computer Society Press. [19] Svoboda, C. (1993); Flexible Automation with Meta-CASE ; Results from the IEEE 5th International Workshop on Computer-Aided Software Engineering (CASE 92), Montréal, Québec, Canada, 26; OCRI Publications. [20] Welland, R. C., S. Beer and I. Sommerville (1990); Rule Checking in a Generic Design Editing System ; Software Engineering Journal, 5(2): 105-115, March 1990; IEE on behalf of the BCS and the IEE. - 6 -