软件工程学上半年第二次作业概要.docx

上传人:b****5 文档编号:7285946 上传时间:2023-01-22 格式:DOCX 页数:11 大小:556.32KB
下载 相关 举报
软件工程学上半年第二次作业概要.docx_第1页
第1页 / 共11页
软件工程学上半年第二次作业概要.docx_第2页
第2页 / 共11页
软件工程学上半年第二次作业概要.docx_第3页
第3页 / 共11页
软件工程学上半年第二次作业概要.docx_第4页
第4页 / 共11页
软件工程学上半年第二次作业概要.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

软件工程学上半年第二次作业概要.docx

《软件工程学上半年第二次作业概要.docx》由会员分享,可在线阅读,更多相关《软件工程学上半年第二次作业概要.docx(11页珍藏版)》请在冰豆网上搜索。

软件工程学上半年第二次作业概要.docx

软件工程学上半年第二次作业概要

《软件工程学》第二次作业

一、简答题

1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?

答:

1、无法开发复杂程度高的软件

 2、成本和进度估计不准    

3、无统一科学的规范,软件不可维护  

4、无质量保证,可靠性差   

5、软件常不能满足用户的需求   

6、无适当的文档资料    

7、软件生产率太低 

2、总体设计的任务

答:

1、设计系统的物理实现方案    

2、设计软件的整体结构,划分程序功能模块,决定模块间的接口关系和传递信息;   

3、设计系统全局的存贮数据结构   

4、设计系统I/O的方式和格式;   

5、设计系统安全性、出错处理及代码等   

6、设计组装测试计划。

二、选择题

1、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。

它从用户界面的开发入手,首先形成(B),用户(C),并就(D)提出意见,它是一种(E)型的设计过程。

供选择的答案:

A:

①需求不确定性高的②需求确定的

③管理信息④决策支持

B:

①用户界面使用手册②用户界面需求分析说明书

③系统界面原则④完善的用户界面

C:

①改进用户界面的设计②阅读文档资料

③模拟用户界面的运行④运行用户界面原型

D:

①同意什么和不同意什么②使用和不使用哪一种编程语言

③程序的结构④执行速度是否满足要求

E:

①自外向内②自顶向下

③自内向外④自底向上

答:

A.①  B. ③; C. ④; D. ①; E. ① 

2、从下面关于程序编制的叙述中,选出3条正确的叙述。

①在编制程序之前,首先必须仔细阅读给定的程序说明书。

然后,必须如实地依照说明书编写程序。

说明书中常会有含糊不清或难以理解的地方。

程序员在作业时应该对这些地方做出适当的解释。

②在着手编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于找出错误的编写方法。

③在编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于出错的编写方法。

④考虑到以后的程序变化,为程序编写完整的说明书是一项很重要的工作。

只要有了完整的程序说明书,既使程序的编写形式难以让人看懂也没有什么关系。

⑤编制程序时不可缺少的条件是,程序的输入和输出数据的格式都应确定。

其他各项规定都是附带的。

无足轻重。

⑥作为一个好的程序,不仅处理速度要快,而且易读易修改等也都是重要的条件。

为了能得到这样的程序,不仅要熟悉程序设计语言的语法,还要注意采用适当的规格和单纯的表现方法,注意使整个程序的结构简洁。

答:

①、④、⑥。

3、测试过程需要3类输入:

(A)、(B)和(C)。

请选择正确的答案填入图5.21中以完成测试信息处理的全过程。

供选择答案:

A~C:

①接口选择②软件配置③硬件配置

④测试配置⑤测试环境⑥测试工具

D~F:

①排错②可靠性分析

③结果分析④数据分类

答:

 

A.②, B.④, C.⑥, D.③, E.① F.②。

   

分析:

测试信息流如图5.21所示。

测试过程需要3类输入:

    

(1)软件配置:

包括软件需求规格说明、软件设计规格说明、源代码等。

    

(2)测试配置:

包括表明测试工作如何进行的测试计划、给出测试数据的测试用例、控制 测试进行的测试程序等。

实际上,测试配置是软件配置的一个子集。

 

(3)测试工具:

为提高软件测试效率,测试工作需要有测试工具的支持,它们的工作就是 为测试的实施提供某种服务。

例如,测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序、驱动测试的测试数据库等。

测试之后,要对所有测试结果进行分析,即将实测的结果与预期的结果进行比较。

如果发现出错的数据,就意味着软件有错误,然后就需要开始排错(调试)。

即对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。

修正后的文档一般都要经过再次测试,直到通过测试为止。

通过收集和分析测试结果数据,开始对软件建立可靠 性模型。

最后,如果测试发现不了错误,那么几乎可以肯定,测试配置考虑得不够细致充分,错误仍然潜伏在软件中。

这些错误最终不得不由用户的使用中发现,并在维护时由开发者去改正。

但那时改正错误的费用将比在开发阶段正错误的费用要高出40倍到60倍 

4、软件维护是软件生存期的最后一个阶段。

软件工程学针对维护工作的主要目标是提高(A),降低(B)。

软件的(C)、(D)、(E)是决定软件可维护性的基本因素。

软件生存期(F)的工作与软件可维护性有密切的关系。

供选择的答案:

A、B:

①软件的生产率②文档③软件的可靠性

④软件的可维护性⑤维护的代价⑥维护的效率

C、D、E:

①可测试性②互操作性③可理解性

④可修改性⑤可复用性⑥可管理性

F:

①编码阶段②设计阶段③测试阶段

④每个阶段

答:

A.④, B.⑤, C.①, D.③,  E.④, F.④。

其中,C、D、E的答案顺序可互换。

 原因说明:

 

软件维护是软件生存期的最后一个阶段,也是持续时间最长、代价最大的一个阶段。

软件工程学针对维护工作的主要目标就是提高软件的可维护性,降低维护的代价。

软件维护通常包括 

4类维护活动:

改正性维护、适应性维护、完善性维护和预访性维护。

软件的可理解性、 可修改性和可测试性是决定软件可维护性的基本因素。

软件生存期各个阶段的工作都与软件可维护性有密切的关系。

5、下面有关软件维护的叙述有些是不正确的,请将它们列举出来。

供选择的答案:

①要维护一个软件,必须先理解这个软件。

②阅读别人写的程序并不困难。

③如果文档不齐全也可以维护一个软件。

④谁编写软件就应由谁来维护这个软件。

⑤设计软件时就就考虑到将来的可修改性。

⑥维护软件是一件很吸引人的创造性工作。

⑦维护软件就是改正软件中的错误。

⑧维护好一个软件是一件很难的事件。

答:

软件维护人员通常不是该软件的开发人员,这给软件维护带来很大的困难。

特别是有些软件在开发时没有遵循软件开发的准则,没有开发方法的支持,维护这样的软件就更困难。

 

下面列举一些与软件维护有关的问题。

    

(1)要维护一个软件,首先必须要理解它。

而理解一个别人编写的软件通常是困难的,尤 

其是对软件配置(指各种相关的文档)不齐全的软件,理解起来就更加困难。

2)需要维护的软件往往缺少合格的文档,或者文档资料不齐全,甚至根本没有文档。

在软件维护中,合格的文档十分重要,它有助于理解被维护的软件。

合格的文档不仅要完整正确地反映开发过程各个阶段的工作成果,而且应当容易理解并应与程序源代码一致。

而错误的文档对软件的理解引入歧途。

 

   

(3)在软件维护时,不要指望得到原来开发该软件的人员的帮助。

开发人员开发完一个软件后,往往会从事另一软件的开发,甚至已离开原开发单位。

即使原来的开发人员还在,也可能时间太久而忘却了实现的细节。

 

(4)多数软件在设计时没有考虑到将来的修改,这给软件的修改造成了困难。

而且在修改软件时很可能引入新的差错。

 

   

(5)软件维护通常不是一件吸引人的工作。

从事维护工作常使维护人员缺乏成就感,这也严重影响维护工作,从而影响了维护质量的提高。

三、论述题

 

1、面向对象软件开发方法与传统的面向数据流的结构化软件开发方法有什么不同?

使用面向对象开发方法的优点是什么?

答:

1)、结构化方法是面向过程的开发方法,以产生过程的抽象作为系统开发的起点,这些抽象把软件看作是处理流,定义构成一系列步骤的算法,每一步骤都是带有输入和输出的一个过程,将这些步骤结合在一起便可产生合理的、稳定的、贯穿于整个程序的控制流。

最终可导出一个简单的具有静态结构的软件体系结构。

结构化开发方法中,数据结构是为算法步骤的要求而开发的,数据结构贯穿于过程,提供过程需要传送给它的操作的信息。

 2)、面向对象开发方法以标识和模型化问题论域中的实体作为系统开发的起点,系统中标识出的对象是数据抽象与过程抽象的一个混合体。

控制流被分成块,并被包括在各个数据抽象上的操作里面。

控制流从一个数据抽象被传送到另一个数据抽象。

在块中分离的控制流允许把复杂的动作视为局部的相互影响,因此,软件系统的体系结构更为复杂但也更为灵活。

 3)、使用面向对象开发方法的优点可概括为:

 

A)、与人类习惯的思维方法一致 

归纳思维 ------对象分类(特殊到一般)          

演绎思维 ------类等级的属性继承(一般到特殊) 

B)、稳定性好软件系统的结构不依赖于系统功能需求的变化      

C)、可重用性好 

创建对象类的实例,获得重用该对象类; 

从某对象类派生一个新类,继承性机制使子类可重用父类的数据结构和程序代码,并可进行扩充和修改而不影响父类的使用 

D)、可维护性好 

稳定性好 容易修改 容易理解 容易测试和调试 

2、改错性维护与“排错”是否是一回事?

为什么?

答:

改错性维护与“排错(调试)”不是一个概念。

调试是作为测试的后继工作而出现的,是当测试发现软件中的错误后,进一步诊断和改正程序中潜在的错误的活动。

而改正性维护是指在软件交付使用后,由于开发时测试得不彻底。

不完全,必然会有一部分隐藏的错误被带到运行阶段来,这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。

为了识别和纠正软件错误改正软件性能上的缺陷、排除实施中的错误使用所进行的诊断和改正错误的过程。

调试在程序编码阶段、测试阶段、运行和维护阶段之后,用户实际充当了测试员的角色,一旦发现软件运行中的错误或缺陷,就会将问题报告通报软件销售商,申请软件维护。

其后软件维护人员可以利用调试手段来诊断和改正软件中存在错误。

这时呆能涉及的范围不只包括程序,还有文档和数据,不仅可能修改设计,甚至需求。

所以改正性维护是在更大范围中做工作

3、简述结构化方法中软件工程的分析模型和设计模型,描述从分析模型到设计模型的信息流。

答:

4、软件配置管理的任务是什么?

描述作为基线的软件配置项(SCI)的修改过程模型。

 

四、考务处理系统有如下功能:

①对考生送来的报名表进行检查。

②对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生名单送给阅卷站。

③对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。

④填写考生通知单(内容包含考试成绩和合格/不合格标志),送给考生。

⑤按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计和试题难度分析,产生统计分析表。

问题:

按上述功能需求设计系统的数据流程图。

 

 

五、给出下面结构化程序流程图,请画出对应的N-S图。

答:

 

六、下面是选择排序的程序,其中datalist是数据表。

它有两个数据成员。

一是元素类型成Element的数组V,另一个是数组大小n。

算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey(),一是交换两数组元素内容的操作Swap():

voidSelectSort(datalist&list){

//对表list.V[0]到list[n-1]进行排序,n是表当前长度

for(inti=0;i

intK=i

//在list.V[i].key到list.V[n-1].key中找具有最小键码的对象

for(intj=i+1;j

if(list.V[j].getKey()

//当前具最小关键码的对象

if(k=!

=i)Swap(list.V[i],list.V[K]);//交换

}

}

(1)试计算此程序段的McCabe环路复杂性。

(2)用基本路径覆盖法给出测试路径。

(3)为各测试路径设计测试用例。

 

答:

1)McCabe环境复杂性=5 

(2)立路径有5条,如图5.23所示:

 

图5.23 程序流程图 

(3)为各测试路径设计测试用例:

 路径①③:

取n=1 

路径①②⑤⑧„„:

取n=2, 预期结果:

路径⑤⑧③不可达 路径①②⑤⑨„„:

取n=2, 预期结果:

路径⑤⑨③不可达 路径①②④⑥⑤⑧③ 

    取n=2,V[0]=2,V[1]=1,预期结果:

K=1,V[0]=1,V[1]=2 路径①②④⑥⑤⑨③:

 

取n=2, V[0]=2,V[1]=1,预期结果:

K=1,路径⑨③不可达 路径①②④⑦⑤⑧③:

 

取n=2, V[0]=1,V[1]=2,预期结果:

K=0,路径⑧③不可达 路径①②④⑦⑤⑨③:

取n=2, V[0]=1,V[1]=2,预期结果:

K=0,V[0]=1,V[1]=2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1