文档介绍:第1章 概论
软件工程
计算机通过运行程序来实现各种不同的应用。
软件离不开程序,但程序并不是软件的全部。
:“软件是能够完成预定功能和性能的可执行的计算机程序,软件复用就是直接使用已有的软构件,即可组装(或加以合理修改)成新的系统,而可以不必每次从零做起。
;
。
分而治之是指把大而复杂的问题分解成若干个简单的小问题,然后逐个解决。
软件的折衷策略是指通过协调各个质量因素,实现整体质量的最优。
软件折衷的重要原则是不能使某一方损失关键的职能,更不可以象"舍鱼而取熊掌"那样抛弃一方。
软件的优化是指优化软件的各个质量因素。
提高运行速度
提高对内存资源的利用率
使用户界面更加友好
使三维图形的真实感更强
。
瀑布
模型
螺旋
模型
喷泉
模型
快速原型模型
增量
模型
RUP
敏捷过程与极限编程
质量保证;
每个阶段都必须完成规定的文档
每个阶段结束前都需要对所完成的文档进行评审,以便尽早发现问题,改正错误
优点:
可强迫开发人员采用规范的方法;
严格地规定了每个段必须提交的文档;
要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
快速原型
(1)定义软件的总体目标,标识需求;
(2)快速制订原型开发的计划,构建原型;
(3)用户试用,提出修改意见;
(4)……
(5)依据满意的原型撰写规格说明文档。
快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集
目的是要弄清目标系统的要求,确定所希望的特性,并探讨多种方案的可行性
目的是验证方案或算法的合理性,它是在大规模开发和实现前,用于考核方案是否合适,规格说明是否可靠
目的是将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统
这些原型关注于目标系统的某些特性,而不是全部特性,开发这些原型时通常不考虑与探索或实验目的无关的功能、质量、结构等因素,这种原型通常被废丢,然后根据探索或实验的结果用良好的结构和设计思想重新设计目标系统。
实现了目标系统中已明确定义的特性的一个子集,通过对它的不断修改和扩充,逐步追加新的要求,最后使其演化成最终的目标系统。
适用情况:用户定义了一组一般性目标,但不能标识出详细的输入、处理及输出需求;开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式等。
增量原型:也称为渐增模型。
使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。
分解时惟一必须遵守的约束条件是,当把新构件集成到现有软件中时,所形成的产品必须是可测试的。
增量模型特别适用于:
需求经常变化的软件开发
市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开发
软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件越复杂,承担该项目所冒的风险也越大。
螺旋模型的基本思想是降低风险。
构建原型是一种使某些风险降至最低的方法。可以将螺旋模型看做在每个阶段前都增加了风险分析过程的快速原型模型。
点画线的长度:
累积开发费用
螺旋线的角度:
开发进度
螺旋线每个周期:
一个开发阶段
优
点
特
点
有利于软件重用和质量监控
减少了过多测试和不足的风险
维护和开发直接没有本质区别
风险驱动,需要丰富知识及经验
适用于内部开发的大规模项目
工作量及成本随迭代次数增加
不同阶段的圆圈相互重叠:活动之间的交迭;
概念和表示方法的一致性:开发活动之间的无缝过渡;
向下的箭头:阶段内的求精。
为避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程(例如,快速原型模型或图中的中心垂线)作为总目标。
面向对象范型本身要求经常对开发活动进行迭代或求精。
来源
是由Rational公司的Booch、Jacobson、 Rumbaugh提出的软件过程模型,也称RUP(Rational Unified Process),或统一过程。
使用统一建模语言,采用用例驱动和架构有限的策略,使用迭代增量建造方法。
思想
价值
总结了多年商业化验证的六条最有效的软件开发经验,这些经验被称为“最佳实践”。
允许需求有变化
通过验证减少风险
每阶段有可执行版本
利用用例捕获功能
用例驱动设计与实现
现有的或新开发的构件定义体系结构的系统化方法
可视化建模UML语言