The importance rate is higher after Ch.6
Example details is not included
Systems Developement Life Cycle:
- Planning
- Analysis
- Design
- Implementaion
- Coding
- Documentaion
- Training Procedures
- Maintenance
- Instead of predicting things, it is more effecitve to adapt with the situation.
- People are more a key point than roles.
- Self-adaptive processes.
- It is impossible to predict the needs of the project.
- You have a experienced and responsible development team.
- Customers are glad to get involve to the development process.
- Project Size
- Project structure
- Dvelopment Group
- User Group
Generally,
project size ~ risk
requirement structured and ease to obtain level ~ !risk
standardized level ~ !risk
user familiarity ~ !risk
- Encapsulation 封装
- 隐藏对象的内在复杂度,对外给出简单的接口
- Modularity 模块化
- 将复杂的问题分开成数个简单的问题,分开解决
- Hierachy 继承
- 将同一种对象的共同行为一般化
- Abstraction 抽象
- 同样结构的对象可以有不同的行为,但是他们可以由相同的接口表示
- Objects with a same structure can have different behaviours, but they can still be represented by one abstract interface.
first 4-5 pros and cons, getting the key points is fine. Ignore the Incremental.
- Supports less experienced or less stable project teams/managers.
- Ensure the orderly sequence of development steps and strict controls for ensuring quality.
- Progress of project development is measurable.
- Save resources.
- Inflexible, slow, costly and cumbersome(big&heavy) beacuse of tight control.
- In most cases the project cannot move backward.
- Be difficult to iterate.
- Depend on early declarations of requirement, which may not be easy to be defined early in the project.
- Unexcepted situations often happen during design and coding.
- Developig a mainframe-baed or transaction-based batch system.
- Developing large, expensive and complicated system.
- Development don't need to finish immediately.
- Project has clear objective and solution.
- Requirements can be declared clearly.
Prototyping is not a standalone development methodology. It is used to manage some parts if another complete methodology.
- Be able to solve the problem that users cannot clearly tell their needs, as well as the problem that analysts cannot understand user's need. (via providing a tentative(sth. in draft) for experimental purposes.)
- Improves user paticipation in system developement.
- Useful for resovling unclear objectives.
- Can use knowledge exported from early iterations. (?)
- Not being strict.
- Problem analysis may be incomplete and thus only the most obvious and superficial(not being deep) needs will be addressed, resulting inefficient practices being easily built into the new system.
- Requirements may frequently change significantly.
- Identification of non-functional elements is difficult to document. (?)
- Designers may neglect documentation, resulting in insufficient justification for the final product and inadequate records for the future. (Why they will have narrow focus when they prototype quickly?)
- Project is for development of an online system requiring extensive user dialog, or for a less well-defined expert and decision support system. (Means that they are not very deepin systems?)
- Project is large with many users, interrelationships and functions. (For reducing risk relating to requirement definition)
- Project objectives are unclear.
- Project need to be implemented quickly.
- Project requirements will change frequently and significantly (By users which are all Gods).
Combination Linear and Iterative.
- Enhanced risk avoidance.
- Helpful for selecting the best methodology of a given iteration.
- Can use different methodologies in different iteraion, based on the risk factors..
- It is a challenge to determine methodology for each iteration.
- Being very complex due to its high constomization level.
- Each cycle may generate more work for the next one, and this is not controlled.
- No clear termination condition.
- May need a experienced manager.
- Developing real-time and safety critical systems.
- Risk avoidance is very important in the project.
- It is less important to save money.
- Project manager is skillful and experienced.
- Requirement exists for strong approval and documentation control.
...
(CHAOS & BE EVIL)
FAST, CHEAP, READILY(FOR ALL), FLEXIBLE
Developed system may be not satisfy the business requirement.
lower quilty, inconsistant design, may add more and more features
- Project is of small-to-medium scale and of short duration
- Project scope is focused, such that the business objectives are well defined and narrow.
- Application is highly interactive, has a clearly defined user group, and is not computationally complex.
- Functionality of the system is clearly visible at the user interface.