Meta-Programming Task Specification Using Feature-Based Patterns and Domain Program Scenarios

Part of the Advanced Information and Knowledge Processing book series (AI&KP, volume 5)


The development of a meta-program includes two interrelated stages: (1) task specification resulting in creating of a specification model and (2) transformation of the model into a meta-program representation. In Chap. 10, we focus on the specification task. In general, the needed data to consider the task comes from three sources: requirements for generalization, domain model and domain program that is to be generalized. We accept that the domain model is obtained through domain analysis and the domain is represented by Feature Diagram(s). As Feature Diagrams may be general enough (e.g. they may represent the entire domain to be implemented as a software system), we need to analyse the model and extract some model patterns that are relevant to construct domain generators.


Modal Logic Domain Model Program Comprehension Software Maintenance High Abstraction Level 
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.


  1. [BDS+11].
    Burbaitė R, Damaševičius R, Štuikys V, Bespalova K, Paškevičius P (2011) Product variation modelling using feature diagrams and modal logic. In: Proceedings of the 12th IEEE international symposium on computational intelligence and informatics, 21–22 November 2011, Budapest, Hungary, pp 74–77Google Scholar
  2. [BMW93].
    Biggerstaff TJ, Mitbander BW, Webster D (1993) The concept assignment problem in program understanding. In: Proceedings of the 15th international conference on software engineering. IEEE Computer Society Press, Los Alamitos, pp 482–498CrossRefGoogle Scholar
  3. [Bos00].
    Bosch J (2000) Design and Use of software architectures, adopting and evolving a product-line approach. Addison-Wesley, ReadingGoogle Scholar
  4. [Bro83].
    Brooks R (1983) Towards a theory of computer program comprehension. Int J Man Mach Stud 18:543–554MathSciNetCrossRefGoogle Scholar
  5. [Che95].
    Chellas BF (1995) Modal logic: an introduction. Cambridge University Press, CambridgeGoogle Scholar
  6. [Dam09].
    Damaševičius R (2009) On the human, organizational and technical aspects of software development and analysis. In: Papadopoulos GA, Wojtkowski W, Wojtkowski G, Wrycza S, Zupancic J (eds) Information system development: towards a service provision society. Springer, New York, pp 11–19Google Scholar
  7. [Det96].
    Détienne F (1996) What model(s) for program understanding? In: UCIS’96, colloque using complex information, Poitiers, France, 4–6 September 1996Google Scholar
  8. [FHS02].
    Ferber S, Haag J, Savolainen J (2002) Feature interaction and dependencies: modeling features for reengineering a legacy product line. In: Proceedings of the 2nd international conference on software product lines, SPLC 2, San Diego, CA, USA, 19–22 August 2002. LNCS, vol 2379. Springer, Berlin, pp 235–256Google Scholar
  9. [GBS01].
    Van Gurp J, Bosch J, Svahnberg M (2001) On the notion of variability in software product lines. In: Working IEEE/IFIP conference on software architecture (WICSA 2001), 28–31 August 2001, Amsterdam, pp 45–54Google Scholar
  10. [Hal06].
    Hallam P (2006) What do programmers really do anyway? In: Microsoft developer network (MSDN) C# compiler, January 2006Google Scholar
  11. [HT08].
    Hartmann H, Trew T (2008) Using feature diagrams with context variability to model multiple product lines for software supply chains. In: Proceedings of the 12th international software product line conference, SPLC’08, 8–12 September 2008, pp 12–21Google Scholar
  12. [KCH+90].
    Kang K, Cohen S, Hess J, Novak W, Peterson S (1990) Feature-oriented domain analysis (FODA) feasibility study. TR CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon UniversityGoogle Scholar
  13. [KHH+01].
    Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold WG (2001) An overview of AspectJ. In: Proceedings of 15th European conference on object-oriented programming (ECOOP01), June 2001. LNCS, vol 2072. Springer, Heidelberg, pp 327–352Google Scholar
  14. [KKL+98].
    Kang KC, Kim S, Lee J, Kim K, Kim GJ, Shin E (1998) FORM: a feature–oriented reuse method with domain–specific reference architectures. Ann Softw Eng 5:143–168CrossRefGoogle Scholar
  15. [KMC+09].
    Kosar T, Mernik M, Crepinsek M, Henriques PR, da Cruz D, Pereira MJV, Oliveira N (2009) Influence of domain-specific notation to program understanding. Proc Int Multi-conf Comput Sci Inf Technol 4:675–682Google Scholar
  16. [LGH+07].
    LaToza TD, Garlan D, Herbsleb JD, Myers BA (2007) Program Comprehension as Fact Finding. In ESEC-FSE’07, September 3–7, Croatia, ACM, 2007Google Scholar
  17. [LUM06].
    Lung C, Urban JE, Mackulak GT (2006) Analogy-based domain analysis approach to software reuse. Requir Eng 12(1):1–22CrossRefGoogle Scholar
  18. [MV95].
    von Mayrhauser A, Vans AM (1995) Program understanding: models and experiments. In: Yovits MC, Zelkowitz MV (eds) Advances in computers, vol 40. Academic, Troy, pp 1–38Google Scholar
  19. [Pee01].
    Peeger SL (2001) Software engineering: theory and practice. Prentice Hall PTR, Upper Saddle RiverGoogle Scholar
  20. [PMC+08].
    Pereira MJV, Mernik M, da Cruz D, Henriques PR (2008) Program comprehension for domain-specific languages. J Comput Sci Inf Syst 5(2):1–17CrossRefGoogle Scholar
  21. [Rug95].
    Rugaber S (1995) Program comprehension. Encycl Comput Sci Technol 35(20):341–368Google Scholar
  22. [Shn80].
    Shneiderman B (1980) Software psychology: human factors in computer and information systems. Little Brown, BostonGoogle Scholar
  23. [Sto05].
    Storey MA (2005) Theories, methods and tools in program comprehension: past, present and future. In: Proceedings of the 13th international workshop on program comprehension (IWPC’05). IEEE Computer Society Press, Los Alamitos, pp 181–191CrossRefGoogle Scholar
  24. [TS96].
    Tilley SR, Smith DB (1996) Coming attractions in program understanding. Technical report CMU/SEI-96-TR-019, Software Engineering Institute, Carnegie Mellon University, PittsburghGoogle Scholar
  25. [Wie86].
    Wiedenbeck S (1986) Beacons in computer program comprehension. Int J Man Mach Stud 25:697–709CrossRefGoogle Scholar
  26. [WZ07].
    Wang Y, Zhao J (2007) Specifying pointcuts in AspectJ. In: 31st annual international computer software and applications conference (COMPSAC 2007). IEEE Computer Society Press, Los AlamitosGoogle Scholar

Copyright information

© Springer-Verlag London 2013

Authors and Affiliations

  1. 1.Software Engineering DepartmentKaunas University of TechnologyKaunasLithuania

Personalised recommendations