ssd9刷一下
按照重点看一下ppt
看下课堂题目(先看群里有答案的 再要)
重点
第二章:软件生命周期模型
第三章:软件过程
(以上两章主要使用来出选择题,概念要理解清楚)
第十一章:需求
(会出现在简答题里面)
第十二章:传统分析方法
第十三章:面向对象分析方法
(以上两章会出现在最后分析题里面,下面的第十四章也可以看一下,是设计,结合前两章再看一下,注意回答时表述规范)
第十四章:设计
第十五章:实现【本章重点是集成(Integration),非常重要!!!】
第十六章:维护
(以上两章是考察概念的理解,希望大家熟悉其概念,这两部分会在简答题里面出现,望引起注意!)
第二章 软件生命周期
software life-cycle models
software development in theory
理想情况下软件的开发过程是Linear和Starting from scratch(白手起家)
实际情况下 原因在于我们会犯错 以及客户的需求会在开发过程中改变-
Winburg mini case study
Evolution-Tree Model(这个可以显示事件发生的流程 瀑布模型不可以 这个有baseline比如episode3就是requirement1=>analysis1=>design3=>implementation3)
Waterfall Model
Lessons of the Winburg mini case study
现实的开发过程更chaotic
changes are always neededTeal tractors mini case study
Some changes may be great for the company but disastrous for the software product. 这些change都有可能导致regression fault
Change is inecitableIteration and incrementation
现实中,没有“the analysis phase” 这是贯穿于整个life cycle的 同理之前那个Evolution-Tree Model里面的各种phrase其实都不能称之为phase. Instead, there are multiple instances of each phase. 从另一个角度来说就是"iteration and incrementation are used in conjunction with one another."
Miller's Law人只能专注于7件事(所以为了处理信息量大的工作 我们用stepwise refinement这是用来解释为啥要有incremental process)
5个核心的workflow
requirements workflow
analysis workflow
design workflow
implementation workflow
test workflow
整个生命周期整个五个都有 但是大多数时候总有一个predominates
-
Winburg mini case study revisited
Risks and other aspects of iteration and incrementation
一个Increment就是一个mini project 而整个项目就是一堆这个组成的
Each iteration can be viewed as a small but complete waterfall life-cycle model
I&I的优势
1.有很多环节可以发现问题
2.整个architecture的Robustness(健壮性)在life-cycle的早期就可以被决定
3.empirical evidence
但是这个模式在软件规模极速发展的背景下,暴露出来一些问题,原因在于lack of user involvement和lack of support from senior executives
- Managing iteration and incrementation
each increment is a waterfall mini project,applied successively - Other life-cycle models
1.code-and-fix model
no design no specification
这是maintennace nightmare
最简单也是最昂贵的开发模式
2.瀑布模型
瀑布模型的特征:有feedback loops以及它是documentation-driven的
优点在于有文档、对维护更友好 缺点也是在于文档(耗费大量劳动力)
3.rapid prototyping model
就是比瀑布模型少了feedback
4.open-source life-cycle model
key point:individuals generally work voluntarily on an open-source project in their spare time(社区中的开发人员参与有不同的场景corrective/perfective/adaptive maintenance)
要注意一点 社区中的开发人员只参与了postdelivery的maintenance
所以与其称他们为co-developers 不如叫做co-maintainers
参与到开源项目维护的分两种人core group和 peripheral group(外围人员 就是发一下错误报告的那种小白user)
相比闭源 开源软件release early and often(因为不需要自备严密的SQA)
从上面的描述我们不难看出,开源的确适合一部分软件比如操作系统 浏览器 编译器但是有些就不适合,比如商业软件
而且 没有specification和design也有优有劣 eventually a point will be reached when the open-source product is no longer maintainalbe
5.Agile Processes(敏捷开发)
controversial new approach
实现了敏捷开发中最为人熟知的paradigm(范例)就是XP(extreme programming)
而XP的一个很成功的实践就是pair programming(结对编程)
XP中的一些重要概念(acronyms首字母of XP)
YAGNI(u aren't gonna nedd it)
DTSTTCPW(do the simplest thing that could possibly work)
Agile process中有个stand-up meeting感觉就像加强版的早会233
所有以上都是为了Agile process的两个基本原则
communication和satisfying the client's needs as quickly ad possible)
显而易见这种开发方式适合小规模的软件 而其中的key decider就是敏捷开发对postdelivery maintenance的影响
6.Synchronize and Stabilize Model
At the end of the day--sychronize(test and debug)
At the end of the bulid --stabilize(freeze the bulid)
7.Sprial Model(螺旋)
就是rapid prototyping model plus risk anlysis preceding each phase
If all risks cannot be mitigated, the project is immediately terminated.
Full Spiral Model
有不同观察的维度
radial dimension:cumulative cost to date
angular dimension:progress through the spiral
显而易见 这种模式只适合大规模的软件
-
Comparison of life-cycle models
比较各种模式有不同的角度
The organization
Its management
The skills of the employees
The nature of the product
最佳建议:mix-and-match life cycle model(答题的时候也要随时想到这种万金油方法学)
第三章 软件过程
The Unified Process
不是那种一步一步的指导书类型的准则显然也不存在这种适应所有软件的准则
所以统一过程是一种adaptable methodology
UML(unified modeling language) diagrams enalbe software engineers to communicate quickly and accuratelyIteration and incrementation within the object-oriented paradigm
统一过程是一种modeling technique
面向对象的本质就是iterative and incrementalThe requirement workflow
目的就是为了搞清楚需求The analysis workflow
To analyze and refine the requirements
不在requirements workflow做这些工作的原因是那个环节必须完全comprehensible by the client
SPMP(software project management plan)The design workflow
The aim of the design workflow is to refine the analysis workflow until the material is in a form that can be implemented by the programmer
分传统的设计和面向对象的设计The implementation workflow
The aim of the implementation workflow is to implement the target software product in the selected implementation languageThe test workflow
The analysis artifacts shoud be checked by means of a reviewPostdelivey maintenance
Retirement
The phases of the Unified Procsess
One-versus two-dimensional life-cycle models
Improving the software process
Capability maturity models
Other software process improvement initiatives
Costs and benefits of software process improvement