软件工程英文版复习题(共12页).doc
精选优质文档-倾情为你奉上软件工程复习题 PART-A Multiple-choice Questions 1. When should the system testing phase begin? ( C ) A. After beta testing B. Before unit testing C. After white box testing D. Before functional testing 2. Which is included in the software requirements specification? ( C ) A. error handling B. data description C. functional description D. performance description 3. Which factors must be most considered when developing acceptance criteria? ( B ) A. user availability B. match with requirements C. ability to benchmark system D. schedule of system delivery 4. Software _ is work done to enhance software functionality, correct errors and improve the performance of software. ( B ) A. re-designs B. Maintenance C. Corrections D. Re-engineering 5. Which type of testing is not a part of system testing? ( D ) A. Stress testing B. Function testing C. White box testing D. Incremental testing 6. Which are included in the software requirements specification? ( B, D ) A. error handling B. functional description C. data description D. maintainability description 7. A data dictionary was created during the requirements analysis phase of a software engineering project. What information does it contain? ( A,B,D ) A. interface B. data type C. restrictions D. content description 8. What is configuration management in software engineering? ( C ) A. overall management of the design of the system B. management of the configurable components in a system C. the identification of the configuration of a system at discreet points in time to control changes to the configuration D. in object-oriented programming, the management of objects that control the configuration of some other function(s) in the systemPART-B Fill up the blanks1. Most product need _ maintenance _ because of wear and tear caused by the usage2. _ Evolutionary _ Model is known as the successive versions model3. ISO is abbreviated as_ International Standard Organization _ 4. _ Verification _ is the process of determining whether one phase of a software product confirms to its previous phase5. Black-box testing is also known as_ Functional testing or Closed Box _6. White-box testing is also called the _ Structural testing. or Open Box _7. _ Software reverse engineering _ is the process of recovering the design and the requirement specification of product from an analysis of its code8. _ Software Life Cycle _ is the series of identifiable stage that a software product undergoes during its life timePARTC Answer the following in one or two sentences each question 1. Define software EngineeringAns: It is an approach to develop software using engineering approachEngineering approach meansHEAVY USE OF PAST EXPERIENCE OPTIMIZATIONCOST EFFECTIVENESS 2. What is meant by software configuration management?Ans: Software configuration management is the art of identifying, organizing and controlling modifications to the software being built by a programming team3. Explain Characteristics of a Good SRS Document.Ans:a. It should be concise and at the same time unambiguous.b. It should be consistent.c. It should be complete.d. It should be well-structured and easily modifiable.4. Generate test cases to compute the square root of integer values in the range between 0 and 2000 using Boundary Value Analysis.Ans:0, 1, 2000, 2001 Boundary Value Analysis5. What is a Formal Technique? Ans:A formal technique is a mathematical method to specify a hardware and/or software system, to verify whether a specification is realizable, to validate whether an implementation satisfies its specification and to prove properties of a system without necessarily running the system, etc.6. Define Software Life Cycle Model.Ans: Software life cycle is the series of identifiable stage that a software product undergoes during its life time 7. Define Fan-OutAns: It is a measure of the number of modules that are directly controlled by a given module. A design having modules with high fan-out is not a good design as such modules would lack cohesion.8. Explain the need of an SRS Document.Ans:a. An SRS establishes the basis for agreement between the client and the supplier on what the software product will do.b. An SRS provides a reference for validation of the final product.c. A high quality SRS is a prerequisite to high-quality software.d. A high-quality SRS reduces the development cost.9. Generate test cases to compute the square root of integer values in the range between 0 and 5000 using Boundary Value Analysis.Ans:0, 1, 5000, 5001 Boundary Value Analysis10. Define Decision table Ans:Decision table specify which variables are to be tested, what actions are to be taken and the order in which decision making is to be performed.PARTD Write Short notes 1. Empirical Estimation TechniquesAns:Empirical estimation techniques are based on making an educated guess of the project parameters. Although empirical estimation techniques are based on common sense, and experience over the years. The two most widely used empirical estimation techniques are Expert JudgmentIt is one of the most widely used estimation techniques. In this approach an expert makes an educated guess of the problem size after analyzing the problem thoroughly Delphi TechniqueIt tries to overcome some of the short coming of the previous method. It is carried out by a team composed of a group of experts and a coordinator2. Organization and Team StructuresAns:Every software organization handles several projects. Software organizations assign a team of engineers to handle a software project. There are a few standard ways in which software organizations and teams are structured.There are essentially two broad ways in which a software development organization is structured: Functional format Project formatTeam StructureProblems of different complexities and sizes require different team structures. For effective solution, usually every organization has a standard formal team structure. The three common formal team structures followed by most organizations are Democratic Team Structure Chief Programmer Team Structure Mixed Team Structure3. Code InspectionsAns:Code inspections aim explicitly at the discovery of commonly made mistakes. Most software development companies collect statistics to identify the type of errors most frequently committed. Such a list of commonly committed(提交) errors can be used during code inspections to keep a look-out for possible errors.The following is a list of some classical programming errors which can be looked for during code inspections: Use of uninitialized variables. Jumps into loops. Non terminating loops. Incompatible assignment. Array indices out of bounds. Improper storage allocation and deallocation.4. Black-Box TestingAns:This testing methodology looks at what are the available inputs for an application and what the expected outputs are that should result from each input. It is not concerned with the inner workings of the application, the process that the application undertakes to achieve a particular output or any other internal aspect of the application that may be involved in the transformation of an input into an output. Most black-box testing tools employ either coordinate based interaction with the applications graphical user interface (GUI) or image recognition. An example of a black-box system would be a search engine. You enter text that you want to search for in the search bar, press “Search” and results are returned to you. In such a case, you do not know or see the specific process that is being employed to obtain your search results, you simply see that you provide an input a search term and you receive an output your search results5. Data Flow Diagrams (DFDs)Ans:The DFD (also known as the bubble chart) is a simple graphical notation that can be used to represent a system in terms of the input data to the system, various processing carried out on these data and the output data generated by the systemPrimitive Symbols Used for Constructing DFDsThere essentially five different symbols used to construct DFDs. These primitive symbols are depicted in BELOWFIGURE 6. Risk (danger or loss) ManagementAns:A risk is any unfavorable (not encouraging or pleasing) event or circumstances that can occur while a project is underway. Risk management aims at dealing with all kinds of risks that might affect a project. Risk management consists of three essential activities:Risk Identification, Risk assessment,Risk containmentPARTE Solve the Problems1. Given Control flow graph G of a program for GCD .Calculate the cyclomatic complexity.Ans:Given a control flow graph G of a program The cyclomatic complexity V(G) can be computed asV(G) = E-N+2Where,N is the number of nodes of the control graph E is the number of edges in the control flow graphEdge =8 and Node =6By substituting the values in Cyclomatic complexity formula we get,V(G)= 8 6 + 2The cyclomatic complexity = 42. Compare different software life cycle modelsAns:StrengthWeaknessTypes of projectsWaterfallSimpleEasy to executeIntuitive and logicalAll or nothing approachRequirements frozen earlyDisallows changesCycle time too longMay choose outdatedhardware technologyUser feedback not allowedEncourages req. bloatingFor well understoodproblems, short durationproject, automation ofexisting manual systemsPrototypingHelps in requirementselicitationReduces riskLeads to a better systemFront heavy processPossibly higher costDisallows later changesSystems with novice usersWhen uncertainities inrequirementsWhen UI very importantIterativeRegular/quick deliveriesReduces riskAccommodates changesAllows user feedbackAllows reasonable exitpointsEach iteration can haveplanning overheadCost may increase as workdone in one iteration mayhave to be undone laterSystem architecture andstructure may suffer asfrequent changes are madeFor businesses where timeis of essenceWhere risk of a longproject cannot be takenWhere requirements arenot known and will beknown only with time3. Mention Guidelines for Constructing DFDsAns:Some simple guidelines for constructing the DFD representation of a system, which have been developed after studying the different mistakes that beginners usually make while constructing the DFD model of systems are as follows: The context diagram should depict the system as a single bubble. Many beginners commit the mistake of drawing more than one bubble in the context diagram. All external entities interacting with the system should be represented only in the context diagram and these should not appear at other levels of the DFD. Only 3 to 7 bubbles per diagram should be allowed, i.e. each bubble should be decomposed to between 3 and 7 bubbles. A DFD does not represent control information such as when or in what order different functions (processes) are invoked and nor does it represent the conditions under which different functions are invoked. All the functionalities of the system must be captured by the DFD model, i.e. no function of the system specified in the SRS document should be overlooked SRS. 4. Calculate the length and volume of the following source code using Hallsteads Techniquemain ( )int a, b, c, avg;scanf (“%d %d %d”, &a, &b, &c);avg = (a + b + c) / 3;printf (“Average = %d”, avg);Ans:The total number of unique operators ( n1 ) are : 12The total number of unique operands ( n2 ) are : 11Estimated Length = (12 * log 12 + 11 * log 11) = (12 * 3.58 + 11 * 3.45) = (43 + 38) = 81 Volume = Length * log (23) = 81 * 4.52 = 3665. Explain Classical Waterfall ModelAns:Feasibility studyThe aim of the feasibility study is to determine whether developing the product is financially and technically feasibleRequirement analysis and specification phasThe aim of the requirement analysis and specification phase is to understand the exact requirements of the customer and to document them properly. This phase consists of two distinct activities:Design phaseThe goal of the design phase is to transform the requirements specification into a structure that is suitable for implementation in some programming language. Two distinct design approaches followed in different industries are:Coding and Unit TestingThe purpose of this phase (also called the implementation phase) of software development is to translate the software design into source code. The end product of the implementation phase is a set of program modules that have been individually tested.Implementation phaseDuring this phase the different modules are integrated in a planned manner. The different modules making up a system are almost never integrated in a single shot. The goal of system testing is to ensure that the developed system functions according to its requirements as specified in the SRS document. The system testing usually consisting of three different kinds of testing activities6. List three major types of risks in a software projectAns:A project can be affected by a variety of risks. The three main categories of risks which can affect a software project are: Project risks Budgetary, schedule, personnel, resource, customer-related problems etc. Technical risks Potential design, implementation, interfacing, testing and maintenance problems. In addition, ambiguous specification, incomplete specification, changing specification, technical uncertainty and technical obsolescence. Business risks These risks include building an excellent product that no one wants, not fulfilling budgetary or personnel commitments etc.专心-专注-专业