软件工程课后作业第七章

合集下载

软件工程课后习题答案

软件工程课后习题答案

F6取款信息
P4 计算利息
F4利息 P5 打印利息清单
F8储蓄利率
E2 业务员
F8储蓄利率
P6 设置利率
F8储蓄利率
D2存款利率
10
作业及解答(第5章)
E1 储户
F7密码
F2取款单
P3.1 输入取款信息
无效取款信息
F5存款信息 D1存款信息
P3.2 密码校验
F7密码
11
不能是两个分开的子系统,是相同的前台单个处理
4
作业及解答(第3章)
E1 储户
存款单 取款单
银行储蓄系统
存单 利息清单
E1 储户
5
E1 储户
F1存款单 F7密码
P1 记录存款信息
F5存款信息
P2 打印存单
F5存款信息 F3存单
D1存款信息
E1 储户
F7密码 F2取款单
F5存款信息
F4利息 F4利息
P3 核算密码
F6取款信息
P4 计算利息
F4利息 P5 打印利息清单
预订信息 取票通知
机票预订
机票 取票通知
旅 行
账单
系统
账单/票款 社
2
作业及解答(第2章)
旅旅客客
取取票票通通知知 账账单单//票票款款
22..11 交交款款
机票 信息
22..22
打打印印机机票票
订订票票信信息息 交交款款信信息息
DD11 订订票票信信息息
旅旅客客信信息息 航航班班信信息息
旅旅行行社社
作业及解答(第1-2章)
1-6 什么是软件过程?它与软件工程方法学有何关系?
✓软件过程是为了开发出高质量的软件产品所需完成的一系 列任务的框架,它规定了完成各项任务的工作步骤。

软件工程导论课后题

软件工程导论课后题

1-5、根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960)存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。

基于上述假设可以比较计算机硬件和软件成本的变化趋势。

要求计算:(1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?(2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。

如果一条指令为一个字长,计算使存储器装满程序所需用的成本。

(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。

2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。

某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。

医院对患者8监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。

从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。

进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。

从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。

系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。

软件工程课后作业

软件工程课后作业

第一章1.1答:软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。

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

常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。

而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。

这些都降低了开发商的信誉,引起用户不满。

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

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

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

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

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

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

(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。

软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。

(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。

(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。

1.2答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

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

软件工程实用教程第三版-郭宁主编-课后习题及答案

软件工程实用教程第三版-郭宁主编-课后习题及答案

软件工程实用教程第三版-郭宁主编-课后习题及答案第一章软件工程引论1.在下列选项中,(D)不是软件的特征。

A.系统性与复制性 B. 可靠性与一致性 C.抽象性与智能型 D.有形性与可控性2.软件是一种(B)产品。

A.有形 B. 逻辑 C. 物质 D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。

A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。

A.理论性 B. 工程性 C. 原理性 D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。

A.原理探讨 B. 理论研究 C. 建造软件系统D. 原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。

A.应用 B. 测试 C. 检测 D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。

A.螺旋模型 B. 增量模型 C. 功能模型 D.瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B. 软件生存周期C. 程序设计方法学 D. 软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B. 对象模型C. 螺旋模型D. 层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B. 总体设计阶段C. 可行性研究阶段 D. 需求分析7.增量模型是一种(B)的模型A.整体开发B. 非整体开发C. 灵活性差D.较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B. 最初模型C. 原型D. 进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B. 垂直原型C.用于验证设计方案的原型 D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。

软件工程导论(第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等

软件工程第六、七章作业

软件工程第六、七章作业

软件工程第6、7章作业1.解释以下概念并通过一个例子加以说明:对象;类;继承;多态性答:(1)对象的定义:对象是客观世界中事物的抽象表示;是其属性(状态、数据)和相关操作(行为、方法或服务)的封装体;对象之间靠消息传递相互作用。

例如汽车、一个圆、电脑等(2)类的定义:类是对具有相同属性和相同操作的一组相似对象的抽象描述。

例如:学生类的属性:学号、姓名、生日、专业,班级、电话、……学生类的操作:查询个人信息、修改个人信息、……(3)关联的定义:关联表示两个类的对象之间存在某种语义上的联系例如:作作家使用计算机,我们就认为在作家和计算机之间存在某种语义连接,因此,在类图中应该在作家类和计算机类之间建立关联关系。

(4)继承的定义:继承是子类自动地共享基类(已有类)中定义的数据和操作的机制。

例如:汽车、船都是交通工具类的子类,它们都可以继承交通工具类的属性和操作。

水陆两用车可以分别继承汽车和船两个父类的某些属性和操作,同时还可以继承交通工具类的属性和操作。

(5)聚集的定义:聚集也称为聚合,是关联的特例。

聚集表示类与类之间的关系是整体与部分的关系例如,课题组与课题组人员,菜单和菜单项2.为什么面向对象方法要从多个侧面(对象模型、动态模型、功能模型)建立系统模型?这三种模型都涉及数据、控制、操作等共同的概念,只不过每种模型描述的侧重点不同。

这3中模型从三个不同但又密切相关的角度模拟目标系统,它们各自从不同侧面反映了系统的实质性内容:它使用的数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。

对任何大型系统来说,这3中模型都是必不可少的。

在不同的应用问题中,相对的重要程度也有所不同。

但是在任何情况下,对象模型始终是最重要、最基本、最核心的。

三种模型是有区别的,各自的侧重点也不同(1)功能模型指明了系统应该“做什么”;(2)动态模型明确规定了什么时候(即何种状态下接受什么事件的触发)做;(3)对象模型则定义了做事情的实体。

软件工程(第五版)习题及答案第七章

软件工程(第五版)习题及答案第七章

1一、选择题一、选择题1、汽车有一个发动机,汽车和发动机之间地关系是(B )关系.A 、一般具体B 、整体部分C 、分类关系D 、is a2、火车是一种陆上交通工具,火车和陆上交通工具之间地关系是(D )关系.A 、组装B 、整体部分C 、has aD 、一般具体、一般具体、一般具体 3、面向对象程序设计语言不同于其他语言地最主要特点是(C ).A 、模块B 、抽象性C 、继承性D 、共享性、共享性4、软件部件地内部实现与外部可访问性分离,这是指软件地(A ).A 、封装性B 、抽象性C 、继承性D 、共享性、共享性5、面向对象分析阶段建立地三个模型中,核心模型是(C )模型.A 、功能B 、动态C 、对象D 、分析、分析6、对象模型地描述工具是(C ).A 、状态图B 、数据流图C 、对象图D 、结构图、结构图7、动态模型地描述工具是(A ).A 、状态图B 、结构图C 、对象图D 、流程图、流程图8、在只有单重继承地类层次结构中,类层次结构是(A )层次结构.A 、树型B 、网状型C 、星型D 、环型、环型9、(C )模型表示了对象地互相行为.A 、功能B 、动态C 、对象D 、分析、分析1010、、在确定类时,所有(A )是候选地类.A 、名词B 、形容词C 、动词D 、代词、代词1111、、面向对象分析地原则不包括(C ).A 、抽象B 、封装C 、依赖D 、继承、继承1212、、常用动词和动词词组来表示(C ).A 、对象B 、类C 、关联D 、属性、属性1313、、在确定属性时,所有(B )是候选地属性.A 、名词B 、修饰性名词词组C 、动词D 、词组、词组1414、、在面向对象方法中,信息隐藏是通过对象地(A )来实现地.A 、封装性B 、分类性C 、继承性D 、共享性、共享性1515、、面向对象设计地准则不包括(D ).A 、模块化B 、抽象C 、信息隐藏D 、强耦合、强耦合二、简答题二、简答题1、面向对象分析通常要建立哪三种模型?它们分别描述系统地哪些方面?、面向对象分析通常要建立哪三种模型?它们分别描述系统地哪些方面?答:面向对象分析通常要建立三种模型面向对象分析通常要建立三种模型,,分别是对象模型、动态模型和功能模型其中:其中:对象模型描述系统地数据结构对象模型描述系统地数据结构,,它是用来描述系统包含地对象及对象之间关系地模型;它是用来描述系统包含地对象及对象之间关系地模型;动态模型描述系统地控制结构动态模型描述系统地控制结构,,它是用来确定各个对象之间交互及整体地控制结构地模型;型;功能模型描述系统地功能功能模型描述系统地功能,,它是用来描述系统要实现地功能地模型它是用来描述系统要实现地功能地模型..2、对象模型有哪五种层次?、对象模型有哪五种层次?答:复杂问题复杂问题((大型系统大型系统))地对象模型由5个层次组成个层次组成,,即主题层、类即主题层、类--&-对象层、结构层、属性层和服务层属性层和服务层. .(1)类)类-&--&--&-对象层:定义类和属性对象层:定义类和属性对象层:定义类和属性..在这个层次将分析与待开发软件对应地各个现实世界地实体界地实体,,并从中抽象出类和对象并从中抽象出类和对象. .(2)结构层:定义对象和类之间地层次结构关系结构层:定义对象和类之间地层次结构关系,,如一般如一般--特殊结构(即继承结构)、整体-部分结构(即组合结构)部分结构(即组合结构). .(3)属性层:定义属性定义属性..为类和对象层中抽取出来地各个类和对象设计静态属性和它们之间地关系之间地关系. .(4)服务层:定义对象和类地动态属性以及对象之间地消息通信)服务层:定义对象和类地动态属性以及对象之间地消息通信. .(5)主题层:主题是指导读者理解大型、复杂模型地一种机制定义若干个主题定义若干个主题,,把有关地对象分别划归不同地主题关地对象分别划归不同地主题,,每个主题构成一个子系统每个主题构成一个子系统. .3、建立对象模型地基本过程是什么?、建立对象模型地基本过程是什么?答:建立对象模型地基本过程如下:建立对象模型地基本过程如下:确定对象和类à确定结构à确定主题à确定服务和消息确定服务和消息三、应用题1、写出图书管理系统中“办理还书”用例地用例描述、写出图书管理系统中“办理还书”用例地用例描述. .略.2、分析图书管理系统中“查询个人借阅”用例相关地实体类、控制类和边界类控制类和边界类,,绘制出该用例地相关类图例地相关类图,,并设计该模块地用户界面并设计该模块地用户界面. .略.版权申明版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。

软件工程课后练习答案

软件工程课后练习答案

第一章软件工程概述软件工程的基本原则是什么?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 在完成编码以后制定软件的测试计划

软件工程 第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实现)

第七章+客观题作业

第七章+客观题作业
单元测试;模块测试
第2空:
集成测试
第3空:
确认测试;验收测试
第4空:
平行运行
解析:
7、独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条()的边的路径。
正确答案:
第1空:
在定义该路径之前不曾用过
解析:
8、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和()策略。
正确答案:A
解析:
三、判断题(共
1、编码风格由个人喜好决定,没有固定格式。
正确答案:错误
解析:
2、判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。
正确答案:正确
解析:
3、应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。
正确答案:错误
解析:
4、在模块测试的过程中,采用自底向上的测试比自顶向下的测试好。
正确答案:B
解析:
10、为了提高软件测试的效率,应该()。
A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据
C、在完成编码以后制定软件的测试计划
D、选择发现错误可能性最大的数据作为测试用例
正确答案:D
解析:
11、黑盒测试法是根据程序的()来设计测试用例的。
A、应用范围
B、内部逻辑
C、功能
D、输入数据
A、证明了被测试程序正确无误
B、说明了被测试程序符合相应的要求
C、未发现被测程序的错误
D、发现了至今为止尚未发现的错误
正确答案:D
解析:
15、下面几种白盒测试技术,哪种是最强的覆盖准则()。
A、语句覆盖
B、条件覆盖

(完整版)软件工程课后习题答案

(完整版)软件工程课后习题答案

第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

●软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z 语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

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

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

《实用软件工程》第7章 面向对象分析

《实用软件工程》第7章 面向对象分析
一般来说,应该按照问题领域而不是功能分解的方法来确定主题。此外确定主题应遵循 “使不同主题内的类之间依赖和交互最少”的原则来确定主题,可以使用UML的包来展现主题。
21
划分主题
B.主题图 上述的主题划分的最终结果能够形成一个完整的对象类图和一个主题图。 主题图一般有如下3种表示方式。 • 展开方式
18
建立对象模型
复杂问题(大型系统)的对象模型 通常由下述5个层次组成:主题层(也称 为范畴层)、类与对象层、结构层、属 性层和服务层,如图所示。
上述5个层次对应着在面向对象分析 过程中建立对象模型的5项主要活动:划 分主题;找出类与对象;识别结构;定 义属性;定义服务。实际上五项活动没 有必要的完成顺序,设计时也不需要严 格遵守自顶向下原则。
12
面向对象分析原则
1.定义有实际意义的对象 特别要注意的是,一定要把在应用领域中有意义的、与所要解决的问题有关系的所有事物作为对象,
既不能遗漏,也不要定义无关对象。 2.模型的描述要规范、准确
强调实体的本质,忽略无关的属性。对象描述应尽量使用现在时态,陈述语句,以保证语义的清晰。 定义对象时还应该描述对象之间的关系及对象的背景信息 3.共享性
27
确定属性
例:多媒体商店销售系统
需要处理的文件:图像文件和声音文件,都拥有名称和唯一编码,作者信息和 格式信息,声音文件还包括文件时长(秒)。 功能:①添加新的媒体文件;
②通过编码查找需要的文件; ③删除指定文件; ④统计系统中文件的数量。
28
确定属性
分析过程:根据文件的信息,图像文件和声音文件的类都需要有属性:id-编码,author-作者, format-格式。为了方便处理,还可加入source-文件位置。由功能①③,应该有按参数构造和按编码 删除的两个方法。此外还有findByld-查找,count-查找两个方法。

软件工程项目化教程课后习题答案1-7章全

软件工程项目化教程课后习题答案1-7章全

1-1、选择题1.B2.C3.C、B4.C5.D1-2、简答题(1)软件的定义。

答:软件是一系列按照特定顺序组织的计算机数据和指令的集合。

一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。

软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。

简单的说软件就是程序加文档的集合体。

另也泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规等等。

(2)为什么说软件与硬件结合在一起组成计算机完整系统?答:计算机系统由计算机硬件和软件两部分组成。

硬件包括中央处理机、存储器和外部设备等;软件是计算机的运行程序和相应的文档。

计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理结果等功能。

硬件系统主要由中央处理器、存储器、输入输出控制系统和各种外部设备组成。

中央处理器是对信息进行高速运算处理的主要部件,其处理速度最高可达每秒几亿次操作。

存储器用于存储程序、数据和文件,常由快速的主存储器(容量可达数百兆字节)和慢速海量辅助存储器(容量可达1011字节以上)组成。

各种输入输出外部设备是人机间的信息转换器,由输入-输出控制系统管理外部设备与主存储器(中央处理器)之间的信息交换。

软件系统的最内层是系统软件,它由操作系统、实用程序、编译程序等组成。

操作系统实施对各种软硬件资源的管理控制。

实用程序是为方便用户所设,如文本编辑等。

编译程序的功能是把用户用汇编语言或某种高级语言所编写的程序,翻译成机器可执行的机器语言程序。

支援软件有接口软件、工具软件、环境数据库等,它能支持用机的环境,提供软件研制工具。

支援软件也可认为是系统软件的一部分。

应用软件是用户按其需要自行编写的专用程序,它借助系统软件和支援软件来运行,是软件系统的最外层。

(3)为什么说软件工程可以在一定程度上解决软件危机的各种弊端?答:软件工程诞生于60年代末期,它作为一个新兴的工程学科,主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。

2020年智慧树知道网课《软件工程方法与实践》课后习题章节测试满分答案

2020年智慧树知道网课《软件工程方法与实践》课后习题章节测试满分答案

第一章测试1【单选题】(1分)软件产品与物质产品有很大区别,软件产品是一种()产品。

A.文档B.消耗C.有形D.逻辑2【单选题】(1分)软件会逐渐退化而不会磨损,其原因在于()。

A.软件通常发生在使用之后B.软件备件很难订购C.软件通常暴露在恶劣的环境下D.不断的变更使组件接口之间引起3【单选题】(1分)软件工程要解决的问题是()。

A.加快软件开发速度B.降低软件开发成本C.以上都是D.提高软件质量4【单选题】(1分)软件工程的基本要素包括方法、工具和()。

A.硬件环境B.软件系统C.人员D.过程5【多选题】(1分)软件一般包括以下()部分。

A.数据B.规程C.程序D.文档第二章测试1【单选题】(1分)基于计算机系统的元素包括软件、硬件、人员、数据库、文档和()。

A.规范B.规程C.规则D.过程2【单选题】(1分)基于计算机的系统本身可以成为一个更大的基于计算机系统中的一个()。

A.软件B.元素C.文档D.硬件3【单选题】(1分)经济可行性分析中的效益包括经济效益和()效益。

A.环境B.成本C.消耗D.社会4【多选题】(1分)在基于计算机系统的元素中,硬件包括()。

A.提供外部世界功能的电子机械设备(如传感器、马达等)B.打印、复印设备C.提供计算能力的电子设备D.支持数据流的互连设备(如网络交换器、电信设备)5【多选题】(1分)系统工程的任务包括()。

A.成本估算及进度安排B.生成系统规格说明C.识别用户的要求D.系统建模和模拟E.可行性分析第三章测试1【单选题】(1分)在软件生存周期中,()阶段主要任务是“弄清楚要做什么?”。

A.需求分析B.软件测试C.软件设计D.编码实现2【单选题】(1分)通常将软件生命周期划分为系统工程、需求分析、软件设计、编码实现、软件测试、运行维护等阶段,每个阶段都有各自侧重的任务和目标,以下不属于需求分析阶段的任务是()。

A.弄清楚怎么做,规划系统体系结构B.弄清楚需要做什么C.通过调研等方式获取需求D.编制软件需求规格说明书3【单选题】(1分)需求规格说明描述了()。

软件工程七章以前复习与习题课[可修改版ppt]

软件工程七章以前复习与习题课[可修改版ppt]

使用基本路径测试方法,首先绘出流图,代码语句编号如下:
1: START INPUT(A,B,C,D)
2: IF(A>0) 3: AND (B>0) 4: THEN X=A+B 5: ELSE X=A-B 6: END 7: IF(C>A) 8: OR(D<B) 9: THEN Y=C-D 10:ELSE Y=C+D 11:END 12:PRINT(X,Y)
⑶确定线性独立路径的基本集合
1
由于它的环形复杂度为5,因此共有5条独立路
2
径,分别取为:
路径1:1—2—3—4—6—7—9—11—12
3
5
路径2:1—2—5—6—7—9—11—12
4
路径3:1—2—3—5—6—7—9—11—12
6
路径4:1—2—3—4—6—7—8—9—11—12 7
路径5:1—2—3—4—6—7—8—10—11—12
8
9
10
11
12
⑷设计可强制执行基本路径集合中每条路径的测 试用例 ①执行路径1:1-2-3-4-6-7-9-11-12(两个判定表 达式全为真) 输入:A=1,B=1,C=2,D=2(任意) 预期的输出:X=2,Y=0
②执行路径2 :1-2-5-6-7-9-11-12 (第一个判定 表达式为假,第二个判定表达式为真) 输入:A=0,B=1(任意),C=2,D=0(任意) 预期的输出:X=-1,Y=2
④执行路径4:1-2-3-4-6-7-8-9-11-12(两个判定表 达式全为真) 输入:A=1,B=1,C=0,D=-1 预期的输出:X=2,Y=1
⑤执行路径5:1-2-3-4-6-7-8-10-11-12(第一个判 定表达式为真,第二个判定表达式为假) 输入:A=1,B=1,C=0,D=2 预期的输出:X=2,Y=2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章
7.1什么是对象?什么是类?它们之间是什么关系?
答:一、对象是指一组属性以及这组属性上的专用操作的封装体。

二、类是一组具有相同属性和相同操作的对象的集合。

一个类中的每个对象都是这个
类的一个实例(instance)。

三、类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。

7.2什么是继承?
答:继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。

7.3什么是多态性?什么是动态绑定?
答:一、多态性是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。

二、动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起
来。

7.4简述面向对象的分析过程。

答:1、获取客户对系统的需求
需求获取必须让客户与开发者充分地交流,这里介绍一种采用用况来收集客户需求
的技术。

分析员首先标识使用该系统的不同的执行者(actor),这些执行者代表使用该系统的不同的角色。

每个执行者可以叙述他如何使用系统,或者说他需要系统提
供什么功能。

执行者提出的每一个使用场景(或功能)都是系统的一个用况的实例,一个用况描述了系统的一种用法(或一个功能),所有执行者提出的所有用况构成系统的完整的需求。

2、标识类和对象
类和对象来自问题领域。

可以先标识候选类,然后进行筛选
3、定义类的结构和层次
类的结构主要有两种:一般—特殊(generalization—specialization)结构和整体—部分(whole—part)结构。

一般—特殊结构是一种分类结构,反映了类间的一般与特殊的关系。

一般类与特殊
类之间是一种“is a”的关系,如:汽车是一种交通工具。

同样,特殊类还可以分为更
特殊的类,这样可形成类的层次结构。

整体—部分结构反映了类间的整体与部分关系。

值得注意的是,整体—部分关系是对对象而言的,而不是对类的。

整体—部分关系是一种“has a ”的关系,如“汽车”有“发动机”。

同样,整体—部分结构也具有层次结构。

4、建造对象——关系模型
对象--关系模型描述了系统的静态结构,它指出了类间的关系(relationship)。

类之间的关系有关联、依赖、泛化、实现等。

5、建立对象——行为模型
对象--行为模型描述了系统的动态行为,它们指明系统如何响应外部的事件或激励(stimulus)。

建模的步骤如下:
①评估所有的用况,以完全理解系统中交互的序列。

②标识驱动交互序列的事件,理解这些事件如何和特定的对象相关联。

③为每个用况创建事件轨迹(event trace)。

④为系统建造状态机图。

⑤复审对象--行为模型,以验证准确性和一致性。

7.5简述面向对象的设计过程。

答:1、系统设计
将子系统分配到处理器
选择实现数据管理、界面支持和任务管理的设计策略
为系统设计合适的控制机制
复审并考虑权衡(折衷)
2、对象设计
在过程级别(procedural lavel)设计每个操作,即设计每个操作的实现细节
定义内部类
为类属性设计内部数据结构
3、消息设计
使用对象间的协作和对象--关系模型,设计消息模型
4、复审
复审设计模型并在需要时迭代。

7.6什么是用况?什么是执行者?
答:一、用况是一个类,而不是实例,用况的实例称为场景(scenario)
用况总是被执行者启动的(initiated),执行者必须直接或间接地指示系统去执行用
况用况向执行者提供值,这些值必须是可识别的
用况是完整的,一个用况必须是一个完整的描述
二、执行者是指与系统交互的人或其它系统
执行者代表一种角色,而不是具体的某个人。

相关文档
最新文档