第7章 软件工程(答案)

合集下载

精品文档-软件工程经济学(赵玮)-第7章

精品文档-软件工程经济学(赵玮)-第7章

第7章 软件测试的资源分配、进度管理与最优发行 NIS软件的测试过程通常包括拟定测试计划和编制测试大 纲,设计和生成测试用例,按序完成单元测试、集成测试、系 统测试和运行测试,生成相应的测试报告等基本活动,其测试 流程见图7.1。需要说明的是,系统测试是需在相关硬件(计 算机硬件与网络设备)配置好的情况下所进行的软/硬件系统联 试,经系统测试通过后即可交付用户运行,而运行测试则是在 用户的作用下为提高软件可靠性所做的相关测试。此外,为使 软件测试能省时高效,应采用测试与开发同步进行和逐步推进 的渐近策略,并将测试贯穿于软件的整个生命周期的始终。
第7章 软件测试的资源分配、进度管理与最优发行
集成测试包括功能集成测试、操作剖面建立和有效性测试 三部分,其中功能测试通常采用非增量式集成方法或增量式集 成方法。非增量式集成方法是首先分别测试各个模块,然后再 把这些已被测试并确认为功能与性能符合设计要求的模块组合 起来进行整体测试;增量式集成测试方法则是采用测试一个模 块组装一个模块,然后再测试再组装,直到所有模块均被组装 完毕,并被整体测试合格为止的一种逐步组装的方式。显然, 非增量式集成测试可以对所有模块并行进行单元测试,能充分 利用人力,加快工程进度;但这种一步到位的方法容易形成混 乱,出现错误后不容易查找和定位,故一般适用于规模较小的 软件。增量式集成测 试虽然采用逐步到位的方法,要多费人力和工时,但由于每个 已被测试过的模块还可以在以后组装过程中的每一步骤(组装 一个新模块)进行新的测试,从而使得程序测试更为彻底。因 而从测试有效性角度来看,增量式集成测试将比非增量式集成
第7章 软件测试的资源分配、进度管理与最优发行 集成测试的第三个重要部分是有效性测试。由于软件经组 装测试并排错后,接口方面的问题已经解决,故以后集成测试 的主要问题是解决软件的有效性问题,所谓软件的有效性问题, 是指软件的功能、性能、可靠性、安全性及保障性等方面软件 的实际水平是否达到用户的需求。有效性测试是在开发方地点 在模拟用户运行环境的条件下所进行的一种用户需求测试,一 般采用黑盒测试来检验所开发并经单元测验、组装集成测试及 排错后的软件是否与描述用户需求的需求分析说明书相一致。 测试人员一般由开发方的测试人员及软件设计人员组成。以下 简述各类测试的基本内涵。

《软件工程实用教程》第7_章_软件测试技术

《软件工程实用教程》第7_章_软件测试技术

第7 章 軟體測試技術
7.2.3 白盒測試方法 白盒測試也稱結構測試或邏輯驅動測試。在使 用白盒測試方案時,測試者必須檢查程式的 內部結構,從檢查程式的邏輯著手,對所有 邏輯路徑進行測試,得出測試數據。 開始 1 .邏輯覆蓋法:以程式內部的邏輯結構為基礎 的測試用例設計技術。 X=x/a a>1andb= 0 (1)語句覆蓋 X=x+1 A = 2 o r (2)判定覆蓋 x>1 (3)條件覆蓋 輸出a,b,x
第7 章 軟體測試技術
3.錯誤推測法
錯誤推測法是基於經驗和直覺推測程式中所 有可能存在的各種錯誤,從而有針對性的 設計測試用例的方法。
第7 章 軟體測試技術
4.因果圖方法 (1) 分析軟體規格說明描述中,哪些是原因(即輸入條件 或輸入條件的等價類 ),哪些是結果 (即輸出條件 ) , 並給每個原因和結果賦予一個識別字。 (2) 分析軟體規格說明描述中的語義,找出原因與結果之 間、原因與原因之間對應的關係,根據這些關係,畫 出因果圖。 (3) 由於語法或環境限制,有些原因與原因之間,原因與 結果之間的組合情況不可能出現。為表明這些特殊情 況,在因果圖上用一些記號表明約束或限制條件。 (4) 把因果圖轉換為判定表。 (5) 把判定表的每一列拿出來作為依據,設計測試用例
第7 章 軟體測試技術
7.1.2 軟體測試原則 1. 應早並不斷地進行測試 2. 程式員應盡可能避免檢查自己的程式 3. 測試用例應當包括合理的輸入條件和 不合理的輸入條件 4. 測試用例應包括輸入數據和預期的輸 出結果兩部分 5. 全面檢查每個測試結果 6. 嚴格按照測試計畫來測試 7. 充分注意測試中的集群現象 8. 注意遵守“經濟性”的原則
第7 章 軟體測試技術
3)根據規格說明的每個輸出條件,使用前面的原則 1)。 4)根據規格說明的每個輸出條件,應用前面的原則 2)。 5)如果程式的規格說明給出的輸入域或輸出域是有序集 合,則應選取集合的第一個元素和最後一個元素作 為測試用例。 6)如果程式中使用了一個內部數據結構,則應當選擇這 個內部數據結構的邊界上的值作為測試用例。 7)分析規格說明,找出其他可能的邊界條件。

软件工程学课后习题答案

软件工程学课后习题答案

2020/10/27
2020/10/27
2020/10/27
2020/10/27
•作业及解答(第3章)
电话号码=[校内电话号码|校外电话号码] 校内电话号码=非零数字+ 3 位数字 //后面继续定义 校外电话号码=[本市号码|外地号码] 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0 3位数字=3{数字}3 //3至3个数字 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9]
2020/10/27
•作业及解答(第3章)
2020/10/27
•作业及解答(第3章)
从问题陈述可知,本系统数据源点是“病人”和“护士”,他 们分别提供生理信号和要求病情报告的信息。进一步分析 问题陈述,从系统应该“定时记录病人情况以形成患者日 志”这项要求可以想到,还应该有一个提供日期和时间信 息的“时钟”作为数据源点。
软件工程学课后习题答案
2020/10/27
•作业及解答(第3章)
2-4 医院对患者2监护系统的基本要求是随时接收每个病人 的生理信号(脉搏、体温、血压、心电图等),定时记录病 人情况以形成患者日志,当某个病人的生理信号超出医生 规定的安全范围时向值班护士发出警告信息,此外,护士 在需要时还可以要求系统印出某个指定病人的病情报告。
2020/10/27
1 2 3 4 5 6 7 8 9 10 11 12
人数≤40
TTTT
40<人数≤60
TTTT
人数>60
TT T T
助教
T
T
T

软件工程导论(第7章)

软件工程导论(第7章)

测试的正确定义:“为了发现程序中的错 误而执行程序的过程。”
7.2.2 软件测试准则
1)所有测试都应该能追溯到用户需求;
2)应该远在测试前就制定出测试计划;
3)把Pareto原理应用到软件测试中;Pareto原理 说明测试发现的错误中的80%很可能是由程序 中20%的模块造成的。
4)应该从“小规模”测试开始,并逐步进行“大 规模”测试;
USER32.DLL; GDI32.DLL; KERNEL32.DLL。
Windows消息机制:
1)基于消息的事件驱动 消息可以是由硬件发来的(存于系统队列),
也可以由Windows系统和应用程序发来(存于 程序队列中);
每一个Windows程序在不停的捕捉各种消息, 并进行处理;
每个窗口都必须有一个窗口函数,来负责消息 的判断与处理。
3)重要的执行路径 由于不可能进行穷尽测试,因此选择测试
路径是非常关键的。 4)出错处理通路 5)边界条件
7.3.2 代码审查
审查小组: 1)组长; 2)程序的设计者; 3)程序的编写者; 4)程序的测试者。
7.3.3 计算机测试
由于软件模块不是一个独立的系统,不能独 立运行,要依靠其他模块调用,或需要调用其 他模块。
1.模块测试 模块测试又称单元测试,它把每个模块作为
单独的实体来测试。 2.子系统测试
子系统测试是把经过单元测试的模块放在一 起形成一个子系统来测试。
3.系统测试 系统测试是把经过测试的子系统装配成一个完
整的系统来测试。 4.验收测试
验收测试把软件系统作为单一的实体进行测试 (利用用户的实际数据测试)。 5.平行运行
如PL/1、PASCAL、C、ADA等 3)专用语言 如APL、BLISS、FORTH、LISP、PROLOG等

软件工程考核知识点-第7章-软件测试

软件工程考核知识点-第7章-软件测试

软件工程考核知识点-第7章-软件测试7.1 软件测试的目的及原则7.1.1 软件测试的目的(1)软件测试是为了发现错误而执行程序的过程。

(2)一个好的测试用例能够发现至今尚未发现的错误。

(3)一个成功的测试是发现了至今尚未发现的错误的测试。

因此,测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷。

7.1.2软件测试的原则在软件测试中,应注意以下原则:(1)测试用例应由输入数据和预期的输出数据两部分组成。

这样便于对照检查,做到"有的放矢"。

(2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。

这样能更多地发现错误,提高程序地可靠性。

对于不合理地输入数据,程序应拒绝接受,并给出相应提示。

(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。

例如程序正确打印出用户所需信息的同时还打印出用户并不需要的多余的信息。

(4)应制定测试计划并严格执行,排除随意性。

(5)长期保留测试用例。

测试用例的设计耗费很大的工作量,必须作为文档保存。

因为修改后的程序可能有新的错误,需要进行回归测试。

同时,为以后的维护提供方便。

(6)对发现错误较多的程序段,应进行更深入的测试。

有统计数字表明,一段程序中所发现的错误数越多,其中存在的错误概率也越大。

因为发现错误数多的程序段,其质量较差。

同时在修改错误过程中又容易引入新的错误。

(7)程序员避免测试自己的程序。

测试是一种"挑剔性"的行为,心理状态是测试自己程序的障碍。

另外,对需求规格说明的理解而引入的错误则更难发现。

因此应由别的人或另外的机构来测试程序员编写的程序会更客观,更有效。

7.2 测试方法软件测试方法一般分为两大类:动态测试方法与静态测试方法,而动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。

软件工程课后习题答案2-12章

软件工程课后习题答案2-12章

D3生理信息 定时的生理信号
F2生理信号 P1 接收信号 F2生理信号 定时的 生理信号
F6日志 E3 时钟 F3日前、时间 P4 定时取样 生理信号 F6日志 E1 护士 F1要求报告 P6 产生病情报告 D1患者日志




患者生理信 号获取
生理信号












患者监护系 统
危 日志 机信息
安排航班
预 定 信 息
机票 信息
交款
打印取票单 据
打印及发放 机票

航班
通 效 知
设置航班
录入预定信 息
录入取票凭 证
核对取票凭 证
P2 分析信号 E2 病人 F2生理信号
危及病人信息 F2生理信号 D2患者安全范围 P7制定安 全范围 P5 更新日志
P3 产生警告信息 F4警告信息 E1 护士
F5安全范围
监护处理
志 日 定时生理信号
号 生理信
监护信息输 出



制定生理信 号安全范围
接收信号
定时取样 生理信号
时间
分析信号
更新日志
报警
危机信




信息 危机

信 理 生 时 定 号 信 理
日 志
取得时间

病情报告
• P104:4 • 美国某大学有200名教师,校方与教师工会刚刚签订一项协议。 按照协议,所有年工资超过$26000(含$26000 )的教师工 资将保持不变,年工资少于$26000的教师将增加工资,所增 加工资数额按下述方法计算:给每位教师所赡养的人(包括 教师本人)每年补助$100,此外,教师有一年工龄每年再多 补助¥50,但是,增加后的年工资总额不能多于$26000。 • 教师工资档案存储在行政办公室的磁带上,档案中有目前的 年工资、赡养的人数、雇佣日期等信息。需要写一个程序计 算并印出每名教师的原工资和调整后的新工资。 • 要求:(1)画出此系统的数据流图;(2)写出需求说明; • (3)设计上述的工资调整程序(要求用HIPO图描绘设计结果), 设计时分别采用两种算法,并比较两种算法的优缺点: – (a)搜索工资档案数据,找出年工资少于$26000的人, 计算新工资,校核是否超过$26000,存储新工资,印出新 旧工资对照表; – (b)把工资档案数据按工资从最低到最高的次序排序,当 工资数额超过$26000时即停止排序,计算新工资,校核是 否超过限额,存储新工资,印出结果。 • (4)你所画出的数据流图适应用那种算法?

软件工程课后习题答案2-12章

软件工程课后习题答案2-12章

书状态为S2&终端 输入“H=”加书名 管理员设置状 态 管理员删除 管理员添加
预约
书出库(删除) 书入库
图4.4.2
(三)图书馆终端用户模式的有穷状态机描述 • 状态机J:{读者查询状态,查询结果} • 输入集K:{终端输入用户查询命令,书的各种 状态(S1,S2,S3)} • 转换函数T:如图4.4.3所示 • 初始态S:{读者查询状态} • 终态集F:{查询结果}
取票通知 账单 机票 账单
P3.1 核对取票凭证 顾客 取票通知 P3.2 交款 机票 P3.3 打印机票
机票预定系 统
信 息 通 知 单 机 票


信息
机票

预定信息处 理
信息






取票凭证处 理
通知 账单 单
账单
信 息 定 预 航班信

机票预定子 系统
单 知
机票发放子 系统
效 通 知


取款单
P3.1输入取款 信息
取款信息 E1储 户 密码 P3.2 密码校验
P4 计算利息
利息 利息 P5 打印利息 清单
密码正确信息
E2业 务员
利率
P6设置利 率
利率
不能是两个分开的子系统,是相同的前台单个处理
银行储蓄系 统
存 款 单 款
率 利
利 存单 息清单
密 码
业务单据录 入
利 率
存款单


储蓄业务处理
(一)图书状态的有穷状态机描述 • 状态机J:{书在图书馆S1,书被借出S2, 书被预约S3} • 输入集K:{书上条形码,借阅卡条形码, 终端输入各种命令} • 转换函数T:如图4.4.1所示 • 初始态S:{书在图书馆S1,书被借出S2} • 终态集F:{书被借出S2,书被预约S3}

软件工程课后答案(清华大学出版社--钱乐秋)

软件工程课后答案(清华大学出版社--钱乐秋)

8
作业及解答(第3章)
E1 护士
F4警告信息、病情报告 F1要求报告
E1 护士
Hale Waihona Puke E2 病人F2生理信号P0 患者监护系统
F6日志
D1患者日志
F5安全范围
D2患者安全范围
E3 时钟
13:07:42
F3日前、时间
重庆工学院计算机科学与工程学院 李梁(liliang@)
9
作业及解答(第3章)
是: 4474263 22,371(人月) 200
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
5
作业及解答(第1-2章)
程序员的月平均工资是4000美元, 开发出4474263条指
令的成本是 22371 4000 89,484,000(美元)
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
16
作业及解答(第3章)
3-3 银行计算机储蓄系统的工作过程大致如下:储户填写的 存款单或取款单由业务员键入系统,如果是存款则系统记 录存款人姓名、住址(或电话号码)、身份证号码、存款类 型、存款日期、到期日期、利率及密码(可选)等信息,并 印出存单给储户;如果是取款而且存款时留有密码,则系 统首先核对储户密码,若密码正确或存款时未留密码,则 系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘系 统中的数据对象。
医院对患者8监护系统的基本要求是随时接收每个病人的 生理信号(脉搏、体温、血压、心电图等),定时记录病人 情况以形成患者日志,当某个病人的生理信号超出医生规 定的安全范围时向值班护士发出警告信息,此外,护士在 需要时还可以要求系统印出某个指定病人的病情报告。

自学考试软件工程第7章自测题及参考答案

自学考试软件工程第7章自测题及参考答案

第7章自测题及参考答案一、名词解释1. 软件测试2.黑盒法3.白盒法4.渐增式测试5.非渐增式测试6.调试二、填空题1.软件测试是为了_____而执行程序的过程。

2.运行被测程序的方法称为_______测试。

3.动态测试中,主要测试软件功能的方法称为______法。

4.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为_______。

5.要覆盖含有循环结构的所有路径是不可能的,一般通过限制_____来测试。

6.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等价类和_______。

7.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是_______。

8.集成测试中的具体方法是______。

9.确认测试阶段的两项工作是______。

10.在单元测试中,测试一个模块时,需要设计_______。

三、选择题1.测试的关键问题是( )。

A.如何组织软件评审B.如何选择测试用例C.如何验证程序的正确性D.如何采用综合策略2.软件测试用例主要由输入数据和( )两部分组成。

A.测试计划B.测试规则C.预期输出结果D.以往测试记录分析3.成功的测试是指运行测试用例后( )。

A.未发现程序错误B.发现了程序错误C.证明程序正确D.改正了程序错误4.下列几种逻辑覆盖标准中,查错能力最强的是( )。

A.语句覆盖B.判定覆盖C.条件覆盖D.条件组合覆盖5.在黑盒测试中,着重检查输入条件组合的方法是( )。

A.等价类划分法B.边界值分析法C.错误推测法D.因果图法6.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( )。

A.系统功能B.局部数据结构C.重要的执行路径D.错误处理7.软件测试过程中的集成测试主要是为了发现( )阶段的错误。

A.需求分析B.概要分析C.详细设计D.编码8.不属于白盒测试的技术是( )。

A.路径覆盖B.判定覆盖C.循环覆盖D.边界值分析9.集成测试时,能较早发现高层模块接口错误的测试方法为( )。

软件工程课后练习答案

软件工程课后练习答案

第一章软件工程概述软件工程的基本原则是什么?1,抽象:采用分层次抽象,自顶向下逐层细化的办法控制软件开发过程的复杂性。

2,模块化:模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。

3,信息隐蔽:将模块化设计成“黑箱”,实现的细节隐蔽在模块内部,不让模块的使用直接访问,这就是信息封装。

4,局部化:保证模块之间具有松散的耦合,模块内部具有较强的内聚,这有助于控制模块的复杂性5,一致性:整个软件系统使用一致的概念符号和术语。

6,完整性:软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。

7,不可验证性:易于检查、测试、评审,确保系统的正确性。

第二章可行性研究选择题1,研究开发所需要的成本和资源属于可行性研究中(经济可行性)研究的一方面。

2,可行性分析研究的目的是(项目值得开发与否)。

3,软件分析的第一步要做的工作在于(分析系统开发的可行性)。

4,可行性研究目的主要在于(用最小的代价确定问题定义阶段所确定的目标和规模是否可实现,可解决)。

5,软件可行性分析是着重确定系统的目标和规模。

对功能,性能及约束条件的分析应属于下列(技术可行性分析)。

简答题简述可行性研究的步骤?1,复查系统规模和目标2,研究目前正在使用的系统3,导出新系统的高层逻辑模型4,重新定义问题5,导出和评价供选择方案6,推荐一个方案并说明理由7,推荐行动方针8,书写计划任务书9,提交审查应用题设计一个软件的开发成本为5万元,寿命为3年。

未来3年的每年收益预计为22000元,24000元,26620元,银行年利率为10%。

试对此项目进行成本效益分析,以决定其经济可行性。

答:设银行的年利率是10%,则下列出每年的收益第一年:22000/1.1=20000第二年:24000/1.21=19834.71第三年:26620/1.331=20000因此:现有值收益为20000+19834.71+20000=59834.71投资回收期2+10165/20000=2.51纯收入59835-50000=9834.71第三章需求分析需求分析的原则有哪些?1.需求分析方法应该容易被用户理解。

软件工程第7章习题

软件工程第7章习题

5. 软件测试用例主要由输入数据和( 成 A 测试计划 C 预期输出结果 B 测试规则
)两部分组
D 以往测试记录分析 答案: C )
6. 成功的测试是指运行测试用例后( A 未发现程序错误 C 证明程序正确
B 发现了程序错误 D 改正了程序错误 答案: B
7. 下列几种逻辑覆盖标准中, 查错能力最强的是( 答案: D
8. 在黑盒测试中, 着重检查输入条件组合的方法是 ( ) A 等价类划分法 C 错误推测法 B 边界值分析法 D 因果图法 )
)
A 语句覆盖 B 判定覆盖 C 条件覆盖 D 条件组合覆盖
答案: D 9. 软件测试过程中的集成测试主要是为了发现( 阶段的错误 A 需求分析 B 概要设计 C 详细设计 D 编码 答案: B
4. 在单元测试时, 需要为被测试模块设计( 答案: 驱动模块与桩模块 5. 在集成测试时有两种测试方法, 它们是( 答案: 渐增式和非渐增式 6. 软件测试是为了( )而执行程序的过程 )
)
答案: 发现错误 7. 运行被测试程序的方法称为( 答案: 动态 )测试
8. 动态测试中, 主要测试软件功能的方法称为( 答案: 黑盒
12. 集成测试中的具体方法是(
)
答案: 渐增式和非渐增式测试方法 二. 选择题 1. 软件测试中, 白盒法是通过分析程序的( 设计测试用例的 A 应用范围 B 内部逻辑 C 功能 答案: B 2 . 黑盒法是根据程序的( A 应用范围 B 内部逻辑 ) 来设计测试用例的 C 功能 D 输入数据 )来
D 输入数据
答案: C
3. 为了提高软件测试的效率, 应该(
A 随机地选取测试数据 B 取一切可能的输入数据作为测试数据 C 在完成编码以后制定软件的测试计划

软件工程习题答案

软件工程习题答案

软件⼯程习题答案第1章软件⼯程概述参考答案⼀. 选择题1. B2. A3. B4. B5. D6. B7. D8. A9. D⼆. 填空题1. 设计编码测试2. 软件费⽤可靠性可维护性可重⽤性及⽣产率等3. 计算机软件开发和维护4. 分解抽象和信息隐蔽⼀致性确定性5. 软件的总⽬标待开发软件的需求6. ⼆三7. 计划阶段开发阶段维护阶段8. 软件需求明确9. 制定计划风险分析开发实施⽤户评估三. 名词解释1. 软件的定义如下:在运⾏中能提供所希望的功能和性能的指令集,使程序能正确运⾏的数据结构,描述程序研制过程和⽅法所⽤的⽂档。

2. 软件⼯程是指导计算机软件开发和维护的⼀门学科。

3. 软件危机指的是软件开发和维护过程中遇到的⼀系列严重问题。

4. 就是从提出软件产品开始,直到该软件产品被淘汰的全过程。

5. 瀑布模型⼜称⽣存周期模型,由B.M.Boehm提出,是软件⼯程的基础模型。

其核⼼思想是按⼯序将问题化简,将功能的实现与设计分开,便于分⼯协作。

6. 螺旋模型将瀑布模型与演化模型结合起来,并且加⼊两种模型均忽略了的风险分析,弥补了两者的不⾜。

四. 简答题1. 软件既是知识产品,⼜是与汽车,建筑物⼀样的⼯业产品,此外,软件还具有类似艺术,学术那样的知识性创造和特点,软件的特点如下:软件是⼀种逻辑实体,⽽不是具体的物理实体,因⽽它具有抽象性;软件是通过⼈们的智⼒活动,把知识与技术转化成信息的⼀种产品,是在研制、开发中被创造出来的;在软件的运⾏和使⽤期间,没有硬件那样的机械磨损、⽼化问题;软件的开发和运⾏经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系;软件的开发尚未完全摆脱⼿⼯的开发⽅式;软件的开发费⽤越来越⾼,成本相当昂贵;软件的开发是⼀个复杂的过程,因⽽管理是软件开发过程中必不可少的內容。

2. 软件危机主要表现如下:产品不符合⽤户的实际需要;软件开发⽣产率提⾼的速度远远不能满⾜客观需要,软件的⽣产率远远低于硬件⽣产率和计算机应⽤的增长速度,使⼈们不能充分利⽤现代计算机硬件提供的巨⼤潜⼒;软件产品的质量差;对软件开发成本和进度的估计常常不准确;软件的可维护性差;软件⽂档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的⽐例逐年上升。

软件工程 第7章--面向对象设计

软件工程 第7章--面向对象设计
8
§1. OOD准则
5、Cohesion:模块内各个元素彼此结合的紧密程度。 服务内聚(service cohesion):一个服务只完成一个功能。
类内聚(class cohesion):一个类只有一个用途,否则分 解之。
一般-特殊内聚(general-particular cohesion):
17
类构件
类构件:面向对象技术中的“类” 。类构件有3种 重用方式:
–实例重用 –继承重用 –多态重用 1. 可重用类构件应具备的特点 (1) 模块独立性强。具有单一、完整的功能,且经 过反复测试被确认是正确的。是一个不受或很少受 外界干扰的封装体,其内部实现在外面是不可见的。
18
(2) 具有高度可塑性。软构件的应用环境比集成电 路更广阔、更复杂。显然,要求一个软构件能满足 任何一个系统的设计需求是不现实的。因此,可重 用的软构件必须具有高度可裁剪性,必须提供为适 应特定需求而扩充或修改已有构件的机制,而且所 提供的机制必须使用起来非常简单方便。
对象 设计
面向对 象分析
人机界 面设计
任务管 理设计
数据管 理设计
4
§1. OOD准则
§1. OOD准则:优秀软件设计的一个重要特点是 容易维护
回顾:SD准则包括
Modularization Information hiding
Abstraction
Module independence
对于 OOD有类似的准则: 1、Module = Object
• Inheritance —— 无须改动原有代码
13
② 设计重用 —— 当移植系统时
§3. 软件重用
③ 分析重用 —— 当需求未变,而系统结构改变 时(例如将HDIS改为OO实现)

《软件工程》(第五版)习题参考答案

《软件工程》(第五版)习题参考答案
把整个软件生命周期划分为若干个较小的阶段每个阶段都有相对独立的任务和完成任务的步骤和方法然后逐步完成各个阶段的任务这有利于软件开发过程的组织和管理从而降低了整个软件开发过程的困难程度从而使规模庞大结构复杂和管理复杂的软件开发变得容易控制和管理
《软件工程》(第五版)习题参考答案
第1章 一、判断题 1、(×)软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、(×)软件危机的产生主要是因为程序设计人员使用了不适 当的程序设计语言。 4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和 衰亡的生存过程。 5、(×)文字处理软件 Word 属于系统软件。应用软件 6、(√)原型是软件的一个早期可运行的版本,它反映最终系 统的部分重要特性。 7、(√)软件开发过程中,一个错误发现得越晚,为改正它所 付出的代价就越大。 8、(×)快速原型模型对软件开发人员的水平要求不高。 9、(√)喷泉模型适合于面向对象的软件开发。 10、(×)面向对象开发方法的主要缺点是在适应需求变化方面 不够灵活。 二、选择题 1、软件是一种(C)。 A、程序 B、数据
D、合同文档 14、结构化分析方法是以数据流图、(D)和加工说明等描述工 具,即用直观的图和简洁的语言来描述软件系统模型。 A、DFD 图 B、PAD 图 C、IPO 图 D、DD 15、软件需求分析阶段的工作,可以分为四个方面:需求获取、 需求分析、编写需求规格说明书以及(B)。 A、阶段性报告 B、需求评估 C、总结 D、都不正确 16、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一 些特定的图符构成。下面图符名称标识的图符不属于数据流图合 法图符的是(A)。 A、控制流 B、加工 C、数据存储 D、源点和终点 17、DFD 用于描述系统的(D)。 A、数据结构

软件工程(习题及参考答案)

软件工程(习题及参考答案)

第1章概述(习题与参考答案)[判定题]1. 由于今天个人运算机不断进展壮大,人们再也不采纳软件团队的开发方式。

(×)2. 由于软件是产品,因此能够应用其他工程制品所用的技术进行生产。

(×)3. 购买大多数运算机系统所需的硬件比软件更昂贵。

(×)4. 大多数软件产品在其生命周期中不需要增强功能。

(×)5. 大多数软件系统是不容易转变的,除非它们在设计时考虑了转变。

(√)6. 一样来讲,软件只有在其行为与设计者的目标一致的情形下才能成功。

(×)[选择题]1. ()因素促使运算机系统愈来愈复杂。

(D)A. 运算机内存和存储容量上的庞大增加B. 外部输入/输出选项的加倍多样性C. 运算机体系结构方面的深刻转变D. 以上所有选项2. 下面的()再也不是现代软件工程师关注的问题。

(A)A. 什么缘故运算机硬件的本钱这么高?B. 什么缘故软件需要很长时刻才能完成?C. 什么缘故开发一个软件的本钱这么高?D. 什么缘故不能在产品发布前去除软件错误?3. 软件会慢慢退化而可不能磨损,其缘故在于()。

(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在利用以后C. 不断的变更使组件接口之间引发错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其缘故在于()。

(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法利用C. 软件在不利用其他组件的情形下很容易构造出来D. 商业组件在很多应用领域中能够取得5. 下面的()说法是正确的。

(C)A. 软件危机在20世纪70年代末期全面暴发B. 当前先进的软件工程方式已经解决了软件危机的问题C. 软件危机是指在运算机软件的开发和保护进程中碰到的一系列严峻问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的大体目标是()。

(B)A. 排除软件固有的复杂性B. 开发高质量的软件C. 尽力发挥开发人员的制造性潜能D. 更好地保护正在利用的软件产品7. ()是将系统化的、标准的、可定量的方式应用于软件的开发、运行和保护的进程,它包括方式、工具和进程三个要素。

第7章-实用软件工程(第4版)-陆惠恩-清华大学出版社

第7章-实用软件工程(第4版)-陆惠恩-清华大学出版社

7.5.4 面向对象设计的启发规则
1.设计结果应该清晰易懂 2.一般—特殊结构的深度应适当 3.设计简单的类 4.使用简单的协议 5.使用简单的服务 6. 把设计变动减到最小
《实用软件工程(第3版)》 陆惠恩编著
13
7.6 面向对象系统的实现
7.6.1 选择面向对象语言
1. 选择编程语言的关键因素 2. 面向对象语言的技术特点 3.选择面向对象语言的实际因素
《实用软件工程(第3版)》 陆惠恩编著
10
4 、 画状态转换图
【例7.5】分别画出旅馆管理系统中旅客和床位的状态转换图。
《实用软件工程(第3版)》 陆惠恩编著
11
7.4 建立功能模型
确定输入、输出值 画数据流图 定义服务
7.5 面向对象设计
7.5.1 系统设计
1. 将系统分解为子系统 2. 设计问题域子系统 3. 设计人-机交互子系统 4. 设计任务管理子系统 5. 设计数据管理子系统
7.7.2 面向对象的测试步骤
1、制定测试计划 2、设计测试用例 3、实现测试构件 4、集成测试 5、系统测试 6、测试评估
《实用软件工程(第3版)》 陆惠恩编著
15
第7章 小结
面向对象方法是一种将数据和处理相结合的方法。 面向对象方法不强调分析与设计之间的严格区分。 面向对象分析
1、发现对象 2. 分析对象之间的关系 3.划分主题 4.编写脚本、建立动态模型 5.建立功能模型
《实用软件工程(第3版)》 陆惠恩编著
3
7.2.3 确定类的相互关系
1. 类的一般-特珠关系
《实用软件工程(第3版)》 陆惠恩编著
4
2. 聚集关系
“整体—部分”关系
90 80 70 60 50 40 30 20 10

软件工程课本讲解第7章增量模型(精)

软件工程课本讲解第7章增量模型(精)

第7章 增量模型
图7.3 (a) 原型;(b) 原型的使用;(c) 开发过程
第7章 增量模型
在图7.3(c)中,实线箭头连接的表示探索型快速原型 模型的开发过程,双线箭头连接的表示实验型快速原型模 型的开发过程,虚线箭头连接的表示演化型快速原型模型 的开发过程。
对于探索型,用原型过程来代替需求分析,把原型作 为需求说明的补充形式,运用原型尽可能使需求说明完整、 一致、准确和无二义性,但在整体上仍采用瀑布模型。
第7章 增量模型
7.2 渐增模型
7.2.1 增量构造模型 增量构造模型如图7.1所示。在该模型中,需求分
析阶段和设计阶段都是按瀑布模型的整体方式开发的, 但是编码阶段和测试阶段是按增量方式开发的。在这 种模型的开发中,用户可以及早看到部分软件功能, 及早发现问题,以便在开发其他软件功能时及时解决 问题。
第7章 增量模型
增量模型和瀑布模型之间的本质区别是:瀑布模型 属于整体开发模型,它规定在开始下一个阶段的工作之 前,必须完成前一阶段的所有细节。而增量模型属于非 整体开发模型,它推迟某些阶段或所有阶段中的细节, 从而较早地产生工作软件。
增量模型是在项目的开发过程中以一系列的增量方 式开发系统。增量方式包括增量开发和增量提交。增量 开发是指在项目开发周期内,以一定的时间间隔开发部 分工作软件;增量提交是指在项目开发周期内,以一定 的时间间隔增量方式向用户提交工作软件及相应文档。 增量开发和增量提交可以同时使用,也可单独使用。
第7章 增量模型
2. 需求是模糊的
对于某些类型的软件系统,如操作系统、编译系统等系统软 件,人们对它们比较熟悉,有长期使用它们的经验,其需求经过 仔细的分析之后可以预先指定。但是,对于大多数经常使用的应 用系统,例如管理信息系统,其需求往往很难预先准确的指定, 也就是说,预先定义需求的策略所做出的假设,只对某些软件成 立,对多数软件并不成立。许多用户对他们的需求最初只有模糊 的概念,想要求一个对需求只有初步设想的人准确无误地说出全 部需求,显然是不切实际的。人们为了充实和细化他们的初步设 想,通常需要经过在某个能运行的系统上进行实践的过程。

软件工程+孙家广主编+刘强编著+配套习题答案7

软件工程+孙家广主编+刘强编著+配套习题答案7

软件⼯程+孙家⼴主编+刘强编著+配套习题答案7第7章软件体系结构设计(习题与参考答案)[选择题]1. ()系统体系结构的最佳表⽰形式是⼀个可执⾏的软件原型。

(B)A. 真B. 假2. ()软件体系结构描述是不同项⽬相关⼈员之间进⾏沟通的使能器。

(A)A. 真B. 假3. ()良好的分层体系结构有利于系统的扩展与维护。

(A)A. 真B. 假4. ()消除两个包之间出现的循环依赖在技术上是不可⾏的。

(B)A. 真B. 假5. ()设计模式是从⼤量成功实践中总结出来且被⼴泛公认的实践和知识。

(A)A. 真B. 假6. 程序编译器的体系结构适合使⽤()。

(A)A. 仓库体系结构B. 模型-视图-控制器结构C. 客户机/服务器结构D. 以上选项都不是7. ⽹站系统是⼀个典型的()。

(C)A. 仓库体系结构B. 胖客户机/服务器结构C. 瘦客户机/服务器结构D. 以上选项都不是8. 在分层体系结构中,()实现与实体对象相关的业务逻辑。

(D)A. 表⽰层B. 持久层C. 实体层D. 控制层9. ()可以帮助⼈们简单⽅便地复⽤已经成功的设计或体系结构。

(B)A. 商业组件B. 设计模式C. 遗留系统D. 需求规格说明10. ()⽤于封装具体的平台,从⽽使应⽤程序可以在不同的平台上运⾏。

(A)A. 抽象⼯⼚模式B. 外观模式C. 观察者模式D. 以上选项都不是[练习题]1. 良好的软件体系结构设计有什么好处?答案要点:软件体系结构设计过程的核⼼在于建⽴系统的⼀个基本框架,即识别出系统的主要组件以及这些组件之间的通信。

良好的体系结构设计具有以下主要好处:y项⽬相关⼈员之间的沟通:软件体系结构是系统的⼀种⾼层表⽰,它可以成为不同项⽬相关⼈员之间沟通的使能器;y系统分析:在系统分析过程中确定系统的初步体系结构,将对系统是否满⾜关键性需求(如性能、可靠性和可维护性等)产⽣很⼤的影响;y⼤规模复⽤:体系结构可以在具有相似需求的系统之间互⽤,从⽽⽀持⼤规模的复⽤。

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

第7章软件工程习题(答案)一、选择题1. D2. B3. C4. B5. A6. C7. A8. D9. BD 10. C11. B 12. C二、简答题1.什么叫软件危机?答:随着计算机应用的普及和深化,计算机软件的数量、规模、复杂程度和开发所需的人力、物力等都在急剧增加,计算机发展初期个人编写小程序的传统方法,已不再适合现代大型软件的开发,用传统方法开发出来的许多大型软件甚至无法投入运行。

同时,由于计算机应用领域和硬件技术得到丁飞速发展,软件的生产速度、质量和规模远远适应不了对软件的需求,造成大量人力、物力、财力的浪费,在软件开发和维护过程中出现了巨大的困难。

计算机领域把大型软件开发和维护过程中遇到的一系列严重问题称为“软件危机”(Software Crisis)。

2.软件危机的表现形式是什么?答:软件危机的表现形式:(1) 软件的质量难以保证开发的软件可靠性差。

由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。

这种不可靠的软件,轻者会影响系统正常工作,重者会发生事故,造成生命财产的重大损失。

(2) 软件开发成本和开发进度难以控制经费预算经常突破,完成时间一再拖延。

由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计算很难制定。

主观盲目制定的计算,执行起来和实际情况有很大差距,使得开发经费一再突破。

由于对工作量和开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。

(3) 软件的维护非常困难开发的软件可维护性差。

开发过程没有统一的、公认的规范,软件开发人员按各自的风格工作,各行其事。

开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。

程序结构不好,运行进发现错误也很难修改,导致维护性差。

(4) 用户对“已完成”的软件系统不满意开发的软件不能满足用户要求。

开发初期对用户的要求了解不够明确,未能得到明确表达。

开发工作开始后,软件人员和用户又未能及进交换意见,使得一些问题不能及时解3.什么叫软件工程?答:软件工程是研究大规模程序设计的方法、工具和管理的一门工程科学,也就是运用系统的、规范的和可定量的方法来开发、运行和维护软件的系统工程。

软件工程是—门交叉学科,涉及到计算机科学、管理科学、工程学和数学。

软件工程的理论、方法、技术都是建立在计算机科学的基础上,它是用管理学的原理、方法来进行软件生产管理;用工程学的观点来进行费用估算、制定进度和实施方案;用数学方法来建立软件可靠性模型以及分析各种算法和性质。

软件工程是指导计算机软件开发和维护的工程学科。

4.软件工程的目标是什么?答:软件工程的目标可概括为:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需要的软件产品。

5.简述软件工程过程。

答:软件工程过程包含如下7个过程。

(1) 获取过程:获取过程为需方按合同获取一个系统、软件产品或服务的活动。

(2) 供应过程:供应过程为供方向需方提供合同中的系统、软件产品或服务所需的活动。

(3) 开发过程:开发过程为开发者和机构为了定义和开发软件或服务所需的活动。

引过程包括需求分析、设计、编码、集成、测试、软件安装和验收等活动。

(4) 操作过程:操作过程为操作者和机构为了在规定的运行环境中为其用户运行一个计算机系统所需要的活动。

(5) 维护过程:维护过程为维护者和机构为了管理软件的修改,使它处于良好运行状态所需要的活动。

(6) 管理过程:管理过程为软件工程过程中各项管理活动,包括项目开始和范围定义;项目管理计划;实施和控制,评审和评价;项目完成。

(7) 支持过程:支持过程对项目的生存周期过程给予支持。

它有助于项目的成功并能提高项目的质量。

6.简述软件生存周期。

答:软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。

通常,软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。

7.常见的软件开发模型有哪些?答:常见的软件工程模型有:瀑布模型、螺旋模型、快速原型模型、智能模型等等。

8.简述喷泉模型。

答:喷泉模型是一种以用户需求为动力,以对象作为驱动的模型。

它适合于面向对象的开发方法。

它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。

喷泉模型使开发过程具有迭代性和无间隙性。

系统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演化的系统。

无间隙是指在分析、设计和实现等开发活动之间不存在明显的边界。

9.简述智能模型。

智能模型又称智能生存周期模型,是基于知识的软件开发模型,它把瀑布模型与专家系统结合在—起。

该模型在实施过程中要建立知识库,将模型本身、软件工程知识与特定领域的知识分别存入数据库。

以软件工程知识为基础的生成规则构成的专家系统与含应用领域知识规则的其他专家系统相结合,构成这一应用领域软件的开发系统。

10.简述模块划分的原则。

答:模块的划分不能够随意进行,而是应该遵循一定的原则:(1) 划分的模块要有尽量高的功能独立性,而模块之间应该是低耦合(关联少)的。

(2) 模块的大小要适宜,过大,增加模块本身的复杂性;过小,模块数增多,会增加模块间关联度。

(3) 模块间接口是必须是明确的。

(4) 模块间可以有调用关系,这个调用的层次不能太多。

(5) 尽量注意提高模块的复用率,提高开发效率。

11.简述结构化方法遵循的原则。

答:结构化方法通常遵循以下原则:(1) 用户参与的原则。

由于整个软件开发工作的复杂性,用户的需求分析至关重要,但是,用户的需求不是一次就能够明确的,而是随着系统开发工作的深入,用户的需求表达和开发人员对用户需求的理解才能逐步明确、深化和细化。

这就要求软件的开发要有用户的积极参与。

否则,往往导致开发缓慢、不断反复、甚至失败。

(2) 先分析、再设计、后实现的原则。

结构化方法强调在进行系统设计和系统实施之前,要先进行充分的需求调查与分析,进行可行性的论证,即首先解决系统“做什么”的问题,然后再进入系统设计、系统实施阶段,来解决“如何做”的问题。

(3) 自顶向下的原则。

在系统分析、设计、实施等各阶段,结构化方法都强调“自项向下”的原则,即从总体目标和功能出发,逐级分解、逐步细化,将整个开发系统分解,先实现某些子系统,然后再实现总的目标和功能。

遵循这个原则,可以将一个复杂的问题分解成若干个比较简单的问题分别加以解决,从而降低了解决问题的难度。

(4) 阶段成果文档化。

结构化方法强调要将每一工作阶段的成果,用明确的文字和标准化的图形、表格等文档化工具进行完整而又准确的描述。

这些文档即可标志阶段开发工作的结束,又是下阶段工作开展的主要依据。

12.简述软件质量的含义。

答:软件质量是贯穿软件生存期的一个极为重要的问题,关于软件质量的定义有多种说法,从实际应用来说,软件质量定义如下:(1) 与所确定的功能和性能需求的一致性。

(2) 与所成文的开发标准的一致性。

(3) 与所有专业开发的软件所期望的隐含特性的一致性。

13.简述软件质量保证的含义答:软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。

14.简述软件可靠性的含义。

答:软件可靠性定义表明了一个程序按照用户的要求和设计的目标,执行其功能的正确程度。

一个可靠的程序应要求是正确的、完整的、一致的和健壮的。

15.简述设计质量的评审内容。

答:设计质量的评审内容:(1) 评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;需求规格说明是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计规格说明是否一致等。

(2) 评审可靠性,即是否能避免输入异常(错误或超载等)、硬件失效及软件失效所产生的失效,一旦发生应能及时采取代替或恢复手段。

(3) 评审保密措施实现情况,即是否提供对使用系统资格进行检查;对特定数据的使用资格、特殊功能的使用资格进行检查,在查出有违反使用资格情况后,能否向系统管理人员报告有关信息;是否提供对系统内重要数据加密的功能等。

(4) 评审操作特性实施情况,即操作命令和操作信息的恰当性,输入数据与输入控制语句的恰当性;输出数据的恰当性;应答时间的恰当性等。

(5) 评审性能实现情况,即是否达到所规定性能的的目标值。

(6) 评审软件是否具有可修改性、可扩充性、可互换性和可移植性。

(7) 评审软件是否具有可测试性。

(8) 评审软件是否具有复用性。

16.简述容错软件的含义。

答:容错软件的定义,有以下4种:(1) 规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。

(2) 规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称之为容错软件。

(3) 规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。

(4) 规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。

17.简述软件开发环境。

答:软件开发环境是指在计算机的基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。

软件工程环境是一组方法、过程及计算机程序(计算机化的工具)的整体化构件,它支持从需求定义、程序生成直到维护的整个软件生存期。

三、讨论题1.软件是计算机的灵魂,用软件工程的方法来保证软件开发过程的顺利进行有哪些好处?答案略。

2.学习了软件工程后,你觉得在哪些方面的收获最大?答案略。

相关文档
最新文档