SOFTWARE ENGINEERING
TWO MARKS
UNIT I SOFTWARE PRODUCT AND PROCESS
1. What is software engineering?
Software engineering is a
discipline in which theories, methods and tools are applied to develop professional
software.
2. What is Software?
Software is nothing
but a collection of computer programs that are related documents that are
indented to provide desired features, functionalities and better
performance.
3. What are the characteristics of the
software?
* Software is engineered, not
manufactured.
* Software does not wear out.
* Most software is custom built rather than
being assembled from components.
4.
What are the various categories of software?
* System software
* Application software
* Engineering/Scientific software
* Embedded software
5.
What are the challenges in software?
* Copying with legacy systems.
* Heterogeneity challenge
* Delivery times challenge.
6.
Define software process.
Software process is defined as the structured
set of activities that are required to develop the software system.
7.
What are the fundamental activities of a software process?
* Specification
* Design and implementation
* Validation
* Evolution
8.
What are the umbrella activities of a software process?
* Software project
tracking and control.
* Risk management.
* Software Quality
Assurance.
* Formal Technical
Reviews.
* Software Configuration
Management.
* Work product preparation
and production.
* Reusability management.
* Measurement.
9. What are the merits of incremental
model?
i) The incremental model can be adopted when there is less number of
people involved in the project.
ii) Technical risks can be managed with each increment.
iii) For a very small time span, at least core product can be
delivered to the customer.
10. List the task regions in the Spiral
model.
* Customer communication - it is suggested to establish customer
communication.
* Planning – All planning activities are carried out
* Risk analysis – The tasks required to calculate technical and
management risks.
* Engineering – tasks required to build one or more representations
of applications
* Construct and release – tasks
required to construct, test, install the applications
* Customer evaluation - tasks
are performed and implemented at installation stage based on the customer
evaluation.
11. What are the drawbacks of spiral model?
i) It is based on customer communication. If the communication is
not proper then the software product that gets developed will not be the up to
the mark.
ii) It demands considerable risk assessment. If the risk assessment
is done properly then only the successful product can be obtained.
12. What is System Engineering?
System Engineering means designing, implementing, deploying and operating
systems which include hardware, software and people.
13. List the process maturity levels in
SEIs CMM.
Level 1: Initial - Few
processes are defined and individual efforts are taken.
Level 2: Repeatable
– To track cost schedule and functionality basic project management processes are established.
Level 3: Defined – The process is standardized,
documented and followed.
Level 4: Managed
– Both the software process and product are quantitatively understood and
controlled using detailed measures.
Level 5: Optimizing
– Establish mechanisms to plan and implement change.
14. What is an effector process?
The effector process is a process that verifies itself. The effector
process exists in certain criteria.
15. Define the computer based system.
The computer based system can be defined as “a set or an arrangement
of elements that are organized to accomplish some predefined goal by
processing information”.
16. What does Verification represent?
Verification represents the set of activities that are carried out
to confirm that the software correctly implements the specific functionality.
17.
What does Validation represent?
Validation represents the set of activities that ensure that the
software that has been
built is satisfying the customer requirements.
18. What are the steps followed in testing?
1) Unit testing
- The individual components are tested in this type of testing.
2) Module
testing – Related collection of independent components are tested.
3) Sub-system testing –Various
modules are integrated into a subsystem and the whole subsystem is tested.
4) System testing – The whole system
is tested in this system.
5)
Acceptance testing – This type of testing involves testing of the system with
customer data.
19. What is the use of CMM?
Capability
Maturity Model is used in assessing how well an organization’s processes allow to complete and
manage new software projects.
20. Name the Evolutionary process Models.
i. Incremental model
ii.
Spiral model
iii. WIN-WIN spiral model
iv. Concurrent
Development
21. What is meant by Software engineering
paradigm?
The development
strategy that encompasses the process, methods and tools and generic phases is
often referred to as a process model or software engineering paradigm.
22. What are the various elements for
computer based system?
1. Software 2.
Hardware
3. People 4.
Database
5. Documentation 5.
Procedures.
23. Define dynamic verification?
Dynamic
verification is performed during the execution of software and dynamically
checks its behavior.
24. Define static verification?
Static
verification is a process to check some requirements of software doing a
physical inspection of it. Example: software metric calculation.
UNIT – II
SOFTWARE
REQUIREMENTS
1. What is requirement engineering?
Requirement
engineering is the process of establishing the services that the customer
requires from the system and the constraints under which it operates and is developed.
2. What are the various types of
traceability in software engineering?
i. Source
traceability – These are basically the links from requirement to stakeholders
ii. Requirements
traceability – These are links between dependant requirements.
iii. Design traceability – These are
links from requirements to design.
3. Define software prototyping.
Software
prototyping is defined as a rapid software development for validating the requirements.
4. What are the benefits of prototyping?
i. Prototype serves
as a basis for deriving system specification. ii.
Design quality can be improved. iii.
System can be maintained easily. iv.
Development efforts may get reduced.
v. System
usability can be improved.
5. What are the prototyping approaches in
software process?
i. Evolutionary
prototyping – the initial prototype is prepared and it is then refined through
number of stages to final stage.
ii. Throw-away prototyping – a rough
practical implementation of the system is produced. The requirement problems
can be identified from this implementation.
6. What are the advantages of evolutionary
prototyping?
i. Fast delivery
of the working system. ii.
User is involved while developing the system. iii.
More useful system can be delivered. iv.
Specification, design and implementation work in co-ordinate manner.
7. What are the various Rapid prototyping
techniques?
i. Dynamic high
level language development. ii.
Database programming. iii.
Component and application assembly.
8. What is the use of User Interface
prototyping?
This prototyping is used to pre-specify the look and feel of user
interface in an effective
way.
9. What are the characteristics of SRS?
i. Correct – The SRS should be made up to date
when appropriate requirements are identified.
ii. Unambiguous – When the requirements are
correctly understood then only it is possible to write an unambiguous software.
iii. Complete – To make SRS complete, it should
be specified what a software designer wants to create software.
iv. Consistent – It should be consistent with
reference to the functionalities identified.
v. Specific – The requirements should be
mentioned specifically.
vi. Traceable – What is the need for mentioned
requirement?
10. What is data modeling?
Data modeling is
the basic step in the analysis modeling. In data modeling the data objects are
examined independently of processing. The data model represents how data are related
with one another.
11. What is a data object?
Data object is a
collection of attributes that act as an aspect, characteristic, quality, or descriptor of the
object.
12. What are attributes?
Attributes are
the one, which defines the properties of data object.
13. What is cardinality in data modeling?
Cardinality in
data modeling, cardinality specifies how the number of occurrences of one object is
related to the number of occurrences of another object.
14. What does modality in data modeling
indicates?
Modality
indicates whether or not a particular data object must participate in the relationship.
15. What is ERD?
Entity
Relationship Diagram is the graphical representation of the object relationship pair. It is mainly
used in database applications.
16. What is DFD?
Data Flow
Diagram depicts the information flow and the transforms that are applied on the
data as it moves from input to output.
17. What does Level0 DFD represent?
Level 0 DFD is
called as ‘fundamental system model’ or ‘context model’. In the context model
the entire software system is represented by a single bubble with input and
output indicated by incoming and outgoing arrows.
18. What is a state transition diagram?
State transition
diagram is basically a collection of states and events. The events cause the
system to change its state. It also represents what actions are to be taken on the occurrence of particular
event.
19.
Define Data Dictionary.
The data dictionary
can be defined as an organized collection of all the data elements of the
system with precise and rigorous definitions so that user and system analyst
will have a common understanding of inputs, outputs, components of stores and
intermediate calculations.
20.
What are the elements of Analysis model?
i. Data Dictionary
ii. Entity Relationship Diagram
iii. Data Flow Diagram
iv. State Transition Diagram
v. Control Specification
vi. Process specification.
21. What are functional requirements?
Functional
requirements are” statements of services the system should provide how the
system should react to particular input and how the system should behave in
particular situation.
22. What are non functional requirements?
Non
functional requirements are constraints on the services or functions offered by
the system such as timing constraints, constraints on the development process, standards,
etc……..
23. What is the outcome of feasibility
study?
The
outcome of feasibility study is the results obtained from the following
questions:
·
Which system contributes to
organizational objectives?
·
Whether the system can be engineered? Is it within
the budget?
·
Whether the system can be
integrated with other existing system?
24. What is meant by structural analysis?
The structural analysis is mapping of problem
domain to flows and transformations. The system can be modeled by using Entity
Relationship diagram, Data flow diagram and Control flow diagrams.
UNIT – III ANALYSIS,
DESIGN CONCEPTS AND PRINCIPLES
1. What are the elements of design model?
i. Data design ii.
Architectural design iii.
Interface design iv.
Component-level design
2. Define design process.
Design process is a sequence of steps carried through which the
requirements are translated into a system or software model.
3. List the principles of a software
design.
i. The design process should not suffer from “tunnel vision”
ii. The design should be traceable to the analysis model.
iii. The design should exhibit uniformity and integration.
iv. Design is not coding.
v. The design should not reinvent the wheel.
4. What is the benefit of modular design?
Changes made during testing and maintenance becomes manageable and
they do not affect other modules.
5. What is a cohesive module?
A cohesive module performs only “one task” in software procedure with
little interaction with other modules. In other words cohesive module performs
only one thing.
6. What are the different types of
Cohesion?
i. Coincidentally cohesive - The modules in which the set I\of tasks
are related with each other loosely.
ii. Logically cohesive – A
module that performs the tasks that are logically related with each other.
iii. Temporal cohesion – The
module in which the tasks need to be executed in some specific time span.
iv. Procedural cohesion –
When processing elements of a module are related with one another and must be
executed in some specific order.
v.
Communicational cohesion – When the processing elements of a module share the
data then such module is called communicational cohesive.
7. What is coupling?
Coupling is the measure of interconnection among modules in a program
structure. It depends on the interface complexity between modules.
8. What are the various types of coupling?
i. Data coupling – The data coupling is possible by parameter
passing or data interaction.
ii.
Control coupling – The modules share related control data in control coupling.
iii. Common coupling – The common data or a global data is shared
among modules.
iv.
Content coupling – Content coupling occurs when one module makes use of data or
control information maintained in another module.
9. What are the common activities in design
process?
i. System structuring – The system is subdivided into principle
subsystems components and communications between these subsystems are
identified.
ii. Control modeling – A model of control relationships between
different parts of the system is established.
iii. Modular decomposition – The identified subsystems are
decomposed into modules.
10.
What are the benefits of horizontal partitioning?
i. Software that is easy to test.
ii. Software that is easier to maintain.
iii. Propagation of fewer side effects.
iv. Software that is easier to extend.
11. What is vertical partitioning?
Vertical partitioning often called factoring suggests that the
control and work should be distributed top-down in program structure.
12. What are the advantages of vertical
partitioning?
i. These are
easy to maintain changes.
ii. They reduce
the change impact and error propagation.
13. What are the various elements of data
design?
i. Data object –
The data objects are identified and relationship among various data objects can
be represented using ERD or data dictionaries.
ii. Databases – Using software design
model, the data models are translated into data structures and data bases at
the application level.
iii. Data warehouses – At the
business level useful information is identified from various databases and the
data warehouses are created.
14. List the guidelines for data design.
i. Apply
systematic analysis on data.
ii. Identify
data structures and related operations.
iii. Establish
data dictionary.
iv. Use
information hiding in the design of data structure.
v. Apply a
library of useful data structures and operations.
15. Name the commonly used architectural
styles.
i. Data centered
architecture.
ii. Data flow
architecture.
iii. Call and
return architecture.
iv.
Object-oriented architecture.
v. Layered
architecture.
16. What is Transform mapping?
The transform mapping is a set of
design steps applied on the DFD in order to map the transformed flow
characteristics into specific architectural style.
17. What is a Real time system?
Real time system
is a software system in which the correct functionalities of the system are dependent upon results
produced by the system and the time at which these results are produced.
18. What are the objectives of Analysis
modeling?
i. To describe
what the customer requires.
ii. To establish
a basis for the creation of software design.
iii. To devise a set of valid requirements after which the software can be
built.
19. What is an Architectural design?
The
architectural design defines the relationship between major structural elements
of the software, the “design patterns” that can be used to achieve the
requirements that have been defined for the system.
20. What is data design?
The
data design transforms the information domain model created during analysis
into the data structures that will be required to implement the software.
21. What is interface design?
The
interface design describes how the software communicates within itself, with
systems that interoperate with it, and with humans who use it.
22. What is component level design?
The
component level design transforms structural elements of the software
architecture into a procedural description of software components.
23. What is software design?
Software
design is an iterative process through which the requirements are translated
into a “blueprint” for constructing the software.
24. What is user interface design?
User
interface design creates an effective communication medium between a human and
a computer.
25. What is system design?
System
design process involves deciding which system capabilities are to be
implemented in software and which in hardware.
26. What are data acquisition systems?
Systems
that collect data from sensors for subsequent processing and analysis are
termed as data acquisition systems. Data collection processes and processing
processes may have different periods and deadlines.
UNIT
– IV TESTING
1. Define software testing?
Software testing is a critical
element of software quality assurance and represents the ultimate review of
specification, design, and coding.
2. What are the objectives of testing?
i. Testing is a
process of executing a program with the intend of finding an error.
ii. A good test
case is one that has high probability of finding an undiscovered error.
iii. A
successful test is one that uncovers as an-yet undiscovered error.
3. What are the testing principles the
software engineer must apply while performing the software testing?
i. All tests
should be traceable to customer requirements.
ii. Tests should
be planned long before testing begins.
iii. The pareto
principle can be applied to software testing-80% of all errors uncovered during
testing will likely be traceable to 20% of all program modules.
iv. Testing
should begin “in the small” and progress toward testing “in the large”. v.
Exhaustive testing is not possible.
vi. To be most
effective, an independent third party should conduct testing.
4. What are the two levels of testing?
i. Component
testing - Individual components are tested. Tests are derived from developer’s
experience.
ii. System
Testing - The group of components are integrated to create a system or
sub-system is done. These tests are based on the system specification.
5. What are the various testing activities?
i. Test planning
ii. Test case
design
iii. Test
execution
iv. Data
collection
v. Effective
evaluation
6. Write short note on black box testing.
The black box
testing is also called as behavioral testing. This method
fully focus on the functional requirements
of the software. Tests are derived that fully exercise all functional
requirements.
7. What is equivalence partitioning?
Equivalence
partitioning is a black box technique that divides the input domain into
classes of data. From this data test cases can be derived. Equivalence class
represents a set of valid or invalid states for input conditions.
8. What is a boundary value analysis?
A boundary value
analysis is a testing technique in which the elements at the edge of the domain
are selected and tested. It is a test case design technique that complements
equivalence partitioning technique.
9. What are the reasons behind to perform
white box testing?
There are three
main reasons behind performing the white box testing.
1. Programmers may have some incorrect assumptions while designing
or implementing some functions.
2. Certain assumptions on
flow of control and data may lead programmer to make design errors. To uncover
the errors on logical path, white box testing is must.
3. There may be certain typographical errors that remain undetected
even after syntax and type checking mechanisms. Such errors can be uncovered
during white box testing.
10. What is cyclomatic complexity?
Cyclomatic
complexity is software metric that gives the quantitative
Measure of logical complexity of the
program.
11. How to compute the cyclomatic
complexity?
The cyclomatic
complexity can be computed by any one of the following ways. 1. The numbers of regions of the flow graph
correspond to the cyclomatic complexity.
2.
Cyclomatic complexity (G), for the flow graph G, is defined as: V(G)=E-N+2, E
-- number of flow graph edges, N -- number of flow graph nodes
3.
V(G) = P+1 Where P is the number of predicate nodes contained in the flow
graph.
12. Distinguish between verification and
validation.
Verification
refers to the set of activities that ensure that software correctly implements
a specific function.
Validation refers
to a different set of activities that ensure that the software that has been
built is traceable to the customer requirements.
13. What are the various testing strategies
for conventional software?
i. Unit testing
ii. Integration
testing.
iii. Validation
testing.
iv. System
testing.
14. Write about drivers and stubs.
Drivers and stub
software need to be developed to test incompatible software.
The “driver” is a program that accepts the
test data and prints the relevant results.
The “stub” is a subprogram that uses the
module interfaces and performs the minimal data manipulation if required.
15. What are the approaches of integration
testing?
The integration
testing can be carried out using two approaches.
1. The
non-incremental testing.
2. Incremental
testing.
16. What are the advantages and
disadvantages of big-bang?
Advantage:
This approach is simple.
Disadvantages:
It is hard to debug.
It is not easy to isolate errors while testing.
In this approach it is not easy to validate test results.
17. What are the benefits of smoke testing?
* Integration
risk is minimized.
* The quality of
the end-product is improved.
* Error
diagnosis and correction are simplified.
* Assessment of
program is easy.
18. What are the conditions exists after
performing validation testing?
* The function
or performance characteristics are according to the specifications and are
accepted.
* The
requirement specifications are derived and the deficiency list is created.
19. Distinguish between alpha and beta
testing
Alpha and beta
testing are the types of acceptance testing.
Alpha test : The alpha
testing is attesting in which the version of complete software is tested by the
customer under the supervision of developer. This testing is performed at
developer’s site.
Beta test : The beta testing
is a testing in which the version of the software is tested by the customer
without the developer being present. This testing is performed at customer’s
site.
20. What are the various types of system testing?
1. Recovery
testing – is intended to check the system’s ability to recover from
failures.
2. Security
testing – verifies that system protection mechanism prevent improper
penetration or data alteration.
3. Stress
testing – Determines breakpoint of a system to establish
maximum service level.
4. Performance
testing – evaluates the run time performance of the
software, especially
real-time software.
21. Define debugging.
Debugging is
defined as the process of removal of defect. It occurs as a consequence of
successful testing.
22. What are the common approaches in
debugging?
Brute force
method:
The memory dumps and run-time
tracks are examined and program with write statements is loaded to obtain clues
to error causes.
Back tracking
method:
The source code is examined by looking backwards from symptom to
potential causes of errors.
Cause elimination
method:
This method uses binary partitioning to reduce the number of locations
where errors can exists
23. What is meant by structural testing?
In structural
testing derivation of test cases is according to program structure. Hence knowledge
of the program is used to identify additional test cases.
24. What is meant by regression testing?
Regression
testing is used to check for defects propagated to other modules by changes
made to existing program. Thus, regression testing is used to reduce the side
effects of the changes.
25. What is meant by unit testing?
The
unit testing focuses verification effort on the smallest unit of software
design, the software component or module.
No comments:
Post a Comment