Software Processes

Cards (34)

  • Software process
    A set of related activities that leads to the production of the software
  • Four activities in any software process
    • Software specifications
    • Software development
    • Software validation
    • Software evolution
  • Supporting activities in software process
    • Configuration and change management
    • Quality assurance
    • Project management
    • User experience
  • Change Management
    Managing changes related to project management plans, processes, and baselines
  • Configuration Management

    Managing changes related to product scope
  • Software quality assurance (SQA)

    A process which assures that all software engineering processes, methods, activities and work items are monitored and comply against the defined standards
  • Project Management
    The application of knowledge, skills, tools, and techniques to project activities to meet the project requirements
  • User Experience (UX) design
    The process design teams use to create products that provide meaningful and relevant experiences to users
  • Software process is complex, it relies on making decisions
  • There's no ideal process and most organizations have developed their own software process
  • Software process model

    A simplified representation of a software process
  • Software process models
    • Each model represents a process from a specific perspective
    • They can be adapted and extended to create more specific processes
  • Waterfall Model
    A sequential approach, where each fundamental activity of a process represented as a separate phase, arranged in linear order
  • Plan-driven process

    A process where all the activities are planned first, and the progress is measured against the plan
  • Phases of Waterfall model
    1. Requirements gathering and analysis
    2. System Design
    3. Implementation
    4. Integration and Testing
    5. Deployment of system
    6. Maintenance
  • In practice, the phases of Waterfall model overlap and feed information to each other
  • Prototyping
    A version of a system or part of the system that's developed quickly to check the customer's requirements or feasibility of some design decisions
  • Phases of Prototyping
    1. Establish objectives
    2. Define prototype functionality
    3. Develop the prototype
    4. Evaluate the prototype
  • Incremental Development
    Developing an initial implementation, exposing this to user feedback, and evolving it through several versions until an acceptable system has been developed
  • Each system increment reflects a piece of the functionality that is needed by the customer
  • Spiral Model

    A risk-driven model where the process is represented as spiral rather than a sequence of activities
  • Phases of Spiral Model
    1. Objective setting
    2. Risk assessment and reduction
    3. Development and validation
    4. Planning
  • Iterative Development
    Aims to develop a system through building small portions of all the features, across all components
  • Phases of Iterative Development
    1. Inception
    2. Elaboration
    3. Construction
    4. Transition
  • Agile
    A group of software development models based on the incremental and iterative approach
  • Agile methods minimize documentation by using informal communications rather than formal meetings with written documents
  • Increment
    Builds a complete feature of the software
  • Iterative
    Builds small portions of all the features
  • Agile
    Combines the incremental and iterative approach by building a small portion of each feature, one by one, and then both gradually adding features and increasing their completeness
  • Software crisis
    The difficulty of writing useful and efficient computer programs in the required time
  • Aspects of software crisis
    • Size
    • Quality
    • Cost
    • Delayed Delivery
  • Software testing typically finds 25 errors per 1000 lines of code
  • Development of the FAA's Advanced Automation System cost over $700 per lines of code
  • One in four large-scale development projects is never completed