当前位置:文档之家› 电子科大软件工程作业汇总(附答案)

电子科大软件工程作业汇总(附答案)

电子科大软件工程作业汇总(附答案)
电子科大软件工程作业汇总(附答案)

一、第1章软件工程概述

1. 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(软件的备用部分不易组织)

2. Today the increased power of the personal computer has brought about an abandonment of the practice of team development of software.(如今个人电脑性能的提升导致遗弃了采用小组开发软件的方式。)

A:True(真)

B:False (假)

3. 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 cann't software errors be removed from products prior to delivery? (软件错误为什么不能在产品发布之前被找出?)

4. In general software only succeeds if its behavior is consistent with the objectives of its designers.(通常意义上,只有表现得和设计目标一致的软件才是成功的软件。)A:True(真)

B:False (假)

5. Change cannot be easily accommodated in most software systems, unless the system was designed with change in mind.(需求变化不适应于大多数的软件系统,除非软件在设计之初便考虑了变化因素。)

A:True(真)

B:False (假)

6. The functionality of most computer systems does not need to be enhanced the lifetime of the system.(大多数的软件系统的功能在它们的生命周期内不需要被增强。)A:True(真)

B:False (假)

7. Most software continues to be custom built because(大多数软件产品是定制的原因是)

A:Component reuse is common in the software world.(软件领域中组件复用很普遍)

B:Reusable components are too expensive to use.(组件重用的代价太高)

C:Software is easier to build without using someone else's components.(软件很容易被开发因而不需要使用其他的已有的组件)

D:Off-the-shelf software components are unavailable in many application domains. (在很多的软件应用领域中没有现成可用的软件组件)

8. Most software development projects are initiated to try to meet some business need.(大多数的软件开发项目最初都是为了满足一些商业要求.)

A:True(真)

B:False (假)

9. Software is a product and can be manufactured using the same technologies used for other engineering artifacts.(软件是一个可以通过采用其他工程领域中的相同技术来构建的产品。)

A:True(真)

B:False(假)

10. The nature of software applications can be characterized by their information(软件应用的本质可以被特色化,通过他们信息的)

A:complexity(复杂度)

B:content(内容)

C:determinacy(确定性)

D:both b and c (b、c都是)

11. Modern software applications are so complex that it is hard to develop mutually exclusive category names.(当今软件应用非常复杂,以至于很难提出类别互斥的名字。)

A:True(真)

B:False (假)

12. The so called "new economy" that gripped commerce and finance during the 1990s died and no longer influences decisions made by businesses and software engineers.(90年代所谓的专注了商业和金融的“新经济”消亡了,并且不再影响商业和软件工程师们做出决策。)

A:True(真)

B:False (假)

1. What is Software?

2. What is Software Engineering?

3. What are the characteristics of software ?

4. What are major causes of software crisis?

5. Why professional and ethical responsibilities are considered important?

二、第2章软件工程过程模型

1. 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 (以上所有)

2. 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 (以上所有)

3. The rapid application development model is(快速开发模型是)

A:Another name for component-based development. (组件开发模型的别名。)B: A useful approach when a customer cannot define requirements clearly.(当客户

无法清晰定义需求时的有效开发手段。)

C: A high speed adaptation of the linear sequential model.(线性顺序模型的高速适

应方式。)

D:All of the above.(以上所有。)

4. 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 (以上都是)

5. The linear sequential 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 cannot be used in a modern context.(一个过时的开

发模式,已无法在当今的环境中使用。)

6. 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(确认阶段)

7. 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.(一个很少产生有意义

产品的风险模型。)

8. 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.(一个不被用于

商业产品的演化模型。)

9. The concurrent development model is(并发模型)

A:Another name for the rapid application development model. (是快速开发模型的别名。)

B:Often used for the development of client/server applications. (通常被用于开发客户端/服务器程序。)

C:Only used for development of parallel or distributed systems. (只能被用于开发并行或分布式系统。)

D:Used whenever a large number of change requests are anticipated. (被用于开发可能产生大量需求变动的项目。)

10. In the Unified Process model requirements are determined iteratively and may span more than one phase of the process.(在统一过程模型中,需求在迭代中被确定并且可能跨越不止一个过程阶段。)

A:True(真)

B:False(假)

11. The component-based development model is(基于组件的开发模型)

A:Only appropriate for computer hardware design.(只适用于计算机硬件设计)B:Not able to support the development of reusable components. (无法支持可复用组件的开发)

C:Works best when object technologies are available for support. (有面向对象技术支持时效果最好)

D:Not cost effective by known quantifiable software metrics.(不符合已知的可量化的软件度量的成本效益)

1. Explain why a software system used in a real-world environment must change or become progressive less useful?

2. Provide examples of software projects that would be amenable to the waterfall, prototyping, incremental models.

3. Describe the 5 levels of CMM.

4. Describe the advantages and disadvantages of waterfall model.

5. What are the differences between the 3 incremental models mentioned in this chapter?

三、第3章软件需求分析

1. Use-case actors are always people, never system devices.(用例图中的参与者必须是人,而不能是其他的系统设备。)

A:True(真)

B:False (假)

2. Which of following is not a UML diagram used creating a system analysis model?(以下的UML图中,那一项不能被用来创建系统的分析模型?)

A:activity diagram(活动图)

B:class diagram(类图)

C:dataflow diagram(数据流图)

D:state diagram (状态图)

3. In win-win negotiation, the customer\'s needs are met even though the developer\'s need may not be.(在一个双赢的谈判中,即使开发者的需求不被满足,客户的需求仍应当被满足。)

A:True(真)

B:False (假)

4. The nature of collaboration is such that all system requirements are defined by consensus of a committee of customers and developers.(合作的本质就在于客户和开发者组成一个讨论组,从而定义出一致的系统需求)

A:True(真)

B:False (假)

5. Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.(分析模式通过提出针对一般性问题的可靠解决方案,有助于将分析模型转换为设计模型。)

A:True(真)

B:False (假)

6. It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.(不同的用户可能提出有冲突的需求,每个人都认为他们自己的版本是最正确的,这是一个较为正常的现象。)

A:True(真)

B:False (假)

7. In collaborative requirements gathering, the facilitator(在协作需求收集的过程中,协调者) A:cannot be a member of the software team(不能是软件小组的成员)

B:cannot be a customer(不能是客户)

C:controls and facilitates the process(控制并协调过程进度)

D:must be an outsider (必须是一个外部人员)

8. Which of the following is not one of the context-free questions that would be used during project inception?(下面哪一个选项不是上下文无关、可被用于项目初始阶段的问题?)

A:What will be the economic benefit from a good solution?(好的解决方案会带来什么经济利益?)

B:Who is against this project?(谁会反对这个项目?)

C:Who will pay for the work?(谁将为这些工作支付酬劳?)

D:Who will use the solution?(谁将使用这个解决方案?)

9. A stakeholder is anyone who will purchase the completed software system under development.(利益相关者将购买开发完成后的完整软件系统。)

A:True(真)

B:False (假)

10. The best way to conduct a requirements validation review is to(进行需求验证检查的最好方式是)

A:examine the system model for errors(检查系统模型中的错误)

B:have the customer look over the requirements(客户检查需求说明)

C:send them to the design team and see if they have any concerns(让客户去设计小组确认是否与他们的设想有出入)

D:use a checklist of questions to examine each requirement (用一个检查清单列表去检验每项需求)

11. Requirements engineering is a generic process that does not vary from one software project to another.(需求工程是一个一般性的过程,不会因项目的变化而变化。)

A:True(真)

B:False (假)

12. The result of the requirements engineering elaboration task is an analysis model that defines which of the following problem domain(s)?(需求工程中细化任务的结果是一个定义了以下哪项域的分析模型?)

A:information(信息)

B:functional(功能)

C:behavioral(行为)

D:all of the above (以上所有)

13. The work products produced during requirement elicitation will vary depending on the(需求导出产生的产品将依赖于)

A:size of the budget(预算规模)

B:size of the product being built(产品的规模)

C:software process being used(软件的开发过程模型)

D:stakeholders needs (利益相关者的需求)

14. In requirements validation the requirements model is reviewed to ensure its technical feasibility.(在需求验证中,需求模型将被检查以确保技术可行性。)

A:True(真)

B:False(假)

15. The use of traceability tables helps to(可追溯性表的作用是)

A:debug programs following the detection of run-time errors(在编译程序后发现运行时错误)

B:determine the performance of algorithm implementations(判定算法实现的性能)

C:identify, control, and track requirements changes(识别,控制和追踪需求变化)

D:none of the above (以上都不是)

16. Which of the following is not one of the requirement classifications used in Quality Function Deployment (QFD)?(以下哪一项不是质量功能展开中的需求分类?)

A:exciting(兴奋需求)

B:expected(期望需求)

C:mandatory(强制需求)

D:normal (常规需求)

17. Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.(开发人员和客户采用创建用例图的方式,帮助软件小组理解不同类型的最终用户将如何使用系统功能。)

A:True(真)

B:False (假)

18. The job of the requirements engineer is to categorize all stakeholder information in a way that allows decision makers to choose an internally consistent set of requirements.(需求工程师的工作是划分利益关系者的要求,使得决策者可以选择出一致认可的需求。)

A:True(真)

B:False (假)

19. The system specification describes the(系统规格说明书描述了)

A:Function, performance and constraints of a computer-based system(系统的功能,性能以及约束条件)

B:implementation of each allocated system(每个分配系统的实现)

C:element software architecture(软件元素的架构)

D:time required for system simulation (系统模拟的时间要求)

1. Describe the weaknesses of use-cases as part of the requirements engineering process.

2. What are the major steps for requirements engineering?

3. Give some examples of functional and non-functional requirements.

4. What are the differences between product and process Requirements?

5. Please list some main requirements sources.

四、第4章软件设计工程

1. When using structured design methodologies the process of stepwise refinement is unnecessary. (当使用结构化设计方法时,逐步精炼的过程则显得无关紧要。)

A:True(真)

B:False (假)

2. Software design is an iterative generic process that may be applied without modification to any software project.(软件设计是一般性的迭代过程,并可以不做修改地应用到任何软件项目)

A:True(真)

B:False (假)

3. Design patterns are not applicable to the design of object-oriented software?(设计模式不适用于面向对象的软件。)

A:True(真)

B:False(假)

4. Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.((重构软件设计,使得软件变得更加容易整合、测试和维护。))

A:True(真)

B:False (假)

5. Which design model is analogous to the detailed drawings of the access points and external utilities for a house?(下面哪个设计模型可以类比成房子外部和入口的细节设计?)

A:Architectural design(架构设计)

B:Component-level design(组件级设计)

C:Data design(数据设计)

D:Interface design(接口设计)

6. Inheritance provides a mechanism by which changes to lower level classes can be propagated to all super classes quickly.(继承提供了低层次类的修改可以迅速被传递给所有高层类的机制。)

A:True(真)

B:False (假)

7. Which of the following models can be used to represent the architectural design of a piece of software.(以下的模型中,哪个可以用来表示软件的架构设计?)

A:Dynamic models(动态模型)

B:Functional models(功能模型)

C:Structural models(结构化模型)

D:All of the above (以上所有)

8. Which design model is analogous to a set of detailed drawings for each room in a house?(哪个设计模型可以被类比成房子中每个房间的细节设计)

A:Architectural design(架构设计)

B:Component-level design(组件级设计)

C:Data design(数据设计)

D:Interface design (接口设计)

9. Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program. (信息隐藏通过隐藏程序中的无关部分的数据和过程,使得程序更容易维护。)

A:True(真)

B:False (假)

10. Which of the following is not a characteristic common to all design methods?(以下哪一项不是所有设计方法的共同特性?)

A:configuration management(配置管理)

B:functional component(功能性组件

C:notation quality assessment(质量评估

D:guidelines refinement heuristics (精炼)

11. Since modularity is an important design goal it is not possible to have too many modules in

a proposed design.(由于模块化是重要的设计目标,在设计中出现太多的模块是不现实的。)

A:True(真)

B:False (假)

12. Which design is analogous to the floor plan of a house?(哪一种设计可以被类比成房子的地板设计?)

A:Architectural design(架构设计)

B:Component-level design(组件级设计)

C:Data design(数据设计)

D:Interface design (接口设计)

13. Design patterns are best thought of as coding patterns.(设计模式是最好的编码模式。) A:True(真)

B:False (假)

14. Polymorphism reduces the effort required to extend an object system by(多态能降低扩展面向对象系统所需的工作量,是通过)

A:coupling objects together more tightly.(将对象耦合地更加紧密。)

B:enabling a number of different operations to share the same name.(不同的操作共享相同的名称。)

C:making objects more dependent on one another.(使对象更依赖另一个对象。)

D:removing the barriers imposed by encapsulation (消除封装带来的障碍。)

15. Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.(信息隐藏通过隐藏程序中的无关部分的数据和过程,使得程序更容易维护。)

A:True(真)

B:False (假)

16. Frameworks and design patterns are the same thing as far as designers are concerned.(框架和设计模式在设计者眼中是相同的。)

A:True(真)

B:False (假)

17. Which of the following is not one of the five design class types(以下哪个不是五种设计类的种类)

A:Business domain classes(商业领域类)

B:Entity classes(实例类)

C:Process classes(过程类)

D:User interface classes (用户接口类)

18. The deployment design elements specify the build order for the software components.(部署设计元素指明了了软件组件的建立顺序。)

A:True(真)

B:False (假)

19. One of the key problems in software reuse is the inability to find existing reusable design patterns when hundreds of candidates exist.(软件复用的重要问题在于很难在成百上千的已有的设计模式中进行取舍。)

A:True(真)

B:False (假)

20. The importance of software design can be summarized in a single word(软件设计的重要性可以被概括成)

A:accuracy(精确)

B:complexity(复杂)

C:efficiency(高效开发

D:quality (对品质的追求)

21. Cohesion is a qualitative indication of the degree to which a module(内聚可以用于表示模块)

A:can be written more compactly.(可以被编写地更加紧密的程度。)

B:focuses on just one thing.(只专注一项功能的程度。)

C:is able to complete its function in a timely manner.(可以及时地完成它功能的程度。) D:is connected to other modules and the outside world. (与其他模块和外部组件联系的程度。)

22. Which design model elements are used to depict a model of information represented from the user's view?(以下哪种模型元素被用来描绘从用户角度观察到的信息?)

A:Architectural design elements(架构设计元素)

B:Component-level design elements(组件级设计元素)

C:Data design elements(数据设计元素)

D:Interface design elements(接口设计元素)

23. Coupling is a qualitative indication of the degree to which a module(耦合可以用于表示模块)

A:can be written more compactly.(可以被编写地更加紧密的程度。)

B:focuses on just one thing.(只专注一项功能的程度。)

C:is able to complete its function in a timely manner.(可以及时地完成它功能的程度。) D:is connected to other modules and the outside world. (与其他模块和外部组件联系的程度。)

1. What does the design engineering include?

2. What are the elements that make up a software architectural style?

3. Explain how effective modular design is achieved through functional independence of the individual modules?

4. What is the goal of data design?

5. Describe the principle of information hiding as it applies to software design.

六、第6章编码规范

1. Software quality and functionality must be measured indirectly.(软件质量和功能必须间

接地测量。)

A:True(真)

B:False(假)

2. Small software organizations are not likely to see any economic return from establishing software metrics program.(小型软件组织不太倾向于从确立软件度量计划中获得回报。) A:True(真)

B:False(假)

3. Which of the following software quality factors is most likely to be affected by radical changes to computing architectures?(以下哪项软件质量因素更容易被计算架构的根本性变动所影响?)

A:operation(操作性)

B:transition(转换型)

C:revision(修正性)

D:none of the above(以上都不是)

4. Which of following are advantages of using LOC (lines of code) as a size-oriented metric?(以下哪一项是采用代码行数(LOC)进行软件规模度量的优点?)

A:LOC is easily computed.(易于计算。)

B:LOC is a language dependent measure.(依赖于具体的语言。)

C:LOC is a language independent measure.(不依赖于具体的语言。)

D:LOC can be computed before a design is completed. (在设计完成前就可以进行计算)5. Process indicators enable a software project manager to(过程指示器能使软件项目管理

者)

A:assess the status of an on-going project(获取正在进行项目的状态)

B:track potential risks(追踪潜在的风险)

C:adjust work flow or tasks(调整工作流或任务)

D:all of the above(以上都是)

6. The terms measure, measurement, and metric all share the same definition according to the IEEE Standard Glossary of Software Engineering Terms.(术语measure, measurement, metric共享了IEEE软件工程术语标准词库中的相同定义。)

A:True(真)

B:False(假)

7. Which of the following provide useful measures of software quality?(以下哪一项提供了软件质量的有效度量?)

A:correctness, business relevance, integrity, usability(正确性,商业相关度,完整性,可用性)

B:reliability, maintainability, integrity, sales(可靠性,可维护性,完整性,销售额)

C:correctness, maintainability, size, satisfaction(正确性,可维护性,规模,满意度)

D:correctness, maintainability, integrity, usability(正确性,可维护性,完整性,可用性)8. The software metrics chosen by an organization are driven by the business or technical goals an organization wishes to accomplish.(组织选择的软件度量方式由商业目标或组织期望完成的技术目标驱动。)

A:True(真)

B:False(假)

9. Why is it important to measure the process of software engineering and software it produces?(为什么说度量软件工程过程和产出产品非常重要?)

A:It is really not necessary unless the project is extremely complex.(其实不必要,除非项目非常复杂。)

B:To determine costs and allow a profit margin to be set.(为了决定开销和盈利线。)

C:To determine whether a software group is improving or not.(为了决定软件团队是否有改进。)

D:To make software engineering more like other engineering processes.(为了使软件工程更符合软件工程过程。)

10. Which of the following items are not measured by software project metrics?(以下哪项内容不被软件项目度量?)

A:inputs(输入)

B:markets(市场)

C:outputs(输出)

D:results(结果)

11. There is no need to reconcile LOC and FP measures since each is meaningful in its own right as a project measure.(代码行数和功能点度量方式没必要同时使用,因为它们都针对特定的项目度量。)

A:True(真)

B:False(假)

1. What are the goals for using object-oriented software metrics?

2. What are four useful indicators of software quality that should have measures defined and monitored by the software project team?

3. Why is it important for software developers to make use of measurement to guide their work?

4. How do software process metrics differ from software project metrics?

5. Explain how size-oriented metrics differ from function-oriented metrics. Discuss the pros and cons of each.

七、第7章测试技术

1. Comparison testing is typically done to test two competing products as part of customer market analysis prior to product release. (对比测试,作为早于产品发布之前的客户市场分析的一部分,最常被用于测试两个竞争产品。)

A:True(真)

B:False(假)

2. Random order tests are conducted to exercise different class instance life histories.(随机顺序测试用于引导测试不同类的实例的生命轨迹。)

A:True(真)

B:False (假)

3. Deep structure testing is not designed to(深层结构测试不被用于)

A:examine object behaviors (检测对象的行为)

B:exercise communication mechanisms (测试通信机制)

C:exercise object dependencies (测试对象间的依赖关系)

D:exercise structure observable by the user (测试可被用户观察到的结构)

4. Scenario-based testing(基于场景的测试)

A:concentrates on actor and software interaction (专注于角色与软件之间的交互)

B:misses errors in specifications (忽略需求中的错误)

C:misses errors in subsystem interactions (忽略与子系统交互中的错误)

D:both a and b (a和b)

5. The testing technique that requires devising test cases to exercise the internal logic of a software module is called(通过设计测试用例对软件模块的内部逻辑进行测试的测试技巧被称为)

A:behavioral testing(行为测试)

B:black-box testing(黑盒测试)

C:grey-box testing(灰盒测试)

D:white-box testing (白盒测试)

6. Graph-based testing methods can only be used for object-oriented systems基于图的测试方法只能被用于面向对象的系统)

A:True(真)

B:False (假)

7. Use-cases can provide useful input into the design of black-box and state-based tests of OO software.(用例图能够提供,针对面向对象软件的黑盒以及基于状态的测试设计,的有用输入。)

A:True(真)

B:False(假)

8. Multiple class testing is too complex to be tested using random test cases.(使用随机测试用例对多个类进行测试显得过于复杂。)

A:True(真)

B:False (假)

9. The testing technique that requires devising test cases to demonstrate that each program function is operational is called(通过设计测试用例展示每个软件功能是是否可操作的测试技巧被称为)

A:black-box testing (黑盒测试)

B:glass-box testing (玻璃盒测试)

C:grey-box testing (灰盒测试)

D:white-box testing (白盒测试)

10. Fault-based testing is best reserved for(基于错误的测试最好被用于)

A:conventional software testing (一般的软件测试)

B:operations and classes that are critical or suspect (操作和类是关键或可疑的情形)

C:use-case validation (用例确认阶段)

D:white-box testing of operator algorithms(运算符算法的白盒测试)

11. Client/server architectures cannot be properly tested because network load is highly variable.(C/S架构无法被有效地测试,因为网络负载变化莫测。)

A:True(真)

B:False (假)

12. With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.(在产品发布之前,通过彻底的测试有可能移除程序中所有的错误。)

A:True(真)

B:False (假)

13. Testing OO class operations is made more difficult by(使针对面向对象操作的测试变得更困难的原因是)

A:encapsulation (封装)

B:inheritance (继承)

C:polymorphism (多态)

D:both b and c (b和c)

14. Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.(正交阵列测试使测试设计者可以尽可能大地使测试用例覆盖相对较小的输入域。)

A:True(真)

B:False (假)

15. Loop testing is a control structure testing technique where the criteria used to design test cases is that they(循环测试作为一种针对控制结构的测试技巧,在设计测试用例时需要遵循的标准是)

A:rely basis path testing (依赖于基本路径测试)

B:exercise the logical conditions in a program module (测试程序模块的逻辑条件)

C:select test paths based on the locations and uses of variables (基于变量的位置和使用情况选择测试路径)

D:focus on testing the validity of loop constructs (专注于测试循环结构的有效性)

16. Condition testing is a control structure testing technique where the criteria used to design test cases is that they(条件测试作为一种针对控制结构的测试技巧,在设计测试用例时需要遵循的标准是)

A:rely on basis path testing (依赖于基本路径测试)

B:exercise the logical conditions in a program module (测试程序模块的逻辑条件)

C:select test paths based on the locations and uses of variables (基于变量的位置和使用情况选择测试路径)

D:focus on testing the validity of loop constructs (专注于测试循环结构的有效性)

17. Encapsulation of attributes and operations inside objects makes it easy to obtain object state information during testing.(将属性和方法封装在对象中,使得测试中获得对象状态信息变得很容易。)

A:True(真)

B:False (假)

18. Test case design "in the small" for OO software is driven by the algorithmic detail of the individual operations.(面向对象软件中的测试用例设计“尽可能小”的原则,是由独立操作的算法细节驱动的)

A:True(真)

B:False (假)

19. The cyclomatic complexity metric provides the designer with information regarding the number of(圈复杂度度量为设计者提供了针对关于什么数量的信息?)

A:cycles in the program (程序的周期)

B:errors in the program (程序的错误)

C:independent logic paths in the program (程序中独立逻辑路径)

D:statements in the program (程序中声明)

20. Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.(等效性测试将输入域划分成几类数据,这些数据可以减少总的必须实现的测试用例数量。)

A:True(真)

B:False (假)

21. Which of the following are characteristics of testable software?(以下哪些是可被测软件的特性?)

A:observability (可观察的)

B:simplicity (简单的)

C:stability (稳定的)

D:all of the above (以上所有)

22. The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.(程序的圈复杂度可以直接通过一个算法的PDL表示进行计算,而不用画程序流图。)

A:True(真)

B:False (假)

23. Real-time applications add a new and potentially difficult element to the testing mix(实时软件给测试带来了新的潜在困难,这个困难与以下哪项相关?)

A:performance (性能)

B:reliability (可靠性)

C:security (安全性)

D:time(时间)

24. Boundary value analysis can only be used to do white-box testing.(边界值分析只能被用于进行白盒测试。)

A:True(真)

B:False (假)

25. Which of these techniques is not useful for partition testing at the class level(以下哪项技巧对于类层面的分区测试无效?)

A:attribute-based partitioning (基于属性的分区)

B:category-based partitioning (基于类别的分区)

C:equivalence class partitioning (等效类分区)

D:state-based partitioning (基于状态的分区)

26. Tests derived from behavioral class models should be based on the(行为类模型相关的测试应当建立在)

A:data flow diagram (数据流图上)

B:object-relation diagram (对象关系图上)

C:state diagram (状态图上)

D:use-case diagram(用例图上)

27. Data flow testing is a control structure testing technique where the criteria used to design test cases is that they(数据流测试作为一种针对控制结构的测试技巧,在设计测试用例时需要遵循的标准是)

A:rely on basis path testing (依赖于基本路径测试)

B:exercise the logical conditions in a program module (测试程序模块的逻辑条件)

C:select test paths based on the locations and uses of variables (基于变量的位置和使用情况选择测试路径)

D:focus on testing the validity of loop constructs (专注于测试循环结构的有效性)

28. Program flow graphs are identical to program flowcharts.(程序流图和程序流程图是相同的。)

A:True(真)

B:False (假)

八、第8章测试策略

1. Acceptance tests are normally conducted by the(验收测试通常由以下哪类参与者进行?)

A:developer(开发人员)

B:end users(最终用户)

C:test team(测试小组)

D:systems engineers (系统工程师)

2. Configuration reviews are not needed if regression testing has been rigorously applied during software integration. (如果严格的回归测试已经被应用到了软件集成过程中,审阅配置是没有必要的。)

A:Tru(真)

B:False(假)

3. Performance testing is only important for real-time or embedded systems.(性能测试只在实时或嵌入式系统中显得重要。)

A:True(真)

B:False(假)

4. Software validation is achieved through a series of tests performed by the user once the software is deployed in his or her work environment.(软件验证是通过,部署在某些特定用户的工作环境中后,由用户进行的一系列测试。)

A:True(真)

B:False(假)

5. What is the normal order of activities in which traditional software testing is organized? a. integration testing b. system testing c. unit testing d.validation testing (传统软件测试的正常顺序是?a. 集成测试 b. 系统测试 c. 单元测试 d.验证测试)

A:a, d, c, b

B:b, d, a, c

C:c, a, d, b

D:d, b, c, a

6. The focus of validation testing is to uncover places that a user will be able to observe failure of the software to conform to its requirements.(验证测试关注点在于,发现用户可能观察到的错误,使得软件与需求一致。)

A:True(真)

B:False(假)

7. When testing object-oriented software it is important to test each class operation separately as part of the unit testing process.(当测试面向对象的软件时,在单元测试中逐个单独测试每个类的操作(方法)很重要。)

A:True(真)

B:False (假)

8. In software quality assurance work there is no difference between software verification and software validation.(在软件质量确认中,软件验证和软件确认没有区别。)

A:True(真)

B:False (假)

9. By collecting software metrics and making use of existing software reliability models it is possible to develop meaningful guidelines for determining when software testing is finished.(通过收集软件的度量指标,并利用已有的软件可靠模型,有可能得出有意义的原则,用于判断软件测试是否完成。)

A:True(真)

B:False (假)

10. Drivers and stubs are not needed for unit testing because the modules are tested independently of one another.(驱动程序和桩程序在单元测试中是不需要的,因为模块是被独立测试的。)

A:True(真)

B:False (假)

11. Smoke testing might best be described as(烟雾测试可以被描述为)

A:bulletproofing shrink-wrapped software(防弹收缩包装软件)

B:rolling integration testing(滚动集成测试)

C:testing that hides implementation errors(测试隐藏实现的错误)

D:unit testing for small programs (小程序的单元测试)

12. The OO testing integration strategy involves testing(面向对象测试集成策略包含测试) A:groups of classes that collaborate or communicate in some way(通过某些方式相互协

作通信类群)

B:single operations as they are added to the evolving class implementation(被添加到演化类实现中的(操作)方法)

C:operator programs derived from use-case scenarios(从用例场景中生成的运算符程序) D:none of the above (以上没有)

13. The best reason for using Independent software test teams is that(采用独立的软件测试小组的最佳理由是)

A:software developers do not need to do any testing(软件开发者不需要做任何测试)

B:a test team will test the software more thoroughly(测试小组可以更彻底地测试软件) C:testers do not get involved with the project until testing begins(测试人员指导测试开始时才参与到项目中)

D:arguments between developers and testers are reduced (可以减少开发人员和测试人员之间的分歧)

14. Bottom-up integration testing has as it's major advantage(s) that(自底向上测试的主要优点是)

A:major decision points are tested early(主要的决策点能尽早地被测试)

B:no drivers need to be written(不需要写驱动程序)

C:no stubs need to be written(不要写桩程序)

D:regression testing is not required (不需要进行回归测试)

15. Security testing attempts to verify that protection mechanisms built into a system protect it from improper penetration.(安全测试旨在验证系统中的保护机制确实能够抵御不符合规则的操作)

A:True(真)

B:False (假)

16. Debugging is not testing, but always occurs as a consequence of testing.(调试不是测试,但通常作为测试的结果而进行。)

A:True(真)

B:False (假)

17. Stress testing examines the pressures placed on the user during system use in extreme environments.(压力测试,旨在检测系统在极端环境中使用时,用户承担的压力。)

A:True(真)

B:False (假)

18. Class testing of object-oriented software is equivalent to unit testing for traditional software.(面向对象软件的类测试等同于传统软件中的单元测试。)

A:True(真)

B:False (假)

19. Recovery testing is a system test that forces the software to fail in a variety of ways and verifies that software is able to continue execution without interruption.(恢复性测试是系统测试,旨在通过多种方式让软件失效,并验证软件能够在没有中断的情况下继续执行的能力。)

A:True(真)

B:False (假)

十、第10章软件项目管理概要

1. Effective software project management focuses on four P's which are(有效的软件项目管理关注的“4P”,指的是)

A:people, performance, payoff, product(人,性能,收益,产品)

B:people, product, performance, process(人,产品,性能,过程)

C:people, product, process, project(人,产品,过程,项目)

D:people, process, payoff, product(人,过程,收益,产品)

2. Organizations that achieve high levels of maturity in people management have a higher likelihood of implementing effective software engineering processes.(在人员管理上拥有高成熟度的组织更有可能实现有效的软件工程过程。)

A:True(真)

B:False(假)

3. The first step in project planning is to(项目计划的第一步是)

A:determine the budget.(计划预算。)

B:select a team organizational model.(选择一个管理模型。)

C:determine the project constraints.(发现项目约束。)

D:establish the objectives and scope.(确定目标和领域。)

软件工程导论期末考试试题和答案

1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__ 测试________、运行与维护阶段。 2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件 和应用软件。 3.可行性研究主要集中在以下四个方面经济可行性、技术可行 性、法律可行性和抉择。 4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计 方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。 6.__数据流图________和__数据字典___共同构成系统的逻辑模型。 7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。 8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。 9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估 计三种类型。 1.下列哪个阶段不属于软件生存周期的三大阶段( C )。 A、计划阶段 B、开发阶段 C、编码阶段 D、维护阶段 2.需求分析是(A )。 3.A、软件开发工作的基础B、软件生存周期的开始 4.C、由系统分析员单独完成的D、由用户自己单独完成的 5.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。 6.A、明确的需求定义B、完整的生命周期 7.C、较长的开发时间D、熟练的开发人员 8.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归 测试过程称为( A )。 9.A、改正性维护B、适应性维护 10.C、完善性维护D、预防性维护 11.一般说来,投入运行的软件系统中有错误(A )。

软件工程作业及参考答案(版)

软件危机与软件工程 3. 软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分, 其期望达到的最终目标是 ()。 A ?消除软件危机 B ?软件开发工程化 C ?程序设计自动化 D ?实现软件重用 4?软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( )。 A .工程管理 B .成本核算 C .人员培训 D .工具开发 5?软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( )。 A ?设计人员和用户 B ?分析人员和用户 C .分析人员和设计人员 D .编码人员和用户 6 .软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的 逻辑模型形成 于( )。 A .开发阶段 B .计划阶段 C .分析阶段 D .设计阶段 7 .在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。 通常,计划时期包括问题定义、可行性研究和 ①,开发时期包括 ②、详细设计、编码以及 ③。 ① A . 需求分析 B . 可行性研究 C . 经费预算 D . 质量保证 ② A . 需求分析 B . 可行性研究 C 总体设计 D 模块化设计 ③ A . 文档编制 B . 运行维护 C . 测试 D . 验收 &软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型 C .螺旋模型 D .对象模型 9.描述软件生存周期的瀑布模型包括计划、 (A ) 、设计、编码、测试、维护等阶段。其中,设计阶段又可 以分成(B )和(C )两个步骤。 A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计 ②代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计 10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务? 可行性研究 软件工程 1软件危机是指在开发和( A .运行 B .设计 2 ?造成软件危机的原因是: A. 用户使用不当 C .硬件不可靠 )过程中所遇到的一系列严重问题。 B .对软件的错误认识 D ?缺乏好的开发方法和手段

软件工程课后作业

第1次作业 路松峰20140062 2018-07-29 10:32:40

软件产品的开发基本上是线性顺序进行的。 2、什么是模型? 模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。 二、判断题 1、在软件开发中采用原型系统策略的主要困难是成本问题。 正确 2、软件过程改进也是软件工程的范畴。 正确 三、选择题 1、包含风险分析的软件工程模型是( D )。 A.喷泉模型 B.瀑布模型 C.增量模型 D.螺旋模型 2、软件过程是(C )。 A.特定的开发模型 B. —种软件求解的计算逻辑 C.软件开发活动的集合 D.软件生命周期模型 3、CMM模型将软件过程的成熟度分为5个等级。在(B )使用定量分析来不断地改进和管理软件过程。 A.管理级 B.优化级 C.定义级 D.可重复级 第3次作业 路松峰_20140062 2018-07-29 10:34:34 一、简答题 1、需求分析有哪三种方法? 面向功能分析、面向数据分析、面向对象分析 2、什么是面向数据结构方法? 面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导岀软件的结构。

二、判断题 1、需求评审人员主要由开发人员组成,一般不包括用户。 错误 2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。正确 三、选择题 1、增量模型本质上是一种( C )。 A.线性顺序模型 B.整体开发模型 C.非整体开发模型 D.螺旋模型 2、需求工程的主要目的是( C )。 A.系统开发的具体方案 B.进一步确定用户的需求 C.解决系统是“做什么的问题” D.解决系统是“如何做的问题” 3、在E-R模型中,包含以下基本成分(D )。 A.数据、对象、实体 B.控制、关系、对象 C.实体、关系、控制 D.实体、属性、关系 第4次作业 路松峰_20140062 2018-07-29 10:35:04 一、简答题 1、面向对象分析模型的五个层次是什么? 五个层次:类与对象层,属性层,服务层,结构层,主题层 2、对象的五个特点是什么?

软件工程导论课后习题答案95829882

《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。 “软件危机”包含两方面的问题: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 它们有以下表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 出现软件危机的原因 (1)开发人员与客户认识之间的矛盾 (2)开发人员能力与开发目标之间的矛盾 (3)预估与实际工作量之间的矛盾 (4)客户认识的提高与软件维护之间的矛盾 (5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成” 是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机? 软件工程是知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够

2019最新软件工程导论期末考试题库及答案

2019最新软件工程导论期末考试题库及答案 1.填空题 1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。 2.IPO图是_输入、处理和输出图_的简称,它是美国IBM 公司发展完善起来的一种图形工具。 3.系统流程图是描述__物理模型__的传统工具,用图形符 号表达了系统中各种元素之间的_____信息流动_____情况。4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集 成测试)、__确认测试__和_____系统测试(集成测试)____ 6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。 7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。 8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。 9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。 10.实施精化设计的目标是基于模块的“高内聚低耦合” 的原则,提高模块的_独立性。 11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。 12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。 13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。

软件工程作业(答案参考)

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

软件工程课后作业

路松峰_ 2018-07-29 10:32:40 一、简答题 1.什么是软件工程 软件工程是关于软件生产的各个方面的工程学科。 二、判断题 1、软件危机的主要表现是软件需求增加,软件价格上升。 / 正确 2、软件就是程序,编写软件就是编写程序。 错误 三、选择题 1、用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为( A )工具。 A. CASE C. CAM D. CAD 2、在下列选项中,( C )不是软件的特征。 A.系统性与复制性 B.可靠性与一致性 C.有形性与可控性 D.抽象性与智能性 ) 3、软件工程的三要素是( B ) A.技术、方法和工具 B.方法、工具和过程 C. 方法、对象和类 D.过程、模型和方法

第2次作业 路松峰_ 2018-07-29 10:33:32 一、简答题 … 1、快速原型模型的主要优点是什么 软件产品的开发基本上是线性顺序进行的。 2、什么是模型 模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。 二、判断题 1、在软件开发中采用原型系统策略的主要困难是成本问题。 正确 2、软件过程改进也是软件工程的范畴。 · 正确 三、选择题 1、包含风险分析的软件工程模型是( D )。 A.喷泉模型 B.瀑布模型 C.增量模型 D.螺旋模型 2、软件过程是( C )。 A.特定的开发模型 B.一种软件求解的计算逻辑 C.软件开发活动的集合 D.软件生命周期模型 3、CMM模型将软件过程的成熟度分为5个等级。在(B )使用定量分析来不断地改进和管理软件过程。

… 第3次作业 路松峰_ 2018-07-29 10:34:34 一、简答题 1、需求分析有哪三种方法 面向功能分析、面向数据分析、面向对象分析 ) 2、什么是面向数据结构方法 面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导出软件的结构。 二、判断题 1、需求评审人员主要由开发人员组成,一般不包括用户。 错误 2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。正确 三、选择题 ;

软件工程导论部分课后习题答案

第一章 1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-3 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 目前使用得最广泛的软件工程方法学(2 种): 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 1-6 什么是软件过程?它与软件工程方法学有何关系? z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。适用中小型项目。 快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。 增量模型的优点:1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比较好;4开始第一构件前,已经完成需求说明。 增量模型的缺点:1对现有产品功能造成破坏;2意义上的矛盾适用于中型软件的开发 螺旋模型的优点:1集成了瀑布模型、快速原型模型、增量模型的优点;2支持用户需求动态变化;3需求分析与软件实现紧密联系相互依赖;4原型作为刑式的可执行的需求规格说明,即利用用户和开发人员共同理解,又可作为后续开发的基础;5为用户参与决策提供方便;6提高目标软件的适应能力;7降低风险;8在大型软件开发过程中充分发挥优势。螺旋模型的缺点:1迭代次数影响开发成本,延迟提价时间;2找不到关键改进点,人才、物力、财力时间引起无谓消耗;3成于风险分析,败于风险分析。适用于内部开发的大规模软件项目。 1-8:为什么说喷泉模型叫好的体现了面向对象软件开发过程无缝和迭代的特性?

软件工程导论期末考试题

一、单项选择题 1.适合于面向对象方法学的软件生存周期模型是( B ) A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 2.从实用角度看,数据规范化程度在大多数场合选用第( C )范式。 A. 1 B.2 C.3 D.5 3. 可行性分析研究的目的是( A )。 A.项目值得开发否 B.争取项目 C.开发项目 D.规划项目 4. 模块的内聚性最高的是 ( D ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( B ) A. 软件工程 B. 软件危机 C. 软件周期 D. 软件产生 6. 需求分析阶段的任务是确定( D ) A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 7. 完整的软件结构通常用( B )图来表示。 A. IPO 图 B. HIPO 图 C.PAD 图 D.DFD 图 8. 在白盒法技术测试用例的设计中( A )是最弱的覆盖标准。 A.语句 B.路径 C.条件组合 D.判定 9?对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 10. 在数据流图中,圆代表( C )。 A.源点 B.终点 C.加工 D.模块 11. 模块内聚度越高,说明模块内各成分彼此结合的程度越( B )。 A.松散 B.紧密 C.无法判断 D.相等 12. 软件测试方法中,黑盒、白盒测试法是常用的方法,其中黑盒测试主要用于测试( B )。 A.结构合理性 B.软件外部功能 C.程序正确性 D.程序内部逻辑 13. 面向对象开发方法中, ( C )是占主导地位的标准建模语言。 A.Booch 方法 B.Coad 方法 C.UML 语言 D.OMT 方法 14. 软件需求分析的主要任务是准确地定义出要开发的软件系统是( C ) A.如何做 B.怎么做 C.做什么 D.对谁做 15. 结构化程序设计的一种基本方法是( C ) A.筛选法 B.迭代法 C.逐步求精法 D.递归法 二、填空题 1. 目前使用最广泛的软件工 程学方法分别是传统方法学和(面向对象方法学 ) )和事务流。 文档 ) 。 ( 重复 )三种结构。 自顶向下 的集成测试方法,对软件结构中下层使 6. 软件维护包括 ( 改正性维护 )、适应性维护、完善性维护、预防性维护。 7. 面向对象方法学建模得到的三个基本子模型是 (对象建模 ) .动态模型、功能模型。 8. 复杂大型问题的对象模型通常由主题 2. 数据流图中信息流的类型有(变换流 3. 软件的定义是:软件 =程序+数据+ 4. 经典结构程序设计包括顺序、选择和 5. 集成测试时对软件结构中上层使用 用 ( 自底向上 ) 的集成测试方法。

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 ?软件也会磨损和老化。(X) ?完善性维护是提高或完善软件的性能。(√) ?数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (X) ?软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(X) ?软件模块之间的耦合性越弱越好。(√) ?如果通过软件测试没有发现错误,则说明软件是正确的。(X) ?快速原型模型可以有效地适应用户需求的动态变化。(√) ?模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高聚,低耦合度的软件产品。(√) ?集成测试主要由用户来完成。(X) ?确认测试计划应该在可行性研究阶段制定(X) ?白盒测试无需考虑模块部的执行过程和程序结构,只要了解模块的功能即可。(X) ?软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√) ?软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√) ?系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。(╳)?模块越多,开发成本越小。(╳) ?软件测试的目的就是证明软件没有错。(╳) ?PAD图在设置了五种基本的控制结构后,还允许递归使用。(√) ?在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×) ?SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√) ?HIPO 法既是需求分析方法,又是软件设计方法。(√) ?在面向对象的需求分析方法中,建立动态模型是最主要的任务。(×) ?加工小说明是对系统流程图中的加工进行说明。(×) ?判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(×) ?需求分析的主要方法有SD 法、OOA 法及HIPO 法等。(×) ?分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。(×) ?信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) ?用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) ?PDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X) ?设计阶段的输出是编码阶段的输入.(√) ?通过软件测试,可以发现软件中所有潜伏的错误.(X) ?非结构化维护用于软件的配置中只有源代码维护.(√) ?系统规格说明是系统分析和定义阶段生成的一种文档.(√) ?数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程导论第五章课后答案

软件工程导论第五章课后 答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第五章习题答案 1、为每种类型的模块耦合举一个具体例子。 答:耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,以及通过接口的数据,一般模块之间可能的连接方式有7种,构成耦合的7种类型,它们之间的关系为: 下面举例说明以上各种耦合: a.非直接耦合(Nondirect Coupling)在这种情况下,两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。例如在实数的运算中,有两个模块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块调用中有执行的前后顺序而已,这个例子即属于非直接耦合。 b.数据耦合(Data Coupling)即一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入,输出信息的,这种耦合为数据输入,输出信息的这种耦合为数据耦合。如有两个模块,其中A完成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完成四个数的比较,模块B调用模块A即可完成,在这种调用关系中,模块A的运算结

果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。数据耦合是松散的耦合,模块间的独立性比较强。 c.标记耦合(Stamp Coupling),即一组模块通过参数传递记录信息,这就是标记耦合。事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。 d.控制耦合(Control Coupling)即一个模块通过开关标志,名字等控制住处明显的控制,选择另一模块的功能,这就是控制耦合,如下图所示,这一种耦合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计中用到多路选择结构即是最好的例子。e.外部耦合(External Coupling)即一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递全局数据结构,而且不是通过参数表传递全局变量的信息。如C语言中都访问被说明为extern类型的外部变量的各个模块之间即发生外部耦合。外部耦合引起的问题类似于下面要介绍的公共耦合,区别在于外部耦合中不存在依赖于一个数据结构内部各项的物理安排。f.公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就是公共耦合。公共的数据环境可以是全局的数据结构,共享的通信区,内存的公共覆盖区等。如几个模块对同一个数据库的查询就属于这种耦合。公共耦合可以分为松散的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作,如两个或多个模块对同一个文件的读操作;而紧密的公共耦合是双

软件工程导论》期末考试试题与答案

《软件工程导论》期末考试-试题与答案 一、填空题 1.软件工程中的结构化分析 SA 是一种面向________的分析方法。 2.软件模块独立性的两个定性度量标准是_________________。 3.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个________的过程。 4. ________和数据字典共同构成了系统的逻辑模型 5. ___________是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。二、单选 题 1.在软件危机中表现出来的软件质量差的问题,其原因是_______。A.软件 研发人员素质太差B.用户经常干预软件系统的研发工作C.没有软件质量标 准 D.软件开发人员不遵守软件质量标准2.在软件质量因素中,软件在异常条件下仍能运 行的能力成为软件的_____。A.安全性B.健壮性C.可用性D.可靠性 3.在下列测试技术中,______不属于黑盒测试技术。A.等价 划分B.边界值分析C.错误推测D.逻辑覆盖 4.软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法主要是指______。A.原型化方法B.结构化方法C.功能化方法D.面向对象方法 5. ______是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是 隐蔽的,外界只能通过有限的接口与对象发生联系。A.多态 B.继承C.封装D.消息 6. Jackson 方法是在软件开发过程中常用的方法,使用 Jackson 方法时可以实现______。A.从数据结构导出程序结构B.从数据流图导出初始结构图C.从模块结构导出数据结构D.从模块结构导出程序结构 7.软件测试时为了________而执行程序的过程。A.纠正 错误B.发现错误 C.避免错误 D.证明错误 8.在软件系统中,一个模块应具有什么样的功能,这是由_____决定的。A.总体 设计B.需求分析C.详细设计D.程序设计 9.面向对象分析是对系统进行_________的一种方法。A.需求 分析B.程序设计C.设计评审D.测试验收 10.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而 且影响软件的_______。A.可理解 性B.可维护性C.可扩展性D.可 移植

软件工程导论作业答案

学号_31009210** 姓名_朱某某班级_软件10* 作业一 1.什么是软件危机?它有哪些典型表现?为什么会出现软件危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。 “软件危机”包含两方面的问题: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 它们有以下表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产速率提高的速度,远远跟不上计算机应用普及深入的趋势。 出现软件危机的原因 (1)开发人员与客户认识之间的矛盾 (2)开发人员能力与开发目标之间的矛盾 (3)预估与实际工作量之间的矛盾 (4)客户认识的提高与软件维护之间的矛盾 (5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面比较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价俱增。在软件“已经完成”时再引入变动,当然付出的代价更高。一个故障时代码错误造成的,有时这种错误时不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。 3.什么是软件工程?他有哪些本质特征?怎样用软件工程消除软件危机? 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效的维护它,这就是软件工程。 本质特征: 软件工程关注于大型软件的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效支持它用户

软件工程课后习题答案

第一章 1.1举出至少5个例子来说明“意外效应法则”在计算机软件方面的应用。 答:典型的例子包括使用“数字汽车仪表板”的软件,赋予高科技,高品质的图像的软件;如广泛的消费类电子产品的软件;个人电脑,工业仪器仪表和机器的软件。软件分化出的在电子商务方面的应用。 1.2举例说明软件对社会的影响(包括正面影响和负面影响)。 答:这是一个很好的课堂讨论问题(如果时间允许),而不是专注于老生常谈的(但很重要)隐私问题,生活质量等问题。您可能想要讨论关于”技术恐惧“方面的问题,软件也许会使它恶化但也可能减少”技术恐惧“。另一个有趣的方面是使用诺依曼的“风险”列在SEN中做重点讨论。你也可以考虑基于软件的“现金”经济,新模式的互动娱乐,虚拟现实,电子商务等方面来思考软件对社会的影响。 1.3针对1.1节提出的5个问题,请给出你的答案,并与同学讨论。 答:软件需要如此长的开发时间: a)设施不上线 b)开发工具并不如预期般运作 c)客户提出的新要求,需要重新设计和返工 d)产品依赖于政府的规定,被意外更改。 e)严格的要求,与现有系统的兼容性需要超过预期更多的测试,设计和实现。 f)多个操作系统下运行的任务需求比预期需要更长的时间。 g)软件项目风险管理比预期需要更多的时间。 h)依赖的技术仍处于开发阶段,从而延长日程安排。 开发成本高: a)比当时预期低得令人无法接受的质量,需要进行更多的测试,设计和实施工作。 b)制定了错误的软件功能需要重新设计和实施。 c)开发错误的用户界面,而导致重新设计和实施。 d)开发了不需要的额外的软件功能而延长了开发日程安排。 在将软件交付顾客使用之前,我们无法找到所有错误: a)产品依赖于政府监管,意外而改变。 b)产品技术标准草案,会意外更改。 c)有时会在项目后期添加新的开发人员。 d)因为团队内的冲突有时会导致沟通不畅,而产生糟糕的设计。 e)破坏高效调度产生的项目管理成果和无效的规划 f)有时装备部件质量差,导致额外的测试,设计和集成工作和管理额外的客户关系。 软件开发和维护的过程仍旧难以度量: a)有时该项目的目的是不明确。 b)有大量的业务所涉及的风险。 c)如果产品内置没有装好。 d)我们需要不断检讨我们的工作。 e)进行维护检查的时间。 f)在整个软件开发过程中要彻底组织项目团队。 1.4在交付最终用户之前,或者首个版本投入使用之后,许多应用程序都会有频繁的变更。

【信息化-精编】软件工程导论课后习题详细答案

软件工程导论课后习题详细答案

《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。(2)软件产品的质量往往靠不住。(3)一般软件很难维护。(4)软件生产效率很低。(5)软件开发成本越来越大。(6)软件成本与开发进度难以估计。(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 5-1。(1)在1985年对计算机存储容量的需求,估计是 如果字长为16位,则这个存储器的价格是 ● ●(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 ●在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10×20条指令。 ●为了开发出4474263条指令以装满存储器,需要的工作量是: ●程序员的月平均工资是4000美元,开发出4474263条指令的成本是 ●(3)在1995年对存储容量的需求估计为: ● 7 4080e =4472.0048.01974 1985??=-P )19601995(28.04080-=e M

软件工程导论期末试题

软件工程导论期末考试试题 一.选择(20分) 1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C)。 A、详细计划 B、可行性分析 C、运行阶段 D、测试与排错 2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C )。 A、详细设计阶段 B、概要设计阶段 C、需求分析阶段 D、测试和运行阶段 3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A )。 A、需求分析阶段 B、详细设计阶段 C、概要设计阶段 D、可行性研究阶段 4、软件工程的出现主要是由于(C )。 A.程序设计方法学的影响 B.其它工程科学的影响 C. 软件危机的出现 D.计算机的发展 5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C ) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为 ( B) A、相互排斥 B、相互补充 C、独立使用 D、交替使用 7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C ) A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法 C、基于对象的面向对象的方法 D、基于数据的数据流开发方法

8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B ) A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法 9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B ) A、控制流 B、数据流 C、程序流 D、指令流 10、软件开发的结构化生命周期方法将软件生命周期划分成(A ) A、计划阶段、开发阶段、运行阶段 B、计划阶段、编程阶段、测试阶段 C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计 二.填空(20分) 21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素 表达了系统中各种元素之间的(信息流动)情况。 22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。 23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先 策略和(宽度优先策略) 。 24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图 来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。 25.汇编语言是面向(机器) 的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。 26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。 27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。 28.所有软件维护申请报告要按规定方式提出,该报告也称( 软件问题)报告。 29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向 维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。 30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选 择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。三.判断(10分)

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

相关主题
文本预览
相关文档 最新文档