Study Notes: CPSC 544 - The Defined Software Process

Defining the Software Process
  • Software development is complex, involving numerous choices and methods, driven by evolving requirements and interdependencies.

  • Defined processes assist professionals by providing a structured roadmap, guiding efforts, enhancing predictability, and reducing ambiguity.

  • A defined process clarifies team expectations, responsibilities, and workflow, minimizing misunderstandings and promoting collaboration.

  • Unique project needs (e.g., scale, domain, technology) dictate tailored process definitions, as a one-size-fits-all approach is ineffective.

Process Standards
  • Need for Standardization:

    • Reduces training, review, and tool support by promoting consistent practices and greater efficiency.

    • Enhances process improvement through a common framework for learning and identifying best practices.

    • Provides a baseline for process quality measurement and objective assessment.

    • New processes for each project are impractical due to time, effort, and inconsistency.

  • Establishes a process architecture for customizing standard elements into tailored models.

Definitions
  • Software Engineering: Disciplined application of methods for high-quality, reliable, efficient, and maintainable software production and evolution.

  • Software Process: Activities and methods for software production and evolution, defining roles, timing, and procedures from conception to retirement.

  • Software Process Architecture: Framework defining the fundamental structure for tailoring project-specific software processes.

  • Software Process Model: A specific embodiment of the software process architecture, detailing how development activities are performed for a project.

Levels of Software Process Models
  • Universal (U) Models: High-level, abstract frameworks describing overall project organization without task specifics.

  • Worldly (W) Models: Familiar working levels for professionals, detailing common activities, roles, and artifacts.

  • Atomic (A) Models: Detailed refinements for specific task guidance, defining precise steps, techniques, and quality criteria.

  • The Waterfall and Spiral models provide general frameworks, though real-world processes may not conform to these neat structures and serve as guides, not rigid prescriptions.

Critical Software Process Issues
  • Defined to improve workflow, enhance quality, and anticipate problems.

  • Major concerns include quality, product technology, requirements instability, and complexity.

Establishing and Using a Process Definition
  • Create a tailored process architecture for each organization.

  • Standard processes should guide tailoring for unique project needs.

  • Collect process measurements and establish review checkpoints.

Basic Process Guidelines
  • Set objectives for project processes and define the overall architectural framework.

  • Adjust processes dynamically as necessary, ensuring documentation and review of deviations from the standard process.