Analysing the requirements for monitoring and switching : a problem-oriented approach

Context-aware applications monitor changes in their environment and switch their behaviour in order to continue satisfying requirements. Specifying monitoring and switching in such applications can be difficult due to their dependence on varying environmental properties. Two problems require analysis: the detection of changes in the operating environment to assess their impact on requirements satisfaction, and the adaptation of application behaviour to ensure requirements satisfaction. This thesis borrows from the world of problem-oriented software system development and product-lines to analyse monitoring and switching problems on one hand and contextual changes on the other. It proposes a shift of focus from treating monitoring and switching as activities to be analysed as part of the design, to treating them as part of the problem whose requirements are analysed. We claim three novel contributions: (1) we provide concepts and mechanisms for analysing monitoring and switching problems in context; (2) we formulate and prove two theorems for monitoring and switching, which define the necessary and sufficient conditions for monitoring a contextual variable and for switching application behaviour to restore requirements satisfaction when they are violated; and (3) we provide a tool for automated derivation of the conditions for monitoring and switching. Our approach is evaluated using two case studies of a proof of concept mobile phone productline and a logistics company that delivers and monitors products across the UK. We found the applications of the approach to be effective in analysing unforeseen requirements violations caused by changes in the systems operating environments. Furthermore, the monitoring and switching mechanisms derived from the analysis enabled the software to become, to some extent, context-aware.

[1]  Betty H. C. Cheng,et al.  Research Directions in Requirements Engineering , 2007, Future of Software Engineering (FOSE '07).

[2]  Krzysztof Zielinski,et al.  Transparent resource management and self-adaptability using multitasking virtual machine RM API , 2006, SEAMS '06.

[3]  Bernd Mohr,et al.  Distributed Performance Monitoring: Methods, Tools, and Applications , 1994, IEEE Trans. Parallel Distributed Syst..

[4]  T. S. E. Maibaum,et al.  Towards specification, modelling and analysis of fault tolerance in self managed systems , 2006, SEAMS '06.

[5]  Mordechai Ben-Menachem,et al.  Writing effective use cases , 2001, SOEN.

[6]  Bashar Nuseibeh,et al.  Specifying Monitoring and Switching Problems in Context , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[7]  Bashar Nuseibeh,et al.  On the structure of problem variability : From feature diagrams to problem frames Conference or Workshop Item , 2018 .

[8]  Allen Newell,et al.  The psychology of human-computer interaction , 1983 .

[9]  Ji Zhang,et al.  Using temporal logic to specify adaptive program semantics , 2006, J. Syst. Softw..

[10]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[11]  Bill N. Schilit,et al.  An overview of the PARCTAB ubiquitous computing experiment , 1995, IEEE Wirel. Commun..

[12]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[13]  R. Reiter,et al.  Temporal reasoning in the situation calculus , 1994 .

[14]  M.S. Feather,et al.  Reconciling system requirements and runtime behavior , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

[15]  Guanling Chen,et al.  A Survey of Context-Aware Mobile Computing Research , 2000 .

[16]  Thomas A. Alspaugh,et al.  An Automated Approach for Goal-driven, Specification-based Testing , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[17]  Alan Borning,et al.  Constraint-Based Tools for Building User Interfaces , 1986, ACM Trans. Graph..

[18]  Mary Shaw,et al.  Dynamic configuration of resource-aware services , 2004, Proceedings. 26th International Conference on Software Engineering.

[19]  William N. Robinson,et al.  Managing Requirements Inconsistency with Development Goal Monitors , 1999, IEEE Trans. Software Eng..

[20]  Gregory D. Abowd,et al.  Charting past, present, and future research in ubiquitous computing , 2000, TCHI.

[21]  Yijun Yu,et al.  On Goal-based Variability Acquisition and Analysis , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[22]  Yijun Yu,et al.  An automated approach to monitoring and diagnosing requirements , 2007, ASE.

[23]  Bashar Nuseibeh,et al.  Using trust assumptions with security requirements , 2005, Requirements Engineering.

[24]  Dieter Haban,et al.  A Hybrid Monitor for Behavior and Performance Analysis of Distributed Systems , 1990, IEEE Trans. Software Eng..

[25]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[26]  Minseong Kim,et al.  From Product Lines to Self-Managed Systems: An Architecture-Based Runtime Reconfiguration Framework , 2005 .

[27]  David Lorge Parnas,et al.  Requirements-based monitors for real-time systems , 2000, ISSTA '00.

[28]  Henry J. Claycamp,et al.  A Theory of Market Segmentation , 1968 .

[29]  Hermann Kaindl,et al.  Representing Requirements on Generic Software in an Application Family Model , 2000, ICSR.

[30]  Michael Jackson,et al.  Four dark corners of requirements engineering , 1997, TSEM.

[31]  Bradley R. Schmerl,et al.  Architecture-based self-adaptation in the presence of multiple objectives , 2006, SEAMS '06.

[32]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[33]  Stephen Fickas,et al.  Personal and contextual requirements engineering , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[34]  S RosenblumDavid,et al.  An Architecture-Based Approach to Self-Adaptive Software , 1999 .

[35]  Svein O. Hallsteinsen,et al.  Patterns in Product Family Architecture Design , 2003, PFE.

[36]  Axel van Lamsweerde,et al.  Goal-Oriented Requirements Engineering: A Guided Tour , 2001, RE.

[37]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[38]  Peter R. Dickson,et al.  Market Segmentation, Product Differentiation, and Marketing Strategy , 1987 .

[39]  William N. Robinson,et al.  Monitoring software requirements using instrumented code , 2002, Proceedings of the 35th Annual Hawaii International Conference on System Sciences.

[40]  Mats Carlsson,et al.  An Open-Ended Finite Domain Constraint Solver , 1997, PLILP.

[41]  William N. Robinson A requirements monitoring framework for enterprise systems , 2005, Requirements Engineering.

[42]  Michael Jackson,et al.  Problem Oriented Software Engineering: Solving the Package Router Control Problem , 2008, IEEE Transactions on Software Engineering.

[43]  Heather Goldsby,et al.  Goal-oriented specification of adaptation requirements engineering in adaptive systems , 2006, SEAMS '06.

[44]  Robert Grimm,et al.  Systems directions for pervasive computing , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[45]  M. Swartz,et al.  Ethnography and Human Development: Context and Meaning in Social Inquiry , 1998 .

[46]  W. Duncan A GUIDE TO THE PROJECT MANAGEMENT BODY OF KNOWLEDGE , 1996 .

[47]  David Lorge Parnas,et al.  Deriving real-time monitors from system requirements documentation , 2000 .

[48]  Bashar Nuseibeh,et al.  Weaving Together Requirements and Architectures , 2001, Computer.

[49]  Sven Apel,et al.  Towards the Development of Ubiquitous Middleware Product Lines , 2004, SEM.

[50]  Paul Dourish,et al.  What we talk about when we talk about context , 2004, Personal and Ubiquitous Computing.

[51]  Bashar Nuseibeh,et al.  Using Problem Descriptions to Represent Variabilities For Context-Aware Applications , 2007, VaMoS.

[52]  Robert Grimm,et al.  System support for pervasive applications , 2004, TOCS.

[53]  John Mylopoulos,et al.  Requirements analysis for customizable software: a goals-skills-preferences framework , 2003, Proceedings. 11th IEEE International Requirements Engineering Conference, 2003..

[54]  Michael Jackson,et al.  Problem Oriented Software Engineering: A design-theoretic framework for software engineering , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

[55]  Jeff Magee,et al.  Self-organising software architectures for distributed systems , 2002, WOSS '02.

[56]  Hassan Gomaa,et al.  Dynamic Software Reconfiguration in Software Product Families , 2003, PFE.

[57]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[58]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[59]  Ben Shneiderman,et al.  Designing the User Interface: Strategies for Effective Human-Computer Interaction , 1998 .

[60]  John P. McDermott,et al.  R1: A Rule-Based Configurer of Computer Systems , 1982, Artif. Intell..

[61]  André van der Hoek Configurable software architecture in support of configuration management and software deployment , 1999, ICSE '99.

[62]  Klaus Pohl,et al.  Modelling Dependencies between Variation Points in Use Case Diagrams , 2003 .

[63]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[64]  A Campbell,et al.  What's wrong with strategy? , 1997, Harvard business review.

[65]  Mark Weiser,et al.  Some computer science issues in ubiquitous computing , 1999, MOCO.

[66]  Konrad Slind,et al.  Monitoring distributed systems , 1987, TOCS.

[67]  Terry Coatta,et al.  Distributed configuration management using composite objects and constraints , 1994, Proceedings of 2nd International Workshop on Configurable Distributed Systems.

[68]  Stuart R. Faulk Product-line requirements specification (PRS): an approach and case study , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[69]  Neil A. M. Maiden,et al.  The Domain Theory for Requirements Engineering , 1998, IEEE Trans. Software Eng..

[70]  A. Scheer Business Process Engineering: Reference Models for Industrial Enterprises , 1994 .

[71]  Ralf H. Reussner,et al.  Managing Product Line Variability by Patterns , 2004, Net.ObjectDays.

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

[73]  John Mylopoulos,et al.  Towards requirements-driven information systems engineering: the Tropos project , 2002, Inf. Syst..

[74]  Chiara Ghidini,et al.  Contextual reasoning distilled , 2000, J. Exp. Theor. Artif. Intell..

[75]  Lucas Bordeaux,et al.  Propositional Satisfiability and Constraint Programming: A comparative survey , 2006, CSUR.

[76]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[77]  K. Moorthy Market Segmentation, Self-Selection, and Product Line Design , 1984 .

[78]  Marco Sinnema,et al.  Modeling dependencies in product families with COVAMOF , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[79]  Peter Henderson,et al.  Systems Engineering for Business Process Change: Collected Papers from the Epsrc Research Programme , 2000 .

[80]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[81]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[82]  Linda M. Northrop SEI's Software Product Line Tenets , 2002, IEEE Softw..

[83]  David Lorge Parnas,et al.  Using Test Oracles Generated from Program Documentation , 1998, IEEE Trans. Software Eng..

[84]  Jan Bosch Software Product Families in Nokia , 2005, SPLC.

[85]  Martin S. Feather,et al.  Requirements monitoring in dynamic environments , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[86]  Pierre-Yves Schobbens,et al.  Disambiguating the Documentation of Variability in Software Product Lines: A Separation of Concerns, Formalization and Automated Analysis , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[87]  Michael Sannella The skyblue constraint solver , 1992 .

[88]  Robbie T. Nakatsu,et al.  Rule‐Based Expert Systems , 2009 .

[89]  Andy Hopper,et al.  The Anatomy of a Context-Aware Application , 1999, Wirel. Networks.

[90]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[91]  Keith Phalp,et al.  RolEnact: role-based enactable models of business processes , 1998, Inf. Softw. Technol..

[92]  William N. Robinson,et al.  Implementing Rule-Based Monitors within a Framework for Continuous Requirements Monitoring , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[93]  Gregory D. Abowd,et al.  Software engineering issues for ubiquitous computing , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[94]  Hassan Gomaa,et al.  Software reconfiguration patterns for dynamic evolution of software architectures , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[95]  Deborah J. Mayhew,et al.  Principles and Guidelines in Software User Interface Design , 1991 .

[96]  A. Taleb-Bendiab,et al.  Policy-based autonomic control service , 2004, Proceedings. Fifth IEEE International Workshop on Policies for Distributed Systems and Networks, 2004. POLICY 2004..

[97]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[98]  Philippe Massonet,et al.  Goal-directed elaboration of requirements for a meeting scheduler: problems and lessons learnt , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[99]  René L. Krikhaar,et al.  Representing variability in a family of MRI scanners , 2004, Softw. Pract. Exp..

[100]  Stephen Fickas,et al.  Goal-Directed Requirements Acquisition , 1993, Sci. Comput. Program..

[101]  Leonard J. Bass,et al.  Managing variability in software architectures , 2001, SSR '01.

[102]  John Sherry,et al.  Ubiquitous computing design principles: supporting human-human and human-computer transactions , 2004, CHI EA '04.

[103]  Ilka Philippow,et al.  Feature-Oriented Development of Software Product Lines: Mapping Feature Models to the Architecture , 2004, Net.ObjectDays.

[104]  Jan Bosch,et al.  Managing Variability in Software Product Lines , 2000 .

[105]  Alessandro Maccari,et al.  Managing infinite variability in mobile terminal software , 2005, Softw. Pract. Exp..

[106]  Dewayne E. Perry,et al.  Generic Architecture Descriptions for Product Lines , 1998, ESPRIT ARES Workshop.

[107]  KeepenceBarry,et al.  Using Patterns to Model Variability in Product Families , 1999 .

[108]  Helen M. Edwards,et al.  Problem frames: analyzing and structuring software development problems , 2002, Softw. Test. Verification Reliab..

[109]  Rubén Prieto-Díaz,et al.  DARE: Domain analysis and reuse environment , 1998, Ann. Softw. Eng..