没有合适的资源?快使用搜索试试~ 我知道了~
首页860软件工程考纲复习.pdf
860软件工程考纲复习.pdf
需积分: 49 677 浏览量
更新于2023-05-26
评论 6
收藏 2MB PDF 举报
成都电子科技大学,软件工程专业研究生,860考纲复习文档。考860 的同学的必备知识要点。重点介绍了计算机软件的各种知识要点
资源详情
资源评论
资源推荐

860 软件工程考纲复习
1. 基本概念
重点是软件的特性、软件工程学的研究范畴,以及学习软件工程的意义。掌握软件的概念、
特点和软件工程的基本特征;理解为什么学习软件工程、如何学习。
1) 软件的概念和特点
计算机软件是有专业人员开发并长期维护的软件产品,软件是(1)指令的集合,通过
执行这些指令可以满足预期的特性、功能和性能需求(2)数据结构,使得程序可以合理利
用信息(3)软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序的操作和使用。
软件 7 大类:系统、应用、工程/科学、嵌入式、产品线、web/移动 app、人工智能
2) 软件危机的概念和产生的原因
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致
软件开发与维护过程中出现一系列严重问题的现象。
软件危机的表现形式
1)对软件开发成本和进度的估计常常很不准确;
2)用户对“已完成”的软件系统不满意的现象经常发生;
3)软件产品的质量往往是靠不住的;
4)软件常常是不可维护的;
5)软件通常没有适当的文档资料;
6)软件成本在计算机系统总成本中所占的比例逐年上升;
7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及及深入的趋势。
软件危机产生的原因
1、软件是逻辑部件:试制阶段难衡量;开发质量较难评价,开发过程管理和控制
较难;运行过程才能暴露没有检测出来的事故,相当于修改设计,软件维护困难;
2、软件规模庞大,有技术问题,也有管理方法问题。
3、早期开发的个体:忽视需求分析;认为软件开发写程序,文档资料不齐全,忽视
同用户的交流。
4、对前期工作不能忽视,做好软件定义时期的工作,这是降低成本,提高软件质
量的关键。
5、严重性:在软件开发的不同阶段修改付出代价(后期是前期的 2-3 个数量级),
软件维护是极端艰巨复杂的工作,占 55%~70%
3) 软件工程的定义、三要素和发展过程
软件工程是:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维
护,即将工程化的方法应用于软件(2)对(1)中所述的方法的研究。
三要素为过程(基础)、工具(提供支持)、方法
软件工程的根基在于质量关注点
软件过程是工作产品构建是所执行的一系列活动、动作和任务的集合。活动主要实现宽
泛的目标,动作包含了主要的工作产品生产过程中的一系列任务,任务关注小而明确的目标。
软件过程框架:沟通、策划、建模、构建、部署 (P12)
软件过程框架活动由普适性活动来补充,典型的普适性活动有:软件项目跟踪与控制、
风险管理、软件质量保证、技术评审、测试、软件配置管理、可复用管理、工作产品的准备
与生产

2. 过程模型
重点是各种实用的软件过程模型,以及不同过程模型的特点比较。掌握几种典型模型的
优缺点和能依据项目特征选择使用不同的模型;理解为什么有不同的模型、不同模型的特征。
1) 软件生命周期概念、软件过程概念、能力成熟度模型 CMM 概念
软件生命周期(Software Life Cycle):软件产品或软件系统从设计、投入使用到被淘汰的
全过程。
软件过程定义了软件生产的一系列活动,这些活动贯穿于软件开发的整个过程。
软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全
过程,明确规定要完成的主要活动、任务和开发策略。
成熟度模型标准(CMM):
1 初始级 有能力的人和个人英雄主义
工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开
发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面
目全非。
2 可重复级 基本项目管理
管理制度化,建立了基本的管理制度和规程,管理工作有章可循。初步实现标准化,开
发工作比较好地按标准实施。变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管
理基于过去的实践经验,具有重复以前成功项目的环境和条件。
3 已定义级 过程标准化
开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制
度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责
均有共同的理解。
4 量化管理级 量化管理
产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立
过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实
现及时纠正。
5 优化级 持续的过程改进
可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加
以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法
2) 常见的几种软件过程模型:瀑布、增量、原型、螺旋、喷泉等,比较各自优缺点
1.瀑布模型
规定了各项软件工程活动,以及它们自上而下,相互衔接的固定次序,如同瀑布流
水,逐级下落。是一种使用广泛,以文档为驱动的模型。
瀑布模型主要问题
线性过程太理想化
各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了
开发的风险;
早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
瀑布模型适用于系统需求明确、技术成熟、工程管理较严格的场合。
2.增量模型
增量模型结合了原型模型的基本要素和迭代的特征,采用了基于时间的线性序列,每个
确定线性序列都会输出该软件的一个“增量”。
增量模型的优点

增量包概念的引入,以及它不需要提供完整的需求。只要有一个增量包出现,开发就可
以进行。
在项目的初始阶段不需要投入太多的人力资源。
增量可以有效地管理技术风险。
增量模型的缺点
每个增量必须提供一些系统功能,这使得开发者很难根据客户需求给出大小适合的增
量。
3.原型模型
使用情况:客户定义一个总体目标集,但是他们并不清楚系统的具体输入输出;或开发
者不确定算法的效率、软件与操作系统是否兼容以及客户与计算机交互的方式。此时,原型
法是很好的选择。
缺点: 1).设计者在质量和原型间有所折中
2).客户意识不到一些质量问题
4.螺旋模型
螺旋模型强调风险管理,因此该模型适用于大型系统的开发。
螺旋模型的缺点
如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;
使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。
适应场合
支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向
对象等多种软件开发方法,是一种具有广阔前景的模型。
5.喷泉模型
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软
件开发过程。
喷泉模型的优点
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才
开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是
可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
喷泉模型的缺点
由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员,因此不利
于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随
时加入各种信息、需求与资料的情况。
补充:
参考原则:
1. 在前期需求明确的情况下,尽量采用瀑布模型或改进的瀑布模型。
2. 在用户无系统使用经验,需求分析人员技能不足情况下一定要借助原型。
3. 在不确定因素很多,很多东西前面无法计划的情况下尽量采用增量迭代和螺旋模型。
4. 在需求不稳定的情况下尽量采用增量迭代模型。
5. 在资金和成本无法一次到位的情况下可采用增量模型,软件产品多个版本进行发布。
6. 对于完成多个独立功能开发可以在需求分析阶段就进行功能并行,但每个功能内部
都应该遵循瀑布模型。
7. 对于全新系统的开发必须在总体设计完成后再开始增量或并行。
8. 对于编码人员经验较少的情况下建议不要采用敏捷或迭代等生命周期模型。

9. 增量、迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和出口
原则。
3. 需求分析
重点是需求分析的一般步骤、数据流图、用例图、活动图、需求规格说明文档的编制。掌握
结构化分析模型的导出、数据流图/用例图/活动图的基本画法和需求规格说明文档的编制;
理解需求分析的过程、主要步骤。
1) 需求分析的概念
需求分析的定义:确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系
统发展的前景。换句话说需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开
发系统中各个有意义方面的陈述的一个集合。
需求分析的任务
建立分析模型、编写需求说明
需求分析的步骤
需求获取、需求提炼、需求描述(撰写需求规格说明书)、需求验证
需求工程包括 7 项明确的任务:起始、获取、细化、协商、规格说明、确认和管理
2) 需求分析的过程:需求确认与需求变更
需求确认:需求获取→需求提炼→需求描述→需求验证
需求变更:需求变更
3) 需求确认的步骤:需求获取→需求提炼→需求描述→需求验证
第一步:需求获取
定义:软件需求获取指的是软件需求的来源以及软件工程师收集这些软件需求的方
法。它也称为需求抓取、需求发现和需求获得。
需求的类型:(1)功能性需求:描述系统应该做什么,即为用户和其它系统完成
的功能、提供的服务。(2)非功能需求:必须遵循的标准,外部界面的细节,实现的
约束条件,质量属性等等。非功能需求限定了选择解决问题方案的范围,如运行平台、
实现技术、编程语言和工具等。
需求获取技术:采访、设定情景(用例)、原型、会议、观察商业过程和工作流
需求获取面临的挑战:客户说不清楚需求、需求易变性、问题的复杂性和对问题空
间理解的不完备性与不一致性
需求诱导十原则:倾听、有准备的沟通、需要有人推动、最好当面沟通、记录所有
决定、保持通力协作、聚焦并协调话题、采用图形表示、继续前进原则、谈判双赢原则
第二步:需求提炼(需求分析)
定义:对应用问题及环境的理解和分析,为问题涉及的信息、功能及系统行为建立
模型。将用户需求精确化、完全化,最终形成需求规格说明书。
需求分析的核心在于建立分析模型。
需求分析采用多种形式描述需求,通过建立需求的多种视图,揭示出一些更深的问
题。
需求分析还包括与客户的交流以澄清某些易混淆的问题,并明确哪些需求更为重
要,其目的是确保所有风险承担者尽早地对项目达成共识并对将来的产品有个相同而清
晰的认识。

结构化分析模型:其基本思想是用系统工程的思想和工程化的方法,根据用户至上
的原则,自始自终按照结构化、模块化,自顶向下地对系统进行分析与设计。
面向对象分析模型:由 5 个层次(主题层、对象类层、结构层、属性层和服务层)
和 5 个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。
分析模型描述工具
数据流图、数据字典和加工规约
控制流图、控制规约和状态变迁图
E-R 图
用例图,对象-关系图,对象-行为图
第三步:需求规格说明书
定义:软件需求规格说明书(SRS)------软件系统的需求规格说明,是对待开发系
统的行为的完整描述。它包含了功能性需求和非功能性需求。
需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书。
需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一
个共同的理解,使之成为整个开发工作的基础。
软件需求规格说明的原则:
从现实中分离功能,即描述要“做什么”而不是“怎样实现”
要求使用面向处理的规格说明语言(或称系统定义语言)
如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明
的描述之中
规格说明必须包括系统运行环境
规格说明必须是一个认识模型
规格说明必须是可操作的
规格说明必须容许不完备性并允许扩充
规格说明必须局部化和松散耦合
软件需求规格说明的结构:
(1)引言
a. 需求文档的目的
b. 文档约定
c. 预期的读者和阅读建议
d. 产品范围
e. 参考文献
(2)综合描述
a. 产品前景
b. 产品功能与优先级
c. 用户特征
d. 运行环境
e. 设计与实现上的限制
f. 假设和依赖性
剩余38页未读,继续阅读














Hunter_2020
- 粉丝: 23
- 资源: 3
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0