Bibliography

Home  |  Login  |  About  

   Researchers
   Publications  
   Readings
   Bibliography
   Useful Links
   Sponsors


1. Modularity:
     1.1 Flexibility
     1.2 Evolution
     1.3 Integration
     1.4 Test, Control, and Verification
     1.5 Models of Modularity
     1.6 Case Studies:
        1.6.1 Case Studies of Flexibility
        1.6.2 Case Studies of Modularity
        1.6.3 Case Studies of Integration

2. Value Systems:
     2.1 Failure and Risk
     2.2 Multi-stake Holder Decisions
     2.3 Requirements Analysis

3. Open Implementations

4. The Development Process

5. Security

6. Additional References

v        Indicates a classic papers

1. Modularity

1.1     Flexibility

D. Barrett et. al. A Framework for Event-Based Software IntegrationACM TOSEM, Volume 5 Issue 4, 1996.

Timothy Harrison, David Levine, and Douglas Schmidt,  The Design and Performance of a Real-time CORBA Event Service, OOPSLA '97

1.2 Evolution

Meir M. Lehman, Programs, Life Cycles, and Laws of Software Evolution, Proceedings of the IEEE 68(9) Sep 1980

M. Rochkind, The Source Code Control System, IEEE Trans. On Soft. Eng. SE-1, pp. 364—370.  Dec. 1975.

W. F. Tichy, Design implementation and evaluation of a revision control system. Proc. 6th Int. Conf. Software Eng., Tokyo, September 1982.

M. VanHilst and D. Notkin. Decoupling Change from Design. FSE '96 p. 58-69.

C. Videira Lopes and K. Lieberherr. AP/S++: Case study of a MOP for Purposes of Software Evolution. Reflection '96. (Read pages 1-9)

Parnas, D. Software Aging. ICSE 16, 1994.

Laszlo A. Belady, ch. 17 of Lehman and Belady, Program Evolution, 1985 (first pub. Oct 1980)

R.W. Bowdidge and W.G. Griswold, Automated Support for Encapsulating Abstract Data Types, ACM SIGSOFT '94 Symposium on the Foundations of Software Engineering, December, 1994. SIGSOFT Software Engineering Notes, vol. 19, no.5, pp. 97-110, Dec. 1994

R. W. Bowdidge, W. G. Griswold, Supporting the Restructuring of Data Abstractions through Manipulation of a Program Visualization, ACM TOSEM, April 1998.

L. Tokuda and D. Batory. Evolving Object-Oriented Design with Refactorings, ASE '99.

1.3 Integration

John Ousterhout, Scripting: Higher Level Programming for the 21st Century, unpublished draft, May 1997

John Ousterhout, An X11 Toolkit Based on the Tcl Language , Winter USENIX, 1991, Skip section 3

John Ousterhout, Ousterhout's response to Stallman's posting, Tcl newsgroup, 1995 (via Salil Parikh)

v        Dennis M. Ritchie, UNIX Time-Sharing System: A Retrospective. Bell System Technical Journal 57(6) Jul 1978 (first pub. Jan 1977)

v        Dennis M. Ritchie, A Stream Input-Output System, AT&T Bell Laboratories Technical Journal 63(8) Oct 1984

K. Sullivan and D. Notkin. Reconciling Environment Integration and Component Independence. 4th ACM SIGSOFT Symposium on Software Development Environments, 1990.

S. Feldman, A Program for Maintaining Computer Programs.  Software Practice and Experience, April 1979.

1.4 Test, Version Control, and Verification

W.R. Adrion, M.A. Branstad, J.C. Cherniavsky, Validation, Verification, and Testing of Computer Software, ACM Computing Surveys, vol. 14, no. 2, pp. 159-192, June 1982.

J. Atlee and J. Gannon. State-Based Model Checking of Event Driven System Requirements. IEEE TSE January 1993.

T. Ball. The Concept of Dynamic Analysis. ESEC/FSE 1999.

M. Chechik and J. Gannon. Automatic Verification of Requirements Implementation. ISSTA '94.

M.E. Fagan, Design and Code Inspections to Reduce Errors in Program Development, IBM Systems Journal, vol. 15, no. 3, pp. 182-211, 1976.

R.H. Katz, Toward a Unified Framework for Version Modeling in Engineering Databases.  ACM Computing Surveys, 22(4): 375–408, 1990.

D.L. Parnas and D.M. Weiss, Active Design Reviews: Principles and Practices, Proceedings of the 8th International Conference on Software Engineering, pp. 132-6, 1985.

1.5 Models of Modularity

v        D. Parnas, On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM, 15 (12), 1972.

v        D.L. Parnas, On the Design and Development of Program Families, Transactions on Software Engineering, IEEE, SE-2, March, 1976.

v        D. Parnas, Designing Software for Ease of Extension and Contraction. Transactions on Software Engineering, IEEE, SE-5, 1979.

v        D.L. Parnas, G. Handzel, and H. Wurges, Design and Specification of the Minimal Subset of an Operating System Family, Transactions on Software Engineering, IEEE, SE-2, December 1976.

J. Rumbaugh et al., Object-oriented modeling and design, Prentice Hall, 1991. (Chapters 2-3, 7-8.4)

SOP, More information is available from the SOP web page and the Hyperspaces web page.

AOP, More information is available from the AOP web page and the AspectJ web page.

Guidance on reading an engineering research paper is available.

E. Baniassad and G. Murphy. Conceptual Module Querying for Software Reengineering. ICSE 1992.

L.A. Belady and M.M. Lehman. A Model of Large Program Development. IBM Systems Journal, 15(3), 1976

Andrew Birrell, Greg Nelson, Susan Owicki, and Edward Wobber, Network Objects, DEC SRC Tech Report, 1995 (previously in SOSP and SP&E)

S. Clarke, W. Harrison, H. Ossher and P. Tarr. Subject-oriented Design: Towards Improved Alignment of Requirements, Design and Code. OOPSLA '99, p. 325-337.

T. DeMarco, On Systems Architecture, Proceedings of the 1995 Monterey Workshop on Increasing the Practical Impact of Formal Methods for Computer-Aided Software Development: Specification-Based Software Architectures, 1995.

D. Garlan and M. Shaw, An Introduction to Software Architecture. In Advances in Software Engineering and Knowledge Engineering, 1993. More information on software architecture is available from Garlan's and Shaw's home pages.

D. Garlan, G. Kaiser and D. Notkin. Using Tool Abstraction to Compose Systems. Computer, 25, 6, June 1992.

W. G. Griswold, ``Coping With Software Change Using Information Transparency'', Technical Report CS98-585, Department of Computer Science and Engineering, University of California, San Diego, April 1998 (revised August 1998).

W.G. Griswold, M.I. Chen, R.W. Bowdidge, and J.D. Morgenthaler, Tool Support for Planning the Restructuring of Data Abstractions in Large Systems, in the Proceedings of the ACM SIGSOFT Conference on the Foundations of Software Engineering (FSE-4), October 1996.

W.G. Griswold and D. Notkin, Automated Assistance for Program Restructuring. ACM Transactions on Software Engineering and Methodology 2(30), 1993.

v        A.N. Habermann, L. Flon, and L. Cooprider, Modularization and Hierarchy in a Family of Operating Systems, Communications of the ACM, pages 266-72, May 1976  (section 1 only).

Graham Hamilton and Sanjay Radia, Using Interface Inheritance to Address Problems in System Software Evolution, Sun Microsystems Tech Report, 1993

G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. M. Loingtier, and J. Irwin, Aspect-Oriented Programming, 11th European Conference on Object-Oriented Programming, Springer-Verlag, pp. 220-242, June, 1997. (More on AOP.)

1.6 Case Studies

1.6.1 Case Studies of Flexibility

Susan Angebranndt, Philip Karlton, Raymod Drewry and Todd Newman, Writing Tailorable Software: The X11 Sample Server, Software Practice & Experience, Vol. 20(s2), Oct 1990.

Brian Bershad et al, Extensibility, Safety and Performance in the SPIN Operating System, 15th ACM SOSP, Dec 1995 http://www.cs.washington.edu/research/projects/spin/www/

Nathaniel Borenstein and James Gosling,UNIX Emacs: A Retrospective, ACM SIGGRAPH Symposium on User Interface Software, Oct 1988

Digital Equipment Corp., OpenVMS AXP Internals, chapter 1, 1994 Skip 1.4, 1.6

Dawson Engler et al, Exokernel: An Operating System Architecture for Application-Level Resource Management,15th ACM SOSP, Dec 1995

James Gettys, Philip Karlton, and Scott McGregor, The X Window System, Version 11,  Software Practice & Experience, Vol. 20(s2), Oct 1990

http://www.sunlabs.com/techrep/1993/1993.html 

J. Herbsleb and R. Grinter. Conceptual Simplicity Meets Organizational Complexity: Case Study of a Corporate Metrics Program. ICSE '98.

Frans Kaashoek et al, Application Performance and Flexibility on Exokernel Systems, 16th ACM SOSP, Oct 1997 http://www.pdos.lcs.mit.edu/PDOS-papers.html

B.W. Kernighan and R. Pike, The UNIX Programming Environment, (Englewood Cliffs, NJ: Prentice-Hall), 1984.

Jochen Liedtke's analysis of Chen's paper, included in his paper On Microkernel Construction, SOSP 95.

Jeffrey Mogul et al, The Packet Filter: An Efficient Mechanism for User-level Network Code, 11th ACM SOSP, Nov 1987

Hanspeter Mossenbock, Extensibility in the Oberon System, Nordic Journal of Computing 1(1994) http://www.oberon.ethz.ch/oberon/

Oki, Pfluegl, Siegel, Skeen, The Information Bus-an architecture for extensible distributed systems, SOSP 93

Margo Seltzer et al, unpublished draft 1996 , Issues in Extensible Operating Systems

Margo Seltzer et al.,  An Introduction to the Architecture of the VINO Kernel

Harvard University tech report 1994 http://www.eecs.harvard.edu/~vino/vino

Richard Stallman, EMACS, the extensible, customizable self-documenting display editor, ACM SIGPLAN SIGOA Symposium on Text Manipulation, Jun 1981.

David J. Wetherall, John Guttag, and David L. Tennenhouse, ANTS: A Toolkit for Building and Dynamically Deploying Network Protocols, Submitted to IEEE OPENARCH'98, San Francisco, CA, April 1998.

1.6.2 Case Studies of Modularity

Graham Hamilton and Panos Kougiouris, The Spring Nucleus: A Microkernel for Objects, Sun Microsystems Tech Report, 1993

Rashid, Baron, Forin, Golub, Jones, Julin, Orr, Sanzi, Mach: A Foundation for Open Systems, Proceedings of the Second Workshop on Workstation Operating Systems (WWOS2), Sep 1989

W. G. Griswold and D. Notkin, Architectural Tradeoffs for a Meaning-Preserving Program Restructuring Tool, Transactions of Software Engineering, IEEE, vol. 21, no. 4, pp. 275-287, April, 1995.

1.6.3 Case studies of Integration

Dale Skeen, An information bus architecture for large-scale, decision-support environments, USENIX 92

2. Value Systems 

F.P. Brooks, No Silver Bullet--Essence and Accidents of Software Engineering, Computer, 20(4), 1987. (Chapter from The Mythical Man Month: Essays on Software Engineering, Anniversary Edition, Addison-Wesley, 1995.)

F.P. Brooks, The Mythical Man Month: Essays on Software Engineering, Anniversary Edition, Addison-Wesley, 1995.

Brooks, Jr., F.P., 1996: "The Computer Scientist as Toolsmith II." Keynote/Newell

Award address at SIGGRAPH 94, Orlando, July 1994. Communications of the ACM, March, 39(3):61-68. Also Computer Graphics, 28(4) November 1994, 281-287, Orlando, FL.

J. Bradley Chen and Brian Bershad, The Impact of Operating System Structure on Memory System Performance, 14th ACM SOSP, Dec 1993

2.1 Failure and Risk

D. Garlan, R. Allen and J. Ockerbloom, Architectural Mis-match: Why Reuse is So Hard. Software, IEEE, 12(6), 1995. More information on the ABLE project is available.

H. Petroski, Design Paradigms, Cambridge University Press, 1994.

W. Brown et. al. Antipatterns, Introduction to Antipatterns (p. 3-12, 15-17).

2.2 Multi-stake Holder Decisions

J. Blomberg et al., Ethnographic Field Methods and Their Relation to Design, Participatory Design: Principles and Practices, from CPSR First Participatory Design Conference 1990, pp. 123-155, 1993.

E. Carmel et al., PD and Joint Application Design: A Transatlantic Comparison, Communications of the ACM, June 1993.

F. Kensing and K.H. Madsen, Future Workshops and Metaphorical Design, Design at Work: Cooperative Design of Computer Systems, Chapter 8, L. Erlbaum Associates, 1991.

2.3 Requirements Analysis

C.A.R. Hoare, Communicating Sequential Processes, Communications of the ACM, vol. 21, no. 8, pp. 666-677 (August, 1978).

J.A. Goguen and C. Linde, Techniques for Requirements Elicitation, Proceedings of IEEE International Symposium on Requirements Engineering, p. 152-64, January 1993.

 

3. Open Implementations 

G. Kiczales, Beyond the Black Box: Open Implementation. Software, IEEE, January 1996. More information on open implementation is available.

G. Kiczales, J. Lamping, C.V. Lopes, C. Maeda, A. Mendhekar, and G. Murphy, Open Implementation Guidelines, Proceedings of the 19th International Conference on Software Engineering, pp. 481-490, April 1997.

M. Haines. An Open Implementation Analysis and Design for Lightweight Threads. OOPSLA '97.  

4. The Development Process

B.W. Boehm, A Spiral Model of Software Development and Enhancement, Computer, 21(5), 61-72, May 1988.

 

5. Security 

Michael Burrows, Martin Abadi and Roger Needham, A Logic of Authentications, February 28, 1989.

5. Additional Resources

Robert Wahbe et al, Efficient Software-Based Fault Isolation 14th ACM SOSP, Dec 1993

K.H. Madsen, A Guide to Metaphorical Design, Communications of the ACM, vol. 37, no. 12, Dec. 1994.

v        F. DeRemer and H.H. Kron. Programming-in-the-Large Versus Programming-in-the-Small. IEEE TSE, SE-2, 1976, p. 80-86.

v        E.W. Dijkstra. The Structure of the "THE"-Multiprogramming System. CACM 11, 5, May 1968, p. 341-346.

Copyright 2000 Kevin Sullivan. All Rights Reserved. Site maintained by Benjamin Hallen.