

分析项目是目标驱动的还是产品驱动的
分析项目其他特征
对下列系统进行分类
工资支付系统(面向数据或特定领域的应用系统)
灌装企业的控制系统(包含嵌入式软件的过程控制或者工业系统)
供水企业管理对企业供水计划的系统(使用图形的信息系统)
支持项目管理的软件(通用信息系统软件包)
供律师查询法律条文的系统 (信息手机的通用软件包)
识别高层的项目风险
识别学院工资系统中的风险
金融和职员之间的矛盾
职员对系统不接受
缺少运行该系统的经验
缺少管理系统的计算机专业人员
需求变化



瀑布模型适应于什么场合?有什么优缺点?
需求:很明确固定
方案:工作流程 线性
类似项目:短期项目等
瀑布模型有许多优点:可强迫开发人员采用规范的方法(例如结构化技术)严格的规定了每个阶段必须提交的文档,要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证,瀑布模型的成功在很大程度上是由于他基本是一种文档驱动的模型
但文档驱动也成为他的一个主要缺点
实际项目很少按照该模型给出的顺序进行的
用户很难清楚地给出所有需求
用户必须有耐心等到系统开发完成
开发者常常被不必要的耽搁

需求很明确
方案很明确
类似项目:系统性能安全等有严格要求等


在( )生存期模型中,要求项目所有的活动都严格按照顺序执行,一个阶段的输出是下一个阶段的输入。
A.瀑布模型
B.原型
C.螺旋模型
D. V模型
论述瀑布模型软件开发方法的基本过程
瀑布模型规定了各项软件工程活动
包括制定软件项目计划
进行需求分析和定义
软件设计
程序编码
测试及运行维护,并且规定了他们自上而下,相互衔接的固定次序。如同瀑布流水,逐级下落。然后软件开发的实践表明:上述各项活动之间并非完全是自上而下,呈线性图示。实际情况是,每项开发活动均应具有以下特征
演化模型是迭代开发模型,每次迭代是软件不断发展
如下常用的两种演化模型
原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工
开发人员通过建立原型系统已经学到了许多东西(至少知道了“系统不应该做什么,以及怎样不去做不该做的事情)因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性
软件产品但交付给用户使用之后,维护便开始了,根据所需完成的维护工作种类的不同,可能需要返回到需求分析,规格说明,设计或编码等不同阶段
用户看似乎看到的是软件的工作版本,其实原型只是用口香糖和打包绳拼凑起来的,为了使原型很快能够工作没有考虑软件的总体质量和长期的可靠性。当被告知该产品必须重建,才能使其达到高质量时,用户叫苦连天,会要求做一些修改,是原型成为最终的工作产品。如此,软件开发管理尝尝就放松了。
原型法
原型是项目系统中的一个方面或者多个方面的工作模型
原型法的好处
原型法的缺点
在需求不清楚的软件项目中,原型开发模型常用来确认需求
从另外的角度看待原型
原型起到作用的程度
那些需要进行原型?
联系:何时引入原型系统
- 保险公司的经理需要通过个人计算机上的一个系统来访问管理信息,该系统价格必须合适,很多人怀疑是否经理真需要使用该系统
- 可行性研究阶段,采用实物模型的方法
- 支持客户销售人员通过电话回到有关客户询问汽车保险价格的系统
- 设计用户对话界面时
- 保险公司考虑实施一个基于MS Access的电话销售系统,他们不知道是Access是否能够开发出相应界面的系统并具备足够快递相应时间
需求分析–》原型开发—》原型评价—》最终系统设计—》最终系统实现
使用原型模型的项目特征
需求明确
希望减少项目需求的不确定性

软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件越复杂,承担该项目所冒的风险也越大。例如
螺旋模型的基本思想

可以看做是在每个阶段之前都增加了风险分析过程的快速原型模型
以风险为导向的声明期模型
从一个小反问的关键中心地带开始寻找风险因素,制定风险控制计划,并交付给下一个步骤,如此迭代。每次迭代讲项目扩展到一个更大的范围


螺旋模型优缺点
优势:随着迭代的增加,风险程度随之降低
缺陷:比较复杂,需要责任心,专注和管理方面的知识
v瀑布模型、V模型和快速原型生存期模型,说明这些模型适用于什么情况下的项目
先完成一个系统子集的开发,再按同样的开发步骤增加功能(系统子集),如此递增下去直至满足全部系统需求
系统的总体设计在初始子集设计阶段就应做出设想
增量式fu持续地在确定的阶段向用户展示软件
和渐近原型不同,在增量式交付的时候,你明确知道下一步要完成什么工作,增量交付的特点是不会在项目结束的时候一下交付全部软件,而是在项目整个开发过程中持续不断的交付阶段性成果。

软件概念–》需求分析–》架构设计》增量式阶段1:详细设计、编码、测试
增量式阶段2:详细设计,编码,测试

增量式模型的优点
需求:基本明确,可能发生变化
市场、用户:对于市场和用户把握需要逐步了解
系统改造:需要一步一步实施
举例
没有足够开发人员
可以使用少量人员开发第一个增量,如果第一个增量(核心产品)用户反应不错,可以增加人员继续后续增量的开发,每开发一个增量,形成一个新的版本
利用增量开发规避技术风险
项目中需要一个新硬件设备,但该设备开发完成日期不确定,可以再早期增量开发中避免使用该硬件,可以保证部分功能提交给用户使用,不至于过分延期

可以构建一部分系统的模型,通过用户试用提出优缺点,最好选择( )生存期模型。
A.增量式模型
B.原型
C.螺旋模型
D. V模型

软件概念–》需求开发–》架构设计–》阶段一:细节设计,构件与发型 阶段二:细节设计、构件与发行 阶段n:细节设计,构建与发行



假设你被任命为一家软件公司的项目负责人,
你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。
由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。
你打算采用哪种软件生命周期模型?为什么?
对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时,应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度
这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反应,较容易确定对新版本的需求。没必要再专门建立一个原型系统来分析用户的需求。没必要在专门建立一个原型系统来分用户的需求。
第二该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平
第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此应该把软件的体系结构设计成开放式的。以利于今后的改进和扩充。

敏捷宣言


是由knetbeck提出的一套针对业务需求和软件开发实践的规则

极限编程方法的实施原则
敏捷团队的特点
选择生存期的步骤
熟悉各种生存期模型—》评审、分析项目的特性–》选择适合项目的生存期模型-》标识生存期模型与项目不一致的地方并进行裁剪



小结
- 瀑布模型
- V模型
- 原型模型
- 增量模型
- 渐进式阶段模型
- 敏捷开发模型