• Ei tuloksia

Contribution Summary and Directions for Further Research

Chapter 8 Conclusions

8.4 Contribution Summary and Directions for Further Research

The introduction part of this thesis raised the following research questions: How could we ease the problems of using OO frameworks? What kind of tool support there should be for framework specialization? What kind of a method should we use for specifying framework reuse interfaces? How can we ease the burden of writing patterns for framework reuse interface specifications?

As solutions for these questions, the following contributions were provided: (1) an analysis of the challenges of framework specialization tools, (2) a definition of role-based patterns and their Java-specific extensions that can be used for de-scribing the reuse interfaces of Java frameworks, (3) a formal description of how tasks can be generated from role-based patterns in order to facilitate framework specialization, (4) a description of how patterns can be developed in a hierarchi-cal manner based on other more generic patterns, and (5) a specification of a method for using a library of generic JavaFrames for developing patterns for any framework reuse interface specification.

The most important contributions of this thesis are (1) the formal representation of our role-based patterns and (2) the representation of generic framework spe-cialization patterns in a library-format. The first contribution (a) shows that our pattern concept is generally applicable and not tied to the JavaFrames environ-ment, (b) allows us to examine the patterns more precisely, for example, to give a detailed specification for task generation, and (c) allows further evaluation of the patterns and comparison to other concepts. The second contribution demonstrates that it is possible to represent a considerable portion of the reuse mechanism of OO frameworks as a reusable collection of “framework specialization patterns”.

This kind of a library provides significant aid for developing framework-dependent instructions for framework specialization. The library allows a kind of meta-reuse: instead of reusing software, we reuse the rules for reusing software.

The theoretical contributions of this thesis were validated by implementing the JavaFrames environment that provides pattern-based task-oriented support for framework specialization. Also, JavaFrames was tested in case studies that em-ployed the library of generic patterns and the hierarchical method for specifying framework reuse interfaces.

The case studies showed that we have provided usable answers to the original research questions. Nevertheless, there is always room for new ideas. At the moment, interesting JavaFrames-related research is being conducted at the Tam-pere University of Technology: the researchers are trying to apply the idea of a task automaton and role bindings into solving the problem of managing the

“horizontal dependencies”, or slices in software systems. The problem stems from the fact that every software system must be divided into modules or devel-opment units based on some division criterion. Unfortunately, no matter how the division is done, there will always be dependencies, or aspects, that are spread across several modules. A tool developed based on JavaFrames could be imple-mented to manage these kinds of dependencies in software systems.

Our research interests at the University of Helsinki concern developing Java-Frames’ capabilities for handling also framework construction. At the moment many of JavaFrames’ features can be utilized for supporting any kind of software development where programming needs to be constrained against a predefined model. However, we acknowledge that in order to provide extensive support for framework construction, too, JavaFrames’ features should be further extended.

For example, during framework development, key-activities include changing the framework structure to allow new kinds of variations in the applications devel-oped from the framework (recall the discussion on framework evolution in Chap-ter 3.2.2). JavaFrames could be improved to enable quick and systemized change of framework hot spot implementations through, for example, changing the pat-tern instances or their implementation variations in the hot spots. With this kind of tool support for developing and using OO frameworks, software professionals could really meet the challenges of system development in the 21st century.

163

References

[Aho et al. 1986] Aho A., Sethi R., Ullman J., Compilers — Principles, Tech-niques, and Tools. Addison-Wesley, 1986.

[Akroyd 1996] Akroyd M., AntiPatterns: Vaccinations Against Object Misuse.

In: Session Notes of Object World West Conference, San Francisco, August 1996.

[Alencar et al. 1996] Alencar P., Cowan C., Lucena C., A Formal Approach to Architectural Design Patterns. In: Proceedings of 3rd International Symposium of Formal Methods Europe (FME’96), Oxford, UK, March 1996, 576 – 594.

[Alexander 1979] Alexander C., The Timeless Way of Building. Oxford Univer-sity Press, New York, 1979.

[Alexander 2003] Alexander C., The Nature of Order (Books 1 – 4). Center For Environmental Structure, 2003.

[Alexander et al. 1975] Alexander C., Silverstein M., Angel S., Ishikawa S., Abrams D., The Oregon Experiment. Oxford University Press, New York, 1975.

[Alexander et al. 1977] Alexander C., Ishikawa S., Silverstein M., Jacobson M., Fiksdahl-King I., Angel S., A Pattern Language — Towns, Buildings, Con-struction. Oxford University Press, New York, 1977.

[Alpert-Woolf 1998] Alpert S., Brown K., Woolf B., The Design Patterns Small-talk Companion. Addison-Wesley, 1998.

[Apostolico-Galil 1997] Apostolico A., Galil Z., Pattern Matching Algorithms.

Oxford University Press, 1997.

[Apple 1989] Apple Computer Inc., MacAppII Programmer’s Guide, Apple Computer Inc., Cupertino, CA, 1989.

[Arnold-Gosling 1998] Arnold K., Gosling J., The Java Programming Language, 2nd Edition. Addison-Wesley, 1998.

[Basili et al. 1996] Basili V., Briand L., Melo W., How Reuse Influences Produc-tivity in Object-Oriented Systems. Communications of the ACM 39, 10, 1996, 104 – 116.

[Batory et al. 2000] Batory D., Cardone R., Smaragdakis Y., Object-Oriented Frameworks and Product Lines. In: Proceedings of First Software Product Lines Conference, Denver, Colorado, August 2000, 227 – 247.

[Beck 1988] Beck K., Using a Pattern Language for Programming (A Part of the Summary of Discussions from OOPSLA’87’s Methodologies & OOP Work-shop). In: Addendum to the Proceedings of OOPSLA’87, ACM SIGPLAN No-tices 23, 5, 1988, 16.

[Beck 1997] Beck K., Smalltalk Best Practices Patterns, Prentice Hall, 1997.

[Beck et al. 1996] Beck K., Coplien J., Crocker R., Dominick L., Meszaros G., Paulisch F., Vlissides J., Industrial Experience with Design Patterns. In: Pro-ceedings of 18th IEEE International Conference on Software Engineering (ICSE’96), Berlin, Germany, March 1996, 103 – 114.

[Beck-Johnson 1994] Beck K., Johnson R., Patterns Generate Architecture. In:

Proceedings of the 8th European Conference on Object Oriented Program-ming (ECOOP’94), Bologna, Italy, July 1994, 139 – 149.

[Berlin 1990] Berlin L., When Objects Collide: Experiences with Using Multiple Class Hierarchies. In: Proceedings of the 5th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’90), Ottawa, Canada, October 1990, 181 – 193.

[Betlem et al. 1995] Betlem B. H. L., van Aggele R. M., Bosch J., Rijnsdorp J.

E., An Oriented Framework for Process Operation. Technical report, Depart-ment of Chemical Technology, University of Twente, 1995.

[Biggerstaff-Richter 1987] Biggerstaff T. J., Richter C., Reusability Framework, Assessment, and Directions. IEEE Software 4, 2, March 1987, 41 – 49.

[Bokowski 1999] Bokowski B., CoffeeStrainer: Statically-Checked Constraints on the Definition and Use of Types in Java., In: Proceedings of the ACM SIG-SOFT Symposium on the Foundations of Software Engineering (ESEC/FSE’99), Toulouse, France, September, 1999, 355 – 374.

[Booch 1994] Booch G., Object-Oriented Analysis and Design with Applications, Benjamin/Cummings Publishing Company, 1994.

[Bosch 1999] Bosch J., Measurement Systems Framework. In: Domain-Specific Application Frameworks, Fayad M., Johnson R. (eds.), John Wiley & Sons, 1999.

[Bosch 2000] Bosch J., Design & Use of Software Architectures — Adopting and Evolving a Product-Line Approach. Addison-Wesley, 2000.

[Brooks 1979] Brooks F., The Mythical Man-Month. Addison-Wesley, 1979.

[Brown 1996] Brown K., Design Reverse-Engineering and Automated Design Pattern Detection in Smalltalk. Internet: www.ksccary.com/thesis/thesis.htm, 1996.

[Brown et al. 1998] Brown W., Malveau R., McCormick H., Mowbray T., An-tiPatterns — Refactoring Software, Architectures, and Projects in Crisis.

Wiley Computer Publishing, 1998.

[Budinsky et al. 1996] Budinsky F., Finnie M., Vlissides J., Yu P., Automatic Code Generation from Design Patterns. IBM Systems Journal 35, 2, 1996, 151 – 171.

[Buschmann et al. 1996] Buschmann F., Meunier R., Rohnert H., Sommerlad P., Stal M., A System of Patterns — Pattern-Oriented Software Architecture. John Wiley & Sons, 1996.

[Campbell et al. 1993] Campbell R., Islam N., Raila D., Madany P., Designing and Implementing Choices: An Object-Oriented System In C++. Communica-tions of the ACM 36, 9, 1993, 117 – 126.

[Chambers et al. 2000] Chambers C., Harrison B., Vlissides J., A Debate on Language and Tool Support for Design Patterns. In: Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Lan-guages (POPL’00), Boston, Massachusetts, January 2000, 277 – 289.

[Chikofsky-Cross 1996] Chikofsky E., Cross II J., Reverse Engineering and De-sign Recovery: A Taxonomy. IEEE Software 7, 1, 1996, 13 – 17.

[Cleveland 1988] Cleveland J. C., Building Application Generators. IEEE Soft-ware 4, 5, July 1988, 25 – 33.

[Cline 1996] Cline M., The Pros and Cons of Adopting and Applying Design Patterns in the Real World. Communications of the ACM 39, 10, 1996, 47 – 59.

[Coad 1992] Coad P., Object-Oriented Patterns. Communications of the ACM 35, 9, September 1992.

[Coad et al. 1995] Coad P., North D., Mayfield M., Object Models: Strategies, Patterns, and Applications. Prentice Hall, 1995.

[Codenie et al. 1997] Codenie W., Hondt K., Steyaert P., Vercammen A., From Custom Applications to Domain-Specific Frameworks. Communications of the ACM 40, 10, 1997, 71 – 77.

[Conklin 1987] Conklin J., Hypertext: A Survey and Introduction. IEEE Com-puter 20, 9, 1987, 17 – 41.

[Coplien 1992] Coplien J., Advanced C++: Programming Styles and Idioms.

Addison-Wesley, 1992.

[Coplien 1995] Coplien J., A Generative Development-Process Pattern Lan-guage. In: Coplien J., Schmidt D. (eds.), Pattern Languages of Program De-sign, Addison-Wesley, 1995, 183 – 237.

[Coplien 1996] Coplien J., Patterns. New York: SIGS, 1996.

[Coplien-Schmidt 1995] Coplien J., Schmidt D. (eds.), Pattern Languages of Program Design. Addison-Wesley, 1995.

[Cunningham 1995] Cunningham W., The CHECKS Pattern Language of Infor-mation Integrity. In: Coplien J., Schmidt D. (eds.), Pattern Languages of Pro-gram Design, Addison-Wesley, 1995, 293 – 320.

[Czernecki et al. 1996] Czernecki K., Hanselmann R., Eisenecker U., Koepf W., ClassExpert: A Knowledge-Based Assistant to Support Reuse by Specializa-tion and ModificaSpecializa-tion in Smalltalk. In: Proceedings of the 4th International Conference on Software Reuse (ICSR’96), Orlando, April 1996, 188 – 194.

[D’Souza-Willis 1997] D’Souza D., Willis A., Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, 1997.

[Dahl et al. 1970] Dahl O.-J., Myhrhaug B., Nygaard K., SIMULA-67 Common Base Language. Norwegian Computing Center, Oslo, Norway, 1970.

[Demeyer 1998] Demeyer S., Analysis of Overridden Methods to Infer Hot Spots. In: Proceedings of ECOOP’98 Workshops, Demos, and Posters (Work-shop Reader), Brussels, Belgium, July 1998, LNCS 1543, 1998, 66 – 67.

[Deutsch 1989] Deutsch L., Design Reuse and Frameworks in the Smalltalk-80 System. In: Biggerstaff T., Perlis A. (eds.), Software Reusability Vol. II, ACM Press 1989, 57 – 71.

[Eden et al. 1997] Eden A., Gil J., Yehudai A., Precise Specification and Auto-matic Application of Design Patterns. In: Proceedings of 1997 International Conference on Automated Software Engineering (ASE’97), Lake Tahoe, CA, November 1997, 143 – 152.

[Eden et al. 1999] Eden A., Hirshfeld Y., Lundqvist K., LePUS — Symbolic Logic Modeling of Object Oriented Architectures: A Case Study. In: Proceed-ings of the Second Nordic Workshop on Software Architecture (NOSA’99), University of Karlskrona / Ronneby, Ronneby, Sweden, 1999.

[Eden-Grogono 2001] Eden A., Grogono P., A Theory of Object-Oriented Soft-ware Architecture. Submitted to: International Journal of SoftSoft-ware Engineer-ing and Knowledge EngineerEngineer-ing, Special Issue on Software Architecture, Internet: www.cs.concordia.ca/~faculty/eden/articles/atoosa/atoosa.pdf, 2001.

[Elrad et al. 2001] Elrad T., Filman R., Bader A., Aspect-Oriented Program-ming: Introduction. Communications of the ACM 44, 10, 2001, 29 – 32.

[Favaro 1996] Favaro J., A Comparison of Approaches for Reuse Investment Analysis. In: Proceedings of the 4th International Conference on Software Re-use (ICSR ‘96), Orlando, Florida, April 1996, 136 – 145.

[Fayad et al. 1999] Fayad M., Schmidt D., Johnson R., (eds.), Building Applica-tion Frameworks — Object-Oriented FoundaApplica-tions of Framework Design.

Wiley, 1999.

[Fayad-Schmidt 1997] Fayad M., Schmidt D., Object-Oriented Application Frameworks. Communications of the ACM 40, 10, 1997, 32 – 38.

[Ferenc et al. 2001] Ferenc R., Gustafsson J., Müller L., Paakki J., Recognizing Design Patterns in C++ Programs with the Integration of Columbus and MAISA. In: Proc. 7th Symposium on Programming Languages and Software Tools (SPLST 2001), Szeged, Hungary, June 2001, 58 – 70.

[Florijn et al. 1997] Florijn G., Meijers M., van Winsen P., Tool Support for Ob-ject-Oriented Patterns. In: Proceedings of the 11th European Conference on Object Oriented Programming (ECOOP’97), Jyväskylä, Finland, June 1997, 472 – 495.

[Fontoura 1999] Fontoura M., A Systematic Approach for Framework Develop-ment. Ph.D. Thesis, Computer Science Department, PUC-Rio, 1999.

[Fontoura et al. 2000] Fontoura M., Pree W., Rumpe B., UML-F: A Modeling Language for Object-Oriented Frameworks. In: Proceedings of the 14th Euro-pean Conference on Object Oriented Programming (ECOOP 2000), Sophia Antipolis and Cannes, France, June 2000, 63 – 83.

[Fontoura-Lucena 2001] Fontoura M., Lucena C., Extending UML to Improve the Representation of Design Patterns. Journal of Object-Oriented Program-ming 13, 11, 2001, 12 – 19.

[Foote 1988] Foote B., Designing to Facilitate Change with Object-Oriented Frameworks. Master’s Thesis, University of Illinois at Urbana-Champaign, 1988.

[Foote et al. 1999] Foote B., Harrison N., Rohnert H. (eds.), Pattern Languages of Program Design 4. Addison-Wesley, 1999.

[Foote-Opdyke 1995] Foote B., Opdyke W., Lifecycle and Refactoring Patterns That Support Evolution and Reuse. In: Coplien J., Schmidt D. (eds.), Pattern Languages of Program Design, Addison-Wesley, 1995, 239 – 258.

[Fowler 1997] Fowler M., Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997.

[Fowler et al. 1999] Fowler M. with contributions by Kent B., Brant J., Opdyke W., Roberts D., Refactoring — Improving the Design of Existing Code. Addi-son-Wesley, 1999.

[Froehlich et al. 1997] Froehlich G, Hoover H., Liu L., Sorenson P., Hooking into Object-Oriented Application Frameworks. In: Proceedings of 19th Inter-national Conference on Software Engineering (ICSE´97), Boston, Massachu-setts, IEEE Press, 491 – 501, 1997.

[Gamma et al. 1994] Gamma E., Helm R., Johnson R., Vlissides J., Design Pat-terns — Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

[Gamma-Beck 1999] Gamma E., Beck K., JUnit: A Cook’s Tour. Java Report 4, 5, 1999, 27 – 38.

[Ghezzi-Mandrioli 1979] Ghezzi C., Mandrioli D., Incremental Parsing. ACM Transactions on Programming Languages and Systems 1, 1, 1979, 58 – 70.

[Goldberg 1984] Goldberg A., Smalltalk-80: The Interactive Programming Envi-ronment. Reading, MA: Addison-Wesley, 1984.

[Goldberg-Robson 1983] Goldberg A., Robson D., Smalltalk-80 — The Lan-guage and Its Implementation. Addison-Wesley, 1983.

[Gossain 1990] Gossain S., Object-Oriented Development and Reuse. Ph.D. The-sis, University of Essex, UK, 1990.

[Granö et al. 1998] Granö K., Paakki J., Viljamaa J., Viljamaa A., Protocol Engi-neering & Kannel. Dr. Dobb’s Journal 284, April 1998, 46-53.

[Gustafsson et al. 2002] Gustafsson J., Paakki J., Nenonen L., Verkamo I., Archi-tecture-Centric Software Evolution by Software Metrics and Design Patterns.

In: Proceedings of the 6th European Conference on Software Maintenance and Reengineering (CSMR 2002), Budapest, Hungary, March 2002, 108 – 115.

[Hakala et al. 1997] Hakala M., Hautamäki J., Tuomi J., Viljamaa A., Viljamaa J., Design of a Java Framework Engineering Tool. Report A-1997 – 12, De-partment of Computer Science, University of Tampere, 1997.

[Hakala et al. 1998] Hakala M., Hautamäki J., Tuomi J., Viljamaa A., Viljamaa J., Pattern-Oriented Framework Engineering Using FRED. In: Proceedings of OOSA’98 Workshop (ECOOP’98), Springer, 1998, 105-109.

[Hakala et al. 1999a] Hakala M., Hautamäki J., Tuomi J., Viljamaa A., Viljamaa J., Koskimies K., Paakki J., Managing Object-Oriented Frameworks with Spe-cialization Templates. In: Proceedings of ECOOP'99 International Workshop on Object Technology for Product-Line Architectures, Lisbon, Portugal, 1999.

European Software Institute, 1999, 87-97.

[Hakala et al. 1999b] Hakala M., Hautamäki J., Tuomi J., Viljamaa A., Viljamaa J., Koskimies K., Paakki J., Task-Driven Framework Specialization. In: Pro-ceedings of Fenno-Ugric Symposium on Software Technology (FUSST'99), (J.

Penjam, ed.), Sagadi, Estonia, 1999. Technical Report 104/99, Institute of Cy-bernetics, Tallinn Technical University, 1999, 65-74.

[Hakala et al. 2001a] Hakala M., Hautamäki J., Koskimies K., Paakki J., Vilja-maa A., ViljaVilja-maa J., Annotating Reusable Software Architectures with Spe-cialization Patterns. In: Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA 2001), Amsterdam, August 2001, 171 – 180.

[Hakala et al. 2001b] Hakala M., Hautamäki J., Koskimies K., Paakki J., Vilja-maa A., ViljaVilja-maa J., Generating Application Development Environments for Java Frameworks. In: Proceedings of the 3rd International Conference on Generative and Component-Based Software Engineering (GCSE’01), Erfurt, Germany, September 2001, Springer, LNCS2186, 163 – 176.

[Hakala et al. 2001c] Hakala M., Hautamäki J., Koskimies K., Paakki J., Viljamaa A., Viljamaa J., Architecture-Oriented Programming using FRED.

In: Proceedings of the 23rd International Conference on Software Engineering (ICSE 2001), Toronto, May 2001, 823-824 (Formal research demo).

[Hakala et al. 2002] Hakala M., Hautamäki J., Koskimies K., Savolainen P.:

Generating Pattern-Based Web Tutorials for Java Frameworks. In: Scientific Engineering for Distributed Java Applications, International Workshop, FIDJI 2002, Luxembourg, November 2002. LNCS 2604, 2003, 99 – 110.

[Halasz-Schwartz 1994] Halasz F., Schwartz M., The Dexter Hypertext Refer-ence Model. Communications of the ACM 37, 2, 1994, 30 – 39.

[Hammouda 2005] Hammouda I., A Tool Infrastructure for Model-Driven De-velopment Using Aspectual Patterns. In: Sami Beydeda, Matthias Book, and Volker Gruhn, eds., Model-driven Software Development - Volume II of Re-search and Practice in Software Engineering. Springer, 2005, 139-178.

[Hammouda et al. 2005] Hammouda I., Hakala M., Pussinen M., Katara M., Mikkonen T., Building and Documenting Pattern Systems Using Concern

Views. In: Proceedings of the 2nd European Workshop on Software Architec-ture (eds. R. Morrison and F. Oquendo), LNCS 3527, Springer 2005, 113-129.

[Hautamäki 2002] Hautamäki J., Task-Driven Framework Specialization — Goal-Oriented Approach. Licentiate Thesis, Department of Computer and In-formation Sciences, University of Tampere, 2002.

[Hautamäki et al. 1997] Hautamäki J., Tuomi J., Viljamaa A., Viljamaa J., Four Example Frameworks in Java. Report B-1997-6, Department of Computer Science, University of Tampere, 1997.

[Helm et al. 1990] Helm R., Holland I., Gangopadhyay D., Contracts: Specifying Behavioral Compositions in Object-Oriented Systems. ACM SIGPLAN No-tices 25, 10, 1990, 169 – 180.

[Helm-Maarek 1991] Helm R., Maarek Y., Integrating Information Retrieval and Domain Specific Approaches for Browsing and Retrieval in Object-Oriented Class Libraries. In: Proceedings of the 6th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’91), Phoenix, Arizona, October 1991, 47 – 61.

[Holland 1992] Holland I., Specifying Reusable Components Using Contracts.

In: Proceedings of the 6th European Conference on Object Oriented Pro-gramming (ECOOP´92), Utrecht, The Netherlands, June/July, 1992, 287 – 308.

[Hueni et al. 1995] Hueni H., Johnson R., Engel R., A Framework for Network Protocol Software. In: Proceedings of the 10th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’95), Austin, Texas, October 1995, 358 – 369.

[Jacobson 1992] Jacobson I., Object-Oriented Software Engineering, A Use Case Driven Approach. Addison-Wesley 1992.

[Jacobson et al. 1997] Jacobson I., Griss M., Jonsson P., Software Reuse — Ar-chitecture, Process and Organization for Business Success. Addison-Wesley, 1997.

[Jazayeri et al. 2000] Jazayeri M., Ran A., van der Linden F., Software Architec-ture for Product Families. Addison-Wesley, 2000.

[Jézéquel et al. 2000] Jézéquel J-M., Train M., Mingins C., Design Patterns and Contracts. Addison-Wesley, 2000.

[Johnson 1992] Johnson R. E., Documenting Frameworks Using Patterns. In:

Proceedings of the 7th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’92), Vancouver, Canada, October 1992, 63 – 76.

[Johnson-Foote 1988] Johnson R. E., Foote B., Designing Reusable Classes.

Journal of Object-Oriented Programming 1, 5, 1988, 22 – 35.

[Järnvall et al. 1995] Järnvall E., Koskimies K., Niittymäki M., Object-Oriented Language Engineering with TaLE. Object-Oriented Systems 2, 1995, 77 – 98.

[Katz et al. 1989] Katz S., Richter C. A., K.-S. The, Paris: A System for Reusing Partially Interpreted Schemas. In: Proceedings of 9th International Conference on Software Engineering (ICSE’87), Monterey, CA, March 1987, 377 – 385.

[Kauppinen et al. 2004] Kauppinen R., Taina J., Tevanlinna A., Hook and Tem-plate Coverage Criteria for Testing Framework-Based Software Product Fami-lies. Proceedings of the International Workshop on Software Product Line Testing (SPLiT'2004), Boston, Massachusetts, August 2004, 7 – 12.

[Kerth 1995] Kerth N., Caterpillar’s Fate: A Pattern Language for the Transfor-mation from Analysis to Design. In: Coplien J., Schmidt D. (eds.), Pattern Languages of Program Design, Addison-Wesley, 1995, 293 – 320.

[Kiczales et al. 1997] Kiczales G., Lamping J., Mendhekar A., Maeda C., Lopes C., Loingtier J.-M., Irwin J., Aspect-Oriented Programming. In: Proceedings of the 11th European Conference on Object Oriented Programming (ECOOP’97), Jyväskylä, Finland, June 1997, 220 – 242.

[Kim-Benner 1996] Kim J., Benner K., An Experience Using Design Patterns:

Lessons Learned and Tool Support. Theory and Practice of Object Systems (TAPOS) 2, 1, 1996, 61 – 74.

[Kirk et al. 2002] Kirk D., Roper M., Wood M., Defining the Problems of Framework Reuse. In: Proceedings of the 26th International Computer Soft-ware and Applications Conference (COMPSAC 2002), Prolonging SoftSoft-ware Life: Development and Redevelopment, Oxford, England, August 2002, 623 – 626.

[Koskimies-Mikkonen 2005] Koskimies K., Mikkonen T., Ohjelmistoarkkiteh-tuurit. Gummerus, 2005.

[Koskimies-Mössenböck 1995] Koskimies K., Mössenböck H., Designing a Framework by Stepwise Generalization. In: Proceedings of 5th European Software Engineering Conference (ESEC’95), Sitges, Spain, September 1995, 479 – 498.

[Koskimies-Mössenböck 1996] Koskimies K., Mössenböck H., Scene: Using Scenario Diagrams and Active Text for Illustrating Object-Oriented Programs.

In: Proceedings of 18th IEEE International Conference on Software Engineer-ing (ICSE’96), Berlin, Germany, March 1996, 366 – 375.

[Kramer 2000] Kramer R., The iContract Tool Prototype. Internet: www.reliable-systems.com, 2000.

[Krasner-Pope 1988] Krasner G., Pope S., A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80. Journal of Object-Oriented Programming 1, 3, 1988, 26 – 49.

[Kruchten 1995] Kruchten P., The “4+1” View Model of Software Architecture.

IEEE Software 12, 6, 1995, 42 – 50.

[Laddad 2003] Laddad R., AspectJ in Action — Practical Aspect-Oriented Pro-gramming. Manning Publications Co, 2003.

[LaLonde-Pugh 1991] LaLonde W. R., Pugh J. R., Inside Smalltalk Volume II.

Prentice-Hall, 1991.

[Lange-Nakamura 1995] Lange D., Nakamura Y., Interactive Visualization of Design Patterns Can Help in Framework Understanding. In: Proceedings of the 10th ACM Conference on Object-Oriented Programming, Systems, Lan-guages, and Applications (OOPSLA’95), Austin, Texas, October 1995, 342 – 357.

[Lea 1994] Lea D., Christopher Alexander: An Introduction for Object-Oriented Designers. ACM SIGSOFT Software Engineering Notes 19, 1, 1994, 39 – 46.

[Lea 1996] Lea D., Concurrent Programming in Java — Design Principles and Patterns. Addison-Wesley, 1996.

[Lewis et al. 1995] Lewis T., Rosenstein L., Pree W., Weinand A., Gamma E., Calder P., Andert G., Vlissides J., Schmucker K., Object-Oriented Application Frameworks. Manning Publications, Prentice Hall, 1995.

[Lim 1996] Lim W., Reuse Economics: A Comparison of Seventeen Models and Directions for Future Research. In: Proceedings of the 4th International Con-ference on Software Reuse (ICSR ‘96), Orlando, Florida, April 1996, 41 – 51.

[Lindholm-Yellin 1999] Lindholm T., Yellin F., The Java Virtual Machine Specification, 2nd Edition. Addison-Wesley, 1999.

[Linton et al. 1989] Linton M. A., Vlissides J. M., Calder P. R., Composing User Interfaces with InterViews. Computer 22, 2, February 1989, 8 – 22.

[Lundberg 1996] Lundberg L., Multiprocessor Performance Evaluation of Billing Gateway Systems for Telecommunication Applications. In: Proceedings of the ICSA Conference on Parallel and Distributed Computing Systems (PDCS’96), Dijon, France, September 1996, 225 – 237.

[Malone et al. 1992] Malone T., Lai K.-Y., Fry C., Experiments with Oval: A Radically Tailorable Tool for Cooperative Work. In: Proceedings of the 1992 ACM Conference on Computer-supported Cooperative Work, Toronto, Can-ada, November 1992, 289 – 297.

[Martin 1996] Martin R., Discovering Patterns in Existing Applications. In: Vlis-sides J., Coplien J., Kerth N. (eds.), Pattern Languages of Program Design 2.

Addison-Wesley, 1996, 365 – 393.

[Martin et al. 1998] Martin R., Riehle D., Buschmann F. (eds.), Pattern Lan-guages of Program Design 3. Addison-Wesley, 1998.

[Mattson-Bosch 1999] Mattson M., Bosch J., Composition Problems, Causes, and Solutions. In: [Fayad et al. 1999], 467 – 486.

[McIlroy 1968] McIlroy M., Mass-Produced Software Components. In: Proceed-ings of the 1st International Conference on Software Engineering, Garmisch Pattenkirchen, Germany, 1968, 88 – 98.

[Meijler et al. 1997] Meijler T.D., Demeyer S., Engel R., Making Design Pat-terns Explicit in FACE - A Framework Adaptive Composition Environment.

In: Proceedings of 6th European Software Engineering Conference (ESEC’97), Zürich, Switzerland, September 1997, 94 – 111.

[Menzies 1996] Menzies T., Patterns in Inference Strategies: Lessons and Poten-tial Pitfalls for Reuse Design Patterns. Internet: www.cse.unsw.EDU.AU/

~timm/pub/docs/96probspatt.ps, 1996.

[Metsker 2002] Metsker S., Design Patterns Java Workbook. Addison-Wesley, 2002.

[Meyer 1992a] Meyer B., Applying ‘Design by Contract’. IEEE Computer (Spe-cial Issue on Inheritance & Classification) 25, 10, October 1992, 40 – 52.

[Meyer 1992b] Meyer B., Eiffel: The Language. Prentice-Hall, 1992.

[Meyrowitz 1986] Meyrowitz N., Intermedia: The Architecture and Construction of an Object-Oriented Hypermedia System and Application Framework. Pro-ceedings of the 1st ACM Conference on Object-Oriented Programming, Sys-tems, Languages, and Applications (OOPSLA’86), November 1986, 186 – 201.

[Mikkonen 1998] Mikkonen T., Formalizing Design Patterns. In: Proceedings of 20th International Conference on Software Engineering (ICSE’98), Kyoto, Ja-pan, April 1998, 115 – 124.

[Mili et al. 1995] Mili H., Mili F., Mili A., Reusing Software: Issues and Re-search Directions. IEEE Transactions on Software Engineering 21, 6, 1995, 528 – 562.

[Molin 1996] Molin P., Experiences from Applying the Object-Oriented Frame-work Technique to a Family of Embedded Systems. Research Report 1996,

[Molin 1996] Molin P., Experiences from Applying the Object-Oriented Frame-work Technique to a Family of Embedded Systems. Research Report 1996,