软件工程课后作业第七章

合集下载

软件工程课后习题答案

软件工程课后习题答案

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.需求分析方法应该容易被用户理解。

  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),执行者必须直接或间接地指示系统去执行用
况用况向执行者提供值,这些值必须是可识别的
用况是完整的,一个用况必须是一个完整的描述
二、执行者是指与系统交互的人或其它系统
执行者代表一种角色,而不是具体的某个人。

相关文档
最新文档