软件工程复习资料
软件工程-MOOC(平顶山学院)复习资料超全

1.造成大型软件开发困难的根本原因在于软件系统的复杂性2.扶持培养软件高手的学院不属于软件工程的内涵之一3.Ariane 5火箭发射失败的事例告诉我们(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制(3)软件重用必须重新进行系统论证和系统测试4.软件质量是在开发的过程中逐渐构建起来的5.瀑布模型是软件的基础模型6.大力扶持软件企业不属于解决软件危机的途径之一7.划分软件生存周期的阶段时所应遵循的基本原则是各阶段的任务尽可能相对独立8.软件会逐渐退化而不会磨损,其原因在于不断的变更使组件接口之间引起错误9.软件危机的主要原因是软件本身的特点及开发方法10.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化11.把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。
√12.在进行成本/效益分析的时候,需要考虑运行费用、开发成本、系统使用寿命、系统带来的经济效益13.可行性研究需要的时间长短和所研究系统的规模关系不大×14.数据流图和数据字典共同定义了新系统的逻辑模型√15.成本/效益分析的目的是帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定16.可行性研究的主要包括技术可行性、经济可行性和操作可行性17.分层数据流图是一种比较严格又易于理解的描述公式,它的顶层描述了系统的总貌18.结构化分析方法以数据流图、数据字典和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型19.获取用户需求的时候,定义数据流图中包含的元素使用数据字典20.不适于作为数据流图处理(加工)框名称的是工资支票数据21.外部实体是“用来明确系统和环境的界限”的22.把可行性演技各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案√23.数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成的。
软件工程复习资料

软件工程复习题一一、选择题,请从四个可选项中选择正确答案。
1.以下哪一项不是软件危机的表现形式()A.成本高B.生产率低C.技术发展快D.质量得不到保证2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。
()A.演化模型B.喷泉模型C.原型模型D.螺旋模型3.可行性研究的目的不包括()A.分析开发系统的必要性B.确定系统建模的方案C.分析系统风险D.确定是否值得开发系统4.可行性分析研究的费用大约是项目总经费的()。
A.2%B.8%C.20%D.50%5.在E-R 模型中,包含以下基本成分()。
A.数据、对象、实体B.控制、联系、对象C.实体、联系、属性D.实体、属性、联系6.软件需求分析产生一个重要文档是()。
A.软件维护说明书B.需求规格说明书C.可行性报告D.初步用户手册7.内聚程度较低的是()。
A.通信内聚B.过程内聚C.顺序内聚D.时间内聚8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()A.把软件划分成模块 B确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码9.UML 语言支持的建模方式不包括有()。
A.静态建模B.动态建模C.模块化建模D.功能建模10.以下哪一项不是面向对象的特征。
()A.多态性B.继承性C.封装性D.过程调用11.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了()A.软件危机B.软件工程C.程序设计革命D.结构化程序设计12.瀑布模型的关键不足在于()A.过于简单B.不能适应需求的动态变更C.过于灵活D.各个阶段需要进行评审13.可行性研究的四大要素是()。
A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平C.经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性14.经济可行性研究的主要内容包括()A.开发过程B.开发工具C.风险分析D. 效益分析15.在需求分析过程中,分析员要从用户那里解决的最重要的问题是()。
软件工程复习资料(4)

软件⼯程复习资料(4)1、下列哪⼀模型是软件的基础模型A.瀑布模型B.快速原型C.增量模型D.螺旋模型2、划分软件⽣存周期的阶段时所应遵循的基本原则是A.各阶段的任务尽可能相对独⽴B.各阶段的任务在时间上连续C.各阶段的任务尽可能相关性D.各阶段的任务在时间上相对独⽴3、下列哪个办法不属于解决软件危机的途径之⼀A.采⽤软件⼯程的解决途径B.研制新⼀代智能计算机C.采⽤⾯向对象的软件设计⽅法D.⼤⼒扶持软件企业4、下列哪个不属于软件⼯程的内涵之⼀A.扶持培养软件⾼⼿的学院B.开发既可靠⼜能有效运⾏的软件C.应⽤完善的科学与⼯程原理D.经济地开发软件5.造成⼤型软件开发困难的根本原因在于A.开发⼈员缺乏⾜够的开发经验B.项⽬开发进度不合理C.软件系统的复杂性D.对软件开发的资⾦投⼊不⾜6.软件会逐渐退化⽽不会磨损,其原因在于A.软件备件很难订购B.不断的变更使组件接⼝之间引起错误C.软件错误在经常使⽤之后会逐渐增加D.软件通常暴露在恶劣的环境下7.下⾯说法正确的是A.⼤多数软件系统是不容易修改的,除⾮它们在设计时考虑了变化D.购买⼤多数计算机系统所需的硬件⽐软件更昂贵8.Ariane 5⽕箭发射失败的事例告诉我们A.(2)软件后备系统可以通过复制⽣成B.(3)软件重⽤必须重新进⾏系统论证和系统测试C. 选项(1)和(3)D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制9.软件危机的主要原因是A.软件本⾝的特点及开发⽅法。
B.软件⼯具落后。
C.软件⽣产能⼒不⾜。
D.对软件的认识不够。
10.下⾯的描述正确的是A.软件质量是在开发过程中逐渐构建起来的。
B.软件质量是由产品的功能、性能、易⽤性等外在特性决定的。
C.运⾏正确的软件就是⾼质量的软件。
D.软件产品质量越⾼越好,最理想的情况是达到“零缺陷”。
11、可⾏性研究主要包括哪⼏项?A.技术可⾏性、经济可⾏性和操作可⾏性B.技术可⾏性、经济可⾏性和道德可⾏性C.技术可⾏性、法律可⾏性和操作可⾏性D.技术可⾏性、操作可⾏性和法律可⾏性12、成本/效益分析的⽬的是帮助()正确地作出是否投资于这项开发⼯程的决定。
研究生-现代软件工程复习资料

1.什么叫软件,特点是什么?软件就是指令集合+数据结构+文档软件特点:1)软件是设计开发的,不是传统意义上的制造。
2)不会“磨损”。
3)多数软件是定制的。
4)无形的。
软件工程包括:过程、方法、工具。
2.软件领域三大挑战是什么?异构性:开发平台、开发语言,系统,异构系统之间如何集成的问题。
交付:软件开发周期都比较短,所有软件企业必须具备快速响应和适应需求变更的能力。
可信度:软件运行逻辑是否正确,数据结果是否正确等。
3.软件工程过程(案例分析)1、瀑布模型(Waterfall Model)瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。
当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。
优点:1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
缺点:(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
适用:在开发时间内需求没有或很少变化;分析设计人员应对应用领域很熟悉;低风险项目;用户使用环境很稳定;用户除提出需求以外,很少参与开发工作。
2、演化(迭代)模型(原型+螺旋)根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。
软件工程复习知识点和例题

.1.软件危机的概念,内容,原因及消除的途径;概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
内容:软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护不断膨胀的已有软件。
具体地说,软件危机主要有以下一些典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;原因:在软件开发和维护的过程中存在这么多严重问题:一方面与软件本身的特点有关;另一方面也和软件开发与维护的方法不正确有关。
(1)软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
(2)软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随着程序的规模的增加而呈指数上升。
(3)目前相当多的软件专业人员对软件开发和维护还有不少糊涂概念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。
(4)对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。
2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。
基本原理:软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性3.软降工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。
软件工程方法学包含3个要素:方法、工具和过程。
软件工程复习资料参考

第一章软件危机概念:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
软件危机表现:1.对软件开发成本和进度的估计常常很不正确2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住4.软件常常是不可维护的5.软件通常没有适当的文档资料6.软件成本在计算机系统总成本中所占的比例逐年上升7.软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势软件危机原因:1.与软件本身的特点有关2.与软件开发与维护的方法不正确有关①软件开发尚未完全摆脱手工开发方式。
②软件成本相当昂贵,主要依靠大量复杂的、高强度的脑力劳动。
③软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
怎样消除软件危机:1 、彻底消除“软件就是程序”的错误观念。
2 、充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,不是个人独立的劳动。
3 、推广和使用在实践中总结出来的软件开发的成功技术和方法。
4 、开发和使用更好的软件工具软件工程概念:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。
...p5软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学也称为范型。
结构化范型和面向对象范型的要点:1采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务;2把软件生命周期划分为若干个阶段,按顺序完成每个阶段的任务;3每个阶段开始和结束都有严格的标准,对任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准;4每一个阶段结束之前都必须进行正式严格的技术审查和管理复审传统方法学的优点:分解任务,分工合作,降低整个软件开发工程的困难;采用科学的管理技术和良好的技术方法对每个阶段成果都进行严格的审查。
保证了软件的质量。
传统方法学的缺点:把数据和操作人为地分离成两个独立的部分,增加了软件开发与维护的难度。
《软件工程》复习题及答案
第一部分
一、选择题:
1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生
2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品
3.瀑布模型存在的问题是(B)。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
数据流图的基本符号的意思:
1.矩形表示数据的外部实体;
2.圆角的矩形表示变换数据的处理逻辑;
3.少右面的边矩形表示数据的存储;
4.箭头表示数据流。
8.什么是数据字典?其作用是什么?它有哪些条目?
答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
32.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的(C)上。
A.配置项B.程序C.基线D.过程
33.在软件设计中应该保持模块的独立性原则,( A )反映模块独立性。
A.耦合和内聚 B.数据和模块 C. 模块内部的凝聚力 D.模块之间的耦合
二、简答题
1.什么是软件工程?软件工程的目标是什么?
A、1%B、20%C、8%D、50%
13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》
B.《中华人民共和国计算机信息系统安全保护条例》
C.《中华人民共和国著作权法》
D.《计算机病毒防治管理办法》
软件工程复习资料整理
《软件工程》试题参考答案(1)卷一、单向选择题(四选一、每小题3分,共18分)1、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
2、当模块中包含复杂的条件组合,只有( A)能够清晰地表达出各种动作之间的对应关系。
0802A.判定表和判定树C.流程图3、以下不属于逻辑覆盖的是(D)。
1402A.语句覆盖C.条件覆盖B.盒图D 关系图B.判定覆盖D.基本路径4、为适应软件运行环境的变化而修改软件的活动称为( B)。
1501A.纠错性维护B.适应性维护C.改善性维护 D 预防性维护二、填空题(每空2分,共18分)1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。
01012. 高级语言:独立于机器,面向过程或面向(对象)01013. 软件项目管理的范围主要集中于 3 个P 上,即:People 人员、Problem 问题和(过程)。
02014. 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。
15045. 在公式V(G) = E – N + 2 中: E 为程序图G 中边的总数;N 为程序图中结点的总数。
V(G)又称为图 G 的环形(复杂度)0204。
6. 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。
03037. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。
12048. 文档是一种数据媒体和其上所记录的(数据)。
0101三、判断题(每小题2分,共24分,错误打X、正确打√)1. 用户对软件需求的描述不准确,往往是产生软件危机的原因之一。
(√)01022. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)02063. 目前的绝大多数软件都不适合于快速原型技术。
软件工程期末复习资料 华南农业大学版
第二章 系统工程
1.基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的集合或排列。 组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程 2.系统工程的任务: (1)识别用户的要求(2)系统建模和模拟:包括硬件系统模型、软件系统模型、 人机接口模型、数据模型; (3)成本估算及进度安排(4)可行性分析(5)生成系统规格说明 3.可行性分析考虑:成本、效益、货币的时间价值、投资回收期析
第四章 设计工程
1.软件设计开始于软件需求的分析和规约之后,位于软件工程过程中的技术核心位置,是把需求转化 为软件系统的最重要环节 2.软件设计是把软件需求变换成软件表示的过程,它主要包含两个阶段:软件体系结构设计阶段和部 件级设计,前者也被称为概要设计,后者被称为详细设计。软件体系结构设计将软件需求转化为数据结构 和软件的系统结构。部件级设计将软件体系结构性元素转化为软件部件的过程性描述,得到软件详细的数 据结构和算法。 3.软件设计原则:抽象、逐步求精、模块化、信息隐藏 4.模块的独立性可以由两项指标来衡量:内聚度与耦合度。内聚度衡量一个模块内部各个元素彼此结 合的紧密程度,耦合度衡量不同模块之间相互依赖的紧密程度 5.内聚:是一个模块内部各个元素彼此结合的紧密程度的度量。内聚可以分为以下 7 中类型: 1)巧合内聚(偶然内聚) :将几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的 模块称为巧合内聚模块 2)逻辑内聚 :指完成一组逻辑相关任务的模块,调用该模块时,由传送给模块的控制型参数来确定 该模块应执行哪一种功能 3)时间内聚:指一个模块中的所有任务必须在同一时间段内执行。例如初始化模块和终止模块 4)过程内聚 :指一个模块完成多个任务,这些任务必须按指定的过程(procedural)执行 5)通信内聚 :指一个模块内所有处理元素都集中在某个数据结构的一块区域中 6)顺序内聚:指一个模块完成多个功能,这些功能又必须顺序执行 7)功能内聚 :指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割的 6.耦合:是模块之间的相对独立性的度量。耦合取决于各个模块之间接口的复杂程度、调用模块的方 式以及通过接口的信息类型。耦合方式有其中类型: 1)内容耦合 :如果一个模块直接访问另一个模块的内部数据;或者一个模块不通过正常入口转到另
软件工程导论 复习资料
软件工程导论复习资料软件工程导论是计算机科学与技术专业的一门重要课程,它主要介绍了软件工程的基本概念和原理,帮助学生了解软件开发过程中的关键问题和解决方法。
本文将为大家提供一份软件工程导论的复习资料,希望能够帮助同学们更好地复习和掌握这门课程。
1. 软件工程概述1.1 软件工程定义软件工程是一门关于开发和维护大规模软件的学科,它涉及到软件开发的各个阶段和过程。
软件工程的目标是通过系统化和可量化的方法来开发、维护和管理软件,以提高软件的质量、效率和可靠性。
1.2 软件生命周期软件生命周期是软件开发过程中的一个重要概念,它包括需求分析、设计、编码、测试、部署和维护等阶段。
了解软件生命周期的各个阶段和活动,对于理解软件开发过程的全貌和整体把控至关重要。
1.3 软件工程方法学软件工程方法学是用于指导软件开发过程的一种方法体系,包括传统的瀑布模型、敏捷开发方法、迭代开发方法等。
通过学习不同的软件工程方法学,可以使软件开发过程更加有序、高效。
2. 需求工程2.1 需求定义和分类需求工程是软件开发过程中的第一个阶段,它主要涉及到需求的定义、分析和规范化等活动。
了解需求的定义和分类能够帮助我们更好地理解用户的需求,从而制定出更准确的软件需求规格说明书。
2.2 需求获取和分析需求获取是收集用户需求信息的过程,需求分析是将这些需求信息进行过滤、分类和分析的过程。
在需求获取和分析阶段,我们需要使用一些常见的工具和技术,例如面谈、问卷调查、用例图等。
2.3 需求规格说明书需求规格说明书是对系统需求进行详细描述和规范的文档,它包括功能需求、非功能需求、性能需求等内容。
编写清晰、准确的需求规格说明书是软件开发过程中的关键一步,它对于后续的设计和编码工作具有重要的指导作用。
3. 软件设计3.1 软件设计基础软件设计是将需求转化为软件结构的过程,它包括模块化设计、面向对象设计、数据结构设计等。
掌握软件设计的基础知识,能够帮助我们合理划分系统的功能模块,提高软件的可维护性和可扩展性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程总复习第一章软件工程介绍1. 软开发人员面临的问题。
1) 为什么软件需要如此长的开发时间?2) 为什么开发成本高居不下?3) 为什么在将软件交付顾客使用之前,我们无法找到所有的错误?4) 为什么维护已有的程序要花费高昂的时间和人力代价?5) 为什么软件开发和维护的过程难以度量?2. 软件的定义:软件是指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。
软件和硬件具有完全不同的特征:1) 软件是设计开发的,而不是传统意义上生产直走的。
2) 软件不会“磨损” 。
3) 虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。
3. 软件工程面临的持续挑战。
1) 系统软件:一套服务于其他程序的程序。
2) 应用软件:一些可以满足特定业务需要的独立应用程序。
3) 工程/ 科学软件:带着“数字处理”算法的标签。
4) 嵌入式软件:存在于某个产品或者系统中,而哭实现和控制面向最终使用者和系统本身的特性和功能。
5) 产品线软件:为多个不同用户的使用提供特定功能,关注有限的特点市场。
6) Web应用软件:Web应用7) 人工智能软件:利用非数值算法解决计算和直接分析无法解决的复杂问题。
4. 软件工程新的挑战。
1) 遍在计算2 )网络资源3 )开源软件4 )“新经济”5. 统一软件演化理论之潜在规律。
1) 持续变化规律2 )复杂性增长规律3 )自我调控规律4 )组织稳定性守恒规律4) 保证通晓性规律6 )持续增长规律7 )质量衰减规律8 )反馈系统规律第二章过程综述1. 软件工程:一种层次化技术。
(英文出题) 定义:软件工程是( 1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。
(2)在( 1)中所述方法的研究。
Software Engineering:(1)The application of a systematic,disciplined,quantifiable approach to the development,operation,and maintenance of software;that is,the application of engineering to software.(2)The study of approaches as in(1).工具软件工程的根基在于质量关注点( quality focus ),基础是过程(process )层,方法 (method)层为建造软件提供技术上的解决方法,工具(tool )为过程和方法提供自动化或方法半自动化的支持。
过程The bedrock that supports software engineering is a quality focus;The foundation for software质量关注点软件工程层次图engineering is the process layer;Software engineering methods provide the technical ” how to ' s ” for building software;Sortware engineering tools provide automated or semiautomated support foe the process and the methods.2. 通用过程框架的五个最基本的过程框架活动。
1)沟通:这个框架活动包括了与客户之间大量的交流和写作,还包括需求获取以及其他相关活动。
2)策划:指为后续的软件工程工作制定计划。
它描述了需要执行的技术任务、可能的风险、资源需求、工作产品和现实需求。
3)建模:它包括创建模型和设计两方面。
创建模型有助于客户和开发人员更好的理解软件需求;设计可以实现需求。
4)构件:它包括编码和测试。
5)部署:软件交付到用户,用户对其进行评测并给出反馈意见。
通用的过程框架中,建模活动包括分析(analysis )和设计(design )两个动作。
分析最终产生需求分析模型,设计最终产生设计模型。
3. 软件工程的通用框架由很多普适性活动来实现,典型的普适性活动包括。
1)软件项目跟踪和控制:由项目组根据计划来评估项目进度,并且采取必要的措施保证项目按进度计划进行。
2)风险管理:对可能影响项目成果或者产品质量的风险进行评估。
3)软件质量保证:确定和执行可用以保证软件质量的活动。
4)正式技术评审:评估软件工程产品,尽量在错误传播到下一个动作或活动之前发现并清除错误。
5)测量:定义和收集过程、项目和产品的度量,以帮助团队在发布软件的时候满足客户需求。
同时,测量还可与其他框架和普适性活动协同使用。
6)软件配置管理:管理整个软件过程中变更所带来的影响。
7)可复用管理:定义产品复用的标准,并且建立构件复用机制。
8)工作产品的准备和产生:包括了创建产品所必须的活动。
如建模、文档、日志、表格和列表等。
4. CMMI (能力成熟度模型集成)分阶段CMMI和连续的模型定义了同样的过程域、目标和实践。
主要区别在于,阶段性模型定义了5个成熟度等级,而不是五个能力等级。
第三章过程模型1•惯例过程模型提供了一个过程框架,由对应于软件工程动作的明确的任务集组成。
我们称为“惯例”是因为,它规定了一套过程元素一一框架活动、软件工程动作、任务、工作产品、质量保证以及每个项目的变更控制机制。
每个过程模型还定义了工作流一一也就是说,过程元素之间互相关联的方式。
通用的过程框架包括的活动:沟通、策划、建模、构建、部署。
2. 瀑布模型,又称为经典生命周期,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。
瀑布模型包括的问题:1)实际的项目很少遵守瀑布模型提出的顺序。
虽然现行模型可以加入迭代,但是它是用间接的方式实现的,结果是,随着项目的推进,变更可能带来混乱。
2)客户通常难以清除的描述所有的需求。
而瀑布模型却需要客户明确需求,因此很难适应在许多项目开始阶段必然存在的不确定性。
3)客户必须要有耐心,因为只有在项目接近尾声的时候,他们才能得到可执行的程序。
对于系统中存在的重在缺陷,如果在可执行程序评审之前没有被发现,将可能造成惨重损失。
3. 增量过程模型。
增量模型以迭代的方式运用瀑布模型,随着时间的推移,增量模型在每个阶段运用线性序列。
每个线性序列生产出一个软件的可交付增量。
快速应用程序开发(Rapid Application Develepment,RAD是一种侧重于短暂的开发周期的增量软件过程模型。
4•演化过程模型。
原型开发可以作为一个独立的过程模型,帮助软件工程师和客户更好的理解究竟需要做什么。
原型开发模型开始于沟通,在原型系统不断调整以满足用户需求的过程中,采用迭代技术,同时也使开发者逐步清除用户的需求。
快速策划建模快速设计构建原型部署交付品及反馈原型开发模型开发者为了使一个原型快速运行起来,往往在实际过程中采用.折衰的手段。
5 •螺旋模型。
螺旋模型的特点:一是采用循环的方式逐步加深系统定义和现实的深度,同时降低风险。
本质上,当螺旋模型进行下去时,它将永远保持可操作性,知道软件产品的生命周期结束。
6. 基于构件的开发。
基于构件开发模型具有许多螺旋模型的特点,它本质上是演化模型,需要以迭代方式构建软件。
不同之处在于,基于构件开发模型采用预先打包的软件构件开发程序。
基于构件开发模型由以下步骤组成:1)对于该问题领域的基于构件的可用产品进行研究和评估。
2)考虑构件集成的问题。
3)设计软件构架以容纳这些构件4)将构件集成到架构中5)进行充分的测试以保证功能正常。
各种模型的优缺点比较模型优点缺点瀑布模型文档驱动系统可能不满足用户需求快速原形关注满足客户需求可能导致系统设计差,效率低,难以维护增量模型开发早期反馈及时需要开放式体系结构,可易于维护导致设计差、效率低7.统一过程」(Unifued Process,UF)统一过程的阶段:1)起始阶段:包括客户沟通和策划活动。
2)细化阶段:包括用户沟通和通用过程模型的建模活动。
3)构件阶段:与通用软件过程中的构建活动相同。
4)转换阶段:包括同哟欧诺个构件活动的后期阶段以及第一部分通用部署活动。
5)生产阶段:与通用过程的部署活动一致。
细化第六章需求工程1. 连接设计和构造的桥梁。
(英文出题)需求工程和其他软件工程活动类似,必须适应过程、项目、产品和工作人员的要求。
从软件过程的角度来看,需求工程(Requirement Engineering ,R日是一个软件工程动作,开始于沟通并持续到建模。
Requirement engineering,like all other software engineering activities,must beadapted to the meeds of the process,the project,the product,a nd the people doing the work.Form a software process perspective,requirements engineering isa software engineering action that begins during the communication activity and comtinues into the modeli ng activity.需求工程在设计和构造之间建立起联系的桥梁。
Requireme nts engineering builds abridge to design and con structio ng. 不管起点在哪里,横跨这个桥梁将把我们带到项目之上更高的层次:由软件团队检查将要进行得软件工作的内容;必须提交设计和构建的特定要求;完成知道工作顺序的优先级定义;将深切影响随后设计的信息、功能和行为。
KEY Piont :需求工程为设计和构造奠定了坚实的基础。
如果没有需求工程,那么实现的软件很有可过程起始软件增量c r men生产能无法满足客户的需求。
Requirements engineering establishes a solid base for design and construction. Without it , the resulting software has a high probobility of not meeting customer ' s needs.2.需求工程过程通过执行七个不同的活动来完成:起始、导出、精华、协商、规格说明、确认和管理。