现代软件工程第7章作业
软件工程导论第五版第七章
第7章实现7。
1编码7。
1。
1选择程序设计语言7.1。
2编码风格1。
程序内部的文档2。
数据说明3。
语句构造4。
输入输出5。
效率7。
2软件测试基础7。
2。
1软件测试的目标7。
2.2软件测试准则7。
2。
3测试方法7。
2.4测试步骤1。
模块测试2. 子系统测试3. 系统测试4。
验收测试5。
平行运行7。
2。
5测试阶段的信息流图7。
1测试阶段的信息流7.3单元测试7.3。
1测试重点1. 模块接口2. 局部数据结构3. 重要的执行通路4. 出错处理通路5。
边界条件7.3.2代码审查7.3.3计算机测试图7.2正文加工系统的层次图7。
4集成测试7.4。
1自顶向下集成图7.3自顶向下结合7.4.2自底向上集成图7。
4自底向上结合7.4.3不同集成测试策略的比较7.4。
4回归测试7.5确认测试7。
5.1确认测试的范围7。
5。
2软件配置复查7.5。
3Alpha和Beta测试7.6白盒测试技术7。
6.1逻辑覆盖1。
语句覆盖图7.5被测试模块的流程图2. 判定覆盖3。
条件覆盖4. 判定/条件覆盖5. 条件组合覆盖6。
点覆盖7. 边覆盖8。
路径覆盖7。
6.2控制结构测试1. 基本路径测试图7。
6求平均值过程的流图2. 条件测试3. 循环测试图7。
73种循环7。
7黑盒测试技术7。
7。
1等价划分7。
7。
2边界值分析7.7。
3错误推测7.8调试7。
8.1调试过程图7。
8调试过程7.8。
2调试途径1。
蛮干法2。
回溯法3. 原因排除法7.9软件可靠性7。
9.1基本概念1. 软件可靠性的定义2. 软件的可用性7.9。
2估算平均无故障时间的方法1。
符号2。
基本假定3。
估算平均无故障时间4。
估计错误总数的方法7.10小结习题71。
下面给出的伪码中有一个错误。
仔细阅读这段伪码,说明该伪码的语法特点,找出并改正伪码中的错误。
字频统计程序的伪码如下:2。
研究下面给出的伪码程序,要求:(1) 画出它的程序流程图.(2)它是结构化的还是非结构化的?说明理由。
《软件工程实用教程》第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)分析規格說明,找出其他可能的邊界條件。
软件工程7-3
要达到 CMM 规定的 SCM要求所需具备的能力
1.
2. 3. 4.
5.
具有对软件基线产品有管理权限的组织已经建立, 例如:软件配置管理委员会; 协调和实现软件配置管理的组织已经建立; 为进行软件配置管理所需要的各项资源已经分配; 软件配置管理组织里的成员已经接受了软件配置目 标、流程、方法方面的培训; 软件项目组或是其他的相关的部门经过培训,可以 执行他们的软件配置管理活动;
SCM的三个应用层次
SCM从应用层次上可以从低到高分为三级:版本控制、以开发者 为中心、过程驱动。 版本控制主要应用于个人独立开发或小组开发,它可以控制任 何文件的版本、实现分支和归并功能、进行文本比较、标记注 释 和 版 本 报 告 信 息 , 主 要 工 具 有 MS 的 Visual SourceSafe 及 Intersolv PVCS。 以开发者为中心主要应用于部门级开发,它可用于软件维护、 不断增加的开发任务、并行开发、QA及测试,它面向大型团队、 利于交流、能最大限度地利用人力资源,主要工具为Rational ClearCase及MKS Source Integrity。 过程驱动主要使用于企业级开发,着重解决新的工具引入、IT 审核、管理报告、复杂的生命周期、应用工具包、集成解决方 案、资料库等问题,实现真正规范的团队开发 ,主要工具为 Platinum Technology CCC/Harvest。
产品升级和维护所必需的程序和文档非常混乱 代码可重用性差从而不能对产品进行功能扩充 开发过程中的人员流动经常发生 由于管理不善致使未经测试的软件加入到产品中 用户与开发商没有有效的产品交接界面
开发环境的复杂性
多操作系统 多开发工具 网络化 团队方式 异地开发
缺乏管理所造成的问题
软件工程学课后习题答案
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
张海藩《软件工程导论》(第6版)(课后习题 第7章 实现)【圣才出品】
第7章实现1.下面给出的伪码中有一个错误。
仔细阅读这段伪码,说明该伪码的语法特点,找出并改正伪码中的错误。
字频统计程序的伪码如下:答:(1)错误:INSERT the extracted word into the table在这个后面,没有给这个word的occurrence count赋值为1。
(2)语法特点:该伪代码在循环结构中嵌套循环结构,并且在嵌套的循环结构中又嵌套了IF ELSE结构。
2.研究下面给出的伪码程序,要求:(1)画出它的程序流程图。
(2)它是结构化的还是非结构化的?说明理由。
(3)若是非结构化的,则:a.把它改造成仅用3种控制结构的结构化程序;b.写出这个结构化设计的伪码;c.用盒图表示这个结构化程序。
(4)找出并改正程序逻辑中的错误。
答:(1)程序流程图,如图7-8所示。
图7-8程序流程图(2)此程序是非结构化的,它有一个GOTO语句,并且是从一个循环体内转到循环体外的一条件语句内部。
(3)①修改后的伪码,如图7-9所示。
图7-9修改后的伪码②修改后程序的盒图,如图7-10所示。
图7-10修改后程序的盒图(4)程序中的错误:①语句“IF WORD=KEYWORD”里的变量“WORD”没有预先赋值。
②程序中没有预先输入T的值。
③“N=0”应该是“MATCH=0”。
3.在第2题的设计中若输入的N值或KEYWORD不合理,会发生问题。
(1)给出这些变量的不合理值的例子。
(2)将这些不合理值输入程序会有什么后果?(3)怎样在程序中加入防错措施,以防止出现这些问题?答:(1)N=1,KEYWORD=#。
(2)不合理的值输入程序后无法打印出任何信息。
(3)可以通过加入循环来防止出现这些错误的问题。
4.回答下列问题。
(1)什么是模块测试和集成测试?它们各有什么特点?(2)假设有一个由1000行FORTRAN语句构成的程序(经编译后大约有5000条机器指令),估计在对它进行测试期间将发现多少个错误?为什么?(3)设计下列伪码程序的语句覆盖和路径覆盖测试用例:答:(1)①模块测试时对每个单独的模块,分别用黑盒和白盒测试技术,测试它地功能是否正确,检查模块控制结构中的特定路径并发现最大数量的错误。
软件工程导论(第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等
软件工程课后习题答案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)你所画出的数据流图适应用那种算法?
软件工程(习题与参考答案)
第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章增量模型(精)
第7章 增量模型
图7.3 (a) 原型;(b) 原型的使用;(c) 开发过程
第7章 增量模型
在图7.3(c)中,实线箭头连接的表示探索型快速原型 模型的开发过程,双线箭头连接的表示实验型快速原型模 型的开发过程,虚线箭头连接的表示演化型快速原型模型 的开发过程。
对于探索型,用原型过程来代替需求分析,把原型作 为需求说明的补充形式,运用原型尽可能使需求说明完整、 一致、准确和无二义性,但在整体上仍采用瀑布模型。
第7章 增量模型
7.2 渐增模型
7.2.1 增量构造模型 增量构造模型如图7.1所示。在该模型中,需求分
析阶段和设计阶段都是按瀑布模型的整体方式开发的, 但是编码阶段和测试阶段是按增量方式开发的。在这 种模型的开发中,用户可以及早看到部分软件功能, 及早发现问题,以便在开发其他软件功能时及时解决 问题。
第7章 增量模型
增量模型和瀑布模型之间的本质区别是:瀑布模型 属于整体开发模型,它规定在开始下一个阶段的工作之 前,必须完成前一阶段的所有细节。而增量模型属于非 整体开发模型,它推迟某些阶段或所有阶段中的细节, 从而较早地产生工作软件。
增量模型是在项目的开发过程中以一系列的增量方 式开发系统。增量方式包括增量开发和增量提交。增量 开发是指在项目开发周期内,以一定的时间间隔开发部 分工作软件;增量提交是指在项目开发周期内,以一定 的时间间隔增量方式向用户提交工作软件及相应文档。 增量开发和增量提交可以同时使用,也可单独使用。
第7章 增量模型
2. 需求是模糊的
对于某些类型的软件系统,如操作系统、编译系统等系统软 件,人们对它们比较熟悉,有长期使用它们的经验,其需求经过 仔细的分析之后可以预先指定。但是,对于大多数经常使用的应 用系统,例如管理信息系统,其需求往往很难预先准确的指定, 也就是说,预先定义需求的策略所做出的假设,只对某些软件成 立,对多数软件并不成立。许多用户对他们的需求最初只有模糊 的概念,想要求一个对需求只有初步设想的人准确无误地说出全 部需求,显然是不切实际的。人们为了充实和细化他们的初步设 想,通常需要经过在某个能运行的系统上进行实践的过程。
自学考试软件工程第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.集成测试时,能较早发现高层模块接口错误的测试方法为( )。
软件工程第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 在完成编码以后制定软件的测试计划
软件工程 第7章--面向对象设计
§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实现)
软件工程第七章PPT资料(正式版)
此时,应当再设计与执行一些测试用例,以获得更多的数据。
调试(Debug)
❖软件调试是在进行了成功的测试之后才 开始的工作。它与软件测试不同,调试 的任务是进一步诊断和改正程序中潜在 的错误。
❖调试活动由两部分组成:
▪ 确定程序中可疑错误的确切性质 和位置。
▪ 对程序(设计,编码)进行修改,排 除这个错误。
▪ 现象实际上是由一些非错误原因 (例如,舍入不精确)引起的。
▪ 现象可能是由于一些不容易发现 的人为错误引起的。
▪ 错误是由于时序问题引起的,与 处理过程无关。
▪ 现象是由于难于精确再现的输入 状态(例如,实时应用中输入顺 序不确定)引起。
▪ 现象可能是周期出现的。在软、 硬件结合的嵌入式系统中常常遇 到。
或某些有关测试。 修改错误的过程将迫使人们暂时回到程序设计阶段。
利用某些程序语言的调试功能或专门的交互式调试工具,分析程序的动态过程,而不必修改程序。
❖从技术角度来看,查找错误的难度在于:
▪ 现象与原因所处的位置可能相距 甚远。
▪ 当其它错误得到纠正时,这一错 误所表现出的现象可能会暂时消 失,但并未实际排除。
几种主要的调试方法
调试的关键在于推断程序内部的错误位 置及原因。可以采用以下方法:
强行排错 这种调试方法目前使用较多,效率较低。
它不需要过多的思考,比较省脑筋。例 如:
▪ 通过内存全部打印来调试,在这 大量的数据中寻找出错的位置。
▪ 在程序特定部位设置打印语句, 把打印语句插在出错的源程序的 各个关键变量改变部位、重要分 支部位、子程序调用部位,跟踪 程序的执行,监视重要变量的变 化。
(-10,-10,10) ……
它不需要过多的思考,比较省脑筋。
现代软件工程7
活动一:构架设计
• 构架设计的目的是要勾画出系统的总体 结构,这项工作由经验丰富的构架设计 师主持完成。该活动以用况模型、分析 模型为输入生成概要的系统逻辑架构和 物理构架、子系统及其接口、概要的设 计类(即设计阶段产生的类),如下图 所示:
构架工程师
用例模型
补充需求
构
架
设
分析模型
计
构架描述 分析模型的说明
• 面向对象方法中对象的耦合有两类:
• 交互耦合——如果对象之间的耦合是通 过消息连接来实现的,则这种耦合就是 交互耦合。在设计时应该尽量减少对象 之间发送的消息数、减少消息中的参数 个数,降低消息连接的复杂程度。
• 继承耦合——继承耦合是一般化类与特殊化类 之间的一种关联形式,设计时应该适当使用这 种耦合。在设计时要特别认真分析一般化类与 特殊化类之间继承关系,如果抽象层次不合理, 可能会造成对特殊化类的修改影响到一般化类, 使得系统的稳定性降低。另外,在设计时特殊 化类应该尽可能多地继承和使用一般化类的属 性和服务,充分利用继承的优势。
子系统 概要 接口
设计类
系统构架
设计模型和实施模型
第一步:构造系统的物理模型
• 首先用UML的配置图描述系统的物理构架, 然后将需求分析阶段捕获的系统功能分 配到这些物理节点上。配置图上可以显 示计算节点的拓扑结构、硬件设备配置、 通信路径、各个节点上运行的系统软件 配置、应用软件配置。
配置图
• 配置图定义系统中软硬件的物理体系结 构。它可以显示实际的计算机和设备(用 节点表示)以及它们之间的连接关系,也可 显示连接的类型及部件之间的依赖性。 在节点内部,放置可执行部件和对象以显 示节点与可执行软件单元的对应关系。
2 基于UML的面向对象设计过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.选择题
(1)下列不是模型元素的是()。
A.关联
B.聚合
C.依赖
D.笔记
(2)UML具有扩展性,常见的扩展机制有()。
A.修饰
B.版类
C.加标签值
D.约束
(3)UML语言支持的建模方式有()。
A.静态建模
B.动态建模
C.模块化建模
D.功能建模
(4)下列各种图可用于动态建模的有()
A.状态图
B.类图
C.序列图
D.活动图
(5)下列属于状态的组成部分的有()
A.名称
B.活动
C.条件
D.事件
(6)UML中包括的事件有()
A.条件为真
B.收到另一对象的信号
C.收到操作调用
D.时间表达式
(7)属性的可见性有()
A.公有的
B.私有的
C.私有保护的
D.保护的
(8)用例之间的关系有()
A.友元
B.不相交
C.不完整
D.覆盖
(9)应用于通用化约束的方式有()
A.完整 B. 不相交 C.不完整 D.覆盖
(10)消息的类型有()
A.同步
B.异步
C.简单
D.复杂
2.判断题
(1)UML建模语言是由视图、图、模型元素和通用机制构成的层次关系来描述的。
()
(2)UML是一种建模语言,是一种标准的表示,是一种方法。
()
(3)泳道是一种分组机制,它描述了状态图中对象所执行的活动。
()(4)同步消息和异步消息的主要区别是:同步消息的发送对象在消息发送后,不必等待消息处理,可立即继续执行,而异步消息的发送对象必须等待接收对象完成消息处理后,才能继续执行。
()
(5)类图中的角色是用于描述该类在关联中所扮演的角色和职责的。
()(6)类图用来表示系统中的类及类与类之间的关系,它是对系统动态结构的描述。
()
(7)用例模型的基本组成部件是用例、角色和用例之间的联系。
()
(8)用例之间有扩展、使用、组合等几种关系。
()
(9)顺序图描述对象之间的交互关系,重点描述对象间消息传递的时间顺序。
()
(10)活动图显示动作及其结果,着重描述操作实现中所完成的工作及用例实例或类中的活动。
()
3.简答题
(1)以图1:一个在学校首次报名的UML活动图为例,说明如何绘制活动图。
(2)简述扩展、使用和细化三种UML依赖关系的异同。
(3)为什么要使用UML?
(4)简述UML的实际建模过程。
(5)在UML中的状态图、协作图、活动图、序列图在系统分析中各起到了什么作用?。