PhD Prelim Study Material for Software Systems Study areas: Database Theory (CS5800) Data Mining (CS7670) Software Engineering Concepts¸ Methods, and Processes (CS5370/6370) Human-Computer Interfaces (CS5100) Conceptual Modeling and Object-oriented Software Development (CS5700 and CS6700) Testing (CS7380) Patterns (CS7350) Graphics ? (CS5400 and CS6400) Security (CS6450, CS7450) Database Theory Both of the following articles: Kent, William, A Simple Guide to Five Normal Forms in Relational Database Theory, Communications of the ACM, vol. 26, n. 2, pp. 120-125, 1983. Darwen, Hugh, What a Database Really Is: Predicates and Propositions, Relational Database Writings 1994-1997, pp. 279-287, 1998. Plus one of the following two books: Silberschatz, et al., Database System concepts 5th ed., McGraw Hill, 2006, Chapters 1-3, 6, 7, 9, 10 E. F. Codd, A Relational Model for Large Shared Data Bank, Communications of the ACM, Vol. 13, pp. 377-387, 1970 Data Mining The following articles: Chen, Ming-Syan, et al., Data Mining: An Overview from Database Perspective, IEEE Transactions on Knowledge and Data Engineering, vol. 8, n. 6, pp. 866-883, 1996. Fayyad, Usama, et al., The KDD Process for Extracting Useful Knowledge from Volumes of Data, Communications of the ACM, vol. 39, n. 11, pp. 2734, 1996. Glymour, Clark, et al., Statistical Inference and Data Mining, Communications of the ACM, vol. 39, n. 11, pp. 35-41, 1996. Frawley, W. J., et al., Knowledge Discovery in Databases: An Overview, AI Magazine, pp. 57-70, 1992. or one of the following two books: Han and Kamber, Data Mining Concepts and Techniques, Morgan Kaufmann. Tan et al., Introduction to Data Mining, Addison Wesley. Software Engineering Concepts, Methods, and Process “Comparing Architectural Design Styles” by Mary Shaw, IEEE Software, v. 12, n. 6, pp. 27-41 “Streamlined Design Approach Lands Mars Pathfinder” by Steven Stolper, IEEE Software, v. 16, p. 5, pp. 52-62 “Formal Methods: Promises and Problems” by LuQi and Joseph A. Goguen, IEEE Software, January, 1997, v. 14, n. 1, pp. 73-85 “On Formalism in Specification” by Bertrand Meyer, IEEE Software, January, 1985, v. 2, n. 1, pp. 6-26 Sommerville, Ian, Software Engineering, Sixth Edition, Addison-Wesley, 2001 Fowler, Martin, Refactoring, Addison Wesley, 2000 “Requirements Engineering as a Success Factor in Software Projects” by Hubert F. Hofmann and Franz Lehner, IEEE Software, v. 18, n.4, pp.58-66 “Scenarios In System Development” by Klaus Weidenhaupt, Klaus Pohl, Matthias Jarke, and Peter Haumer, IEEE Software, v. 15, n.2, pp. 34-45 “Why the Vasa Sank: 10 Problems and Some Antidotes for Software Projects” by Richard E. Fairley and Mary Jane Willshire, IEEE Software, vol. 20, n. 2, pp. 18-25 “A Spiral Model of Software Development and Enhancement,” Barry W. Boehm, IEEE Computer, vol. 21, n. 5, pp. 61-72 “Exploring XP for Scientific Research” by William Wood and William Kleb, IEEE Software, vol. 20, n. 3, pp. 30-e6 “Issue on Agile Development Processes”, Crosstalk, vol.5, n. 10 “Agility Through Discipline”, Kent Beck and Barry Boehm, Computer, vol. 36, n. 6, pp. 44-46 “Iterative and Incremental Development: A Brief History”, Craig Larman and Victor Basili, Computer, vol. 36, n. 6, pp. 47-56 “Using Risk to Balance Agile and Plan-Driven Methods”, Barry Boehm and Richard Turner, Computer, vol. 36, n. 6, pp. 57-66 “Process Diversity in Software Development” by Mikael Lindvall and Ioana Rus, IEEE Software, v. 17, n.4, pp.14-18 “Selecting a Project’s Methodology” by Alistair Cockburn, IEEE Software, v. 17, n. 4, pp. 64-71 “Characterizing the Software Process,” by Watts S. Humphrey, IEEE Software, vol 5, n. 2, pp. 73-79 “Three Dimensions of Process Improvement,” Watts. S. Humphery, Crosstalk, V. 11, ns. 2, 3, 4 “Issue on the Team Software Process”, Crosstalk, vol.15, n. 9 Prieto-Diaz, Ruben and Peter Freeman, “Classifying Software for Reusability”, IEEE Software, Vol. 6, No. 1, 1987, pp. 6-17 Steyaert, Patrick, Carine Lucas, Kim Mens, and Theo D'Hondt, “Reuse Contracts: Managing the Evolution of Reusable Assets”, OOPSLA’96, San Jose, California, October 6-10, 1996 Price, Margaretha W. and Steven A. Demurjian, Sr., "Analyzing and Measuring Reusability in Object-Oriented Designs", OOSPLA'97, Atlanta, Georgia, October 5-9, 1997, pp. 22-33 Weihe, Karsten, "Reuse of Algorithms: Still a Challenge to Object-oriented Programming", OOSPLA'97, Atlanta, Georgia, October 5-9, 1997, pp. 33-48 Evans, Huw and Peter Dickman, “Zones, Contracts, and Absorbing Change: An Approach to Software Evolution,” OOPSLA’99, Denver, Co, Nov. 1-5, 1999, pp. 415-434 Mezini, Mira, "Maintaining the Consistency and Behavior of Class Libraries During their Evolution", OOSPLA' 97, Atlanta, Georgia, October 5-9, 1997, pp. 121 Conceptual Modeling and Object Orientation Parnas, David L., "On the Criteria to be Used in Decomposing Systems into Modules", Communications of the ACM, Vol: 15, No: 12, December, 1972, pp. 1053-1058 Nierstrasz, Oscar M. "A Survey of Object-oriented Concepts", in Object-oriented Concepts, Databases, and Applications, eds. Won Kim, Frederick H. Lochovsky, 1989, pp. 3-22 Snyder, Alan, "The Essence of Objects: Concepts and Terms", IEEE Software, Vol. 10, No. 1, January, 1993, pp. 31-42 Riehle, Dirk, "How and Why to Encapsulate Class Trees", OOPSLA'95 Conference Proceedings, Austin, TX, October, 1995, 251-264 Bardou, Daniel and Christophe Dony, “Split Objects: a Disciplined Use of Delegation within Objects”, OOPSLA’96, San Jose, California, October 6-10, 1996, pp. 122-137 Bokowski, Boris and Jan Vitek, “Confined Types,” OOPSLA’99, Denver, Co, Nov. 1-5, 1999, pp. 82-96 Madsen, Ole Lehrmann, “Semantic Analysis of Virtual Classes and Nested Classes,” OOPSLA’99, Denver, Co, Nov. 1-5, 1999, pp. 114-131 Rinat, Ran and Scott F. Smith, “Correspondence Polymorphism for Objectoriented Languages,” OOPSLA’99, Denver, Co, Nov. 1-5, 1999, pp. 167-186 “Object-Oriented Development” by Grady Booch, IEEE Transactions on Software Engineering, v. 12, n. 2, pp. 211-221 “A Unified Object Topology” by William Tepfenhart and James Cusick “Aspect-Oriented Development with Stratified Frameworks” by Colin Atkinson and Thomas Kuhne, IEEE Software, v. 20, n. 1, pp. 81-89 Testing Travassos, Guilheme H., Forrest Shull, Michael Fredericks, and Victor . Basili, “Detecting Defects in Object Oriented Designs: Using Reading Techniques to Increase Software Quality,” OOPSLA’99, Denver, Co, Nov. 1-5, 1999, pp. 47-56 Goodenough, John B. and Susan L. Gerhart, “Toward a theory of test data selection,” IEEE Transactions on Software Engineering, Vol. 1, No. 2, June 1975, pp. 156-173 “What is Software Testing? And Why is it so Hard?” by James A. Whittaker, IEEE Software, v. 17, n. 1, pp. 70-79 “A Simplified Domain-Testing Strategy” by Bingchiang Jeng and Elaine J. Weyuker, ACM Transactions on Software Engineering and Methodology, v. 3, n. 3, pp. 254-270 “Weak Mutation Testing and Completeness of Test Sets” by William Howden, IEEE Transactions on Software Engineering, v. 8, n. 4, pp. 371-379 “An Experimental Determination Of Sufficient Mutant Operators” by A. Jefferson Offutt, Gregg Rothermel, Roland Untch and Christian Zapf, ACM Transactions on Software Engineering and Methodology, v. 5, n. 2, pp. 99-118 “Experimental Results From An Automatic Test Case Generator” by Richard Demillo and A. Jefferson Offutt, ACM Transactions on Software Engineering and Methodology, v. 2, n. 2, pp. 109-127 “Developing An Object-Oriented Software Testing And Maintenance Environment” by David Kung, Jerry Gao, Pei Hsia, Yasufumi Toyoshima, Chris Chen, Young-Si Kim, and Young-Kee Song, Communications of the ACM, v. 38, n. 10, pp. 75-87 “Reliable Objects: Lightweight Testing for OO Languages” by Jean-Marc Jezequel, Baniel Deveaux, and Yves Le Traon, IEEE Software, v. 18, n. 4, pp. 76-83 “An Empirical Study of Regression Test Selection Techniques” by Todd Graves, Mary Jean Harrold, Jung-Min Kim, Adam Porter, and Gregg Rothermel, ACM Transactions on Software Engineering and Methodology, v. 10, n. 2, pp 184-208 Patterns Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissdes, Design Pattens, Addison-Wesley Professional Computing Series, 1995 Agerbo, Ellen and Aino Cornilis, "How to Preserve the Benefits of Design Patterns", OOSPLA '98, Vancouver, British Columbia, October 18-22, 1998, pp. 134-143 “Using Design Patterns To Develop Reusable Object-Oriented Communication Software” by Douglas C. Schmidt, Communications of the ACM, v. 38, n. 10, pp. 65-74 “Software Patterns” by Douglas C. Schmidt, Mohamed Fayad, and Ralph E. Johnson; Communications of the ACM, v. 39, n. 10, pp. 36-49 “Why Explore Object Methods, Patterns, And Architectures?” by Stephen Mellor and Ralph Johnson; IEEE Software, v. 14, n. 1, pp. 27-42;