软件工程导论复习Word下载.docx
- 文档编号:19208833
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:25
- 大小:506.29KB
软件工程导论复习Word下载.docx
《软件工程导论复习Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程导论复习Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
常见软件生命周期模型(课件中的前5类)的特点有哪些?
111
软件过程:
它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:
由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成每个阶段8项任务:
1问题定义2可行性研究3需求分析4总体设计5详细设计6编码和单元测试7综合测试8软件维护
①瀑布模型重点
定义:
传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
瀑布模型的特点:
1.阶段间具有顺序性和依赖性;
2.推迟实现的观点;
3.质量保证的观点。
瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。
瀑布模型的主要优点:
a.可强迫开发人员采用规范的技术方法;
b.严格地规定了每个阶段必须提交的文档;
c.每个阶段结束前必须正式进行严格的技术审查和管理复审。
瀑布模型的主要缺点:
在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。
开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。
②快速原型模型
所谓“快速原型”,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件产品所能完成的功能的子集。
原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
快速原型模型的主要优点是:
A.使用这种软件过程开发出的软件产品通常能满足用户的真实需求;
B.软件产品的开发过程基本上是线性顺序过程。
③增量模型
增量模型也称为渐增模型
增量模型的主要优点:
A.能在较短时间内向用户提交可完成部分工作的产品;
B.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户组织带来的冲击。
④螺旋模型重点有风险分析
螺旋模型的基本思想是,使用原型及其他方法尽量降低风险。
理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。
螺旋模型所描述的软件过程主要适用于内部开发的大型软件项目。
使用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验。
螺旋模型主要有下述优点:
A.有利于已有软件的重用;
B.有助于把软件质量作为软件开发的一个重要目标;
C.减少了过多测试或测试不足所带来的风险;
D.软件维护与软件开发没有本质区别。
⑤喷泉模型
迭代是软件开发过程中普遍存在的一种内在属性。
在面向对象范型中,软件开发过程各阶段之间的迭代或同一阶段内各个工作步骤之间的迭代,比在结构化范型中更常见。
喷泉模型,是典型的面向对象生命周期模型,它充分体现了面向对象软件开发过程迭代和平滑过渡的特性。
5、在“快速原型”模型中软件原型的作用主要是什么?
在哪类生命周期模型中引入了风险分析?
哪类生命周期模型是典型的传统软件工程生命周期模型?
哪类生命周期模型是典型的面向对象软件工程生命周期模型?
在“快速原型”模型中软件原型的作用主要是:
软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
螺旋模型中引入风险分析
瀑布模型是典型的传统软件工程生命周期模型
喷泉模型是典型的面向对象软件工程
第2章可行性研究
1、可行性研究包括哪几方面(每方面解决什么问题)111
技术可靠性:
使用现有的技术能否实现这个系统吗?
经济可行性:
这个系统的经济效益能否超过它的开发成本?
操作可行性:
系统的操作方式在这个用户组织内是否行得通?
2.可行性研究过程的步骤:
1.复查系统规模和目标
定义问题。
复查确认系统目标、规模,限制和约束
2.研究目前正在使用的系统
分析问题。
分析现有的系统,研究文献,了解发展研究现状
3.导出新系统的高层逻辑模型
得到一个试探性的解。
从现有的物理系统出发,导出现有系统的高层逻辑模型(由数据流图来描述),反复进行,根据开发目标得到新系统的说明和逻辑模型,建造系统的物理系统(由系统流程图来表示)。
4.重新定义问题
系统的逻辑模型是否与用户的想法一致
和用户再次复查
5.导出和评价供选择的方案
分析员从系统的逻辑模型出发,导出若干方案供选择,对每个方案进行成本/效益分析。
6.推荐一个方案并说明理由
向用户推荐一个最后的方案,说明:
(1)本项目的开发价值
(2)推荐这个方案的理由
(3)制定实现进度表
7.推荐行动方针
是否进行这项开发工程,详尽的分析开发的成本效益情况,作为负责人决定是否骰子此项工程的依据。
8.书写计划任务书
草拟一份可行性论证报告:
(1)系统概述
(2)可行性分析
(3)拟定开发计划
(4)结论意见
9.提交审查
用户和项目负责人仔细审查上述文档,也可以召开论证会
3.主要描述工具的概念和使用:
系统流程图:
是什么,成份和基本符号,描述什么模型,画法;
数据流图:
是什么,成份和基本符号,系统级和功能级、简单细化数据流图的区别,画法;
数据字典:
是什么,内容、定义数据的方法。
(1)系统流程图的定义:
是概括地描绘物理系统的传统工具。
它用图形符号以黑盒子形式描绘组成系统的每个部件。
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,是物理数据流图而不是程序流程图。
系统流程图的基本符号:
(2)数据流图的定义:
p42看懂例子111
它是一种图形化技术,它描述信息和数据从输入移动到输出过程中所经历的变换。
在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。
数据流图的基本符号:
正方形(或立方体)表示数据的源点或终点;
圆角矩形(或圆形)代表变换数据的处理;
开口矩形(或两条平行横线)代表数据存储;
箭头线表示数据流,即特定数据的流动方向。
(3)数据字典的定义111:
是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据字典的内容:
数据流、数据流分量、数据存储、处理
定义数据的方法:
用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低的成分组合来定义。
4.系统流程图与程序流程图的区别111
系统流程图:
反应主体框架
数据流程图:
反应数据走向
程序流程图:
程序逻辑
5.数据字典和数据流图的关系。
数据流图和数据字典共同构成系统的逻辑模型。
没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。
只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
6.成本估计的三种方法111:
1.代码行技术代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联2.任务分解技术这种方法首先把软件开发工程分解为若干个相对独立的任务,再分别估计每个独立的开发任务的成本,最后加起来得出软件开发工程的总成本。
3自动估计成本技术
第3章需求分析
1、需求分析的任务是什么111?
分析得到的成果(文档)是什么?
包含哪些内容?
1、需求分析的任务:
(1)确定对系统的综合要求:
功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求
(2)分析系统的数据要求:
(3)导出系统的逻辑模型(4)修正系统开发计划;
2、需求分析得到的结果:
是通过需求分析得到的除了分析模型之外,还应该写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档。
2.如何做需求分析111
(1)确定被开发系统的综合要求:
系统分析员与用户共同讨论,澄清模糊要求,删除做不到的要求,改正错误的要求,确定具体的功能要求和性能要求。
如:
精确度要求,运行要求,软硬件限定条件要求,出错率限定要求,文件使用权限要求与读写保护要求,资源使用要求,运行维护成本消耗要求等;
(2)分析系统信息,抽象出系统的数据要求:
通过系统的调查分析,由系统的信息流归纳、汇集,抽象出系统的数据模型(ER图),包括数据的组成元素、数据间的逻辑关系、数据的输入、输出、存储的形式及数据结构关系等;
(3)由描述的系统问题结构导出系统的目标逻辑模型:
利用软件需求工具和数据流分析方法导出系统的目标逻辑模型(数据流程图)。
利用结构化分析工具、数据流程图进行描述和表达;
功能模型和行为模型(4)根据系统实际需求审定和修正软件项目的开发计划:
一般可由用户、开发方、专家组成的小组对项目预算、开发成本估计、计划安排、进度安排、人员和资源安排进行审定和修正,看其是否一致,是否符合软件的实际认定范围,确定出切实可行的开发计划;
(5)审定系统需求分析的正确性:
利用原型、需求分析验证工具、或人工的方法进行审定;
(6)提交软件需求规格说明书,作为系统的开发和验收的依据。
3.如何建快速原型111p61
2、软件需求通常包括哪些方面?
各类需求一般包含内容有哪些?
(1)功能需求:
这方面的需求指定系统必须提供的服务。
通过需求分析应该划分出系统必须完成的所有功能。
(2)性能需求:
性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。
(3)可靠性和可用性需求:
可靠性需求定量地指定系统的可靠性。
可用性与可靠性密切相关,它量化了用户可以使用系统的程度。
(4)出错处理需求:
这类需求说明系统对环境错误应该怎样响应。
(5)接口需求:
接口需求描述应用系统与它的环境通信的格式。
常见的接口需求有:
用户接口需求;
硬件接口需求;
软件接口需求;
通信接口需求。
(6)约束:
设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。
(7)逆向需求:
逆向需求说明软件系统不应该做什么。
(8)将来可能提出的要求:
应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。
3、追加的主要描述工具的概念和使用:
E-R图:
是什么,成份和基本符号,描述什么模型;
状态转换图111重点:
是什么,描述什么模型p67图看懂
(1)E-R图的定义:
即实体--联系图,是表示数据对象及其之间关系的图形语言机制,是建立数据模型的图形工具。
E-R图的基本成份和使用的符号:
实体(即数据对象)----矩形框,关系----菱形框,
属性----椭圆形或圆角矩形。
E-R图描述的模型:
用来建立数据模型,ER模型使用简单的图形符号表达系统分析员对问题域的理解
(2)状态转换图的定义:
通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态转换图的基本成份和使用的符号:
基本成分是状态、事件、状态转换。
状态转换图描述的模型:
用来建立系统的行为模型。
P69页图看懂
4、在结构化分析中,建模的核心是什么?
3种模型分别是什么,分别用什么工具来描述?
建模的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。
(1)、数据模型,用实体-联系图描述;
(2)、功能模型,用数据流图描述;
(3)、行为模型,用状态转换图描述。
第四章形式化说明技术
1.111按形式化程度可将软件工程使用的方法分为非形式化、半形式化、形式化3类。
2.111形式化方法的优点在开发大型软件系统的过程中应用数学,能够带来下述的几个优点:
1数学最有用的一个性质是,它能够简洁准确地描述物理现象、对象或动作的结果,因此是理想的建模工具。
数学特别适合于表示状态,也就是表示“做什么”。
需求规格说明书主要描述应用系统在运行前和运行后的状态,因此,数学比自然语言更适于描述详细的需求。
在理想情况下,分析员可以写出系统的数学规格说明,它准确到几乎没有二义性,而且可以用数学方法来验证,以发现存在的矛盾和不完整性,在这样的规格说明中完全没有含糊性。
但是,实际情况并不这么简单,软件系统的复杂性是出了名的,希望用少数几个数学公式来描述它,是根本不可能的。
此外,即使应用了形式化方法,完整性也是难于保证的:
由于沟通不够,可能遗漏了客户的一些需求;
规格说明的撰写者可能有意省略了系统的某些特征,以便设计者在选择实现方法时有一定自由度;
要设想出使用一个大型复杂系统的每一个可能的情景,通常是做不到的。
2在软件开发过程中使用数学的另一个优点是,可以在不同的软件工程活动之间平滑地过渡。
不仅功能规格说明,而且系统设计也可以用数学表达,当然,程序代码也是一种数学符号(虽然是一种相当繁琐、冗长的数学符号)
3数学作为软件开发工具的最后一个优点是,它提供了高层确认的手段。
可以使用数学方法证明,设计符合规格说明,程序代码正确地实现了设计结果。
3.形式化方法的准则1111应该用适当的表示方法。
2应该形式化,但不要过分形式化3应该估算成本4应该有形式化方法顾问随时提供咨询。
5不应该放弃传统的开发方法6应该建立详细的文档7不应该放弃质量标准8不应该盲目依赖形式化方法。
9.应该测试,测试再测试10应该重用。
第5章总体设计
1.总体设计过程1111系统设计阶段:
确定系统的具体实现方案;
;
2结构设计阶段:
确定软件的结构
1.设想工作方案2.选取合理的方案3.推荐最佳方案4.功能分解5.设计软件结构6.设计数据库7.制定测试计划8.书写文档9.审查和复查
1、什么是总体设计?
将软件需求转化为软件的数据结构和系统结构,确定各组成成分(子系统或模块)之间的相互关系
2.111什么是模块化?
模块化的目的
模块化:
把程序划分为独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,完成指定的功能并满足用户的要求。
复杂问题简单化,降低成本
2、模块化设计的原理包括什么?
为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。
模块化设计的原理包括:
模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。
3、三偶三内111p97模块独立性度量(描述)的两个指标:
内聚、耦合;
什么是内聚,什么是耦合;
耦合和内聚的具体分类及使用原则;
在面向数据流的方法中,内聚、耦合各分为哪几级,每级的具体含义分别是什么?
强度从弱到强如何排列?
耦合和内聚两者关系?
(1)耦合定义:
它是对一个软件结构内不同模块之间互连程度的度量;
耦合分类:
耦合使用原则:
尽量使用数据耦合,小用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合,最终降低模块间接口的复杂性。
(2)内聚定义:
它标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
内聚分类:
内聚使用原则:
设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;
但是,低内聚很坏,不要使用。
(3)耦合和内聚两者关系:
耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。
其中内聚更重要。
内聚与耦合密切相关。
同其它模块强耦合的模块意味着它自己是弱内聚的;
强内聚模块意味着与其它模块间松散耦合。
所以设计的目标应该是力争高内聚、低耦合。
启发规则111:
1改进软件结构提高模块独立性2模块规模应该适中3深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测
P102会画图
4、软件总体结构描述工具的概念和使用:
软件层次图、软件结构(SC)图、HIPO图:
是什么,基本符号和表示的结构,画法。
(1)软件层次图的定义:
是用来描绘软件层次结构的图形工具。
一个矩形框代表一个模块,方框间的连线表示模块间的调用关系。
软件层次图的示例:
(2)HIPO图的定义:
即层次图+输入/处理/输出图,由一张H图和一组IPO图组成。
通常将HIPO图作为软件结构的描绘,列入设计文档。
H图,是给每个模块加上编号的层次图。
IPO图,即为H图中的每个模块画一张IPO图。
(3)结构图(SC)的定义:
描述了软件的模块结构,表示了一个系统的层次分解关系;
反映了模块间的联系以及块内联系;
反映了模块间的信息传递。
结构图一般不列入设计文档,只用于设计阶段检查模块设计的正确性和模块独立性。
结构图(SC)的基本符号:
A
方框,内有名称,表示模块;
直线,表示上层模块对下层模块的调用;
尾部带空心圆的箭头,表示按方向传递的数据信息;
尾部带实心圆的箭头,表示按方向传递的控制信息;
判定为真时调用A,为假时调用B模块M循环调用模块A、B、C
第6章详细设计
.1结构程序设计111
经典定义
仅通过顺序、选择和循环3种基本控制结构进行连接,且每个代码块具有单入口、单出口特性
全面定义
尽可能少用GOTO语句的程序设计方法。
最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句
人机界面如何设计111p119p126图看懂p129看图p137看图
过程设计语言111:
也称伪码,是用正文形式表示数据和处理过程的设计工具
1、详细设计的任务(主要工作)有哪些?
得到的结果是什么?
详细设计的要求是什么?
详细设计的任务(工作):
确定每个模块内部的算法和数据结构,用一定的工具精确描述目标系统,从而方便在
编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
包括:
(1)确定每一模块的算法
(2)确定每一模块使用的数据结构
(3)确定本模块的外部接口和用户界面
(4)为每一模块设计一组测试用例
设计得到的结果:
是确定每个模块内部的算法和数据结构,产生描述各模块处理过程的详细文档。
详细设计的要求:
不仅要逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程容易阅读和理解
。
2、什么是过程设计的工具?
分类?
基本要求?
过程设计工具的定义:
描述程序处理过程的工具
过程设计工具的分类:
它们可以分为图形、表格、和语言3类。
过程设计工具的基本要求:
不论是哪类工具,对它们的基本要求都是能提供对设计的无歧义的描述。
3、软件详细设计描述工具的概念和使用:
程序流程图、N-S图、PAD图、PDL语言:
是什么,基本符号和表示的意义,画法;
各种工具描述结果间的转换。
(1)程序流程图的定义:
又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。
程序流程图的基本符号:
(2)盒图(N-S图)的定义:
出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图。
它有下述特点:
(1)功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。
(2)没有箭头,不可能任意转移控制。
(3)很容易确定局部和全程数据的作用域。
(4)很容易表现嵌套关系,也可以表示模块的层次结构。
盒图(N-S图)的基本符号:
(a)顺序;
(b)IF_THEB_ELSE型分支;
(c)CASE型多分支;
(d)循环;
(e)调用子程序
(3)PAD(问题分析图)的定义:
1973年由日本日立公司发明。
它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。
PAD(问题分析图)的基本符号:
(b)选择(IFCTHENP1ELSEP2);
(d)WHILE型循环(WHILECDOP);
(e)UNTIL型循环(REPEATPUNTILC);
(f)语句标号;
(g)定义
(3)过程设计语言(PDL)的定义:
也称为伪码,PDL是一种“混杂”语言,它使用一种语言的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。
过程设计语言(PDL)的举例:
4、什么是模块的环形复杂度,如何计算?
环形复杂度的定义:
即程序的逻辑复杂度,主要是指模块内程序的复杂性。
环形复杂度的计算方法:
方法一:
流图中的区域数等于环形复杂度;
方法二:
流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数;
方法三:
流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目
第7章实现
1、什么是实现?
选择程序设计语言主要的实用标准有哪些?
通常把编码和测试统称为实现。
(1)系统用户的要求
(2)可以使用的编译程序
(3)可以得到的软
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 复习