软件工程实践者的研究方法中文版第七版 课后习题答案 下载本文

作业答案。 2.1

a.设计者对于用户要问的问题:

项目的目标是什么?做到什么程度就成功了?谁会对项目的成功做最后的评判?项目的使用者包括那些?

b. 用户对设计者应该问的问题:

目前问题有哪些解决方案,项目完成有哪些难点,在时间范围内能否完成? c. 软件问题用户自问?

还有其他解决方案吗?哪些功能是必须的?乙方资质和能力够吗? d. 软件过程问题自问?

用敏捷还是用瀑布?质量检查点分别有哪些?有几个MileStone? 2.2 为沟通活动设计一系列动作,选定其一并设计任务集。 (批作业的时候,以合理为目标,不一定要一样)

需求获取、需求规范说明(建模)、需求协商、需求确认等。 例如,书上page 23。

2.7 详细描述三个适合用于瀑布模型的软件项目。

(要求学生不仅仅列出项目的名称,而要说明为什么适合)

瀑布模型适合于项目开发而不是产品开发。信息管理系统一般适合于用瀑布模型。因为这类系统业务功能较为明确,架构比较单一,技术难点较少。 图书馆系统、销售管理系统都是。

3.11 重构:已经写好的正确的代码,不断修正,使得代码更加精简并易读。

结对编程:两个人同时编写一段代码,一般一个人负责实现,一个人负责检查代码质量。 3.16 利用FDD,为“Web浏览器”定义一系列特征集合与特征。

特征集合模板: an 如:出售一件商品 特征定义模板: the a(n) 特征集合:展示Web页面内容。 特征:

1)本地解析HTML页面 2)展示HTML页面

3)从网络上下载页面相关图片 4)在浏览器上展示图片 附加:统一过程模型的图。 (要求有图有说明)

5.9 为如下活动开发一个完整的规约

注意按照书本59页格式,包括用例名称,参与者,场景,异常等等。 5.10 用例异常代表什么 1)非正常输入。

2)环境状态不满足要求。 3)备选方案 。。。。

5.13 在需求工程活动的谈判情境中,“双赢”意味着什么? 1)找到了双方赢的条件。

2)合适的折衷。(在满足利益相关者要求的同时,反映软件团队所处真实世界的限制,如时间、人员,预算)

3)后续开展软件活动的关键。

JUNIT,SVN, Maven,RedMine分别是什么工具,完成什么功能?

这四个工具都是软件工程辅助工具。JUNIT是单元测试工具、SVN是版本管理工具,Maven

是构建工具,Redmine是项目管理与变更管理工具。

1)JUnit是基于面向对象构建的java单元测试框架。JUnit是开放源代码项目。使用这个工具可以快速构建测试用例。 可以和Maven等构建工具集成,在持续集成过程中不断进行测试。

2)svn(subversion)是一个版本管理工具。与GITHubGit这种分布式版本管理工具不同,这是集中式代码管理工具。SVN的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。SVN支持分支与合并,支持标签管理等。

3)Maven 是一个构建工具,可以通过撰写配置文件,自动构建一个项目。构建过程包括从服务器上checkout出源代码,编译、运行单元测试、生成文档、打包和部署等工作,在maven的帮助下,这些工作可以自动进行。另外,maven还有依赖管理、自动生成项目站点等特性。 4)redmine Redmine是用Ruby开发的基于web的项目管理软件。这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。另外,软件还提供wiki、新闻台等,也可以集成其他版本管理系统和BUG跟踪系统,例如SVN、CVS、TD等等。 6.6 PHTRS的用例图与类模型

类包含:坑洼/上报人/工单/维护人员/维护设备/维护材料等等

注意到这几个之间的关联,上报人和坑洼的关系,工单和其他所有类的关系。等等。 6.8 与类图相关。

7.1 结构化分析与面向对象分析的本质区别。

答:结构化分析的核心是“处理”,而面向对象分析的核心是“对象/类”。前者以“计算”为核心,而后者以“结构”为核心 7.5 什么是控制规格说明?