现代软件工程(复习1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件的定义:(1)指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;(2)数据结构,它使得程序可以充分利用信息;(3)描述程序操作和使用的文档
遗留软件的定义:年代久远的过时的软件。
软件如其他工程原则制造的制品的区别:软件传递了我们这个时代最重要的产品——信息。
软件特征和硬件特征的区别:(1)软件是设计开发的,而不是传统意义上生产制造的。(2)软件不会“磨损”。
(3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。
为什么说软件不会随着时间而演化的说法是错误的:不管其应用领域、软件规模或者复杂性如何不同,计算机软件都将随着时间的推移不断演化。软件维护推动了软件演化,它通常是由以下情况引发的:程序纠错,调整软件以适应新的环境,满足用户新特性和功能的需求,以及对软件实施再工程以便在现代应用中发挥作用。
软件生命周期:软件的产生知道报废的生命周期,包括问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级和废弃。
软件工程的四个层次及之间的关系:工具、方法、过程和质量关注点。软件工程的根基在于质量关注点;软件工程的基础是过程层;软件工程方法为构造软件提供技术上的解决方法;软件工程工具为过程和方法提供自动或半自动化的支持。
软件工程的主要目标是什么?基本目标是什么?
软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。
软件工程的基本目标是:优质、高产。
软件构建与软件部署的区别:软件构建是程序员对软件进行编码和测试,是基于程序员的;软件部署是用户对软件成品的使用和反馈,是基于客户的。
软件过程的定义:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)所述方法的研究。
软件开发的原型模型的各个阶段:沟通、快速策划、建模快速设计、构建原型和部署交付品及反馈;循环执行以上步骤。
随着时间的推移,为什么软件需要不断演化?
(1)环境运行环境的变化(2)用户需求的变化(3)用户业务需求的变化
软件工程中基于构件的软件过程模型的主要优势:基于构件开发模型能够使软件复用,软件复用为软件工程师带来极大收益。
在目前环境下,为什么说增量过程模型被认为是最佳的软件开发方法:早期的增量可以有少量的人员实现;增量可以规避技术风险。
------------------------------------------------------------------------------------------------------------------------------------------------------------
软件工程的通用框架以及框架活动:沟通、策划、建模、构建和部署;其中建模包括创建模型和设计,构建包括编码和测试。
惯例模型:规定了一套过程元素(框架活动、软件工程动作、任务、工作产品、质量保证以及每个项目的变更控制机制)
①瀑布模型
定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。
瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法;
b.严格地规定了每个阶段必须提交的文档;
c.每个阶段结束前必须正式进行严格的技术审查和管理复审。
瀑布模型的主要缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。
开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。
②快速原型模型
定义:所谓“快速原型”,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件
产品所能完成的功能的子集。原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
快速原型模型的主要优点是:A.使用这种软件过程开发出的软件产品通常能满足用户的真实需求;B. 软件产品的开发过程基本上是线性顺序过程。
③增量模型
定义:增量模型也称为渐增模型
增量模型的主要优点:A.能在较短时间内向用户提交可完成部分工作的产品;
B.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户组织带来的冲击。
④螺旋模型
定义:螺旋模型的基本思想是,使用原型及其他方法尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。
螺旋模型所描述的软件过程主要适用于内部开发的大型软件项目。
使用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验。
螺旋模型主要有下述优点:
A.有利于已有软件的重用;
B.有助于把软件质量作为软件开发的一个重要目标;
C.减少了过多测试或测试不足所带来的风险;
D.软件维护与软件开发没有本质区别。
⑤喷泉模型
定义:迭代是软件开发过程中普遍存在的一种内在属性。在面向对象范型中,软件开发过程各阶段之间的迭代或同一阶段内各个工作步骤之间的迭代,比在结构化范型中更常见。
喷泉模型,是典型的面向对象生命周期模型,它充分体现了面向对象软件开发过程迭代和平滑过渡的特性。
叙述UP的5个阶段:起始:包括客户沟通和策划活动;细化:包括用户沟通和通用过程模型的建模活动;构建:包括编码和测试;转换:包括通用构建活动的后期阶段以及第一部分通用部署活动;生产:与通用过程的部署活动一致。
------------------------------------------------------------------------------------------------------------------------------------------------------------ 敏捷宣言:(1)个体和交互胜过过程和工具(2)可工作软件胜过宽泛的文档(3)客户合作胜过合同谈判(4)响应变化胜过遵循计划
敏捷过程的三个假设(及敏捷过程):提前预测哪些需求是稳定的,哪些需求容易变更是很困难的,同样预测项目经行中客户的优先级的变更也是困难的2)对很多软件来说,设计和构建是交错进行的3)从制定计划的角度看,分析,设计,构建和测试并不向我们设想中那样容易预测
敏捷原则(12项)
敏捷团队的特点(成员及团队特点)
XP 五要素
掌握XP的阶段:使用面向对象方法作为推荐的开发范型。包括策划、设计、编码和测试
敏捷的实用技术,如重构、结对、敏捷建模等
重构的定义:在编码完成之后改进代码设计。
IXP的6个实践
主要的敏捷模型:XP,ASD,DSDM,SCRUM,Crystal,FDD,LSD
敏捷建模的特点
敏捷统一过程(AUP):建模,实现,测试,部署,配置管理及项目管理,环境管理
------------------------------------------------------------------------------------------------------------------------------------------------------------ 需求工程的7个活动:起始,导出,精化,协商,规格说明,确认,需求管理
需求工程的目的和任务:理解客户需求,分析要求,评估可行性,协商合理的方案,无歧义地详细说明方案,确认规格说明,管理需求以至将这些需求转化为可运行系统。
需求模型的元素:基于场景的元素,基于类的元素,行为元素,面向数据流的元素
需求模型的3个主要目标:
UML活动图,ERD(ER图,实体关系图),CRC模型,DFD图