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.