共计 3550 个字符,预计需要花费 9 分钟才能阅读完成。
Chapter2:software process model
Organization of processes and activities
Key points in this chapter:
- What is software process?
- What is software process model?
- What are the software process models and what’s their advantages and disadvantages and implementation area?
- Difference between plan-driven and agile?
- What is agile method?
- 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) 从一个小鱼缸伸一个馆子到大鱼缸