当前位置:文档之家› 软件工程阶段性作业1

软件工程阶段性作业1

软件工程阶段性作业1
软件工程阶段性作业1

中国地质大学(武汉)远程与继续教育学院

软件工程课程作业1(共 4 次作业)

学习层次:专升本涉及章节:第1章

一、选择填空题

1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。

软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、 ( B )及( C )的完整集合。其中, ( A )是按事先设计的功能和性能要求执行的指令序列。( B )是使程序能够正确操纵信息的数据结构。( C )是与程序开发、维护和使用有关的图文材料。

供选择的答案:

A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表

2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。

开发软件时对提高软件开发人员工作效率至关重要的是( A )。软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。

供选择的答案:

A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力

B.①需求分析②需求调查③可行性分析④问题定义

C、 D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计

3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。

有人将软件的发展过程划分为 4 个阶段:

第一阶段(1950~1950 年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。

第二阶段(1950 年代末~1960 年代末)称为“基本软件期”。出现了( A ),并逐渐普及。随着( B )的发展,编译技术也有较大的发展。

第三阶段(1960 年代末~1970 年代中期)称为“程序设计方法时代”。这一时期,与硬件费用下降相反,软件开发费急剧上升。人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。

第四阶段(1970 年代中期~现在)称为“软件工程时期”。软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。

供选择的答案:

A~D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计

E~G:①使用和维护②兼容性的确认③完整性的确认④设计

⑤需求定义⑥图象处理

4、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。

软件工程的最终目的是以较少的投资获得可维护的、可靠的、高效率的和可理解的软件产品。软件工程技术应遵循( A )、( B )、( C )、( D )、一致性、确定性、完备性、可验证性、抽象和信息隐蔽。

原型法适用于开发较复杂的系统,原型可分为三种:( E )、( F )和( G )。供选择的答案:

A~D:①有效性②合理性③局部化④协同性⑤实用性⑥模块化⑦抽象⑧信息隐蔽

E~G:①复用型②实验型③废弃型④演化型⑤探索型

二、问答题

1、什么是软件?它的特性是什么?

2、(选做)试比较软件发展的三个时期的特点,从软件所指、软件工作范围、软件开发组织、决定质量的因素、开发技术和手段等几个方面说明它们的差别。

3、软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。

4、软件工程过程有哪几个基本过程活动?试说明之。

5、试说明“软件生存期”的概念。

6、试论述瀑布模型软件开发方法的基本过程,比较它的优点和缺点。

7、(选做)试说明演化模型软件开发方法的基本过程,比较它的优点和缺点。

8、(选做)试说明螺旋模型软件开发方法的基本过程,比较它的优点和缺点。

9、软件工程的基本目标有哪些?试说明它们之间的关系。

10、软件工程的基本原则有哪些?试说明之。

11、(选做)软件工程的基本原理有哪些?试说明之。

12、有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。对否?请解释你的回答。

参考答案

一、选择填空题

1、解答:A. , ② B. , ⑦ C. ⑤

2、解答:A. , ① B. , ① C. ③, D. ⑥

3、解答:A. , ① B. , C. , D. , E. , F. , G. ④⑤⑧⑤④①。

注意,C 与D的答案顺序可互换。

4、解答:A. , B. , C. , D. , E. , F. , G. ⑦⑧⑥③②⑤④。

注意,A、B、C、D的答案顺序可互换。E、F、G的答案顺序可互换。

二、问答题

1、答:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。

软件的特点是:

(1) 软件是一种逻辑实体,而不是具体的物理实体。它具有抽象性。

(2) 软件的生产与硬件不同,它没有明显的制造过程。

(3) 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。然而它存在退化问题。

(4) 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。

(5) 软件的开发至今尚未完全摆脱手工艺的开发方式。

(6) 软件本身是复杂的。软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。

(7) 软件成本相当昂贵。

2、解答:

3、解答:软件工程包括三个要素:方法、工具和过程。

软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试

以及维护等。

软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。

软件工程的过程则将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。

4、解答:软件工程过程的基本过程活动有4 步:

·P (Plan) : 软件规格说明。规定软件的功能及其运行的限制;

·D (Do) : 软件开发。产生满足规格说明的软件;

·C (Check) : 软件确认。确认软件能够完成客户提出的要求;

·A (Action) : 软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。

5、解答:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。这就是软件的生存期。它分为 6 个阶段:

(1) 软件项目计划:在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。根据有关成本与进度的限制分析项目的可行性。(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。可以用以下两种方式中的一种对需求进行分析和定义。一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。

(3) 软件设计:软件的设计过程分两步走。第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。第二步做详细设计,考虑设计每一个模块部件的过程描述。经过评审后,把每一个加细的过程性描述加到设计规格说明中去。

(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE 工具生成源程序。应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。

(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。确认测试检查所有的需求是否都得到满足。在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。

(6) 软件维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。与软件维护相关联的那些任务依赖于所要实施的维护的类型。

6、解答:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。

瀑布模型为软件开发和软件维护提供了一种有效的管理图式。根据这一图式制定开发计划、进行成本预算、组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品及时交付,并达到预期的质量要求。

瀑布模型的缺点是缺乏灵活性,特别无法解决软件需求本身不明确或不准确的问题。这些问题的存在对软件开发会带来严重影响,最终可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才有所察觉。面对这些情况,无疑需要进行返工或是不得不在维护中纠正需求的偏差。但无论上述哪一种情况都必须付出高额的代价,并将为软件开发带来不必要的损失。

7、解答:由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。因此,可以先做试验开发,其目标只是在于探索可行性,弄清软件需求;然后在此基础上获得较为满意的软件产品。通常把第一次得到的试验性产品称为“原型”。

演化模型从需求分析开始。软件开发人员与用户一起定义待开发软件系统的总目标,定义需

求,确定软件的工作范围。然后快速设计软件中对使用者可见部分的表示,进而建造原型,再让用户或客户评估原型,根据评估结果,修改和细化待开发软件系统的需求,使之满足用户的需求。这个过程是一个迭代的过程。

演化模型的优点是:

·演化模型能够得到更好的软件需求,它不仅能够处理模糊的需求,而且开发人员与用户可通过原型充分进行交流;

·演化模型给用户提供了机会,以更改用户原来设想的不尽合理的最终系统;

·演化模型使得开发出来的最终系统更容易维护,对用户更友好;

·演化模型可以降低总的开发费用,缩短开发时间。

演化模型的缺点是:

·对于开发人员不熟悉的领域,演化模型可能误导开发者把系统的次要部分当作主要框架,作出不切题的原型;

·原型过快地收敛于需求集合,使得某些基本方面被忽视;

·长期在原型环境下开发,只注意得到令人满意的原型,容易“遗忘”用户环境与实

际客户环境之间的差别。

8、解答:对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析,弥补了两者的不足。

螺旋模型是一种风险驱动的模型。在软件开发中存在各种风险。项目越复杂,设计方案、资源、成本、进度等因素的不确定性越大,项目开发的风险也就越大。及时对风险进行识别、分析,采取对策,可消除或减少风险的损害。

螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相吻合。在每个螺旋周期内按四个象限,分为四个工作步。第一,制定计划:确定软件目标,选定实施方案,明确项目开发的限制条件;第二,风险分析:分析所选方案,识别风险,通过原型消除风险;第三,开发实施:实施软件开发;第四,客户评估:评价开发工作,提出修正建议,建立下一个周期的计划。

螺旋模型适合于大型软件的开发,应该说它是最为实际的方法,它吸收了软件工程“演化”的概念,使得开发人员和客户对每个演化层出现的风险有所了解,继而做出应有的反映。螺旋模型的优越性比起其它模型来说是明显的,但并不是绝对的。模型的使用需要具有相当丰富的风险评估经验和专门知识。如果项目风险较大,又未能及时发现,势必造成重大损失。此外,螺旋模型是出现较晚的新模型,远不如瀑布模型普及,要让广大软件人员和用户充分肯定它,还有待于更多的实践。

9、解答:组织实施软件工程项目,从技术上和管理上采取了多项措施以后,最终希望达到以下几个主要的目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用。

在具体项目的实际开发中,企图让以上几个目标都达到理想的程度往往是非常困难的。10、解答:在软件开发过程中必须遵循下列软件工程原则。

·抽象: 采用分层次抽象,自顶向下、逐层细化的办法进行功能分解和过程分解,可以由抽象到具体、由复杂到简单,逐步得到问题的解。

·信息隐蔽: 遵循信息封装,使用与实现分离的原则,将模块设计成“黑箱”,可以将实现的细节隐藏在模块内部,使用者只能通过模块接口访问模块中封装的数据。

·模块化: 按模块划分系统的体系结构,使得各模块间有良好的接口。这样有助于信息隐蔽和抽象,有助于表示复杂的系统。

·局部化: 按抽象数据类型思想及问题域中的概念来建立模块,确保模块之间低耦合,模块内部高内聚。这有助于控制解的复杂性。

·确定性: 软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。这有助于人们之间的沟通,保证整个开发工作协调一致。

·一致性: 强调软件开发过程的标准化、统一化。包括文档格式的一致,工作流程的一致,内、外部接口的一致,系统规格说明与系统行为的一致等。

·完备性: 软件系统不丢失任何重要成分,可以完全实现系统所要求功能。

·可验证性: 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。

11、解答:软件工程的基本原理是:

·按软件生存期分阶段制定计划并认真实施。在软件生存期中需要完成许多不同性质的工作,所以应把软件生存期划分为若干阶段,并相应制定出可行的计划,且按照计划对软件的开发和维护活动进行管理。不同层次的管理人员都必须严格按照计划各尽其职地管理软件的开发和维护工作。

·坚持进行阶段评审。软件的质量保证工作不能等到编码阶段结束之后再进行。错误发现得越晚,为改正它所需付出的代价就越大。因此,在每个阶段都要进行严格的评审,以尽早发现在软件开发过程中产生的错误。

·坚持严格的产品控制。在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。但由于外界环境的变化或软件工作范围的变化,在软件开发过程中改变需求又是难免的,不能硬性规定禁止客户改变需求,只能依靠科学的产品变更控制技术来顺应需求的变更。其中主要是实施基线配置管理。

·使用现代程序设计技术。实践表明,采用先进的技术可提高软件开发的生产率,还可提高软件的可维护性。其中包括结构化程序设计技术,Jackson 程序设计技术,面向对象程序设计技术等。

·明确责任。软件产品是看不见摸不着的逻辑产品。为了提高软件开发过程的可见性,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使得工作结果能够得到清楚的审查。

·用人少而精。合理安排软件开发小组人员的原则是参与人员应当少而精,即小组的成员应当具有较高的素质,且人数不应过多。人员素质高能大大提高软件开发的生产率,明显减少软件中的错误。软件开发小组人员少而精可以减少因交流开发进展情况和讨论遇到的问题而造成的通信开销。

·不断改进开发过程。必须不断地灵活地改进软件工程过程,积极主动地采用新的软件技术,注意不断总结经验。此外,需要注意收集和积累出错类型、问题报告等数据,用以评估软件技术的效果和软件人员的能力,确定必须着重开发的软件工具和应当优先研究的技术。12.解答:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。这个说法是对的。在1970 年代,GTE、TRW 和IBM 等三家公司对此问题做了独立研究,最后它们得到相似的结论:

从表中可以看出,在需求分析阶段检查和修复一个错误所需的代价只有编码阶段所

需代价的1/5到1/10,而在维护阶段做同样的工作所付出的代价却是编码阶段的20

倍。

软件工程作业(答案参考)

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

研究生现代软件工程期末考试试题

2013年研究生现代软件工程期末考试 2014年6月20日 某软件企业已经具有5年以上的开发经历,为了进一步拓展市场和提升市场竞争能力,在三个项目组以及SQA小组选拔了一些技术骨干作为SEPG小组成员,期望在公司内部推广CMM,争取3年之内能够通过CMM3的评级认证。 公司管理层要求一年内通过CMM2评级,第三年申请CMM3的资质认证并争取通过评审。为此,三个项目组的项目经理与SEPG和SQA小组成员共同商讨如何能够满足近期和远期目标。经了解,发现三个项目组的管理方式各不相同,开发方法也不统一:项目组A:采用传统的演化模型并使用基于数据流图的结构化方法进行系统开发; 项目组B:采用基于面向对象方法的UP模型进行系统开发; 项目组C:采用极限编程方法进行开发; 问题一:SEPG要求各项目组的项目经理给出各自项目组的基于里程碑的软件开发过程及相应的文档编制计划。 问题二:为了CMM3的目标SEPG根据各小组的软件开发过程决定采用通用的面向对象方法定义一个公司级的统一软件工程过程并给出基于KPA组织过程定义必须执行的活动(Key Practices)。 问题三:SQA小组基于SPEG定义的公司级的软件工程过程,参考ISO的质量模型开始着手制定CMM3需要的针对软件需求分析阶段的质量评估模型及其必须的尺度度量准则。 除此之外,项目组A各人员组成的工资待遇如下:1、项目经理:12000;2、工程师_X:5000;3、工程师_Y:6500;4、工程师_Z:3000;公司规定项目经理有权掌握项目40%经费进行管理,其中包括项目组的人员成本和平时加班补贴(平时加班按工资的2倍支付,国家法定假日3倍支付)。此时,公司交付给项目组A一个必须在2个月完成的项目,要求项目必须按照客户的具体需求完成分析、设计和开发任务,并能实现20%的利润,同时项目经理自己也打算给自己保留5%经费作为自己奖励。具体需求如下: 有一个医院期望开发一个《医院取药告知管理系统》。该系统要求实现病人在交费处使用自己的就医卡交费完毕后,系统会根据当前的取药人数分配取药窗口和相应的药剂师。每个窗口的药剂师按顺序使用系统,并接收系统分配的菜单。药剂师配药完成后使用系统功能显示并通知病人取药。 每个取药窗口有一个大屏幕显示取药的病人名称,每个人取药时间为2分钟并反复显示并广播病人的姓名;超过两分钟没来取药的病人信息会转到屏幕下方的滚动条滚动显示,可以显示多人姓名。取过药的病人信息随即被清除。取药大厅设置多台自动查询机,病人使用就医卡扫描后,查询机会显示病人姓名、取药窗口号以及在本病人之前未取药的人数或者是否处于超时等待取药。 作为项目经理,请根据上述功能需求回答以下问题: 问题四:给出该系统的功能列表(以用例表示)开发和后期维护的报价。 问题五:给出系统开发的进度安排,并确定关键任务路径上的人员安排使得项目进度效率最高且成本最低。 问题六:请根据自己熟悉的编程语言估算该系统的KLOC、C K(技术状态常数),并由此根据“软件工程”计算该系统开发的工作量。 问题七:给出开发周期内TOP5的风险因素。

软件工程课后题答案

第一章 1 简述软件的发展过程。 共经历了四个阶段; 第一阶段:(20世纪50年代初期到60年代初期的十余年)计算机系统开发的初期。 第二阶段:(20世纪60年代中期到70年代中期的十余年)软件产品与“软件作坊”的概念开始出现。软件开发人员不再像早期阶段那样只因个人工作需要而开发,而就是为了用户更好地使用计算机。 第三阶段:(20世纪70年代中期到80年代末期)分布式系统嵌入“智能”;硬件价格下降,软件价格急剧上升,导致了软件危机的加剧。 第四阶段:(20世纪80年代末期开始)强大的桌面系统与计算机网络迅速发展。 2 简述软件的定义与特点。 定义:软件就是计算机程序、规程以及运行计算机系统可能需要的相关文档与数据。 特点:(1)就是一种逻辑实体,具有抽象性; (2)软件的生产不存在明显的制造过程; (3)在软件的运行与使用的过程中,不会存在像硬件那样的机械磨损及老化问题; (4)由于对计算机系统的依赖性,对软件的通用性造成了一定的影响; (5)软件的开发方式还没有完全脱离手工开发方式,还不能完全采用组装的方式进行软件开发; (6)作为提高工作效率的逻辑产品,本身具有复杂性; (7)成本相当昂贵; (8)相当多的软件工作设计社会因素。 3 软件有哪些种类 1、按功能特征进行划分 (1)系统软件。(2)支撑软件。(3)应用软件 2、按规模大小进行划分 微型、小型、中型、大型、甚大型、、极大型 4 什么就是软件危机? 答:就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。 5 什么就是软件工程?有哪些本质特性?怎样用软件工程消除软件危机? 答:就是指导计算机软件开发与维护的一门工程学科。 特性略。 技术措施与管理措施消除软件危机。 6 软件工程的三要素; 方法、工具与过程。 7、结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。 使软件开发更加模式化,工程化,从而提高软件开发的效率与封装性。 8、CASE 的研究与CASE 产品的开发就是近年来软件工程领域的特点之一。请列举数种您所熟悉的CASE 工具或环境,综述它们的概念与优缺点,并分析其实现方法。 rose、“数据字典”(工具)

软件工程(习题与参考答案)

第1章概述(习题与参考答案) [判断题] 1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。(×) 2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。(×) 3. 购买大多数计算机系统所需的硬件比软件更昂贵。(×) 4. 大多数软件产品在其生命周期中不需要增强功能。(×) 5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。(√) 6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。(×) [选择题] 1. ()因素促使计算机系统越来越复杂。(D) A. 计算机内存和存储容量上的巨大增长 B. 外部输入/输出选项的更加多样性 C. 计算机体系结构方面的深刻变化 D. 以上所有选项 2. 下面的()不再是现代软件工程师关注的问题。(A) A. 为什么计算机硬件的成本这么高? B. 为什么软件需要很长时间才能完成? C. 为什么开发一个软件的成本这么高? D. 为什么不能在产品发布前去除软件错误? 3. 软件会逐渐退化而不会磨损,其原因在于()。(C) A. 软件通常暴露在恶劣的环境下 B. 软件错误通常发生在使用之后 C. 不断的变更使组件接口之间引起错误 D. 软件备件很难订购 4. 大多数软件仍然是定制开发的,其原因在于()。(C) A. 软件组件重用是十分普遍的 B. 可重用的组件太昂贵而无法使用 C. 软件在不使用其他组件的情况下很容易构造出来 D. 商业组件在很多应用领域中可以得到 5. 下面的()说法是正确的。(C) A. 软件危机在20世纪70年代末期全面爆发

B. 当前先进的软件工程方法已经解决了软件危机的问题 C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题 D. 软件危机是指在软件产品中存在一系列的质量问题 6. 软件工程的基本目标是()。(B) A. 消除软件固有的复杂性 B. 开发高质量的软件 C. 努力发挥开发人员的创造性潜能 D. 更好地维护正在使用的软件产品 7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方 法、工具和过程三个要素。(D) A. 软件产品 B. 软件过程 C. 软件测试 D. 软件工程 8. 软件工程的基本要素包括方法、工具和()。(C) A. 软件系统 B. 硬件环境 C. 过程 D. 人员 9. 软件工程师在从事软件工作时应使用下面的()准则。(E) A. 从来不为个人获利而窃取数据 B. 从来不散布或出售项目中自己工作的信息 C. 从来不故意毁坏或修改别人的程序、文件或数据 D. 从来不侵犯个人、小组或组织的隐私 E. 以上所有选项 第2章软件过程(习题与参考答案) [选择题] 1. ()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、 软件确认、软件改进等活动组成。(A) A. 软件过程 B. 软件工具 C. 软件产品 D. 软件工程 2. 软件过程的基本活动是()。(A) A. 分析、设计、实现、测试、演化 B. 沟通、计划、建模、构造、部署 C. 计划、分析、设计、实现、调试 D. 沟通、风险管理、度量、产品化、评审 3. ()软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。(B) A. 真 B. 假

软件工程作业第一章

1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现:软件总是超出预算、落后于进度表,而且产品质量不可靠、维护困难等。 危机原因: 1、软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。 2、主客观不相适应。 ●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等; ●主观上:传统的个体化开发观念和方法的影响,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? ?基本思想:是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。 ?软件工程定义:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它. ?软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。 本质特性:P6 消除软件危机:软件工程基本原理7条。 1-6 什么是软件过程?它与软件工程方法学有何关系? ?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任

务的工作步骤。

?过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。 关系:是软件工程方法学包含3个要素(方法、工具和过程)之一。 1-7 什么是软件生命周期模型?试比较瀑布模型、(快速)原型模型、增量模型和螺旋模型、喷泉模型的优缺点,说明每种模型的适用范围。 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型:它将软件生命周期划分为需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。优点:文档驱动。 强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。遵守瀑布模型的文档约束,将使软件维护变得比较容易一些。 缺点:系统可能不满足需求,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品 适用范围:软件需求明确。 原型模型:在初步调查了解的基础上,提供快速的软件建造工具,开发出一个功能并不十分完善的可实际运行的系统,即原型。需求分析入手快速、表达直观、容易交流。重点解决瀑布模型需求分析入手难的问题。 优点:关注满足需求。

最新版2016软件工程基础离线作业满分答案

浙江大学远程教育学院 《软件工程基础》课程作业 ————————————————————————————— 第一章概述 1.什么是软件危机,它有哪些典型表现? 答:所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。 软件危机的典型表现主要有: 1. 开发成本和进度不能准确估计 2. 开发出来的软件不能满足用户的要求 3. 软件的可维护性差 4. 软件质量不可靠 5. 软件成本在系统中的比重逐年上升 6. 软件开发生产率的提高速度不够 2.简述产生软件危机的原因和解决的思路。 答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。 解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特性? 答:软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。 其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。 4.软件工程是如何用来消除软件危机的? 答:软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服? 答:首先要对错误造成工作的延误或一些问题表示歉意。错误是难免,关键是要虚心接受,在以后工作中要更加认真,避免错误机率降到最低。在编码过程中要,首先要在头脑清醒,要保持工作前有足够的睡眠。这样错误机会也会降小。在编程结束后,首先要验证,是否能正常运行或工作。再以后的工作更要虚心,认真,保证这种机会降到最低。

现代软件工程(复习1)

软件的定义:(1)指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;(2)数据结构,它使得程序可以充分利用信息;(3)描述程序操作和使用的文档 遗留软件的定义:年代久远的过时的软件。 软件如其他工程原则制造的制品的区别:软件传递了我们这个时代最重要的产品——信息。 软件特征和硬件特征的区别:(1)软件是设计开发的,而不是传统意义上生产制造的。(2)软件不会“磨损”。 (3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。 为什么说软件不会随着时间而演化的说法是错误的:不管其应用领域、软件规模或者复杂性如何不同,计算机软件都将随着时间的推移不断演化。软件维护推动了软件演化,它通常是由以下情况引发的:程序纠错,调整软件以适应新的环境,满足用户新特性和功能的需求,以及对软件实施再工程以便在现代应用中发挥作用。 软件生命周期:软件的产生知道报废的生命周期,包括问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级和废弃。 软件工程的四个层次及之间的关系:工具、方法、过程和质量关注点。软件工程的根基在于质量关注点;软件工程的基础是过程层;软件工程方法为构造软件提供技术上的解决方法;软件工程工具为过程和方法提供自动或半自动化的支持。 软件工程的主要目标是什么?基本目标是什么? 软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。 软件工程的基本目标是:优质、高产。 软件构建与软件部署的区别:软件构建是程序员对软件进行编码和测试,是基于程序员的;软件部署是用户对软件成品的使用和反馈,是基于客户的。 软件过程的定义:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)所述方法的研究。 软件开发的原型模型的各个阶段:沟通、快速策划、建模快速设计、构建原型和部署交付品及反馈;循环执行以上步骤。 随着时间的推移,为什么软件需要不断演化? (1)环境运行环境的变化(2)用户需求的变化(3)用户业务需求的变化 软件工程中基于构件的软件过程模型的主要优势:基于构件开发模型能够使软件复用,软件复用为软件工程师带来极大收益。 在目前环境下,为什么说增量过程模型被认为是最佳的软件开发方法:早期的增量可以有少量的人员实现;增量可以规避技术风险。 ------------------------------------------------------------------------------------------------------------------------------------------------------------ 软件工程的通用框架以及框架活动:沟通、策划、建模、构建和部署;其中建模包括创建模型和设计,构建包括编码和测试。 惯例模型:规定了一套过程元素(框架活动、软件工程动作、任务、工作产品、质量保证以及每个项目的变更控制机制) ①瀑布模型 定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。 瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。 瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法; b.严格地规定了每个阶段必须提交的文档; c.每个阶段结束前必须正式进行严格的技术审查和管理复审。 瀑布模型的主要缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。 开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。 ②快速原型模型 定义:所谓“快速原型”,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件

软件工程在线作业及答案

1.第1题 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。 A.经济可性性 B.技术可行性 C.操作可行性 D.法律可行性 您的答案:A 题目分数:2.5 此题得分:2.5 2.第2题 为了提高模块的独立性,模块内部最好是()。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 您的答案:C 题目分数:2.5 此题得分:2.5 3.第3题 Jackson方法是一种面向()的方法。 A.对象 B.数据结构 C.数据流 D.控制流 您的答案:B 题目分数:2.5 此题得分:2.5 4.第4题 需求分析阶段研究的对象是软件项目的()。 A.用户需求 B.合理要求 C.模糊要求 D.工程要求 您的答案:A 题目分数:2.5 此题得分:2.5

5.第5题 面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B.详细设计 C.软件设计 D.编码 您的答案:B 题目分数:2.5 此题得分:2.5 6.第6题 程序控制的三种基本结构中,()结构可提供多条路径选择。 A.反序 B.顺序 C.循环 D.分支 您的答案:D 题目分数:2.5 此题得分:2.5 7.第7题 下列属于黑盒测试的是()。 A.基本路径测试 B.条件测试 C.循环测试 D.等价划分 您的答案:D 题目分数:2.5 此题得分:2.5 8.第8题 软件设计一般分为总体设计和详细设计,它们之间的关系是()。 A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构 您的答案:A 题目分数:2.5 此题得分:2.5

9.第9题 好的软件结构应该是()。 A.高耦合,高内聚 B.低耦合,高内聚 C.高耦合,低内聚 D.低耦合,低内聚 您的答案:B 题目分数:2.5 此题得分:2.5 10.第15题 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。 A.传递性 B.继承性 C.复用性 D.并行性 您的答案:B 题目分数:2.5 此题得分:2.5 11.第16题 软件项目管理是()一切活动的管理。 A.需求分析 B.软件设计过程 C.模块控制 D.软件生命周期 您的答案:D 题目分数:2.5 此题得分:2.5 12.第17题 一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。 A.外部耦合 B.数据耦合 C.控制耦合 D.内容耦合 您的答案:C

现代软件工程作业

(一)名词解释 1.软件: 软件是计算机程序、数据以及相关的各种文档的集合。 2.软件危机 软件危机是在软件发展第二阶段末期的规模较大的项目开发中,出现了与当初的计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。 3.数据流图 数据流图是以图形的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。 4.数据字典、 数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。 5.变换流 变换流指数据流图(简称DFD)具有明显的输入、变换和输出界面。 6.事务流 事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。 7.耦合性 耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量。 8.内聚性 内聚性又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。 9.程序设计语言(PDL) 程序设计语言(简称PDL),又称伪码,它是一种用于描述模块算法设计和处理细节的语言。 (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是_程序____、__文档___ 和__数据___ 。 2. 数据流图的基本组成部分有_数据流__、_加工_、_数据存储_、_数据源点或终点_。 3. 数据流图和数据字典共同构成了系统的__逻辑_模型,是需求规格说明书的主要组成部分。 4. 数据流图一般可分为_变换型_和_事务型_两类。 5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_事务型_数据流图。

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

软件工程作业答案

新版形考作业答案第一次!! 09软件工程作业1答案 一、选择题: 1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2. 瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3. 瀑布模型存在的问题是(B )。 A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求 4. 螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5. 原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。 A.需求不确定性高的B.需求确定的C.管理信息D.实时 6. 下列有关软件工程的标准,属于国际标准的是(D) A.GB B.DIN C.ISO D.IEEE 7. 结构化方法是一种基于(D)的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 8. 软件可行性研究实质上是要进行一次(A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9. 可行性研究的目的是(D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10. 设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。 A、P×(1+i*n) B、P×(i+1)*n C、p×(1+i)n D、p×(i+n) 11. 可行性研究是在(A)之前 A、系统开发 B、测试 C、试运行 D、集成测试 12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。 A、1% B、20% C、8% D、50% 13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。 A.《计算机软件保护条例》B.《中华人民共和国计算机信息系统安全保护条例》 C.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》 14. 效率是一个性能要求,因此应当在以下(B)阶段规定 A、可行性分析 B、需求分析 C、概要设计 D、详细设计 15. 需求规格说明书的作用不包括(D) A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件可行性研究的依据 D、软件设计的依据 16. 数据字典是用来定义(D)中的各个成份的具体含义的。 A、程序流程图 B、功能结构图 C、系统结构图 D、数据流程图 17. 数据流程图是(A)方法中用于表示系统逻辑模型的一种图形工具。 A、SA B、SD C、SP D、SC 18. DFD中的每个加工至少有(A)。 A、一个输入流或一个输出流

中国石油大学 软件工程 第一次在线作业

中国石油大学软件工程第一次在线作业 (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方法 ? B、Coad方法 ? C、UML语言

? D、OMT方法 我的答案:C 此题得分:2.5分 7.(2.5分)黑盒技术设计测试用例的方法之一为() ? A、因果图 ? B、逻辑覆盖 ? C、循环覆盖 ? D、基本路径测试 我的答案:A 此题得分:2.5分 8.(2.5分)软件测试方法中的静态测试方法之一为() ? A、计算机辅助静态分析 ? B、黑盒法 ? C、路径覆盖 ? D、边界值分析 我的答案:A 此题得分:2.5分 9.(2.5分)技术可行性是可行性研究的关键,其主要内容一般不包括() ? A、风险分析 ? B、资源分析 ? C、人员分析 ? D、技术分析

现代软件工程平时作业及答案

(一)名词解释 1.软件 2.软件危机 3.数据流图 4.数据字典 5.变换流 6.事务流 7.耦合性 8.内聚性 9.程序设计语言(PDL) (二)填空题 1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。 2. 数据流图的基本组成部分有_____、_____、_____、_____。 3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。 4. 数据流图一般可分为_____和_____两类。 5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。 6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。 (三)选择题 1. 软件工程的概念是哪年提出的( )。 A. 1988 B. 1968 C. 1948 D. 1928 2. 影响输入输出风格的因素不包括( )。 A. 数据状态 B. 通信环境 C. 用户经验 D. 输入/输出设备 3. 符合数据说明顺序规范的是( )。 A. 全程量说明、局部量说明、类型说明、常量说明 B. 全程量说明、局部量说明、常量说明、类型说明 C. 类型说明、常量说明、全程量说明、局部量说明 D. 常量说明、类型说明、全程量说明、局部量说明 4. 瀑布模型的关键不足在于( )。 A. 过于简单 B. 各个阶段需要进行评审 C. 过于灵活 D. 不能适应需求的动态变更 5. 以下哪一项不是软件危机的表现形式( )。 A. 开发的软件不满足用户需要 B. 开发的软件可维护性差 C. 开发的软件价格便宜 D. 开发的软件可靠性差 6. 软件可行性研究实质上是要进行一次( )需求分析、设计过程。 A. 简化、压缩的 B. 详细的 C. 彻底的 D. 深入的 7. 结构化设计是一种面向( )的设计方法。 A. 数据流 B. 模块 C. 数据结构 D. 程序 8. 与确认测试阶段有关的文档是( )。

软件工程李爱萍作业参考答案-最终版修改

第一章 1.1什么是软件?软件和程序的区别是什么? 答:⑴软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。软件的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。 ⑵软件不是程序,程序是软件的一部分。程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。它是由软件开发人员设计和编码的。程序执行时一般要输入一定的数据,也会输出运行的结果。没有相关文档,仅有程序是不能称之为软件产品的。 1.2什么是软件生存周期?划分生存周期的主要原则是什么? 答:(1)软件的生存周期是指某一软件项目被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。 (2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。 1.3什么是软件危机?它有哪些主要表现?为什么会产生软件危机? 答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 (2)主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费预算经常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了解以及开发人 员和用户又未能及时交换意见,导致已完成的软件不能满足用户的需要;软件产品 质量差,可靠性得不到保证;软件产品可维护性差;软件成本在计算机系统总成本 中所占的比例逐年上升,软件的发展跟不上硬件的发展;软件开发生产率提高的速 度远远跟不上计算机应用速度普及深入趋势,软件发展跟不上用户的要求。 (3)产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也与软件开发人员在开发和维护时采用的生产方式、方法、技术有关。软件是计算机系统中 的逻辑部件,软件产品往往规模庞大,结构复杂。给软件的开发和维护带来客观的 困难;软件开发的管理困难。由于软件规模大、结构复杂、又具有无形性,导致管 理困难,进度控制困难,可靠性无法保证;软件开发费用不断增加,维护费用急剧 上升,直接威胁计算机应用的扩大;软件开发技术落后;生产方式落后;开发工具 落后,生产效率提高缓慢。另外软件开发人员忽视需求分析的重要性,轻视软件维 护也是造成软件危机的原因。 1.4什么是软件工程?怎样利用软件工程消除软件危机? 答:(1)软件工程是指导计算机软件开发和维护的一门学科 (2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序” 的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法;要有良好

春季学期软件工程第一次作业精

2011年春季学期软件工程第一次作业 一、单项选择题(本大题共 60分,共 60 小题,每小题 1 分 1. 软件调试技术包括(。 A. 边界值分析 B. 演绎法 C. 循环覆盖 D. 集成测试 2. 在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高 (。 A. 结构化方法 B. 原型化方法 C. 面向对象的方法 D. 控制流方法 3. ( 引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A. 增量模型 B. 喷泉模型 C. 原型模型 D. 螺旋模型 4. 软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫 (。

A. 生存期 B. 面向对象设计 C. 面向对象程序设计 D. 面向对象分析 5. 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是 (。 A. 硬件环境 B. 软件开发的环境 C. 软件开发工具和软件开发的环境 D. 开发人员的素质 6. 软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统 . 所以软件工具是 ( A. 软件工程 B. 一个项目管理工具 C. 一个程序系统 D. 一个需求分析工具 7. 数据流图是 ( 方法中用于表示系统的逻辑模型的一种图形工具 A. SA B. SD

C. SP D. SC 8. 下列关于软件的特征不正确的是 ( A. 软件容易受到磨损 B. 软件是一种逻辑实体 , 具有抽象性 C. 软件是开发出来的 , 不是制造出来的 D. 软件的开发和运行受到计算机系统的限制 9. 软件开发方法的主要工作模型有(。 A. 螺旋模型 B. 循环模型 C. 瀑布模型 D. 专家模型 10. 包含风险分析的软件工程模型是(。 A. 螺旋模型 B. 瀑布模型 C. 增量模型 D. 喷泉模型 11. 进行需求分析可使用多种工具 , 但 ( 是不适用的 A. 数据流图

现代软件工程第四章答案

习题四参考答案 1. 交互设计具体采用什么方法进行?有哪些设计手段和过程? 交互设计使用目标导向的设计方法,包括角色设计、目标设计、任务设计和人性化设计等几种方法。其中角色设计是虚构软件的潜在用户并进行精确的定义和设计,目标设计是提炼角色的目标,任务设计是角色为达到某个目标而必须执行的任务进行简洁的描述,也就是进行行为设计,最后进入界面设计阶段。 交互设计的手段 首先考虑什么人会使用产品?用在什么地方?接下来要了解用户会有些什么样的行为?交互设计的关键在于如何优化用户与产品之间的交互,从而使产品满足用户的期望。在做选择的时候你应当有所依据,而这个依据就是对用户的理解。这就涉及到: 考虑人们擅长什么、不擅长什么。 考虑什么可能对用户的当前做法有所帮助。 考虑如何提供高质量的用户体验。 听取人们想要些什么,并让他们参与设计。 在设计过程中,让用户来尝试和验证。 交互设计的过程 一般来说,交互设计涉及以下4项基本活动: (1)理解用户需要,建立用户需求 开发人员必须了解谁是目标用户、他们需要哪些支持,才可能设计出能支持这些用户的产品。首先找到真正的用户,然后从他们那里找到需求。用户和他们的需求是所有设计、开发工作的基础。在“以用户为中心”的方法中,这个活动是“万物之源”。简而言之,在这个阶段开发人员需要知道:用户想要什么,开发人员要做什么。 (2)开发一些候选设计方案 这是设计的核心活动,也就是提出满足用户需求的构思。它可以划分为两个子活动:概念设计和物理设计。所谓概念设计就是用一种用户能够理解的方式去描述产品应该做些什么、如何运作、外观如何;而物理设计考虑的则是产品的细节,包括要使用的色彩、声音和图像,还有菜单设计和图标设计。这些设计构思都需要提出各种候选方案,从而制作出原型以供评估。这个阶段其实就是:试试该如何来做。 (3)制作设计方案的原型 评价一个交互设计的最佳方法,就是让用户与产品进行交互,让用户去感受。这就要求开发人员要把设计方案转化为可以交互的版本,或者说产品的原型。 这些原型并不一定必须是能够运行的真正软件版本,可以采用很多技术来实现所谓的“交互”。比如说,制作纸张原型(把步骤画在纸片上并口头为用户演示)就又快捷又便宜,而且能在设计的早期阶段就发现问题。这个阶段概括来说就是:先简单地做个样子出来。 (4)用户测试和评估 开发者需要让用户来检验产品或软件。用一句简单的话来概括这个阶段也就是:让用户看看这个设计行不行。测试也需要重复进行。这个相互联系并且重复进行的特征被称为“迭代”,是交互设计过程的关键特征之一。测试的目的是要保证产品是可用的。因为不同的用户有不同的需要,开发人员需要相应地设计不同类型的产品。 为用户“度身订造”产品或服务,这一点通常可以采用“以用户为中心”的设计方法来实现。UCD方法要一切以用户的最终感受为出发点,让用户参与整个设计过程。同时,为 了验证产品确实能够满足用户,你也需要通过测试和评估来进行判断。

软件工程第1章习题

软件工程第1章例题分析与解答 一、填空题 1.软件与物质产品有很大的区别,软件是一种____逻辑___产品。 2.软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于___建造一个软件系统____。 3.概要设计主要是把各项功能需求转换成系统的__体系结构______。 4.最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是__瀑布模型_____。 5.简单实用、应用广泛、技术成熟的开发方法是__结构化方法______。 二、选择题 1.同一软件的大量软件产品的生产主要是通过( B )而得到。 A.研究 B.复制 C.开发 D.研制 2.作坊式小团体合作生产方式的时代是( C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 3.软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 4.将每个模块的控制结构转换成计算机可接受的程序代码是( A )阶段的任务。 A.编码 B.需求分析 C.详细设计 D.测试 5.软件生存周期中时间最长的是( D )阶段。 A.需求分析 B.概要设计 C.测试 D.维护

一、填空题答案 1.逻辑 2.建造一个软件系统 3.体系结构 4.瀑布模型 5.结构化方法 二、选择题答案 1.B 2.C 3.C 4.A 5.D

第1章自测题及参考答案 一、名称解释 1.软件 2.文档 3.软件工程 4.软件生存周期 5.软件工程过程 6.软件生存周期模型 7.软件开发方法 8.软件工具 二、填空题 1.构成一个完整计算机系统的两部分是硬件与_____软件___。 2.程序设计时代的生产方式是___个体手工劳动_____。 3.软件工程涉及到几个学科,它是一门__综合性交叉___学科。 4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能_____相同___。 5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是_瀑布_______模型。 6.喷泉模型是一种以用户需求为动力,以____对象___为驱动的模型。 7.结构化方法是一种面向数据流的开发方法。由结构化分析、__结构化设计_____、结构化程序设计构成。 8.软件工程研究的主要内容是软件开发管理和___软件开发技术____两个方面。 9.软件工具是支持软件开发人员的开发和维护活动而使用的____软件____。 10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法_______,使用相应的工具来进行。 三、选择题 1.软件是一种( B )产品。 A.物质 B.逻辑 C.有形 D.消耗

相关主题
文本预览
相关文档 最新文档