软件工程Chapter 01 introduction
- 格式:ppt
- 大小:986.50 KB
- 文档页数:34
第一章软件工程概述第一章软件工程概述1.1软件危机1.1.1软件危机的介绍1)软件危机在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的典型表现:(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入趋势。
1.1.2产生软件危机的原因软件本身特点:缺乏可见性,在运行之前往往难以衡量,质量也难以评价不会因为长期使用而用坏,软件维护通常意味着修正或修改原来的设计,较难维护。
规模庞大,需分工合作,如何保证每个人的工作合在一起是极端复杂的问题。
软件开发与维护的方法不正确产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件开发所使用的方法和技术。
软件生命周期:一个软件从定义、开发、使用和维护直到最早被废弃。
软件产品必须由一个完整的配置组成(程序、文档、数据)1.1.3消除软件危机的途径正确认识计算机软件认识到软件开发是一个协同配合、共同完成的工程项目并吸取经验。
推广使用已总结的开发软件成功的技术和方法开发使用更好的软件工具1.2软件工程的介绍软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
Chapter 1 - Introduction to Software EngineeringMultiple Choices1. Which question no longer concerns the modern software engineer? (a)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?2. Today the increased power of the personal computer has brought about an abandonment ofthe practice of team development of software.(b)a) True b) False3. Software is a product and can be manufactured using the same technologies used for otherengineering artifacts.(b)a) True b) False4. Software deteriorates rather than wears out because (c)a) Software suffers from exposure to hostile environmentsb) Defects are more likely to arise after software has been used oftenc) Multiple change requests introduce errors in component interactionsd) Software spare parts become harder to order5. Most software continues to be custom built because (d)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.6. The nature of software applications can be characterized by their information (d)a) complexity b) content c) determinacy d) both b and c7. Modern software applications are so complex that it is hard to develop mutually exclusivecategory names.(a)a) True b) False8. The so called "new economy" that gripped commerce and finance during the 1990s died andNo longer influences decisions made by businesses and software engineers.(b)a) True b) False9. The functionality of most computer systems does not need to be enhanced the lifetime of the system.(b)a) True b) False10. Change cannot be easily accommodated in most software systems, unless the system wasdesigned with change in mind.(a)a) True b) False11. Most software development projects are initiated to try to meet some business need.(a)a) True b) False12. In general software only succeeds if its behavior is consistent with the objectives of its designers.(b)a) True b) FalseChapter 2 -A Gen eric View of ProcessMultiple Choices1. Which of the items listed below is not one of the software engineering layers(?b)a) Process b) Manufacturing c) Methods d)Tools2. Software engineering umbrella activities are only applied during the initial phases of softwaredevelopment projects.(b)a) True b) False3. Which of these are the 5 generic software engineering framework activities?(a)a) communication, planning, modeling, construction, deploymentb) communication, risk management, measurement, production, reviewingc) analysis, designing, programming, debugging, maintenanced) analysis, planning, designing, programming, testing4. Process models are described as agile because they(b)a) eliminate the need for cumbersome documentationb) emphasize maneuverability and adaptabilityc) do not waste development time on planning activitiesd) make extensive use of prototype creation5. Which of these terms are level names in the Capability Maturity Model?(e)a) Performed b) Repeated c) Reused d) Optimizede) both a and d6. Software processes can be constructed out of pre-existing software patterns to best meet theneeds of a software project.(a)a) True b) False7. Which of these are standards for assessing software processes?(e)a) SEI b) SPICE c) ISO 19002 d) ISO 9001e) both b and d8. The best software process model is one that has been created by the people who will actuallybe doing the work.(a)a) True b) False9. Which of these is not a characteristic of Personal Software Process?(b)a) Emphasizes personal measurement of work productb) Practitioner requires careful supervision by the project managerc) Individual practitioner is responsible for estimating and schedulingd) Practitioner is empowered to control quality of software work products10. Which of these are objectives of Team Software Process?(e)a) Accelerate software process improvementb) Allow better time management by highly trained professionalsc) Build self-directed software teamsd) Show managers how to reduce costs and sustain qualitye) both b and c11. Process technology tools allow software organizations to compress schedulesby skippingunimportant activities.(b)a) True b) False12. It is generally accepted that one cannot have weak software processes and create high qualityend products.(a)a) True b) FalseChapter 3 -Process ModelsMultiple Choices1. The linear sequential model of software development i(s a)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.2. The linear sequential model of software development is also known as the(e)a) Classical life cycle modelb) Fountain modelc) Spiral modeld) Waterfall modele) both a and d3. The incremental model of software development is(b)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.4. The rapid application development model is(c)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.5. Evolutionary software process models(d)a) Are iterative in natureb) Can easily accommodate product requirements changesc) Do not generally produce throwaway systemsd) All of the above6. The prototyping model of software development is (b)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.7. The spiral model of software development(c)a) Ends with the delivery of the software productb) Is more chaotic than the incremental modelc) Includes project risks evaluation during each iterationd) All of the above8. The concurrent development model is(b)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.9. The component-based development model is(c)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.10. The formal methods model of software development makes use of mathematical methods to(d)a) Define the specification for computer-based systemsb) Develop defect free computer-based systemsc) Verify the correctness of computer-based systemsd) All of the above11 Which of these is not one of the phase names defined by the Unified Process model forsoftware development?(d)a) Inception phaseb) Elaboration phasec) Construction phased) Validation phase12 In the Unified Process model requirements are determined iteratively and may span morethan one phase of the process.(a)a) True b) FalseChapter 6 -System Engineering TestMultiple Choices1.Software engineers do not need to consider hardware when designing acomputer-basedsystem.(b)a) True b) False2. Which of the following can be elements of computer-based systems?(e)a) documentationb) softwarec) peopled) hardwaree) all of the above3. The system engineering process usually begins with the(d)a) detailed viewb) domain viewc) element viewd) world view4. To construct a system model the engineer should consider which of the following restraining factors? (e)a) assumptionsb) b udgetc) constraintsd) schedulee) both a and c5. By following modern system engineering practices simulation of reactive systems is no longernecessary.(b)a) True b) False6. During business process engineering(BPE), three different architectures areexamined.(a)a) applications, data, technology infrastructureb) communications, organization, financial infrastructurec) network, database, reporting structured) systems, requirements, data structure7. Which elements of business processing engineering are the responsibilities of the software engineer?(e)a) business area analysisb) business system designc) construction and integrationd) information strategy planninge) both b and c8. The goal of product engineering is to translate the customer's desire for a set of definedcapabilities into a working product.(a)a) True b) False9. The architecture components for product engineering are(a)a) data, hardware, software, peopleb) data, documentation, hardware, softwarec) data, hardware, software, proceduresd) documentation, hardware, people, procedures10. The top level of the hierarchical model of a system is known as the (c)a) AFDb) DFDc) SCD (系统环境视图)d) SFD11. The system model template contains which of the following elements(d)a) inputb) outputc) user interfaced) all of the above12. UML notations that can be used to model the hardware and software elements of a system are (e)a) Activity diagramsb) class diagramc) Deployment diagramsd) Use-case diagramse) a, b, and c,dChapter 7 -Requirements Engineering TestMultiple Choices1. Requirements engineering is a generic process that does not vary from one software project toanother.(A)a) True b) False2. During project inception the intent of the of the tasks are to determine(E)a) basic problem understandingb) nature of the solution neededc) people who want a solutiond) none of the bbovee) a, b and c3. Three things that make requirements elicitation difficult are problems of(e)a) budgetingb) scopec) understandingd) volatilitye) b, c and d4.It is relatively common for different customers to propose conflicting requirements, eacharguing that his or her version is the right one.(a)a) True b) False5. The result of the requirements engineering elaboration task is an analysis model that defineswhich of the following problem domain(s)? (d)a) informationb) functionalc) behaviorald) all of the above6. The system specification describes the (A)a) Function, performance and constraints of a computer-based systemb) implementation of each allocated systemc) element software architectured) time required for system simulation7. The best way to conduct a requirements validation review is to (d)a) examine the system model for errorsb) have the customer look over the requirementsc) send them to the design team and see if they have any concernsd) use a checklist of questions to examine each requirement8. The use of traceability tables helps to(c)a) debug programs following the detection of run-time errorsb) determine the performance of algorithm implementationsc) identify, control, and track requirements changesd) none of the above9. The nature of collaboration is such that all system requirements are defined by consensus of acommittee of customers and developers. (B)a) True b) False10. The job of the requirements engineer is to categorize all stakeholder information ina waythat allows decision makers to choose an internally consistent set of requirements.(a) a) True b) False11. A stakeholder is anyone who will purchase the completed software system under development.(b)a) True b) False12. Which of the following is not one of the context-free questions that would be used duringproject inception?(b)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?13. Developers and customers create use-cases to help the software team understandhowdifferent classes of end-users will use functions.(a)a) True b) False14. In collaborative requirements gathering, the facilitator(c)a) cannot be a member of the software teamb) cannot be a customerc) controls and facilitates the processd) must be an outsider15. Which of the following is not one of the requirement classifications used in Quality FunctionDeployment (QFD)?(C)a) excitingb) expectedc) mandatoryd) normal16. The work products produced during requirement elicitation will vary depending on the(B)a) size of the budgetb) size of the product being builtc) software process being usedd) stakeholders needs17. Use-case actors are always people, never system devices.(B)a) True b) False18. Which of following is not a UML diagram used creating a system analysis model?(C)a) activity diagramb) class diagramc) dataflow diagramd) state diagram19. Analysis patterns facilitate the transformation of the analysis model into a design model bysuggesting reliable solutions to common problems.(B)a) True b) False20. In win-win negotiation, the customer's needs are met even though the developer's need maynot be.(B)a) True b) False21. In requirements validation the requirements model is reviewed to ensure its technical feasibility.(B)a) True b) FalseChapter 8 -Building The Analysis Model TestMultiple Choices1. Which of the following is not an objective for building an analysis model?(C)a) fine set of software requirements that can be validatedb) describe customer requirementsc) develop an abbreviated solution for the problemd) establish basis for software design2. Object-oriented domain analysis is concerned with the identification and specification ofreusable classes within an application domain.(A)a) True b) False3. The data dictionary contains descriptions of each software(E)a) control itemb) data objectc) diagramd) notatione) both a and b4. Which of these is not an element of an object-oriented analysis model?(C)a) Behavioral elementsb) Class-based elementsc) Data elementsd) Scenario-based elements5. In analysis models the only data objects that need representation are those that will beimplemented using software classes.(B)a) True b) False6. The values that are assigned to an object's attributes make that object unique.(A)a) True b) False7. The relationships shown in a data model must be classified to show their(E)a) cardinalityb) Directionalityc) modalityd) probabilitye) both a and c8. The entity relationship diagram(A)a) depicts relationships between data objectsb) depicts functions that transform the data flowc) indicates how data are transformed by the systemd) indicates system reactions to external events9. A generalized description of a collection of similar objects is a (A)a) classb) instancec) subclassd) super class10. Operations are object procedures that are invoked when an object receives a message.(A)a) True b) False11. In many cases there is no need to create a graphical representation of a usage scenario.(A)a) True b) False12. UML activity diagrams are useful in representing which analysis model elements?(D)a) Behavioral elementsb) Class-based elementsc) Flow-based elementsd) Scenario-based elements13. The data flow diagram(E)a) depicts relationships between data objectsb) depicts functions that transform the data flowc) indicates how data are transformed by the systemd) indicates system reactions to external eventse) both b and c14. Control flow diagrams are(E)a) needed to model event driven systems.b) required for all systems.c) used in place of data flow diagrams.d) useful for modeling real-time systems.e) both a and d15. The data flow diagram must be augmented by descriptive text in order to describe thefunctional requirements for a software product.(A)a) True b) False16. Which of the following should be considered as candidate objects in a problem space?(D)a) eventsb) peoplec) structuresd) all of the above17. Attributes cannot be defined for a class until design has been completed.(B)a) True b) False18. Which of the following is not one of the broad categories used to classify operations?(D)a) computationb) data manipulationc) event monitorsd) transformers19. Which of the following items does not appear on a CRC card?(C)a) class collaboratorsb) class namec) class reliabilityd) class responsibilities20. Class responsibilities are defined by(D)a) its attributes onlyb) its collaboratorsc) its operations onlyd) both its attributes and operations21. An analysis package involves the categorization of analysis model elements into usefulgroupings.(A)a) True b) False22. Events occur whenever a(n)(A)a) actor and the OO system exchange informationb) class operation is invokedc) messages are passed between objectsd) all of the above23. The state diagram(D)a) depicts relationships between data objectsb) depicts functions that transform the data flowc) indicates how data are transformed by the systemd) indicates system reactions to external events24. For purposes of behavior modeling a state is any(C)a) consumer or producer of data.b) data object hierarchy.c) well defined process.d) observable mode of behavior.Chapter 9 -Design Engineering TestMultiple Choices1. Which of the following are areas of concern in the design model?(E)a) architectureb) datac) interfacesd) project scopee) a, b and c2. The importance of software design can be summarized in a single word(D)a) accuracyb) complexityc) efficiencyd) quality3. Which of these are characteristics of a good design?(E)a) exhibits strong coupling between its modulesb) implements all requirements in the analysis modelc) includes test cases for all componentsd) provides a complete picture of the softwaree) both b and d4. Which of the following is not a characteristic common to all design methods?(D)a) configuration managementb) functional componentc) notation quality assessmentd) guidelines refinement heuristics5. Software design is an iterative generic process that may be applied without modification to any software project.(B)a) True b) False6. What types of abstraction are used in software design?(E)a) controlb) datac) environmentald) procedurale) a, b and d7. Which of the following models can be used to represent the architectural design of a piece of software.(D)a) Dynamic modelsb) Functional modelsc) Structural modelsd) All of the above8. Design patterns are not applicable to the design of object-oriented software?(B)a) True b) False9. Since modularity is an important design goal it is not possible to have too many modules in aproposed design.(B)a) True b) False10. Information hiding makes program maintenance easier by hiding data and procedure fromunaffected parts of the program.(A)a) True b) False11. Cohesion is a qualitative indication of the degree to which a module(B)a) can be written more compactly.b) focuses on just one thing.c) is able to complete its function in a timely manner.d) connected to other modules and the outside world.12. When using structured design methodologies the process of stepwise refinement(逐步求精法)isunnecessary.(B)a) True b) False13. a qualitative indication of the degree to which a module(D)a) can be written more compactly.b) focuses on just one thing.c) is able to complete its function in a timely manner.d) Connected to other modules and the outside world.14. Software designs are refactored to allow the creation of software that is easier to integrate,easier to test, and easier to maintain.(A)a) True b) False15. Inheritance provides a mechanism by which changes to lower level classes can be propagatedto all super classes quickly.(B)a) True b) False16. Polymorphism reduces the effort required to extend an object system by(B)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.17. Which of the following is not one of the five design class types(B)a) Business domain classesb) Entity classesc) Process classesd) User interface classes18. Which design model elements are used to depict a model of information represented fromthe user's view?(C)a) Architectural design elementsb) Component-level design elementsc) Data design elementsd) Interface design elements19. Which design is analogous to the floor plan of a house?(A)a) Architectural designb) Component-level designc) Data designd) Interface design20. Which design model is analogous to the detailed drawings of the access points and external utilities for a house?(D)a) Architectural designb) Component-level designc) Data designd) Interface design21. Which design model is analogous to a set of detailed drawings for each room in a house?(B)a) Architectural designb) Component-level designc) Data designd) Interface design22. The deployment design elements specify the build order for the software components.(B)a) True b) False23. One of the key problems in software reuse is the inability to find existing reusable design patterns when hundreds of candidates exist.(A)a) True b) False24. Design patterns are best thought of as coding patterns.(B)a) True b) False25. Frameworks and design patterns are the same thing as far as designers are concerned.(B)a) True b) FalseChapter 10 —Creati ng An Architectural Desig n TestMultiple Choices1. The best representation of system architecture is an operational software prototype.(B)a) True b) False2. The architectural representations can be an enabler for communication among projectstakeholders.(A)a) True b) False3. Which of these characteristics are true of a data warehouse, but not a typical data base?(E)A) business level orientationB) currency of informationC) integrationD) nonvolatilityE) both c and d4. Data design actually begins during the creation of the analysis model, not the architectural model.(A)a) True b) False5. An architectural style encompasses which of the following elements?(E)a) constraintsb) set of componentsc) semantic modelsd) syntactic modelse) a, b and c6. To determine the architectural style or combination of styles that best fits theproposedsystem, requirements engineering is used to uncover(B)a) algorithmic complexityb) characteristics and constraintsc) control and datad) design patterns。
Chapter 1 An Introduction to Software Engineering*What is software?—Computer programs and associated documentation and Data-Two fundamental types of software product: generic products and customized products*What is software engineering?—Software engineering is an engineering discipline which is concerned with all aspects of software production*What is the difference between software engineering and computer science?—Computer science is concerned with theory and fundamentals;—software engineering is concerned with the practicalities of developing and delivering useful software*What is a software process?-A set of activities whose goal is the development or evolution of software—Generic activities in all software processes are:•Specification 、Development 、Validation 、EvolutionChapter 4 Software Process*Software process-Software processes are the activities involved in producing and evolving a software system。