Automated Prototype Generation From Formal Requirements Model

Prototyping is an effective and efficient way of requirements validation to avoid introducing errors in the early stage of software development. However, manually developing a prototype of a software system requires additional efforts, which would increase the overall cost of software development. In this article, we present an approach with a developed tool RM2PT to automated prototype generation from formal requirements models for requirements validation. A requirements model consists of a use case diagram, a conceptual class diagram, use case definitions specified by system sequence diagrams, and the contracts of their system operations. A system operation contract is formally specified by a pair of pre and postconditions in object constraint language. We propose a method with a set of transformation rules to decompose a contract into executable parts and nonexecutable parts. An executable part can be automatically transformed into a sequence of primitive operations by applying their corresponding rules, and a nonexecutable part is not transformable with the rules. The tool RM2PT provides a mechanism for developers to develop a piece of program for each nonexecutable part manually, which can be plugged into the generated prototype source code automatically. We have conducted four case studies with over 50 use cases. The experimental result shows that the 93.65% system operations are executable, and only 6.35% are nonexecutable, which can be implemented by developers manually or invoking the third-party application programming interface (APIs). Overall, the result is satisfactory. Each 1 s generated prototype of four case studies requires approximate one day's manual implementation by a skilled programmer. The proposed approach with the developed computer-aided software engineering tool can be applied to the software industry for requirements engineering.

[1]  정인기,et al.  [서평]「Applying UML and Patterns - An Introduction to Object-Oriented Analysis and Design」 , 1998 .

[2]  Vinay Kulkarni,et al.  Generating Enterprise Applications from Models , 2002, OOIS Workshops.

[3]  Jifeng He,et al.  rCOS: Refinement of Component and Object Systems , 2004, FMCO.

[4]  Rajib Mall,et al.  Automatic code generation from unified modelling language sequence diagrams , 2013, IET Softw..

[5]  Fabrice Kordon,et al.  An Introduction to Rapid System Prototyping , 2002, IEEE Trans. Software Eng..

[6]  Klaus Pohl,et al.  Hazard Relation Diagrams: a diagrammatic representation to increase validation objectivity of requirements-based hazard mitigations , 2017, Requirements Engineering.

[7]  Vicente Pelechano,et al.  The OO-method approach for information systems modeling: from object-oriented conceptual modeling to automated programming , 2001, Inf. Syst..

[8]  Fabrice Kordon,et al.  Using MetaScribe to prototype a UML to C++/Ada95 code generator , 2000, Proceedings 11th International Workshop on Rapid System Prototyping. RSP 2000. Shortening the Path from Specification to Prototype (Cat. No.PR00668).

[9]  Horst Lichter,et al.  Prototyping in industrial software projects—bridging the gap between theory and practice , 1994, ICSE '93.

[10]  Mohamed El-Attar,et al.  Using security robustness analysis for early-stage validation of functional security requirements , 2014, Requirements Engineering.

[11]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

[12]  Eric Dubois,et al.  On the use of a formal requirements engineering language: The Generalized Railroad Crossing Problem , 1997, Requirements Engineering.

[13]  Andrew Gemino,et al.  Empirical comparisons of animation and narration in requirements validation , 2004, Requirements Engineering.

[14]  Marco Roveri,et al.  Supporting Requirements Validation: The EuRailCheck Tool , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[15]  Wilhelm Rossak,et al.  CUTA4UML: bridging the gap between informal and formal requirements for dynamic system aspects , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[16]  David A. Basin,et al.  A Model-Driven Methodology for Developing Secure Data-Management Applications , 2014, IEEE Transactions on Software Engineering.

[17]  Ling Yin,et al.  AutoPA: Automatic Prototyping from Requirements , 2010, ISoLA.

[18]  Fiona A. C. Polack A case study using lightweight formalism to review an information system specification , 2001, Softw. Pract. Exp..

[19]  David Chemouil,et al.  Lightweight specification and analysis of dynamic systems with rich configurations , 2016, SIGSOFT FSE.

[20]  Franz Lehner,et al.  Requirements Engineering as a Success Factor in Software Projects , 2001, IEEE Softw..

[21]  Mark Richards,et al.  Software Architecture Patterns , 2015 .

[22]  dizayn İç dekor Design by Contract , 2010 .

[23]  Richard Lai,et al.  A method of software requirements specification and validation for global software development , 2017, Requirements Engineering.

[24]  Tanja E. J. Vos,et al.  CoSTest: A Tool for Validation of Requirements at Model Level , 2017, 2017 IEEE 25th International Requirements Engineering Conference (RE).

[25]  Holger Giese,et al.  Deriving behavior of multi-user processes from interactive requirements validation , 2010, ASE '10.

[26]  Bruce McMillin,et al.  Software engineering: What is it? , 2018, 2018 IEEE Aerospace Conference.

[27]  Roel Wieringa,et al.  Guest Editors' Introduction: Stakeholders in Requirements Engineering , 2007, IEEE Software.

[28]  Mark Robinson,et al.  An automated collaborative requirements engineering tool for better validation of requirements , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[29]  Craig Larman,et al.  "Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development”, Third Edition, Pearson Education, 2005. , 2015 .

[30]  E KrasnerGlenn,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[31]  Zhenbang Chen,et al.  Refinement and verification in component-based model-driven design , 2009, Sci. Comput. Program..

[32]  John C. Grundy,et al.  Generating essential user interface prototypes to validate requirements , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[33]  Jifeng He,et al.  Formal and use-case driven requirement analysis in UML , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[34]  Horst Lichter,et al.  User interface prototyping-concepts, tools, and experience , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[35]  Bashar Nuseibeh,et al.  Requirements engineering: a roadmap , 2000, ICSE '00.

[36]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[37]  Georg Kösters,et al.  Combined analysis of user interface and domain requirements , 1996, Proceedings of the Second International Conference on Requirements Engineering.

[38]  Julio Cesar Sampaio do Prado Leite,et al.  Requirements Validation Through Viewpoint Resolution , 1991, IEEE Trans. Software Eng..

[39]  Ismaïl Khriss,et al.  Automated Prototyping of User Interfaces Based on UML Scenarios , 2006, Automated Software Engineering.

[40]  Xiaoshan Li,et al.  Validation of requirement models by automatic prototyping , 2008, Innovations in Systems and Software Engineering.

[41]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[42]  David Basin,et al.  Model driven security: From UML models to access control infrastructures , 2006, TSEM.

[43]  Jifeng He,et al.  A Relational Model for Formal Object-Oriented Requirement Analysis in UML , 2003, ICFEM.

[44]  Shinichi Honiden,et al.  Formal specification generator for KAOS: model transformation approach to generate formal specifications from KAOS requirements models , 2007, ASE '07.

[45]  Jifeng He,et al.  rCOS: A refinement calculus of object systems , 2006, Theor. Comput. Sci..

[46]  Alistair G. Sutcliffe,et al.  Tracing Requirements Errors to Problems in the Requirements Engineering Process , 1999, Requirements Engineering.

[47]  Volker Stolz,et al.  rCOS: a formal model-driven engineering method for component-based software , 2012, Frontiers of Computer Science.

[48]  Hans-Werner Six,et al.  Round-Trip Prototyping Based on Integrated Functional and User Interface Requirements Specifications , 2002, Requirements Engineering.

[49]  Yue Lu,et al.  Towards feature-oriented requirements validation for automotive systems , 2014, 2014 IEEE 22nd International Requirements Engineering Conference (RE).

[50]  Ebba Þóra Hvannberg,et al.  Comparing task practicing and prototype fidelities when applying scenario acting to elicit requirements , 2012, Requirements Engineering.

[51]  Sebastián Uchitel,et al.  Fluent-based animation: exploiting the relation between goals and scenarios for requirements validation , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[52]  Timothy Lethbridge,et al.  Model‐driven rapid prototyping with Umple , 2012, Softw. Pract. Exp..

[53]  Bran Selic,et al.  Execution of UML models: a systematic review of research and practice , 2018, Software & Systems Modeling.

[54]  R. Chatley,et al.  Fluent-based Web animation: exploring goals for requirements validation , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[55]  John Kelly,et al.  Experiences Using Lightweight Formal Methods for Requirements Modeling , 1998, IEEE Trans. Software Eng..

[56]  Jameleddine Hassine Early modeling and validation of timed system requirements using Timed Use Case Maps , 2013, Requirements Engineering.

[57]  Martin Gogolla,et al.  USE: A UML-based specification environment for validating UML and OCL , 2007, Sci. Comput. Program..

[58]  Michael Felderer,et al.  Using defect taxonomies for requirements validation in industrial projects , 2013, 2013 21st IEEE International Requirements Engineering Conference (RE).

[59]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[60]  Gilles Vanwormhoudt,et al.  Aspectual templates in UML , 2017, Software & Systems Modeling.