软件工程理论与实践 (吕云翔) 第三章 可行性研究及需求分析课后习题及答案

本文探讨了软件项目从立项开始,尤其是需求分析阶段的重要性,包括需求获取、分析建模、文档编写和验证。强调了需求分析的用户参与度,以及需求规格说明书的作用。同时,详细介绍了可行性研究的内容和需求获取的各种方法及其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三章 可行性研究及需求分析

知识点:

​ 任何一个完整的软件工程项目都是从项目立项(可行性研究)开始的。项目立项包括项目发起、项目论证、项目审核和项目立项4个过程。

一般来说,需求分析分为需求获取、分析建模、需求描述和需求验证4步。

​ 软件需求分析阶段的工作可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档,以及需求验证和确认。

1.判断题

(1)用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完
整性、现实性和有效性。(√)
(2)需求分析是开发方的工作,用户的参与度不大。( X)
(3)需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性研究的依据。(×)

(4)需求分析的主要目的是解决软件开发的具体方案。(X)
(5)需求规格说明书描述了系统每个功能的具体实现。( X)
(6)非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。(√)

(7)需求分析阶段的成果主要是需求规格说明书,但该成果与软件设计、编码、测试直至维护关系不大。(×)

2.选择题

(1)在需求分析之前有必要进行( B)工作。

A.程序设计
B.可行性研究
C.系统设计
D.系统测试
(2)需求分析是一个(D),它应该贯穿于系统的整个生命周期中,而不是仅仅属于软
件生命周期早期的一项工作。
B.工具
A.概念
D.过程
C.方法
(3)软件需求规格说明书的内容不应该包括(B)。

A.对重要功能的描述
B.对算法的详细过程描述
C.对数据的要求
D.软件的性能
(4)软件需求分析阶段的工作可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档,以及(C)。

A.总结
B.阶段性报告
C.需求分析评审
D.以上答案都不正确

3.简答题

(1)可行性研究的内容有哪些?

可行性研究需要从多个方面进行评估,主要包括战略可行性、操作可行性、计划可行性、技术可行性、社会可行性、市场可行性、经济可行性和风险可行性等。

​ 战略可行性研究主要从整体的角度考虑项目是否可行,例如,提出的系统对组织目标具有怎样的贡献;新系统对目前的部门和组织结构有何影响;系统将以何种方式影响人力水平和现存雇员的技术;它对组织整个人员开发策略有何影响等。
​ 操作可行性研究主要考虑系统是否能够真正解决问题;是否系统一旦安装后,有足够的人力资源来运行系统;用户对新系统具有抵触情绪是否导致使操作不可行;人员的可行性等问题。
计划可行性研究主要估计项目完成所需的时间,并评估项目的时间是否足够。
技术可行性研究主要考虑项目使用技术的成熟程度;与竞争者的技术相比,所采用技术
的优势及缺陷;技术转换成本;技术发展趋势及所采用技术的发展前景;技术选择的制约条件等。
社会可行性研究主要考虑项目是否满足所有项目涉及者的利益;是否满足法律或合同的要求等。
市场可行性研究主要包括研究市场的发展历史与发展趋势,说明本产品处于市场的什么
发展阶段;本产品和同类产品的价格分析;统计当前市场的总额及竞争对手所占的份额,分析本产品能占多少份额;产品消费群体特征、消费方式及影响市场的因素分析;分析竞争对手的市场状况;分析竞争对手在研发、销售、资金和品牌等方面的实力;分析自己的实力等。

​ 经济可行性研究主要是把系统开发和运行所需要的成本与得到的效益进行比较,进行成本效益分析。
​ 风险可行性研究主要是考虑项目在实施过程中可能遇到的各种风险因素,以及每种风险因素可能出现的概率和出险后造成的影响程度。

(2)如何理解需求分析的作用和重要性。

作用:
需求分析是介于系统分析和软件设计阶段之间的桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。
良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。
重要性:
需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。

(3)常用的需求获取的方法有哪些?对比各种方法的优缺点。

获取需求的方法有多种,如问卷调查、访谈、实地操作和建立原型等。

  • 下面是常用的需求获取方法以及它们的优缺点:

    1. 问卷调查:
      • 优点:问卷调查可以收集大量数据,适用于获取广泛的意见和观点。它可以在较短的时间内覆盖大量用户,并提供定量数据进行分析。
      • 缺点:问卷调查可能面临回答者主观偏见、回应率低和信息不够详细的问题。它也无法捕捉到用户在使用软件过程中的真实体验和情感。
    2. 访谈:
      • 优点:访谈可以深入了解用户的需求、期望和挑战。它提供了互动和个性化的沟通,可以追问和澄清问题,收集详细的信息。
      • 缺点:访谈需要花费更多的时间和资源,特别是如果用户数量众多。此外,访谈结果可能受到访谈者主观偏见的影响。
    3. 实地操作:
      • 优点:通过观察用户在实际环境中使用软件,可以发现用户的行为、需求和痛点。实地操作可以提供直接的用户反馈和洞察。
      • 缺点:实地操作可能受到环境限制和时间约束,无法完全模拟用户的真实场景。此外,观察者可能会对用户行为进行解释或偏见。
    4. 建立原型:
      • 优点:通过构建原型,可以让用户直接参与软件的设计和功能验证。它提供了一个可视化的产品演示,可以快速迭代和改进。
      • 缺点:建立原型需要额外的时间和资源。此外,原型可能无法完全模拟最终产品的性能和功能,用户可能会对其有误解。
<think>好的,我现在需要处理用户关于《实用软件工程吕云翔课后习题答案的查询。首先,用户提到他们正在寻找这本书的课后作业和答案,特别是答案解析。根据用户提供的引用内容,看起来这些引用来自《软件工程理论实践吕云翔的不同章节,比如第十一章、第十二章、第七章和第八章。用户可能混淆了《实用软件工程》和《软件工程理论实践》这两本书,或者可能这两本书是同一作者的不同著作。 接下来,我需要确认用户提供的引用是否《实用软件工程》相关。根据引用中的内容,例如引用[2]提到“软件实现是将详细设计的结果翻译成用某种程序设计语言编写的...”,这属于软件工程的基础知识,可能在不同教材中都有涉及。但用户明确提到的是《实用软件工程》而引用来自《软件工程理论实践》,所以可能存在书名差异或版本问。 然后,我需要考虑如何回答用户的问。用户需要课后习题及其答案,但根据现有引用,只能提供《软件工程理论实践》的相关章节内容。可能需要指出这一点,并建议用户确认书名是否正确,或者是否这两本书是同一系列的不同版本。此外,用户可能希望获取更多的资源,如教材的官方资源或联系出版社,但需要注意版权问,不能直接提供受版权保护的资料。 另外,用户提供的引用内容中涵盖了软件设计、编程、测试等章节的习题解析,这可能对用户有帮助,可以作为示例展示。例如,引用[4]讨论了概要设计和详细设计,引用[3]涉及软件测试,这些都是软件工程的重要部分。因此,在回答中可以引用这些现有的解析作为例子,说明用户可能在寻找的内容类型,同时指出需要进一步资源时的建议。 最后,需要确保回答符合用户要求的格式,包括使用中文、正确的LaTeX格式、生成相关问等。同时,用户希望回答结构清晰,逐步解决问,所以需要分步骤说明可能的解决方案,并提供相关的问供用户进一步探索。</think>关于《实用软件工程吕云翔编著教材的课后习题及解析,目前公开渠道未提供完整的官方答案集。但根据软件工程学科通用知识体系及同类教材结构,可提供以下分步指导: ### 一、获取习题解析的途径 1. **教材附录**:部分版本会在书末附部分习题参考答案,需检查教材目录或封底说明[^4] 2. **出版社资源**:联系清华大学出版社官方客服,查询是否有配套教辅资料发行 3. **教学平台**:通过中国大学MOOC等平台搜索相关课程,例如: $$课程编号 = \text{SOFT\_ENG\_101} \Rightarrow 访问课程资源库$$ 4. **学术数据库**:在知网、万方等平台检索「实用软件工程+习题解析」组合关键词 ### 二、典型习题解析示例(基于引用内容) **例**:从工程管理角度,软件设计分为哪两个阶段? - **解析**:根据瀑布模型开发流程: 1. 概要设计阶段:定义系统架构和模块关系 2. 详细设计阶段:明确模块内部实现细节 **编程**:实现外观模式示例 ```python class SubsystemA: def operation_a(self): return "子系统A操作" class SubsystemB: def operation_b(self): return "子系统B操作" class Facade: def __init__(self): self._subsystem_a = SubsystemA() self._subsystem_b = SubsystemB() def operation(self): return f"{self._subsystem_a.operation_a()} + {self._subsystem_b.operation_b()}" ``` 该模式通过统一接口简化复杂子系统调用[^5] ### 三、重点章节知识图谱 ```mermaid graph TD A[软件工程基础] --> B[需求分析] A --> C[系统设计] C --> D[结构化设计] C --> E[面向对象设计] A --> F[质量保障] F --> G[测试方法] F --> H[代码规范] ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

acmakb

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

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

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

打赏作者

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

抵扣说明:

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

余额充值