软件工程复习

发布 2022-01-11 22:52:28 阅读 9891

一、什么是软件工程?他有什么本质特性?

定义:软件工程指导计算机软件开发和维护的一门工程学科。

本质特性:1、软件工程关注于大型程序的构造。

2、软件工程的中心课题是控制复杂性。

3、软件经常变换。

4、开发软件的效率非常重要。

5、和谐地合作是开发软件的关键。

6、软件必须有效地支持它的用户。

7、在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。

三要素:方法、工具、过程。

二、软件生命周期有那几个时期组成?

1、 软件定义:问题定义、可行性研究、需求分析。

2、 软件开发:总体设计、详细设计、编码、单元测试和综合测试。前两个又称系统设计,后两个称系统实现。

3、 维护时期:

三、模块独立程度的两个定性标准度量:内聚:用于描述模块内部联系的紧密程度。耦合:用于描述模块之间联系的紧密程度。

模块独立性比较强的模块应该是具有高内聚性和低耦合度。

四、详细设计的任务:1、过程设计2、数据库物理设计3、人机交互设计。

详细设计的描述工具:(1)程序流程图(2)n-s图(3)pad图(4)判定表(5)判定树(6)过程设计语言(pdl)。

详细设计的描述方法:jackson方法、mccabe方法、halstead方法。

五、简述如何检查数据流图的正确性和提高它的易理解性?

答:可从以下几个角度来检查数据流图的正确性:数据守恒、文件的使用:父图和子图的平衡等;

提高数据流图的易理解性可从以下几个方面进行:简化加工间的联系、注意分解的均匀、适当的命名等。

六、软件测试两种基本方法:白盒法和黑盒法。

1、白盒法又称为逻辑覆盖法,因为要以程序(模块)内部的逻辑结构为基础来设计测试用例,主要用于模块 (单元)测试。

白盒法常用的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。

白盒法测试步骤:1)选择逻辑覆盖标准,2)按照覆盖标准列出所有情况,3)设计测试用例,4)验证分析运行结果与预期结果。

2、黑盒法是把测试对象看作一个黑盒,测试时完全不考虑程序的内部的逻辑结构与内部特性,只需根据需求规格说明书,测试程序的功能或程序的外部特性。因此黑盒法又称为功能测试或数据驱动测试。

七、软件测试人员尽量不要编程人员参与,这是为什么?

答:软件测试的目的是为了发现程序中的错误而执行程序的过程。正确认识测试的目标是十分重要的,测试目标决定了测试力案的设计。

如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。 由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。

八、统一建模语言uml的价值?

可用于商业建模,软件开发建模的各个阶段,也可用于其它类型的系统。

uml的价值在它综合并体现了世界上面向对象方法实践的最好经验,支持用例驱动以架构为中心以及递增和迭代地进行软件开发。

大题。根据问题描述绘制dfd

启发规则:1、改进软件结构提高模块独立性;2、模块规模应适中;3、深度、宽度、扇出和扇入都应适当;4、模块的作用域应在控制域内;5、力争降低模块接口的复杂程度;6、设计单入口单出口的模块;7、模块功能应该可以**。

控制范围 — 结构方面的特点,包括模块及其所有下属模块。

作用范围 — 功能方面的特点,判定所涉及到的模块。

sd法认为,当作用域是控制域的子集时,才能获得较低的块间联系。

看ppt ch7中作业题27页。

某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按a类标准收费(不打折),一次购物累计多于或等于100元,按b类标准收费(打9折);会员顾客一次购物累计少于1000元,按c类标准收费(打8折),一次购物累计等于或多于1000元,按d类标准收费(打7折)。测试对象是按以上要求计算顾客收费模块,按照路径覆盖法设计测试用例。

被测模块的程序流程图如图所示:

按照路径覆盖设计测试用例如下:

是会员,累计消费900元, 覆盖路径127

是会员,累计消费2000元, 覆盖路径128

不是会员,累计消费80元, 覆盖路径134

不是会员,累计消费300元, 覆盖路径135

提高软件产品的可维护性的措施:

1.尽可能使用高级语言编写程序。(

答:正确。用高级语言编写程序可以给程序变量和程序模块赋予含义鲜明的名字,据此较易把程序对象和其所代表的实体联系起来,另外高级语言所使用的符号和概念更符合人的习惯,这样书写的程序容易阅读,因此也就更容易维护。

2.进行总体设计时加强模块间的联系。(

答:不正确。模块间耦合越紧密,程序就越难理解和修改,修改后测试也就比较困难。因此加强模块间的联系将降低软件的可维护性。

3.尽量用可重用的软件构件来组装程序。(

答:正确。可重用构件基本上没有错误,用这样的构件组装的程序可靠性高,改正性维护需求自然就少。

此外,可重用构件适应性强,应用范围广,容易适应新需求,因此,用这样的构件组装的程序也较容易实现适应性和完善性维护。

4.测试完程序后,删去程序中的注解以缩短源程序长度。

答:不正确。程序中注解是提高程序可理解性的关键内部文档,删去程序中的注解必会降低程序的可读性和可理解性,从而降低可维护性。

5答:正确。在分析用户需求时同时考虑维护问题,列出将来可能增加或变更的需求,就可以在设计时为将来可能做的修改预先做一些准备,使得在用户提出这些维护需求时,实现起来比较容易些。.

在分析用户需求时同时考虑维护问题。(

6.在开发过程中尽量保证各阶段文档的正确性。(

答:正确。完整准确的文档对提高软件的可理解性有重要贡献,保证文档的正确性是提高软件可维护性的关键。

7.尽量减少程序模块的规模。(

答:不正确。程序模块的规模很小就会使程序中包含的模块很多,这将使模块间的接口数量大大增加,从而增加了理解、修改和测试程序的难度,降低了软件的可维护性。

m公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入m公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告简要阐明你的理由。

瀑布模型的缺点在于只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。另外瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要,它已不适宜开发实验型的软件。

根据快速原型法的特点,原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。说明它特别适合于开发探索型、实验型的软件。

假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算使用哪种软件生命周期模型?

请说明你作出选择的理由。

对这个软件的需求很明确,实现开平方功能的算法也很熟悉,因此,既无需通过原型来分析需求也无需用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。。综上所述,为了开发这个简单的软件,使用大多数人熟悉的瀑布模型就可以了。

软件工程复习

单选填空简答思考题。1 传统的软件瀑布生命模型包括哪六个方面?需求 分析 设计 实现 交付后维护 退役2 传统瀑布生命模型的中交付后维护包括哪三种?改正性维护 适应性维护 完善性维护3 现代维护和传统维护的观点有何不同?1 传统维护的观点是先开发后维护。2 现代维护的观点是无论是在软件安装前还是安装...

软件工程复习

软件工程复习资料。备注 1.老师反复强调我们之前做过的作业要熟练掌握 需求陈述 实验课画的模型 自己画。的数据流图 2 蓝颜色的字都是老师上课补充的,还有很多需要自己去补充,欢迎修正完善。核心问题 在考试做大是要表述清楚详细,关。键词要有 问题定义 专用名词表要解决的问题是什么?达要准确,不能更改 ...

软件工程 复习

1.概念 软件危机是指在计算机软件开发 使用与维护过程中遇到的一系列严重问题。2.为什么会产生软件危机?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致使软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。3.软件危机的表现 经费预算经常突破...