A high-level requirements engineering methodology for electronic system-level design

https://doi.org/10.1016/j.compeleceng.2007.02.004Get rights and content

Abstract

Current electronic systems’ complexity severely limits their validation. Even if development frameworks keep improving and are heavily supported by the industry, methods for hardware/software electronic systems co-design are reaching a major crisis. Although the community is heading towards higher abstraction levels, requirements remain out of the validation scope. We therefore present a requirements engineering methodology that intersects formal, linguistic, and scenario views. Modeling consists in abstracting functionalities’ behaviours in terms of actions, expressed in a semi-formal structured language, later automatically translated in a pure formal notation. Such a mix makes the language accessible to designers and permits automation. Validation is then performed using consistency rules. Finally, an elicitation of missing functionalities is achieved using Boolean algebra.

Introduction

Hardware/software electronic systems co-design relies on a well-established cycle, through which designers employ mature development frameworks [1], [2], [3], [4] that have been deeply supported and improved over the years by industry. Despite such frameworks, hardware/software co-design is currently crossing the border of a major crisis: the size and complexity of current electronic systems that keeps growing deeply affects validation phases of the development process; formal techniques hit irreducible combinatorial explosions, while simulation-based procedures require painfully large execution times [10]. The community generally agrees that the design process must deal with descriptions expressed at higher levels of abstraction [5]. We especially believe that a key solution resides in the validation of requirements, i.e. ensuring that they respect certain quality standards such as consistency and completeness.

Although multiple validation methods are available along the design cycle, no methodology is provided for the validation of requirements. This relates notably to the lack of formalism in their expression. Indeed, the informal nature of requirements formulation typically prevents using systematic validation techniques, thus leaving them at the mercy of sporadic manually ad-hoc validation, or even no validation at all. Consistency errors can thus propagate through the design cycle, hence being detected only much later, with significant additional costs. Moreover, the gap between methods used to capture requirements and those used in the modeling phase is very large; designers usually jump directly from unstructured textual documentation (when they exist) to executable specifications written in languages such as Verilog [3]. Errors can thus easily be introduced during the production of the first executable model of some system.

Validating requirements may enhance their quality and, by transitivity, the quality of the modeling, that could result in a remarkable reduction of error detection costs. In addition, despite multiple validations occurring through the design cycle, some consistency errors may not be easily detected by traditional techniques, while an appropriate method could avoid them at the requirements stage. The development of adequate validation techniques for hardware/software requirements first necessitates a suitable formalism. This formalism must be accessible to designers. It must be light enough and avoid complex mathematical notations. At the same time, it must be formal enough to reduce the gap between requirements and executable models, as well as to permit automating the validation.

In this paper, we present a methodology relying on the application of requirements engineering principles to the hardware/software electronic systems co-design cycle. This methodology provides a solution for the modeling and validation of hardware/software electronic system requirements. By mixing linguistic and formal techniques, it provides a language that is both accessible to designers and formal enough to permit automatic validation. Modeling consists in describing system’s functionality using formally structured natural language constructs. These are then automatically translated into a pure formal representation, thus permitting automatic analysis. Validation is achieved using consistency rules. Finally, an elicitation of missing functionality is performed using Boolean algebra.

Our solution is meant to be grafted to the high-level and system-level electronic systems development cycle as shown in Section 5. It targets embedded systems that are composed of both software and hardware, such as systems on a chip (SoCs). Even if designated by the term “electronic systems”, the designing level of abstraction of such systems is far above gate-level electronic specifications.

Our team is, to our knowledge, the first to propose and develop such concepts to formalize and validate requirements for the hardware/software co-design field. The approach we propose allows designers to represent requirements using a common formalism. Moreover, it permits fast prototyping and early detection of consistency errors. We also target automatic derivation of test scenarios skeletons in order to bridge the gap between requirements and modeling levels.

Our main contribution with this paper is that it presents a requirements engineering methodology that can be easily grafted on top of current existing development cycles. This paper is organized as follows. Section 2 introduces the framework on which this research relies, including a review of existing works, in comparison to our approach. Section 3 presents our methodology, followed by Section 4 that presents relevant experimental results. Last, but not least, Section 5 presents on-going research that links our work with an existing UML-based methodology. Section 6 concludes the paper.

Section snippets

Background

We start by introducing the research framework; the hardware/software co-design cycle, with a foreword on the problem of requirements validation. We then present a review of software engineering methods used to address the problem of requirements validation in the software field. Last, we introduce the proposed solution that will be detailed in the remainder the paper.

Proposed solution

We propose to intersect the three orthogonal views enumerated above by defining a unified methodology, thus taking advantage of their respective strengths and capabilities. We consider the behaviour of a model as a composition of actions, denoting functionalities provided by the system. Description of actions is totally abstracted from the way they are carried out. It only focuses on the state in which the system is before and after the action is performed. This is formally expressed by

Experimental results

Linguistic pre-processing, consistency validation and elicitation of missing functionalities were implemented altogether in the form of an experimental prototype. Due to the logical nature of the linguistic pre-processing and the consistency validation, both were implemented under Prolog, thus permitting to take advantage of the inference engine of its interpreter without excessively investing time in programming considerations. For performance purpose, the complementation algorithm is

Linking to a UML-based methodology

Our methodology can be linked to UML-based methodologies following a top-down process. As an example, we mention here preliminary work on the integration of our approach with a virtual prototyping methodology based on UML [14]. Virtual prototyping proposes high-level modeling augmented with cross-abstraction interface mechanisms, hence permitting incremental development of system specifications. The integration of requirements engineering with UML-based prototyping results in a robust

Conclusion and future work

This paper proposes to graft a new requirements engineering methodology between requirements and modeling phases of the hardware/software co-design cycle. This methodology targets the formalization of requirements using a formally structured natural language representation, later translated into a full formal representation by means of linguistic techniques. From this formalization, the methodology provides automatic consistency validation and elicitation of missing functionalities.

Nicolas Gorse obtained a Ph.D. degree in Computer Science from University of Montréal (Québec, Canada) in 2006. He is currently a postdoctoral fellow within the Distributed Systems Analysis team of the Centre de Recherche en Informatique de Montréal (Québec, Canada). His research interests focus on the use of formal methods for the verification of hardware and software systems.

References (37)

  • S. Sutherland et al.

    SystemVerilog for design: a guide to using SystemVerilog for hardware design and modeling

    (2003)
  • Bhasker J. A SystemC primer, star galaxy;...
  • S. Palnitkar

    Verilog HDL

    (2003)
  • S. Yalamanchili

    Introductory VHDL, from simulation to synthesis

    (2001)
  • International Technology Roadmap for Semiconductors Design;...
  • Donlin A. Transaction level modeling: flows and use models. In: IEEE international conference on hardware/software...
  • F. Vahid et al.

    Embedded system design: a unified hardware/software introduction

    (2002)
  • J. Bergeron

    Writing testbenches functional validation of HDL models

    (2000)
  • B. Bérar

    Systems and software validation, model-checking techniques and tools

    (2001)
  • T. Kropf

    Introduction to formal hardware validation

    (1999)
  • ITU, “recommendation Z.120: message sequence chart (MSC), ITU;...
  • H. Zhu et al.

    Scenario analysis in an automated tool for requirements engineering

    Require Eng J

    (2000)
  • P. Heymans et al.

    Scenario-based techniques for supporting the elaboration and the validation of formal requirements

    Require Eng J

    (1998)
  • Chureau A, Savaria Y, Aboulhamid EM. The role of model-level transactors and UML in virtual prototyping of...
  • Csertan G, Huszerl G, Majzik I, Pap Z, Pataricza A, Varro D. VIATRA: visual automated transformations for formal...
  • Shen W, Compton K, Huggins J. A UML validation toolset based on abstract state machines. In: IEEE international...
  • A. Fantechi et al.

    Applications of linguistic techniques for use-case analysis

    Require Eng J

    (2003)
  • D. Richards

    Merging individual conceptual models of requirements

    Require Eng J

    (2003)
  • Nicolas Gorse obtained a Ph.D. degree in Computer Science from University of Montréal (Québec, Canada) in 2006. He is currently a postdoctoral fellow within the Distributed Systems Analysis team of the Centre de Recherche en Informatique de Montréal (Québec, Canada). His research interests focus on the use of formal methods for the verification of hardware and software systems.

    Pascalé Belanger obtained a M.Sc. degree in Linguistics from University of Montréal (Québec, Canada) in 2003. She is currently working as a Research and Development Coordinator at Nstein Technologies Inc. Her research interests focus on the use of computational linguistic algorithms and techniques for automating data mining, concept extraction, and text categorization.

    Alexandre Chureau received the B.Eng. and M.Sc. degrees in Computer and Electrical Engineering from Ecole Polytechnique de Montréal, Canada (2000, 2005). He has developed software tools for integrated system design in the industry and academia. He is now pursuing doctoral studies at TIMA Laboratory, Grenoble, France, in hardware/software interface modeling.

    El Mostapha Aboulhamid is active in modeling, synthesis and verification in hardware systems. He obtained an Engineering degree from ENSIMAG, France in 1974 and a Ph.D. from Montreal University in 1984. He is currently Professor at Université de Montréal. His current interests are in system level modeling, formal verification techniques at higher level and formal refinement of hardware/software systems.

    Yvon Savaria received the B.Eng. and M.Sc. in Electrical Engineering from École Polytechnique de Montréal in 1980 and 1982 respectively. He also received the Ph.D. in Electrical Engineering in 1985 from McGill University. Since 1985, has been with Ecole Polytechnique de Montreal, where he is currently Professor and Director of the microelectronics research group (www.grm.polymtl.ca).

    View full text