How to use requirements and properties of existing products as a guide in implementing a product fam

This position paper takes as outset experience obtained during development of an object-oriented prototype for a global customer service system. The project involved a large shipping company and a university research group. The nature of the system development process: many, short iterations, shifting requirements, evolution over a long period of time, and many developers working in parallel, forced us to constantly focus on software architecture. By analysing the evolution of the prototype architecture we point to three characteristics of the development process that make exploitation of software architectures crucial in rapid, experimental system development, namely: • Evolution. The system should (possibly) evolve into the final product. • Experimentation and exploration. The system should be able to support experimentation and exploration. • Parallel development. The system has to support a division of labour. Insofar as the project was a success the problems were resolved in the project context. Nevertheless the experiences point to the need for tools, techniques and methods for supporting architectural exploitation in experimental system development.

[1]  Giorgio Bruno,et al.  CAB: an Environment for Developing Concurrent Application , 1995, Application and Theory of Petri Nets.

[2]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[3]  Derek J. Hatley,et al.  Strategies for Real-Time System Specification , 1987 .

[4]  Alexander Ran,et al.  Design decision trees , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[5]  Ralph E. Johnson,et al.  Patterns Generate Architectures , 1994, ECOOP.

[6]  Jan Bosch,et al.  Framework composition: problems, causes and solutions , 1997, Proceedings of TOOLS USA 97. International Conference on Technology of Object Oriented Systems and Languages.

[7]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[8]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[9]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA.

[10]  Bertrand Meyer,et al.  Advances in object-oriented software engineering , 1992 .

[11]  Laurian M. Chirica,et al.  The entity-relationship model: toward a unified view of data , 1975, SIGF.

[12]  Barbara Hayes-Roth,et al.  Retrieving semantically distant analogies , 1994 .

[13]  Kim Walden,et al.  Object-Oriented Analysis & Design , 1993, TOOLS.

[14]  Stephen H. Edwards Streams: a pattern for “pull-driven” processing , 1995 .

[15]  David Garlan,et al.  Introduction to the Special Issue on Software Architecture , 1995, IEEE Trans. Software Eng..

[16]  Donald Roberts Evolve Frameworks into Domain-Specific Languages , 1997 .

[17]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[18]  Jens Palsberg,et al.  Evolution of Object Behavior Using Context Relations , 1998, IEEE Trans. Software Eng..

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

[20]  Dirk Riehle Composite design patterns , 1997, OOPSLA '97.

[21]  Marco Torchiano,et al.  Enterprise Integration : operational models of business processes and workflow systems , 1997 .

[22]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[23]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[24]  Roel Wieringa,et al.  Postmodern Software Design with NYAM: Not Yet Another Method , 1997, Requirements Targeting Software and Systems Engineering.

[25]  Pamela Zave,et al.  An Operational Approach to Requirements Specification for Embedded Systems , 1982, IEEE Transactions on Software Engineering.

[26]  G. Bruno,et al.  Modeling the enterprise engineering environment , 1997 .

[27]  Douglas E. Gordon,et al.  How architecture works , 1991 .

[28]  A. A. Abd Allah Composing heterogeneous software architectures , 1996 .

[29]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[30]  David Garlan,et al.  Architectural Styles, Design Patterns, And Objects , 1997, IEEE Softw..

[31]  Peter Radford,et al.  Petri Net Theory and the Modeling of Systems , 1982 .

[32]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[33]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[34]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[35]  Philippe Lalanda,et al.  Two complementary patterns to build multi-expert systems , 1997 .

[36]  Oscar Nierstrasz,et al.  Design Guidelines for Tailorable Frameworks , 1997 .

[37]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[38]  Gary T. Leavens,et al.  Multiple dispatch as dispatch on Tuples , 1998, OOPSLA '98.

[39]  D.R. Chand,et al.  Essential systems analysis , 1986, Proceedings of the IEEE.

[40]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[41]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[42]  Stephen J. Mellor,et al.  Object Oriented Systems Analysis: Modeling the World in Data , 1988 .

[43]  Derek Coleman,et al.  Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design , 1992, IEEE Trans. Software Eng..

[44]  Michael A. Jackson,et al.  Software requirements and specifications - a lexicon of practice, principles and prejudices , 1995 .

[45]  Ralph E. Johnson,et al.  Documenting frameworks using patterns , 1992, OOPSLA '92.

[46]  Klaus Quibeldey-Cirkel,et al.  Using Patterns for Design and Documentation , 1997, ECOOP.

[47]  R.G.R. Engmann,et al.  An environment for object-oriented real-time systems design , 1997, Proceedings 8th Conference on Software Engineering Environments.

[48]  Michael Jackson,et al.  Domain descriptions , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[49]  Pamela Zave,et al.  The operational versus the conventional approach to software development , 1984, CACM.

[50]  Paul Ward,et al.  Structured Development for Real-Time Systems , 1986 .

[51]  H.J.J. Kals,et al.  A generic architecture for factory activity control , 1996 .

[52]  Stijn Bijnens,et al.  A Reflective Invocation Scheme to Realise Advanced Object Management , 1993, ECOOP Workshop.

[53]  Giorgio Bruno Model-based software engineering , 1994 .

[54]  George S. Fishman,et al.  Solution of Large Networks by Matrix Methods , 1976, IEEE Transactions on Systems, Man, and Cybernetics.

[55]  Mark A. Ardis,et al.  Defining families - Commonality analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[56]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[57]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[58]  E. Rechtin,et al.  The art of systems architecting , 1996, IEEE Spectrum.

[59]  Chris Gane,et al.  Structured Systems Analysis: Tools and Techniques , 1977 .