OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Better Software—No Matter What"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 
  > Technical Program > Tutorials > All Tutorials

 : Monday Full-Day Tutorials (8:30 - 17:00) : Monday

Better Software—No Matter What

Meeting Room 8
Monday, 8:30, full day
 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

Scott Meyers, Independent Consultant:  Scott Meyers is an author and consultant with over three decades of software development experience. His three best-selling "Effective C++" books defined a new genre in technical publishing. His consulting and research work has spanned a wide range of industries and topics, including regulatory genetics, CAD/CAE applications, and video games. His current work focuses on identifying fundamental principles for improving software quality. Scott is Consulting Editor for Addison-Wesley's Effective Software Development Series and sits on Software Development Magazine's technical advisory board. He has a PhD in Computer Science from Brown University.

Tutorial number: 41

Some software development practices improve software quality, regardless of the domain of the application, the language in which it's written, the platform on which it runs, or the users it is intended to serve. Furthermore, there are minimal quality standards that virtually all software should adhere to, regardless of its purpose.

This tutorial explores fundamental principles, practices, and standards that improve software quality, no matter what the software does, how it does it, or whom it does it for. Among the most important ideas explored in this tutorial are:

  1. Interfaces should be easy to use correctly and hard to use incorrectly. (This includes all interfaces, from APIs to GUIs.)
  2. Use as much static analysis as possible, via both language mechanisms as well as outside tools.
  3. Avoid the creation of gratuitous constraints, including "keyholes."
  4. Embrace test-first programming.

This tutorial is not about theory. It's about principles and practices that developers can put to work immediately, no matter what they're working on.

Beginner: Attendees should be programmers or technical managers. The tutorial material is applicable to all problem domains and programming languages.