软件工程学2016年上半年第一次作业_第1页
软件工程学2016年上半年第一次作业_第2页
软件工程学2016年上半年第一次作业_第3页
软件工程学2016年上半年第一次作业_第4页
软件工程学2016年上半年第一次作业_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程学第一次作业一、简答题1、 需求分析的任务 答:需求分析的任务主要包括以下几项: 确定目标系统的综合要求,其中包括 (目标系统的功能、性能、运行的环境及扩展性要求);   分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数  据数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统 2、模块设计准则 答:1、改进软件结构提高模块独立性(低耦合高内聚)    2、模块规模要适中 

2、0;   3、深度、宽度、扇入及扇出要适当    4、设计单入口单出口的模块    5、模块功能应该可以预测    6、降低接口的复杂性     7、模块的作用域应该在控制域之内二、选择题 1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。 程序设计比较方便,但比较难以维护。 便于由多个人分工编制大型程序。 软件的功能便于扩充。 程序易于理解,也便于排错。 在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。 模块之间的接

3、口叫做数据文件。 只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。 模块间的单向调用关系叫做模块的层次结构。 模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。答:正确的叙述有、。2、供选择的答案中选出正确的答案填入下列叙述中的( )内。模块内聚性用于衡量模块内部各成分之间彼此结合的紧密程度。(1)一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是(A)的。(2)将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能,该模块的内聚性是(B)的。(3)模块中所有成分引用共同的数据,该模块的内聚性

4、是(C)。(4)模块内的某成分的输出是另一些成分的输入,该模块的内聚性是(D)的。(5)模块中所有成分结合起来完成一项任务,该模块的内聚性是(E)的。它具有简明的外部界面,由它构成的软件易于理解、测试和维护。供选择的答案:AE: 功能内聚 信息内聚 通信内聚 过程内聚 偶然内聚 时间内聚 逻辑内聚答:A.偶然内聚; B.逻辑内聚;C.通信内聚; D.过程内聚;E.功能内聚3、从下列叙述中选出5条符合程序设计风格指导原则的叙述。 嵌套的重数应加以限制。 尽量多使用临时变量。 不滥用语言特色。 不用可以省略的括号。 使用有意义的变量名。 应尽可能把程序编得短些。 把常见的局部优

5、化工作留给编译程序去做。 注解越少越好。 程序的格式应有助于读者理解程序。 应尽可能多用GOTO语句。答:、是正确的。4、由Rumbaugh等人提出的一种面向对象方法叫做对象模型化技术(OMT),即三视点技术,它要求把分析时收集的信息建立在下述3个模型中:第一个模型是(A)- 它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们这间的联系。第二个模型是(B)- 它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。(B)包括两种图,即(C)和(D)。(C)描述每一类对象的行为,(D)描述发生于系统执行过程中的某一特定场景。第三个模型是(E)- 它着重于描

6、述系统内部的数据的传送与处理,它由多个数据流组成。供你选择的答案如下:A,B,E: 数据模型 功能模型 行为模型 信息模型 原型 动态模型 对象模型 逻辑模型 控制模型 仿真模型C,D: 对象图 概念模型图 状态迁移图 数据流程图 时序图 事件追踪图 控制流程图 逻辑模拟图 仿真图 行为图答: A,B.,C.,D.,E.。    在OMT中,把分析时收集的信息建立在3个模型中。第一个模型是对象模型,它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们之间的联系。第二个模型是动态模型,它描述系统的控制逻辑,主要涉及系统

7、中各个对象和类的时序及变化状况。动态模型包括两种图,即状态迁移图和事件追踪图。状态迁移图描述每一类对象的行为,事件追踪图描述发生于系统执行过程中的某一特定场景。第三个模型是功能模型,它着重于描述系统内部数据的传送与处理,它由多个数据流图组成。5、从下列叙述中选出5条与提高软件的可移植性有关的叙述。 把程序中与计算机硬件特性有关的部分集成在一起。 选择时间效率和空间效率高的算法。 使用结构化的程序设计方法。 尽量用高级语言编写程序中对效率要求不高的部分。 尽可能减少注释。 采用表格控制方式。 文档资料详尽、正确。 在有虚拟存储器的计算机系统上开发软件。 减少程序中对文件的读写次数。 充分利用宿主

8、计算机的硬件特性。答:正确的叙述有、。    为了提高软件的可移植性,应当尽可能用高级语言编写源程序代码。对于与硬件或操作系统有关的部分,或对效率要求很高的部分, 应当为它们建立专门的模块,将用汇编语言写的程序封装在这些模块中,与程序中其他部分以事先约定的标准方式接口。这样,一旦硬件环境或操作系统环境发生变化,只需修改这个别模块即可。  采用表格控制方式,将所有的外部设备接口或与其他系统的接口,包括信息传补递、驱动程序入口等都用表格控制,即使将来硬件、相关软件发生的变化,只需修改表格中的登记项,原来的程序一律可以不改。

9、60;为了将来修改方便,不致于引入新的错误,相关文档一定要齐全、正确,程序必须有必要的注释,并使用如结构化程序设计方法这样的良好程序设计方法来编写程序。至于算法选择,与效率有关,与可移植性无关。其他叙述,如、,都不利于可移植性。三、论述题1. 论述瀑布模型软件开发方法的基本过程。答:    瀑布模型软件开发方法将软件开发分成四个时期八个阶段:   分析时期:    1)问题定义-问题性质、工程目标及规模    2)可行性研究-技术上、经济上、社会

10、上是否有可行解?   3)需求分析- 确定目标系统必须具备的功能?    设计时期:    4)总体设计- 1).几种求解方案;2).设计软件的结构   5)祥细设计- 设计出程序的祥细规格说明编码与测试时期:    6)编码与单元测试- 程序编码实现与模块测试7)综合测试- 集成测试和验收测试运行与维护时期:    8)维护&

11、#160;-改正性维护、适应性维护、完善性维护、预防性维护特点:下导式开发、追溯式确认、适合能事先确切定义需求的软件开发2. 为什么软件需要维护?维护有哪几种类型?简述它们的维护过程。答:在软件开发成这交付用户使用后,为了保证软件在一个相当长的是时期有够正常运行,不需要对软件进行维护。 软件维护的为类型有4种:改正性维护、适应性维护、完善性维护和预防性维护。其中,改正性维护是要改正正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷;适应性维护是要在软件使用过程中数据环境发生变化或处理环境发生变化时修改软件以适应这种变化;完善性维护是用户和数据处理人员使用软件过程中提出改进现有功

12、能、增加新的功能,以及改善总体性能的要求后,修改软件以把这些要求纳入到软件之中。 由这些原因引起折维护活动可以归为以下几类:预防性维护是为了提高软件的可维护性、可靠性等,事先采用先进的软件工程方法对面要维护的软件或软件中的某一部分(重新)进行设计、编制和测试,为以后进一步改进软件打下良好的基础。 软件维护的过程如图7.19所示。第一步是先确认维护要求。这需要维护人员与用户反复协商,弄清错误概况及对业务的影响大小,以及用户希望做什么样的修改,并把这些情况存入故障数据库。然后,由维护组织管理员确认维护类型。对于改正维护申请,从评价错误的严重性开始工作。如果存在严重的错误,则必须

13、安排人员,在系统监督员的指导下,进行问题 分析,寻找错误发生的原因,进行“救火”性的紧急维护;对于不严重的错误,可根据任务、 机时情况,视轻重缓急,进行排队,统一安排时间。对于适应性维护和完善性维护申请,需要先确定每项申请的优先次序。若某项早请的优先级非常高,就可立即开始维工作,否则,维护申请和其他的开发工作一样,进行排队,统一安排时间。并不能所有的完善性维护申请都必须承担,因为进行完善性维护等于是做二次开发,工作量大,所以需要根据商业需要、可利用资源的情况、目前和将来软件的发展 向以及其他考虑,决定是否承担。 尽管维护申请的类型不同,但都要进行同样的技

14、术工作。这此工作有修改软件的需求说明,修改软件设计、设计评审、对源程做必要的修改、单元测试、集成测试(回归测试)、确认测试、软件配置评审等。在每次软件维护任务完成后,最好进行一次情况评审,对以下问题做一总结: (1) 在目前情况下,设计、编码、测试中的哪一方面可以改进? (2) 哪些维护资源应该有但没有? 3)工作中主要的或次要的障碍是什么?  (4)从维护申请的类型来看是否应当有预防性维护? 情况评审对将来的维护工作如何进行会产生重要的影响,并可为软件机构的效管理提供重要的反馈信息。3. 软件复杂性有哪几类?软件复杂性度量模型应遵循哪些则?答:K.Ma

15、gel从6个方面描述软件的复杂性: (1)理解程序的难度。 (2)改错及维护程序的难度。 (3)向他人解释程序的难度。 (4)按指定方法修改程序的难度。 (5)根据设计文档编写程序的工作量。 (6)执行程序时需要资源的程度。 软件复杂性度量模型应遵循的基本原则: (1)软件复杂性与程序大小的关系不是线性的。 (2)控制结构复杂的程序较复杂。(3)数据结构复杂的程序较复杂。 (4)转向语句使用不当的程序较复杂。 (5)循环结构比选择结构复杂,选择结构又比顺序结构复杂。 (6)语

16、句、数据、子程序和模块在程序中的次序对软件复杂性都有影响。 (7)全程变量、非局部变量较多时程序较复杂。 (8)参数按地址传递比按值传递更复杂。 (9)函数副作用比显式参数传递更难以琢磨。 (10)具有不同作用的变量共用一个名字时较难理解。 (11)模块间或过程联系密切的程序较复杂。 (12)嵌套深度越深程序越复杂。 最典型的两种程序复杂性度量的方法中,McCabe环路复杂性度量就是针对基本原则(2)制定的度量模型。Halstead软件科学则是针对程序中操作符和操作数的出现频度而制定的度量模型。4. 简述面向对象OMT方法的

17、分析模型,描述面向对象分析的大体过程。答: OMT是一种软件工程方法学,支持整个软件生存周期。它覆盖了问题构成、分析、设计和实现等阶段。统分析阶段涉及对应用领域的理解及问题域建模。分析阶段的输入是问题陈述说明要解决的问题并提供了对假想系统的概念总览同用户不断对话以及对客观世界背景知识的了解作为分析的附加输入分析的结果是一个形式化模型该模型概括了系统的3个本质因素:对象及对象之间的关系、动态的控制流以及带有约束的功能数据变换。系统设计阶段确定整个系统的体系结构。系统可由多个子系统组成,把对象组织成聚集并发任务而反映并发性对动态模型中处理的相互通信、数据存储及实现要制定全面的策略。在权衡

18、设计方案时要建立优先顺序。对象设计阶段要精心考虑和细化分析模型然后优化地生成一个实际设计。对象设计的重点从应用域概念转到计算机概念上来应选择基本算法来实现系统中各主要功能。OMT方法学是组织开发的一种过程。这种过程是建立在一些协调技术之上的OMT方法的基础是开发系统的3个模型再细化这3种模型并优化以构成设计。对象模型由系统中的对象及其关系组成动态模型描述系统中对象对事件的响应及对象间的相互作用功能模型则确定对象值上的各种变换及变换上的约束。5. 简述软件工程的三个要素:方法、工具和过程。答: 方法要素      为软件开发提供了“如何

19、做”的技术它包括多方面的任务,如项目计划与估算、软件系统需求分析、数据结构设计、系统总体结构设计、算法过程设计、编码、测试以及维护等。 工具要素      为软件工程方法提供自动的或半自动的软件支撑环境,建立起称为计算机辅助软件工程的软件开发支撑系统。将各种软件工具、集成起来,形成软件工程环境。 过程要素       是软件开发的工作任务及工作步骤的框架。将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的过程,定义了方法使

20、用的顺序、要求交付的文档资料、保证质量和协调变化所需的管理,以及软件开开发各个阶段完成的里程碑。四、设被测试的程序段为: begin S1; if (x=0) and ( y>2 ) then S2; else If ( x < 1 ) or ( y=1 ) then S3; S4;end可供选择的测试数据组为: Xy0312-1231找出实现 (1)条件覆盖 (2)路径覆盖要至少采用的数据组。答:1、条件覆盖:每个语句至少执行一次,并且使判定表达式中的每个条件都取到各种可能的结果。       第一个判定表达式

21、可能的结果:x=0, x<>0,y>2,y<=2        第二个判定表达式可能的结果:x<1,x>=1,y=1,y<>1;          测试数据组:I  x=0, y>2            

22、        II  x<>0,y<=2,x>=1,y<>1                   III  x<>0,y<=2,x<1,y<>1 五、图4.9是两个程序流程图,试分别用NS图和PAD表示,并计算它们的McCabe复杂性度量。六、如图5.8(a)所示的程序有4条不同的路径。分别表示为L1(ace)、L2(abd)、L3(abe)和L4(acd),或简写成a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论