软件工程学上半年作业1文档格式.docx
《软件工程学上半年作业1文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程学上半年作业1文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
2、模块规模要适中
3、深度、宽度、扇入及扇出要适当
4、设计单入口单出口的模块
5、模块功能应该可以预测
6、降低接口的复杂性
7、模块的作用域应该在控制域之内
3、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?
1、无法开发复杂程度高的软件
2、成本和进度估计不准
3、无统一科学的规范,软件不可维护
4、无质量保证,可靠性差
5、软件常不能满足用户的需求
6、无适当的文档资料
7、软件生产率太低
4、总体设计的任务
答:
1、设计系统的物理实现方案
2、设计软件的整体结构,划分程序功能模块,决定模块间的接口关系和传递信息;
3、设计系统全局的存贮数据结构
4、设计系统I/O的方式和格式;
5、设计系统安全性、出错处理及代码等
6、设计组装测试计划。
二、选择题。
1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
正确的叙述有②、③、④、⑦、⑧。
如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。
特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。
因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。
模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。
模块太小,模块个数增多,调用的系统开销就会增大。
所以要有一个权衡
2、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。
它从用户界面的开发入手,首先形成(B),用户(C),并就(D)提出意见,它是一种(E)型的设计过程。
供选择的答案:
A:
①需求不确定性高的②需求确定的
③管理信息④决策支持
B:
①用户界面使用手册②用户界面需求分析说明书
③系统界面原则④完善的用户界面
C:
①改进用户界面的设计②阅读文档资料
③模拟用户界面的运行④运行用户界面原型
D:
①同意什么和不同意什么②使用和不使用哪一种编程语言
③程序的结构④执行速度是否满足要求
E:
①自外向内②自顶向下
③自内向外④自底向上
A.①;
B.③;
C.④;
D.①;
E.①
3、供选择的答案中选出正确的答案填入下列叙述中的()内。
模块内聚性用于衡量模块内部各成分之间彼此结合的紧密程度。
(1)一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是(A)的。
(2)将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能,该模块的内聚性是(B)的。
(3)模块中所有成分引用共同的数据,该模块的内聚性是(C)。
(4)模块内的某成分的输出是另一些成分的输入,该模块的内聚性是(D)的。
(5)模块中所有成分结合起来完成一项任务,该模块的内聚性是(E)的。
它具有简明的外部界面,由它构成的软件易于理解、测试和维护。
A~E:
①功能内聚②信息内聚③通信内聚
④过程内聚⑤偶然内聚⑥时间内聚⑦逻辑内聚
A.⑤偶然内聚;
B.⑦逻辑内聚;
C.③通信内聚;
D.④过程内聚;
E.①功能内聚;
4、从下面关于程序编制的叙述中,选出3条正确的叙述。
①在编制程序之前,首先必须仔细阅读给定的程序说明书。
然后,必须如实地依照说明书编写程序。
说明书中常会有含糊不清或难以理解的地方。
程序员在作业时应该对这些地方做出适当的解释。
②在着手编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于找出错误的编写方法。
③在编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于出错的编写方法。
④考虑到以后的程序变化,为程序编写完整的说明书是一项很重要的工作。
只要有了完整的程序说明书,既使程序的编写形式难以让人看懂也没有什么关系。
⑤编制程序时不可缺少的条件是,程序的输入和输出数据的格式都应确定。
其他各项规定都是附带的。
无足轻重。
⑥作为一个好的程序,不仅处理速度要快,而且易读易修改等也都是重要的条件。
为了能得到这样的程序,不仅要熟悉程序设计语言的语法,还要注意采用适当的规格和单纯的表现方法,注意使整个程序的结构简洁。
①、④、⑥。
编制程序的过程实际上是根据设计的结果,用某种机器能够识别的程序设计语言,将设计翻译成机器代码的过程。
因此,必须如实地按照设计说明书编写程序,至于设计说明书中含糊不清的地方,应在编程时分析人员或设人员协商,对这些地方做出适当的解释。
另外,考虑到将来的程序的修改,必须为程序编写完整的说明书,同时程序必须编写得容易让别人看懂,这样程序才容易修改,修改时不容易出错,而且容易验证修改后的结果。
还有,编写程序的人不需重新考虑程序要完成什么功能,这些已经在软件分析与设计过程中充分考虑过了。
5、从下列叙述中选出5条符合程序设计风格指导原则的叙述。
①嵌套的重数应加以限制。
②尽量多使用临时变量。
③不滥用语言特色。
④不用可以省略的括号。
⑤使用有意义的变量名。
⑥应尽可能把程序编得短些。
⑦把常见的局部优化工作留给编译程序去做。
⑧注解越少越好。
⑨程序的格式应有助于读者理解程序。
⑩应尽可能多用GOTO语句。
①、③、⑤、⑦、⑨是正确的。
①条件语句和循环语句嵌套得过多会增加程序的复杂性,从而增加程序的出错率。
③虽然国际上以至国内已经发表了编程语言的标准,但各个计算机厂商在推出自己的计算机系统的同时,也推出了针对自己机器特色的程序设计语言的非标准版本,如果利用这些语言的非标准特性编写程序,就会给将来程序的移植带来困难。
为了提高程序的可移植性,应当只使用语言的标准版本,不要滥用语言的非标准特色。
⑤给在程序中使用的变量赋予与实际含义相符的名字,可以提高程序的可读性,从而提高程序的可维护性。
⑦程序优化的工作最好交给编译程序来做,程序员应把主要注意力放在提高程序的可读性、清晰性、简洁性、正确性、一致性等方面,从而保证软件的可靠性和可维护性。
⑨程序的可读性是至关重要的,所以程序的格式应有助于读者理解程序
6、测试过程需要3类输入:
(A)、(B)和(C)。
请选择正确的答案填入图5.21中以完成测试信息处理的全过程。
供选择答案:
A~C:
①接口选择②软件配置③硬件配置
④测试配置⑤测试环境⑥测试工具
D~F:
①排错②可靠性分析
③结果分析④数据分类
A.②,B.④,C.⑥,D.③,E.①F.②。
分析:
测试信息流如图5.21所示。
测试过程需要3类输入:
(1)软件配置:
包括软件需求规格说明、软件设计规格说明、源代码等。
(2)测试配置:
包括表明测试工作如何进行的测试计划、给出测试数据的测试用例、控制
测试进行的测试程序等。
实际上,测试配置是软件配置的一个子集。
(3)测试工具:
为提高软件测试效率,测试工作需要有测试工具的支持,它们的工作就是
为测试的实施提供某种服务。
例如,测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序、驱动测试的测试数据库等。
测试之后,要对所有测试结果进行分析,即将实测的结果与预期的结果进行比较。
如果发现出错的数据,就意味着软件有错误,然后就需要开始排错(调试)。
即对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。
修正后的文档一般都要经过再次测试,直到通过测试为止。
通过收集和分析测试结果数据,开始对软件建立可靠性模型。
最后,如果测试发现不了错误,那么几乎可以肯定,测试配置考虑得不够细致充分,错误仍然潜伏在软件中。
这些错误最终不得不由用户的使用中发现,并在维护时由开发者去改正。
但那时改正错误的费用将比在开发阶段正错误的费用要高出40倍到60倍
7、由Rumbaugh等人提出的一种面向对象方法叫做对象模型化技术(OMT),即三视点技术,它要求把分析时收集的信息建立在下述3个模型中:
第一个模型是(A)----它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们这间的联系。
第二个模型是(B)----它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。
(B)包括两种图,即(C)和(D)。
(C)描述每一类对象的行为,(D)描述发生于系统执行过程中的某一特定场景。
第三个模型是(E)----它着重于描述系统内部的数据的传送与处理,它由多个数据流组成。
供你选择的答案如下:
A,B,E:
①数据模型②功能模型③行为模型
④信息模型⑤原型⑥动态模型
⑦对象模型⑧逻辑模型⑨控制模型
⑩仿真模型
C,D:
①对象图②概念模型图③状态迁移图
④数据流程图⑤时序图⑥事件追踪图
⑦控制流程图⑧逻辑模拟图⑨仿真图
⑩行为图
A.⑦,B.⑥,C.③,D.⑥,E.②。
在OMT中,把分析时收集的信息建立在3个模型中。
第一个模型是对象模型,它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们之间的联系。
第二个模型是动态模型,它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。
动态模型包括两种图,即状态迁移图和事件追踪图。
状态迁移图描述每一类对象的行为,事件追踪图描述发生于系统执行过程中的某一特定场景。
第三个模型是功能模型,它着重于描述系统内部数据的传送与处理,它由多个数据流图组成。
8、软件维护是软件生存期的最后一个阶段。
软件工程学针对维护工作的主要目标是提高(A),降低(B)。
软件的(C)、(D)、(E)是决定软件可维护性的基本因素。
软件生存期(F)的工作与软件可维护性有密切的关系。
A、B:
①软件的生产率②文档③软件的可靠性
④软件的可维护性⑤维护的代价⑥维护的效率
C、D、E:
①可测试性②互操作性③可理解性
④可修改性⑤可复用性⑥可管理性
F:
①编码阶段②设计阶段③测试阶段
④每个阶段