Software Engineering-2nd Internal
Software Engineering-2nd Internal
Risk is an expectation of loss, a potential problem that may or may not occur in the future.It is generally caused
due to lack of information, control or time.
A possibility of suffering from loss in software development process is called a software risk. Loss can be
anything, increase in production cost, development of poor quality software, not being able to complete the
project on time.
Risk assessment simply means to describe the overall process or method to identify risk and problem factors
that might be harmful to software development process
. It is actually a systematic examination of a project /task to simply identify significant risks, problems, hazards,
and then to find out way to reduce risk.
Risk containment means the overall strategic planning or steps or methods or procedures to accept the risk, to
avoid the risk or to transfer the identified risk.
It is a way of software testing in which the internal It is a way of testing the software in which the tester
structure or the program or the code is hidden and has knowledge about the internal structure or the code
nothing is known about it. or the program of the software.
Implementation of code is not needed for black box Code implementation is necessary for white box
testing. testing.
This testing can be initiated based on the This type of testing of software is started after a detail
requirement specifications document. design document.
It is the behavior testing of the software. It is the logic testing of the software.
Black Box Testing White Box Testing
It is applicable to the higher levels of testing of It is generally applicable to the lower levels of
software. software testing.
It is not suitable or preferred for algorithm testing. It is suitable for algorithm testing.
It is less exhaustive as compared to white box It is comparatively more exhaustive than black box
testing. testing.
ISO 9000 is a set of standards for quality management, developed as an internationally-acceptable baseline for
performance by businesses and other organizations. It was created by the International Organization for
Standardization (ISO) with input from standards professionals from many nations.
Quality system of an organization means the various activities related to its products or services. Standard of
ISO addresses to both aspects i.e. operational and organizational aspects which includes responsibilities,
reporting etc. An ISO 9000 standard contains set of guidelines of production process without considering
product itself.
Software reliability is the probability of failure-free operations in a computer program for a specified period of
time in a specified environment.
Software reliability helps you to identify and fix bugs, improve performance, and test features. By performing a
variety of reliability tests through different environments you can ensure that the software functions exactly
how it should.
f) Availability (AVAIL)
MTTF is described as the time interval between the two successive failures. An MTTF of 200 mean that one
failure can be expected each 200-time units.
Once failure occurs, some-time is required to fix the error. MTTR measures the average time it takes to track
the errors causing the failure and to fix them.
We can merge MTTF & MTTR metrics to get the MTBF metric.
Thus, an MTBF of 300 denoted that once the failure appears, the next failure is expected to appear only after
300 hours.
It is the number of failures appearing in a unit time interval. The number of unexpected events over a specific
time of operation.
POFOD is described as the probability that the system will fail when a service is requested. It is the number of
system deficiency given several systems inputs.
e) Availability (AVAIL)
Availability is the probability that the system is applicable for use at a given time. It takes into account the
repair time & the restart time for the system. An availability of 0.995 means that in every 1000 time units, the
system is feasible to be available for 995 of these.
Once a schedule has been worked out and the project gets underway, the project manager monitors the timely
completion of the tasks and takes any corrective action that may be necessary whenever there is a chance of
schedule slippage. To schedule the project activities, a software project manager needs to do the following:
1. Identify all the major activities that need to be carried out to complete the project.
2. Break down each activity into tasks.
3. Determine the dependency among different tasks.
4. Establish the estimates for the time durations necessary to complete the tasks.
5. Represent the information in the form of an activity network.
6. Determine task starting and ending dates from the information represented in the activity network.
7. Determine the critical path. A critical path is a chain of tasks that determines the duration of the project.
8. Allocate resources to tasks.
A Work Breakdown Structure includes dividing a large and complex project into simpler, manageable and
independent tasks.
Steps:
Step-3: Repeat till undividable, simple and independent activities are created.
J. What is activity network diagram in a project?
An Activity Network Diagram is a diagram of project activities that shows the sequential relationships of
activities using arrows and nodes. An activity network diagram is a tool that is used extensively in project
management and is necessary for the identification of a project’s critical path.
Unit Testing is a type of software testing where individual units or components of a software are tested. The
purpose is to validate that each unit of the software code performs as expected. Unit Testing is done during the
development (coding phase) of an application by the developers.
Integration Testing is defined as a type of testing where software modules are integrated logically and tested
as a group. Its focuses on verifying the interactions and data exchange between different components or
modules of a software application.
The goal of integration testing is to identify any problems or bugs that arise when different components are
combined and interact with each other. Integration testing is typically performed after unit testing and before
system testing. It helps to identify and resolve integration issues early in the development cycle, reducing the
risk of more severe and costly problems later on.
System Testing is a level of testing that validates the complete and fully integrated software product. The
purpose of a system test is to evaluate the end-to-end system specifications.It evaluates the overall functionality
and performance of a complete and fully integrated software solution. It tests if the system meets the specified
requirements and if it is suitable for delivery to the end-users. This type of testing is performed after the
integration testing and before the acceptance testing.