软件工程学第一次作业答案
一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。
特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。
因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。
模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。
模块太小,模块个数增多,调用的系统开销就会增大。
所以要有一个权衡2、供选择的答案中选出正确的答案填入下列叙述中的()内。
模块内聚性用于衡量模块内部各成分之间彼此结合的紧密程度。
(1)一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是(A)的。
(2)将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能,该模块的内聚性是(B)的。
(3)模块中所有成分引用共同的数据,该模块的内聚性是(C)。
(4)模块内的某成分的输出是另一些成分的输入,该模块的内聚性是(D)的。
(5)模块中所有成分结合起来完成一项任务,该模块的内聚性是(E)的。
它具有简明的外部界面,由它构成的软件易于理解、测试和维护。
供选择的答案:A~E:①功能内聚②信息内聚③通信内聚④过程内聚⑤偶然内聚⑥时间内聚⑦逻辑内聚答:A.⑤偶然内聚; B.⑦逻辑内聚;C.③通信内聚; D.④过程内聚;E.①功能内聚;3、从下列叙述中选出5条符合程序设计风格指导原则的叙述。
①嵌套的重数应加以限制。
②尽量多使用临时变量。
③不滥用语言特色。
④不用可以省略的括号。
⑤使用有意义的变量名。
⑥应尽可能把程序编得短些。
⑦把常见的局部优化工作留给编译程序去做。
⑧注解越少越好。
⑨程序的格式应有助于读者理解程序。
⑩应尽可能多用GOTO语句。
答:①、③、⑤、⑦、⑨是正确的。
①条件语句和循环语句嵌套得过多会增加程序的复杂性,从而增加程序的出错率。
③虽然国际上以至国内已经发表了编程语言的标准,但各个计算机厂商在推出自己的计算机系统的同时,也推出了针对自己机器特色的程序设计语言的非标准版本,如果利用这些语言的非标准特性编写程序,就会给将来程序的移植带来困难。
为了提高程序的可移植性,应当只使用语言的标准版本,不要滥用语言的非标准特色。
⑤给在程序中使用的变量赋予与实际含义相符的名字,可以提高程序的可读性,从而提高程序的可维护性。
⑦程序优化的工作最好交给编译程序来做,程序员应把主要注意力放在提高程序的可读性、清晰性、简洁性、正确性、一致性等方面,从而保证软件的可靠性和可维护性。
⑨程序的可读性是至关重要的,所以程序的格式应有助于读者理解程序4、由Rumbaugh等人提出的一种面向对象方法叫做对象模型化技术(OMT),即三视点技术,它要求把分析时收集的信息建立在下述3个模型中:第一个模型是(A)---- 它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们这间的联系。
第二个模型是(B)---- 它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。
(B)包括两种图,即(C)和(D)。
(C)描述每一类对象的行为,(D)描述发生于系统执行过程中的某一特定场景。
第三个模型是(E)---- 它着重于描述系统内部的数据的传送与处理,它由多个数据流组成。
供你选择的答案如下:A,B,E:①数据模型②功能模型③行为模型④信息模型⑤原型⑥动态模型⑦对象模型⑧逻辑模型⑨控制模型⑩仿真模型C,D:①对象图②概念模型图③状态迁移图④数据流程图⑤时序图⑥事件追踪图⑦控制流程图⑧逻辑模拟图⑨仿真图⑩行为图答:A.⑦,B.⑥,C.③,D.⑥,E.②。
在OMT中,把分析时收集的信息建立在3个模型中。
第一个模型是对象模型,它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们之间的联系。
第二个模型是动态模型,它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。
动态模型包括两种图,即状态迁移图和事件追踪图。
状态迁移图描述每一类对象的行为,事件追踪图描述发生于系统执行过程中的某一特定场景。
第三个模型是功能模型,它着重于描述系统内部数据的传送与处理,它由多个数据流图组成。
5、从下列叙述中选出5条与提高软件的可移植性有关的叙述。
①把程序中与计算机硬件特性有关的部分集成在一起。
②选择时间效率和空间效率高的算法。
③使用结构化的程序设计方法。
④尽量用高级语言编写程序中对效率要求不高的部分。
⑤尽可能减少注释。
⑥采用表格控制方式。
⑦文档资料详尽、正确。
⑧在有虚拟存储器的计算机系统上开发软件。
⑨减少程序中对文件的读写次数。
⑩充分利用宿主计算机的硬件特性。
答:正确的叙述有①、③、④、⑥、⑦。
为了提高软件的可移植性,应当尽可能用高级语言编写源程序代码。
对于与硬件或操作系统有关的部分,或对效率要求很高的部分,应当为它们建立专门的模块,将用汇编语言写的程序封装在这些模块中,与程序中其他部分以事先约定的标准方式接口。
这样,一旦硬件环境或操作系统环境发生变化,只需修改这个别模块即可。
采用表格控制方式,将所有的外部设备接口或与其他系统的接口,包括信息传补递、驱动程序入口等都用表格控制,即使将来硬件、相关软件发生的变化,只需修改表格中的登记项,原来的程序一律可以不改。
为了将来修改方便,不致于引入新的错误,相关文档一定要齐全、正确,程序必须有必要的注释,并使用如结构化程序设计方法这样的良好程序设计方法来编写程序。
至于算法选择,与效率有关,与可移植性无关。
其他叙述,如⑧、⑨、⑩,都不利于可移植性。
三、论述题1.论述瀑布模型软件开发方法的基本过程。
答:瀑布模型软件开发方法将软件开发分成四个时期八个阶段:分析时期:1)问题定义---问题性质、工程目标及规模2)可行性研究---技术上、经济上、社会上是否有可行解?3)需求分析--- 确定目标系统必须具备的功能?设计时期:4)总体设计--- 1).几种求解方案;2).设计软件的结构5)祥细设计--- 设计出程序的祥细规格说明编码与测试时期:6)编码与单元测试--- 程序编码实现与模块测试7)综合测试--- 集成测试和验收测试运行与维护时期:8)维护---改正性维护、适应性维护、完善性维护、预防性维护特点:下导式开发、追溯式确认、适合能事先确切定义需求的软件开发2.为什么软件需要维护?维护有哪几种类型?简述它们的维护过程。
答:在软件开发成这交付用户使用后,为了保证软件在一个相当长的是时期有够正常运行,不需要对软件进行维护。
软件维护的为类型有4种:改正性维护、适应性维护、完善性维护和预防性维护。
其中,改正性维护是要改正正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷;适应性维护是要在软件使用过程中数据环境发生变化或处理环境发生变化时修改软件以适应这种变化;完善性维护是用户和数据处理人员使用软件过程中提出改进现有功能、增加新的功能,以及改善总体性能的要求后,修改软件以把这些要求纳入到软件之中。
由这些原因引起折维护活动可以归为以下几类:预防性维护是为了提高软件的可维护性、可靠性等,事先采用先进的软件工程方法对面要维护的软件或软件中的某一部分(重新)进行设计、编制和测试,为以后进一步改进软件打下良好的基础。
软件维护的过程如图7.19所示。
第一步是先确认维护要求。
这需要维护人员与用户反复协商,弄清错误概况及对业务的影响大小,以及用户希望做什么样的修改,并把这些情况存入故障数据库。
然后,由维护组织管理员确认维护类型。
对于改正维护申请,从评价错误的严重性开始工作。
如果存在严重的错误,则必须安排人员,在系统监督员的指导下,进行问题分析,寻找错误发生的原因,进行“救火”性的紧急维护;对于不严重的错误,可根据任务、机时情况,视轻重缓急,进行排队,统一安排时间。
对于适应性维护和完善性维护申请,需要先确定每项申请的优先次序。
若某项早请的优先级非常高,就可立即开始维工作,否则,维护申请和其他的开发工作一样,进行排队,统一安排时间。
并不能所有的完善性维护申请都必须承担,因为进行完善性维护等于是做二次开发,工作量大,所以需要根据商业需要、可利用资源的情况、目前和将来软件的发展向以及其他考虑,决定是否承担。
尽管维护申请的类型不同,但都要进行同样的技术工作。
这此工作有修改软件的需求说明,修改软件设计、设计评审、对源程做必要的修改、单元测试、集成测试(回归测试)、确认测试、软件配置评审等。
在每次软件维护任务完成后,最好进行一次情况评审,对以下问题做一总结:(1)在目前情况下,设计、编码、测试中的哪一方面可以改进?(2)哪些维护资源应该有但没有?(3)工作中主要的或次要的障碍是什么?(4)从维护申请的类型来看是否应当有预防性维护?情况评审对将来的维护工作如何进行会产生重要的影响,并可为软件机构的效管理提供重要的反馈信息。
3.软件复杂性有哪几类?软件复杂性度量模型应遵循哪些则?答:K.Magel从6个方面描述软件的复杂性:(1)理解程序的难度。
(2)改错及维护程序的难度。
(3)向他人解释程序的难度。
(4)按指定方法修改程序的难度。
(5)根据设计文档编写程序的工作量。
软件工程学第一次作业答案
一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。
特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。
因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。
模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。
17秋福师《软件工程》在线作业一答案
17秋福师《软件工程》在线作业一答案一、单选题(共30 道试题,共60 分)1. 用户界面设计过程是一个()的过程A. 迭代B. 连续C. 离散D. 一致满分:2 分2. 任务分解技术中最常用的是按()划分任务A. 开发阶段B. 开发目标C. 设计过程D. 以上都不正确满分:2 分3. 根据用户在软件使用过程中提出的建设性意见所进行的维护活动是( ).A. 纠错性维护B. 适应性维护C. 改善性维护D. 预防性维护满分:2 分4. 下面不是面向对象设计准则的是( )A. 模块化B. 抽象C. 信息隐藏D. 不可重用满分:2 分5. 下面不是软件工程三要素的是()A. 方法B. 类C. 过程D. 工具满分:2 分6. 以下那个不属于验证软件需求的正确性的()A. 一致性B. 完整性C. 现象性D. 有效性满分:2 分7. 模块内聚度越高,模块内各成分彼此结合的程度越()。
A. 松散B. 紧密C. 无法判断D. 相等满分:2 分8. 为适应软件运行环境的变化而修改软件的活动为( ).A. 纠错性维护B. 适应性维护C. 改善性维护D. 预防性维护满分:2 分9. 完善性维护占整个维护活动的()A. 50%-66%B. 17%-21%C. 18%-25%D. 4%满分:2 分10. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,包括方法、工具和过程三个要素。
B. 软件测试C. 软件生存周期D. 软件工程满分:2 分11. 数据对象彼此间()A. 有关联的B. 没有关联C. 不好界定关联D. 以上都不正确满分:2 分12. ()由软件定义、软件开发和运行维护3个时期组成A. 软件生命周期B. 软件测试流程C. 软件维护D. 软件部署满分:2 分13. 需求分析中开发人员要从用户那里了解的有()A. 软件做什么B. 用户使用界面C. 输入的信息D. 软件的规模满分:2 分14. 下面哪些不是数据字典的元素()A. 数据流B. 数据存储C. 处理D. 数据对象满分:2 分15. 下面是软件重用的层次的是()B. 数量重用C. 结构重用D. 数据重用满分:2 分16. 下面那个不属于常见的3类人机界面设计指南()A. 一般交互指南B. 信息输出指南C. 数据输入指南D. 信息显示指南满分:2 分17. 在E-R图中,()表示关系A. 方框B. 菱形C. 椭圆D. 圆角矩形满分:2 分18. 软件维护是软件生命周期的固有阶段,一般认为各种不同的软件维护以()维护所占的维护量最小。
2022年中央电大《软件工程》平时作业1、2、3、4次及答案
软件工程第1次作业一、填空题(每空2分,共20分)二、单项选取题(将一种对的答案代码填入括号中,每小题3分,共15分) 1.( )是顾客和设计互换最频繁办法。
A. 原型化办法B.瀑布模型办法C. 螺旋模型办法D. 构件组装模型办法2.下列哪个阶段不是软件生存期三个阶段中内容( )。
A. 筹划阶段B.开发阶段C. 编码阶段D. 维护阶段3.下列( )操作产生副作用属于数据副作用。
A. 修改子程序B.局部变量再定义C. 删除标记符D.修改对编辑条件测试4.软件测试目( )。
A. 避免软件开发中浮现错误B.发现软件开发中浮现错误C.尽量发现并排除软件中潜藏错误,提高软件可靠性D.修改软件中浮现错误5.完毕详细设计工具不涉及( )。
A.PAD图B.数据流图C.HlP()图D.程序流程图三、多项选取题(将一种以上对的答案代码填入括号中,每小题3 分,共15分) 1.应从( )等方面研究可行性。
A. 经济可行性B.技术可行性C. 运营可行性D.法律可行性2.对于下列数据流图局部,关于描述中对的是( )。
A. 该图为第一层数据流图3.需求分析阶段结束后,交出文档中应当涉及( )。
A. 数据流图B.数据字典C. 简要算法描述D.项目经费预算4.软件管理工作涉及到直接对象涉及( )。
A. 软件开发人员B.硬件设备C. 项目经费D.软件项目5.在软件设计中,( )耦合应尽量避免。
A. 控制B.数据C.内容 D. 标记四、判断题(对的在括号内打上“√”,错误打上“X”。
每小题2分,共10分)1。
软件危机是指在软件开发和维护过程中遇到一系列严重问题。
( )2,构造化分析办法就是用抽象模型概念,按照软件内部数据传递、变换关系,自顶向下逐级分解,直到找到满足功能规定所有可实现软件为止。
( )3.UML只能应用于软件系统模型建立。
( )4.程序设计语言中应绝对禁止使用GOTO语句。
( ) 5.模块越小,模块长处越大。
( )五、问答题(每小题10分,共20分)1.什么是软件?什么是软件工程?2.什么是编码风格?为什么要强调编码风格?六、分析题(共20分)依照下列N—S图,写出其相应伪码。
中国石油大学(北京)软件工程第一次在线作业满分答案
中国石油大学(北京)软件工程第一次在线作业满分答案
第一次在线作业
单选题 (共25道题)
展开
收起
1.(
2.5分)结构化分析建立功能模型的工具是()
A、DFD
B、判定树/判定表
C、SC
D、结构化语言
我的答案:A 此题得分:2.5分
2.(2.5分)检查软件产品是否符合需求定义的过程称为()
A、确认测试
B、集成测试
C、系统测试
D、单元测试
我的答案:A 此题得分:2.5分
3.(2.5分)软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试()
A、结构合理性
B、软件外部功能
C、程序正确性
D、程序内部逻辑
我的答案:B 此题得分:2.5分
4.(2.5分)软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为()
A、瀑布模型
B、对象模型
C、螺旋模型
D、层次模型
我的答案:A 此题得分:2.5分
5.(2.5分)建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是()
A、用于验证软件需求的原型
B、垂直原型
C、用于验证设计方案的原型
D、用于演化出目标系统的原型
我的答案:B 此题得分:2.5分
6.(2.5分)面向对象的开发方法中,()将是面向对象技术领域内占主导地位的标准建模语言。
A、Booch方法。
《软件工程》作业及参考答案1,4
《软件工程》作业及参考答案——第一、二章中央电大理工部史红星(2004年09月15日)浏览人次4582一、填空题1. 软件工程学的内容可包括(理论)、结构、(方法)、(工具)、环境、管理、规范等。
2. 软件生存周期一般可分为问题定义、(可行性研究)、(需求分析)、设计、(编码)、测试、运行与维护阶段。
3. 可行性研究的目的是(用最小的代价在尽可能短的时间内确定问题是否能够解决)。
4. 系统流程图是(描绘物理系统)的传统工具。
5. 在可行性研究中,(技术可行性)是系统开发过程中难度最大,最重要的一个环节。
二、判断题1. 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
(√ )2. 螺旋模型是利用笛卡尔坐标的四个象限上分别代表四个方面的活动来表示。
(√ )3. 原型模型适用于嵌入式软件。
(╳ )4. 面向对象技术是构件组装模型的基础。
(√ )5. 在可行性研究中最难决断和最关键的问题是经济可行性。
(╳ )6. 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
(╳ )7. 自底向上成本估计不是从整体开始,而是从任务单元开始。
(√ )三、单项选择题1. 下列哪个阶段不是软件生存期三个阶段中的内容( C )。
A.计划阶段B.开发阶段C.编码阶段D.维护阶段2. 下列关于瀑布模型的描述正确的是( C )。
A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。
B. 瀑布模型具有良好的灵活性。
C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
D. 利用瀑布模型,如果发现问题修改的代价很低。
四、简答题1. 软件的定义与特点。
参考答案:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。
它包括三个方面的内容:⑴程序:在运行时,能提供所希望的功能和性能的指令集。
⑵数据结构:使程序能够正确运行的数据结构。
软件工程习题与答案(第1次)
软件工程习题与答案(第1次)本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March软件工程学习资料(1)一、填空1、软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。
2、N-S图中的顺序结构:在PAD图中表示为:递归使用。
3、模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此之间相互依赖的紧密程度。
内聚衡量一个模块内部各个元素彼此结合的紧密程度。
4、软件测试方法按测试过程是否在实际应用环境中分为静态分析和动态测试。
二、单项选择题1、模块在同一段时间内完成各种初始化工作,这属于。
A.偶然内聚B.逻辑内聚C.时间内聚D.过程内聚2、在编程安全方法方面,一般来说无法做到。
A. 避开错误B.完美无缺,绝无错误C. 冗余D.设计防错程序3、在衡量软件质量时,最重要的标准是。
A. 成本低B. 可维护性好C. 符合要求D. 界面友好4、下列工具中,不属于详细设计工具的是。
A. 测试工具B. 图形工具C. 表格工具D. 语言工具5、下列哪个做法会导致不利的语句结构A.避免使用ELSE GOTO结构B.对递归定义的数据结构尽量不再使用递归过程C.模块功能尽可能单一化,模块间的耦合能够清晰可见D.利用信息隐蔽,确保每一个模块的独立性三、判断题1、Jackson系统开发方法是一种典型的面向对象的分析设计方法。
(×)2、HIPO图是由一组IPO图加一张HC图组成,是美国IBM公司在软件设计中使用的主要表达工具。
(√)34√) 5、下图表示的是WHILE型循环。
(×6的顺序,而数据流图只反映数据的流向,不反映处理逻辑的先后。
(√)四、问答题1、什么是软件答:软件是一种产品,包含下面三方面的含义。
(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文档。
软件工程学第一次作业—答案中山大学
软件工程学第一次作业一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。
特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。
因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。
模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。
软件工程第一次作业答案
1.How do software characteristics differ from hardware characteristics?Answer (Section 1.2):Software is developed, not manufactured. Software does not wear out, but it can deteriorate when changes are made. Most software is custom built, not assembled out of components.2. What is the difference between software that is determinate and software that is indeterminate?Answer (Section 1.3):Software is determinate is the order and timing of its inputs, processing, and outputs is predictable and it is indeterminate if the order and timing of its input, processing, and outputs is not predictable in advance.3.Explain what is wrong with the notion that computer software does not need to evolveover time.Answer (Section1.4):Computer software must be revised as errors are discovered and corrected. Software must be updated to accommodate changes in the computing environment. Many times a customer will request changes to add new functions to an existing product or to accommodate changes in the business environment. Sometimes an older system will need to be reengineered to provide benefits to the user in a modern context. The bottom line is that software that does not evolve will eventually become unusable.4.Many modern applications change frequently before they are presented to the end userand then after the first versions have been used. Think about few ways to build software to stop deterioration due to change.Answer:•Make sure that software is designed so that changes in one part of a program do not create side-effects in another part of the program.•Make sure that software is designed so that it does not depend on external devices or systems that are likely to change with time.•Make sure test cases and results are archived and available so that the software can be retested when changes are made.•Make sure you spend time understanding what the customer wants.5,For the waterfall model, describe situations where this model can and cannot be used and why.Answer:•The waterfall model is appropriate for projects with the following characteristics: (1) the problem is well understood (requirements are well-defined); (2) the delivery date is realistic; (3) it's unlikely that major changes in requirements will be requested as theproject proceeds.6. Incremental process models tend to be among the most widely used in the industry. Describe the conditions under which such models should be used and what an “increment” means in terms of project work and deliveryAnswer:Incremental models are useful when staffing is unavailable for a complete implementation by the business deadline. In addition, increments can be planned to manage technical risks. The “increment” is often a core product, i.e., basic requirements are addressed but many supplementary features remain undelivered. The process is repeated following the delivery of each increment, until the complete product is produced.,7.Discuss the pros and cons of prototyping model and how it differs from the spiral modelAnswer:The pros and cons of prototyping model are: Pro: evaluated by user and used to refine requirements; Con: the first system built is barely usable; unrealistic expectations from the customer; the performance issue。
软件工程课本习题答案
形式化方法的主要特点是:
(1)软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;
(2)设计、实现和单元测试等开辟过程由一个变换开辟过程代替。通过一系列变换将形式的规格说明细化成为程序。
2.5安装RationalRose2000/2002/2003,并练习基本操作。
缺点:RUP只是一个开辟过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开辟结构,这在一定程度上降低了在开辟组织内大范围实现重用的可能性。
合用范围:合用于基于构件的软件开辟。
2软件工程方法与工具
2.1软件工程的三种基本要素是什么,各自的作用是什么?
术问题,更重要的是必须有科学严格的管理。
(5)缺少有效的软件评测手段,提交给用户的软件的质量不能彻底保证。
1.5什么是软件工程?
第1章 作业参考答案
软件工程是指导计算机软件开辟和维护的工程学科。采用工程的概念、原理、技术和方法来开辟和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开辟出高质量的软件并有效地维护它,这就是软件工程。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:
(1)缺乏软件开辟的经验和有关软件开辟数据的积累,使得开辟工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或者存在错误。
(3)软件开辟过程不规范。如,没有真正了解用户的需求就开始编程序。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要不少人分工协作,不仅涉及技
必须做什么”这个问题。
(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制
软件工程第一二三章习题参考答案
第一章软件工程概述软件是计算机程序及其有关旳数据和文档旳结合。
软件危机是指在计算机软件开发和维护时所碰到旳一系列问题。
软件危机重要包括两方面旳问题: 一是怎样开发软件以满足对软件日益增长旳需求;二是怎样维护数量不停增长旳已经有软件。
软件工程是软件开发、运行、维护和引退旳系统措施。
软件工程是指导计算机软件开发和维护旳工程学科。
软件工程采用工程旳概念、原理、技术和措施来开发与维护软件。
软件工程旳目旳是实现软件旳优质高产。
软件工程学旳重要内容是软件开发技术和软件工程管理。
软件开发措施学是编制软件旳系统措施, 它确定软件开发旳各个阶段, 规定每一阶段旳活动、产品、验收旳环节和完毕准则。
常用旳软件开发措施有构造化措施、面向数据构造措施和面向对象措施等。
习题参照答案:1) 1. 什么是软件危机?为何会出现软件危机?2)答: 软件危机是指在计算机旳开发和维护过程中所碰到旳一系列严重问题。
这些问题决不仅仅是不能正常运行旳软件才具有旳, 实际上, 几乎所有软件都不一样程度地存在这些问题。
3)出现软件危机旳原因:首先与软件自身旳特点有关, 另首先也和软件开发与维护旳措施不对旳有关。
软件不一样于硬件, 它是计算机系统中逻辑件而不是物理部件。
管理和控制软件开发过程相称困难。
软件是规模庞大, 并且程序复杂性将伴随程序规模旳增长而呈指数上升。
目前相称多旳软件专业人员对软件开发和维护尚有不少糊涂观念, 在实践过程中或多或少地采用了错误旳措施和技术, 这是使软件问题发展成软件危机旳重要原因。
总结如下:4)获得对旳旳顾客需求和对旳地描述需求很困难5)开发人员对需求旳对旳理解也有困难6)常常在没有对旳理解之前就仓促开始编程7)软件项目缺乏有效旳组织、管理和内部交流8)缺乏软件开发措施、模型和工具旳支持9)软件维护旳困难性2. 假设你是一家软件企业旳总工程师, 当你把图1.1给手下旳软件工程师们观看, 告诉他们及早发现并改正错误旳重要性时, 有人不一样意你旳观点, 认为规定在错误进入软件之前就清除它们是不现实旳, 并举例说: “假如一种故障是编码错误导致旳, 那么, 一种人怎么能在设计阶段清除它呢?”你怎么反驳他?答: 在软件开发旳不一样阶段进行修改付出旳代价是很不相似旳, 在初期引入变动, 波及旳面较少, 因而代价也比较低;在开发旳中期, 软件配置旳许多成分已经完毕, 引入一种变动要对所有已完毕旳配置成分都做对应旳修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出旳代价剧增;在软件已经完毕时再引入变动, 当然付出旳代价更高。
