乐趣区

关于软件工程:SESoftware-Process-Models

Chapter2:software process model

Organization of processes and activities

Key points in this chapter:

  1. What is software process?
  2. What is software process model?
  3. What are the software process models and what’s their advantages and disadvantages and implementation area?
  4. Difference between plan-driven and agile?
  5. What is agile method?
  6. What are the steps of software process?
  • fundamental activities in software processes

    (all processes involve the following steps)

    • Specification:what the system should do
    • Design and implementation:the organization of system
    • Validation:checking if it does what the customer wants
    • Evolution:changing in response to customer need(changing requirements) development and evolution
  • descriptions of activities in software process
    • Products: 这一个 activity 完结之后会失去什么
    • Roles: 哪些人须要参加到这个 activity
    • Pre- and Post- conditions

      • Pre-condition:conditions that must test true before rntering this activity
      • Post-condition:conditions that must test true after exiting this activity

        (退出这个 module 时 如果不合乎 post-condition 示意这个 module 的 coding 是有错的)

  • software process:a sequence of activities leading to the production of a software product.
  • software process model/aka product life cycle : an abstract representation of a software process.
  • software processes(des and where)

    • Plan-driven processes:Plan-driven processes are processes where all of the process activities are planned in advance and progress is measured against this plan.
    • Agile processes:In agile processes, planning is incremental and it is easier to change the plan and the software to reflect changing customer requirements.
  • Kinds of software process models:
    • Waterfall model:Plan-dirven process with strict order(前一个 activity 完结能力进行下一个 activity)

      前一个 activity 完结能力进行下一个 activity

      5 steps in waterfall model:

      • requirements definition
      • system and software design
      • implementation and unit testing
      • integration and system testing
      • operation and maintenance

      Advantages of waterfall model

      • Helps coordinate the work
      • Good requirements imporves software quality.

      Disadvantages of waterfall model: difficult to deal with changing requirements

      Application domain of waterfall model:

      • Large system
      • requirements that are well-understood and unlikely to change radically 比如说会议室预约零碎
    • Incremental model

      interleaving activities
      Advantages of incremental model:

      • dealing with change
      • repid delivery
      • effective feedbacks

      Disadvantages of incremental model:

      • invisible processes
      • degrading system structure

      Application condition of incremental model:

      • limited time and budget(incremental 省时省钱)
      • changing requirements(能够随时改)
    • Reuse-oriented model

      component search and configuration

      Key points of re-use oriented model:

      • Component selection
      • Component filtering
      • Component-dependent requirements development

      Advantages of reuse-oriented model:

      • Reduce cost and risk(为什么 reduce risk)
      • Faster delivery(都用他人做好的组件那必定快)

      Disadvantages of reuse-oriented model:

      • Inevitable requirements compromises(不肯定能找到十分符合要求的组件)
      • Different from real needs(同上)
      • Components out of control(组件外面的实现细节可能不晓得)
    • These models are not mutually exclusive and are often used together, especially for large systems development.
    • For large systems, it makes sense to combine some of the best features of the waterfall and the incremental development models.
    • You need to have information about the essential system requirements to design a software architecture to support these requirements. You cannot develop requirements incrementally.
    • Sub-systems within a larger system may be developed using different approaches.
    • Parts of the system that are well understood can be specified and developed using a waterfall-based process.
    • Parts of the system which are difficult to specify in advance, such as the user interface, should always be developed using an incremental approach.

Agile methods(是一种理念、思维和价值观 不是具体的一种模型)

  • Agile software development methods
    • Extreme programming(XP)
    • Scrum(麻利开发)
    • Crystal
    • Adaptive software development(ASD)
    • DSDM(Dynamic Systems Development Method)
    • Feature driven development(FDD)
  • Scaling agile mothods:
    • Scaling up 从一个小鱼缸换成一个大鱼缸
    • Scaling out(pipeline) 从一个小鱼缸伸一个馆子到大鱼缸
退出移动版