软件工程导论朱少民版复习资料.docx
- 文档编号:10004450
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:15
- 大小:150.95KB
软件工程导论朱少民版复习资料.docx
《软件工程导论朱少民版复习资料.docx》由会员分享,可在线阅读,更多相关《软件工程导论朱少民版复习资料.docx(15页珍藏版)》请在冰豆网上搜索。
软件工程导论朱少民版复习资料
第一章:
软件工程概述
1.软件及软件开发的特点是什么?
(ppt)
●抽象性:
逻辑实体,而非具体的物理实体
●无明显制造过程
●无磨损性:
不会老化
●对硬件的依赖性:
开发和运行受计算机系统限制
●软件的手工开发方式
●本身的复杂性:
实际问题的复杂性,程序逻辑结构的复杂性
●高成本
●相当多的软件工作涉及到社会因素
2.软件危机是什么?
(P1)软件危机有哪些表现?
(P2)产生软件危机的主要原因是什么?
(Ppt)
●软件危机定义:
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
●软件危机的本质是:
软件开发的高成本,低质量,低效率
●软件危机的两个主要问题:
如何开发软件,以满足对软件日益增长的需求;
如何维护数量不断膨胀的已有软件。
●软件危机的典型表现:
(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
●产生软件危机的主要原因:
⏹客观原因:
软件本身特点决定的。
逻辑部件、规模庞大
软件是逻辑产品、产品的需求描述的不完整、不准确,开发人员对它的理解上有偏差等等;
⏹主观原因:
不正确的开发方法:
缺乏高质量的人才;经验、合作、交流、管理;缺乏一种有效的、系统的、科学的原理、原则、方法和工具来指导软件的开发和维护;
A忽视需求分析
B错误认为:
软件开发=程序编写
C轻视软件维护
3.软件工程的定义(P5)
软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程。
4.软件包含些什么?
程序、数据、文档(P5)
5.软件工程的三要素:
过程、方法、工具(P9)
6.什么是软件的生命周期?
(ppt)软件的生命周期分哪几个时期?
哪几个阶段?
每一个阶段的任务和阶段性成果分别是什么?
(P11~14三个时期、八个阶段)(Ppt)
●软件生命周期是指从提出软件产品的开发开始,经过开发、使用和维护,及至该软件产品被最终淘汰的全过程。
包括以下三个时期:
软件定义:
确定软件系统的需求
软件开发:
软件开发人员确定如何完成并实现软件系统
软件使用与维护:
软件提交给用户之后,还需经历使用、维护及至最终退役的过程
●八个阶段阶段性产品
1问题定义经过客户确认的关于问题性质、工程目标和工程规模的报告
2可行性研究可行性论证报告、初步的项目开发计划
3需求分析软件需求规格说明书
4总体设计概要设计规格说明书,数据库或数据结构说明书,组装测试计划
5详细设计详细设计规格说明书
6编码和单元测试源程序代码
7综合测试满足概要设计要求、可运行的系统源程序,系统集成测试报告
可提供给用户使用的软件产品(文档如用户手册,操作手册;源程序代码,其它文档)
测试计划、详细测试方案、实际测试结果
8软件维护
7.软件工程学研究的内容包括哪些?
(软件开发技术和软件工程管理ppt)软件工程的目标有哪些?
⏹付出较低的开发成本
⏹达到要求的软件功能
⏹取得较好的软件性能
⏹开发的软件易于移植
⏹需要较低的维护费用
⏹能按时完成开发工作,及时交付使用
8.软件工程的七条基本原理是什么?
(P7~P9)
⏹用分阶段的生命周期计划严格管理
⏹坚持进行阶段评审
⏹实行严格的产品控制
⏹采用现代程序设计技术
⏹结果应能清楚的审查
⏹开发小组的人员应该少而精
⏹承认不断改进软件工程实践的必要性
9.瀑布模型和快速原型模型的思想(P15~P17)。
●瀑布模型思想
⏹软件开发过程与软件生命周期是一致的(推迟实现的观点)
⏹相邻二阶段之间存在线性因果关系,上一个阶段的输出是下一个阶段的输入(阶段间具有顺序性和依赖性)
⏹为了保障软件开发活动的正确性,在每一个活动完成之前,必须对该阶段的阶段性产品进行评审,正确之后才能进入下一阶段的工作。
(质量保证的观点)
●快速原型模型的思想
软件开发人员首先根据用户提出的初步需求,快速地开发出一个原型,它向用户展示了待开发软件系统的全部或部分功能、行为和性能。
在征求用户对原型的意见之后,进一步修改、完善和确认软件系统的需求;
10.CASE的定义(PPt)
CASE(计算机辅助软件工程Computer-AidedSoftwareEngineering):
在软件工程活动中,软件开发人员按照软件工程的方法和原则,借助于计算机及其软件工具的帮助来开发、维护和管理软件产品的过程。
第二章:
可行性研究
1.可行性研究的任务和目的(P25)
在明确了所要研究问题定义之后,分析员应该在明确目标系统所有限制和约束的前提下,去确定该问题是否值得去解决。
⏹可行性研究的任务:
Ø进行概要的分析研究,初步确定项目的规模,目标,约束和限制。
Ø进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。
Ø从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法。
Ø对每种解决方法都要研究它的可行性。
⏹可行性研究的根本任务:
对以后的行动方案提出建议
2.可行性研究要考虑的三个方面:
技术、操作、经济可行性(P25)
3.数据流图符号的意义(P30~31)。
会看会画数据流图(P32~P37)。
⏹数据流图是一种描述数据流、变换等对象的图形工具,系统接受输入的数据,经过一系列的变换,最后输出结果数据;
⏹数据流图用于描绘系统的逻辑模型,它只需考虑系统必须完成的基本逻辑功能,而不考虑如何实现这些功能。
⏹数据流图有四种成分:
源点/终点、处理、数据存储、数据流
4.数据字典的内容和定义的方法(P37~P38)
⏹数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。
数据字典与数据流图共同构成系统的逻辑模型。
⏹数据字典以一种准确、无二义的方式对数据流图中的各个数据流、外部实体、数据存储作进一步的解释和说明。
⏹包括四类元素的定义:
Ø数据流
Ø数据流分量(数据元素)
Ø数据存储
Ø处理
5.成本效益分析的方法(P41~P42)
第三章:
需求分析
1.需求分析应该建立的三种模型是什么?
分别用什么图形工具来描绘?
(P46、P52)
⏹数据模型:
描述问题信息域——实体-联系图
⏹功能模型:
定义软件功能——数据流图
⏹行为模型:
描述软件行为——状态转换图
2.需求分析工作可划分为哪三个阶段。
(Ppt)
⏹需求获取阶段(问题分析)
⏹需求规约阶段(需求描述)
⏹需求验证阶段(需求评审)
3.需求分析阶段回答什么问题,需求分析的任务是什么?
(P46~P48)
基本任务:
准确定义系统的目标,回答“系统必须做什么?
”
⏹确定对系统的综合要求
⏹分析系统的数据要求
⏹导出系统的逻辑要求
⏹修正系统的开发要求
⏹开发原型系统
4.ER图、状态图、层次图、warnier图、IPO表的图形符号意义。
会看这些图。
5.应该从哪几个方面验证软件需求正确性?
(P60)
一致性,完整性,现实性,有效性
第五章:
总体设计
1.概要设计的任务和过程。
(P81~P83)
任务:
——“两类结构,文档评审”
⏹1、设计软件系统结构(软件结构)
⏹2、数据结构及数据库设计
⏹3、编写概要设计文档
⏹4、评审
过程:
(1)设想供选择的方案;
(2)选取合理方案;
(3)推荐最佳方案;
(4)功能分解;
(5)设计软件结构;
(6)数据库设计:
(7)制订测试计划;
(8)书写文档,包括:
系统说明
用户手册
修订的测试计划
详细的实现计划
数据库设计说明书
(9)评审
2.模块的作用域和控制域是什么?
好的软件体系结构中模块作用域和控制域的关系是怎样的?
(P90~91)
✓作用域:
受该模块内一个判定影响的所有模块的集合
✓控制域:
模块本身及所有直接或间接从属于它的模块的集合
模块的作用域应该在控制域之内
3.模块独立以及内聚和耦合的关系。
几种内聚和几种耦合的含义以及与模块独立性间强弱关系。
设计软件在内聚和耦合性上应该遵循的原则。
(P87~P88)(ppt)
●衡量模块独立程度的标准:
耦合、内聚
⏹耦合:
指模块之间的联系紧密程度。
模块之间联系越紧密,其耦合性越强,独立性就越差。
⏹模块耦合度越低越好:
1.独立性;2.减少错误传播。
⏹模块的耦合性从低到高可分为以下几种类型:
✓无直接耦合(nodirectcoupling):
二个模块都不依赖对方而独立存在
✓数据耦合(datacoupling):
二个模块通过参数交换信息,而信息仅限于数据
✓标记耦合(特征耦合stampcoupling):
二个模块通过传递数据结构加以联系,或都与一个数据结构有关
⏹控制耦合(controlcoupling):
二个模块通过参数交换信息,而交换的信息中包含控制信息
⏹外部耦合(externalcoupling):
二个模块与同一外部环境相关联(全局变量,I/O,文件,数据库等)
⏹公共耦合(commoncoupling):
二个模块通过全局的数据环境(全局数据结构,公共区等)相互作用
⏹内容耦合(contentcoupling):
一个模块使用另一模块内的数据和控制信息,或者直接转移到另一模块内执行
耦合性:
弱←————————————————→强
模块独立性:
强←——————————————→弱
1
2
3
4
5
6
7
弱耦合
中耦合
较强耦合
强耦合
⒈非直接耦合:
无信息交换
⒉数据耦合:
简单数据以参数形式进行交换
⒊特征耦合:
数据结构以参数形式进行交换
⒋控制耦合:
参与交换的数据内包含控制信息
⒌外部耦合:
一组模块使用同一个全局变量交换信息
⒍公共耦合:
一组模块使用同一个全局性数据结构
⒎内容耦合:
一个模块可以直接访问另一个模块内部数据
内聚性:
模块内部各个元素彼此结合的紧密程度。
它是信息隐蔽和局部化概念的自然扩展。
内聚性:
弱←———————————————→强
模块独立性:
弱←—————————————→强
1
2
3
4
5
6
7
低内聚
中内聚
高内聚
⒈偶然性内聚0分:
减少相同操作的重复编码
⒉逻辑性内聚1分:
合并处理、变换相同或相似的功能
⒊时间性内聚3分:
将因时序相同或接近的操作合并
⒋过程性内聚5分:
将存在因果关系的功能集成
⒌通信性内聚7分:
因数据的共用而合并
⒍顺序性内聚9分:
将存在因果关系的操作集成
⒎功能性内聚10分:
将只完成一个明确功能的操作合并
耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚,低耦合,提高模块的独立性。
在内聚性与耦合性发生矛盾的时候,最好优先考虑耦合性,也就是先保证耦合性低一些。
4.七条启发式规则。
(P90~92)
⏹模块的划分:
高内聚,低耦合,保持相对独立性
⏹模块的大小:
模块规模应该适中
⏹形成的结构:
深度、宽度、扇出和扇入都应适当
顶层扇出较高,中间扇出较小,底层模块高扇入”
⏹模块的控制:
模块的作用域应该在控制域之内
⏹模块的接口:
简单、清晰、含义明确
⏹设计单入单出的模块
⏹模块功能应该可以预测
5.软件结构图中,深度、宽度、扇入、扇出的含义和扇入扇出与模块调用间的关系。
(P90)
6.熟练掌握层次图,会看会画层次图。
(P92~P93)
7.HIPO图、结构图的符号含义,理解会看这些图形。
(P93~P94)
8.熟练掌握面向数据流的结构化程序设计的方法,会从DFD图转化成软件的体系结构图。
(P94~P103)
第六章:
详细设计
1.详细设计的主要任务和目的。
♦详细设计——根据得到的模块结构图MSD,对其中每一个模块给出过程属性的描述,即算法设计。
即确定每个模块的内部特征,即每个模块内部的执行过程(怎样做)。
♦具体目标:
⏹确定怎样具体的实现所要求的系统,提供关于算法的更多的细节。
⏹根据详细设计的结果可得到直接用于编程的程序逻辑结构。
2.结构化程序设计的思想以及三种基本结构。
(P107~P109)
●主要思想设计方法:
自顶向下、逐步求精
控制结构:
单入口单出口
●顺序、分支、循环
3.熟练掌握程序流程图、盒图N-S图、PAD图的符号含义和画法以及和伪代码四种工具之间的相互转换。
(P114~P118)
4.理解Jackson方法的思想和步骤(不考Jackson方法的大题,但是有小题)。
(P119~P126)
5.熟练掌握程序流图的画法和环形复杂度的计算,即McCabe方法。
(P127~P129)
第七章:
实现
1.软件测试的目标,衡量测试成功的标准。
(P140)
发现软件错误—>纠正软件错误—>提高软件质量
2.什么是模块测试、集成测试和确认测试?
各自的主要目标是什么,
各采用什么测试方法?
(ppt)
单元测试(模块测试):
测试程序中每个模块是否有错误,以保证每个模块作为一个单元能正确运行
3.自顶向下集成和自底向上集成各自的特点和优缺点。
(ppt)
4.什么是白盒测试(功能测试)与黑盒测试(结构测试)?
它们各自适应哪些测试?
白盒测试与黑盒测试的比较(方法、思想、依据、特点、性质)(ppt)
白盒测试是结构测试,所以被测对象基本上是源程序,以程序内部逻辑为基础设计测试用例。
黑盒测试是功能测试,主要是测试软件是否满足功能和性能要求,它不涉及模块的内部细节。
6.白盒测试技术有哪些?
各种逻辑覆盖的含义。
会设计各种逻辑覆盖的测试用例。
各种逻辑覆盖的强弱关系。
(P152~P155)
7.白盒测试中控制结构测试的技术有哪三种?
他们的基本思想?
(ppt)
控制结构测试——1.基本路径
控制结构测试——2.条件测试
控制结构测试——3.循环测试
8.黑盒测试技术有哪些?
理解三种黑盒测试技术的思想(P161~P166)
测试方法:
●等价类的划分
●边界值分析
●错误推测
9.什么是回归测试,回归测试的意义,什么情况下要做回归测试。
(P150)
10.软件可靠性的定义。
(P169)
软件可靠性的定义:
程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。
可靠性随着给定时间间隔的加大而减少。
第八章:
维护
1.软件维护的定义(P179)和软件维护过程的本质(P182)
软件维护:
软件已经交付使用之后,为了改正错误和满足新的需要而修改软件的过程。
Ø改正性维护
Ø适应性维护
Ø完善性维护
Ø预防性维护
各类维护活动的根本目的是延长软件生存期
2.四类软件维护的含义及其所占比例(ppt)
3.现在软件维护成本占软件总预算的比例大概是多少?
80%以上(ppt)
4.决定软件可维护性的因素:
可理解性、可测试性、可修改性、可移植性、可重用性(P185~P186)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 朱少民版 复习资料