Software Engineering (INFS-334) : Question Bank For Final Exam Preparation Fall Term 2014-15 (1435-36)
Software Engineering (INFS-334) : Question Bank For Final Exam Preparation Fall Term 2014-15 (1435-36)
Q1: What is the purpose of Software Development Life Cycle (SDLC) in Software
Engineering? Explain the phases of SDLC with the help of Diagram.
1
Q2: Describe the activities that Software Team performs in each phase of SDLC.
* A software Engineer must, of course, be a good programmer , be well versed in data
structures and algorithms , and be fluent in one or more programing language . These
are requirements for “programming-in-the-small” roughly defined as building programs
that can be written in their entirety by a single individual .
* The software Engineer must be familiar with serval design approaches, be able to translate
vague requirements and desires into precise specifications, and be able to converse with
user of a system in terms of the application rather than in “computers”
Q3: Describe the Role / Relation of Software Engineering with other fields like:
Programming Languages
The influence of software engineering on programming language is evident :
Programming language are the central tools used in software development ..
Operating Systems
The influence of operating systems on software engineering is quite strong
primarily because operating system were the first really large software
systems built , and therefore, they were first instances of software that
needed to be engineered ..
Databases
Database Represent another class of large software systems whose
development has influenced software engineering through the discovery of
new design techniques ..
Management Sciences
Much Of software engineering is involved with the management issues . As in
any kind of large, multiperson endeavor, we need to do project estimation,
project scheduling, human resource planning, task decomposition and
assignment, and project tracking ..
2
the structure of the software—the help developer achieve the external
qualities ..
Q6: What is a Software Process Model? What are the fundamental activities
that are common in all process models?
software process model is a simplified representation of a software process.
Each process model represents a process from a particular perspective, and thus
provides only partial information about that process.
3
3. Software validation The software must be validated to ensure that it does what
the customer wants.
Q7: List down the phases of waterfall process model and associated
activities in each phase.
The principal stages of the model map onto fundamental development activities:
2. System and software design The systems design process allocates the
requirements to either hardware or software systems by establishing an overall
system architecture. Software design involves identifying and describing the
fundamental software system abstractions and their relationships.
3. Implementation and unit testing During this stage, the software design is
realized as a set of programs or program units. Unit testing involves verifying that
each unit meets its specification.
4. Integration and system testing The individual program units or programs are
integrated and tested as a complete system to ensure that the software
requirements have been met. After testing, the software system is delivered to
the customer.
1-Exploratory development where the objective of the process is to work with the
customer to explore their requirements and deliver final system. The
development starts with the parts of the system that are understood. The system
evolves by adding new features by the customer.
4
2-throwaway prototyping where the objective of the evolutionary development
process is to understand the customer's requirements and hence develop a
better requirements definition for the system. The prototype concentrates on
experimenting with the customer requirements that are poorly understood.
3. System design with reuse During this phase, the framework of the system is
designed or an existing framework is reused. The designers take into account the
components that are reused and organize the framework to cater for this. Some
new software may have to be designed if reusable components are not available.
Q10: Draw the diagram of Spiral Process Model to explain its iterative
nature. What is the major activity involved in spiral model that is not
available in other process models.
1. Objective setting Specific objectives for that phase of the project are defined.
Constraints on the process and the product are identified and a detailed
management plan is drawn up. Project risks are identified. Alternative strategies,
5
depending on these risks, may be planned. 2. Risk assessment and reduction
For each of the identified project risks, a detailed analysis is carried out. Steps
are taken to reduce the risk. For example, if there is a risk that the requirements
are inappropriate, a prototype system may be developed.
3. Development and validation After risk evaluation, a development model for the
system is chosen. For example, throwaway prototyping may be the best
development approach if user interface risks are dominant. If safety risks are the
main consideration, development based on formal transformations may be the
most appropriate process, and so on. If the main identified risk is sub-system
integration.
6
The main difference between the spiral model and other software process
models is its explicit recognition of risk in the spiral model.
Q11: Software Design and Implementation are the two major phases in
software development draw a block diagram to show associated design
activities and design products ?
The specific design process activates are :
3-interface design for each sub-system , its interface with other sub-systems is
designed and documented. this interface specification must be unambiguous as
it allows the sub-system to be used without knowledge of the sub-system
operation.
7
5- data structure design the data structures used in the system implementation
are designed in detail and specified.
6- algorithm design the algorithms used to provide services are designed in detail
and specified.
2. Large software projects are often ‘one-off’ projects Large software projects
are usually different in some ways from previous projects. Therefore, even
managers who have a large body of previous experience may find it difficult to
anticipate problems. Furthermore, rapid technological changes in computers and
communications can make a manager’s experience obsolete. Lessons learned
from previous projects may not be transferable to new projects.
8
3.there are no standard Software processes in engineering disciplines with a
long history, the process is tried and tested. The engineering process for some
types of system ,such as bridges and buildings is well understood. However,
software processes vary dramatically from one organization to another. Although
our understanding of these processes has developed significantly in the past few
years , we still cannot reliably predict when a particular software process is likely
to lead to development problems. This is especially true when the software
project is part of a wider systems engineering project.
9
Milestone reports need not be large documents. They may simply be a short
report of what has been completed . Milestones should represent the end of a
distinct , logical stage in the project. A deliverable is a project result that is
delivered to the customer. It is usually deliverable at the end of some major
project phase such as specification or design. Deliverables are usually
milestones, but milestones need not be deliverables.
Q15: Draw Activity Network and Activity Bar Chart for the below table of
70
10
T10 T10
65
T10 T9
90
T10 55 T8
T10 T7
T10
10 50
T6
T5
20
T4 35
T3
25
T10
T1 T2
10
T1
0 10 20 30 40 50 60 70 80 90 100
11
Q17: How User-Expectations and Marketing-Environment force the
software company to perform verification and validation.
1. Software function the level of confidence required depends on how critical the
software is to an organization. For example, the level of confidence required for
software that is used to control a safety-critical system is very much higher than
that required for a prototype software system that has been developed to
demonstrate some new ideas.
Q18: Who are the Role / Member in Software Inspection Process? What is
their Responsibility / Description of work.
Role Description
12
Scribe Records the results of the inspection meeting
Q19: List Down the classification of Faults and Checks during Software Inspection
Fault class Inspection check
Data faults Are all program variable initialised before their values are
used?
Have all constants been named?
Should the upper bound of arrays be equal to the size of the
array or size-1?
If character string are used, is a delimiter explicitly assigned?
Is there any possibility of buffer overflow?
Control faults For each conditional statement, is the condition correct?
Are compound statement correctly bracketed?
In case statement, are all possible cases accounted for?
If a break is required after each case in case statement, has it
been included?
Input/ output Are all input variables used?
faults Are all output variables assigned a value before they are
output?
Can unexpected input cause corruption?
Interface Do all function and method calls have the correct number of
faults parameters?
Do formal and actual parameter types match?
Are the parameter in the right order?
If components access shared memory, do they have the same
model of the shared memory structure?
Storage If a linked structure modified, have all links been correctly
management resigned?
faults If dynamic storage is used, has space been allocated correctly?
Is space explicitly de-allocated after it is no longer required?
Exception Have all possible error condition been taken into count?
management
faults
13
Q20: Relate some of the Programming errors with Software Inspection
checks as examples.
2. To discover faults or defect in the software where the behavior of the software
is incorrect, undesirable, or does not conform to its specification. Defect testing is
concerned with rooting out all kinds undesirable system behavior such as system
crashes, unwanted interactions with other systems, incorrect computations, and
data corruption.
1- Integration testing, where the test team have access to the source
code of the system. When a problem is discovered, the integration
team tries to find the source of the problem and identify the component
that have to be debugged. Integration testing is mostly concerning with
findings defects in the system.
2- Release testing, where a version of the system that could be released
to users is tested. Here, the test team is concerned with validating that
the system meets its requirement and with insuring that the system is
dependable.
14
Once a system has been completely integrated, it is possible to test the system
for emergent properties(see chapter2)such as performance and reliability.
performance tests have to be designed to ensure that the system can process
. its increased until the system performance becomes unacceptable
2) Respect Different people have different skills and managers should respect
these differences. All members of the team should be given an opportunity to
make a contribution . in some cases , of course, you will find that people simply
do not fit into a team and cannot continue, but it is important not to jump to
conclusions about this.
3) Inclusion people contribute effectively when they feel that others listen to them
and take account of their proposals . it is important to develop a working
environment where all views, even those of the most junior staff , are considered.
4) Honesty As a manager , you should always be honest about what is going well
and what is going badly in the team . you should also be honest about your level
15
of technical knowledge and be willing to defer to staff with more knowledge when
necessary . if you are less than honest , you will eventually be found out and will
lose the respect of the group.
16