Skills List for Designers/Developers

This detailed skills list was developed by members of the Object Oriented Specialty Track.  The skills
list is intended to be used in evaluating courses as candidates for inclusion in the Object Oriented Specialty
Track, a special curriculum under development for Lucent's Learning and Performance Center.

This list is focused primarily on the needs of designer/developers.  These individuals need to be able to function as a part of a development team, fitting into a variety of development roles from architect to tester.  Broad exposure to all Object Oriented skills is desirable, and specific knowledge of development techniques is stressed.

The skills list is broken down into multiple categories.  Within each category are specific skills or competencies
that students of Object Oriented design and implementation should master.

Categories

  1. Object Oriented Concepts (abstraction, polymorphism, encapsulation)
  2. An object-oriented way of defining a set of classes and distributing responsibilities across the classes
  3. Knowing what standard OO patterns are, and how to apply them
  4. Ability to recognize good and bad OO designs
  5. OO analysis and design: why we use them, what are the benefits, and examples of good processes and notations
  6. Knowledge of at least two OO programming languages
  7. Practice using standard libraries and standard programming idioms
  8. OO techniques and notations that are used to record and communicate analysis/design decisions
  9. The proper use of iterative development techniques and prototypes
  10. Strategies for software developers applying OO appropriately to their development jobs
  11. Skills in using objects in distributed/heterogeneous environments

Detailed listing of skills

  1. Object Oriented Concepts

  2. An object-oriented way of defining a set of classes and distributing responsibilities across the classes

  3. Knowing what standard OO patterns are, and how to apply them

  4. Ability to recognize good and bad OO designs

  5. OO analysis and design: why we use them, what are the benefits, and examples of good processes and notations

  6. Knowledge of at least two OO programming languages

  7. Practice using standard libraries and standard programming idioms

  8. OO techniques and notations that are used to record and communicate analysis/design decisions

  9. The proper use of iterative development techniques and prototypes

  10. Strategies for software developers applying OO appropriately to their development jobs

  11. Skills in using objects in distributed/heterogeneous environments

  12.