题库解析
第一章 软件的本质
1
Which question no longer concerns the modern software engineer?
A) Why does computer hardware cost so much?
B) Why does software take a long time to finish?
C) Why does it cost so much to develop a piece of software?
D) Why can’t software errors be removed from products prior to delivery?
【答案】A
【解析】
A.根据摩尔定律,集成电路上可容纳的晶体管数目,每18-24
个月便会增加一倍。现在计算机硬件价格已经不再昂贵。
B.C.D.仍为现在软件工程面临的普遍问题。
2
Software is a product and can be manufactured using the same technologies used for other engineering artifacts.
A) True
B) False
【答案】B
【解析】
软件工程需求变化迅速,往往需要根据迅速变化的需求进行迭代升级,而其他许多产品的需求是相对稳定的,因此使用的开发技术也不尽相同。
3
Software deteriorates rather than wears out because
A) Software suffers from exposure to hostile environments
B) Defects are more likely to arise after software has been used often
C) Multiple change requests introduce errors in component interactions
D) Software spare parts become harder to order
【答案】C
【解析】
C项正确,需求的频繁变化导致软件版本的迅速更新,版本更新时往往会引入新的bug
,这些bug
只有充分获得用户反馈才能较好地修复。此外,随着迭代的不断进行,软件更新的成本也会不断上升。
A, B, D项显然错误。
4
WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.
A) True
B) False
【答案】B
【解析】
网络应用是软件工程实践的一个重要组成部分。
5
There are no real differences between creating WebApps and MobileApps.
A) True
B) False
【答案】B
【解析】
移动应用程序是为一个特定的平台开发的;网络应用并非原生于某一系统,不需要下载或安装。移动应用程序可以离线工作,而网络应用不能。
6
In its simplest form an external computing device may access cloud data services using a web browser.
A) True
B) False
【答案】A
7
Product line software development depends the reuse of existing software components to provide software engineering leverage.
A) True
B) False
【答案】A
【解析】正确,生产线软件开发依赖于重用现有的软件组件。
第二章 软件工程
1
Which of the items listed below is not one of the software engineering layers?
A) Process
B) Manufacturing
C) Methods
D) Tools
【答案】B
【解析】
软件工程的四个层次:
(1)高质量目标(a quality focus
)
(2)过程模型(process model
):一种高质量的路线图(road map
),保证及时、高质量的结果。
(3)方法:包括需求分析、设计、测试、构造等,即如何构造软件。
(4)工具:CASE(Computer-Aided Software Engineering)
2
Software engineering umbrella activities are only applied during the initial phases of software development projects.
A) True
B) False
【答案】B
【解析】
软件工程的支撑性活动贯穿软件开发全过程,包括以下内容:
- 项目管理(Project management
)
- 质量保证(Quality assurance
)
- 工作产品生产(Work product production
)
- 评估(Measurement
)
- 正式技术评审(Formal technical reviews
)
- 配置管理(Configuration management
)
- 可重用性管理(Reusability management
)
- 风险管理(Risk management
)
3
Which of these are the 5 generic software engineering framework activities?
A) communication, planning, modeling, construction, deployment
B) communication, risk management, measurement, production, reviewing
C) analysis, designing, programming, debugging, maintenance
D) analysis, planning, designing, programming, testing
【答案】A
【解析】
软件工程通用过程框架(Generic Process Framework
)
(1)交流(communication
):客户沟通、需求汇总。
(2)规划(planning
):建立工程计划,描述技术风险,列举资源需求,定义工作规划。
(3)建模(modeling
):建立模型,以帮助开发者和用户理解需求、软件设计。
(4)构造(construction
):代码生成、测试。
(5)部署(Deployment
):软件部署(如:制作安装包、安装程序,写指导文档,培训等;云时代需将软件部署至云上,部署更为复杂)
4
Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.
A) True
B) False
【答案】A
【解析】
提前规划软件的可重用性,确实可以减少开发成本,提供价值。
5
The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.
A) True
B) False
【答案】A
【解析】
说法合理。
6
In agile process models the only deliverable work product is the working program.
A) True
B) False
【答案】B
【解析】
错误,还包括文档、数据等。
7
A most software development projects are initiated to try to meet some business need.
A) True
B) False
【答案】A
【解析】
正确,大部分软件的目的是满足商业需求,为用户创造价值。
8
In general software only succeeds if its behavior is consistent with the objectives of its designers.
A) True
B) False
【答案】B
【解析】
软件的成功高度依赖于是否与用户需求一致。
第三章 软件过程结构(Software Process Structure
)
1
Which of the following are recognized process flow types?
A) Concurrent process flow
B) Iterative process flow
C) Linear process flow
D) Spiral process flow
E) both a and c
【答案】E
【解析】
recognized/prescriptive process flow
指惯例过程流,包括线性模型、V
模型、增量模型、演化式模型、迭代模型等。
2
The communication activity is best handled for small projects using six distinct actions (inception, elicitation, elaboration, negotiation, specification, validation).
A) True
B) False
【答案】B
【解析】遗漏了“需求管理”的环节。
3
A good software development team always uses the same task set for every project to insure high quality work products
A) True
B) False
【答案】B
【解析】错误,不同项目的task set
不尽相同。
4
Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.
A) True
B) False
【答案】A
【解析】对,可以不受已有的软件模式限制,以最好地满足项目需求。
5
Which of these are standards for assessing software processes?
A) SEI
B) SPICE
C) ISO 9000
D) ISO 9001
E) both b and d
【答案】E
【解析】在软件过程评估的标准中,正确的选项包括:
B) SPICE - 软件过程改进和能力确定(Software Process Improvement and Capability Determination),这是一个国际标准,用于评估和改进组织的软件过程能力。
D) ISO 9001 - 虽然ISO 9001是一个质量管理体系标准,它也可以应用于软件过程管理,确保组织满足顾客及其它相关方的需求,并持续改进。
E) 由于B和D都是正确的,所以E选项“b和d”也是正确的答案。
SEI(Software Engineering Institute)虽然在软件工程领域非常知名,尤其是通过其能力成熟度模型集成(CMMI),但SEI本身不是一个标准,而是一个研究和培训机构,因此A选项不直接作为评估标准。ISO 9000是一个系列的标准,它定义了质量管理体系的基础和术语,但具体到软件过程评估时,ISO 9001更常被直接引用,因此C选项不如D选项精确。
第四章 过程模型
- The waterfall model of software development is
A. A reasonable approach when requirements are well defined.
B. A good approach when a working program is required quickly.
C. The best approach to use for projects with large development teams.
D. An old fashioned model that is rarely used any more.
正确答案:A
【解析】瀑布模型各环节线性进行,在需求充分定义的前提下适合使用,A正确;瀑布模型到开发后期才能获得工作产品,B错误;C显然绝对;D错误,使用情况不少。
- The incremental model of software development is
A. A reasonable approach when requirements are well defined.
B. A good approach when a working core product is required quickly.
C. The best approach to use for projects with large development teams.
D. A revolutionary model that is not used for commercial products.
正确答案:B
【解析】
A说的是瀑布模型;B对,增量模型先获得基本产品,再在新的增量中添加拓展功能,适合核心产品比较急需的情形;C错;D错。
- Evolutionary software process models
A. Are iterative in nature.
B. Can easily accommodate product requirements changes.
C. Do not generally produce throwaway systems.
D. All of the above.
正确答案:D
【解析】都对。
- The prototyping model of software development is
A. A reasonable approach when requirements are well defined.
B. A useful approach when a customer cannot define requirements clearly.
C. The best approach to use for projects with large development teams.
D. A risky model that rarely produces a meaningful product.
正确答案:B
【解析】原型模型适合:顾客不能清晰说明需求的情况。
- The spiral model of software development
A. Ends with the delivery of the software product.
B. Is more chaotic than the incremental model.
C. Includes project risks evaluation during each iteration.
D. All of the above.
正确答案:C
【解析】A片面,还包含产品review
、下一轮规划等;B更混沌的说法不对;C对,每一轮都有风险分析环节。
- The concurrent development model is
A. Another name for concurrent engineering.
B. Defines events that trigger engineering activity state transitions.
C. Only used for development of parallel or distributed systems.
D. Used whenever a large number of change requests are anticipated.
E. Both a and b
正确答案:E
- The component-based development model is
A. Only appropriate for computer hardware design.
B. Not able to support the development of reusable components.
C. Dependent on object technologies for support.
D. Not cost effective by known quantifiable software metrics.
正确答案:C
- The formal methods model of software development makes use of mathematical methods to
A. Define the specification for computer-based systems.
B. Develop defect free computer-based systems.
C. Verify the correctness of computer-based systems.
D. All of the above.
正确答案:D
- Which of these is not one of the phase names defined by the Unified Process model for software development?
A. Inception phase
B. Elaboration phase
C. Construction phase
D. Validation phase
正确答案:D
【解析】统一过程模型包括下列阶段:inception, elaboration, construction, transition, production
.
- Which of these is not a characteristic of Personal Software Process?
A. Emphasizes personal measurement of work product.
B. Practitioner requires careful supervision by the project manager.
C. Individual practitioner is responsible for estimating and scheduling.
D. Practitioner is empowered to control quality of software work products.
正确答案:B
【解析】个人软件过程高度自主,无需项目管理者进行大量监督。
- Which of these are objectives of Team Software Process?
A. Accelerate software process improvement
B. Allow better time management by highly trained professionals
C. Build self-directed software teams
D. Show managers how to reduce costs and sustain quality
E. Both b and c
正确答案:E
【解析】不能加速improvement
,也不是为了在减少开销的同时保持质量,而是强调自我引导的团队建设、通过训练有素的专业人员实现更好的时间管理。
- Process technology tools allow software organizations to compress schedules by skipping unimportant activities.
A. True
B. False
正确答案:B
【解析】过程技术工具虽能帮助软件组织提高效率、自动化任务、促进协作和管理项目,但它们并不能通过简单地跳过不重要的活动来压缩时间表。每个活动在软件开发过程中都有其目的和意义,即使某些活动可能相对于其他活动显得不那么关键,直接跳过这些活动可能会导致需求理解不准确、设计缺陷、质量问题或项目目标偏离等后果。正确的做法是通过优化流程、提高工作效率及合理安排资源来缩短项目时间,而不是忽视任何必要的步骤。
- It is generally accepted that one cannot have weak software processes and create high quality end products.
A. True
B. False
正确答案:A
第五章 敏捷开发
- Agility is nothing more than the ability of a project team to respond rapidly to change.
A. True
B. False
正确答案:B
- Which of the following is not necessary to apply agility to a software process?
A. Eliminate the use of project planning and testing
B. Only essential work products are produced
C. Process allows team to streamline tasks
D. Uses incremental product delivery strategy
正确答案:A
- How do you create agile processes to manage unpredictability?
A. Requirements gathering must be conducted very carefully
B. Risk analysis must be conducted before planning takes place
C. Software increments must be delivered in short time periods
D. Software processes must adapt to changes incrementally
E. Both c and d
正确答案:E
【解析】为了应对不可预测性,要求软件增量能在短时间产出,以及软件过程应该能够增量地适应变化。
- In agile software processes the highest priorities is to satisfy the customer through early and continuous delivery of valuable software.
A. True
B. False
正确答案:A
- In agile development it is more important to build software that meets the customers' needs today than worry about features that might be needed in the future.
A. True
B. False
正确答案:A
- What are the four framework activities found in the Extreme Programming (XP) process model?
A. analysis, design, coding, testing
B. planning, analysis, design, coding
C. planning, analysis, coding, testing
D. planning, design, coding, testing
正确答案:D
【解析】极限编程过程模型包含:计划、设计、编程、测试四个阶段。
- All agile process models conform to a greater or lesser degree to the principles stated in the "Manifesto for Agile Software Development".
A. True
B. False
正确答案:A
- Which is not one of the key questions that is answered by each team member at each daily Scrum meeting?
A. What did you do since the last meeting?
B. What obstacles are you encountering?
C. None of the others.
D. What do you plan to accomplish be the next team meeting?
正确答案:C
【解析】题目有误,上述题目有误,把题干C改了,改后应该没问题。
- The Dynamic Systems Development Method (DSDM) suggests a philosophy that is based on the Pareto principle (80% of the application can be delivered in 20% of the time required to build the complete application).
A. True
B. False
正确答案:A
【解析】动态系统开发方法的一个原则:应用占比80%
的部分,都可以在总时间的20%
以内完成。
- Agile Modeling (AM) provides guidance to practitioner during which of these software tasks?
A. Analysis
B. Design
C. Coding
D. Testing
E. Both a and b
正确答案:E
- Agile Unified Process uses the classic UP phased activities (inception, elaboration, construction, transition) to help the team visualize the overall process flow.
A. True
B. False
正确答案:A
【解析】对,敏捷统一过程(Agile Unified Process)采用了经典的统一过程(UP)阶段活动(初始、细化、构建、转移),来帮助团队直观地了解整个过程的流程。
第六章 软件工程——人的因素
- Human aspects of software engineering are not relevant in today's agile process models.
A. True
B. False
正确答案:B
- Which of the following is not an important trait of an effective software engineer?
A. Attentive to detail
B. Brutally honest
C. Follows process rule dogmatically
D. Resilient under pressure
正确答案:C
- Group communication and collaboration are as important as the technical skills of an individual team member to the success of a team.
A. True
B. False
正确答案:A
- Teams with diversity in the individual team member skill sets tend to be more effective than teams without this diversity.
A. True
B. False
正确答案:A
- Which of the following can contribute to team toxicity?
A. Frenzied work atmosphere
B. Inadequate budget
C. Poorly coordinated software process
D. Unclear definition of team roles
E. a, b, d
正确答案:E
【解析】记忆一下,软件过程引导不充分的选项不该选。
- Software engineering team structure is independent of problem complexity and size of the expected software products.
A. True
B. False
正确答案:B
- Agile teams are allowed to self-organize and make their own technical decisions.
A. True
B. False
正确答案:A
- In XP a metaphor is used as a device to facilitate communications among customers, team members, and managers?
A. True
B. False
正确答案:A
- Using an established social media platform negates the need to be concerned about privacy or security.
A. True
B. False
正确答案:B
- Use of cloud services can speed up information sharing among software team members?
A. True
B. False
正确答案:A
- In collaborative development environments, metrics are used to reward and punish team members.
A. True
B. False
正确答案:B
【解析】错误。理由:在协同开发环境中,度量指标(metrics)的主要目的是为了提升团队协作效率、识别潜在问题、跟踪进度和提高软件质量,而不是用来奖励或惩罚团队成员。使用度量来惩罚可能会导致团队士气受损,产生恐惧文化,从而影响团队合作和创新。相反,度量应该用来激励团队成员共同朝着目标努力,识别优秀实践和改进领域,并促进持续的学习和成长。健康的团队环境应当鼓励透明度和基于数据的决策,同时保持一个支持性和正面的文化氛围。
- Which of these factors complicate decision-making by global software teams
A. Complexity of problem
B. Different views of the problem
C. Law of unintended consequences
D. Risk associated with decision
E. All of the above.
正确答案:E
第七章 软件工程实践原则
- Software engineering principles have about a three year half-life.
A. True
B. False
正确答案:B
【解析】
软件工程原则(Software engineering principles)通常是长期有效的基础知识和最佳实践,它们构成了软件开发的基石,比如模块化、抽象、信息隐藏、松耦合、高内聚等。这些原则旨在提高软件的质量、可维护性、可扩展性和可重用性,它们不像技术栈或编程语言那样快速迭代更新。
所谓“三年半衰期”的说法暗示软件工程原则每隔三年就会失去一半的价值或有效性,这不符合实际情况。尽管软件行业和技术的确在不断进步,新的工具、框架和方法论层出不穷,但底层的基本原则相对稳定,很多原则自提出以来一直是良好软件开发的核心。
因此,更准确的说法应该是:软件工程的具体实践和技术实现可能会随着时间和技术发展而变化,但核心原则具有较长的生命力和稳定性。
- Which of the following is not one of core principles of software engineering practice?
A. All design should be as simple as possible, but no simpler.
B. A software system exists only to provide value to its users.
C. Pareto principle (20% of any product requires 80% of the effort).
D. Remember that you produce others will consume
正确答案:C
【解析】帕累托原则(任何产品的20%需要80%的努力)。帕累托原则是一种经验法则,描述了一种不平衡现象,但它本身并不是软件工程实践的核心原则。
- Every communication activity should have a facilitator to make sure that the customer is not allowed to dominate the proceedings.
A. True
B. False
正确答案:B
- The agile view of iterative customer communication and collaboration is applicable to all software engineering practice.
A. True
B. False
正确答案:A
- One reason to involve everyone on the software team in the planning activity is to
A. adjust the granularity of the plan
B. control feature creep
C. get all team members to "sign up" to the plan
D. understand the problem scope
正确答案:C
【解析】软件团队每个人都要参与计划过程,对计划进行签字画押,形成共识。
- Project plans should not be changed once they are adopted by a team.
A. True
B. False
正确答案:B
- Requirements models depict software in which three domains?
A. architecture, interface, component
B. cost, risk, schedule
C. information, function, behavior
D. None of the above
正确答案:C
【解析】需求模型:在信息、功能、行为三方面,对信息进行描述。
- The design model should be traceable to the requirements model.
A. True
B. False
正确答案:A
- Teams using agile software practices do not generally create models.
A. True
B. False
正确答案:B
- Which of the following is not one of the principles of good coding?
A. Create unit tests before you begin coding
B. None of the others.
C. Refractor the code after you complete the first coding pass
D. Write self-documenting code, not program documentation
正确答案:B
【解析】说是选C,怀疑有问题,把B改了。
- A successful test I ones that discovers at least one as-yet undiscovered error.
A. True
B. False
正确答案:A
【解析】题干不清楚。
- Which of the following are valid reasons for collecting customer feedback concerning delivered software?
A. Allows developers to make changes to the delivered increment
B. Delivery schedule can be revised to reflect changes
C. Developers can identify changes to incorporate into next increment
D. All of the above
正确答案:D
- Larger programming teams are always more productive than smaller teams.
A. True
B. False
正确答案:B