Bibliography
A Ph.D. Thesis by Andrew Le Gear
[Back to Home Page] [Previous Chapter] [Appendix A]
Part IV
Bibliography
Aldrich, J., Chambers, C. and Notkin, D. (2002), Archjava: Connecting software architecture to implementation, in ‘International Conference on Software Engineering’, Orlando, Florida, USA.
Allen, P. and Frost, S. (1998), Component-based Development for Enterprise Systems: Applying the SELECT Perspective, Managing Object Technology Series, Cambridge University Press.
Arnold, R. S. (1993), Software Reengineering, IEEE Computer Society Press.
AT and T (2005), ‘Graphviz’, World wide web. http://www.graphviz.org/.
Ausbel, D. (1968), Educational psychology: A cognitive view, Holt, Rinehart and Winston.
Bachmann, F., Bass, L., Buhman, C., Comella-Dorda, S., Long, F., Robert, J., Seacord, R. and Wallnau, K. (2000), Volume ii: Technical concepts of component-based software engineering, 2nd edition, Internation Research and Development CMU/SEI2000-TR-008, ESC-TR-2000-007, Carnegie-Mellon Software Engineering Institute, Pittsburgh, PA 15213-3890.
Baker, B. S. (1997), ‘Parameterized duplication in strings: Algorithms and an application to software maintenance’, SIAM Journal on Computing 26(5), 1343–1362.
Ball, T. (1999), The concept of dynamic analysis, in ‘Proceedings of the 7th European engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering’, Toulouse, France, pp. 216–234.
Bartlett, F. (1932), Remembering: A Study in Experimental and Social Psychology, Cambridge University Press.
Basili, V. R. (1996), The role of experimentation in software engineering: Past, current and future, in ‘International Conference on Software Engineering’, pp. 442–449.
Bass, L., Buhman, C., Comella-Dorda, S., Long, F., Robert, J., Seacord, R. and Wallnau, K. (2000), Volume i: Market assessment of component-based software engineering, internal Research and Development CMU/SEI-2001-TN-007, Software Engineering Institute, Carnegie-Mellon University.
Baxter, I. D., Yahin, A., Moura, L., Anna, M. S. and Bier, L. (1998), Clone detection using abstract syntax trees, in ‘International Conference on Software Maintenance’.
Belady, L. A. and Evangelisti, C. J. (1982), ‘System partitioning and its measure’, Journal of Systems and Software 2(1), 23–29.
Bergey, J., O’Brien, L. and Smith, D. (2000), Mining existing assets for software product lines, Technical Note CMU/SEI-2000-TN-008, Software Engineering Institute, Carnegie-Mellon University. Product Line Practice Initiative.
Beugnard, A., Jezequel, J.-M., Plouzeau, N. and Watkins, D. (1999), ‘Making components contract aware’, IEEE Computer 32(7), 38–44.
Biggerstaff, T. J. (1989), ‘Design recovery for maintenance and reuse’, IEEE Computer 22(7), 36–49.
Biggerstaff, T., Mitbander, B. and Webster, D. (1993), The concept assignment problem in program understanding, in ‘Proceedings of Working Conference on Reverse Engineering’, pp. 27–43.
Bousfield, W. (1953), ‘The occurance of clustering in recall of randomly arranged associates.’, Journal of General Psychology 49, 229–240.
Bowen, J. P., Breuer, P. T. and Lano, K. C. (1993), ‘A compendium of formal techniques for software maintenance’, Software Engineering Journal 8(5), 253–262.
Bower, G., Clark, M., Lesgold, A. and Winzenz, D. (1969), ‘Hierarchical retrieval schemes in recall of categorized word lists’, Journal of Verbal Learning and Verbal Behavior. 8, 323–343.
Brace, N. and Roth, I. (2005), Mapping Psychology., Vol. Chapter 8: Memory: Structures, processes and Skills, Open University Press.
Brooks, R. (1983), ‘Towards a theory of comprehension of computer programs’, International Journal of Man-Machine Studies (18), 543–554.
Bruner, J. (1990), Act of Meaning, Harvard University Press.
Bruner, J., Goodnow, J. and Austin, G. (1956), A Study of Thinking, John Wiley and Sons.
Buckley, J. (2002), System monitoring : a tool for capturing software engineer’s information-seeking behaviour, PhD thesis, University of Limerick.
Buckley, J., Mens, T., Zenger, M., Rashid, A. and Kniesel, G. (2003), ‘Towards a taxonomy of software change’, Journal of Software Maintenance and Evolution Research and Practice p. (to appear).
Carew, D., Exton, C. and Buckley, J. (2005), An empirical investigation of the comprehensibility of requirements specification, in ‘ISESE’.
Cheesman, J. and Daniels, J. (2001), UML Components : A simple Process for Specifying Component-Based Software, Component Software Series, Addison Wesley.
Chikofsky, E. J. and Cross II, J. H. (1990), ‘Reverse engineering and design recovery: A taxonomy’, IEEE Software pp. 13–17.
Chiricota, Y., Jourdan, F. and Melancon, G. (2003), Software components capture using graph clustering, in ‘International Workshop on Program Comprehension’, pp. 217–227.
Cho, E. S., Kim, M. S. and Kim, S. D. (2001), Component metrics to measure component quality, in ‘Eighth Asia-Pacific Software Engineering Conference’, IEEE, Macao, China, p. 419.
Choi, S. C. and Scacchi, W. (1990), ‘Extracting and restructuring the design of large systems’, IEEE Software 7(1), 66–71.
Christl, A., Koschke, R. and Storey, M.-A. (2005), Equipping the reflexion method with automated clustering, in ‘Working Conference on Reverse Engineering’.
Chung, W., Harrison, W., Kruskal, V., Ossher, H., Stanley, J., Sutton, M. and Tarr, P. (2005), Working with implicit concerns in the concern manipulation environment, in ‘Linking Aspect Technology and Evolution Co hosted with Aspect Orientated Software Development (ASOD 05)’, Chicago, USA.
Cicalese, C. D. T. and Rotenstreich, S. (1999), ‘Behavioral specification of distributed software component interfaces’, IEEE Computer 32(7), 46–53.
Cimitile, A. and Visaggio, G. (1995), ‘Software salvaging and the call dominance tree’, Journal of Systems Software 28(2), 117–127.
Clark, T. (2002), Object Modeling with the OCL (Lecture Notes in Computer Science), Springer-Verlag Berlin and Heidelberg GmbH & Co. K.
Comella-Dorda, S., Wallnau and Seacord, R. C. (2000), A survey of legacy system modernization approaches, Technical Note CMU/SEI-2000-TN-003, Software Engineering Institute, Carnegie-Mellon University. COTS-Based Systems Initiative.
Connolly, T. and Begg, C. (2004), Database Systems: A Practical Approach to Design, Implementation and Management, Addison Wesley.
Corbi, T. A. (1989), ‘Program understanding: Challenge for the 1990’s’, IBM Systems Journal 28(2), 294–306.
Corp., G. I. (1989), Application reengineering, in ‘Guide Pub. GPP-208’, Chicago.
Councill, B. (2001), Third party certification and its required elements, in ‘4th ICSE Workshop on Component-Based Software Engineering’, Toronto, Canada.
Craik, F. and Lockhart, R. (1972), ‘Levels of processing: A framework for memory research’, Journal of Verbal Learning and Verbal Behavior. 11, 671–684.
Craik, F. and Tulving, E. (1975), ‘Depth of processing and retention of words in episodic memory.’, Journal of Experimental Psychology, General. 104, 268–294.
Dean, T. and Chen, Y. (2003), Design recovery of a two level system, in ‘International Conference on Program Comprehension’, Vol. Design RecoveryArchitecture, pp. 23–32.
Doval, D., Mancordis, S. and Mitchell, B. S. (1999), Automatic clustering of software systems using a genetic algorithm, in ‘Proceedings of the International Conference on Software Tools and Engineering Practice’.
Dowling, J., Schafer, T., Cahill, V., Haraszti and Redmond, B. (1999), Using reflection to support dynamic adaptation of system software: A case study driven evaluation, in ‘Workshop on ObjectOriented Reflection and Software Engineering’, Denver, Colorado, pp. 153–172.
Ebbinghaus, H. (1913), Memory, paperback edition., new york dover, 1964 edn, New York, Teachers College.
Eclipse IDE Homepage (2005). http://www.eclipse.org.
Eddon, G. (1999), ‘Com+:the evolution of component services’, IEEE Computer 32(7), 104–106.
Eick, S. G., Graves, T. L., Karr, A. F., Marron, J. S. and Mockus, A. (2001), ‘Does code decay? assessing the evidence from change management data’, IEEE Transactions on Software Engineering 27(1), 1–12.
Eiffel Software, I. (2004), ‘Eiffel software home page’, www.eiffel.com .
Eisenbarth, T., Kosche, R. and Simon, D. (2001), Feature-driven program understanding using concept analysis of execution traces, in ‘International Workshop on Programming Comprehension (IWPC)’, IEEE Computer Society, IEEE, Toronto, Canada, pp. 300–309.
Eisenbarth, T., Koschke, R. and Simon, D. (2001), Aiding program comprehension by static and dynamic feature analysis, in ‘IEEE International Conference on Software Maintenance (ICSM’01)’, IEEE, Universität Stuttgart, Breitwiesenstr, 20-22, 70565, Stuttgart, Germany, p. 602.
Eisenbarth, T., Koschke, R. and Simon, D. (2003), ‘Locating features in source code’, IEEE Transactions on Software Engineering 29(3), 210–224.
Eisenbarth, T. and Simon, D. (2001), Guiding feature asset mining for software product line development, in ‘International Workshop on Product Line Engineering: The Early Steps: Planning, Modelling and Managing’.
Eisenberg, A. D. and De Volder, C. (2005), Dynamic feature traces: Finding features in unfamiliar code, in ‘Proceedings of the the 21st International Conference on Software Maintenance’.
Ericsson, K. A. and Simon, H. A. (1993), Protocol Analysis -Revised Edition, Verbal Reports as Data, The MIT Press.
Fantozzi, A. (2002), Locating features in vim: A software reconnaissance case study. Submission to University of West Florida for CEN 6015.
Fenton, N. E. (1991), Software Metrics: A Rigorous Approach, Chapman & Hall, Ltd., London, UK.
Ferrante, J. and Warren, J. D. (1987), ‘The program dependence graph and its use in optimization’, ACM Transactions on Programming Languages and Systems 9(3), 319–349.
Fleming, N. (2006), Vark -a guide to learning styles. http://www.varklearn.com/english.
Fleming, N. D. and Mills, C. (1992), ‘Not another inventory, rather a catalyst for reflexion’, To Improve the Academy 11, 137.
Fowler, M., Beck, K., Brant, J., Opdyke, W. and Roberts, D. (1997), Refactoring: Improving the Design of Existing Code, The SEI Series in Software Engineering, Addison Wesley Professional, Inc.
Gall, H. and Klösch (1995), Finding objects in procedural programs: An alternate approach, in ‘Proceeding of Second Working Conference on Reverse Engineering’, pp. 208–216.
Gallagher, K. B. and Lyle, J. R. (1991), ‘Using program slicing in software maintenance’, IEEE Transactions on Software Engineering 17(8), 751–761.
Galvin, S., Collins, J., Exton, C. and McGurren, F. (2004), Enhancing the role of interfaces in software architecture description languages (adls), in ‘The Workshop of Architecture Description Languages (WADL ’04)’, Toulouse, France.
Girard, J.-F. and Koschke, R. (1997), Finding components in a hierarchy of modules: a step towards architectural understanding, in ‘International Conference on Software Maintenance’, Bari, Italy, pp. 58–65.
Glass, R., Vessey, I. and Ramesh, V. (2002), ‘Research in software engineering: An analysis of the literature’, Journal of Information and Software Technology 44, 491– 506.
Greenfield, J., Short, K., Cook, S. and Kent, S. (2004), Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, Wiley.
Gunderson, A., Wilde, N. and Casey, C. (1995), Locating features in interbase: A software reconnaissance case study at gte government systems, Technical SERC-TR77-F, Software Engineering Research Center, University of Florida, Gainsville, FL 32611, USA.
Hamlet, D. (2001), ‘Component synthesis theory: The problem of scale’, 4th ICSE Workshop on Component-Based Software Engineering .
Harrison, W. (2006), ‘Editorial’, Empirical Software Engineering 2(1).
Hassan, A. E. and Holt, R. C. (2004), Using development history sticky notes to understand software architecture, in ‘International Workshop on Programming Comprehension (IWPC)’, IEEE Computer Society, IEEE, Bari, Italy, pp. 183–192.
Heuzeroth, D., Holl, T., Hogstrom, G. and Lowe, W. (2003), Automatic design pattern detection, in ‘International Conference on Program Comprehension’, pp. 94–103.
Hoare, C. (1974), ‘Monitors: An operating system structuring concept’, Communications of the ACM 17(10), 549–557.
Hochstein, L. and Lindvall, M. (2003), Diagnosing architectural degeneration, in ‘28th Annual NASA Goddard Software Engineering Workshop’.
Huitt, W. (2003), Constructivism. Educational Psychology Interactive, Valdosta State University. http://chiron.valdosta.edu/whuitt/col/cogsys/construct.html.
Hutchens, D. H. and Basili, V. R. (1985), ‘System structure analysis: Clustering with data bindings’, IEEE Transactions on Software Engineering SE-11(8), 749–757.
IEEE (1990), Ieee standard glossary of software engineering terminology, Std. 610.121990, IEEE Standards Board.
Inc., A. (2006), ‘Adobe acrobat reader homepage’, World Wide Web. http://www.adobe.com/products/acrobat/ .
Inc, S. M. (2005), ‘Java home page’, Internet. http://java.sun.com .
Institute, S. E. (1997), The Capability Maturity Model: Guidelines for Improving the Software Process, The SEI Series in Software Engineering, Addison Wesley Long- man, Inc.
Johnson, J. H. (1994), Substring matching for clone detection and change tracking, in ‘International Conference on Software Maintenance’, IEEE Computer Society, pp. 120–126.
Johnson, P. D. (2002), Mining legacy systems for business components: An architecture for an integrated toolkit, in ‘Proceedings of the 26th International Computer Software and Applications Conference’, IEEE.
JUnit (2006), Junit. http:.//www.junit.org.
Juric, M. B., Rozman, I., Hericko, M. and Domajnko, T. (2000), ‘Integrating legacy systems in distributed object architecture’, ACM Software Engineering Notes 25(2), 35–39.
Kaplan, A. and Murphy, G. (2000), ‘Category learning with minimal prior knowledge’, Journal of Experimental Psychology. Learning Memory and Cognition. 26(4), 829–846.
Kazman, R. and Carrière (1997), Playing detective: Reconstructing software architecture from available evidence, Technical Report CMU/SEI-97-TR-010, ESC-TR-97010, The Software Engineering Institute at Carnegie Mellon University.
Kellogg, R. T. (2003), Cognitive Psychology, Sage Publications Incorporated.
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopez, C. V., Loingtier, J.-M. and Irwin, J. (1997), Aspect-oriented programming, in ‘Proceedings of European Conference on Object-Oriented Programming (ECOOP)’.
Kitchenham, B., Budgen, D., Brereton, P. and Linkman, S. (2005), Realising evidence-based software engineering, in ‘REBSE ’05’, St. Louis Missouri, USA.
Komondoor, R. and Horwitz, S. (2003), Effective, automatic procedure extraction, in ‘International Conference on Program Comprehension’, pp. 33–42.
Kontogiannis, K. A., Demori, R., Merlo, E., Galler, M. and Bernstein, M. (1996), ‘Pattern matching for clone and concept detection’, Automated Software Engineering (3), 77–108.
Kosche, R. and Daniel, S. (2003), Hierarchial reflexion models, in ‘Working Conference on Reverse Engineering’.
Koschke, R. (1999), An incremental semi-automatic method for component recovery, in ‘Working Conference on Reverse Engineering’, IEEE Computer Society Press.
Koschke, R. (2000a), Atomic Architectural Component Recovery for Program Understanding and Evolution, PhD thesis, Institute for Computer Science, University of Stuttgart.
Koschke, R. (2000b), ‘Bauhaus -clustering’, World wide web. http://www.iste.unistuttgart.de/ps/clustering/.
Koschke, R. (2004), A concept analsis primer.
Koschke, R. (2005), Bauhaus. http://www.iste.uni-stuttgart.de/ps/bauhaus/papers/ .
Kruchten, P. (1995), ‘Architectural blueprints -the “4+1” view model of software architecture’, IEEE Software 12(6), 42–50.
Kruchten, P. (1999), The Rational Unified Process -An Introduction, Addison-Wesley.
Krueger, C. W. (1992), ‘Software reuse’, ACM Computing Surveys (CSUR) 24(2), 131–183.
Larsen, L. and Harrold, M. J. (1996), Slicing object-oriented software, in ‘International Conference on Software Engineering’, pp. 495–505.
Lau, K.-K. (2001), ‘Component certification and system prediction: Is there a role for formality?’, 4th ICSE Workshop on Component-Based Software Engineering .
Le Gear, A. (2004), Thematic review of software reengineering and maintenance, Technical Report UL-CSIS-04-3, University of Limerick, Plassy, Castletroy, Co. Limerick, Ireland.
Le Gear, A. (2006), ‘Reconcalc’, World Wide Web. http://sourceforge.net/projects/recon-calc .
Le Gear, A. and Buckley, J. (2005a), Component reconn-exion:component recovery using a variation on software reconnaissance an reflexion modelling, Technical Report UL-CSIS-05-3, University of Limerick, Plassy, Castletroy, Co. Limerick, Ireland.
Le Gear, A. and Buckley, J. (2005b), ‘Reengineering towards components using “reconn-exion”’, ACM SIGSOFT Software Engineering Notes 30(5), 32. ACM Press.
Le Gear, A. and Buckley, J. (2005c), Reengineering towards components using “reconnexion”, in ‘ESEC/FSE Doctoral Symposium 2005’, Libon, Portugal.
Le Gear, A., Buckley, J., Cleary, B. and Collins, J. (2005), ‘Achieving a reuse perspective within a component recovery process: An industrial case study’, International Workshop on Programming Comprehension pp. 279–288.
Le Gear, A., Buckley, J., Collins, J. and O’Dea, K. (2005), Software reconn-exion: Understanding software using a variation on software reconnaissance and reflexion modelling, in ‘International Symposium on Empirical Software Engineering’, IEEE, Noosa, Australia, pp. 33–42.
Le Gear, A., Buckley, J., Galvin, S. and Cleary, B. (2004), A process for transforming portions of existing software for reuse in modern development approaches, in ‘1st International Workshop on Software Evolution transformations’, Delft, the Netherlands, pp. 40–43.
Le Gear, A., Buckley, J. and McIlwaine, C. (2006), Exercising control over the design of evolving software systems using an inverse application of reflexion modeling, in ‘CASCON’, ACM Press.
Le Gear, A., Cleary, B., Buckley, J. and Exton, C. (2005), Making a reuse aspectual view explicit in existing software, in ‘Linking Aspect Technology and Evolution (LATE)’.
Leintz, B. and Swanson, E. (1980), Software Maintenance Management, a Study of the Maintenance of Computer Application Software in 487 Data Processing Organizations., Addison-Wesley.
Lientz, B. P. and Swanson, E. B. (1978), ‘Characteristics of application software maintenance’, Communications of the ACM 21(6), 466–471.
Lindig, C. and Snelting, G. (1997), Assessing modular structure of legacy code based on mathematical concept analysis, in ‘International Conference on Software Engineering’, Bostin MA, USA, pp. 349–359.
Lindvall, M., Tesoriero, R. and Costa, P. (2002), Avoiding architectural degeneration: An evaluation process for software architecture, in ‘IEEE Symposium on Software Metrics’.
Littleton, K., Toates, F. and Braisby, N. (2005), Mapping Psychology, Vol. Chapter 3: Three Approaches to Learning, Open University Press.
Livadas, P. E. and Johnson, T. (1994), ‘A new approach to finding objects in programs’, Journal of Software Maintenance: Research and Practice 6, 249–260.
Loeckx, J. and Sieber, K. (1987), The Foundations of Program Verification, Wiley Teubner Series in Computer Science, second edition edn, B. G. Teubner and John Wiley and Sons.
Ltd., Q. (2006), ‘Qad products: Mfg/pro eb2’, World wide web. http://www.qad.com/solutions/eb2.html.
Lukoit, K., Wilde, N., Stowell, S. and Hennessy, T. (2000), Tracegraph: Immediate visual location of software features, Technical Report SERC-TR-86-F, Software Engineering Research Center, Purdue University, 1398 Dept. of Computer Science, West Lafayette, IN 47906.
Malton, A. J. and Schneider, K. A. (2001), Processing software source text in automated design recovery, in ‘International Conference on Program Comprehension’, pp. 127–134.
Marin, M., van Deursen, A. and Moonen, L. (2004), Identifying aspects using fan-in analysis, in ‘Proceedings of the 11th Working Conference on Reverse Engineering (WCRE’04)’, pp. 132–141.
McGurren, F. (2004), Component composition and architectural reflection, Master’s thesis, University of Limerick, University of Limerick, Plassy, Castletroy, Co. Limerick, Ireland.
McIntosh, K. S. (2003), Progress pro*spy plus, Technical Report Edition 1, Progress Software.
Meyer, B. and Mingins, C. (1999), ‘Component-based development: From buzz to spark’, IEEE Software 32(7), 35–37.
Microsoft, C. (2006a), ‘Microsoft http://www.microsoft.com/net/default.m.net spx. homepage’, World wide web.
Microsoft, C. (2006b), ‘Microsoft http://www.microsoft.com/word/. word homepage’, World Wide Web.
Microsoft, C. (2006c), Visual studio 2005. http://msdn.microsoft.com/vstudio/.
Mii, N. and Takeshita, T. (1993), ‘Software re-engineering and reuse from a japanese point of view’, Information and Software Technology 35(1), 45–53.
Mitchell, B. S., Mancoridis, S. and Traverso, M. (2002), Search based reverse engineering, in ‘Proceedings of the 14th international conference on Software engineering and knowledge engineering’, ACM Press, New York, USA, Ischia, Italy, pp. 431–438.
Muller, H. A., Orgun, M. A., Tilley, S. R. and Uhl, J. S. (1993), ‘A reverse engineering approach to subsystem structure identification’, Software Maintenance: Research and Practice 5(4), 181–204.
Murphy, G. and Allopenna, P. (1994), ‘The locus of knowledge effects in concept learning’, Journal of Experimental Psychology. Learning Memory and Cognition. 20(4), 904–919.
Murphy, G. C. (1996), Lightweight Structural Summarization as an Aid to Software Evolution, PhD thesis, University of Washington.
Murphy, G. C. (2003), ‘jrmtool’, World Wide Web. http://www.cs.ubc.ca/~murphy/jRMTool/doc/.
Murphy, G. C. and Notkin, D. (1997), ‘Reengineering with reflexion models: A case study’, IEEE Computer 17(2), 29–36.
Murphy, G. C., Notkin, D. and Sullivan, K. (1995), Software reflexion models: Bridging the gap between source and high-level models, in ‘Symposium on the Foundations of Software Engineering’, ACM SIGSOFT, Washington D.C., pp. 18–28.
Murphy, G. C., Notkin, D. and Sullivan, K. (2001), ‘Software reflexion models: Bridging the gap between design and implementation’, IEEE Transactions on Software Engineering 27(4), 364–380.
Murphy, G. and Medin, D. (1985), ‘The role of theories in conceptual coherence’, Psychological Review 92, 289–316.
Myers, M. D. (1997), ‘Qualitative research in information systems’, MIS Quarterly Discovery 21(2), 241.
Nauer, P. and Randell, B. (1968), Software engineering; report on a conference by the nato science committee, Technical report, NATO Scientific Affairs Division.
O’Brien, M. P. and Buckley, J. (2001), Inference-based and expectation-based processing in program comprehension, in ‘International Conference on Program Comprehension’, Vol. 9, pp. 71–78.
O’Brien, M. P., Buckley, J. and Exton, C. (2005), Empirically studying software practitioners -bridging the gap between theory and practice, in ‘International Conference on Software Maintenance’, IEEE, pp. 433–442.
O’Callaghan, M. (2005), Biology, The Educational Company of Ireland.
O’Cinneide, M. (2001), Automated Application of Design Patterns: A Refactoring Approach, Phd., University of Dublin, Trinity College.
O’Cinneide, M. and Nixon, P. (1999), ‘A methodology for the automated introduction of design patterns’, Proceedings of the International Conference on Software Maintenance
.
O’Cinneide, M. and Nixon, P. (2000), ‘Composite refactorings for java programs’,
Workshop for formal Techniques for Java Programs, European Conference on Objected-Oriented Programming .
O’Cinneide, M. and Nixon, P. (2001), ‘Automated software evolution towards design patterns’, Proceedings of the International Workshop on the Principles of Software Evolution .
Ogando, R. M., Yau, S. S. and Liu, S. S. (1994), ‘An object finder for program structure understanding in software maintenance’, Journal of Software Maintenance: Research and Practice 6(5), 262–283.
O’Gorman, J. (2001), Operating Systems with Linux, Cornerstones of Computing, Palgrave Publishers Ltd., Houndsmills, Basingstoke, Hampshire, RG21 6SX and 175 Fifth Avenue, New York, NY 10010
OOPSLA, ed. (2006), ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, Portland, Oregon, USA.
Ottenstein, K. J. and Ottenstein, L. M. (1984), The program dependence graph in a software development environment, in ‘ACM SIGPLAN/SIGSOFT Symposium on Practical Programming Development Environments’, ACM SIGPLAN /SIGSOFT, Pittsburgh, Pennsylvania, pp. 177–184.
Parnas, D. L. (1971), ‘Information distribution aspects of design methodology’, Proc. Int. Fed. Inform. Processing Congr. TA-3, 26–30.
Parnas, D. L. (1972), ‘On the criteria to be used in decomposing systems into modules’, Commun. Ass. Comput. Mach. 15, 1053–1058.
Parnas, D. L. (2002), ‘The secret history of information hiding’, Software pioneers: contributions to software engineering pp. 399–409.
Patel, S., Chu, W. and Baxter, R. (1992), A measure for composite module cohesion, in ‘Proceedings of the 14th international conference on Software engineering’, ACM Press New York, NY, USA, Melbourne, Australia, pp. 38–48.
Perry, D., Porter, A. and Votta, L. (1997a), A primer on empirical studies, in ‘International Conference on Software Maintenance’.
Perry, D., Porter, A. and Votta, L. (1997b), A primer on empirical studies, in ‘Tutorial Presented at the International Conference on Software Maintenance’.
Pressman, R. S. (2004), Software Engineering: A Practitioner’s Approach, McGraw-Hill Professional.
Priéto-Diáz (1991), ‘Implementing a faceted classification for software reuse’, Communications of the ACM 34(5), 88–97.
Progress Software, C. (2003), Getting Started With Progress Dynamics, Progress Dynamics Software Corporation.
Quilici, A. (1993), A hybrid approach to recognizing programming plans, in ‘IEEE Workshop on Program Comprehension’, Capri, Italy, pp. 96–103.
Quilici, A., Woods, S. and Zhang, Y. (1997), New experiments with a constraint-based approach to program matching, in ‘Working Conference on Reverse Engineering’, pp. 114–123.
Quilici, A. and Yang, Q. (1996), Applying plan recognition algorithms to program understanding, in ‘Knowledge-Based Software Engineering Conference’, Syracuse, NY, USA, pp. 96–103.
Rajlich, V. and Wilde, N. (2002), The role of concepts in program comprehension, in ‘International Conference on Program Comprehension’, pp. 271–278.
Ran, S., Brebner, P. and Gorton, I. (2001), The rigorous evaluation of enterprise java bean technology, in ‘The 15th International Conference on Information Networking’, IEEE Computer Society, IEEE, Beppu City, Oita, Japan, pp. 93–100.
Refl, P. A. (2005), Tool assisted identifier naming for improved software readability: An empirical study, in ‘International Symposium on Empirical Software Engineering’.
Rennard, J.-P. (2000), Introduction to genetic algorithms. http://www.rennard.org/alife/english/gavintrgb.html.
Rich, C. (1984), ‘Artificial intelligence and software engineering: The programmer’s apprentice project’, ACM Annual Conference .
Richardson, I. (1999), Improving the Software Process in a Small Indigenous Software Development Companies using a model based on Quality Function Deployment, PhD thesis, University of Limerick, Castletroy, Limerick, Ireland.
Ritchie, B. (2006), www.dotnetpowered.com. www.dotnetPowered.com.
Ritsch, H. and Sneed, H. (1993), Reverse engineering programs via dynamic analysis, in ‘Proceedings of Working Conference on Reverse Engineering’, pp. 192–201.
Riva, C. and Deursen, A. v. (2001), Software architecture reconstruction, in ‘International Conference on Software Engineering’, IEEE, IEEE, Edinburgh, Scotland. Tutorial T8.
Robillard, M. P. and Murphy, G. C. (2002), Concern graphs: Finding and describing concerns using structural program dependencies, in ‘International Conference on Software Engineering’.
Rochester, J. B. and Douglass, D. P. (1991), ‘Re-engineering existing systems’, I/S Analyser 29(10), 1–12.
Russo, J., Johnson, E. and Stephens, D. (1989), ‘The validity of verbal protocols’, Memory and Cognition 17.
Sadd, J. (2003), Progress Dynamics Developer’s Guide, Expert Series, Progress Software Corporation.
Sartipi, K. (2001), Alborz: A query-based tool for software architecture recovery, in ‘International Conference on Program Comprehension’, pp. 115–116.
Sartipi, K., Kontogiannis, K. and Mavaddat, F. (2000), A pattern matching framework for software architecture recovery and restructuring, in ‘International Conference on Program Comprehension’, pp. 37–47.
Schwanke, R. W. (1991), An intelligent tool for re-engineering software modularity, in ‘International Conference on Software Engineering’, pp. 83–92.
Seacord, R. C., Plakosh, D. and Lewis, G. A. (2003), Modernizing Legacy Systems, Addison Wesley.
Seaman, C. (1999), ‘Qualitative methods in empirical studies of software engineering.’, IEEE Transactions on Software Engineering 25(1), 557–572.
Seaman, C. B. (2002), ‘The information gathering strategies of software maintainers’, Proceedings of the International Conference on Software Maintenance pp. 141–149.
Sefika, M., Sane, A. and Campbell, R. H. (1996), Monitoring compliance of a software system with its high-level design models, in ‘International Conference on Software Engineering’, pp. 387–396.
Segal, J., Grinyer, A. and Sharp, H. (2005), The type of evidence produced by empirical software engineers, in ‘REBSE ’05’, St. Louis Missouri, USA.
Shaft, T. M. (1995), ‘The relevance of application domain knowledge: The case of computer program comprehension’, Information Systems Research 6, 286.
Siff, M. and Reps, T. (1997), Identifying modules via concept analysis, in ‘International Conference on Software Maintenance’, Bari, Italy, pp. 170–179.
Simon, D. and Eisenbarth, T. (2002), ‘Evolutionary introduction of software product lines’, Lecture Notes in Computer Science 2379, 272–282.
Simula (2006), The simula programming languages. http://www.engin.umd.umich.edu/CIS/course.des/cis400/simula/simula.html .
Snelting, G. (1996), ‘Reengineering of configurations based on mathematical concept analysis’, ACM Transactions of Software Engineering and Methodology 5(2), 146–189.
Snelting, G. (1998), Reengineering of class hierarchies using concept analysis, in ‘Sixth ACM SIGSOFT Symposium on the Foundations of Software Engineering’, pp. 99–110.
Snyder, A. (1986), Encapsulation and inheritance in object-oriented programming languages, in ‘OOPLSA’.
Stephens, W., Myers, G. and Constantine, L. (1974), ‘Structured design’, IBM Systems Journal 13(2).
Stevens, P. and Pooley, R. (2000), Using UML -Software Engineering with Objects and Components, Object Technology Series, Addison-Wesley.
Stoemer, C., O’Brien, L. and Verhoef, C. (2003), Moving towards quality attribute driven software architecture reconstruction, in ‘Working Conference on Reverse Engineering’.
Stoermer, C., O’Brien, L. and Verhoef, C. (2004), Architectural views through collapsing strategies, in ‘International Workshop on Program Comprehension (IWPC’04)’.
Storey, M.-A. D. and Muller, H. A. (1995), Manipulating and documenting software structures using shrimp views, in ‘International Conference in Software Maintenance’, IEEE, Nice, France, pp. 275–285.
Sun Microsystems, I. (2006), ‘Java home page’, World wide web. http://java.sun.com.
Szyperski, C. (2003), Component technology -what, where and how?, in ‘International Conference on Software Engineering’, IEEE, pp. 684–693.
Terekhov, A.A. Verhoef, C. (2000), ‘The realities of language conversions’, IEEE Software (6), 111–124.
Tilley, S. R., Wong, K., Storey, M.-A. D. and Muller, H. A. (1994), ‘Programmable reverse engineering’, International Journal of Software Engineering and Knowledge Engineering 4(4), 501–520.
Tip, F. (1995), ‘A survey of program slicing techniques’, Journal of Programming Languages 3, 121–189.
Tran, J. B., Godfrey, M. W., Lee, E. H. and Holt, R. C. (2000), Architectural repair of open source software, in ‘International Conference on Program Comprehension’, pp. 48–59.
Tulving, E. (1975), Ecphoric Processing in Recall and Recognition in Recall and Recognition, Wiley.
Tulving, E. (1983), Elements of Episodic Memory, Oxford University Press.
Tvedt, R. T., Costa, P. and Lindvall, M. (2002), Does the code match the design? a process for architecture evaluation, in ‘International Conference on Software Maintenance’.
Tvedt, R. T., Costa, P. and Lindvall, M. (2004), ‘Evaluating software architectures’, Advances in Computers 61, 1–43.
Urschler, G. (1975), ‘Automatic structuring of programs’, IBM Journal of Research and Development 19, 181–194.
Valasareddi, R. R. and Carver, D. L. (1998), A graph-based object identification process for procedural programs, in ‘Proceedings of the Working Conference on Reverse Engineering (WCRE’98)’, IEEE Computer Society Washington, DC, USA, p. 50.
Verhoef, C. (2000), ‘The realities of large software portfolios’, citeseer. ist.psu.edu/verhoef00realities.html.
Voas, J. M. (1998), ‘Certifying off-the-shelf software components’, IEEE Computer 31(6), 53–59.
W3C (2006), ‘Soap specification’, World Wide Web. http://www.w3.org/TR/soap/.
Walenstein, A. (2002), ‘Theory-based analysis of cognitive support in software comprehension tools’, International Workshop on Program Comprehension 10, 75–84.
Wallnau, K. C. (2003), Volume iii: A technology for predictable assembly from certifiable components, Technical Report CMU/SEI-2003-TR-009, ESC-TR-2003-009, Software Engineering Institute, Carnegie-Mellon University.
Wang, G., Ungar, L. and Klawitter, D. (1999), ‘Component assembly for oo distributed systems’, IEEE Computer 32(7), 71–78.
Washizaki, H., Yamamoto, H. and Fukazawa, Y. (2002), Software component metrics and it’s experimental evaluation, in ‘Proc. of the International Symposium on Empirical Software Engineering (ISESE 2002)’.
Weiser, M. (1982), ‘Programmers use slices when debugging’, Communications of the ACM 25(7), 446–452.
Whittaker, J. A. and Voas, J. M. (2002), ‘50 years of software: Key principals for software’, IEEE IT Professional 4(6), 28–35.
Wikipedia (2006a), ‘Hawthorne effect’, World Wide Web. http://en.wikipedia.org/wiki/hawthorne_effect.
Wikipedia (2006b), Locating features in vim: A software reconnaissance case study. http://en.wikipedia.org/wiki/Information_hiding.
Wilde, N. (1994), Faster reuse and maintenance using “software reconnaissance”, Technical Report SERC-TR-75F, University of West Florida, Pensacola, Florida 32514, USA.
Wilde, N. (1998), Understanding embedded software through instrumentation: Preliminary results from a survey of techniques, Technical Report SERC-TR-85-F, Software Engineering Research Center, Purdue University, 1398 Department of Computer Science, West Lafayette, IN 47906.
Wilde, N., Blackwell, K. and Justice, R. (1998), Understanding data-sensitive code: One piece of the year 2000 puzzle, Report SERC-TR-83-F, Software Engineering Research Center, University of Florida, University of Florida, CIS Department, Gainesville, FL 32611, January, 1998.
Wilde, N., Buckellew, M., Page, H., Rajich, V. and Pounds, L. (2003), ‘A comparison of methods for locating features in legacy software’, Journal of Systems and Software 65(2), 105–114.
Wilde, N. and Casey, C. (1996), Early field experience with the software reconnaissance technique for program comprehension, in ‘Proceedings of the 1996 International Conference on Software Maintenance’, pp. 312–318.
Wilde, N., Casey, C., Vandeville, J., Trio, G. and Hotz, D. (1997), Reverse engineering of software threads: A design recovery technique for large multi-process systems, Report SERC-TR-82-F, Software Engineering Research Center, Computer Science Department, Purdue University, Purdue University, West Lafayette, IN 47907.
Wilde, N., Gomez, J., Gust, T. and Strasburg, D. (1992), Locating user functionality in old code, in ‘Conference on Software Maintenance’, IEEE, pp. 200–205.
Wilde, N., Page, H. and Rajlich, V. R. (2001), A case stude of feature location in unstructured legacy fortran code, in ‘Proceedings of the Fifth European Conference on Software Maintenance and Reengineering’, IEEE Computer Society, p. 68.
Wilde, N. and Scully, M. C. (1995), ‘Software reconnaissance: Mapping program features to code’, Journal of Software Maintenance: Research and Practice 7(1), 49–62.
Wong, W. E., Gokhale, S., Horgan, J. R. and Trivedi, K. S. (1999), Locating program features using execution slices, in ‘Proceedings of the 1999 IEEE Symposium on Application -Specific Systems and Software Engineering and Technology’, IEEE, IEEE Computer Society, p. 194.
Woodman, M., Benediktsson, O., Lefever, B. and Stallinger, F. (2001), ‘Issues of cbd product quality and process quality’, 4th ICSE Workshop on Component-Based Software Engineering .
Woods, S. and Quilici, A. (1996), Some experiments toward understanding how program plan recognition algotithms scale, in ‘Working Conference on Reverse Engineering’, Monterey, CA, USA, pp. 21–30.
Yan, H., Garlan, D., Schmerl, B., Aldrich, J. and Kazman, R. (2004), Discotect: A system for discovering architectures from running systems, in ‘International Conference on Software Engineering’, IEEE, IEEE, Edinburgh, Scotland, pp. 470–479.
Yeh, A. S., Harris, D. R. and Reubenstein, H. B. (1995), Recovering abstract data types and object instances from a conventional procedure language, in ‘Working Conference on Reverse Engineering’, pp. 227–236.
Yip, S. W. L. (1995), Software maintenance in hong kong, in ‘International Conference on Software Maintenance’, IEEE, IEEE, Opio (Nice), France, pp. 88–97.
Yourdon, E. and Constantine, L. (1979), Structured Design, Prentice Hall.
Zhao, W., Zhang, L., Liu, Y., Sun, J. and Yang, F. (2004), Sniafl: Towards a static non-interactive approach to feature location, in ‘International Conference on Software Engineering’, IEEE, IEEE Computer Society, Edinburgh, Scotland, pp. 293–303.
Zweben, S. H., Edwards, S. H., Weide, B. W. and Hollingsworth, J. E. (1995), ‘The effects of layering and encapsulation on software development cost and quality’, IEEE Transactions on Software Engineering 21(3), 200–208.
[Back to Home Page] [Previous Chapter] [Appendix A]
Component Reconn-exion by Andrew Le Gear 2006