软件工程概论的练习题及答案(5)

1970-01-01 08:00

输入(或输出)数据流,但子图中这几个数据流中的数据项合起来正好是父图中的那个数据流,这时它们还算是平衡的。例如,图(b)中加工2的输出数据流“统计分析表”是由“难度分析表”和“分类统计表”组成,那么图(b)与图(d)仍满足父图与子图平衡的条件。 ⑥在自顶向下的分解过程中,若一个文件首次出现时只与一个加工有关,那么这个文件应作为这个加工的内部文件而不必画出。例如,图(d)中的文件“试题得分表”就是图(b)中加工的内部文件,所以在图(b)中没有画出。

⑦保持数据守恒。就是说,一个加工的所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工产生的数据。

9、Petri网可以描述计算机软件系统的执行。现有一个程序如下(类似于Pascal语言) L : S1; WHILE P1 DO BEGIN

IF P2 THEN S2

ELSE S3; COBEGIN S4; S5; S6; COEND END; GOTO L;

S6是单个执行语句,COBEGIN和COEND是并行执行开始和并行执行结束(即S4,S5和S6语句并行执行)。试用Petri网描述这段程序的执行过程。 其中,P1和P2为逻辑表达式,S1

答:采用条件?事件网(C?E网,C―Condition, E―Event)式Petri网。其定义如下: ①当事件e激发时条件c开始成立,则称c是e的后继。此关系用“ ”表示; ②当事件e激发时条件c消失成立,则称c是e的前驱。此关系用“ ”表示; ③当事件e激发时条件c不受影响,则c和e之间没有前驱、后继关系,无边。 根据定义,给定程序的C?E网如下:

10、数据词典的作用是什么?它有哪些基本词条?

答:分析模型中包含了对数据对象、功能和控制的表示。在每一种表示中,数据对象和控制项都扮演一定的角色。为表示每个数据对象和控制项的特性,建立了数据词典。数据词典精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。 在数据词典的每一个词条中应包含以下信息:

①名称:数据对象或控制项、数据存储或外部实体的名字。

②别名或编号。

③分类:数据对象?加工?数据流?数据文件?外部实体?控制项(事件?状态)? ④描述:描述内容或数据结构等。

⑤何处使用:使用该词条(数据或控制项)的加工。

11、传统的软件开发模型的缺陷是什么?原型化方法的类型有哪些?原型开发模型的主要优点是什么? 答:传统软件生存期范型的典型代表是“瀑布模型”。这种模型的核心是将软件生存期划分为软件计划、需求分析、软件设计、编码、测试和运行维护等阶段,根据不同阶段工作的特点,运用不同的方法、技术和工具来完成该阶段的任务。软件开发人员遵循严格的规范,在每一阶段工作结束时都要进行严格的阶段评审和确认,以得到该阶段的一致、完整、正确和无歧义性的文档资料,并以它们做为下一阶段工作的基础。

传统思想强调每一阶段的严格性,尤其是开发初期要有良好的软件规格说明,主要是源于过去软件开发的经验教训,即在开发的后期或运行维护期间来修改不完善的规格说明要付出巨大的代价。但是,要想得到一个完整准确的规格说明不是一件容易的事。特别是对于一些大型的软件项目,在开发的早期用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求,软件开发人员对于所要解决的应用问题认识更是模糊不清。经过详细的讨论和分析,也许能得到一份较好的规格说明,但却很难期望该规格说明能将系统的各个方面都描述得完整、准确、一致,并与实际环境相符。很难通过它在逻辑上推断出(不是在实际运行中判断评价)系统运行的效果,以此达到各方对系统的共同理解。随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求系统也能随之变化;开发人员又可能在设计与实现的过程中遇到一些没有预料到的实际困难,需要以改变需求来解脱困境。因此规格说明难以完善、需求的变更、以及通信中的模糊和误解,都会成为软件开发顺利推进的障碍。尽管在传统软件生存期管理中通过加强评审和确认,全面测试,甚至依靠维护阶段能够缓解上述问题,但不能从根本上解决这些问题。

为了解决这些问题,逐渐形成了软件系统的快速原型的概念。由于运用原型的目的和方式不同,原型可分为以下两种不同的类型:

①废弃型:先构造一个功能简单而且质量要求不高的模型系统,针对这个模型系统反复进行分析修改,形成比较好的设计思想,据此设计出更加完整、准确、一致、可靠的最终系统。系统构造完成后,原来的模型系统就被废弃不用。

②追加型或演化型:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,最后发展成为最终系统。 建立快速原型进行系统的分析和构造,有以下的优点:

①增进软件者和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明确化。由于这种方法能在早期就明确了用户的要求,因此可防止以后由于不能满足用户要求而造成的返工,从而避免了不必要的经济损失,缩短了开发周期。

②软件原型化方法提供了一种有力的学习手段。通过原型演示,用户可以亲身体验早期的开发过程,获得关于计算机和被开发系统的专门知识。软件开发人员也可以获得用户对系

统的确切要求,学习到应用范围的专业知识。

③使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果。因而它可以作为理解和确认软件需求规格说明的工具。

④软件原型的最终版本,有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统。

12、试简述原型开发的过程和运用原型化方法的软件开发过程。

答:原型的开发和使用过程叫做原型生存期。下图是原型生存期的模型及其细化。

①快速分析 :在分析者和用户的紧密配合下,快速确定软件系统的基本要求。 ②构造原型 :根据基本规格说明,尽快实现一个可运行的原型系统。

③运行和评价原型 :用户试用原型,考核评价原型的特性。纠正过去交互中的误解和分析中的错误,增补新的要求,提出全面的修改意见。

④修正和改进 :根据修改意见进行修改。如果用修改原型的过程代替快速分析,就形成了原型开发的迭代过程。在一次次的迭代过程中不断将原型完善,以接近系统的最终要求。 ⑤判定原型完成 :经过修改或改进的原型,达到参与者一致认可,则原型开发的迭代过程可以结束。为此,应判断有关应用的实质是否已经掌握,判定的结果有两个不同的转向,一是继续迭代验证,一是进行详细说明。

⑥判断原型细部是否说明 :判断组成原型的细部是否需要严格地加以说明。 ⑦原型细部的说明 :通过文件加以说明那些不能通过原型说明的项目。 ⑧判定原型效果 :考察新加入的需求信息和细部说明信息,看其对模型有什么影响? 是否会影响模块的有效性? 如果模型受到影响,则要进行修正和改进。 ⑨整理原型和提供文档

快速原型方法的提出使得传统的软件生存期在思想方法上受到了影响。如果只是在局部

运用原型化方法,若将原型开发过程用于软件生存期的某一个阶段内,那么传统的软件生存期依然不变,只是阶段内部的软件定义或开发活动采用了新的方法。但若原型开发过程代替了传统生存期中的多个阶段,则软件开发过程就成为一种新的形式。 图(a)表示了使用原型方法的软件生存期模型。原型开发过程处于核心,表示可在生存期的任何阶段中引入原型开发过程,也可合并若干阶段,用原型开发过程代替。图(b)详细描述了在各个阶段可能引入原型开发过程的软件开发过程。其中在原型开发过程的最后加上了一个“是否构造新原型”的判断,这是针对在系统开发的过程中有可能为不同的目的而要使用多个原型的情况而设。

①辅助或代替分析阶段 :在分析阶段利用快速原型方法可以得到良好的需求规格说明。在整体上仍然采用传统的模式,但使用原型化方法来补充和完善需求说明以达到一致、准确、完整、无多义性地反映用户要求,从而代替了传统的仅由复审和确认来提高需求规格说明质量的方法。并能在早期克服潜在的误解、遗漏和错误,尽量不让潜在的问题遗留到开发的后期,减少将来维护的代价。

②辅助设计阶段 :在设计阶段引入原型,可根据需求分析得到的规格说明进行快速分析,得到实现方案后立即构造原型,通过运行,考察设计方案的可行性与合理性。在这个阶段引入原型,可以迅速得到完善的设计规格说明。原型可能成为设计的总体框架,也可能成为最终设计的一部分或补充的设计文档。 ③代替分析与设计阶段 :这时不再遵循传统的严格按阶段进行软件开发的要求,而是把原型方法直接应用到软件开发的整体过程。在实施原型开发的过程中,不再考虑完善的需求说明,把分析、定义和设计交织在一起,通过原型的构造、评价与改进的迭代过程,逐步向最终系统的全面要求靠近。由于在分析的同时也考虑了设计与实现的要求,能更有效地确定系统的需求和设计规格说明。 ④代替分析、设计和实现阶段 :在软件开发环境的支持下,通过原型生存期的反复迭代,直接得到软件的程序,交付系统测试。这属于进化型的原型开发,由初始的基本需求得到最初的原型开始,一直进化到软件的整体系统,并满足用户的一切可能的要求。

⑤代替全部定义与开发阶段 :这是典型的进化型原型开发方法。完全摆脱了传统的软件生存期模式,通过反复的原型迭代过程,直接得到最终的软件产品。系统测试作为原型评价工作的一部分,融入原型的开发过程。

13、软件需求分析说明书主要包括哪些内容?

答:软件需求规格说明是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。 软件需求规格说明的框架如下:

14、阅读下列关于开发人事管理系统的交互式工作方式的叙述,再回答问题。

某大企业最近决定采用高性能微机开发人事管理系统,将四台联机终端分置于人事处的

三个科室。该系统可供操作员和程序员使用,也可供人事处负责人和主管人事的副厂长等查询人事信息用。人事管理系统通过录入人事数据和修改、删除等操作,产生和更新各类人事文件,通过搜索这些文件进行各类人事信息的查询。 该企业有3000多个工人、干部和技术人员,大体可分成机关科室、生产车间、后勤服务和开发研制部门等几类部门。厂领导决定由计算机应用科来负责协调和开发应用系统。计算机应用科科长指示系统工程师张某负责进行系统分析。

考虑到人事处有大量的查询信息要求、频繁的人事信息修改和文件存档、查阅等特点,计算机应用科决定认真设计人机交互界面,首先设计好在终端上的交互式会话的方式。 系统工程师张某通过调查收集到如下10条意见:

(1) 某程序员认为:系统在屏幕格式、编码等方面应具有一致性和清晰性,否则会影响操作人员的工作效率。

(2) 某操作人员认为:在交互式会话过程中,操作人员可能会忘记或记错某些事情,系统应当提供HELP功能。

(3) 某操作人员认为:既然是交互式会话,那么对所有的输入都应当作出响应,不应出现击键后,计算机没有任何反应的情况。

(4) 某操作人员认为:在出错的时候,交互式会话系统应当给出出错信息,并且尽可能告诉我们出错的性质和错在什么地方。

(5)某程序员认为:终端会话也应当符合程序员编制程序时的习惯,这样可以更高效地维护人事管理系统。

(6) 教育科干部甲认为:应当对操作员进行一些必要的培训,让他们掌握交互式会话系统的设计技巧,有助于提高系统的使用效率。

(7) 教育科干部乙认为:尽管操作人员的指法已经强化训练但在交互式会话时应尽可能缩短和减少操作员输入的信息,以降低出错概率。

(8) 某程序员认为:由于本企业中有很多较大的文件,文件的查找很费时间,交互式会话系统在响应时间较长时应给予使用者以提示信息。

(9) 人事处干部丙认为:我们企业的人事资料相当复杂,格式非常之多,希望交互式系统使用十分清晰的格式,并容易对输入数据中的错误进行修改。

(10) 人事处干部丁认为:人事管理系统应当具有相当的保密性和数据安全性,因此在屏幕上显示出的信息应该含混一些,以免泄密。

系统工程师张某对上述调查情况和其他要求作了分析后,发现收集到的10条意见中有3条意见是不能接受的,写出编号并各用40字以内叙述理由。

答:不能接受的3条意见是 (5)、(6)、(10)。人机交互界面首先考虑的是用户如何使用起来方便,与编程习惯、设计技巧无关。此外,屏幕上信息应很清晰易懂,安全保密与屏幕显示无关。

面向对象

一、填空题

1、面向对象的特征是对象唯一性、分类性、继承性和多态性 。 2、面向对象有三个基本要素,它们是抽象、封装性和共享性。 3、类具有属性,它是对象状态的抽象,用数据结构来描述类的属性。 4、类具有操作,它是对象行为的抽象,用操作名和操作方法实现来描述。

5、在类层次中,子类只继承一个父类的属性和方法,则称为单继承。子类继承了多个父类的属性和方法,则称为多继承。

6、OMT方法是RumBaugh等人提出的面向对象开发方法。开发工作的基础是对现实世界的对象建模,然后围绕这些对象使用分析模型来进行独立于语言的设计。


软件工程概论的练习题及答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中班上学期幼儿学习与发展评价及分析表分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: