收藏 分享(赏)

软件工程实践者的研究方法(中文版第七版)课后习题答案.doc

上传人:tangtianxu1 文档编号:3036254 上传时间:2018-10-02 格式:DOC 页数:7 大小:53KB
下载 相关 举报
软件工程实践者的研究方法(中文版第七版)课后习题答案.doc_第1页
第1页 / 共7页
软件工程实践者的研究方法(中文版第七版)课后习题答案.doc_第2页
第2页 / 共7页
软件工程实践者的研究方法(中文版第七版)课后习题答案.doc_第3页
第3页 / 共7页
软件工程实践者的研究方法(中文版第七版)课后习题答案.doc_第4页
第4页 / 共7页
软件工程实践者的研究方法(中文版第七版)课后习题答案.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、作业答案。2.1 a.设计者对于用户要问的问题:项目的目标是什么?做到什么程度就成功了?谁会对项目的成功做最后的评判?项目的使用者包括那些?b. 用户对设计者应该问的问题:目前问题有哪些解决方案,项目完成有哪些难点,在时间范围内能否完成?c. 软件问题用户自问?还有其他解决方案吗?哪些功能是必须的?乙方资质和能力够吗?d. 软件过程问题自问?用敏捷还是用瀑布?质量检查点分别有哪些?有几个 MileStone? 2.2 为沟通活动设计一系列动作,选定其一并设计任务集。(批作业的时候,以合理为目标,不一定要一样)需求获取、需求规范说明(建模) 、需求协商、需求确认等。例如,书上 page 23。2

2、.7 详细描述三个适合用于瀑布模型的软件项目。(要求学生不仅仅列出项目的名称,而要说明为什么适合)瀑布模型适合于项目开发而不是产品开发。信息管理系统一般适合于用瀑布模型。因为这类系统业务功能较为明确,架构比较单一,技术难点较少。 图书馆系统、销售管理系统都是。3.11 重构:已经写好的正确的代码,不断修正,使得代码更加精简并易读。结对编程:两个人同时编写一段代码,一般一个人负责实现,一个人负责检查代码质量。3.16 利用 FDD,为“Web 浏览器”定义一系列特征集合与特征。特征集合模板: an 如:出售一件商品特征定义模板: the a(n) 特征集合:展示 Web 页面内容。特征:)本地解

3、析 HTML 页面)展示 HTML 页面)从网络上下载页面相关图片)在浏览器上展示图片附加:统一过程模型的图。(要求有图有说明)5.9 为如下活动开发一个完整的规约注意按照书本 59 页格式,包括用例名称,参与者,场景,异常等等。5 10 用例异常代表什么1)非正常输入。2)环境状态不满足要求。3)备选方案。 。 。 。5.13 在需求工程活动的谈判情境中, “双赢”意味着什么?)找到了双方赢的条件。)合适的折衷。 (在满足利益相关者要求的同时,反映软件团队所处真实世界的限制,如时间、人员,预算)后续开展软件活动的关键。 JUNIT,SVN, Maven,RedMine 分别是什么工具,完成什

4、么功能?这四个工具都是软件工程辅助工具。JUNIT 是单元测试工具、SVN 是版本管理工具,Maven是构建工具,Redmine 是项目管理与变更管理工具。1) JUnit 是基于面向对象构建的 java 单元测试框架。JUnit 是开放源代码项目。使用这个工具可以快速构建测试用例。 可以和 Maven 等构建工具集成,在持续集成过程中不断进行测试。2) svn(subversion)是一个版本管理工具。与 GITHubGit 这种分布式版本管理工具不同,这是集中式代码管理工具。SVN 的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版

5、本信息都放在服务器上。SVN 支持分支与合并,支持标签管理等。3) Maven 是一个构建工具,可以通过撰写配置文件,自动构建一个项目。构建过程包括从服务器上 checkout 出源代码,编译、运行单元测试、生成文档、打包和部署等工作,在maven 的帮助下,这些工作可以自动进行。另外,maven 还有依赖管理、自动生成项目站点等特性。http:/ Redmine 是用 Ruby 开发的基于 web 的项目管理软件。这种 Web 形式的项目管理系统通过“项目(Project) ”的形式把成员、任务(问题) 、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,

6、同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。另外,软件还提供 wiki、新闻台等,也可以集成其他版本管理系统和 BUG 跟踪系统,例如 SVN、CVS、TD 等等。6.6 PHTRS 的用例图与类模型上上上上上上上上上上上上上上上上上上上上上上上上上上上上上类包含:坑洼/上报人工单/ 维护人员/维护设备/ 维护材料等等注意到这几个之间的关联,上报人和坑洼的关系,工单和其他所有类的关系。等等。6.8 与类图相关。7.1 结构化分析与面向对象分析的本质区别。答:结构化分析的核心是“处理” ,而面向对象分析的核心是“对象类” 。前者以“计算”为核心,而后者以“结构”为核心7.5

7、 什么是控制规格说明?答:控制规格说明使用两种不同的方式表现系统的行为,)一个状态图,是行为的序列说明。)程序激活表, 即行为的组合说明,或者说是当有事件发生时,会引入流程模型的哪个处理。7.6 PSPEC 和用例是同一事物吗?如果不是,请解释区别。答:不是。处理规格说明用于描述出现在求精过程中最终层次的所有流程模型的处理,通常是在详细设计的时候用到,是系统某个功能的具体实现方法。而用例描述了一个用户如何使用系统的,并不涉及到系统的内部的行为,通常在需求分析阶段用到。7.8 如何从状态图区分顺序图?它们有何相似之处?答:状态图描述一个对象状态的变迁,而顺序图描述几个对象之间交互的顺序。对象状态

8、的变迁,通常是由事件激发的,这个事件和顺序图当中的消息有关。可以由多个对象的状态图,组合成多个对象交互组成的序列图。9.1 用一个房屋或建筑物的结构做比喻,与软件体系结构做对照分析。经典建筑与软件体系结构的原则有什么相似之处? 又有何区别?答:建筑物也是由各种部件通过不同方式搭建而成。如不同的房子都有墙、顶、地基等等,搭建方法的不同构成了不同风格的房子。软件体系结构也一样,不同的部件通过不同的方式的组装,形成了不同的软件系统。不同点:1)一个比较实际,一个比较抽象。2)房屋或建筑物可变化的空间比较小,软件体系结构变化跨度更大一点。9.2 举出一两个例子,说明.3.1 节中提到的每一种体系结构的

9、应用。答:1)以数据为中心的体系结构 以数据库为核心的企业信息系统2)层次体系结构 OSI, MVC3)调用/返回体系结构 远程消息调用(RPC) ,科学计算。4)数据流体系结构 编译器9.3 9.3.1 节中提到的一些体系结构风格具有层次性,而另外一些则没有。列出每种类型。没有层次的体系结构风格如何实现?答:很难绝对地说那些体系结构没有层次。1) 层析性体系结构肯定有层次。2) 调用/返回的话,有主程序,也有 1 层调用,2 层调用。层次不明显的:1) 以数据为中心的体系结构,通过所有软件访问公共的数据库实现数据共享。2) 面向对象体系结构,通过将对象组装成模块,体现某种层次。 3) 数据流

10、体系结构,数据可以通过管道,流到更细的管道里去。9.6 研究 ATAM,并对 9.5.1 节提出的个步骤进行详细讨论。此题目暂时不批。10.3 OCP 原则的核心是 容易扩充,但是不需要修改已有代码。 (对外延具有开放性,对修改具有封闭性)代码如:探测器类读取不同的Sensor,用interface 定义Sensor,然后HeatSensor实现之,如果想扩充一种Sensor,则直接实现Sensor接口,Detector不需要修改。/Detector Sensorpublic class Detector Sensor sensor;public Detector(Sensor sensor)

11、this.sensor =sensor; public void detectSensor(Sensor sensor)System.out.println(sensor.read();/Sensor 接口public interface Sensor public String read();/HeatSensorpublic class HeatSensor implements Sensorpublic String read()return “heatSensor“;/扩充一个Sensorpublic class SmokeSensor implements Sensor public

12、 String read()return “smoke“;10.4 DIP 含义是: 1、上层不应该依赖于下层模块,二者都应该依赖于抽象。2、抽象不应该依赖于细节,细节应该依赖于抽象。如果如果以电灯为例子,开关可以打开电灯。如果开关直接调用电灯,那么,当(和 OCP 的例子中有所不同,如果其他物体都继承电灯,也满足 OCP 原则,即可以扩充,无需修改代码,而 DIP 直接指出了依赖于抽象的意义)代码如下:public class Light public String turnOn()return “Turn on the light“;public String turnOff()retur

13、n “Turn off the light“;public class Switch public String Toggle(Light light)return light.turnOn();public class Test public static void main(String argv)Switch sw =new Switch();Light light = new Light();System.out.println( sw.Toggle(light);/ 如果将 TV 作为子类,虽然从程序上可以,但理解不合理。 public class TV extends Lightp

14、ublic String turnOn()return “Turn on the TV“;public String turnOff()return “Turn off the TV“;所以,增加一个接口,叫 Switchable10.5 选择 3 个你最近开发的构件,评估每个构件的内聚类型。此题目暂时不批。10.6 选择 3 个. , 评估每个构件的耦合类型。此题目暂时不批。10.7 问题领域构件不会存在外部耦合的说法有道理吗?如果你认为没有道理,那么哪种类型的构件存在着外部耦合?没有道理。例如:1) 嵌入式软件应用中的构件,与操作系统耦合2)数据库应用中 POS 构建,与数据库耦合。3) 文件传输构件,会和通信功能耦合。10.8 完成( 1)一个细化的设计类;(2 )接口描述 (3)该类中包含的某一操作的活动图。例如,书上的 printJob(Page 197) ,有 7 个操作,2 个接口。CheckPriority 的活动图。 (注意,批作业的时候,一定要是活动图)getJobAttributeshowPriopritycaculatePriorityJobQueeprintJob

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报