软件工程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PART-A Multiple-choice Questions
When should the system testing phase begin? ( C )
1. 系统测试阶段应在何时开始?
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 ______
ISO是____国际标准组织____的缩写
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 seri
es of identifiable stage that a software product undergoes during its life time (同Part-B.8)
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. .SRS建立了客户端的软件产品将做什么的供应商之间的协议的基础上。
b. An SRS provides a reference for validation of the final product. SRS提供了一个用于最终产品的验证的参考。
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 DFD(又称气泡图)是一个简单的图形符号,可以用来表示输入数据系统,对这些数据进行各种处理系统所产生的输出数据系统
Primitive Symbols Used for Constructing DFDs构建的DFD使用原始符号
There essentially five different symbols used to construct DFDs. These primitive symbols are depicted in BELOWFIGURE有
本质上5个不同的符号用来构造的DFD。这些原始的符号描绘在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 con
ditions 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.