Abstract
This article analyses the relationships between software architecture, programming languages and interactive systems. It proposes to consider that languages, like user interface tools, implement architecture styles or patterns aimed at particular stakeholders and scenarios. It lists architecture issues in interactive software that would be best resolved at the language level, in that conflicting patterns are currently proposed by languages and user interface tools, because of differences in target scenarios. Among these issues are the contra-variance of reuse and control, new scenarios of software reuse, the architecture-induced concurrency, and the multiplicity of hierarchies. The article then proposes a research agenda to address that problem, including a requirement-and scenario-oriented deconstruction of programming languages to understand which of the original requirements still hold and which are not fully adapted to interactive systems.
The original version of the book was revised: The copyright line was incorrect. The Erratum to the book is available at DOI: 10.1007/978-3-540-92698-6_37
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Wirth, N.: Data structures + algorithms = programs. Prentice Hall, Englewood Cliffs (1975)
Kruchten, P., Sotirovski, D.: Implementing dialogue independence. IEEE Software 12(6), 61–70 (1995)
Kruchten, P.: The Rational Unified Process — an Introduction. Addison-Wesley-Longman (1999)
Linton, M.A., Vlissides, J.M.: The design and implementation of InterViews. In: Proceedings of the USENIX C++ Workshop (1987)
Weinand, A., Gamma, E., Marty, R.: ET++ -an object-oriented application framework in C++. In: OOPSLA 1988 Proceedings (1988)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Bass, L., Coutaz, J.: Developing software for the user interface. The SEI Series in Software Engineering. Addison Wesley, Reading (1991)
Bass, L., Clements, P., Kazman, R.: Software architecture in practice. Addison-Wesley, Reading (1998)
Krasner, G., Pope, S.: A cookbook for using the Model-View-Controller user interface paradigm in Smalltalk 1980. Journal of Object-oriented programming 1(3), 26–49 (1988)
Barrett, R., Delany, S.J.: OpenMVC: a non-proprietary component-based framework for web applications. In: Proceedings of the 13th international WWW conference (2004)
Chatty, S., Sire, S., Lemort, A.: Vers des outils pour les équipes de conception d’interfaces post-WIMP. In: Actes d’IHM 2004, pp. 45–52. ACM Press, New York (2004)
Nuseibeh, B., Easterbrook, S.: Requirements engineering: a roadmap. In: ICSE 2000: Proceedings of the Conference on The Future of Software Engineering, pp. 35–46. ACM Press, New York (2000)
Muller, M.J., Kuhn, S.: Participatory design. Commun. ACM 36(6), 24–28 (1993)
Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: Why reuse is so hard. IEEE Software 12(6), 17–26 (1995)
Garlan, D., Shaw, M.: An introduction to software architecture. In: Ambriola, V., Tortora, G. (eds.) Advances in Software Engineering and Knowledge Engineering. Series on Software Engineering and Knowledge Engineering, vol. 2, pp. 1–39. World Scientific Publishing Company, Singapore (1993)
Kazman, R., Abowd, G., Bass, L., Clements, P.: Scenario-based analysis of software architecture. IEEE Software 13(6), 47–55 (1996)
King, B., Lovelace, A.: Notes by the translator of the Sketch of the Analytical Engine invented by Charles Babbage, by L.F. Menabrea. Scientific Memoirs 3, 666—731 (1843)
Turing, A.M.: Proposals for the development in the mathematics division of an Automatic Computing Engine (ACE). Technical Report E882, Executive Committee, NPL (1946)
Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley, Reading (1994)
Backus, J.: Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Communications of the ACM 21(8) (1978)
Pfaff, G.E. (ed.): User Interface Management Systems. Eurographics Seminars. Springer, Heidelberg (1985)
Bass, L., Pellegrino, R., Reed, S., Seacord, R., Sheppard, R., Szezur, M.R.: The Arch model: Seeheim revisited. In: CHI 1991 User Interface Developers Workshop (1991)
Coutaz, J.: PAC, an implementation model for dialog design. In: Proceedings of the Interact 1987 Conference, pp. 431–436. North Holland, Amsterdam (1987)
Myers, B.A.: A brief history of human-computer interaction technology. Interactions 5(2), 44–54 (1998)
Beaudouin-Lafon, M., Berteaud, Y., Chatty, S.: Creating direct manipulation interfaces with XTV. In: Proceedings of EX 1990, London, pp. 148–155 (1990)
Martin, R.C.: Agile Software Development: Principles, Patterns and Practices. Pearson Education, London (2002)
Goldberg, A.: SMALLTALK 1980, the Interactive Programming Environment. Addison-Wesley, Reading (1984)
Myers, B.A.: Creating user interfaces using programming by example, visual programming and constraints. ACM Transactions on Programming Languages and Systems 12(2), 143–177 (1990)
Chatty, S.: Defining the behaviour of animated interfaces. In: Proceedings of the IFIP WG 2.7 working conference, pp. 95–109. North-Holland, Amsterdam (1992)
Strauss, P.S.: Iris inventor, a 3d graphics toolkit. In: OOPSLA 1993: Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, pp. 192–200. ACM Press, New York (1993)
Palanque, P., Bastide, R.: Petri net based design of user-driven interfaces using the interactive cooperative object formalism. In: Proceedings of the DSV-IS 1994 workshop, pp. 383–401. Springer, Heidelberg (1994)
Dannenberg, R.B.: Arctic: A functional language for real-time control. In: Proceedings of the ACM Conference on Lisp and Functional Languages, pp. 96–103 (1984)
Clement, D., Incerpi, J.: Programming the behavior of graphical objects using Esterel. In: Díaz, J., Orejas, F. (eds.) TAPSOFT 1989 and CCIPL 1989. LNCS, vol. 352. Springer, Heidelberg (1989)
Lecolinet, E.: A molecular architecture for creating advanced GUIs. In: Proceedings of the ACM UIST, pp. 135–144 (2003)
Venners, B., Eckel, B.: The C# design process. a conversation with Anders Hejlsberg (2003), http://www.artima.com/intv/csdes.html
Desreumaux, M., Oudrhiri, R.: Information and software systems: from architecture to urbanism. In: Proceedings of the 1st IFIP Working Conference on Software Architecture. Chapman & Hall, Boca Raton (1998)
Kay, A.C.: The early history of Smalltalk. ACM SIGPLAN (3), 69–75 (1993)
Chatty, S., Sire, S., Vinot, J., Lecoanet, P., Mertz, C., Lemort, A.: Revisiting visual interface programming: Creating GUI tools for designers and programmers. In: Proceedings of the ACM UIST. Addison-Wesley, Reading (2004)
Graham, P.: Hackers and Painters: Big Ideas from the Computer Age. O’Reilly Media, Sebastopol (2004)
Kiczales, G.: Aspect-oriented programming. ACM Computing Surveys 28(4) (1996)
Kiczales, G., des Rivières, J., Bobrow, D.G.: The art of the meta-object protocol. MIT Press, Cambridge (1991)
Dourish, P.: Using metalevel techniques in a flexible toolkit for CSCW applications. ACM Transactions on Computer-Human Interaction 5(2), 109–155 (1998)
Wegner, P.: Why interaction is more powerful than algorithms. Communications of the ACM 40(5) (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chatty, S. (2008). Programs = Data + Algorithms + Architecture: Consequences for Interactive Software Engineering. In: Gulliksen, J., Harning, M.B., Palanque, P., van der Veer, G.C., Wesson, J. (eds) Engineering Interactive Systems. EHCI 2007. Lecture Notes in Computer Science, vol 4940. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-92698-6_22
Download citation
DOI: https://doi.org/10.1007/978-3-540-92698-6_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-92697-9
Online ISBN: 978-3-540-92698-6
eBook Packages: Computer ScienceComputer Science (R0)