SOFTWARE ENGINEERING Unit 2
SOFTWARE ENGINEERING Unit 2
It is a procedure of managing, allocating and timing resources to develop computer software that
fulfils requirements.
In software Project Management, the client and the developers need to know the length, period and
cost of the project.
There are three needs for software project management. These are:
1. Time
2. Cost
3. Quality
It is an essential part of the software organization to deliver a quality product, keeping the cost
within the client’s budget and deliver the project as per schedule. There are various factors, both
external and internal, which may impact this triple factor. Any of three-factor can severely affect the
other two.
FEASIBILITY STUDY
Feasibility Study in Software Engineering is a study to evaluate feasibility of proposed project or
system. Feasibility study is one of stage among important four stages of Software Project
Management Process. As name suggests feasibility study is the feasibility analysis or it is a measure
of the software product in terms of how much beneficial product development will be for the
organization in a practical point of view. Feasibility study is carried out based on many purposes to
analyse whether software product will be right in terms of development, implantation, contribution
of project to the organization etc.
1. Technical Feasibility –
In Technical Feasibility current resources both hardware software along with required
technology are analyzed/assessed to develop project. This technical feasibility study gives
report whether there exists correct required resources and technologies which will be used
for project development. Along with this, feasibility study also analyzes technical skills and
capabilities of technical team, existing technology can be used or not, maintenance and up-
gradation is easy or not for chosen technology etc.
2. Operational Feasibility –
In Operational Feasibility degree of providing service to requirements is analyzed along with
how much easy product will be to operate and maintenance after deployment. Along with
these other operational scopes are determining usability of product, determining suggested
solution by software development team is acceptable or not etc.
3. Economic Feasibility –
In Economic Feasibility study cost and benefit of the project is analyzed. Means under this
feasibility study a detail analysis is carried out what will be cost of the project for
development which includes all required cost for final development like hardware and
software resource required, design and development cost and operational cost and so on.
After that it is analyzed whether project will be beneficial in terms of finance for organization
or not.
4. Legal Feasibility –
In Legal Feasibility study project is analyzed in legality point of view. This includes analyzing
barriers of legal implementation of project, data protection acts or social media laws, project
certificate, license, copyright etc. Overall, it can be said that Legal Feasibility Study is study to
know if proposed project confirms legal and ethical requirements.
5. Schedule Feasibility –
In Schedule Feasibility Study mainly timelines/deadlines is analyzed for proposed project
which includes how many times teams will take to complete final project which has a great
impact on the organization as purpose of project may fail if it can’t be completed on time.
the overall objective of the organization is covered and contributed by the system or not.
can the system be integrated with the other system which are already exist
1. Information assessment
2. Information collection
3. Report writing
4. General information
Project Planning
Scope Management
Project Estimation
1) Project Planning
Software project planning is task, which is performed before the production of software actually
starts. It is there for the software production but involves no concrete activity that has any direction
connection with software production; rather it is a set of multiple processes, which facilitates
software production. Project planning may include the following:
2) Scope Management
It defines the scope of project; this includes all the activities, process need to be done in order to
make a deliverable software product. Scope management is essential because it creates boundaries
of the project by clearly defining what would be done in the project and what would not be done.
This makes project to contain limited and quantifiable tasks, which can easily be documented and in
turn avoids cost and time overrun.
Divide the project into various smaller parts for ease of management.
3) Project Estimation
For an effective management accurate estimation of various measures is a must. With correct
estimation managers can manage and control the project more efficiently and effectively.
Project manager can estimate the listed factors using two broadly recognized techniques –
Decomposition Technique
Line of Code Estimation is done on behalf of number of line of codes in the software product.
Function Points Estimation is done on behalf of number of function points in the software
product.
This technique uses empirically derived formulae to make estimation. These formulae are based on
LOC or FPs.
Putnam Model
This model is made by Lawrence H. Putnam, which is based on Norden’s frequency distribution
(Rayleigh curve). Putnam model maps time and efforts required with software size.
COCOMO
COCOMO stands for COnstructive COst MOdel, developed by Barry W. Boehm. It divides the software
product into three categories of software: organic, semi-detached and embedded.
Halstead’s Software metrics are a set of measures proposed by Maurice Halstead to evaluate the
complexity of a software program. These metrics are based on the number of distinct operators and
operands in the program and are used to estimate the effort required to develop and maintain the
program. Field of Halstead Metrics include Program Length (N), Vocabulary Size (n), Program Volume
(V), Program Level (L), Program Difficulty (D), Program Effort (E) and Time to Implement (T).
STAFF ESTIMATION
staff estimation in software engineering, it involves estimating the number of personnel (developers,
testers, project managers, etc.) required for a software development project. Various techniques and
models are used for staff estimation, and they often consider factors such as project size, complexity,
technology, and the skills of the team members. Common approaches include expert judgment,
analogy-based estimation, and algorithmic models like COCOMO (Constructive Cost Model) or
Function Point Analysis. Staff estimation is crucial for budgeting, resource allocation, and project
planning.
Project Scheduling
Project-task scheduling is a significant project planning activity. It comprises deciding which functions
would be taken up when. To schedule the project plan, a software project manager wants to do the
following:
4. Establish the most likely size for the time duration required to complete the activities.
7. Determine the critical path. A critical way is the group of activities that decide the duration
of the project.
ACTIVITY NETWORK-
Activity Network Diagram is a diagram of project activities that shows the sequential
relationships of activities using arrows and nodes. An activity network diagram tool is used
extensively in and is necessary for the identification of a project’s critical path (which is used to
determine the expected completion time of the project).
Example: Suppose the team is tasked with improving the process of building a house. The team
lists the major steps involved – everything from the excavation step through the landscaping
step.
CRITICAL PATH-
The team’s job is to take note of which of the nodes D, E, and F, will be taking the most amount of
time, and which of those nodes is expected to take the least amount of time. This is essential when
creating the Critical Path. For instance, if node D is expected to take the most amount of time as
compared with nodes E and F, it is not important that nodes D and E start at the exact same time as
node F. Those steps can start later, but they have to be finished no later than the most time
consuming of the three steps that run in parallel. The team evaluates the nine steps and come to a
consensus on how many days each of the nine steps will take. The critical path is a line that goes
through all of the nodes that have the longest expected completion times.
GANTT CHART-
Generalized Activity Normalization Time Table (GANTT) chart is type of chart in which series of
horizontal lines are present that show the amount of work done or production completed in given
period of time in relation to amount planned for those projects.
The horizontal bars indicate or represent required time by corresponding particular task.
When occurring of multiple horizontal bars takes place at same time on calendar, then that
means concurrency can be applied for performing particular tasks.
Establish Schedule –
It simply establishes initial project schedule in which it mentions who is going to do what,
when, and how much time it will take to complete it.
Provide Efficiency –
It brings efficiency in planning and allows team to better coordinate project activities.
Emphasize on scope –
It helps in emphasizing i.e., gives importance to scope of individual tasks.
Ease at understanding –
It makes it easy for stakeholders to understand timeline and brings clarity of dates.
Visualize project –
It helps in clearly visualizing project management, project tasks involved.
Disadvantages :
Sometimes, using Gantt chart makes project more complex.
The size of bar chart dost not necessarily indicate amount of work done in project.
It is not possible or difficult to view this chart on one sheet of paper. The software products
that produce Gantt chart needed to be viewed on computer screen so that whole project can
be seen easily.
PERT CHART-
Project Evaluation and Review Technique (PERT) is a procedure through which activities of a project
are represented in its appropriate sequence and timing. The PERT chart is used to schedule, organize
and co-ordinate tasks within the project.
Characteristics of PERT:
1. It serves as a base for obtaining the important facts for implementing the decision-making.
3. PERT helps management in deciding the best possible resource utilization method.
6. It helps the management in identifying the essential elements for the completion of the
project within time.
Advantages of PERT:
5. PERT makes well organized diagram for the representation of large amount of data.
Disadvantages of PERT:
2. The estimation of activity time are subjective in PERT which is a major disadvantage.
5. It under estimates the expected project completion time as there is chances that other paths
can become the critical path if their related activities are deferred.
Monitoring and Controlling are processes needed to track, review, and regulate the
progress and performance of the project. It also identifies any areas where changes
to the project management method are required and initiates the required changes.
The Monitoring & Controlling process group includes eleven processes, which are:
1. Monitor and control project work: The generic step under which all other
monitoring and controlling activities fall under.
2. Perform integrated change control: The functions involved in making changes to
the project plan. When changes to the schedule, cost, or any other area of the project
management plan are necessary, the program is changed and re-approved by the
project sponsor.
3. Validate scope: The activities involved with gaining approval of the project's
deliverables.
4. Control scope: Ensuring that the scope of the project does not change and that
unauthorized activities are not performed as part of the plan (scope creep).
5. Control schedule: The functions involved with ensuring the project work is
performed according to the schedule, and that project deadlines are met.
6. Control costs: The tasks involved with ensuring the project costs stay within the
approved budget.
7. Control quality: Ensuring that the quality of the project?s deliverables is to the
standard defined in the project management plan.
8. Control communications: Providing for the communication needs of each project
stakeholder.
9. Control Risks: Safeguarding the project from unexpected events that negatively
impact the project's budget, schedule, stakeholder needs, or any other project
success criteria.
10. Control procurements: Ensuring the project's subcontractors and vendors meet the
project goals.
11. Control stakeholder engagement: The tasks involved with ensuring that all of the
project's stakeholders are left satisfied with the project work.
SOFTWARE RISK-
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. Software risk exists because the future is uncertain and there are many known and unknown
things that cannot be incorporated in the project plan. A software risk can be of two types (a)
internal risks that are within the control of the project manager and (2) external risks that are
beyond the control of project manager. Risk management is carried out to:
(note: read only risk management after that and write that thing if any question comes
related to risk)
RISK IDENTIFICATION-
Risk Identification: The project organizer needs to anticipate the risk in the project
as early as possible so that the impact of risk can be reduced by making effective risk
management planning.
A project can be of use by a large variety of risk. To identify the significant risk, this
might affect a project. It is necessary to categories into the different risk of classes.
There are different types of risks which can affect a software project:
RISK ASSESSMENT-
The objective of risk assessment is to division the risks in the condition of their loss,
causing potential. For risk assessment, first, every risk should be rated in two
methods:
Based on these two methods, the priority of each risk can be estimated:
p=r*s
Where p is the priority with which the risk must be controlled, r is the probability of
the risk becoming true, and s is the severity of loss caused due to the risk becoming
true. If all identified risks are set up, then the most likely and damaging risks can be
controlled first, and more comprehensive risk abatement methods can be designed
for these risks.
RISK PROJECTION-
Risk projection, also called risk estimation, attempts to rate each risk in two ways—
the likelihood or probability that the risk is real and the consequences of the
problems associated with the risk, should it occur. The project planner, along with
other managers and technical staff, performs four risk projection activities:
(3) estimate the impact of the risk on the project and the product, and
(4) note the overall accuracy of the risk projection so that there will be no
misunderstandings.
RISK MANAGEMENT-
1. Risk Identification:
Risk identification involves brainstorming activities. It also involves the preparation of
a risk list. Brainstorming is a group discussion technique where all the stakeholders
meet together. This technique produces new ideas and promotes creative thinking.
Preparation of a risk list involves the identification of risks that are occurring
continuously in previous software projects.
2. Risk Analysis and Prioritization:
It is a process that consists of the following steps:
Calculate the risk exposure factor which is the product of values of Step 2 and
Step 3
Prepare a table consisting of all the values and order risk based on risk
exposure factor
For example,
TABLE (Required)
Probability
of
occurrence Impact of Risk
Risk No Problem of problem problem exposure Priority
Issue of
R1 incorrect 2 2 4 10
password
Testing
R2 reveals a lot 1 9 9 7
of defects
The design
R3 is not 2 7 14 5
robust
3. Risk Avoidance and Mitigation:
The purpose of this technique is to eliminate the occurrence of risks. so the method
to avoid risks is to reduce the scope of projects by removing non-essential
requirements.
4. Risk Monitoring:
In this technique, the risk is monitored continuously by reevaluating the risks, the
impact of risk, and the probability of occurrence of the risk.
This ensures that: