资源描述
软件工程复习题
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 system
PART-B Fill up the blanks
1. Most product need ___ maintenance _______ because of wear and tear caused by the usage
2. __ Evolutionary ___________ Model is known as the successive versions model
3. 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 phase
5. 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 code
8. __ Software Life Cycle ____ is the series of identifiable stage that a software product undergoes during its life time
PART–C Answer the following in one or two sentences each question
1. Define software Engineering
Ans:
It is an approach to develop software using engineering approach
Engineering approach means
HEAVY USE OF PAST EXPERIENCE
OPTIMIZATION
COST 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 team
3. 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 Analysis
5. 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-Out
Ans: 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 Analysis
10. 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.
PART–D Write Short notes
1. Empirical Estimation Techniques
Ans:
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 Judgment
It 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 Technique
It 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 coordinator
2. Organization and Team Structures
Ans:
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 format
Team Structure
Problems 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 Structure
3. Code Inspections
Ans:
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 Testing
Ans:
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 results
5. 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 system
Primitive Symbols Used for Constructing DFDs
There essentially five different symbols used to construct DFDs. These primitive symbols are depicted in BELOWFIGURE
6. Risk (danger or loss) Management
Ans:
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 containment
PART–E Solve the Problems
1. 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 as
V(G) = E-N+2
Where,
N is the number of nodes of the control graph
E is the number of edges in the control flow graph
Edge =8 and Node =6
By substituting the values in Cyclomatic complexity formula we get,
V(G)= 8 – 6 + 2
The cyclomatic complexity = 4
2. Compare different software life cycle models
Ans:
Strength
Weakness
Types of projects
Waterfall
Simple
Easy to execute
Intuitive and logical
All or nothing approach
Requirements frozen early
Disallows changes
Cycle time too long
May choose outdated
hardware technology
User feedback not allowed
Encourages req. bloating
For well understood
problems, short duration
project, automation of
existing manual systems
Prototyping
Helps in requirements
elicitation
Reduces risk
Leads to a better system
Front heavy process
Possibly higher cost
Disallows later changes
Systems with novice users
When uncertainities in
requirements
When UI very important
Iterative
Regular/quick deliveries
Reduces risk
Accommodates changes
Allows user feedback
Allows reasonable exit
points
Each iteration can have
planning overhead
Cost may increase as work
done in one iteration may
have to be undone later
System architecture and
structure may suffer as
frequent changes are made
For businesses where time
is of essence
Where risk of a long
project cannot be taken
Where requirements are
not known and will be
known only with time
3. Mention Guidelines for Constructing DFDs
Ans:
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 Hallstead’s Technique
main ( )
{
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 : 12
The total number of unique operands ( n2 ) are : 11
Estimated Length = (12 * log 12 + 11 * log 11)
= (12 * 3.58 + 11 * 3.45)
= (43 + 38)
= 81
Volume = Length * log (23)
= 81 * 4.52
= 366
5. Explain Classical Waterfall Model
Ans:
Feasibility study
The aim of the feasibility study is to determine whether developing the product is financially and technically feasible
Requirement analysis and specification phas
The 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 phase
The 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 Testing
The 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 phase
During 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 activities
6. List three major types of risks in a software project
Ans:
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.
展开阅读全文