软件工程导论第五版复习重点(必考题)

合集下载

软件工程导论第五版复习重点(汇总)

软件工程导论第五版复习重点(汇总)

第一章一、什么是软件?1.满足功能要求和性能的指令或计算机程序集合;2.处理信息的数据结构;3.描述程序功能以及程序如何操作和使用所要求的文档;二、软件的特点:1)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。

2)软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发中被创造出来的3)在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题4)软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性5)软件的开发至今尚未完全摆脱手工的开发方式6)软件的开发费用越来越高,成本相当昂贵。

三、软件危机的概念:软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。

这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

四、产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

五、软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

六、软件产品的重用性差,同样的软件多次重复开发。

七、软件通常没有适当的文档资料。

八、软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。

软件工程(第五版)_复习题与答案

软件工程(第五版)_复习题与答案

《软件工程》(第五版)习题参考答案第1章一、判断题1、(×)软件的维护与硬件维护本质上是相同的。

2、(√)软件在运行和使用中也存在退化问题。

3、(×)软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言。

4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和衰亡的生存过程。

5、(×)文字处理软件Word属于系统软件。

应用软件6、(√)原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。

7、(√)软件开发过程中,一个错误发现得越晚,为改正它所付出的代价就越大。

8、(×)快速原型模型对软件开发人员的水平要求不高。

9、(√)喷泉模型适合于面向对象的软件开发。

10、(×)面向对象开发方法的主要缺点是在适应需求变化方面不够灵活。

二、选择题1、软件是一种(C)。

A、程序B、数据C、逻辑产品D、物理产品2、软件开发方法是(A)。

A、指导软件开发的一系列规则和约定B、软件开发的步骤C、软件开发的技术D、软件开发的思想3、软件生存周期中花费最多的阶段是(D)。

A、详细设计B、软件编码(最少)C、软件测试D、软件维护4、软件工程的三要素不包括(D)。

A、工具B、过程C、方法D、环境5、在软件生存周期中,能准确地确定“软件系统必须做什么”的阶段是(D)。

A、总体设计B、详细设计(怎么做)C、可行性研究(能不能做)D、需求分析6、瀑布模型本质上是一种(A)模型。

A、线性顺序B、顺序迭代C、线性迭代D、能及早见到产品的7、瀑布模型突出的缺点是不适应(D)的变动。

A、算法B、程序语言C、平台D、用户需求8、在软件开发模型中,提出最早、应用最广泛的模型是(A)。

A、瀑布模型B、喷泉模型C、快速原型模型D、螺旋模型9、瀑布模型不适合用于(A)的软件开发。

A、需求模糊不清B、用户不能参与开发C、用户对计算机不了解D、开发人员对业务知识不熟悉10、快速原型的主要优点不包括(D)。

最新软件工程导论第五版习题答案教学讲义PPT

最新软件工程导论第五版习题答案教学讲义PPT

D3生理信息
F4警告信息
F2生理信号
P1 接收信号
定时的生理信号
P5 更新日志
F2生理信号 定时的 生理信号
E1 护士
E3 时钟
F3日前、时间
P4 定时取样 生理信号
F6日志
F6日志
D1患者日志
E1
护士
F1要求报告
P6
13:07:42
重庆工学产院生计病算情机报科告学与工程学院 李梁(liliang@)
从问题陈述可知,本系统数据源点是“病人”和“护士” ,他们分别提供生理信号和要求病情报告的信息。进一步 分析问题陈述,从系统应该“定时记录病人情况以形成患 者日志”这项要求可以想到,还应该有一个提供日期和时 间信息的“时钟”作为数据源点。
从问题陈述容易看出,本系统的数据终点是接收警告信息 和病情报告的护士。
F6日志
D1患者日志
E1
护士
F1要求报告
P6
13:07:42
重庆工学产院生计病算情机报科告学与工程学院 李梁(liliang@)
13
作业及解答(第3章)
2-5 北京某高校可用的电话号码有以下几类:校内电话号码 由4位数字组成,第1位数字不是0;校外电话又分为本市 电话和外地电话两类,拨校外电话需先拨0,若是本市电 话则再接着拨8位数字(第1位不是0),若是外地电话则拨3 位区码再拨8位电话号码(第1位不是0)。
8
作业及解答(第3章)
E1 护士
F4警告信息、病情报告 F1要求报告
E1 护士
E2 病人
F2生理信号
P0 患者监护系统
F6日志
D1患者日志
F5安全范围
D2患者安全范围
E3 时钟

软件工程第五版期末复习绝密

软件工程第五版期末复习绝密

软件工程复习填空题:一、1.同一软件的大量软件产品的生产主要是通过复制(拷贝)而得到。

2.软件工程的主要思想主要是软件生产中用工程的方法代替传统手工方法。

3.结构化方法有结构化分析、设计和结构化实现构成。

4.瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段模型。

5.软件是一种逻辑产品,它以程序和文档的形式出现,通过程序的运行才能体现它的功能和作用。

6.软件工程研究的主要内容是软件开发技术和软件管理技术两方面。

7.软件生存周期是指一个软件从问题提出开始知道软件报废二止的整个时期。

8.增量模型是一种非整体开发的模型,软件在该模型中式逐渐开发出来的。

9.维护是软件生存周期中的时间最长的阶段。

二、1.软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定项目是否值得去做(问题是否能够解决)。

2.系统流程图是描绘物理系统传统工具,他用图形符号表示系统中的各个元素,他表达了数据在各个元素之间的流动情况。

3.成本——效益分析的目的是从经济角度评价一个新的软件项目是否可行。

4.可行性研究的第一步骤是复查系统规模和目标。

5.可行性研究的最后步骤是书写可行性研究报告。

6.在画分层的数据流图时,子图的输入输出数据流同父图相应加工的输入输出数据流必须相同(一致)。

7.对于复杂问题的数据处理过程,要用分层的数据流图来表达,它的顶层图描述了系统的整体逻辑概貌。

8.纯收入是累积效益现在值与投资之差。

三、1.需求分析的基本任务是要准确的定义系统目标,回答系统必须做什么的问题。

2.编写用户手册,着重反映出开发软件的用户功能界面和使用的具体要求,它能强制分析人员从用户使用的观点积极考虑。

3.传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统做的功能,但他仅是一个静态模型没有反应处理的顺序。

4.为完整的描述用户对系统的要求,DFD应与数据库系统中E-R图结合起来。

5.需求分析阶段产生最重要的文档是软件需求规格说明书。

-软件工程导论复习题.doc

-软件工程导论复习题.doc

软件工程导论复习题一、名词解释软件、继承性、封装、多态性、软件危机、UML、用例视图、软件生存周期、瀑布模型、需求分析、模块化、模块独立性、白盒测试、等价类划分、风险管理二、选择题1、封装是指把对象的()结合在一起,组成一个独立的对象。

A.属性和操作B。

信息流C。

消息和事件D。

数据的集合2、封装是一种()技术,目的是使对象的生产者和使用者分离,使对象的定义和实现分开。

A.工程化B。

系统维护C。

信息隐蔽D。

产生对象3、面向对象方法中的()机制使子类可以自动地拥有(复制)父类的全部属性和操作。

A.约束B。

对象影射C。

信息隐蔽D。

继承5、软件是一种逻辑产品,它的开发主要是()A研制B拷贝C再生产D复制6、软件生命周期一般包括:软件开发期和软件运行期,下述()不是软件开发期所包含的内容?A需求分析B结构设计C程序编制D性能优化8、在软件生存周期中,()阶段必须要回答的问题是“要解决的问题是什么?”A需求分析B可行性分析与项目开发计划C概要设计D测试9、在软件开发中,通常要花费()以上的代价进行测试和排错A20% B 30% C 40% D 50%10、在软件开发方法中,()方法总的指导思想是自顶向下、逐步求精。

它的基本原则是功能的分解和抽象。

A结构化B面向对象的开发 C JSD D VDM11、软件工程是一门()学科。

A原理性B工程性C理论性D管理性12、()的目的就是用最小的代价在尽可能短的时间内确定一个软件项目是否能够开发,是否值得去开发。

A软件可行性研究B项目开发计划C软件需求分析D软件概要设计13、系统流程图是一种传统工具,它用来描述()。

A物理模型B逻辑模型C体系结构D目标系统14、()首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡。

A成本—效益分析B货币的时间价值C投资回收期D纯收入15、可行性分析中,系统流程图用于描述()。

A当前逻辑模型B新系统C当前运行系统D目标系统16、设年利率为I,若n年能收入F元,那么这些钱现在的价值P 是()A P=F/(1+n*I)B P=F*(1+n*I)C P=F*n*(1+n)D P=F*(1+I)n17、需求分析阶段,分析人员要确定对问题的综合看法,其中最主要的是()需求A功能B性能C可靠性D可维护性18、需求分析阶段产生的最重要的文档是()A需求规格说明书 B 修改完善的软件开发计划C 确认测试计划D 初步的用户使用手册19、数据流图反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是(),整个图不反映加工的执行顺序。

软工第五版知识点总结

软工第五版知识点总结

第一章:软件工程学概述1.1946年,世界上第一台电子计算机诞生,从宏观角度而言,计算机软件的发展主要经历了以下三个阶段:(1)第一阶段——程序设计阶段;(2)第二阶段——软件工程阶段;(3)第三阶段——软件过程阶段2 软件危机:2.1定义:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.2主要是两个方面的问题:如何开发软件──怎样满足对软件日益增长的需求如何维护软件──数量不断膨胀的已有软件2.3主要表现:对软件开发成本和进度的估计常常很不准确。

用户对为他们开发的软件往往不满意。

软件产品的质量往往靠不住。

软件常常是不可维护的。

软件通常没有适当的文档资料。

软件成本在计算机系统总成本中所占的比例逐年上升。

软件开发生产率提高的速度太慢。

2.4产生软件危机的原因:1. 软件本身的特点不同于硬件: (1)软件是逻辑的,而不是物理的产品。

(2)软件是由开发或工程化而形成的,没有明显的制造过程。

(3)软件在运行和使用期间,不存在硬件那样的磨损和老化问题,但它存在退化问题,开发人员必须维护软件。

2. 软件人员的主观原因:开发与维护的方法不正确。

早期软件开发个体化。

至今,忽视软件需求分析的重要性,轻视维护;困境中的消极态度;2.5解决软件危机的途径:a正确认识软件,软件包括:程序是按事先设计的功能和性能要求编写的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。

b推广使用在实践中总结出来的开发软件的成功技术和方法,研究、探索更好更有效的技术和方法c开发和使用更好的软件工具d有必要的组织管理措施3.软件工程;指导计算机软件开发和维护的工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到得最好得技术方法结合起来.软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。

4.软件工程方法学A:传统方法学:生命周期方法学或结构化范型采用结构化技术(结构化分析、设计和实现)把软件生命周期划分成若干阶段:每一阶段结束前都必须进行技术审查和管理复审,试图以每一阶段的正确性和完整性来保证最终产品的质量。

软件工程导论第五版复习重点

软件工程导论第五版复习重点

储户
储户
1
记录存款 信息
打印存款 信息
存款单
存款信息
存款存单
3
计算利息
4
打印利息 清单
存款信息
利息值
利息清单
D1
存款信息
存款信息
2
细化后的计算机储蓄系统软件结构
第3章 需求分析
1、需求分析的基本任务是什么?P46-P48 2、分析建模 2.1什么是模型? 模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。 2.2数据模型(E-R)、 功能模型(2.4节数据流图)、 行为模型(状态转换图是行为模型的基础) 3、要从哪些方面验证软件需求?P60
第6章 详细设计
1、结构程序设计中有哪几种基本控制结构?P108 2、了解人机界面的设计。 3、掌握过程设计的工具(程序流程图、盒图、PAD图,判定树)P114—P119 4、面向数据结构的设计方法(Jackson图) 5、程序复杂度的定量度量(McCabe)
6.1 结构程序设计
6.1 结构程序设计
实现
编码和测试
7.2 软件测试基础
7.2 软件测试基础
软件测试:为发现程序中的错误而执行程序的过程。 软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求) 测试方法(黑盒测试和白盒测试) 测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)
图6.4 盒图的基本符号
图6.5 PAD中基本符号 顺序结构;(b) 分支结构;(c) 多分支CASE结构; (d) 当型循环;(e);直到型循环;(f) 语句标号;(g)定义

软件工程导论第五版复习资料

软件工程导论第五版复习资料

软件工程导论第一章软件工程学概述1、软件完成特点功能的程序以及数据结构和文档2、软件的特点(1)软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。

软件开发、设计几乎都是从头开始,成本和进度很难估计。

(2)软件存在潜伏错误,硬件错误一般能排除。

(3)软件开发成功后,只需对原版进行复制。

(4)软件在使用过程中维护复杂:1)纠错性维护—改正运行期间发现的潜伏错误;2)完善性维护—提高或完善软件的性能;3)适应性维护—修改软件,以适应软硬件环境的变化;4)预防性维护—改进软件未来的可维护性和可靠性。

(5)软件不会磨损和老化。

3、软件危机及软件危机的表现软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

软件危机的表现1)对软件开发成本和进度的估计常常很不准确。

常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象,从而降低了开发商的信誉,引起用户不满。

2)用户对已完成的软件不满意的现象时有发生。

3)软件产品的质量往往是靠不住的。

4)软件常常是不可维护的。

5)软件通常没有适当的文档资料。

文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

6)软件成本在计算机系统总成本中所占比例逐年上升。

特别是软件维护成本迅速增加,已经占据软硬件总成本的40%~75%。

7)开发生产率提高的速度远跟不上软件需求。

4、软件工程及软件工程的特性软件工程是用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。

软件工程的特性:1)软件工程关注于大型程序的构造2)软件工程的中心课题是控制复杂性3)软件经常变化4)开发软件的效率非常重要5)和谐地合作是开发软件的关键6)软件必须有效地支持它的用户7)在软件工程中是由具有一种文化背景的人替具有另一种文化背景的人创造产品5、软件工程的基本原理用分阶段的生存周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应少而精承认不断改进软件工程实践的必要性6、软件生存周期一个软件从得出开发要求开始直到该软件报废为止的时期。

软件工程导论(第五版)期末考试

软件工程导论(第五版)期末考试

软件工程导论(第五版)期末考试1、软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的严重问题。

2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。

3、软件工程学包含3个要素:方法、工具、过程。

4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。

5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。

6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。

7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。

8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。

9、数据流图(DFD)是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中所经受的变化。

10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义的集合。

11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。

12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确的描述软件需求。

13、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。

14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩形表示属性,用直线把实体和其属性连接。

15、验证软件需求的正确性:一致性、完整性、现实性、有效性。

16、总体设计的基本目的是回答"概括地说,系统应该如何实现?",总体设计又称为概要设或初步设计。

17、模块的独立程度可以有两个定性标量度量:内聚和耦合。

18、软件测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现可至今为止尚未发现的错误的测试。

软件工程导论期末复习重点

软件工程导论期末复习重点

软件工程导论期末复习重点选择、判断略一、名词解释1、软件危机 2 、软件工程 3 、数据字典 4 、模块化 5 、黑盒测试6、软件维护7 、软件过程8 、快速原型9 、白盒测试二、简答题1、可行性研究目的和任务?2、可行性研究包括哪几方面的内容?3、简述需求分析的描述工具和基本任务?4、什么是模块化?模块设计的准则?5、详细设计阶段的根本目标和任务?6、比较面向数据流和面向数据结构两类设计方法的异同?7、测试与调试的主要区别?8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。

9、比较层次方框图与结构图的异同?10、结构化程序设计的基本原则?11、提高软件编码效率的3 条原则?、名词解释1、软件危机答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

2、软件工程答:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

3、数据字典答:数据字典是描述数据流图中数据的信息的集合。

它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。

4、模块化答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

5、黑盒测试答:黑盒测试也称为功能测试, 它着眼于程序的外部特征, 而不考虑程序的内部逻辑结构。

测试者把被测程序看成一个黑盒, 不用关心程序的内部结构。

黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

软件工程导论期末复习重点

软件工程导论期末复习重点

软件工程导论期末复习重点软件工程期末复习一、软件工程学概述1.软件危机:计算机开发和维护的过程中所遇到的一系列问题名词解释(需要加上软件危机产生的原因)对用户的要求没有完整准确的认识就匆忙着手编写程序论述题(需要加上软件危机的典型表现)01.对软件开发成本和嫉妒的估计常常不准确02.用户对已完成软件系统的不满意情况经常发生03.软件的质量靠不住2.软件工程:指导计算机开发和维护的一门工程学科?名词解释3.软件工程方法学的三要素:方法、工具、过程4.软件生命周期的三个时期:软件定义、软件开发、运行维护01.软件定义时期的三个阶段:问题定义、可行性研究、需求分析02.软件开发时期的四个阶段:总体设计、详细设计、编码、单元测试,综合测试,前两个称系统设计,后两个称系统实现03.软件维护时期:只要任务是使软件持久的满足用户的需要,具体的说,当软件在使用过程中发现错误时应该加以纠正,当环境改变时应修改软件以适应新的环境,当用户有新的需要时,应该及时改进软件以满足用户新的需求,本时期不在划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程5.可行性研究的结果是客户做出是否继续这项工程的决定的重要依据,只有投资取得较大收益的的那些工程项目才是值得继续进行下去的6.需求分析的目标是:确定出系统必须具备哪些功能,和用户密切配合,充分交流信息,以得出经过系统确认的系统逻辑模型7.软件维护的四类维护活动:01.改正性维护:改正和诊断在使用过程中发生的软件错误02.适应性维护:修改软件以适应新的环境变化03.完善性维护:根据用户的需求改善和扩充软件使它更完善04.预防性维护:为将来的维护活动事先做准备8.瀑布模型: ?论述题01.传统的瀑布模型开发软件的特点A.阶段间具有顺序性和依赖性B.推迟实现的观点C.质量保证的观点02.软件配置:程序、文档、数据03.注释有什么用:提高代码的可读性(有待补充)二、可行性研究1.可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决2.从三个方面研究每种解法的可读性;01.技术可行性:使用现在的技术能实现这个系统吗?02.经济可行性:这个系统的经济效益能超过它的开发成本吗?03.操作可行性:系统的操作方式在这个用户组织内能行得通吗?3.系统流程图:是概括的描绘物理系统的传统工具。

《软件工程导论》考试重点

《软件工程导论》考试重点

软件工程复习1.重点1-9章2.掌握基本概念软件危机的典型表现,解决途径软件过程的主要模型数据流图的用途验证软件需求模块独立程度度量最基本的控制结构盒图黑、白盒测试软件维护的代价面向对象方法需求陈述软件工程学可行性研究的任务事件、状态转换获取需求的典型方法详细设计的具体任务测试、调试、维护性质类的关联软件生命周期系统的逻辑模型软件结构的层次系统细化流图内聚与耦合用面向对象方法开发软件,三大模型的功能软件项目管理的周期良好的软件设计原则3. 有穷状态机4. 三个主要作业5. MTTF6. 根据数据流图类型,映射出对应的软件模块结构图7. 流图,并计算它的环形复杂度8. 程序流程图设计测试用例7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=15h。

要求:(1) 根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间τ的关系曲线。

在画这条曲线时做了什么假设?(2) 为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?解:(1)假设MTTF与时间存在线性关系(2)设MTTF = a + bt10 = a + b15 = a + 2b得: a = 5, b = 5所以: 100 = 5 + 5tt = 19(月)由:))((t E E K I MTTF c T T -=有: )15(1000010-=T E K )25(1000015-=T E K 求得:E T = 45, K=33.33))19(45(33.3310000100Ec -= 求得:Ec(19) = 42还有 45 - 42 = 37-9 如对一个长度为100000条指令的程序进行集成测试期间记录下下面的数据:(a) 7月1日:集成测试开始,没有发现错误。

软件工程导论考试知识点汇集

软件工程导论考试知识点汇集

软件工程导论(第5版)考试知识点汇集(Collection of test knowledge points in Software Engineering Introduction (FifthEdition) )Chapter 1: introduction to software engineering1.1 software crisis: refers to a series of serious problems encountered in the development and maintenance of computer software.The following aspects are shown:(1) it is hard for users to be satisfied with the software developed.(2) the quality of software products is often unreliable.(3) general software is hard to maintain.(4) the efficiency of software production is very low.(5) the cost of software development is more and more big.(6) software cost and development schedule are difficult to estimate.(7) the development of software technology can not meet the needs of the popularization and deepening of computer applications.2. definition of software: software is another part of computer system which is interdependent with hardware. It is a complete set of programs, data and related documents. Software = program + data + document1.2. software engineering definition: an engineering discipline to guide the development and maintenance of computer software.4. basic principles of software engineering:1) strict management with a phased life cycle plan2) adhere to the stage review3) strict product control4) adopt modern programming techniques5) the results should be clearly reviewed6) the development team should be few and refined7) recognizing the need for continuous improvement of software engineering practices5. methodology of software engineeringThe collection of a set of technical methods used throughout the software life cycle is often called methodology.Three elements of software engineering: tools, methods and processes.Traditional methodology; object oriented methodology.1.3 software life cycleA, feasibility analysis and development plan: mainly determine the development goal and feasibility of software.B, requirements analysis: in determining the feasibility of software development, the software needs to realize each function is analyzed in detail.C, design (outline design and detailed design): according to the results of requirements analysis, the whole software system is designed, such as system framework design, database design and so on.D, encoding: converts the results of software design into code programs that can be run by the computer.E, test: after the software design is completed, we must go through rigorous testing, to find the software problems in the whole design process and correct it.F, maintenance: after the software development is completed and put into use, due to various reasons, the software can not continue to adapt to the requirements of users1.4 software process1. traditional waterfall model: is an overall development model, the physical realization of the program is concentrated in the late stage of development, the user can see his product in the end.2. rapid prototyping model: the user can give a complete and accurate description of the demands ituation, according to the group of the basic needs of users, the rapid construction of a prototype (software), and then evaluate the further refinement and adjustment of prototype, which meet the requirements of the users, developers will also make better do understand.3. incremental model: a model that incrementally develops software versions that are progressively improved.4. helix model: spiral model is an organic combination of waterfall model, prototype model and incremental model, and increases the risk analysisFeasibility study of the second chapter2.1 the purpose of the feasibility study: to determine whether the problem in the definition of the problem is worth solving, and whether the problem can be solved under the constraints.The task of feasibility study:(1) the definition of the problem is further analyzed and clarified, and the logical model of the system is derived on the basis of clarifying the problem;(2) from the system logic model, choose several main solutions to the problem, study the feasibility of each solution, and make recommendations for future actions;(3) if the problem has no feasible solution, it is suggested to stop system development; if there is a feasible solution to the problem, a better solution should be recommended and a preliminary plan for the project should be worked out.2.2 content of feasibility study process:(1) technical feasibility: whether the existing technology can realize the system, the existing technical personnel can be competent, the development of the system resources can meet;(2) economic feasibility: is the economic benefit beyond the development cost?;(3) operational feasibility: does the system operate within the user?(4) legal feasibility: whether the new system development infringes on the interests of others, the collective or the state, and whether it violates the laws of the state.Steps of feasibility study?(1) review the size and objectives of the system;(2) study the system currently in use, sum up the advantages and disadvantages of the existing system, and propose the rudiment of the new system;(3) a high-level logic model for deriving new systems;(4) recommended proposal;(5) recommended action policy;(6) writing plan task book (feasibility report);(7) submit a review.2.3 system flow diagram: use graphic symbols to describe each component of the system in black box form2.5 data dictionary: the collection of all objects and their relations in the database.Methods: the top-down decomposition of data, when decomposed to no need to further define, and each project related people are also clear the elements of its meaning, then the decomposition process is over.2.6 cost / benefit analysis cost estimation: the cost of software development is mainly manifested as humanc onsumptionCost / benefit analysis methods: first, estimate costs and benefits; then compare costs and benefits; judge whether to develop from an economic point of view. 1, the time value of money; 2, investment recovery period; 3, net income; 4,investment recovery rate.The third chapter: demand analysis3.1, the task of requirement analysisMission: define the goals of the future system accurately and determine what the system has to do to meet the needs of the users.Requirements composition: business requirements, user requirements, system requirements;3.2, the method of communication with users to obtain requirements: A, interview; B, data flow oriented top-down refinementC, simple application specification technology; D, rapid prototyping software3.3, analysis modeling and specificationComposition includes:(1) Introduction: writing purpose, background description, term definition and reference material, etc..(2) outlining the main functions, constraints, or special needs.(3) data flow graph and data dictionary.(4) user interface, hardware interface and software interface.(5) performance requirements, attributes, etc..(6) other requirements, such as database, operation and fault handling, etc..1) analytical modelingModelIt is a kind of abstraction to understand things and make things, and it is an unambiguous description of thingsConsisting of a set of graphical symbols and rules for organizing these symbols.Modeling methodData model entity relation diagram; function model data flow diagram; behavior model state transition diagram2) specification of software requirementsUsually use natural language + model, complete, accurate and specific description of system data requirements, functional requirements, performance requirements, reliability and availability requirements, error handling requirements, interface requirements, constraints, and reverse demand which may be in the future.3.4, entity relation diagram (E-R diagram)The fifth chapter: overall design5.1 design processSystem design phase: determine the specific implementation of the system; structure design phase: determine the structure of softwareThe main task of the overall design is to complete the design of software structure, determine the relationship between modules and modules of the system.5.2 design principleThe 1. module: the program is divided into independent naming and independent access module, each module to complete a sub function of the modules are integrated together to form a whole, complete function and meet the requirements of users.2. abstraction: the essential nature of abstract transactions, without considering their details for the moment.3. step by step refinement;4. information hiding and localization;5. module independence;5.3 heuristic rules: 1. improve software structure to improve module independenceThe 2. module is moderate in scale 3. proper control of depth, width, fan out and fan in4. The scope of the module should be within the control domain5, reduce the complexity of the interface6, single out, single entry, avoid content coupling7, module function can be predictedThe sixth chapter: detailed design6.1 structure program designClassical definitionThe 3 basic control structures are connected only by sequence, selection and loop, and each block has single entrance and single exit characteristicsComprehensive definitionProgramming method of using GOTOs tatement as few as possible. It is best to use GOTOs tatements only when errors are detected, and should always use forward GOTO statementsThe main task of detailed design?Write the "detailed design instructions" of the software. The work that thesoftware personnel should complete:(1) determine the algorithm for each module, select a suitable tool to express the process of the algorithm, and write the detailed process description of the module(2) determine the data structure used by each module(3) determine the details of the module structure, including the interface to the system and the user interface, the interface to other modules within the system, and the details of the module input data, output data and local data(4) design a set of test cases for each module, so that the module code(i.e. program) is scheduled for testing in the encoding phaseProgram control structure: any program logic can be represented by three basic structures: sequence, selection and loop, and two extension structures, selection and loop.6.2 man-machine interface designPrinciple: 1. system response time; 2. user assistance facility3. error information processing;4. command interactionHuman computer interface design guideGeneral interactive guideGuide to information displayData entry Guide6.3 tools for process design1. program flow chart2. box diagram (N-S diagram)3. PAD diagram - problem analysis diagram4. decision table6.4 data oriented design methods1. Jackson diagram2. improved Jackson graph3.Jackson methodThe seventh chapter: Implementation7.1 codingDefinition: translating software design results into programs written in some programming languageSelect the general guidelines for programming languages:?System user requirementsA compiler that can be usedAvailable software toolsEngineering scale?Programmer's knowledge?Requirements for software portability?The application domain of softwareThe task of coding: using the selected programming language, translating the process description of the module into the source code written in language (source code).Coding style guidelines.(1) source code: including appropriate identifiers, appropriate annotations, reasonable layout and clarity of the program list;(2) data: data structure or data type that the order of standardization; the name of the variable as far as possible;on complex data structures to illustrate the implementation method of the data structure in the program design in the notes.(3) the statement structure is simple: don't save space will write multiple statements on the same line; to avoid the complicated conditions and non condition test; avoid using nested loops and nested conditions; brackets use is to make logical expressions and arithmetic operations in order to clear and intuitive expression.Efficiency: (4) considering the time memory efficiency, input / output running efficiency; in dealing with the relationship between program correctness, clarity and efficiency between the first for the program right after the fast; first for clear and fast; in order to keep the program simple fast; write clearly is not clear "efficiency" sacrifice.7.2 software testing foundationThe goal of software testing is to find out and eliminate the bugs in the software as much as possible, and finally give a high quality softwaresystem to the usersSoftware testing criteria(1) all tests should be traceable to user requirements(2) the test plan should be worked out before the test beginsOnce the requirements model is completed, the test plan can be startedAfter building the design model, you can start designing detailed test scenarios(3) Pareto principle: 80% of the errors found in the test are likely to be caused by 20% of the modules in the program. The problem is how to find these suspicious modules and test them thoroughly(4) start from "small scale" test, and gradually carry out "large-scale" test First, focus on testing a single program module, then focus on testing the integration module cluster, and finally find errors in the entire system(5) test cases should be composed of two parts: input data and expected output results, taking into account both reasonable input and unreasonable input data(6) exhaustive testing is impossibleExhaustive testing is a test that checks all the possible execution paths of a program(7) in order to achieve the best test results, independent third parties should be engaged in the test workSoftware testing methodStatic testing: the basic feature is to analyze, check and review the software, not actually running the software being tested.Dynamic testing: by running software to check the dynamic behavior of the software and the correctness of the resultsSoftware testing steps: 1. module test, 2. subsystem test, 3. system test4. acceptance test5. parallel operation7.3 unit testUnit test emphasis: module interface; local data structure; important execution path; boundary condition; error handling channel7.4 white box testing technologyFirst, logical coverageLogical coverage is the design of test cases based on the logical structure of the program.Statement coverageDecision coverageConditional coverageDecision condition coverageConditional combination coverPath coverage7.5 black box testing technology1. Equivalence class divisionDivide the input domain of the program (all possible input data) into several data classes2. Boundary value analysis3. Error guessing: it is a special case that lists possible errors and errors in the program, and chooses the test plan according to them7.6 debuggingDebugging is the process of eliminating errors after testing errorsThe first step: determine the location of the error (95% workload);The second step: correct mistakes.Debugging approach debugging strategy1. brute force method: print the contents of the memory, looking for the wrong clues, is the lowest efficiency of the program debugging method.2. backtracking: starting from the discovery of the problem segment, manually tracing back to the analysis of the program code, until the error is found.3. reasons exclusion methodIt includes: searching, induction and deduction7.7 software reliability: 1, basic concepts1 reliability (Reliability): the probability of a successful operation of a program within a given time interval according to the specifications.2 availability (Usability): the probability of successful operation of a program at a given time point and in accordance with the specifications.3 correctness (Correctness): the function of the program is correct.The eighth chapter: maintenance8.1 definition of software maintenanceThe process of modifying software in order to correct errors or meet new requirements after the software has been delivered.8.2 characteristics1. comparison between structured maintenance and unstructured maintenance2. The cost of maintenance3, maintenance issues8.3 processIn essence, the software definition and development process is modified and compressed1. Establish maintenance organization2. Maintenance Report3. Maintenance of event streams4. Records of preservation and maintenance5. Evaluate maintenance activities8.4 software maintainabilityMaintenance personnel understand, correct, change and improve the difficulty of the software.1. The factors that determine software maintainability2, documentation - the determinant of maintainability is more important than code.3, reviewThe ninth chapter is an introduction to object oriented methodology9.1 overview9.2 basic concepts of object oriented objectObjects can either be concrete physical entities, or can beartificial concepts, or anything that has definite boundaries and meanings.Object definitionDefinition 1: an object is a set of operations with the same state.Definition 2: an object is an abstraction of something in the problem domain, which reflects the system's ability to store information about it or interact with itDefinition 3: objects: =<ID, MS, DS, MI>Name, operation set, data set, message name collection (i.e. external interface) accepted by objectsCharacteristic :Data centric, no data independent operations;The object is active: the object is active and not passively waiting to be processed, and the external can only be operated by message request;3. Encapsulation: external operation,It is not necessary to know the data structure and algorithm inside the object;(4) parallelism: different objects independently process their own data, and only communicate with each other by passing messages;Module independence is good: strong cohesion, coupling loose。

软件工程导论第五版复习资料全

软件工程导论第五版复习资料全

软件工程导论第一章软件工程学概述1、软件完成特点功能的程序以及数据结构和文档2、软件的特点(1)软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。

软件开发、设计几乎都是从头开始,成本和进度很难估计。

(2)软件存在潜伏错误,硬件错误一般能排除。

(3)软件开发成功后,只需对原版进行复制。

(4)软件在使用过程中维护复杂:1)纠错性维护—改正运行期间发现的潜伏错误;2)完善性维护—提高或完善软件的性能;3)适应性维护—修改软件,以适应软硬件环境的变化;4)预防性维护—改进软件未来的可维护性和可靠性。

(5)软件不会磨损和老化。

3、软件危机及软件危机的表现软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

软件危机的表现1)对软件开发成本和进度的估计常常很不准确。

常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象,从而降低了开发商的信誉,引起用户不满。

2)用户对已完成的软件不满意的现象时有发生。

3)软件产品的质量往往是靠不住的。

4)软件常常是不可维护的。

5)软件通常没有适当的文档资料。

文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

6)软件成本在计算机系统总成本中所占比例逐年上升。

特别是软件维护成本迅速增加,已经占据软硬件总成本的40%~75%。

7)开发生产率提高的速度远跟不上软件需求。

4、软件工程及软件工程的特性软件工程是用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。

软件工程的特性:1)软件工程关注于大型程序的构造2)软件工程的中心课题是控制复杂性3)软件经常变化4)开发软件的效率非常重要5)和谐地合作是开发软件的关键6)软件必须有效地支持它的用户7)在软件工程中是由具有一种文化背景的人替具有另一种文化背景的人创造产品5、软件工程的基本原理用分阶段的生存周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应少而精承认不断改进软件工程实践的必要性6、软件生存周期一个软件从得出开发要求开始直到该软件报废为止的时期。

《软件工程导论》期末的考试重点

《软件工程导论》期末的考试重点

第一章1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。

2.产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.软件配置的主要包括程序、文文件和数据等成分。

4.软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。

它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。

(ppt上定义)5.所谓基准配置又称基线配置。

6.通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型7.软件工程方法学包含三个要素:方法、工具和过程。

8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学9.传统方法学也称为生命周期方法学或结构化范型10.面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。

4.对象彼此间仅能通过发送消息互相联系。

11.软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)12.最基本的测试是集成测试和验收测试。

13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。

14.所谓构件就是功能清晰的模块或子系统15.RUP(Rational统一过程)软件开发的生命周期是一个二维的生命周期模型16.”极限”二字的含义是指把好的开发实践运用到极致17.微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。

软件工程第五版课本重点及课后题

软件工程第五版课本重点及课后题

1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

具有长期性和症状不明显特征。

2.软件危机表现在以下几个方面:(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

特点:长期性和症状不明显性。

3.为什么会产生软件危机?一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

4.什么是软件工程?软件工程是指导计算机软件软件开发和维护的一门工程学科,采用工程的概念,原理,技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效的维护它,这就是软件工程。

具体的定义:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件。

5.软件生命周期的8个阶段:(1)问题定义(确定问题);(2)可行性研究(可研报告);(3)需求分析(规格说明,逻辑模型);(4)总体设计(确定系统体系结构);(5)详细设计(数据结构);(6)编码和单元测试(程序清单,单元测试报告);(7)综合测试;(8)软件维护。

6.瀑布模型(文档驱动)特点:(1)阶段间具有顺序性和依赖性;(2)推迟实现的观点;(3)质量保证的观点。

3.快速原型模型(建立功能原件):快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

1.可行性研究包括哪几方面的内容?(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;(2)经济可行性:经济效益是否超出开发成本;(3)操作可行性:系统操作在用户内部行得通吗。

2.可行性研究的过程:(1)复查系统的规模和目标;(2)研究目前正在使用的系统(经济角度、功能指标、环境约束)(3)导出新系统的高层逻辑模型(工具:数据流图、数据字典);(4)进一步定义问题(5)导出和评价供选择的解法(技术角度、操作可行性、经济可行性、实现进度表);(6) 推荐行动方针;(7)草拟开发计划(8)书写文档提交审查3.数据流图(DFD)是一种图形化技术,它描述信息流和数据从输入移动到输出的过程中所经受的变换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(最后部分为每年必考题)第一章1. .软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。

它借鉴传统工程的原则、方法,以提高质量,降低成本为目的.2. 软件危机的概念:软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。

3. 产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

4. 面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。

4.对象彼此间仅能通过发送消息互相联系。

5. 软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)6. 瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。

7. 微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。

第二章1.可行性包括:技术可行性,经济可行性,操作可行性。

2. 系统流程图是概括地描绘物理系统的传统工具。

它的基本思想是用图形符号以黑盒子形势描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。

系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。

4. 书库流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

在数据流图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。

数据流图是系统逻辑功能的图形表示。

5. 用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。

有数据元素组成的数据的方式只有下述3种基本类型:顺序(即以确定次序连接两个或多个分量)。

选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次第三章1.访谈有两种基本形式,分别是正式的和非正式的访谈2.所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析3.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。

4.使用简易的应用规格说明技术分析需求的典型过程:(总结出来)5.快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。

6.所谓模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。

7.需求分析过程应该建立3种模型,它们分别是数据模型,功能模型,行为模型.8.概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型9.数据对象是对软件必须理解的符合信息的抽象。

10.数据对象彼此之间相互连接的方式称为联系,也称为关系。

联系可分为3种类型:一对一联系,一对多联系,多对多联系。

11.状态时任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。

12.事件就是引起系统做动作或(和)转换状态的控制信息。

13.IPO图是输入,处理,输出图的简称。

14.软件的验证:一致性,完整性,现实性,有效性第四章1.所谓形式化方法,是描述系统性质的基于数学的技术,也就是说,如果一种方法有件事的数学基础,那么它就是形式化的。

2.用于确定系统中隐含的定时问题的一种有效技术是Petri网3.用Z语言描述的、最简单的形式化规格说明含有下述4个部分:给定的集合、数据类型及常数。

状态定义初始状态操作第五章1.总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。

2.模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列。

3.抽象就是抽出事物的本质特性而暂时不考虑它们的细节。

4.逐步求精定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。

5.抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示。

6.信息隐藏,信息隐藏的原理,1.局部化就是把一些关系密切的软件元素物理的放得彼此靠近。

2.耦合是对一个软件结构内不同模块之间互连程度的度量。

3.数据耦合是低耦合,控制耦合式中等程度的耦合,最高程度的耦合式内容耦合。

4.如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。

5.中内聚主要有两类:如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。

6.高内聚也有两类:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为顺序内聚。

深度表示软件结构中控制的层数,它往往能粗略的标志一个系统的大小和复杂程度。

7.宽度是软件结构内同一个层次上的模块总数的最大值。

8.扇出事一个模块直接控制(调用)的模块数目。

9.一个模块的扇入表明有多少个上级模块直接调用它。

10.设计的很好的软件结构通常顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用模块中去(底层模块有高扇出)11.模块的作用域应该在控制域之内(2种方法)?????12.面向数据流的设计方法把信息流映射成软件成结构,信息流的类型决定了映射的方法。

信息流有两种类型:变换流,事务流。

13.总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案。

并且进而确定组成系统的每个程序的结构。

14.在进行软件结构设计时应该遵循的最主要的原理是模块独立原理。

第六章1.结构程序设计的经典定义:如果一个程序的代码仅仅通过顺序,选择和循环这3种基本结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

2.系统响应时间指从用户完成某个控制动作(例如,按回车键或单击鼠标),到软件给出预期的响应(输出信息或动作)之间的这段时间。

3.系统响应时间有两个重要的属性:长度和易变性。

4.易变性指系统响应时间相对于平均响应时间的偏差。

5.一般交互指南涉及信息显示,数据输入和系统整体控制。

6.过程涉及的工具:程序流程图,盒图,PAD图,判定表,判定树7.PDL作为一种设计工具有如下一些特点(要求看懂伪码)第七章1.通常把编码和测试统称为实现。

2.编码和单元测试属于软件生命周期的同一个阶段。

3.编码的标准:1.系统用户的要求2.可以使用的编译程序3.可以得到的软件工具4.工程规模4.程序员的知识6.软件可移植性要求7.软件的应用领域5.所谓程序内部的文档包括恰当的标识符、适当的注释和程序的视觉组织等。

6.当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。

7.效率主要指处理机时间和存储器容量两个方面。

8.在大型计算机中必须考虑操作系统页式调度的特点,一般说来,使用能保持功能域的结构化控制结构,是提高效率的好方法。

9.二级存储器的输入输出应该以信息组为单位进行。

10.测试阶段的根本目标是尽可能地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

11.软件测试的目标:1.测试是为了发现程序中的错误而执行程序的过程 2.好的测试方案是发现了至今为止发现的错误的测试 3.成功的测试是发现了至今为止尚未发现的错误的测试。

12.测试的正确定义是“为了发现程序中的错误而执行程序的过程”。

第九章面向对象方法学引论1.使描述问题的’问题空间’(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。

2.人们把计算机中的实体称为解空间对象。

3.对对象施加的操作就是该对象的行为。

4.面向对象方法学的优点:1.与人类习惯的思维方法一致2.稳定性好3.可重用性好4.轻易开发大型软件软件产品5.可维护性好5.面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型,开发出尽可能直观、自然地表现求解的软件系统。

6.传统的软件重用技术是利用标准函数库。

对象的概念:在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是认为的概念,或者是任何有明确边界和意义的东西。

7通常把对象的操作称为服务或方法。

8.对象的定义:定义1.对象是具有相同状态的一组操作的集合定义2.对象是对问题域中某9个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或它交互的能力,也就是说,10对象是对属性值和操作的封装。

11.对象是封装可数据结构及可以施加在这些数据结构上的操作的封装体12.对象中的数据表示对象的状态,一个对象的状态只能由该对象的操作来改变。

13.对象的特点:1.以数据为中心 2.对象是主动的 3.实现了数据封装4.本质上具有并行性简述软件测试的任务、目的与类型。

答:软件测试是一个为了寻找软件错误而运行程序的过程。

目的就是为了发现软件中的错误。

一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。

一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

软件测试主要分为白盒测试和黑盒测试两大类。

简述软件工程目标和面临的主要问题。

答:软件工程的目标是应用计算机科学、数学及管理科学等原理开发软件的工程。

它采用经过实践验证的工程的原则、方法,以提高质量,降低成本。

但是目前的软件开发面临着许多问题:(1)对软件开发成本和进度的估计常常很不准确。

(2)用户常对“已完成的”软件系统不满意。

(3)软件产品的质量往往靠不住。

(4)软件常常很难维护。

(5)软件常常缺乏适当的文档资料。

(6)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

(7)软件成本在计算机系统总成本中所占的比例逐年上升。

简述软件开发过程、每个里程碑的提交物。

答:软件开发的基本过程:(1)可行性研究,做初步的需求分析工作,决定项目可行与否(2)软件需求分析,软件工程师必须了解软件的信息领域,以及需求的功能、行为、性能和接口。

系统需求和软件需求均需文档化,并与用户一起复审。

并提交需求分析报告。

(3)设计,包括总体设计和详细设计,软件设计是一个多步骤的过程,主要是对软件的数据结构、软件体系结构、界面表示及过程细节进行设计。

相关文档
最新文档