Вы находитесь на странице: 1из 69

Chapter 1- Introduction

Lecture 1

Software engineering
Software engineering is an engineering discipline that is
concerned with all aspects of software production from
the early stages of system specification through to
maintaining the system after it has gone into use.
Engineering discipline
Using appropriate theories and methods to solve problems
bearing in mind organizational and financial constraints.

All aspects of software production


Not just technical process of development. Also project
management and the development of tools, methods etc. to
support software production.
Chapter 1 Introduction

Frequently asked questions about software


engineering
Question

Answer

What is software?

Computer programs and associated documentation.


Software products may be developed for a particular
customer or may be developed for a general market.

What are the attributes of good software?

Good software should deliver the required functionality


and performance to the user and should be
maintainable, dependable and usable.

What is software engineering?

Software engineering is an engineering discipline that is


concerned with all aspects of software production.

What are the fundamental


engineering activities?

software Software specification, software development, software


validation and software evolution.

What is the difference between software Computer science focuses on theory and fundamentals;
engineering and computer science?
software engineering is concerned with the practicalities
of developing and delivering useful software.
What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering?
computer-based
systems
development
including
hardware, software and process engineering. Software
engineering is part of this more general process.
Chapter 1 Introduction

Frequently asked questions about software


engineering
Question

Answer

What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering?
delivery times and developing trustworthy software.
What are the
engineering?

costs

of

software Roughly 60% of software costs are development costs,


40% are testing costs. For custom software, evolution
costs often exceed development costs.

What are the best software engineering While all software projects have to be professionally
techniques and methods?
managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems require
a complete and analyzable specification to be developed.
You cant, therefore, say that one method is better than
another.
What differences has the web made to The web has led to the availability of software services
software engineering?
and the possibility of developing highly distributed servicebased systems. Web-based systems development has
led to important advances in programming languages and
software reuse.
Chapter 1 Introduction

Essential attributes of good software

Product characteristic

Description

Maintainability

Software should be written in such a way so that it can evolve to


meet the changing needs of customers. This is a critical attribute
because software change is an inevitable requirement of a
changing business environment.

Dependability and
security

Software dependability includes a range of characteristics


including reliability, security and safety. Dependable software
should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or
damage the system.

Efficiency

Software should not make wasteful use of system resources such


as memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.

Acceptability

Software must be acceptable to the type of users for which it is


designed. This means that it must be understandable, usable and
compatible with other systems that they use.

Chapter 1 Introduction

Web-based software engineering


Web-based systems are complex distributed systems
but the fundamental principles of software engineering
discussed previously are as applicable to them as they
are to any other types of system.
The fundamental ideas of software engineering,
discussed in the previous section, apply to web-based
software in the same way that they apply to other types
of software system.

Chapter 1 Introduction

13

Key points
Software engineering is an engineering discipline that is
concerned with all aspects of software production.
Essential software product attributes are maintainability,
dependability and security, efficiency and acceptability.
The high-level activities of specification, development,
validation and evolution are part of all software
processes.
The fundamental notions of software engineering are
universally applicable to all types of system
development.
Chapter 1 Introduction

14

Key points
There are many different types of system and each
requires appropriate software engineering tools and
techniques for their development.
The fundamental ideas of software engineering are
applicable to all types of software system.

Chapter 1 Introduction

15

Ethical principles

1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best
interests of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their
professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and
promote an ethical approach to the management of software development and
maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the
profession consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8. SELF - Software engineers shall participate in lifelong learning regarding the practice of
their profession and shall promote an ethical approach to the practice of the profession.
Chapter 1 Introduction

23

Key points
Software engineers have responsibilities to the
engineering profession and society. They should not
simply be concerned with technical issues.
Professional societies publish codes of conduct which
set out the standards of behaviour expected of their
members.
Three case studies are used in the book:
An embedded insulin pump control system
A system for mental health care patient management
A wilderness weather station

Plan-driven and agile development


Plan-driven development
A plan-driven approach to software engineering is based around
separate development stages with the outputs to be produced at
each of these stages planned in advance.
Not necessarily waterfall model plan-driven, incremental
development is possible
Iteration occurs within activities.

Agile development
Specification, design, implementation and testing are interleaved and the outputs from the development process are
decided through a process of negotiation during the software
development process.
Chapter 3 Agile software
development

41

The principles of agile methods


Principle

Description

Customer involvement

Customers should be closely involved throughout the


development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.

Incremental delivery

The software is developed in increments with the customer


specifying the requirements to be included in each increment.

People not process

The skills of the development team should be recognized and


exploited. Team members should be left to develop their own
ways of working without prescriptive processes.

Embrace change

Expect the system requirements to change and so design the


system to accommodate these changes.

Maintain simplicity

Focus on simplicity in both the software being developed and


in the development process. Wherever possible, actively work
to eliminate complexity from the system.
Chapter 3 Agile software
development

42

Agile method applicability


Product development where a software company is
developing a small or medium-sized product for sale.
Custom system development within an organization,
where there is a clear commitment from the customer to
become involved in the development process and where
there are not a lot of external rules and regulations that
affect the software.
Because of their focus on small, tightly-integrated teams,
there are problems in scaling agile methods to large
systems.
Chapter 3 Agile software
development

43

Problems with agile methods


It can be difficult to keep the interest of customers who
are involved in the process.
Team members may be unsuited to the intense
involvement that characterises agile methods.
Prioritising changes can be difficult where there are
multiple stakeholders.
Maintaining simplicity requires extra work.
Contracts may be a problem as with other approaches to
iterative development.

Chapter 3 Agile software


development

44

Extreme programming practices (a)


Principle or practice

Description

Incremental planning

Requirements are recorded on story cards and the stories to be


included in a release are determined by the time available and
their relative priority. The developers break these stories into
development Tasks. See Figures 3.5 and 3.6.

Small releases

The minimal useful set of functionality that provides business


value is developed first. Releases of the system are frequent
and incrementally add functionality to the first release.

Simple design

Enough design is carried out to meet the current requirements


and no more.

Test-first development

An automated unit test framework is used to write tests for a


new piece of functionality before that functionality itself is
implemented.

Refactoring

All developers are expected to refactor the code continuously as


soon as possible code improvements are found. This keeps the
code simple and maintainable.
Chapter 3 Agile software
development

45

Extreme programming practices (b)

Pair programming

Developers work in pairs, checking each others work and


providing the support to always do a good job.

Collective ownership

The pairs of developers work on all areas of the system, so that


no islands of expertise develop and all the developers take
responsibility for all of the code. Anyone can change anything.

Continuous integration

As soon as the work on a task is complete, it is integrated into


the whole system. After any such integration, all the unit tests in
the system must pass.

Sustainable pace

Large amounts of overtime are not considered acceptable as


the net effect is often to reduce code quality and medium term
productivity

On-site customer

A representative of the end-user of the system (the customer)


should be available full time for the use of the XP team. In an
extreme programming process, the customer is a member of the
development team and is responsible for bringing system
requirements to the team for implementation.
Chapter 3 Agile software
development

46

Refactoring
Programming team look for possible software
improvements and make these improvements even
where there is no immediate need for them.
This improves the understandability of the software and
so reduces the need for documentation.
Changes are easier to make because the code is wellstructured and clear.
However, some changes requires architecture
refactoring and this is much more expensive.

Chapter 3 Agile software


development

47

Testing in XP
Testing is central to XP and XP has developed an
approach where the program is tested after every
change has been made.
XP testing features:
Test-first development.
Incremental test development from scenarios.
Customer/User involvement in test development and validation.
Automated test harnesses are used to run all component tests
each time that a new release is built.

Chapter 3 Agile software


development

48

Scrum
The Scrum approach is a general agile method but its focus is
on managing iterative development rather than specific agile
practices.
There are three phases in Scrum.
The initial phase is an outline planning phase where you establish the
general objectives for the project and design the software architecture.
This is followed by a series of sprint cycles, where each cycle
develops an increment of the system.
The project closure phase wraps up the project, completes required
documentation such as system help frames and user manuals and
assesses the lessons learned from the project.

Chapter 3 Agile software


development

49

The Scrum process

Chapter 3 Agile software


development

50

Key points
Agile methods are incremental development methods that focus on
rapid development, frequent releases of the software, reducing
process overheads and producing high-quality code. They involve
the customer directly in the development process.
The decision on whether to use an agile or a plan-driven approach
to development should depend on the type of software being
developed, the capabilities of the development team and the culture
of the company developing the system.
Extreme programming is a well-known agile method that integrates
a range of good programming practices such as frequent releases
of the software, continuous software improvement and customer
participation in the development team.

Chapter 3 Agile software


development

51

Key points
A particular strength of extreme programming is the
development of automated tests before a program
feature is created. All tests must successfully execute
when an increment is integrated into a system.
The Scrum method is an agile method that provides a
project management framework. It is centred round a set
of sprints, which are fixed time periods when a system
increment is developed.
Scaling agile methods for large systems is difficult. Large
systems need up-front design and some documentation.
Chapter 3 Agile software
development

52

Topics covered
Functional and non-functional requirements
The software requirements document
Requirements specification
Requirements engineering processes
Requirements elicitation and analysis
Requirements validation
Requirements management

Chapter 4 Requirements
engineering

53

What is a requirement?
It may range from a high-level abstract statement of a
service or of a system constraint to a detailed
mathematical functional specification.
This is inevitable as requirements may serve a dual
function
May be the basis for a bid for a contract - therefore must be
open to interpretation;
May be the basis for the contract itself - therefore must be
defined in detail;
Both these statements may be called requirements.

Chapter 4 Requirements
engineering

54

Readers of different types of requirements


specification

Chapter 4 Requirements
engineering

55

Functional and non-functional requirements

Functional requirements
Statements of services the system should provide, how the
system should react to particular inputs and how the system
should behave in particular situations.
May state what the system should not do.

Non-functional requirements
Constraints on the services or functions offered by the system
such as timing constraints, constraints on the development
process, standards, etc.
Often apply to the system as a whole rather than individual
features or services.

Domain requirements
Constraints on the system from the domain of operation
Chapter 4 Requirements
engineering

56

Types of nonfunctional requirement

Chapter 4 Requirements
engineering

57

Requirements engineering processes


The processes used for RE vary widely depending on
the application domain, the people involved and the
organisation developing the requirements.
However, there are a number of generic activities
common to all processes

Requirements elicitation;
Requirements analysis;
Requirements validation;
Requirements management.

In practice, RE is an iterative activity in which these


processes are interleaved.
Chapter 4 Requirements
engineering

58

A spiral view of the requirements engineering


process

Chapter 4 Requirements
engineering

59

The requirements elicitation and analysis


process

Chapter 4 Requirements
engineering

60

Scenarios
Scenarios are real-life examples of how a system can be
used.
They should include
A description of the starting situation;
A description of the normal flow of events;
A description of what can go wrong;
Information about other concurrent activities;
A description of the state when the scenario finishes.

Ethnography
A social scientist spends a considerable time observing
and analysing how people actually work.
People do not have to explain or articulate their work.
Social and organisational factors of importance may be
observed.
Ethnographic studies have shown that work is usually
richer and more complex than suggested by simple
system models.

Chapter 4 Requirements
engineering

62

Requirements checking
Validity. Does the system provide the functions which
best support the customers needs?
Consistency. Are there any requirements conflicts?
Completeness. Are all functions required by the
customer included?
Realism. Can the requirements be implemented given
available budget and technology
Verifiability. Can the requirements be checked?

Chapter 4 Requirements
engineering

63

Requirements evolution

Chapter 4 Requirements
engineering

64

Requirements management planning


Establishes the level of requirements management detail that is
required.
Requirements management decisions:
Requirements identification Each requirement must be uniquely identified
so that it can be cross-referenced with other requirements.
A change management process This is the set of activities that assess
the impact and cost of changes. I discuss this process in more detail in
the following section.
Traceability policies These policies define the relationships between each
requirement and between the requirements and the system design that
should be recorded.
Tool support Tools that may be used range from specialist requirements
management systems to spreadsheets and simple database systems.
Chapter 4 Requirements
engineering

65

Key points
Requirements for a software system set out what the
system should do and define constraints on its operation
and implementation.
Functional requirements are statements of the services
that the system must provide or are descriptions of how
some computations must be carried out.
Non-functional requirements often constrain the system
being developed and the development process being used.
They often relate to the emergent properties of the system
and therefore apply to the system as a whole.

Chapter 4 Requirements
engineering

66

Key points
The software requirements document is an agreed statement
of the system requirements. It should be organized so that
both system customers and software developers can use it.
The requirements engineering process is an iterative
process including requirements elicitation, specification and
validation.
Requirements elicitation and analysis is an iterative process
that can be represented as a spiral of activities
requirements discovery, requirements classification and
organization, requirements negotiation and requirements
documentation.
Chapter 4 Requirements
engineering

67

Key points
You can use a range of techniques for requirements
elicitation including interviews, scenarios, use-cases and
ethnography.
Requirements validation is the process of checking the
requirements for validity, consistency, completeness,
realism and verifiability.
Business, organizational and technical changes
inevitably lead to changes to the requirements for a
software system. Requirements management is the
process of managing and controlling these changes.
Chapter 4 Requirements
engineering

68

Topics covered
Context models
Interaction models
Structural models
Behavioral models
Model-driven engineering

Chapter 5 System modeling

69

Process perspective
Context models simply show the other systems in the
environment, not how the system being developed is
used in that environment.
Process models reveal how the system being developed
is used in broader business processes.
UML activity diagrams may be used to define business
process models.

Chapter 5 System modeling

70

Executable UML
The fundamental notion behind model-driven
engineering is that completely automated transformation
of models to code should be possible.
This is possible using a subset of UML 2, called
Executable UML or xUML.

Chapter 5 System modeling

71

Features of executable UML


To create an executable subset of UML, the number of model
types has therefore been dramatically reduced to these 3 key
types:
Domain models that identify the principal concerns in a system. They
are defined using UML class diagrams and include objects, attributes
and associations.
Class models in which classes are defined, along with their attributes
and operations.
State models in which a state diagram is associated with each class
and is used to describe the life cycle of the class.

The dynamic behavior of the system may be specified


declaratively using the object constraint language (OCL), or
may be expressed using UMLs action language.
Chapter 5 System modeling

72

UML diagram types


Activity diagrams, which show the activities involved in a
process or in data processing .
Use case diagrams, which show the interactions
between a system and its environment.
Sequence diagrams, which show interactions between
actors and the system and between system components.
Class diagrams, which show the object classes in the
system and the associations between these classes.
State diagrams, which show how the system reacts to
internal and external events.
Chapter 5 System modeling

73

Key points
A model is an abstract view of a system that ignores system details.
Complementary system models can be developed to show the
systems context, interactions, structure and behavior.
Context models show how a system that is being modeled is
positioned in an environment with other systems and processes.
Use case diagrams and sequence diagrams are used to describe the
interactions between users and systems in the system being
designed. Use cases describe interactions between a system and
external actors; sequence diagrams add more information to these by
showing interactions between system objects.
Structural models show the organization and architecture of a
system. Class diagrams are used to define the static structure of
classes in a system and their associations.
Chapter 5 System modeling

74

Key points
Behavioral models are used to describe the dynamic behavior
of an executing system. This behavior can be modeled from the
perspective of the data processed by the system, or by the
events that stimulate responses from a system.
Activity diagrams may be used to model the processing of data,
where each activity represents one process step.
State diagrams are used to model a systems behavior in
response to internal or external events.
Model-driven engineering is an approach to software
development in which a system is represented as a set of
models that can be automatically transformed to executable
code.
Chapter 5 System modeling

75

Key points
A software architecture is a description of how a software
system is organized.
Architectural design decisions include decisions on the type of
application, the distribution of the system, the architectural
styles to be used.
Architectures may be documented from several different
perspectives or viewssuch as a conceptual view, a logical
view, a process view, and a development view.
Architectural patterns are a means of reusing knowledge
about generic system architectures. They describe the
architecture, explain when it may be used and describe its
advantages and disadvantages.
Chapter 6 Architectural design

76

Key points
Models of application systems architectures help us
understand and compare applications, validate application
system designs and assess large-scale components for
reuse.
Transaction processing systems are interactive systems that
allow information in a database to be remotely accessed and
modified by a number of users.
Language processing systems are used to translate texts
from one language into another and to carry out the
instructions specified in the input language. They include a
translator and an abstract machine that executes the
generated language.
Chapter 6 Architectural design

77

Key points
Software design and implementation are inter-leaved activities. The
level of detail in the design depends on the type of system and
whether you are using a plan-driven or agile approach.
The process of object-oriented design includes activities to design the
system architecture, identify objects in the system, describe the design
using different object models and document the component interfaces.
A range of different models may be produced during an object-oriented
design process. These include static models (class models,
generalization models, association models) and dynamic models
(sequence models, state machine models).
Component interfaces must be defined precisely so that other objects
can use them. A UML interface stereotype may be used to define
interfaces.
Chapter 7 Design and
implementation

78

Key points
When developing software, you should always consider the
possibility of reusing existing software, either as components,
services or complete systems.
Configuration management is the process of managing changes to
an evolving software system. It is essential when a team of people
are cooperating to develop software.
Most software development is host-target development. You use an
IDE on a host machine to develop the software, which is transferred
to a target machine for execution.
Open source development involves making the source code of a
system publicly available. This means that many people can
propose changes and improvements to the software.
Chapter 7 Design and
implementation

79

Open source licensing


A fundamental principle of open-source development is
that source code should be freely available, this does not
mean that anyone can do as they wish with that code.
Legally, the developer of the code (either a company or an
individual) still owns the code. They can place restrictions on
how it is used by including legally binding conditions in an open
source software license.
Some open source developers believe that if an open source
component is used to develop a new system, then that system
should also be open source.
Others are willing to allow their code to be used without this
restriction. The developed systems may be proprietary and sold
as closed source systems.
Chapter 7 Design and
implementation

80

License models
The GNU General Public License (GPL). This is a so-called
reciprocal license that means that if you use open source
software that is licensed under the GPL license, then you must
make that software open source.
The GNU Lesser General Public License (LGPL) is a variant of
the GPL license where you can write components that link to
open source code without having to publish the source of these
components.
The Berkley Standard Distribution (BSD) License. This is a nonreciprocal license, which means you are not obliged to re-publish
any changes or modifications made to open source code. You
can include the code in proprietary systems that are sold.
Chapter 7 Design and
implementation

81

the basic COCOMO model with the detailed


COCOMO model
COCOMO consists of a hierarchy of three increasingly detailed
and accurate forms.
Basic COCOMO - is a static single-valued model that computes
software development effort (and cost) as a function of program
size expressed in estimated lines of code.
Intermediate COCOMO - computes software development effort as
function of program size and a set of "cost drivers" that include
subjective assessment of product, hardware, personnel and project
attributes.
Embedded COCOMO - incorporates all characteristics of the
intermediate version with an assessment of the cost driver's impact
on each step (analysis, design, etc.) of the software engineering
process.

Chapter 1 Introduction

82

What is Software Development Life Cycle? (SDLC)


System Development Life Cycle (SDLC) is the overall process of
developing information systems through a multi-step process from
investigation of initial requirements through analysis, design,
implementation and maintenance.
Draw a diagram for pure waterfall life cycle.

Chapter 1 Introduction

83

Draw a diagram for pure waterfall life cycle.

Chapter 1 Introduction

84

What is feasibility study? What are the contents


we should contain in the feasibility
report?
A feasibility study is an initial look at an existing
information processing system to decide how it might be
computerized or improved.
The contents that a feasibility report are:
A statement of purpose of the system.
A definition of system scope.
A list of deficiencies of the current system.
A statement of user requirements.
The cost and benefits of development.
A conclusion and recommendations.

Chapter 1 Introduction

85

What is data modeling? Give 5 examples for data


modeling.
Data modeling is the act of exploring data-oriented
structures. Like other modeling artifacts data models can
be used for a variety of purposes, from high-level
conceptual models to physical data models. From the
point of view of an object-oriented developer, data
modeling is conceptually similar to class modeling. With
data modeling you identify entity types whereas with
class modeling you identify classes. Data attributes are
assigned to entity types just as you would assign
attributes and operations to classes.

Chapter 1 Introduction

86

Sample Quiz Questions


What are the purposes of Data Flow diagrams, Entity-Relationship diagrams? Give
an example diagram of each

Chapter 1 Introduction

87

Sample Quiz Questions

Ans
(i) Cyclomate complexity, V (G)
V(G) = E-N+2
Where E is the no of flow graph edges and
N is the no of nodes .
So we have E = 8 N = 7
8-7+2 = 3

and

V(G) =

(ii) independent path


(1) 1,2,3,5,6,7
(2) 1,2,3,4,5,6,7
(3)1,2,3,4,6,7
Chapter 1 Introduction

88

Sample Quiz Questions

Chapter 1 Introduction

89

Sample Quiz Questions


One of the fault base testing techniques is
(A) unit testing. (B) beta testing. (C) Stress testing. (D) mutation
testing.
Changes made to an information system to add the desired but not
necessarily the required features is called
(A) Preventative maintenance.
(B) Adaptive maintenance.
(C) Corrective maintenance.
(D) Perfective maintenance.
All the modules of the system are integrated and tested as
complete system in the case of
(A) Bottom up testing (B) Top-down testing
(C) Sandwich testing (D) Big-Bang testing

Chapter 1 Introduction

90

Sample Quiz Questions

Theworsttypeofcouplingis
(A)Datacoupling.(B)controlcoupling.
(C)stampcoupling.(D)contentcoupling.

Themostimportantfeatureofspiralmodelis

(A)requirementanalysis.(B)riskmanagement.
(C)qualitymanagement.(D)configurationmanagement.

IEEE830-1993isaIEEErecommendedstandardfor

(A)Softwarerequirementspecification.(B)Softwaredesign.
(C)Testing.(D)Both(A)and(B)

Themodelinwhichtherequirementsareimplementedbycategoryis

(A)EvolutionaryDevelopmentModel(B)WaterfallModel
(C)Prototyping(D)IterativeEnhancementModel
Chapter 1 Introduction

91

Sample Quiz Questions


If every requirement stated in the Software Requirement Specification
(SRS) has only one interpretation, SRS is said to be
(A) correct. (B) unambiguous. (C) consistent. (D) verifiable.
A fault simulation testing technique is
(A) Mutation testing (B) Stress testing (C) Black box testing (D) White
box testing

Modules X and Y operate on the same input and output data, then the
cohesion is
(A) Sequential (B) Communicational (C) Procedural (D) Logical

SRS is also known as specification of


(A) White box testing (B) Stress testing (C) Integrated testing (D) Black
box testing
COCOMO model is
(A) Common Cost Estimation Model. (B) Constructive Cost Estimation
Model. (C) Complete Cost Estimation Model. (D) Comprehensive Cost
Estimation Model.
Chapter 1 Introduction

92

Sample Quiz Questions


Which of the following statements is true
(A) Abstract data types are the same as classes
(B) Abstract data types do not allow inheritance
(C) Classes cannot inherit from the same base class
(D) Object have state and behavior
The desired level of coupling is
(A) No coupling (B) Control coupling (C) Common coupling (D) Data coupling
In the spiral model risk analysis is performed
(A) In the first loop (B) in the first and second loop (C) In every loop
(D) before using spiral model

Chapter 1 Introduction

93

Sample Quiz Questions


For a well understood data processing application it is best to use
(A) The waterfall model (B) prototyping model
(C) the evolutionary model (D) the spiral model
Coupling and cohesion can be represented using a
(A) cause-effect graph (B) dependence matrix
(C) Structure chart (D) SRS

The symbol

represents

(A) mandatory 1 cardinality (B) mandatory many cardinality


(C) optional 0 or 1 cardinality (D) optional zero-many cardinality
The feature of the object oriented paradigm which helps code reuse is
(A) object. (B) class. (C) inheritance. (D) aggregation.
The tools that support different stages of software development life cycle are
called:
(A) CASE Tools (B) CAME tools (C) CAQE tools (D) CARE tools
Chapter 1 Introduction

94

Sample Quiz Questions


The level at which the software uses scarce resources is
(A) reliability (B) efficiency (C) portability (D) all of the above
If every requirement can be checked by a cost-effective process, then
the SRS is
(A) verifiable (B) traceable (C) modifiable (D) complete
Modifying the software to match changes in the ever changing
environment is called
(A) adaptive maintenance (B) corrective maintenance
(C) perfective maintenance (D) preventive maintenance
All activities lying on critical path have slack time equal to
(A) 0 (B) 1 (C) 2 (D) None of above
Alpha and Beta Testing are forms of
(A) Acceptance testing (B) Integration testing (C) System Testing (D)
Unit testing
Chapter 1 Introduction

95

Sample Quiz Questions


In function point analysis, number of general system characteristics
used to rate the system are
(A)10 (B) 14 (C) 20 (D) 12
An object encapsulates
(A) Data (B) Behaviour (C) State (D) Both Data and behaviour
Aggregation represents
(A) is_a relationship (B) part_of relationship (C) composed_of
relationship (D) none of above
If P is risk probability, L is loss, then Risk Exposure (RE) is computed
as
(A) RE = P/L (B) RE = P + L (C) RE = P*L (D) RE = 2* P *L
ER model shows the
(A) Static view. (B) Functional view. (C) Dynamic view. (D) All the
above.
Chapter 1 Introduction

96

Sample Quiz Questions


A wholesaler sells printer cartridges. The minimum order quantity is 5.
There is a 20% discount for orders of 100 or more printer cartridges.
You have been asked to prepare test cases using various values for the
number of printer cartridges ordered. Which of the following groups
contain three test inputs that would be generated using Boundary Value
Analysis?

Chapter 1 Introduction

97

Sample Quiz Questions

Given the following fragment of code, how many tests are


required for 100% decision coverage?
if width > length
then biggest_dimension = width
if height > width
then biggest_dimension = height
end_if
else biggest_dimension = length
if height > length
then biggest_dimension = height
end_if
end_if

Chapter 1 Introduction

98

Sample Quiz Questions

What are the different Methodologies in Agile Development


Model?
There are currently seven different Agile methodologies
1. Extreme Programming (XP)
2. Scrum
3. Lean Software Development
4. Feature-Driven Development
5. Agile Unified Process
6. Crystal
7. Dynamic Systems Development Model (DSDM)

Chapter 1 Introduction

99

Вам также может понравиться