软件工程参考答案(中文注释) 联系客服

发布时间 : 星期日 文章软件工程参考答案(中文注释)更新完毕开始阅读

(2)“软件必须升级以实现新的商业需求。

(3)软件必须扩展使之具有与更多新的系统和数据库的互操作能力. (4)软件架构必须进行改建使之能适应多样化的网络环境。

当这些变化发生时,遗留系统需要经过再工程(参见第29章)使之适应未 来的多样性。

3. What are the five generic process framework activities?(五个通用过程框架的活动是什

么?P9) 沟通 在技术工作开始之前,和客户(及其他利益相关者)的沟通与协作是极其重要的。其目的是理解利益相关者的项目目标,并收集需求以定义软件特性和功能。

策划 如果有地图,任何复杂的旅程都可以变得简单。软件项目好比是一个复杂的旅程,策划活动就是创建一个“地图’,以指导团队的项目旅程,这个地图称为软件项目计划,它定义和描述了软件工程工作,包括需要执行的技术任务、可能的风险、资源需求、工作产品和工作进度计划。

建模 无论你是庭园设计家、桥梁建造者、航空工程师、木匠还是建筑师,你每天的工作都离不开模型。你会画一张草图来辅助理解整个项目大的构想—体系结构、不同的构件如何结合,以及其他一些特征。如果需要,可以把草图不断细化,以便更好地理解问题并找到解决方案。软件工程师也是如此,利用模型来更好地理解软件需求,并完成符合这些需求的软件设计。

构建 它包括编码(手写的或者自动生成的)和测试以发现编码中的错误。

部署 软件〔全部或者部分增量)交付到用户,用户对其进行评测并给出反馈意见。 4. List five umbrella activities?(列举5个保护伞活动P9)

软件项目跟踪和控制:项目组根据计划评估项目进度,并且采取必要的措施保证项目按 进度计划进行。

风险管理:对可能影响项目成果或者产品质量的风险进行评估。 软件质量保证:确定和执行软件质量保证的活动。

技术评审:评估软件工程产品,尽量在错误传播到下一个活动之前,发现并清除错误。 测量:定义和收集过程、项目和产品的度量,以帮助团队在发布软件的时候满足利益相

关者要求。同时,侧呈还可与其他框架活动和普适性活动配合使用。 软件配置管理:在整个软件过程中,管理变更所带来的影响。

【(软件配置管理(5CM)是在整个软件过程中应用的一种普适性活动。因为变更可能随时出现,SCM活动用于:(1)标识变更,2)控制变更。3)保证恰当地实施变更。4)向其他可能的相关人员报告变更)】

可复用管理:定义产品复用的标准(包括软件构件),并且建立构件复用机制.

工作产品的准备和生产:包括了生成产品(诸如建模、文档、日志、表格和列表等》所

必需的活动。 5. List five software myths?P13

神话:我们已经有了一本写满软件开发标准和规程的宝典。难道不能提供我们所需要了解的所有信息吗?

神话:如果我们未能按时完成计划,可以通过增加程序员人数而赶上进度。(即所谓的蒙 古游牲概念)。

神话:如果决定将软件外包给第三方公司,就可以放手不管,完全交给第三方公司开发。 神话:有了对项目目标的大概了解,便足以开始编写程序,可以在之后的项目开发过程中逐步充实细节。

神话:虽然软件需求不断变更,但是因为软件是弹性的,因此可以很容易地适应变更。 神话:当我们完成程序并将其交付使用之后,我们的任务就完成了 神话:直到程序开始运行,才能评估其质量。

神话:对于一个成功的软件项目,可执行程序是唯一可交付的工作成果。 神话:软件工程将导致我们产生大量无用文档,并因此降低工作效率。

(二) Chapter 2

6. Why does the waterfall model sometimes fail?(为什么瀑布模型有时失败了吗)P24 1.实际的项目很少遵守瀑布模型提出的顺序。虽然线性模型可以加入迭代,但是它是用间接的方式实现的,结果是,随着项目的推进,变更可能造成混乱。

2.客户通常难以清楚地描述所有的需求。而瀑布模型却需要客户明确需求,因此很难适应在许多项目开始阶段必然存在的不确定性.

3.客户必须要有耐心,因为只有在项目接近尾声的时候,他们才能得到可执行的程序。对于系统中存在的重大缺陷,如果在可执行程序评审之前没有被发现,将可能造成惨重损失。

(三) chapter 3

7. List the \e software Development\(列出“敏捷软件开发宣言”。)P39

我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为:

个体和交互 胜过 过程和工具

可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划

虽然右项也具有价值,

但我们认为左项具有更大的价值

8. List five agility principles.(列出5个敏捷原则)P42

1,我们最优先要做的是通过尽早、持续地交付有价值的软件来使客户满意。 2,即使在开发的后期,也欢迎需求变更。

4,在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。

7,可运行软件是进度的首要度量标准。

9,不断地关注优秀的技能和好的设计会增强敏捷能力。 9. What key traits must exist among the people on an effective software team?(什么是必须存

在一个有效的软件团队的人的关键特征)P43 基本能力。同在传统软件工程中一样,在敏捷开发中,“能力”一词包含了个人内在才能、特定的软件相关技能以及对所选过程的全局知识。关于过程的技能和知识可以而且应该教给敏捷团队的每一位成员。

共同目标。虽然敏捷团队成员能完成不同的任务,为项目提供不同的技能,但是所有人必须瞄准同一个目标,即在承诺的时间内向客户提交可运行的软件增量。为了实现这一目标,项目组还应当做出或大或小的连续的适应性变化,以使过程更适合于团队的需要。

精诚合作。抛开过程而言,软件工程就是在项目组沟通中评估、分析和使用信息;产生

能够帮助所有利益相关者了解项目组工作的信息,构建对客户具有业务价值的软件和相关数据库等信息。为了实现这些任务,项目组成员之间,项目组与所有其他利益相关者之间必须精诚合作。 决策能力。包括敏捷团队在内,任何一个好的软件项目组必须有能够掌握自身命运的自由。这意味着应当赋予项目组在技术和项目问题上的自主决策权。

模糊问题解决能力.软件项目经理应当认识到:敏捷项目组被迫不断面对不确定的事情,被迫不断和变更作斗争.有时,项目组不得不接受今天正在解决的问题明天根本不需解决这样的现实,然而,今后的项目将会从任何解决问题的活动(包括解决错误问题的活动)中学习到经验.

相互信任和尊重。敏捷团队必须成为DeMarco和Lister[DeM98 ]所说的具有凝聚力的团队(参见第24章),这样的团队展现出的相互信任和尊重使其形成“一个强有力的组织,确保整体的实力大于各部分实力之和”[DeM98]

自组织。自组织在敏捷开发中具有三重含义:1)敏捷团队组织自身以完成工作, 2)团队组织最能适应当前环境的过程,3)团队组织最好的进度安排以完成软件增量交付。自组织具有一些技术上的好处,但是更为重要的是它能促进合作,鼓舞士气。本质上,这也就是项目组的自我管理。KenSchwaf}erE5ch02]在他的著作中强调以下事倩:“团队确定他们预期能在迭代内完成多少工作,并承担这些工作。没有什么能比让别人来分派任务更让团队感到沮丧的,也没有什么能让自己负责以履行承诺更让团队倍感鼓舞的了。” 10. What does a self-organizing team imply?(什么是自组织团队的含义)

1)敏捷团队组织自身以完成工作, 2)团队组织最能适应当前环境的过程,3)团队组织最好的进度安排以完成软件增量交付。

11. write an XP user story that describes the \feature available on most web

browsers. 写一个XP用户故事,描写了“书签”大多数Web浏览器的特 作为一个上网用户,可以通过使用Web浏览器的书签功能,保存自己感兴趣的网页,以便用户以后可以再次浏览该网页。

作为一个上网用户,可以通过使用Web浏览器的书签功能,浏览书签,找到并打开自己感兴趣的网页,以便用户快速打开以前保存的感兴趣网页。

(四) chapter 4

12. What are the basic guidelines for conducting a collaborative requirements gathering

meeting?(有哪些基本原则进行协作需求收集会议?)P69 ·会议由软件工程师和其他的利益相关者共同举办和参与。 ·制定筹备和参与会议的规则。

·建议拟定一个会议议程,这个议程既要足够正式,使其涵盖所有的重点:但也不能太正式,以鼓励思想的自由交流。

·由一个“调解人”(可以是客户、开发人员或其他人)控制会议口

·采用“方案论证手段”(可以是工作表、活动挂图、不干胶贴纸或电子公告牌、聊夭室或虚拟论坛)。

13. which three types of requirement QFD(三个类型的需求质量部署功能)P71

质量功能部署(Quality Function Deployment, QFD }是一种将客户要求转化成软件技术需求的质量管理技术。QFD“目的是最大限度地让客户从软件工程过程中感到满意。为了达

到这个目标。QFD强调理解“什么是对客户有价值的”,然后在整个工程活动中部署这些价值.QFD确认了三类需求[Zu192]:

正常需求:这,些需求反映了在和客户开会时确定的针对某产品或系统的目标。如果实现了这些需求,将满足客户。这方面的例子如:所要求的图形显示类型、特定的系统功能以及已定义的性能级别。

令人兴奋的需求:这些需求反映了客户期望之外的特点,但是如果实现这些特点的话将会使客户非常满意.例如,新移动电话的软件来自标淮特性,但关联了一些超出期望的能力(例如多重触控技术的触摸屏,可视语音邮箱),这些能力让产品的用户很欣喜。

(五) chapter 5

14. list the three primary objectives the requirements mode model must achieve.(列出需求模

式模型必须实现三个主要目标)P85 需求模型必须实现三个主要目标:(1]描述客户需要什么,(2)为软件设计奠定基础。[3)定义在软件完成后可以被确认的一组需求。

15. List the six selection characteristics that should be uses as you consider each potential

class for inclusion in the analysis model(列出6个选择特征,应该使用你认为每个潜在的类包含在分析模型)P100 1.保留信息。只有记录潜在类的信息才能保证系统正常工作,在这种分析过程中的潜在类是有用的。

2.所需服务。潜在类必须具有一组可确认的操作,这组操作能用某种方式改变类的属性值。

3.多个属性。在需求分析过程中,焦点应在于“主”信息;事实上,只有一个属性的类可能在设计中有用,但是在分析活动阶段,最好把它作为另一个类的某个属性。 4.公共属性。可以为潜在类定义一组属性,这些属性适用于类的所有实例. 5.公共操作.可以为潜在类定义一组操作,这些操作适用干类的所有实例.

6.必要需求。在问题空间中出现的外部实体,和任何系统解决方案运行时所必需的生产或消费信息,几乎都被定义为需求模型中的类。

16. what guidelines can be applied for allocation responsibilities to classes(哪些准则可以申请

分配责任类)P104 1、 智能系统应分布在所有类中以求最佳地满足问题的需求。 2、 每个职责的说明应尽可能具有普遍性。 3、 信息和与之相关的行为应放在同一个类中。

4、 某个事物的信息应局限于一个类中而不要分布在多个类中。 5、 合适的时候,职责应由相关类共享。

(六) chapter 6

17. List five steps you should perform to create the behavioral model.(创建行为模型需要的5

个步骤)P117 1.评估所有的用例,以保证完全理解系统内的交互顺序。

2.识别驱动交互顺序的事件,并理解这些事件如何与特定的对象相互关联 3.为每个用例生成序列。