软件工程 Software Process Models

Sharon

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) 从一个小鱼缸伸一个馆子到大鱼缸
阅读 524

不要网络暴力

1 声望
3 粉丝
0 条评论
你知道吗?

不要网络暴力

1 声望
3 粉丝
文章目录
宣传栏