您好,欢迎访问三七文档
《软件工程学》作业一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据数据及数据结构?对数据的处理逻辑关系等)导出目标系统的逻辑模型修正系统流程图修正系统开发计划开发原型系统2、模块设计准则答:1、改进软件结构提高模块独立性(低耦合高内聚)2、模块规模要适中3、深度、宽度、扇入及扇出要适当4、设计单入口单出口的模块5、模块功能应该可以预测6、降低接口的复杂性7、模块的作用域应该在控制域之内3、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低4、总体设计的任务二、选择题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:①排错②可靠性分析③结果分析④数据分类7、由Rumbaugh等人提出的一种面向对象方法叫做对象模型化技术(OMT),即三视点技术,它要求把分析时收集的信息建立在下述3个模型中:第一个模型是(A)----它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们这间的联系。第二个模型是(B)----它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。(B)包括两种图,即(C)和(D)。(C)描述每一类对象的行为,(D)描述发生于系统执行过程中的某一特定场景。第三个模型是(E)----它着重于描述系统内部的数据的传送与处理,它由多个数据流组成。供你选择的答案如下:A,B,E:①数据模型②功能模型③行为模型④信息模型⑤原型⑥动态模型⑦对象模型⑧逻辑模型⑨控制模型⑩仿真模型C,D:①对象图②概念模型图③状态迁移图④数据流程图⑤时序图⑥事件追踪图⑦控制流程图⑧逻辑模拟图⑨仿真图⑩行为图8、软件维护是软件生存期的最后一个阶段。软件工程学针对维护工作的主要目标是提高(A),降低(B)。软件的(C)、(D)、(E)是决定软件可维护性的基本因素。软件生存期(F)的工作与软件可维护性有密切的关系。供选择的答案:A、B:①软件的生产率②文档③软件的可靠性④软件的可维护性⑤维护的代价⑥维护的效率C、D、E:①可测试性②互操作性③可理解性④可修改性⑤可复用性⑥可管理性F:①编码阶段②设计阶段③测试阶段④每个阶段9、从下列叙述中选出5条与提高软件的可移植性有关的叙述。①把程序中与计算机硬件特性有关的部分集成在一起。②选择时间效率和空间效率高的算法。③使用结构化的程序设计方法。④尽量用高级语言编写程序中对效率要求不高的部分。⑤尽可能减少注释。⑥采用表格控制方式。⑦文档资料详尽、正确。⑧在有虚拟存储器的计算机系统上开发软件。⑨减少程序中对文件的读写次数。⑩充分利用宿主计算机的硬件特性。10、下面有关软件维护的叙述有些是不正确的,请将它们列举出来。供选择的答案:①要维护一个软件,必须先理解这个软件。②阅读别人写的程序并不困难。③如果文档不齐全也可以维护一个软件。④谁编写软件就应由谁来维护这个软件。⑤设计软件时就就考虑到将来的可修改性。⑥维护软件是一件很吸引人的创造性工作。⑦维护软件就是改正软件中的错误。⑧维护好一个软件是一件很难的事件。三、论述题1.论述瀑布模型软件开发方法的基本过程。2.面向对象软件开发方法与传统的面向数据流的结构化软件开发方法有什么不同?使用面向对象开发方法的优点是什么?3.为什么软件需要维护?维护有哪几种类型?简述它们的维护过程。4.改错性维护与“排错”是否是一回事?为什么?5.软件复杂性有哪几类?软件复杂性度量模型应遵循哪些则?6.简述结构化方法中软件工程的分析模型和设计模型,描述从分析模型到设计模型的信息流。7.简述面向对象OMT方法的分析模型,描述面向对象分析的大体过程。8.软件配置管理的任务是什么?描述作为基线的软件配置项(SCI)的修改过程模型。9.简述软件工程的三个要素:方法、工具和过程。四、设被测试的程序段为:beginS1;if(x=0)and(y2)thenS2;elseIf(x1)or(y=1)thenS3;S4;end可供选择的测试数据组为:XyⅠ03Ⅱ12Ⅲ-12Ⅳ31找出实现(1)条件覆盖(2)路径覆盖要至少采用的数据组。五、考务处理系统有如下功能:①对考生送来的报名表进行检查。②对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生名单送给阅卷站。③对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。④填写考生通知单(内容包含考试成绩和合格/不合格标志),送给考生。⑤按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计和试题难度分析,产生统计分析表。问题:按上述功能需求设计系统的数据流程图。六、图4.9是两个程序流程图,试分别用N—S图和PAD表示,并计算它们的McCabe复杂性度量。七、给出下面结构化程序流程图,请画出对应的N-S图。八、如图5.8(a)所示的程序有4条不同的路径。分别表示为L1(a→c→e)、L2(a→b→d)、L3(a→b→e)和L4(a→c→d),或简写成ace、abd、abe、及acd。由于覆盖测试的目标不同,逻辑覆盖方法可以分为语句覆盖、判定覆盖、条件覆盖、判定—条件覆盖、条件组合覆盖和路径覆盖。从备选的答案中选择适当的测试用例与之匹配:(A)属于语句覆盖;(B)、(C)属于判定覆盖;(D)、(E)属于条件覆盖;(F)、(G)属于判定—条件覆盖;(H)属于条件组合覆盖;(I)属于路径覆盖。供选择的答案:A~I:①【(2,0,4),(2,0,3)】覆盖ace;【(1,1,1),(1,1,1)】覆盖abd;②【(1,0,3),(1,0,4)】覆盖abe;【(2,1,1),(2,1,2)】覆盖abe;③【(2,0,4),(2,0,3)】覆盖ace;④【(2,1,1),(2,1,2)】覆盖abe;【(3,0,3),(3,1,1)】覆盖acd;⑤【(2,0,4),(2,0,3)】覆盖ace;【(1,0,1),(1,0,1)】覆盖abd;【(2,1,1),(2,1,2)】覆盖abe;⑥【(2,0,4),(2,0,3)】覆盖ace;【(1,1,1),(1,1,1)】覆盖abd;【(3,0,3),(3,0,1)】覆盖acd;⑦【(2,0,4),(2,0,3)】覆盖ace【(1,1,1),(1,1,1)】覆盖abd;【(1,0,3),(1,0,4)】覆盖abe;【(2,1,1
本文标题:《软件工程学》作业
链接地址:https://www.777doc.com/doc-2804379 .html