1.Define iterative incremental development. Give five examples of iterative incremental
processes used in software development.
迭代增量量模型是软件开发过程中、常⽤用的开发模型。
迭代是在实现软件的每⼀一功能时反复求精的过程,是提升软件质量量的过程,是从模糊到清晰的过程。在连续的
迭代中增加细节,必要时引⼊入变更更和改进。(是功能越来越好)
增量量是强调软件在发布不不同的版本时,每次都多发布⼀一点点,是软件功能数量量渐增地发布的过程。增量量版本保
持了了⽤用户的满意度,为尚在开发中的模块提供重要的反馈。(使产品越来越好)
例例⼦子:
1.螺旋模型
2.Rational 统⼀一过程(RUP)
3.模型驱动的体系结构(MDA)
4.敏敏捷开发过程
5.⾯面向⽅方⾯面的软件开发
2.What is COBIT? How does it differ from ISO9000 and ITIL? What are the four domains
COBIT groups IT-related efforts into?
COBIT(Control Objectives for Information and related Technology) 是⽬目前国际上通⽤用的信息系统审计的标
准,是⼀一个服从框架。
ISO 9000和ITIL都是过程标准,ISO 9000应⽤用于质量量管理理和过程以⽣生产优质产品,ITIL致⼒力力于解决⽅方案交付和
管理理的操作⽅方⾯面;COBIT则是⼀一个产品标准,它致⼒力力于解决⽅方案管理理的控制⽅方⾯面,侧重于⼀一个组织需要做什什么
⽽而⾮非如何去做。
COBIT将相关的IT⼯工作归为4个领域:
规划与组织(Plan and Organize)、获取与实现(Acquire and Implement)、交付与⽀支持(Deliver and
Support)、监控(Monitor and Evaluate)
3.What is UML? What must a process do in order to adopt UML? Where is UML deficient?
Name the three categories of models used in UML and describe what they do.
UML(Unified Modeling Language 统⼀一建模语⾔言)是⽤用来对软件密集系统进⾏行行可视化建模的⼀一种语⾔言。
采⽤用 UML 的过程必须⽀支持⼀一种⾯面向对象的⽅方法来进⾏行行软件⽣生产(⾯面向过程的对应的使⽤用数据流图)。
缺点:不不能表达⾮非功能性需求,⽤用例例图是描述⽤用户功能需求的⼯工具,对于可靠性、性能等⾮非功能性需求⽆无能为
⼒力力。
UML 的模型可分为3组:
状态模型:描述静态数据结构
⾏行行为模型:描述对象协作
状态改变模型:描述随着时间的推移,系统所允许的状态
4.Which CMM level of maturity is needed for the organization to be able to respond
successfully to a crisis situation? Explain.
成熟度等级2:可重复级(Repeatable)。在这⼀一级,有些基本的软件项⽬目的管理理⾏行行为、设计和管理理技术是基于
相似产品中的经验,故称为“可重复”。在这⼀一级采取了了⼀一定措施,这些措施是实现⼀一个完备过程所必不不可缺少
的第⼀一步。典型的措施包括仔细地跟踪费⽤用和进度。不不像在第⼀一级那样,在危机状态下⽅方⾏行行动,管理理⼈人员在问
题出现时便便可发现,并⽴立即采取修正⾏行行动,以防它们变成危机。关键的⼀一点是,如没有这些措施,要在问题变
得⽆无法收拾拾前发现它们是不不可能的。在⼀一个项⽬目中采取的措施也可⽤用来为未来的项⽬目拟定实现的期限和费⽤用计
划。
5.Based on your experiences with software products, how would you interpret the
observation that the essence of software engineering is determined by inherent software
complexity, conformity, changeability, and invisibility? How would you explain these four
factors? How is software engineering different from traditional engineering, such as civil or
mechanical engineering?
软件的开发不不仅仅存在⼀一种因素影响着软件的开发过程,软件开发过程是⼀一个⼗十分困难的过程,存在四个基本
性质。
复杂性:软件规模的函数以及组成软件产品的部件之间相互依赖的函数。
⼀一致性:应⽤用软件必须与其依赖的软硬件平台⼀一致,并且必须与其现有信息系统保持⼀一致以便便于集成。
可变性:软件产品所描述的业务过程和需求经常发⽣生变化,所以软件产品必须做出相应的改变以适应这些变化。
不不可⻅见性:⽣生成输出的程序语句句、⼆二进制代码以及周边系统软件通常不不可⻅见。
⾄至于软件⼯工程与传统⼯工程的区别,我认为最⼤大的不不同在于相较于实体化、具象化的传统⾏行行业,软件的开发更更加
抽象,难以对其总结开发经验,总是抱着解决问题的⼼心态去完成的。
6.Recall the definition of a stakeholder. Is a software vendor or a technical support person
a stakeholder? Explain.
利利益相关者的定义指对系统产⽣生影响或者被系统所影响的⼈人,是在软件项⽬目中存在利利害关系的⼈人
所以软件供应商应该会被系统本身质量量的优劣影响,质量量差卖的少,供应商会受到影响,收益降低,所以是利利
益相关者
技术⽀支持⼈人员回影响到系统本身,所以是利利益相关者
软件供应商或技术⽀支持⼈人员显然符合这⼀一定义,即主要的利利益相关者是⽤用户、系统所有者、分析员、设计员、
程序员等。
7.What does the acronym SWOT mean? Give a detailed overview of SWOT and how it
would be applied in an organization. Use a diagram to explain your answer.
SWOT 指优势、缺陷、机会、威胁(strength、weakness、opportunity、threat)。SWOT
⽅方法以调整组织的优势、劣势、机会和威胁的⽅方式来进⾏行行信息系统开发项⽬目的识别、分类、排序和选择。这是
⼀一个从确定组织使命开始的、⾃自顶向下的⽅方法。将与研究对象密切相关的各种主要内部优势、劣势和外部的机
会和威胁等,通过调查列列举出来,并依照矩阵形式排列列,然后⽤用系统分析的思想,把各种因素相互匹配起来加
以分析,从中得出⼀一系列列相应的结论,⽽而结论通常带有⼀一定的决策性。
8.What are the three management levels? Consider a banking application that monitors
the usage patterns of a credit card by its holder in order to block the card automatically
when the bank suspects a misuse (theft, fraud, etc.). Which management level is
addressed by such an application? Give reasons.
三个管理理层次是策略略级、战术级、操作级。
该应⽤用程序解决的问题所属类型为操作级问题。
操作级关注员⼯工⽇日常活动和⽣生产⽀支持。
9.Explain what a On-line Transaction Processing System is. What is a transaction in terms
of OLTP systems? Why are transactions necessary in databases?
OLTP systems(联机事务处理理系统)是指利利⽤用计算机⽹网络,将分布于不不同地理理位置的业务处理理计算机设备或⽹网络
与业务管理理中⼼心⽹网络连接,以便便于在任何⼀一个⽹网络节点上都可以进⾏行行统⼀一、实时的业务处理理活动或客户服务。
事务的提出主要是为了了解决并发情况下保持数据⼀一致性的问题。
⽐比⽅方说⼀一个客户给另外⼀一个客户打钱,⼀一个客户的账户余额增加⽽而另外⼀一个减少,如果在这过程中出错,则要
同时回滚两个的数据,保持了了数据的⼀一致性。
10.What is Process Hierarchy Modeling (PHM)? Is a Process Hierarchy Diagram part of
Business Process Modeling Notation (BPMN)? Explain what a process is. Using diagrams
explain the difference between composite and atomic processes.
过程层次建模是对由活动定义的有层次结构的业务过程建模。
BPMN 不不⽀支持过程的结构建模。
业务过程可能是⼿手⼯工操作的活动或者⾃自动化服务。⼀一个过程⾄至少有⼀一个输⼊入流和⼀一个输出流。过程获得控制,
主要通过将输⼊入流转变为输出流来完成相应的活动。
原⼦子过程(任务)不不包含任何⼦子过程。复合过程通过⼦子过程来描述它的⾏行行为。
以下是图:
11.Explain what Business Process Modeling Notation (BPMN) is. Are there any
alternatives to BPMN? Using diagrams describe the four basic categories of modeling
elements in BPMN.
BPMN 专⻔门⽤用于对由活动定义的业务过程建模,这些活动能够产⽣生对企业或其外部利利益相关者有价值的事物。
UML 活动图是 BPMN 的⼀一个替代者。
BPMN 的四种基本元素是流对象、连接对象、泳池和⼈人⼯工制品。
12.What are the three phases of solution envisioning? Describe each in detail.
解决⽅方案构想过程的三个阶段:
① 业务能⼒力力探索:确定业务能⼒力力,即IT解决⽅方案提交具体成果的能⼒力力;描述能⼒力力案例例,即解决⽅方案思路路,为每
个能⼒力力⽣生成⼀一个业务案例例。
② 解决⽅方案能⼒力力构想:⽬目的是将能⼒力力⽤用例例发展为解决⽅方案概念(将业务环境作为输⼊入,产⽣生的未来新⼯工作⽅方
法的构想作为输出),确保利利益相关者对其意⻅见保持⼀一致;解决⽅方案概念将业务环境作为输⼊入,产⽣生的未来新
⼯工作⽅方法的构想作为输出。解决⽅方案概念集中于最终的解决⽅方案体系结构,并在解决⽅方案构想研讨中得到发展。
③ 软件能⼒力力设计:取决于系统实现技术;开发软件能⼒力力体系结构、细化具有项⽬目规划和⻛风险分析的业务⽤用例例;
是软件建模的⼀一项活动,为构建解决⽅方案开发⾼高层模型并制定计划。建模计划包括功能(功能性需求)、质量量属
性(⾮非功能性需求)和能⼒力力体系结构,显示⾼高层软件构件之间的相互作⽤用。
13.What is Requirements Elicitation? What does it involve? What artifacts does it
produce? What is the difference between a functional and a non-functional requirement?
Give an example of a functional and a non-functional requirement.
需求引导就是业务分析员通过咨询发现系统的需求。
它涉及客户和问题领域专家,需要领域知识和⾜足够的经验。
最后得出客户所需要的系统确定的需求定义。
功能性需求需要从客户处获得,是系统期望的服务。例例如:系统的范围,必要的业务功能,所需的数据结构。
⾮非功能性需求本质上不不是⾏行行为的,⽽而是系统开发和实现过程中的约束。例例如:可⽤用性,可复⽤用性,可靠性,性
能,效率,适应性,其它约束。
14.Give four methods used in Requirements Elicitation. Describe each in detail.
需求引导的传统⽅方法包括⾯面谈、调查表、观察和研究业务⽂文档。
1.与客户和领域专家⾯面谈:⾯面谈是发现事实和聚集信息的基本技术。⼤大多数的⾯面谈过程都是与客户⼀一起进⾏行行的。
与客户⾯面谈⼤大多⽤用来导出⽤用例例需求。如果业务分析员没有⾜足够的领域知识的话,可以邀请领域专家⾯面谈。与领
域专家的⾯面谈经常是⼀一个知识转换的过程,即对业务分析员来说是⼀一个学习过程。⾯面谈有两种基本形式:结构
化的和⾮非结构化的。结构化⾯面谈需要提前准备,有⼀一个明确的⽇日程,并且许多问题都是预先确定的。⾮非结构化
⾯面谈更更像⾮非正式的会议,没有预定问题或预计的⽬目的。
2.调查表:调查表是向很多客户收集信息的有效⽅方法。它⼀一般⽤用来作为⾯面谈的补充形式,⽽而不不是要替代它。调
查表应该设计得使回答问题尽量量容易易,特别应该避免开放式问题,⼤大多数问题都应该是封闭式的。
3.观察:当客户不不能有效地表达信息,或者只有⼀一个完整的业务过程中的⽚片段知识时,观察可能是有效的发现
事实的技术。要使观察具有代表性,观察应该持续较⻓长的⼀一段时间,在不不同的时间段上和不不同的⼯工作负荷下挑
选时间进⾏行行。
4.⽂文档和软件系统的研究:⽂文档和软件系统的研究是发现⽤用例例需求和领域知识需求的宝贵技术。⽤用例例需求通过
研究已有的企业⽂文档和系统表格或报告来发现。要研究的组织⽂文档包括:业务表格、⼯工作过程、职位描述、业
务计划等,要研究的系统表格和报表包括:计算机屏幕和报表,领域知识需求通过研究领域刊物和参考⼿手册获
得。
15.Why is Requirements Negotiation and Validation needed?
客户的需求也许是重叠的(overlap)或者⽭矛盾的(conflict)。有些需求可能是模棱两可的(ambiguous)或
者不不现实的,其他⼀一些需求可能还没有发现。
由于这些原因,在形成需求⽂文档之前,需要对需求进⾏行行协商与确认。
16.Define requirement risk and priorities. Give five categories of risk and give an example
of each.
技术⻛风险,需求在技术上难以实现。
性能⻛风险,需求实现后,会延⻓长系统的响应时间。
安全⻛风险,需求实现后,会破坏系统的安全性。
数据库完整性⻛风险,需求不不容易易验证,并且可能导致数据不不⼀一致性。
开发过程⻛风险,需求要求开发⼈人员使⽤用不不熟悉的⾮非常规开发⽅方法,如形式化规格说明⽅方法。
政治⻛风险,由于内部政治原因,证实很难实现需求。
法律律⻛风险,需求可能触犯现⾏行行法规或者假定了了法律律的变更更。
易易变性⻛风险,需求很可能在开发过程中不不断变化或进化。
17.Why is Change Management needed? Give the name of a tool used in Change
Management.
需求是变更更的。在开发⽣生命周期的任何阶段,需求都有可能变更更,可能删除已有需求或者增加新的需求,变更更
本身并不不会导致困难,但没有管理理的变更更却会带来麻烦。
开发越往前⾛走,需求变更更的开销越⼤大。
变更更可能与⼈人为错误有关,但常常是由于内部策略略变化或者外部因素⽽而引起的。⽆无论什什么原因,需要强有⼒力力的
管理理政策来建⽴立变更更请求的⽂文档,估计变更更的影响,并实现变更更。在开发⽣生命周期的任何阶段,需求都可能更更
改,可能删除已有需求或者增加新的需求。开发越往前⾛走,需求变更更的开销越⼤大。
因为需求变更更开销很⼤大,每个变更更请求必须建⽴立⼀一个规范化的业务⽤用例例。
理理想的情况下,需求的变更更应该由软件配置管理理⼯工具(software configuration management tool)存储和跟
踪。
18.With the aid of a diagram describe the PCBMER (Presentation, Controller, Bean,
Mediator, Entity, and Resource) framework. Each layer should be described in detail.
PCBMER的层
①bean层表示那些预先确定要呈现在⽤用户界⾯面上的数据类和值对象
②表示层表示屏幕以及呈现bean对象的UI对象
③控制器器层表示应⽤用逻辑
④实体层响应控制器器和中介者
⑤中介者层建⽴立了了充当实体类和资源类媒介的通信管道
⑥资源层负责所有与外部持久数据资源的通信,建⽴立和维护与数据源的连接
19.Name and describe the seven main architectural principles.
PCBMER中最重要的体系结构原则:
1、向下依赖原则(DDP)。DDP规定主依赖结构是⾃自顶向下的。
2、向上通知原则(UNP)。UNP促进了了层与层之间⾃自底向上通信的低耦合。
3、相邻通信原则(NCP)。NCP要求每⼀一层只能与有直接依赖关系的相邻层通信。
4、显示关联原则(EAP)。EAP表明允许在类之间传递消息。
5、循环去除原则(CEP)。CEP要解决层与层之间的以及层中的类之间的循环依赖。
6、类命名原则(CNP)。CNP原则使得我们通过类名就能了了解该类属于哪个层/包。
7、相识包原则(APP)。APP 是 NCP 的推论。相识包由对象在⽅方法调⽤用参数中传递的接⼝口组成,⽽而不不是由
具体的对象组成。
20.Describe five approaches to discovering classes from requirements.
识别类的⽅方法:
1、名词短语⽅方法:建议分析员应该阅读需求⽂文档中的陈述,从中寻找名词短语。
2、公共类模式⽅方法:根据通⽤用的对象分类理理论来导出候选类。
3、⽤用例例驱动⽅方法:⽤用例例的图形模型,加上叙述性描述、⾏行行为和交互模型。
4、CRC⽅方法(类-职责-协作者):CRC⽅方法涉及头脑⻛风暴暴式的集体讨论,通过使⽤用⼀一种特殊制作的卡⽚片使其
简单易易⾏行行。
5、混合⽅方法:从中间出发,混合以上四种⽅方法。
21.Name and describe the four possible semantics for aggregation?
1.
ExclusiveOwns聚合
1)依赖性,删除⼀一个复合对象,即相关的构建对象都被删除
2)传递性,如果对象C1是B1的⼀一部分,并且B1是A1的⼀一部分,那么C1是A1的⼀一部分。
3)⾮非对称性,如果对象C1是B1的⼀一部分,则B1不不是C1的⼀一部分
4)固定性,如果对象C1是B1的⼀一部分,则它绝不不是Bi(i≠1)的⼀一部分
Owns聚合
1)依赖性
2)传递性
3)⾮非对称性
Has聚合
1)传递性
2.
3.
2)⾮非对称性
4. Member聚合
在Member聚合中,⼀一个构件对象可以同时属于⼀一个以上的复合对象,Member聚合的多重性可以是多
对多的。
22.Describe and contrast Aggregation and Composition.
聚合:表示两个对象之间是整体和部分的弱关系,部分的⽣生命周期可以超越整体。如电脑和⿏鼠标。将较弱形式
的聚合简单地称为聚合,并不不物理理地包含部分对象,具有“通过引⽤用”语义。
组合:表示两个对象之间是整体和部分的强关系,部分的⽣生命周期不不能超越整体,或者说不不能脱离整体⽽而存在。
组合关系的“部分”,是不不能在整体之间进⾏行行共享的。如⼈人和眼睛。将更更强形式的聚合成为组合,物理理地包含部
分对象,具有“通过值”语义
23.Describe and discuss generalization, including substitutability, polymorphism, abstract
classes, abstract operations.
继承是⼀一种动作,泛化是⼀一种状态。
⼀一个或多个类的公共特性可以抽象到⼀一个更更⼀一般化的类中,这称为泛化。
继承是⼀一种泛化,除继承外,泛化的两个⽬目的:
可替换性:⼦子类对象是超类变量量的⼀一个合法值。
多态性:同样的操作在不不同的类中可以有不不同的实现。
多态性在与继承联合使⽤用时效果最好。常常在超类中声明⼀一个多态操作,但却不不提供实现,即给定了了操作的型
构(操作名和形式参数列列表)。
抽象操作与抽象类不不同。抽象类是没有任何直接实例例对象的类,带有抽象操作的类就是抽象类。
24. Compare and contrast interfaces and classes.
接⼝口除了了常量量,没有属性、关联或状态。
接⼝口有操作,并且所有操作都隐含是公共的和抽象的。
接⼝口与类没有关联,但它们可以作为来⾃自于类的单项关联的⽬目标⽅方。
接⼝口不不等同于抽象类,有抽象操作的类就称为抽象类。
25.Can a class ever model an interface? Explain your answer.
可以,接⼝口也是特殊的类,类内部可以有作为“接⼝口”的⽅方法
26.What does transitivity mean in the context of aggregation?
传递性,若对所有的 a,b,c 属于 X,下述语句句保持有效,则集合 X 上的⼆二元关系 R 是传递的:「若a 关系
到 b 且 b 关系到 c, 则 a 关系到 c。」
聚合中的传递性指,如果对象A是B的⼀一部分,B是C的⼀一部分,那么A⼀一定是C的⼀一部分
27.What kinds or relationships are possible between use cases? Describe each.
关联:关联关系建⽴立参与者和⽤用例例之间的通信渠道
包含:允许将被包含⽤用例例中的公共⾏行行为分解出来
扩展:通过在特定的扩展点激活另⼀一个⽤用例例来扩展⼀一个⽤用例例的⾏行行为,从⽽而提供⼀一种可控的扩展形式
泛化:泛化关系允许⼀一个特殊化的⽤用例例改变基础⽤用例例的任何⽅方⾯面
28.Can use cases model concurrency?
⽤用例例不不可表示并发,但是活动图能表示并发
29.Will the state change always occur when the relevant transition to that state has been
fired? Explain your answer with an example.
不不⼀一定。可能指定了了⼊入⼝口动作,那么在状态变化发⽣生前,⼊入⼝口动作需要被满意地完成。
30.What is a UML Stereotype? Using the University Enrollment case study give an
example of a stereotype.
在 UML 模型中,构造型是⽤用来指出其他模型元素的⽤用途的模型元素。UML 提供了了⼀一组可以应⽤用于模型元素的
标准构造型。
可以使⽤用构造型来精化模型元素的含义。例例如,可以对⼯工件应⽤用 «library» 构造型以指示它是⼀一个特定类型的
⼯工件。可以对使⽤用关系应⽤用 «global»、«PK»、«include» 构造型,以准确指示⼀一个模型元素如何使⽤用另⼀一个模
型元素。还可以使⽤用构造型来描述含义或⽤用法不不同于另⼀一个模型元素的模型元素。
构造型可以具有称为标注定义的属性。将⼀一个构造型应⽤用于模型元素时,属性的值称为标注值。