《软件工程与实践》习题及答案

《软件工程与实践》习题及答案

(红色字体标识为重点习题(作业))
第1章 实践与练习1(习题)
1.填空题
(1) 软件是计算机系统中的 、数据及其 的总称。
(2) 软件的类型按功能可以分为: 、 、 等三种类型。
(3) 国家标准GB/T 11457—1995《软件工程术语》对软件工程定义是软件开发、运行、维护和引退的 。
(4) 软件工程是指导计算机 的工程学科。
(5) 软件工程采用 来开发与维护软件。
(6) 软件工程的目标是 。
(7) 软件工程学的主要内容是 。
2.选择题
(1) 下面( )不是软件的特征。
A.系统性与复制性 B.有形性与可控性
C.抽象性与智能性 D.依附性与泛域性
(2) 下面( )不属于系统软件。
A.BIOS B.Windows
C.设备驱动程序 D.办公软件
(3) 软件危机的主要原因是( )。
A.软件本身特点及开发方法 B.对软件的认识不够
C.软件生产能力不足 D.软件工具落后
(4) 下面( )不属于软件工程学科所要研究的基本内容。
A.软件工程原理 B.软件工程目标
C.软件工程材料 D.软件工程过程
(5) 下面( )是正确的说法。
A.20世纪50年代提出了软件工程的概念
B.20世纪60年代提出了软件工程概念
C.20世纪70年代出现了客户机/服务器技术
D.20世纪80年代软件工程学科达到成熟
3.简答题
(1) 什么是软件?软件和程序的区别是什么?
(2) 什么是软件危机?软件危机的主要表现是什么?怎样消除软件危机?
(3) 什么是软件工程?什么是软件过程?软件过程与软件工程方法学有何关系?
(4) 软件工程学的主要内容是什么?
(5) 软件工程的基本原理是什么?
(6) 什么是软件生存周期,软件生存周期为什么要划分阶段,划分阶段的原则是什么?
(7) 什么是软件开发方法,有哪些主要方法?
(8) 比较各种软件开发模型的特点。
4.实践题
(1) 调查乐购等大型超市成功的原因,说明信息化方面的关键要素?
(2) 调查一个企事业单位存在的软件问题,写出解决的主要措施。
(3) 上机操作:熟悉MS Office Visio 2022操作界面或常用软件开发环境、开发工具软件和文档等准备工作。

附录A 练习与实践部分参考答案
第1章 练习与实践1答案
1.填空题
(1) 程序(指令)、文档(+服务)
(2) 系统软件、支撑软件和应用软件
(3) 系统方法
(4) 软件开发和维护
(5) 工程的概念、原理、技术和方法
(6) 实现软件的优质高产
(7) 软件开发技术和软件工程管理
2.选择题
(1) B (2) D (3) A (4) C (5) B
3.简答题
(1) 什么是软件?软件和程序的区别是什么?
【答案】
软件(Software)是计算机及手机等终端设备运行的指令、数据和资料与服务的集合,包括指令程序、数据、相关文档和完善的售后服务的完整集合。具体可以表示为:
软件 = 程序 + 数据 + 文档 + 服务。
程序只是计算机及手机等终端设备按照指定规程顺序运行的指令。
(2) 什么是软件危机?软件危机的主要表现是什么?怎样消除软件危机?
软件危机(Software Crisis)是指20世纪60年代在计算机软件的研发、运行、维护和管理过程中,出现一系列严重问题的现象。
出现软件危机的表现,主要体现在7个方面:
1) 软件系统运行过程中,经常出现功能、性能等严重问题或故障。
2) 软件产品的质量、可靠性和安全等方面,时常不能达到标准要求。软件产品质量难以保证,甚至在开发过程中被迫中断。
3) 软件开发管理差,对成本和进度难以估计。
4) 系统时常出现无法维护、升级或更新的问题。
5) 开发效率低,无法满足应用快速发展与更新升级的实际需要。
6) 研发成本难以控制,在总成本中所占的比例不断大幅上升。
7) 软件开发没有标准、完整、统一规范的文档资料。软件不仅只是程序,还应当有一整套规范的文档资料和售后服务。
解决软件危机的主要措施,包括3个方面:

  1. 技术方法。运用软件工程化的技术、方法和标准进行规范。
  2. 开发工具。选用先进高效的软件工具,采取切实可行的实施策略。
  3. 组织管理。研发机构需要组织高效、管理制度和标准严格规范、职责明确、质量保证、团结互助、齐心协力,注重文档及服务。

(3) 什么是软件工程?什么是软件过程?软件过程与软件工程方法学有何关系?
软件工程(Software Engineering)是软件开发、运行、维护和引退的系统方法,目的就是为软件全生存周期活动提供工程化的手段,从而提高软件的质量、降低成本和缩短开发周期等。
软件过程(Software Process)ISO9000定义为:将输入转化为输出的一组彼此相关的资源和活动。是为了获取高质量高效率软件(产品)所需要完成的一系列任务的框架,规定了完成各项任务的具体步骤。
软件过程定义了运用软件工程方法的顺序、交付的文档、开发软件的管理措施和各阶段任务完成的标志。软件过程是软件工程方法学的三个要素中方法和工具的重要基础和实施的重要保障,科学合理的软件过程才能获得高质量的软件产品。而软件工程过程则包括软件的开发过程、运作过程、维护过程,其开发过程是软件过程的核心部分。

(4) 软件工程学的主要内容是什么?
软件工程学是一个专门研究利用工程化的技术方法,构建、研发和维护有效的、实用的和高质量的软件的学科。主要涉及软件系统的分析与设计方法、编程与实现技术、数据库及网络技术、软件开发工具、系统平台、标准、设计模式等方面。
软件工程学的主要内容包括软件开发技术和软件工程管理两个方面。软件开发技术主要包括软件工程方法及过程、软件工具和软件开发环境;软件工程管理学主要包括软件工程经济学和软件管理学(软件项目管理等)。

(5) 软件工程的基本原理是什么?
软件工程学是软件工程化的思想、规范、过程、技术、环境和工具的集成,是将具体的技术和方法结合形成的一个完整体系。
软件工程的研究范围很广,不仅涵盖软件系统的开发方法和技术、维护与管理技术,还包括软件工具、环境及软件开发的规范。对软件工程学科的构成和内容尚未统一,根据软件工程研究的对象和任务,软件工程学科主要包括:软件工程原理、软件工程过程、软件工程方法、软件工程技术、软件工程模型、软件工程管理、软件工程度量、软件工程环境、软件工程应用等基本内容。软件工程学科主要内容如表1-3所示。
表1-3 软件工程学科的主要内容
软件工程原理 软件目标、原则、学科基础
软件工程过程 开发过程、运作过程、维护过程,如获取、供应、管理、开发、运作、维护、支持、裁剪
软件工程技术 开发技术、管理技术、度量技术、维护技术、应用技术
软件工程方法 开发方法、管理方法、度量方法、维护方法、应用方法、环境方法
软件工程模型 领域模型、需求模型、设计模型、实现模型、测试模型
软件工程管理 项目管理、质量管理、文档管理
软件工程度量 规模、复杂度、进度、费用、工作量
软件工程环境 硬件、网络、支撑软件
软件工程应用 应用软件工程基本原理、方法、技术解决特定领域问题

(6) 什么是软件生存周期,软件生存周期为什么要划分阶段,划分阶段的原则是什么?
软件生存周期(Software life cycle)是从开始研发软件到软件停止使用的整个过程。是指软件产品从用户提出开发需求开始,经过开发、使用和维护,直到最后淘汰的整个过程。
软件工程中的过程对应软件生存周期中的阶段(Phase) ,也是实现软件生产工程化的重要步骤,并赋予各阶段相对独立的任务。
软件生存周期阶段划分的原则主要包括:
(1)各阶段的任务相对独立。便于分阶段计划、逐步完成。
(2)同一阶段的工作任务性质尽量相同。有利于软件开发和组织管理,明确开发人员的分工与职责,以便协同工作、保证质量。

(7) 什么是软件开发方法,有哪些主要方法?
软件开发方法是指软件开发“如何作”的技术和管理准则及文档等技术方法。
常用的软件工程方法,通常主要分为7种类型。
1)面向功能方法。也称为结构化方法。
2)面向数据方法。也称Jackson方法。
3)面向对象方法(OOM)。是一种将面向对象的思想应用于软件开发过程,指导研发活动的系统方法。
4)面向问题方法。也称为问题分析法。
5)面向方面的开发方法。面向方面的程序设计(AOP)是继面向对象技术之后新的软件开发的研究方向
6)基于构件的开发方法。也称基于构件的软件工程(CBSE)方法是软件开发新范型。
7)可视化方法。

(8) 比较各种软件开发模型的特点。
1.瀑布模型开发适用于软件需求明确,开发技术成熟,工程管理较严格的场合下使用。利用瀑布模型开发软件,具有3个特点:
1)开发过程的顺序性。此模型特点是文档驱动。只有当前一阶段任务完成后,下一阶段的工作才能开始;前一阶段的输出文档,作为后一阶段的输入文档。前面的正确输出决定后面结果的正确性,若在某一阶段出现错误,要向前追溯返工。
2)严格要求保证质量。为确保质量,应坚持做到:
① 必须各阶段都按照要求认真完成规定的文档。
② 各阶段须对完成文档复审,及时发现隐患并排除。
3)统筹兼顾不早编程。编程前安排的需求分析、概要设计、详细设计等阶段,将逻辑设计和编码划分开,以便协同工作效果更好。实践表明大中型软件编程开始得越早,完成所需的时间反而越长。
2.快速原型模型最适合于可以先尽快构建成一个原型的应用系统。通常,先构建一个快速原型,如较完整的操作窗口及界面等,请客户或潜在用户同软件操作交互,用户/客户可以通过对原型的评价及改进意见,进一步细化待开发软件的需求,通过逐步调整原型达到客户要求,从中确定客户的具体需求;然后按照需求开发软件。
3.增量模型灵活性很强,适用于软件需求不明确、设计方案有一定风险的软件项目。利用增量模型开发的软件被作为一系列的增量构件进行设计、实现、集成和测试,每个构件具有一定功能,并最终能组合成一个具有完整功能软件的模块。
4.螺旋模型将瀑布模型和快速原型模型结合,强调了其他模型所忽视的风险分析,适合于大型复杂系统,吸收了“演化”的概念,可使开发人员和客户对每个演化层的风险有所了解,继而做出应有反应。将开发过程划分为制定计划、风险分析、实施工程和客户评估四类活动。沿着螺旋线每转一圈,表示开发出一个更完善的新软件版本。如果开发风险过大,开发机构和客户无法接受,项目可能就此终止。多数情况下,将沿着螺旋线继续进行,自内向外逐步延伸,最终得到满意的软件产品。
5. 喷泉模型是以面向对象开发方法为基础,以用户需求为源泉。具有7个特点:
(1)软件开发过程规定4个阶段:需求分析、总体设计、详细设计和实现,还可分成多个开发步骤。
(2)各阶段相互重叠,反映了软件过程并行性的特点。
(3)以分析为基础,资源消耗成塔形,在分析阶段消耗资源最多。
(4)反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。
(5)强调增量开发,依据分析一点设计一点的原 图1-11 喷泉模型
则,并不要求一个阶段的彻底完成,整个过程是一个迭代的逐步提炼的过程。
(6)是对象驱动过程,对象是活动作用的实体,也是项目管理的基本内容。
(7)实现中由于活动不同,可分为系统实现和对象实现,这既反映了全系统的开发过程,也反映了对象族的开发和重用过程。
6.面向对象模型的优点很多且应用非常广泛,构件重用就是其重要技术之一。面向对象技术强调了类的创建与封装,一个类创建与封装成功后,便可在不同的应用系统中被重用。面向对象技术为基于构件的软件过程模型提供了强大的技术框架。基于面向对象的模型,综合了面向对象和原型方法及重用技术。
4.实践题
(1) 调查乐购等大型超市成功的原因,说明信息化方面的关键要素?
大型超市成功的原因:客户至上、物美价廉、服务周到
大型超市信息化关键要素:网站平台、商品及客户信息与服务、信息流资金流和物流、商品及车辆和人员调配,大型超市管理和周转与运营管理等。
(2) 调查一个企事业单位存在的软件问题,写出解决的主要措施。(略)
(3) 上机操作:熟悉MS Office Visio 2019操作界面或常用软件开发环境、开发工具软件和文档等准备工作。(主要是业务流程图画法,略)

《软件工程与实践》习题及答案
(红色字体标识为重点习题(作业))
第2章 练习与实践2

  1. 填空题
    (1) 的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
    (2) 可行性分析的目的不是去开发一个软件项目,而是研究这个软件项目是否
    、 。
    (3) 可行性分析实质上是要进行一次简化、压缩了的 和 过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。
    (4) 可行性分析需要从 可行性、 可行性、 可行性三个方面分析研究每种解决方法的可行性。
    (5) 技术可行性是对要开发项目的 、 、 进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。
    (6) 技术可行性一般要考虑的情况包括: 、 和 。
    (7) 技术可行性的研究包括 、 、 和 。
    (8) 社会可行性所涉及的范围包括 、 、 、用户组织的管理模式、规范及其他一些技术人员常常不了解的陷阱等。
    (9) 典型的可行性分析有下列步骤:确定项目规模和目标、 、 、导出和评价各种方案、推荐可行的方案和编写可行性分析报告。
    (10) 一个可行性分析报告的主要内容如下:引言、可行性分析的前提、对现有系统的分析、 、 、 、其他可供选择方案、结论意见。
    (11) 成本-效益分析首先是估算将要开发的系统的 ,然后与可能取得的效益进行 。
    (12) 效益分析有形效益和无形效益两种。有形效益可以用 、 、
    等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。
    (13) 就是使累计的经济效益等于最初的投资费用所需要的时间。项目的
    是指在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。
    (14) 项目开发计划的主要内容有:项目概述、 、 和交付期限。
    (15) 纯收入是软件生存周期内两项值之差,这两项是 与 。
    (16) 软件工程有两种效益,它们是 和 。
    (17) 可行性分析具体步骤的最后一步是 。
    (18) 系统的经济效益等于 加上 。
    (19) 成本-效益分析的目的是从 评价开发一个新的软件项目是否可行。
    (20) 可行性分析中描述系统高层物理模型的工具是 。
    (21) 可行性分析的第一个具体步骤是 。
  2. 选择题
    (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.技术可行性 B.经济可行性
    C.社会可行性 D.操作可行性
    (8) 可行性分析要进行的需求分析和设计应是( )。
    A.详细的 B.全面的
    C.简化、压缩的 D.彻底的
    (9) 系统流程图用于可行性分析中的( )的描述。
    A.当前运行系统 B.当前逻辑模型
    C.目标系统 D.新系统
    (10) 系统流程图是描述( )的工具。
    A.逻辑系统 B.程序系统
    C.体系结构 D.物理系统
  3. 简答题
    (1) 为什么要进行可行性分析?应该从哪些方面研究目标系统的可行性?
    (2) 可行性分析的任务有哪些?
    (3) 研究项目的技术可行性一般要考虑的情况有哪些?
    (4) 可行性分析包括哪些步骤?
    (5) 可行性分析报告有哪些主要内容?
    (6) 成本-效益分析的目的是什么?可用哪些指标进行度量?
    (7) 概述软件工程规划方法,结合实例进行软件工程规划?
    (8) 项目开发计划有哪些内容?
    4.实践题
    (1) 针对所选的软件项目,深入企事业单位进行初步调研,并进行问题定义。
    (2) 根据所选的软件项目,对该系统进行可行性分析,写出《可行性分析报告》。
    (3) 根据所选的软件项目,对该系统进行软件工程规划。
    (4) 针对所选的软件项目,制定出初步的软件开发计划,写出《软件开发计划书》。

附录A 练习与实践部分参考答案
第2章 练习与实践2答案
1.填空题
(1) 软件可行性分析
(2) 值得去开发、其中的问题能否解决
(3) 需求分析、设计
(4) 技术、经济、社会
(5) 功能、性能、限制条件
(6) 开发的风险、资源的有效性、技术
(7) 成本-效益分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景
(8) 合同、责任、侵权
(9) 研究正在运行的系统、建立新系统的高层逻辑模型
(10) 所建议系统的技术可行性分析、系统的经济可行性分析、社会因素可行性分析
(11) 开发成本、比较和权衡
(12) 货币的时间价值、投资回收期、纯收入
(13) 投资回收期、纯收入
(14) 实施计划、人员组织及分工
(15) 经济效益、投资
(16) 无形效益、有形效益
(17) 编写可行性报告
(18) 因使用新的系统而增加的收入、使用新的系统可以节省的运行费用
(19) 经济角度
(20) 系统流程图
(21) 需求分析和设计
(22) 确定项目的规模和目标
2.选择题
(1) A (2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Serendipitysyn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值