Eric Allen, David Chase,
Victor Luchangco, Jan-Willem Maessen, and Guy L. Steele, Jr.
Object-oriented units
of measurement.
In John M. Vlissides and Douglas C. Schmidt, editors, OOPSLA '04:
Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented
Programming, Systems, Languages, and Applications, pages 384–403, New
York, October 2004. ACM Press.
(doi:10.1145/1028976.1029008)
Dan Ash, John Alderete,
Paul W. Oman, and Bruce Lowther.
Using software
maintainability models to track code health.
In ICSM '94: Proceedings of the International Conference on Software
Maintenance, pages 154–160, Washington, DC, September 1994. IEEE
Computer Society.
David F. Bacon, Stephen J.
Fink, and David Grove.
Space- and time-efficient implementation of the Java object model.
In B. Magnusson, editor, ECOOP 2002 — Object-Oriented Programming:
16th European Conference, pages 111–132, Berlin, June 2002.
Springer-Verlag.
Lecture Notes in Computer Science 2374.
David F. Bacon, Perry
Cheng, and V. T. Rajan.
A unified theory of
garbage collection.
In John M. Vlissides and Douglas C. Schmidt, editors, OOPSLA '04:
Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented
Programming, Systems, Languages, and Applications, pages 50–68, New
York, October 2004. ACM Press.
(doi:10.1145/1028976.1028982)
Rajendra K. Bandi,
Vijay K. Vaishnavi, and Daniel E. Turk.
Predicting maintenance performance using object-oriented design complexity
metrics.
IEEE Transactions on Software Engineering, 29(1):77–87, 2003.
(doi:10.1109/TSE.2003.1166590)
Rajiv D. Banker,
Srikant M. Datar, Chris F. Kemerer, and Dani Zweig.
Software complexity and maintenance costs.
Communications of the ACM, 36(11):81–94, 1993.
(doi:10.1145/163359.163375)
The Bugzilla Guide,
2005.
Available online http://www.bugzilla.org/docs/ (June 2005).
Victor R. Basili,
Lionel C. Briand, and Walcélio L. Melo.
A validation of object-oriented design metrics as quality indicators.
IEEE Transactions on Software Engineering, 22(10):751–761,
1996.
(doi:10.1109/32.544352)
L. W. Cannon, R. A. Elliott,
L. W. Kirchhoff, J. H. Miller, J. M. Milner, R. W. Mitze, E. P. Schan, N. O.
Whittington, Henry Spencer, David Keppel, and Mark Brader.
Recommended C style
and coding standards.
Available online http://sunland.gsfc.nasa.gov/info/cstyle.html (January
2006).
Updated version of the Indian Hill C Style and Coding Standards paper.
Per Cederqvist
et al.
Version Management with
CVS, 2001.
Available online http://www.cvshome.org/docs/manual/ (January 2002).
W.-K. Chen, S. Lerner,
R. Chaiken, and D. M. Gillies.
Mojo: a dynamic optimization system.
In Proceedings of the Third ACM Workshop on Feedback-Directed and Dynamic
Optimization FDDO-3, December 2000.
Shyam R. Chidamber
and Chris F. Kemerer.
A metrics suite for object oriented design.
IEEE Transactions on Software Engineering, 20(6):476–493, 1994.
(doi:10.1109/32.295895)
Shyam R. Chidamber,
David P. Darcy, and Chris F. Kemerer.
Managerial use of metrics for object-oriented software: An exploratory
analysis.
IEEE Transactions on Software Engineering, 24(8):629–639, 1998.
(doi:10.1109/32.707698)
Kenneth Chiu, Madhusudhan
Govindaraju, and Randall Bramley.
Investigating the limits of SOAP performance for scientific computing.
In The 11th IEEE International Symposium on High Performance Distributed
Computing (HPDC '02), Washington, DC, July 2002. IEEE Computer
Society.
Noam Chomsky.
Three models for the description of language.
IEEE Transactions on Information Theory, 2(3):113–124, 1956.
L.K. Chung, B.A. Nixon,
E. Yu, and J. Mylopoulos.
Non-Functional Requirements in Software Engineering.
Kluwer, Dordrecht, 1999.
Charles L. A. Clarke
and Gordon V. Cormack.
On the use of regular expressions for searching text.
ACM Transactions on Programming Languages and Systems,
19(3):413–426, May 1997.
William D. Clinger.
How to read floating point numbers accurately.
SIGPLAN Not., 39(4):360–371, 2004.
(doi:10.1145/989393.989430)
Don Coleman, Dan Ash,
Bruce Lowther, and Paul W. Oman.
Using metrics to evaluate software system maintainability.
Computer, 27(8):44–49, 1994.
(doi:10.1109/2.303623)
Douglas E. Comer and
David L. Stevens.
Internetworking
with TCP/IP, volume III: Client-Server Programming and
Applications (BSD Socket Version).
Prentice Hall, Englewood Cliffs, NJ, second edition, 1996.
Douglas E. Comer and
David L. Stevens.
Internetworking
with TCP/IP, volume II: ANSI C Version: Design, Implementation,
and Internals.
Prentice Hall, Englewood Cliffs, NJ, third edition, 1998.
Douglas E. Comer.
Internetworking
with TCP/IP, volume I: Principles, Protocols and Architecture.
Prentice Hall, Englewood Cliffs, NJ, fourth edition, 2000.
Milenko Drinic,
Darko Kirovski, and Hoi Vo.
Code optimization for
code compression.
In CGO '03: Proceedings of the International Symposium on Code
Generation and Optimization, pages 315–324, Washington, DC, March
2003. IEEE Computer Society.
Christof Ebert.
Dealing with nonfunctional requirements in large software systems.
Annals of Software Engineering, 3:367–395, 1997.
Jonathan Edwards.
Subtext: Uncovering the simplicity of programming.
In Ralph Johnson and Richard P. Gabriel, editors, OOPSLA '05: Proceedings
of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming,
Systems, Languages, and Applications, pages 505–518, New York,
October 2005. ACM Press.
(doi:10.1145/1094851)
Khaled El-Emam.
Ethics and open source.
Empirical Software Engineering, 6(4):291–292, December 2001.
David Evans and
David Larochelle.
Improving security using extensible lightweight static analysis.
IEEE Software, 19(1):42–51, January/February 2002.
Cormac Flanagan,
K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, and Raymie
Stata.
Extended static
checking for Java.
In Jens Knoop and Laurie J. Hendren, editors, PLDI '02: Proceedings of
the ACM SIGPLAN 2002 Conference on Programming Language Design and
Implementation, pages 234–245, New York, June 2002. ACM Press.
(doi:10.1145/512529.512558)
Rodrigo Fonseca,
Virgílio Almeida, and Mark Crovella.
Locality in a web of streams.
Communications of the ACM, 48(1):82–88, January 2005.
Matteo Frigo.
A fast Fourier
transform compiler.
In Barbara G. Ryder and Benjamin G. Zorn, editors, PLDI '99: Proceedings
of the ACM SIGPLAN 1999 Conference on Programming Language Design and
Implementation, pages 169–180, New York, May 1999. ACM Press.
(doi:10.1145/301618.301661)
Geoffrey K. Gill and
Chris F. Kemerer.
Cyclomatic complexity density and software maintenance productivity.
IEEE Transactions on Software Engineering, 17(12):1284–1288,
1991.
(doi:10.1109/32.106988)
Mark Graff and Ken van
Wyk.
Secure Coding.
O'Reilly and Associates, Sebastopol, CA, 2003.
S. Graham, P. Kessler,
and M. K. McKusick.
gprof: A call graph execution profiler.
ACM SIGPLAN Notices, 6(17):120–126, June 1982.
Proceedings of the SIGPLAN '82 Symposium on Compiler Construction.
Susan L. Graham, Peter B.
Kessler, and Marshall K. McKusick.
An execution profiler for modular programs.
Software: Practice & Experience, 13:671–685, 1983.
Susan L. Graham, Peter B.
Kessler, and Marshall K. McKusick.
gprof: a call graph execution profiler.
SIGPLAN Not., 39(4):49–57, 2004.
(doi:10.1145/989393.989401)
Christoph Grein, Dmitry A.
Kazakov, and Fraser Wilson.
A survey of physical unit handling techniques in Ada.
In Jean-Pierre Rosen and Alfred Strohmeier, editors, 8th Ada-Europe
International Conference on Reliable Software Technologies, pages
258–270, Berlin, June 2003. Springer-Verlag.
Lecture Notes in Computer Science 2655.
John R. Hauser.
Handling floating-point exceptions in numeric programs.
ACM Trans. Program. Lang. Syst., 18(2):139–174, 1996.
(doi:10.1145/227699.227701)
Jane Huffman Hayes, Naresh
Mohamed, and Tina Hong Gao.
Observe-mine-adopt (OMA): an agile way to enhance software maintainability.
Journal of Software Maintenance, 15(5):297–323, 2003.
Walter L.
Heimerdinger and Chuck B. Weinstock.
A
conceptual framework for system fault tolerance.
Technical Report CMU/SEI-92-TR-33, Carnegie Mellon University, Software
Engineering Institute, Pittsburgh, PA, October 1992.
Robert A. Heinlein.
Stranger in a Strange Land.
G. P. Putnam's Sons, New York, 1961.
Brian L.
Henderson-Sellers, Larry L. Constantine, and Ian M. Graham.
Coupling and cohesion: Towards a valid metrics suite for object-oriented
analysis and design.
Object Oriented Systems, 3(3):143–158, 1996.
Brian L.
Henderson-Sellers.
Object-Oriented Metrics: Measures of Complexity.
Prentice Hall, Englewood Cliffs, NJ, 1996.
T. Hickey, Q. Ju, and
M. H. Van Emden.
Interval arithmetic: From principles to implementation.
J. ACM, 48(5):1038–1068, 2001.
(doi:10.1145/502102.502106)
E. Von Hippel.
Innovation by user communities: Learning from open source software.
Sloan Management Review, 42(4):82–86, Summer 2001.
Martin Hitz and
Behzad Montazeri.
Chidamber and Kemerer's metrics suite: A measurement theory perspective.
IEEE Transactions on Software Engineering, 22(4):267–271, 1996.
(doi:10.1109/32.491650)
David Hovemeyer and
William Pugh.
Finding bugs is easy.
ACM SIGPLAN Notices, 39(12):92–106, December 2004.
OOPSLA 2004 Onward! Track.
Paul Hudak.
Domain-specific
languages.
In Peter H. Salus, editor, Handbook of Programming Languages,
volume III: Little Languages and Tools. Macmillan Technical Publishing,
Indianapolis, IN, 1998.
Elliott Hughes.
Checking spelling in source code.
ACM SIGPLAN Notices, 39(12):32–38, December 2004.
Andy Hunt and Dave
Thomas.
Software archeology.
IEEE Software, 19(2):20–22, March/April 2002.
Michael A. Jackson.
Literate programming—processing transactions.
Communications of the ACM, 30(12):1000–1010, December
1987.
R. Johnson.
Documenting frameworks using patterns.
ACM SIGPLAN Notices, 27(10):63–76, October 1992.
In John Pugh (ed) Proceedings of the seventh Annual Conference on
Object-Oriented Programming Systems, Languages and Applications, OOPSLA '92
Conference, October 18–22, Vancouver, British Columbia, Canada.
Niels Jørgensen.
Putting it all in the trunk: Incremental software development in the FreeBSD
open source project.
Information Systems Journal, 11(4):321–336, October 2001.
(doi:10.1046/j.1365-2575.2001.00113.x)
William Kahan.
A survey of error analysis.
In C. V. Freiman, John E. Griffith, and J. L. Rosenfeld, editors,
Proceedings of IFIP Congress 71, pages 1214–1239, Amsterdam,
August 1972. North-Holland.
Nadine Kano.
Developing International Software for Windows 95 Windows NT.
Microsoft Press, Redmond, WA, 1995.
Gregor Kiczales, Erik
Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold.
An overview of
AspectJ.
In Proceedings of the 15th European Conference on Object-Oriented
Programming, pages 327–353, Berlin, 2001. Springer-Verlag.
Stephen C. Kleene.
Represenations of events in nerve nets and finite automata.
In Claude E. Shannon and John McCarthy, editors, Automata Studies,
volume 34 of Annals of Mathematics Studies, pages 3–42.
Princeton University Press, Princeton, NJ, 1956.
Mark F. Komarinski,
Jorge Godoy, and David C. Merrill.
LDP author
guide.
Available online http://www.linuxdoc.org/LDP/LDP-Author-Guide.pdf (January
2002), December 2001.
Henry F. Korth, Abraham
Silberschatz, and S. Sudarshan.
Database System
Concepts.
McGraw-Hill, New York, fifth edition, 2005.
Meir M. Lehman and
Laszlo A. Belady.
An introduction to program growth dynamics.
In W. Freiberger, editor, Conference on Statistical Computer Performance
Evaluation Proceedings, pages 503–511, New York, 1972. Academic
Press.
K. Rustan M. Leino.
Extended static
checking: A ten-year perspective.
In Reinhard Wilhelm, editor, Informatics—10 Years Back. 10 Years
Ahead—Proceedings of the Schloss Dagstuhl Tenth Anniversary
Conference, pages 157–175, London, August 2001. Springer-Verlag.
Lecture Notes in Computer Science 2000.
Ernst Leiss.
Constructing a finite automaton for a given regular expression.
SIGACT News, 12(3):81–87, 1980.
(doi:10.1145/1008861.1008870)
John Levine, Tony Mason,
and Doug Brown.
lex &
yacc.
O'Reilly and Associates, Sebastopol, CA, second edition, 1992.
Wei Li and Sallie Henry.
Object-oriented metrics that predict maintainability.
J. Syst. Softw., 23(2):111–122, 1993.
(doi:10.1016/0164-1212(93)90077-B)
B. P. Lientz and
E. B. Swanson.
Software Maintenance Management.
Addison-Wesley, Reading, MA, 1980.
Mark Lutz.
Programming
Python.
O'Reilly and Associates, Sebastopol, CA, second edition, 2002.
Paul P. Maglio and
Eser Kandogan.
Error messages: What's the problem.
ACM Queue, 2(8):50–55, November 2004.
Udi Manber and Sun Wu.
GLIMPSE: A tool to search through entire file systems.
In Jeff Mogul, editor, USENIX Conference Proceedings, pages
23–32, Berkeley, CA, Winter 1994. USENIX Association.
Jeremy Manson, William
Pugh, and Sarita V. Adve.
The Java memory
model.
In Jens Palsberg and Martin Abadi, editors, POPL '05: Proceedings of the
32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming
Languages, pages 378–391, New York, January 2005. ACM Press.
(doi:10.1145/1040305.1040336)
Tobias Mayer and Tracy
Hall.
A critical analysis of current OO design metrics.
Software Quality Control, 8(2):97–110, 1999.
(doi:10.1023/A:1008900825849)
Marshall Kirk
McKusick and Gregory R. Ganger.
Soft updates: A technique for eliminating most synchronous writes in the fast
filesystem.
In Jordan Hubbard, editor, Proceedings of the USENIX 1999 Annual
Technical Conference, Freenix Track, pages 1–18, Berkeley, CA, June
1999. USENIX Association.
Richard J. Miara,
Joyce A. Musselman, Juan A. Navarro, and Ben Shneiderman.
Program indentation and comprehensibility.
Communications of the ACM, 26(11):861–867, 1983.
Microsoft
Corporation.
The component object model specification.
Technical report, Microsoft Corporation, Redmond, WA, October 1995.
Cameron Newham and
Bill Rosenblatt.
Learning the
Bash Shell.
O'Reilly and Associates, Sebastopol, CA, second edition, 1998.
Bradford Nichols, Dick
Buttlar, and Jacqueline Proulx Farrell.
Pthreads
Programming.
O'Reilly and Associates, Sebastopol, CA, 1996.
Scott Oaks and Henry Wong.
Java Threads.
O'Reilly and Associates, Sebastopol, CA, 3rd edition, 2004.
Object
Management Group, Inc.
The common object request broker: Architecture and specification, July 1996.
Revision 2.0 (Updated).
Sandra Martin
O'Donnell.
Programming for the World: How to Modify Software to Meet the Needs of
the Global Market.
Prentice Hall, Englewood Cliffs, NJ, 1994.
Paul W. Oman and Curtis R.
Cook.
Typographic style is more than cosmetic.
Communications of the ACM, 33(5):506–520, May 1990.
Paul W. Oman and
Jack Hagemeister.
Construction and testing of polynomials predicting software maintainability.
J. Syst. Softw., 24(3):251–266, 1994.
(doi:10.1016/0164-1212(94)90067-1)
Cristiane S. Ramos,
Káthia M. Oliveira, and Nicolas Anquetil.
Legacy software evaluation model for outsourced maintainer.
In Eighth Euromicro Working Conference on Software Maintenance and
Reengineering (CSMR'04), pages 48–57, Washington, DC, March 2004.
IEEE Computer Society.
J. Reynolds and
J. Postel.
RFC 1700: Assigned
numbers, October 1994.
Internet Engineering Task Force. Request for Comments.
L. Rising.
The Pattern Almanac 2000.
Addison-Wesley, Boston, MA, 2000.
Kay A. Robbins and
Steven Robbins.
Practical Unix Programming: A Guide to Concurrency, Communication, and
Multithreading.
Prentice Hall, Englewood Cliffs, NJ, 1996.
J. Sandred.
Managing Open Source Projects.
Wiley, New York, 2001.
Douglas C. Schmidt
and Tim Harrison.
Double-checked
locking.
In R. C. Martin, D. Riehle, and F. Buschmann, editors, Pattern Languages
of Program Design 3, pages 363–375. Addison-Wesley, Reading, MA,
1997.
Margo Seltzer and
Michael Olson.
LIBTP: Portable, modular transactions for UNIX.
In Eric Allman, editor, Proceedings of the Winter 1992 USENIX
Conference, pages 9–26, Berkeley, CA, January 1992. USENIX
Association.
Charles Severance.
IEEE 754: An interview with William Kahan.
Computer, 31(3):114–115, March 1998.
Mary Shaw.
Patterns for software
architectures.
In James O. Coplien and Douglas C. Schmidt, editors, Pattern Languages of
Program Design, pages 453–462. Addison-Wesley, Reading, MA,
1995.
Yasushi Shinjo and Calton
Pu.
Achieving efficiency and portability in systems software: A case study on
POSIX-compliant multithreaded programs.
IEEE Transactions on Software Engineering, 31(9):785–800,
September 2005.
Connie U. Smith and
Lloyd G. Williams.
Performance Solutions: A Practical Guide to Creating Responsive, Scalable
Software.
Addison-Wesley, Boston, MA, 2002.
Connie U. Smith and
Lloyd G. Williams.
Best practices for
software performance engineering.
In 29th International Conference for the Resource Management and
Performance Evaluation of Enterprise Computing Systems, Turnersville,
NJ, December 2003. Computer Measurement Group.
Henry Spencer and
Geoff Collyer.
#ifdef considered harmful or portability experience with C news.
In Rick Adams, editor, Proceedings of the Summer 1992 USENIX
Conference, pages 185–198, Berkeley, CA, June 1992. USENIX
Association.
Henry Spencer.
How to steal code—or—inventing the wheel only once.
In USENIX Conference Proceedings, pages 335–345, Berkeley, CA,
Winter 1988. USENIX Association.
Henry Spencer.
The Ten Commandments for C programmers (annotated edition).
;login:, 18(2):29–31, March slash April 1993.
Mark Taunton.
Compressed executables: An exercise in thinking small.
In Deborah K. Sherrer, editor, Proceedings of the Summer 1991 USENIX
Conference, pages 385–404, Berkeley, CA, June 1991. USENIX
Association.
Dave Taylor.
Global Software: Developing Applications for the International
Market.
Springer-Verlag, New York, 1992.
Ted Tenny.
Program readability: Procedures versus comments.
IEEE Transactions on Software Engineering, 14(9):1271–1279,
September 1988.
Edward J. Thomas and
Paul W. Oman.
A bibliography of programming style.
ACM SIGPLAN Notices, 25(2):7–16, February 1990.
David Thomas, Andrew
Hunt, and Dave Thomas.
Programming Ruby: A Pragmatic Programmer's Guide.
Addison-Wesley, Reading, MA, 2000.
Walter F. Tichy.
A catalogue of general-purpose design patterns.
In 23rd conference on the Technology of Object-Oriented Languages and
Systems (TOOLS 23). IEEE Computer Society, 1998.
Frank Tip, Chris Laffra,
Peter F. Sweeney, and David Streeter.
Practical experience
with an application extractor for Java.
In Brent Hailpern and Linda Northrop, editors, OOPSLA '99: Proceedings
of the 14th ACM SIGPLAN Conference on Object-oriented Programming, Systems,
Languages, and Applications, pages 292–305, New York, November 1999.
ACM Press.
(doi:10.1145/320384.320414)
Unicode
Consortium, Joan Aliprand, Julie Allen, Rick McGowan, Joe Becker, Michael
Everson, Mike Ksar, Lisa Moore, Michel Suignard, Ken Whistler, Mark Davis,
Asmus Freytag, and John Jenkins.
The Unicode
Standard, Version 3.0.
Addison-Wesley, Boston, MA, 2000.
Emmanuel Uren, Robert
Howard, and Tiziana Perinotti.
Software Internationalization and Localization: An Introduction.
Van Nostrand Reinhold, New York, 1993.
Allan Vermeulen,
Scott W. Ambler, Gregory Bumgardner, Eldon Metz, Trevor Misfeldt, Jim Shur,
and Patrick Thompson.
The Elements of
Java Style.
Cambridge University Press, Cambridge, 2000.
Marek
Vokác, Walter Tichy, Dag I. K. Sjøberg, Erik Arisholm, and Magne
Aldrin.
A controlled experiment comparing the maintainability of programs designed with
and without design patterns—a replication in a real programming
environment.
Empirical Software Engineering, 9(3):149–195, 2004.
(doi:10.1023/B:EMSE.0000027778.69251.1f)
David Wagner, Jeffrey S.
Foster, Eric A. Brewer, and Alexander Aiken.
A first step towards automated detection of buffer over-run vulnerabilities.
In NDSS 2000: Proceedings of the Network and Distributed System Security
Symposium, Reston, VA, February 2000. Internet Society.
Larry Wall, Tom
Christiansen, Randal L. Schwartz, and Stephen Potter.
Programming
Perl.
O'Reilly and Associates, Sebastopol, CA, third edition, 2000.
Paul R. Wilson.
Uniprocessor garbage
collection techniques.
In Yves Bekkers and Jacques Cohen, editors, IWMM '92: Proceedings of the
International Workshop on Memory Management, pages 1–42, London,
September 1992. Springer-Verlag.
Lecture Notes in Computer Science 637.
Terry Winograd and
Fernando Flores.
Understanding Computers and Cognition: A New Foundation for
Design.
Addison-Wesley, Reading, MA, 1986.
William A. Wulf.
A case against the goto.
In Proceedings of the ACM Annual Conference, pages 791–797, New
York, August 1972. ACM Press.
Christopher J. Van Wyk
and Donald C. Lindsay.
Literate programming: A file difference program.
Communications of the ACM, 32(6):740–755, June 1989.
Ping Yu, Tarja Systä, and
Hausi A. Müller.
Predicting
fault-proneness using OO metrics: An industrial case study.
In T. Gyimóthy, editor, CSMR '02: Proceedings of the 6th European
Conference on Software Maintenance and Reengineering, pages 99–107,
Washington, DC, March 2002. IEEE Computer Society.