REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding...

12
REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science. Arnold, R. (1993). Software Re-engineering. IEEE Press, Los Alamitos, CA. Arnold, R. and Bohner, S. , editors (1996). Software Change Impact Analysis. IEEE Press, Los Alamitos, CA. Bacchus, F. and Yang, Q. (1991). The downward solution property. In Proceedings of the 12th International Joint Conference on Artificial Intelligence, pages 286-292, Sydney, Australia. Bacchus, F. and Yang, Q. (1992). The expected value of hierarchical problem-solving. In Proceedings of the 10th National Conference on Artificial Intelligence, pages 369-374 , San Jose, CA. Bacchus, F. and Yang, Q. (1994). Downward refinement and the efficiency of hierar- chical problem solving. Artificial Intelligence, 71 (1 ):43-1 00. Baker, B. (1995). On finding duplication and near-duplication in large software sys- tems . In Proceedings of the Second Working Conference on Reverse-Engineering, pages 86-95, Toronto, Canada. Bass, L., Clements, P., and Kazman , R. (1997). Software Architecture in Practice. Addison Wesley, Reading, MA. Be\lay, B. and Ga\l, H. (1997). A comparison of four reverse engineering tools. In Pro- ceedings of the Fourth Working Conference on Reverse-Engineering, Amsterdam, The Netherlands. Binder, H.-E. (1996). A telecommunications development: Siemens' digital switching system, EWSD. In Proceedings of the 18th International Conference on Software Engineering, page 587, Berlin, Germany. Bowdidge, R. and Griswold, W. (1994). Automated support for encapsulating abstract data types. In SIGSOFT '94: Foundations of Software Engineering, New Orleans, LA. 177

Transcript of REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding...

Page 1: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

REFERENCES

Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

Arnold, R. (1993). Software Re-engineering. IEEE Press, Los Alamitos, CA. Arnold , R. and Bohner, S. , editors (1996). Software Change Impact Analysis. IEEE

Press, Los Alamitos, CA. Bacchus, F. and Yang, Q. (1991). The downward solution property. In Proceedings of

the 12th International Joint Conference on Artificial Intelligence, pages 286-292, Sydney, Australia.

Bacchus, F. and Yang, Q. (1992). The expected value of hierarchical problem-solving. In Proceedings of the 10th National Conference on Artificial Intelligence, pages 369-374, San Jose, CA.

Bacchus, F. and Yang, Q. (1994). Downward refinement and the efficiency of hierar­chical problem solving. Artificial Intelligence, 71 (1 ):43-1 00.

Baker, B. (1995). On finding duplication and near-duplication in large software sys­tems. In Proceedings of the Second Working Conference on Reverse-Engineering, pages 86-95, Toronto, Canada.

Bass, L., Clements, P., and Kazman, R. (1997). Software Architecture in Practice. Addison Wesley, Reading, MA.

Be\lay, B. and Ga\l , H. (1997). A comparison of four reverse engineering tools. In Pro­ceedings of the Fourth Working Conference on Reverse-Engineering, Amsterdam, The Netherlands.

Binder, H.-E. (1996). A telecommunications development: Siemens' digital switching system, EWSD. In Proceedings of the 18th International Conference on Software Engineering, page 587, Berlin, Germany.

Bowdidge, R. and Griswold, W. (1994). Automated support for encapsulating abstract data types. In SIGSOFT '94: Foundations of Software Engineering, New Orleans, LA.

177

Page 2: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

178 CONSTRAINT-BASED DESIG N RECOVERY FOR SOFTWARE REENGINEERING

Bowdidge, R. W. (1995). Supporting the Restructuring of Data Abstractions through Manipulation of a Program Visualization. PhD thesis, UC San Diego, Computer Science and Engineering Department.

Bowdidge, R. W. and Griswold, W. (1997). How software tools organize programmer behavior during the task of data encapsulation. Empirical Software Engineering. To appear.

Brooks, F. P. (1995). The mythical man-month: Essays on software engineering. Addison-Wesley Publishing Company, Anniversary Edition.

Burn, J. (1992). Overview of Software Refinery : Product family for automated software analysis and transformation. Technical report, Reasoning Systems, Palo Alto, CA.

Chakravarty, B. (1995). A study in automated program understanding. Master's thesis, University of Hawaii, Department of Electrical Engineering.

Chang, H., Charbon, E., Choudhury, U., Demir, A., Felt, E. , Liu, E., Malavasi, E., Sangionvanni-Vincentelli, A., and Vassiliou, 1. (1997). A Top-Down, Constraint­Driven Design Methodology for Analog Integrated Circuits. Kluwer Academic Publishers, Norwood, MA.

Chin, D. and Quilici, A. (1996). DECODE: A cooperative program understanding environment. Journal ofSoftware Maintenance: Research and Practice, 8(1 ):3-34.

Cooper, M. C. (1989). An optimal k-consistency algorithm. Artificial Intelligence, 41 :89-95.

Cordy, J., Halpern, c., and Promislow, E. (1991). TXL: A rapid prototyping system for programming language dialects. Computer Languages, 16(1):97-107.

Crawford, 1. and Auton, L. (1993). Experimental results on the crossover point in satisfiability problems. In Proceedings of the 11th National Conference on Artificial Intelligence, pages 21-27, Washington, DC.

Dechter, R. (1992). From local to global consistency. ArtificialIntelligence, 55:87-107. Devanbu, P. (1992). GENOA/GENII-a customizable, language- and front-end- in­

dependent code analyzer. In Proceedings of the 14th International Conference on Software Engineering, Melbourne, Australia.

Fairly, R. (1985). Software Engineering Concepts. McGraw Hill, New York, New York.

Foulser, D., Li, M. , and Yang, Q. (1991). A quantitative theory of plan merging. In Proceedings of the 9th National Conference on Artificial Intelligence, pages 673-679, Anaheim, CA.

Fox, M. (1987). Constraint-Directed Search: A Case Study of Job-Shop Scheduling. Morgan Kaufmann, Menlo Park, CA.

Freuder, E. (1982). A sufficient condition of backtrack-free search. Journal of the ACM,29(1):23-32.

Freuder, E. and Wallace, 1. (1992). Partial constraint satisfaction . A rtificial Intelligence, 58:21-70.

Page 3: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

REFERENCES 179

Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995) . Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Company.

Garey, M. R. and Johnson, D. S. (1979). Computers and Intractability: A guide to the theory of NP-Completeness. W. H. Freeman and Company, Norwood, New Jersey.

Gent, 1. and Walsh, T. (1993) . An empirical analysis of search in GSAT. Journal of Artificial Intelligence Research, 1 :47-59.

Griswold, W. and Notkin, D. (1993) . Automated assistance for program restructuring. ACM Transactions on Software Engineering and Methodology, 2(3):228-269.

Haralick, R. and Elliott, G . (1980) . Increasing tree-search efficiency for constraint satisfaction problems. Artificial Intelligence, 14:263-313.

Hart, J. and Pizzarello, A. (1996). A scaleable, automated process for Year 2000 system correction. In Proceedings of the 18th International Conference on Software Engineering, pages 476-484, Berlin, Germany.

Hartman, 1. (1991a). Automatic control understanding for natural programs. PhD thesis, University of Texas at Austin, Department of Computer Science.

Hartman, 1. (1991 b). Understanding natural programs using proper decomposition. In Proceedings of the International Conference on Software Engineering, pages 62-73, Austin, TX.

Hartman, J. (1992a). Pragmatic, empirical program understanding. In Workshop Notes. AAAI Workshop on Al and Automated Program Understanding, San Jose. CA.

Hartman, J. (1992b) . Technical introduction to the first workshop on AI and automated program understanding. In Workshop Notes. AMI Workshop on Al and Automated Program Understanding, San Jose, CA.

Hogg, T. and Williams, C. (1994). A double phase transition. Artificial Intelligence, 69:359-377 .

IBM (1996) . The Year 2000 and 2-Digit Dates; A Guide for Planning and Implemen­tation . URL: http://www.software.ibm.com/year2000/ .

Ilog (1997). Ilog corporation customer success stories. Technical report, Ilog Corpora­tion, Gentilly, France. URL: http://www.ilog.com/html/ success_home. html.

Johnson, W. L. (1986) . Intention Based Diagnosis of Novice Programming Errors. Morgan Kaufman, Los Altos, CA.

Kautz, H. (1987) . A Formal Theory of Plan Recognition. PhD thesis, University of Rochester, Department of Computer Science, Rochester, New York.

Kautz, H. and Allen, 1. (1986) . Generalized plan recognition. In Proceedings of the Fifth National Conference on Artificial Intelligence, pages 32-37, Philadelphia, Pennsylvania.

Knoblock, c., Tenenberg, 1., and Yang, Q. (1991). Characterizing abstraction hier­archies for planning. In Proceedings of the 9th National Conference on Artificial Intelligence, pages 692-698, Anaheim, CA.

Kondrak, G . and van Beek, P. (1997) . A theoretical evaluation of selected backtracking algorithms. Artificial Intelligence, 89:365-387 .

Page 4: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

180 CONSTRAINT-BASED DESIGN RECOVERY FOR SOFTWARE REENGINEERING

Kozaczynski, v., Ning, J., and Engberts, A. (1992). Program concept recognition and transformation. Transactions on Software Engineering, 18( 12): 1065-1075.

Kozaczynski, W. and Ning, J. Q. (1994). Automated program understanding by concept recognition. Automated Software Engineering, 1 :61-78.

Kumar, V. (1992). Algorithms for constraint-satisfaction problems. AI Magazine, pages 32-44.

Letovsky, S. (1988). Plan Analysis of Programs. PhD thesis, Yale University, Depart­ment of Computer Science.

Mackworth, A. (1977). Consistency in networks of relations. Artificial Intelligence, 8:99-118.

Mackworth, A., Mulder, J., and Havens, W. (1985). Hierarchical arc consistency: Exploiting structured domains in constraint satisfaction problems. Computational Intelligence, I: 188-126.

Markosian, L., Brand, R., and Kotik, G. (1994a). Customized software evaluation tools: Application of an enabling technology for re-engineering. In Proceedings of the Fourth Systems Re-engineering Technology Workshop, pages 248-255, Baltimore, MD.

Markosian, L., Newcomb, P., Brand, R., Burson, S., and Kitzmiller, T. (1994b). Using an enabling technology to reengineer legacy systems. Communications of the ACM, 37(5):58-70.

Minton, S. (1990). Quantitative results concerning the utility of explanation-based learning. Artificial Intelligence, 42:363-391.

Minton, S., Johnston, M., Philips, A., and Laird, P. (1990). Solving large-scale con­straint satisfaction and scheduling problems using a heuristic repair method. In Proceedings of the 8th National Conference on Artificial Intelligence, pages 17-24, Boston, MA.

Minton, S., Johnston, M., Philips, A., and Laird, P. (1992). Minimizing conflicts: A heuristic repair method for constraint satisfaction and scheduling problems. Artifi­ciallntelligence, 58:161-205.

Mohr, R. and Henderson, T. (1986). Arc and path consistency revisited. Artificial Intelligence, 28:225-233.

Montanari, U. (1974). Networks of constraints: Fundamental properties and applica­tions to picture processing. Information Sciences, 7 :95-132.

Muller, H., Orgun, M., Tilley, S., and Uhl, 1. (1994). A reverse engineering approach to subsystem structure identification. Journal of Software Maintenance: Research and Practice, 5(4) :181-204.

Mi.iller, H., Wong, K., and Tilley, S. (1993). Understanding software systems using reverse engineering technology. In Proceedings of the IBM/NRC CAS Conference, pages 217-226, Toronto, Canada.

Murray, W. R. (1988). Program Debugging For Intelligent Tutoring Systems. Morgan Kaufman, Menlo Park, CA.

Page 5: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

REFERENCES 181

Nadel, B. (1989) . Constraint satisfaction algorithms. Computational Intelligence, 5:188-224.

Nadel , B. (1990). Representation selection for constraint satisfaction: A case study using N-queens. IEEE Expert, 6: 16-23.

Newcomb, P. and Markosian, L. (1993). Automating the modularization of large COBOL programs : Application of an enabling technology for re-engineering. In Proceedings of the Working Conference on Reverse Engineering, pages 222-230, Baltimore, MD.

Newcomb, P. and Scott, M. (1997). Requirements for advanced Year 2000 maintenance tools. IEEE Computer, 30(3):52-57.

Ning, 1., Engberts, A. , and Kozaczynski, W. (1993) . Recovering reusable components from legacy systems by program segmentation. In Proceedings of the First Working Conference on Reverse-Engineering, pages 64-72, Baltimore, MD.

Pennington, N. (1987a). Comprehension strategies in programming. In Olson, G., Sheppard, S., and Soloway, E., editors, Empirical Studies of Programmers: Second Workshop, pages 100-112, Norwood, N.J. Ablex Publishing Company.

Pennington, N. (1987b). Stimulus structures and mental representations in expert com­prehension of computer programs. Cognitive Psychology, 19:295-341.

Quilici , A. (1993). A hybrid approach to recognizing programming plans. In Pro­ceedings of the First Working Conference on Reverse Engineering, pages 126-133, Baltimore, MD.

Quilici, A. (I 994a). Forming user models by understanding user feedback. User Mod­eling and User-Adapted Interaction , 3(4):321-358.

Quilici, A. (1994b). A memory-based approach to recognizing programming plans. Communications of the ACM, 37(5):84-93.

Quilici, A. (1995) . Reverse engineering of legacy systems: A path toward success. In Proceedings of the 17th International Conference on Software Engineering, pages 333-336, Seattle, WA.

Quilici, A. and Chin, D. (1994). A cooperative program understanding environment. In Proceedings of the Ninth Knowledge-Based Software Engineering Conference, pages 125-132, Monterey, CA.

Quilici, A. and Chin, D. (1995) . DECODE: A cooperative environment for reverse­engineering legacy software. In Proceedings of the Second Working Conference on Reverse-Engineering, pages 156-165, Toronto, Canada.

Quilici, A. and Woods, S . (1997). Toward a constraint-satisfaction framework for evaluating program-understanding algorithms. Journal of Automated Software En­gineering,3(4) :271-289.

Quilici , A. , Woods , S., and Zhang, Y. (1997). Some new experiments in program plan recognition. In Proceedings of the Fourth Working Conference on Reverse­Engineering, Amsterdam, The Netherlands.

Page 6: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

182 CONSTRAINT-BASED DESIGN RECOVERY FOR SOFTWARE REENGINEERING

Quilici, A., Yang, Q., and Woods, S. (1996). Applying plan recognition algorithms to program understanding. In Proceedings of the Eleventh Knowledge-Based Software Engineering Conference, pages 99-103, Syracuse, NY.

Quilici, A., Yang, Q., and Woods, S. (1998). Applying plan recognition algorithms to program understanding. Journal of Automated Software Engineering. To appear.

Ragland, B. (1997). The Year 2000 Problem Solver: A Five Step Disaster Prevention Plan . McGraw Hill, New York, New York.

Rich, C. and Waters, R. (1988). The Programmer 's Apprentice: A research overview. IEEE Computer, 21(11):10-25 .

Rich, C. and Waters, R. (1990). The Programmer's Apprentice . Addison-Wesley, Read­ing, Mass.

Selman, B. and Kautz, H. (1993). Domain-independent extensions to GSAT: Solving large structured satisfiability problems. In Proceedings of the 13th International Joint Conference on Artificial Intelligence, pages 290-294, Chambery, France.

Selman, B., Kautz, H., and Cohen, B. (1994). Noise strategies for improving local search. In Proceedings of the 12th National Conference on Artificial Intelligence, pages 337-343, Seattle, WA.

Sidebottom, G. and Havens, W. (1992). Hierarchical arc consistency for disjoint real intervals in constraint logic programming. Computational Intelligence, 8(4):601-623.

Smith, D., Muller, H. , and Tilley, S. (1997). The Year 2000 problem: Issues and impli­cations. Technical Report CMU-SEI-97-TR-002, Software Engineering Institute.

Soloway, E. and Ehrlich, K. (1984). Empirical studies of programming knowledge. IEEE Transactions on Software Engineering, 10(5):595- 609.

Sommerville, 1. (1996). Software Engineering. Addison-Wesley, Reading, MA, 5th edition.

Song, F. and Cohen, R. (1991). Temporal reasoning during plan recognition . In Pro­ceedings of the 9th National Conference on Artificial Intelligence, pages 247-252, Anaheim, CA.

Sosic, R. and Gu, J. (1990). A polynomial time algorithm for the n-queens problem. SIGART, 1(3).

Towler, J. (1996). Leap-year software bug gives "million-dollar glitch". The Risks Digest, 18(74). URL: http : //catless .ncl.ac.uk/Risks/18 . 74 .html.

Tsang, E. (1993). Foundations of Constraint Satisfaction. Academic Press Limited, London, England.

van Beek, P., Cohen, R., and Schmidt, K. (1993). From plan critiquing to clarifi­cation dialogue for cooperative response generation. Computational Intelligence, 9(3):132-154.

van Beek, P. and Dechter, R. (1997). Local and global relational consistency. Theoret­ical Computer Science, 173:283-308.

Page 7: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

REFERENCES 183

van Deursen, A. , Woods, S., and Quilici, A. (1997). Program plan recognition for Year 2000 tools. In Proceedings of the Fourth Working Conference on Reverse­Engineering, Amsterdam, The Netherlands.

Van Hentenryck, P. (1989). Constraint Satisfaction in Logic Programming. The MIT Press, Cambridge, MA.

Van Hentenryck, P., Deville, Y., and Teng, C.-M. (1992). A generic arc-consistency algorithm and its specializations. Artificial Intelligence, 57:291-321.

Weddell, G. (1994). Project proposal for office date management. Personal communi­cation .

Weide, B. (1995). Reverse engineering of legacy code exposed. In Proceedings of the 17th International Conference on Software Engineering, pages 327-331, Seattle, WA.

Williams, G. and Woods, S. (1993). Representing expectations in spatial information systems: A case study. In Proceedings of the Third International Conference on Large Spatial Databases, pages 465-476, Singapore.

Wills, L. M. (1990). Automated program recognition: A feasibility demonstration. Artificial Intelligence, 45(2): 113-172.

Wills, L. M. (1992). Automated program recognition by Graph Parsing. PhD thesis, MIT, Department of Computer Science.

Wong, A., You, M., and Chan, S. (1990). An algorithm for graph optimal monomor­phism. IEEE Transactions on Systems, Man, and Cybernetics, 20(3):628-636.

Woods, S. (1996). A Method of Program Understanding using Constraint Satisfaction for Software Reverse Engineering. PhD thesis, University of Waterloo, Department of Computer Science.

Woods, S. and Quilici, A. (1996a). A constraint-satisfaction framework for evaluating program-understanding algorithms. In Proceedings of the 4th IEEE Workshop on Program Comprehension (WPC-96) , pages 55-64, Berlin, Germany.

Woods, S. and Quilici, A. (I 996b). Some experiments toward understanding how program plan recognition algorithms scale. In Proceedings of the Third Working Conference on Reverse-Engineering, pages 21-30, Monterey, CA.

Woods, S. and Yang, Q. (1995a). Constraint-based plan recognition in legacy code. In Working Notes of the Third Workshop on AI and Software Engineering: Breaking the Toy Mold (AISE), Montreal, CA.

Woods, S. and Yang, Q. (1995b). Program understanding as constraint satisfaction. In Proceedings of the IEEE Seventh International Workshop on Computer-Aided Software Engineering (CASE), pages 318-327. IEEE Computer Society Press. Also appears in the Proceedings of the Second Working Conference on Reverse Engi­neering (WCRE) .

Woods, S. and Yang, Q. (\996). Approaching the program understanding problem: Analysis and a heuristic solution. In Proceedings of the 18th International Confer­ence on Software Engineering, pages 6-15 , Berlin, Germany.

Page 8: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

184 CONSTRAINT-BASED DESIGN RECOVERY FOR SOFTWARE REENGINEERING

Woods, S. and Yang, Q. (1998). Program understanding as constraint satisfaction: Rep­resentation and reasoning techniques. Journal of Automated Software Engineering, 2(5). To appear.

Woods, S. G. (1991). An implementation and evaluation of a hierarchical non-linear planner. Masters thesis available as Technical Report cs-91-17, University of Wa­terloo, Department of Computer Science.

Xinotech (1997). Enterprise-wide automated software and data re-engineering with the xinotech technology. Technical report, Xinotech Research Inc., Minneapolis, MN.

Yang, Q. (1990). Formalizing planning knowledge for hierarchical planning. Compu­tationallntelligence, 6(2): 12-24.

Yang, Q. (1997). Intelligent Planning-A Decomposition And Abstraction Based Ap­proach. Springer-Verlag, New York, NY.

Yang, Q. and Fong, P. (1992). Solving partial constraint satisfaction problems using local search and abstraction. Technical Report CS-92-50, University of Waterloo, Department of Computer Science.

Yang, Q. and Tenenberg, J. (1990) . ABTWEAK: Abstracting a nonlinear, least com­mitment planner. In Proceedings of the 8th National Conference on Artificial Intel­ligence, pages 204-209, Boston, MA.

Yang, Q., Tenenberg, J., and Woods, S. (1996). On the implementation and evaluation of ABTWEAK. ComputationalIntelligence, 12.

Zhang, Y. (1997). Scalability experiments in applying constraint-based program under­standing algorithms to real-world programs. Masters thesis, University of Hawaii at Manoa, Department of Electrical Engineering.

Zvegintozov, N. (1997). A resource guide to Year 2000 tools . IEEE Computer, 30(3):58-63.

Page 9: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

INDEX

Abstract Syntax Tree, 21,23, 27, 55, 60,92, 94, 131 , 171

Action hierarchy, 119 decomposition, 119 example, 121 , 143 simplicity heuristic, 121 , 127 specialization, 119

Architectural Reenginering, 6 CASE

definition, 26 Call graphs, 10 Code-driven, 27, 30 Complexity, 7-8 Concept Clusters, 170 Concept Recognizer, 23-24, 26-27, 30, 41 , 61-62,

83, 101,164, 168 rule, 23

Concept recovery, 14 library scaling, 22, 26, 32, 36, 40, 135, 163-164 plan scaling, 22, 32, 36, 39, 68, 98,102- 103, 161 program scaling, 14, 22, 26, 32, 36,39-40, 67,

75, 78,91,98, 101 , 110, 134, 161 , 172 Constraint Satisfaction, 22, 43, 68, 118, 174

the revise subroutine, 152 FCDR, 51 , 72, 74 FCDR/NoVA, 85 FCDRIYA, 51 , 62, 75 , 79, 83, 85, 94, 96, 100,

107 FCDRIYA-modified,102 GM-CSP, 110, 159-160 and hierarchy, 52, 62, 103 arc consistency, 48- 49 backtracking search, 50, 72-73, 85

constraint propagation, 46-47, 49-50,72,75, 100- 101 , 108, 144

constraints, 44 domain values, 44 forward checking, 50 generate-and-test, 46, 50 hierarchical arc consistency, 151 index-part, 53 intelligent search, 46, 52 justification graph, 152 local consistency, 48 local search, 52 map color example, 44 node consistency, 48, 100 partial consistency, 50 partial solutions, 53, 85 path consistency, 48 problem relaxation, 53 really fulliookahead, 50 solution, 44 variables, 44

Constraint-based Understanding, 54 Concept Recognizer, 61-62 DECODE, 63 Layered MAP-CSP, 54,59,62, 131 , 133, 138 MAP-CSP, 54-55, 58, 61, 67, 72. 78-79, 88,

132- 133 Memory-CSP, 63-64, 84, 88 plan matching, 54 plan ordering, 54. 59, 64

Constraints, 35, 40. 142 explicit, 142 hard , 53 implicit, 142

185

Page 10: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

186 CONSTRAINT-BASED DESIGN RECOVERY FOR SOFTWARE REENGINEERING

knowledge, 142, 144 soft,53 strong (or tight), 40, 88,98, 103 structural, 142, 144,159, 166 weak (or loose), 40,88

Control Restructuring, II Control flow, 12,23,27,32,37,57,88,92,100,

109,132,159, 161,163 dependencies, 23, 30 hierarchical, 37,103

DECODE, 23, 26, 29-30, 40, 63,84,86,164,168 Data flow, 10, 12,23,27,32,37,39,57,88,92,

100,109,132,159,161, 163 Gen++, 92 control dependency, 93 dependencies, 23, 30, 92, 105 flow-in, 94 flow-out, 94 guaranteed dependency, 92 possible dependency, 93 same-data dependency, 93

Data structures, 6, 8, 13, 162 Design Patterns, 167-168, 174 Documentation, 9 Domain Knowledge, 8 Empirical results, 68,72,85,91,108,110,160

Year 2000 domain, III, 163 actual distribution, 96 anomalous, 85 comparative, 83, 86, 88 generated distribution, 70,79, 88,96 generated programs, 69, 72, 85, 95, 163 methodology, 85 , 92, 94 multiple instances, 78,98 polynomial, 78, 88 real-world programs, 71, 88,91-92, 94, 112

Encapsulation, 5 Extended Layered MAP-CSP, 138,156

incomplete understanding, 139 minimal user interaction, 139 restricted explanations, 139

GRASPR, 32-33,35,40, 165-166 annotated data flow graph, 32 attribute transfer rules, 33 control environments, 32 flow graph grammar, 33, 36

Gen++, 92 Graph Parsing, 22, 32, 35 Graph matching, 110, 159-160 Graph-based understanding, 32-33,35,40,

165-166 Heuristics, 25, 35, 40, 54, 84,149, 160

constraint ordering, 50-51, 106 domain-value pre-filtering, 101 dynamic variable ordering, 50, 62, 107, 132 early evaluation, 26, 35, 51,62 graph node order, 35 implication, 27-28, 30, 64 indexing, 27, 61, 63, 84, 88 instance set lookahead, 30, 64, 99-100 interleave constraints, 30, 62 locality as data-flow, 88 number of constraints, 62 simplicity, 121, 127-128 specialization, 27, 29 static variable ordering, 30, 107 sub-concept grouping, 25, 52,62, 101 value filtering, 25,99 value set reordering, 25 variable ordering, 50

Hierarchical arc consistency, 151 downward revision, 153 upward revision, 154

Impact Analysis, 12,23,27, 57,88,92, 100, 109, 132,159,161,163

Interface, 6-7 Layered MAP-CSP, 54,59,62, 131, 133,138, 156,

163,166 accuracy, 134 extensions, 138 scalability, 134, 164 simplicity, 133

Library-driven, 23, 27 MAP-CSP, 54-55,58,61,67,72,78-79,88,

132-133,136,161-163,166 constraint, 56-57 efficiency, 57, 71, 75, 95 solution strategies, 57, 72 solution, 56 variable, 56

Modularization, 12,89, 116 NP-hard, 35,40,57,78,130,147,160 Object-Oriented

libraries, 6, 145 Occam's Razor, 128 PU-CSP, 140,156,164

and complexity, 147 and constraint-propagation, 144 elements, 140 heuristics, 149 interactive bottom-up, 148, 164 interactive top-down, 149, 164 solution strategies, 148

Plan Recognition recovery

Page 11: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

plan scaling, 22, 32, 36, 39, 68, 98, 102- 103, 161 Plan Recognition, 19,35

program scaling, 14,22,26,32, 36, 39-40,67, 75, 78, 91,98,101,110,134, 161,172

abstraction, 22, 143, 151 and Artificial Intelligence, 118, 160, 174 and Occam's Razor, 128 and complexity, 130 and program understanding, 160 bottom-up, 22, 30, 61 , 64, 148, 160 canonicalization, 27, 30, 161 closed perception, 126 code representation, 20 effectiveness, 22, 39, 135 efficiency, 14, 22, 26, 32, 36, 39-40, 57, 71 , 75 ,

91,95,135 explanation graph, 127 hierarchy, 24, 37, 61 , 103, 118 hypothetical , 118 imprecise, 118, 137 incomplete library, 129 incorrect, 127 inefficient, 130 library development, 169 library layering, 29-30, 60 open perception, 126-127 plan definition, 19,21 , 27, 32, 55 plan instance, 19,70, 117 plan library, 19,24,27,117,160, 162, 172 plan matching, 20 plan selection, 20 precise, 118 principle of minimal exact-coverage, 128 process, 20, 38, 40, 68 top-down, 22, 24, 149, 160 versus rule-based techniques, 171-172

Plan Recogntion library scaling, 22, 26, 32, 36, 40, 135, 163-164

Plan abstract, 22, 143, 151 canonical, 27, 30, 161 definition , 19, 21 , 27 , 32, 55 hierarchical, 24, 37, 61 , 103,118-119 instance of, 19,70, 117 library layering, 29-30, 60 library, 19,24, 27, 117, 160, 162,172

Planning, 53 abstract search, 53 and abstraction, 53 non-monontonic property, 53

Program Understanding

INDEX 187

Concept Recognizer, 23- 24,26-27,30, 41 , 61-62,83,101,164,168

DECODE, 23, 26, 29-30, 40, 63, 84, 86,164, 168

GRASPR, 32-33, 35, 40, 165-166 PU-CSP, 140,167 Programmer's Apprentice, 32 Unprog,32, 36, 39-40, 165-166 Year 2000 application, 2, III and concept clusters, 170 and locality, 136 architectures for, 9 automated, 2, 4, 9-10, 12-15 bottom-up, 22, 30, 61, 64, 148, 160 by blocks (clusters), 135 code-driven, 27, 30 complexity control , 35, 40, 58, 67 complexity, 35,40, 57, 78, 130, 147,160 concept recovery, 14 conceptual, I, 4, 6-7, 10, 12-14, 16, 19 constraints, 35, 40, 142 definition, I divide-and-conquer, 135, 157 effectiveness, 22, 39, 135 efficiency, 14,22, 26,32,36,39-40,57,71 , 75,

91 , 95, 135 for reengineering, 4 hypothetical , I5 , 30, 118, 131 imprecise, 134 knowledge mapping, 12 library-driven, 23 , 27 mental models, 9 other applications, 8 partial , 14,16,40,85,131 plan-based, 160 precise, 134 scaling with library size, 22, 26, 32, 36, 40, 135,

163-164 scaling with plan size, 22, 32, 36, 39, 68, 98,

102-103, 161 scaling with program size, 14,22, 26,32, 36,

39-40, 67, 75, 78, 91,98,101 , 110, 134, 161 , 172

supporting programmers, 14, 16 tool support, 2, 4, 9-10, 12-15 top-down, 22, 24,149, 160 with user interaction, 135, 137, 167

Programmer's Apprentice, 32 Programmers, 1- 2,7-8, 12- 13 Programming Languages

Assembly, 26 C, 3, 6, 8, 13, 20, 92,112,143, 161

Page 12: REFERENCES - Springer978-1-4615-5461-5/1.pdf · REFERENCES Allemang, D. (1990). Understanding Programs as Devices. PhD thesis, Ohio State University, Department of Computer Science.

188 CONSTRAINT-BASED DESIGN RECOVERY FOR SOFTWARE REENGINEERING

C++,5-6, 169 COBOL, 3, 7- 8, 12-13, 23, 26, 37, 89, 162, 170 LISP, 33,36 imperative, 5- 6, 12 object-oriented,5-6, 12

Programming documentation, 9 life cycle, 9 paradigms, 4-5 programmers, 1- 2, 7-8, 12-13

Programs data structures, 6, 8, 13, 162 modularization, 12, 89, 116

Reuse, 5 Scaling

library, 22, 26, 32, 36,40,135,163- 164 plan, 22, 32, 36, 39, 68, 98, 102-103, 161 program, 14,22,26,32,36, 39-40,67,75,78,

91 , 98,101 , 110, 134, 161 , 172 Search

constraint ordering, 50-51, 106 variable ordering, 50

Semantic understanding, 1,4,6-7, 10, 12- 14, 16, 19

Software Maintenance, 2, 8-9 costs, 2 environments, 9

Software Reengineering, 2, 6, 9 new technology, 4

Software abstraction, 14 analysis-Gen++,92 architecture, 6, 23, 174 call graphs, 10 code patterns, 14 complexity, 7- 8 concept recovery, 14 concept, 5, 7,12,23 control flow analysis, 12,23, 27,32,37,57,88,

92, 100, 109, 132, 159, 161 , 163 data flow analysis , 10, 12,23, 27, 32, 39, 57 , 88,

92, 100, 109, 132, 159,161,163 data use analysis, 37 design concepts, 14-15, 17, 20, 23-24, 26, 29,

33 , 36, 159

domain knowledge, 8 encapsulation, 5 evolution, 7 impact analysis, 12,23, 27, 57, 88, 92, 100, 109,

132,159, 161,163 interactions, 8 interface, 6- 7 re-invented wheel , 7 reuse, 5 rewriting, 5, 27 size, 7, 14 structure diagrams, 10 structure in, 9, 12,14,89 structured,5 translation, 5 unstructured, 5

Structure diagrams, 10 Subgraph Isomorphism, 58 Tools for Understanding, 2,4,9-10, 12-15

COBOLISRE, 168 Rigi , 168 Software Refinery, 12, 168 TXL, 12 Xinotech, 12 modularizers, 135, 160, 164 slicers, 135, 170

Translation, 5 Unprog, 32,36, 39-40, 165-166

HMODEL, 37 , 166 Proper decomposition, 38, 40 STIMP, 37, 39-40, 166 control concepts, 36

User interaction, 135, 137, 139, 160, 164 block suggestion, 137 code descriptions, 137 explanation suggestion, 138 recognition advice, 138

Year 2000 Problem (Y2K), 2-4, 12, III, 162, 170- 172

date packages, 8 dollar cost, 2 four digit dates, 3, 12 leap year, 3, 7-8,13, III, 162, 171

Grep command, 169