0% found this document useful (0 votes)
61 views16 pages

Software Engineering (INFS-334) : Question Bank For Final Exam Preparation Fall Term 2014-15 (1435-36)

This document contains a sample exam for a software engineering course, with 10 multiple choice questions covering topics in software development lifecycles, roles in each phase of the SDLC, relationships between software engineering and other fields, software qualities, software process models, and the spiral model. Key phases of the waterfall model are outlined, as well as common activities across all process models like specification, design, validation, and evolution.

Uploaded by

zeinahmed15590
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views16 pages

Software Engineering (INFS-334) : Question Bank For Final Exam Preparation Fall Term 2014-15 (1435-36)

This document contains a sample exam for a software engineering course, with 10 multiple choice questions covering topics in software development lifecycles, roles in each phase of the SDLC, relationships between software engineering and other fields, software qualities, software process models, and the spiral model. Key phases of the waterfall model are outlined, as well as common activities across all process models like specification, design, validation, and evolution.

Uploaded by

zeinahmed15590
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

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.

A sample waterfall life cycle model comprises the fallowing phases :


*Requirement analysis and specification :
Requirement analysis is usually the first phase of large-scale software
development project. It is undertaken after a feasibility study has been
performed to define the precise costs and benefits of software system.

*System design and specification :


Once the requirements for a system have been documented , software
engineers design a software system to meet them .
This phase is sometime split into two subphases : architectural or high-
level design and detailed design . Architectural design entails defining the
overall organization of the system in the terns of high-level components
and interactions among them.

*Coding and module testing :


in this phase, the engineer produce the actual code that will be delivered
to the customer as the running system.

*Integration and system testing :


All the modules that have been developed before and tested individually
are put together –integrated- in this phase and are tested as a whole
system.

*Delivery and maintenance :


once the system passes all the tests , it is delivered to the customer and
enters the maintenance phase. Any modification made to the system after
the initial delivery are usually attributed this phase.

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 ..

Q4: Classify the Software Qualities according to (internal /external) concern


and (process / product) based domain classification.
 External versus Internal Qualities
External qualities are visible to the users of the system; internal qualities
concern the developers of system. In general , users of software care only
about external qualities, but it is the internal qualities—which deal largely with

2
the structure of the software—the help developer achieve the external
qualities ..

 Product and process Qualities


We use a process to produce the software product. We can attribute some
qualities the process, although process qualities often are closely related to
product qualities.
The word product usually refers to what is delivered to the customer ..

Q5: List down the functionality and behavior of software qualities


mentioned in chapter 2.
 Correctness, Reliability , and Robustness
 Robustness
 Performance
 Usability
 Maintainability
 Reparability
 Evolvability
 Reusability

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.

fundamental activities that are common in all process models :

1. Software specification The functionality of the software and constraints on its


operation must be defined.

2. Software design and implementation The software to meet the specification


must be produced.

3
3. Software validation The software must be validated to ensure that it does what
the customer wants.

4. Software evolution The software must evolve to meet changing customer


needs.

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:

1. Requirements analysis and definition The system’s services, constraints, and


goals are established by consultation with system users. They are then defined in
detail and serve as a system specification.

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.

5. Operation and maintenance Normally (although not necessarily), this is the


longest life cycle phase. The system is installed and put into practical use.
Maintenance involves correcting errors which were not discovered in earlier
stages of the life cycle, improving the implementation of system units and
enhancing the system’s services as new requirements are discovered.

Q8: Compare the two fundamentals types of evolutionary development


process model ?
Evolutionary development :

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.

Q9: What does an Increment mean in software process? Interpret the


advantages of Incremental Delivery for target user ?
While the initial requirements specification stage and the validation stage are
comparable with other software processes, the intermediate stages in a reuse
oriented process are different. These stages are:

1. Component analysis Given the requirements specification, a search is made


for components to implement that specification. Usually, there is no exact match
and the components that may be used only provide some of the functionality
required.

2. Requirements modification During this stage, the requirements are analyzed


using information about the components that have been discovered. They are
then modified to reflect the available components. Where modifications are
impossible, the component analysis activity may be re-entered to search for
alternative solutions.

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.

4. Development and integration Software that cannot be externally procured is


developed, and the components and COTS systems are integrated to create the
new system. System integration, in this model, may be part of the development
process rather than a separate activity

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.

Spiral development the development of the system spirals outwards from an


initial outline through to the final developed system.

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.

4. Planning The project is reviewed and a decision made whether to continue


with a further loop of the spiral. If it is decided to continue, plans are drawn up for
the next phase of the project.

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 :

1-architectural design the sub-system making up the system and their


relationships are identified and documented

2- abstract specification for each sub-system, an abstract specification of its


services and the constraints under which it must operate is produced.

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.

4-component design service are allocated to components and the interfaces of


these components are designed.

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.

Q12: Why Software Project Management (SPM) is difficult than engineering


project management. List down some of differences that make software
management difficult.
1. The product is intangible the manager of a shipbuilding or a civil engineering
project can see the product being developed. If a schedule slips, the effect on the
product is visible—parts of the structure are obviously unfinished. Software is
intangible. It cannot be seen or touched. Software project managers cannot see
progress. , they rely on others to produce the documentation needed to review
progress .

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.

Q13: Software project planning comprised on different plans, list down


some types of plan along with their description.
Plan Description
Quality plan Describes the quality procedures and standards
that will be used in a project.
Validation plan Describes the approach, resources, and
schedule used for system validation
Configuration Describes the configuration management
management plan procedures and structures to be used.
Maintenance plan Predicts the maintenance requirements of the
system, maintenance costs and effort required.
Staff development plan Describes how the skills and experience of the
project team members will be developed.

Q14: What is importance of milestones in software deliverables? Explain


with the help of a block Diagram.
Managers need information to do their job .Because software is intangible this
information can only be provided as reports and documents that describe the
state of the software being developed. Without this information , it is impossible
to assess how well the work is progressing, and cost estimates and schedules
cannot be updated.

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

task along with dependencies.

Activities : Duration (Days): Dependencies:


T1 10 -
T2 15 T1
T3 10 T1,T2(M1)
T4 20 -
T5 10 -
T6 15 T3,T4 (M2)
T7 20 T3
T8 35 T7
T9 15 T6
T10 5 T5,T9 (M3)

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

Q16: Distinguish between Software-Inspection and Software-Testing as two


complementary approaches of system checking and analysis.

1- software inspections or peer reviews analyses and check system


representations such as the requirements document , design diagrams and the
program source code. You can use inspections at all stages of the process.
Inspections may be supplemented by some automatic analysis of the source text
of a system or associated documents. Software inspections and automated
analyses are static V&V techniques, as you don't need to run the software on a
computer.

2- software testing involves running an implementation of the software with test


data. You examine the outputs of the software and its operational behavior to
check that it is performing as required. Testing is a dynamic technique of
verification and validation.

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.

2. User expectations it is a sad reflection on the software industry that many


users have low expectations of their software and are not surprised when it fails
during use . They are willing to accept these system failures when the surprised
when failures because the benefits of use outweigh the disadvantages.
However ,user tolerance of system failures has been decreasing since the
1990s.it is now less acceptable to deliver unreliable systems, so software
companies must devote more effort to verification and validation.

3. Marketing environment When a system is marketed, the sellers of the system


must take into account competing programs, the price that customers are willing
to pay for a system and the required schedule for delivering that system. Where
a company has few competitors ,it may decide to release a program before it has
been fully tested and debugged because they want to be the first into the market.
Where customer are not willing to pay high prices for software ,they may be
willing to tolerate more software faults. All of these factors must be considered
when deciding how much effort should be spent on the V&V process.

Q18: Who are the Role / Member in Software Inspection Process? What is
their Responsibility / Description of work.

Role Description

Author or owner The programmer or designer responsible for producing


the program or document. Responsible for fixing
defects discovered during the inspection process.
Inspector Find errors, omissions and inconsistencies in
programs and documents. May also identify broader
issues that are outside the scope of the inspection
team.
Reader Presents the code or document at an inspection
meeting.

12
Scribe Records the results of the inspection meeting

Chairman or Manages the process and facilitates the inspection.


moderator Reports process results to the chief moderator.
Chief moderator Responsible for inspection process improvement,
checklist updating, standards development .

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.

Q21: What are the two major goals of Software Testing?


1. To demonstrate to the developer and the customer that the software meets its
requirements. For custom software, this means that there should be at least one
test for every requirement in the user and system requirements document. For
generic software products, it means that there should be tests for all of the
system features, that will be incorporated in the product release. As discussed in
chapter4, some system may have an explicit acceptance testing phase where the
customer formally checks that the delivered system conforms to its specification.

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.

Q22: Explain Integration testing as verification technique and Release


Testing as validation technique.

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.

Q23: Why Release Testing is known as Black-Box Testing.


Release Testing is usually Black-Box Testing process where the test are derived
from the system specification . The system is treated as a black box whose
behavior can only determined by studding it’s input and its related output .
Another name for this is function testing because the tester is only concerned with
the functionality and not the implementation of the software.

Q24: Why performance testing is done after system integration?

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

Q25: What features do we test in Interface testing and how it is important?

1. Parameter interfaces These are interfaces where data or sometimes function


references are passed from one component to another.

2. Shared memory interfaces These are interfaces where a block of memory is


shared between components. Data is placed in the memory by one subsystem
and retrieved from there by other sub-systems.

3. Procedural interfaces These are interfaces where one component


encapsulates a set of procedures that can be called by other components.
Objects and reusable components have this form of interface.

4. Message passing interfaces These are interfaces where one component


requests a service from another component by passing a message to it. A return
message includes the results of executing the service. Some object-oriented
systems have this form of interface, as do client–server systems.

Q26: What are the critical factors in people management?

1) Consistency people in a project team should all be treated in a comparable


way, while no one expects all rewards to be identical, people should not feel that
their contribution to the organization is undervalued.

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

You might also like