基本思想:把一个软件产品划分为一系列的增量构件来设计、编码、集成和测试,并逐个添加到软件产品中去,逐步向用户提交产品。每个构件能够完成特定的功能 优点:(1)软件的实现和维护阶段没有明显的分界线; (2)用户在很短时间内就可以使用产品的部分功能
(3)用户适应新产品的时间较充裕 (4)构件的分解要易于测试、规模适中 (5)软件的体系结构是开放的,易于扩充和维护
螺旋模型:引入的原因,与瀑布模型、快速原型模型的联系
基本思想:软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件越复杂,承担该项目所冒的风险也越大。软件风险可能在不同程度上损害软件开发过程和软件产品质量。构建原型是一种能使某些类型的风险降至最低的方法。螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。
联系:简化的螺旋模型是在快速原型模型的基础上扩展而成的,把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。
完整的螺旋模型,将瀑布模型与原型模型结合起来,并且加入前两种模型均忽略了的风险分析
瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。 瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。 瀑布模型的使用范围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。 快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。 快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2) 准确的原型设计比较困难;(3) 不利于开发人员的创新。 快速原型模型的使用范围:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。 增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;(3)可先发布部分功能给客户,对客户起到镇静剂的作用。 增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。 增量模型的使用范围:(1)进行已有产品升级或新版本开发,增量模型是非常适合的;(2)对完成期限严格要求的产品,可以使用增量模型;(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。 螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。 螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。 螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目。
第二章
什么是:经济可行性、技术可行性、运行与操作可行性、法律可行性
(1) 经济可行性:这个系统的经济效益能超过它的开发成本吗?
估算项目的开发成本和系统投入使用后可能带来的利润,进行成本/效益分析,从经济角度判断系统开发是否“合算”。
(2) 技术可行性:使用现有的技术能实现这个系统吗?
根据客户提出的系统功能、性能要求,从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用及其他各项约束条件限制下成功的可能性。 (3) 运行、操作可行性:系统的操作方式在这个用户组织内行得通吗?
主要研究系统的运行方式在用户单位是否可以被有效地实施,是否与原有其他系统相矛盾;系统的操作规程在用户单位内是否可行,它包括人事、科技政策、管理方法等等。
(4) 法律可行性:系统的开发使用,在当国当地当时合法吗?
利用软件工程的方法设计开发软件系统的过程
第三章
需求分析的基本任务
1. 确定需求--确定对系统的综合要求
(1)功能需求 (2)性能需求 (3)可靠性和可用性需求 (4)出错处理需求 (5)接口需求 (6)约束 (7)逆向需求 (8)将来可能提出的要求
2. 建立数据模型--利用图形工具描述系统数据结构并将数据结构规范化,建立数据模型 3. 导出系统的逻辑模型--通常用数据流图、实体--联系图、状态转换图、数据字典和主要的处理算法描述整个逻辑模型 4. 编写需求规格说明书 5. 修正系统开发计划
本阶段结束形成的基本文档
软件需求规格说明书
结构化分析应建立哪三大模型,分别用什么工具描述
数据模型—数据流图
功能模型—实体-联系图(E-R图) 行为模型—状态图
数据流图、E-R图、状态转换图的构成
数据流图--系统逻辑功能的描述工具
4种成分:源点和终点,处理,数据存储,数据流