Unit 1 Notes
Unit 1 Notes
1
6. User-Centric Design: The approach to software design has shifted towards a more user-
centric focus. Developers prioritize user experience (UX) and user interface (UI) design to
create intuitive and accessible applications that cater to diverse user needs.
7. Continuous Delivery and DevOps: The adoption of continuous delivery and DevOps
practices has changed how software is developed, tested, and deployed. These
methodologies emphasize collaboration, automation, and iterative improvements, resulting in
faster release cycles and more reliable software.
2
Software engineering- a layered technology
Layered technology in software engineering is a structured approach that divides complex
systems into manageable layers. Each layer focuses on specific functionalities, enabling
easier development, maintenance, & scalability.
Software engineering is a fully layered technology, to develop software we need to go from
one layer to another. All the layers are connected and each layer demands the fulfillment of
the previous layer.
3
1. A quality focus: It defines the continuous process improvement principles of software. It
provides integrity that means providing security to the software so that data can be accessed
by only an authorized person, no outsider can access the data. It also focuses on
maintainability and usability.
2. Process: It is the foundation or base layer of software engineering. It is key that binds all
the layers together which enables the development of software before the deadline or on
time. Process defines a framework that must be established for the effective delivery of
software engineering technology. The software process covers all the activities, actions, and
tasks required to be carried out for software development.
Process activities are listed below:-
Communication: It is the first and foremost thing for the development of software.
Communication is necessary to know the actual demand of the client.
Planning: It basically means drawing a map for reduced the complication of
development.
Modeling: In this process, a model is created according to the client for better
understanding.
Construction: It includes the coding and testing of the problem.
Deployment:- It includes the delivery of software to the client for evaluation and
feedback.
3. Method: During the process of software development the answers to all “how-to-do”
questions are given by method. It has the information of all the tasks which includes
communication, requirement analysis, design modeling, program construction, testing, and
support.
4. Tools: Software engineering tools provide a self-operating system for processes and
methods. Tools are integrated which means information created by one tool can be used by
another.
4
8. Configuration Management
1. Project Planning: It is a set of multiple processes, or we can say that it a task that
performed before the construction of the product starts.
2. Scope Management: It describes the scope of the project. Scope management is important
because it clearly defines what would do and what would not. Scope Management create
the project to contain restricted and quantitative tasks, which may merely be documented
and successively avoids price and time overrun.
3. Estimation management: This is not only about cost estimation because whenever we
start to develop software, but we also figure out their size (line of code), efforts, time as
well as cost.
If we talk about the size, then Line of code depends upon user or software requirement.
If we talk about effort, we should know about the size of the software, because based on
the size we can quickly estimate how big team required to produce the software.
If we talk about time, when size and efforts are estimated, the time required to develop the
software can easily determine.
And if we talk about cost, it includes all the elements such as:
o Size of software
o Quality
o Hardware
o Communication
o Training
o Additional Software and tools
o Skilled manpower
5
o Developing a resource plan is derived from the project plan.
o Adjustment of resources.
6. Project Risk Management: Risk management consists of all the activities like
identification, analysing and preparing the plan for predictable and unpredictable risk in
the project.
o The Experienced team leaves the project, and the new team joins it.
o Changes in requirement.
o Change in technologies and the environment.
o Market competition.
From the planning to closure, communication plays a vital role. In all the phases,
communication must be clear and understood. Miscommunication can create a big blunder
in the project.
o Identification
o Baseline
o Change Control
o Configuration Status Accounting
o Configuration Audits and Reviews
6
PROCESS MODELS prescribe a set of framework and other activities, quality
assurance points, and software process-related elements. They define a
workflow among these elements that shows their inter-relationship.
Waterfall Model.
Incremental Process Model.
Evolutionary Process Model.
The Waterfall model is also known as ‘Linear sequential model‘ or ‘Classic life
cycle model‘. It is used in small projects where requirements are well defined and
known before starting the project. Activities are carried out in a linear and systematic
fashion.
7
Deployment is the last stage where the product is delivered, customer feedback is
received and, support and maintenance for the product are provided.
It may be difficult for the customer to provide all the specific requirements
beforehand.
Cannot be used for complex and object-oriented projects.
Testing and customer evaluation are done at the last stages and hence the risk is
high.
Iteration of activities is not promoted which is unavoidable for certain projects.
May lead to “blocking states” in which some project team members must wait for
other members of the team to complete dependent tasks.
In the Incremental process model, a series of releases, called increments, are built
and delivered to the customer. First, a simple working system(core product), that
addresses basic requirements, is delivered. Customer feedback is recorded after
each incremental delivery. Many increments are delivered, by adding more functions,
until the required system is released. This model is used when a user demands a
model of product with limited functionality quickly.
8
Easy to test because of small iterations.
The initial cost is lower.
In the incremental model, complete requirements are specified beforehand and these
requirements are refined over time for each increment. The evolutionary model
permits requirements, plans and estimates to evolve over time. Here we
discuss prototyping and the spiral model.
Prototyping
In cases when the requirements are unclear and are likely to change or when the
developer is doubtful about working of an algorithm, a solution is to build a prototype
and find out what is actually needed. Hence, in this model, one or more prototypes
are made with unrefined currently known requirements before the actual product is
made.
Prototyping
9
A quick design is what occurs in a prototype model. The client evaluates the
prototype and gives feedback and other requirements which are incorporated in the
next prototype. This is repeated until the prototype becomes a complete product that
is acceptable to the client. Some prototypes are built as “throwaways”, others are
“evolutionary” in nature as they evolve into the actual system.
Advantages of prototyping
Disadvantages of prototyping
Spiral Model
In spiral model, the software is developed through a series of increments. The
diagram looks like a spiral with loops where each loop is a phase. Each phase is split
into four sectors/quadrant.
10
The Spiral Model
The first circuit around the spiral might result in the development of a product
specification. The subsequent passes around the spiral might be used to develop a
prototype and then progressively more mature versions of the software.
Planning is where the objectives, alternatives and other constraints are determined.
The alternatives are considered, risks in each alternative are analysed and
prototypes are refined in the risk analysis sector. At the development quadrant level
risks are known and it proceeds with developing and testing the product. In the
assessment sector, customer evaluation of product developed is reviewed and the
next phase is planned. This loop continues until acceptable software is built and
deployed.
Hence, the spiral model follows an incremental process methodology and unlike
other process models, it deals with the uncertainty by applying a series of risk
analysis strategies throughout the process.
Reduces risk.
Recommended for complex projects.
Changes can be incorporated at a later stage.
Strong documentation helps in better management.
11
Costly and not recommended for small projects.
Demands risk assessment expertise.
Looping is a complex process.
Heavy documentation.
CONVENTIONAL MODEL
To overcome the drawbacks of the Waterfall Model, in the mid-1990s the Agile Software
Development model was proposed.
The Agile Model was primarily designed to help a project adapt quickly to change requests.
So, the main aim of the Agile model is to facilitate quick project completion. To accomplish
this task, agility is required. Agility is achieved by fitting the process to the project and
removing activities that may not be essential for a specific project. Also, anything that is a
waste of time and effort is avoided. The Agile Model refers to a group of development
processes. These processes share some basic characteristics but do have certain subtle
differences among themselves.
Scrum: Scrum methodology serves as a framework for tackling complex projects and
ensuring their successful completion. It is led by a Scrum Master, who oversees the
process, and a Product Owner, who establishes the priorities. The Development Team,
accountable for delivering the software, is another key player.
Extreme Programming (XP): Extreme Programming uses specific practices like pair
programming, continuous integration, and test-driven development to achieve these
12
goals. Extreme programming is ideal for projects that have high levels of uncertainty
and require frequent changes, as it allows for quick adaptation to new requirements
and feedback.
Unified Process: Unified Process is a methodology that can be tailored to the specific
needs of any given project. It combines elements of both waterfall and Agile
methodologies, allowing for an iterative and incremental approach to development.
This means that the UP is characterized by a series of iterations, each of which results
in a working product increment, allowing for continuous improvement and the
delivery of value to the customer.
The agile model is a combination of iterative and incremental process models. The steps
involve in agile SDLC models are:
Requirement gathering
Construction / Iteration
Deployment
Feedback
1. Requirement Gathering:- In this step, the development team must gather the
requirements, by interaction with the customer. development team should plan the
time and effort needed to build the project. Based on this information you can
evaluate technical and economical feasibility.
13
2. Design the Requirements:- In this step, the development team will use user-flow-
diagram or high-level UML diagrams to show the working of the new features and
show how they will apply to the existing software. Wireframing and designing user
interfaces are done in this phase.
Unit Testing:- Unit testing is the process of checking small pieces of code to
ensure that the individual parts of a program work properly on their own. Unit
testing is used to test individual blocks (units) of code.
System Testing:- Goal is to ensure that the software meets the requirements
of the users and that it works correctly in all possible scenarios.
5. Deployment:- In this step, the development team will deploy the working project to
end users.
6. Feedback:- This is the last step of the Agile Model. In this, the team receives
feedback about the product and works on correcting bugs based on feedback provided
by the customer.
14
The time required to complete an iteration is known as a Time Box. Time-box refers to the
maximum amount of time needed to deliver an iteration to customers. So, the end date for an
iteration does not change. However, the development team can decide to reduce the delivered
functionality during a Time-box if necessary to deliver it on time. The Agile model’s central
principle is delivering an increment to the customer after each Time-box.
To establish close contact with the customer during development and to gain a clear
understanding of various requirements, each Agile project usually includes a customer
representative on the team. At the end of each iteration stakeholders and the customer
representative review, the progress made and re-evaluate the requirements.
The agile model relies on working software deployment rather than comprehensive
documentation.
Requirement change requests from the customer are encouraged and efficiently
incorporated.
The customer feedback must be used to create the next increment of the process.
15
It must be iterative so that each increment can be evaluated regularly.
When a customer is ready to have a meeting with the team all the time.
Customer representatives get the idea of updated software products after each
iteration. So, it is easy for him to change any requirement if needed.
Agile development puts the customer at the center of the development process,
ensuring that the end product meets their needs.
The lack of formal documents creates confusion and important decisions taken during
different phases can be misinterpreted at any time by different team members.
The agile model depends highly on customer interactions so if the customer is not
clear, then the development team can be driven in the wrong direction.
Agile development models often involve working in short sprints, which can make it
difficult to plan and forecast project timelines and deliverables. This can lead to
delays in the project and can make it difficult to accurately estimate the costs and
resources needed for the project.
16
Agile development models require a high degree of expertise from team members, as
they need to be able to adapt to changing requirements and work in an iterative
environment. This can be challenging for teams that are not experienced in agile
development practices and can lead to delays and difficulties in the project.
Due to the absence of proper documentation, when the project completes and the
developers are assigned to another project, maintenance of the developed project can
become a problem.
6. A simple design that involves and improves with time is a better approach than doing
an elaborate design up front for handling all possible scenarios.
17
7. The delivery dates are decided by empowered teams of talented individuals.
Extreme programming is one of the most popular and well-known approaches in the family
of agile methods. an XP project starts with user stories which are short descriptions of what
scenarios the customers and users would like the system to support. Each story is written on a
separate card, so they can be flexibly grouped.
Some of the good practices that have been recognized in the extreme programming model
and suggested to maximize their use are given below:
18
Extreme Programming Good Practices
Code Review: Code review detects and corrects errors efficiently. It suggests pair
programming as coding and reviewing of written code carried out by a pair of
programmers who switch their work between them every hour.
Testing: Testing code helps to remove errors and improves its reliability. XP suggests
test-driven development (TDD) to continually write and execute test cases. In the
TDD approach, test cases are written even before any code is written.
19
Incremental development: Incremental development is very good because customer
feedback is gained and based on this development team comes up with new
increments every few days after each iteration.
Design: Good quality design is important to develop good quality software. So,
everybody should design daily.
XP is based on the frequent iteration through which the developers implement User Stories.
User stories are simple and informal statements of the customer about the functionalities
needed. A User Story is a conventional description by the user of a feature of the required
system. It does not mention finer details such as the different scenarios that can occur. Based
on User stories, the project team proposes Metaphors. Metaphors are a common vision of
how the system would work. The development team may decide to build a Spike for some
features. A Spike is a very simple program that is constructed to explore the suitability of a
solution being proposed. It can be considered similar to a prototype. Some of the basic
activities that are followed during software development by using the XP model are given
below:
Coding: The concept of coding which is used in the XP model is slightly different
from traditional coding. Here, the coding activity includes drawing diagrams
(modeling) that will be transformed into code, scripting a web-based system, and
choosing among several alternative solutions.
Testing: The XP model gives high importance to testing and considers it to be the
primary factor in developing fault-free software.
Listening: The developers need to carefully listen to the customers if they have to
develop good quality software. Sometimes programmers may not have the depth
knowledge of the system to be developed. So, the programmers should understand
properly the functionality of the system and they have to listen to the customers.
Feedback: One of the most important aspects of the XP model is to gain feedback to
understand the exact customer needs. Frequent contact with the customer makes the
development effective.
20
Simplicity: The main principle of the XP model is to develop a simple system that
will work efficiently in the present time, rather than trying to build something that
would take time and may never be used. It focuses on some specific features that are
immediately needed, rather than engaging time and effort on speculations of future
requirements.
Planning Game: XP follows a planning game, where the customer and the
development team collaborate to prioritize and plan development tasks. This approach
helps to ensure that the team is working on the most important features and delivers
value to the customer.
On-site Customer: XP requires an on-site customer who works closely with the
development team throughout the project. This approach helps to ensure that the
customer’s needs are understood and met, and also facilitates communication and
feedback.
Some of the projects that are suitable to develop using the XP model are given below:
Small projects: The XP model is very useful in small projects consisting of small
teams as face-to-face meeting is easier to achieve.
Projects involving new technology or Research projects: This type of project faces
changing requirements rapidly and technical problems. So XP model is used to
complete this type of project.
21
Projects with tight deadlines: The XP model can be used in projects that have a tight
deadline, as it emphasizes simplicity and iterative development.
Projects where quality is a high priority: The XP model places a strong emphasis
on testing and quality assurance, making it a suitable approach for projects where
quality is a high priority.
XP, and other agile methods, are suitable for situations where the volume and space of
requirements change are high and where requirement risks are considerable.
1. Planning: The first stage of Extreme Programming is planning. During this phase,
clients define their needs in concise descriptions known as user stories. The team
calculates the effort required for each story and schedules releases according to
priority and effort.
2. Design: The team creates only the essential design needed for current user stories,
using a common analogy or story to help everyone understand the overall system
architecture and keep the design straightforward and clear.
22
4. Testing: Extreme Programming (XP) gives more importance to testing that consist of
both unit tests and acceptance test. Unit tests, which are automated, check if specific
features work correctly. Acceptance tests, conducted by customers, ensure that the
overall system meets initial requirements. This continuous testing ensures the
software’s quality and alignment with customer needs.
5. Listening: In the listening phase regular feedback from customers to ensure the
product meets their needs and to adapt to any changes.
Slipped schedules: Timely delivery is ensured through slipping timetables and doable
development cycles.
Costs incurred in changes: Extensive and continuing testing ensures that the
modifications do not impair the functioning of the system. A functioning system
always guarantees that there is enough time to accommodate changes without
impairing ongoing operations.
Business changes: Changes are accepted at any moment since they are seen to be
inevitable.
Production and post-delivery defects: the unit tests to find and repair bugs as soon
as possible.
Scrum is a management framework that teams use to self-organize tasks and work
towards a common goal. It is a framework within which people can address complex adaptive
problems while the productivity and creativity of delivering products are at the highest
possible value. Scrum is a management framework that teams use to self-organize and work
towards a common goal.
Scrum allows us to develop products of the highest value while making sure that we
maintain creativity and productivity.
The iterative and incremental approach used in scrum allows the teams to adapt to the
changing requirements.
23
Scrum emphasizes self-organization
Sprint: A Sprint is a time box of one month or less. A new Sprint starts immediately
after the completion of the previous Sprint. Release: When the product is completed,
it goes to the Release stage.
Sprint Review: If the product still has some non-achievable features, it will be
checked in this stage and then passed to the Sprint Retrospective stage.
Sprint Backlog: Sprint Backlog is divided into two parts Product assigned features to
sprint and Sprint planning meeting.
Scrum framework works by dividing the large product into small sub-products. It’s
like a divide and conquer strategy
24
As Scrum framework rely on constant feedback therefore the quality of product
increases in less amount of time
It can be difficult for the Scrum to plan, structure and organize a project that lacks a
clear definition.
The daily Scrum meetings and frequent reviews require substantial resources.
Project initiation is the first phase of the project management lifecycle. It involves defining
the project at a high level and securing the necessary approvals to move forward. The key
components of project initiation include the Project Charter, Project Scope, Project
Objectives, and practical considerations.
Project Charter
A Project Charter is a formal document that officially authorizes a project and outlines its
objectives, scope, and participants. It serves as a reference throughout the project lifecycle
and provides a clear understanding of what the project aims to achieve. Here are the detailed
notes on the key components of a Project Charter:
1. Project Purpose
The Project Purpose section explains why the project is being undertaken. It provides context
and justification for the project's existence, answering questions such as:
2. Project Objectives
Project Objectives are specific, measurable goals that the project aims to achieve. They
should be:
3. Project Scope
25
The Project Scope defines the boundaries of the project, specifying what is included and what
is not. It involves:
Scope Statement: A detailed description of the project deliverables and the work
needed to create them.
Work Breakdown Structure (WBS): A hierarchical decomposition of the total
scope of work into smaller, manageable parts.
Scope Baseline: The approved version of the project scope, which serves as a
reference for future project performance.
4. Stakeholders
The Stakeholders section identifies individuals or groups who have an interest in the project.
This includes:
This section outlines the governance structure of the project and specifies the roles and
responsibilities of key team members. It includes:
Project Sponsor: The person who provides overall direction and support for the
project.
Project Manager: The person responsible for planning, executing, and closing the
project.
Project Team: Individuals who perform the work required to achieve the project
objectives.
Assumptions and Constraints are factors that are assumed to be true and limitations that may
impact the project. They help set realistic expectations and guide decision-making. Examples
include:
The Approval and Sign-Off section includes signatures from key stakeholders, indicating
their agreement with the Project Charter and their commitment to support the project. This
section often includes:
Project Sponsor's Signature: Approving the project and providing the necessary
resources.
26
Project Manager's Signature: Acknowledging their responsibility to manage the
project according to the charter.
A well-crafted Project Charter sets the foundation for a successful project by ensuring all
stakeholders have a clear understanding of the project's goals, scope, and expectations. It
serves as a reference point throughout the project lifecycle, helping to guide decisions and
keep the project on track.
Project Scope
The Project Scope is a critical component of project management. It defines all the work
required to complete a project successfully and ensures that only the necessary tasks are
included. Here are the detailed notes on the key elements of Project Scope:
1. Scope Statement
The Scope Statement provides a detailed description of the project deliverables and the work
required to create them. It includes:
The Work Breakdown Structure (WBS) is a hierarchical decomposition of the total scope of
work into smaller, manageable parts. It helps in organizing and defining the total work scope
of the project. Key elements of WBS include:
Hierarchy Levels: The WBS is structured in levels, with the top level representing
the total project and subsequent levels breaking down the project into smaller
components.
Work Packages: The lowest level of the WBS, representing individual tasks or
activities that can be assigned, scheduled, and managed.
WBS Dictionary: A document that provides detailed information about each element
in the WBS, including descriptions, responsible parties, and success criteria.
3. Scope Baseline
The Scope Baseline is the approved version of the project scope, which serves as a reference
for future project performance. It includes:
Approved Scope Statement: The final, approved version of the scope statement.
WBS: The final, approved version of the work breakdown structure.
27
WBS Dictionary: The final, approved version of the WBS dictionary.
4. Requirements Documentation
Requirements Documentation captures the needs and expectations of the project stakeholders.
It serves as a foundation for defining the project scope and includes:
The Scope Management Plan outlines how the project scope will be defined, validated, and
controlled. It includes:
Scope Definition: The process for developing a detailed project scope statement.
Scope Validation: The process for obtaining formal acceptance of the completed
project deliverables.
Scope Control: The process for monitoring the project scope and managing changes
to the scope baseline.
The Change Control Process is a critical aspect of scope management. It ensures that any
changes to the project scope are properly evaluated, approved, and documented. It includes:
7. Stakeholder Engagement
Effective stakeholder engagement is essential for defining and managing the project scope. It
involves:
28
By carefully defining and managing the project scope, project managers can ensure that their
projects stay on track, meet stakeholder expectations, and deliver the intended results.
Project Objectives
Project Objectives are the specific, measurable outcomes that a project aims to achieve. They
provide a clear direction and serve as a benchmark for evaluating the project's success. Here
are the detailed notes on the key aspects of Project Objectives:
Project Objectives can be categorized into different types, depending on the nature of the
project and its goals:
Defining clear and effective Project Objectives involves the following steps:
29
Documentation and Communication: Documenting the objectives in a clear and
concise manner and communicating them to all project stakeholders. This ensures that
everyone is on the same page and understands the project's goals.
1. Operational Objective: Reduce the average response time for customer service
inquiries from 24 hours to 12 hours within the next six months.
2. Financial Objective: Increase the company's market share by 10% in the next fiscal
year by launching a new product line.
3. Technical Objective: Develop and deploy a new mobile application with core
features within the next nine months.
4. Quality Objective: Achieve a customer satisfaction score of 90% or higher in post-
implementation surveys within three months of project completion.
When initiating a project, several practical considerations must be addressed to ensure its
success. These considerations help in assessing the feasibility, identifying potential risks,
understanding stakeholder needs, planning resources, and establishing effective
communication
1. Feasibility Study
A Feasibility Study assesses the project's viability and potential for success. It includes:
30
Legal Feasibility: Ensuring that the project complies with relevant laws, regulations,
and standards.
Operational Feasibility: Determining whether the project can be integrated into the
organization's existing operations.
Schedule Feasibility: Evaluating whether the project can be completed within the
proposed timeline.
2. Risk Assessment
Risk Assessment involves identifying potential risks that could impact the project's success
and developing strategies to mitigate them. It includes:
3. Stakeholder Analysis
Stakeholder Analysis involves understanding the needs, expectations, and influence of all
individuals or groups who have an interest in the project. It includes:
4. Resource Planning
Resource Planning identifies the resources required for the project, including time, money,
and people. It includes:
5. Communication Plan
31
Audience Identification: Identifying the different groups of stakeholders and their
information needs.
Communication Channels: Selecting the appropriate methods for communication,
such as meetings, emails, reports, or online platforms.
Communication Schedule: Establishing a timeline for regular updates and progress
reports.
Feedback Mechanisms: Providing opportunities for stakeholders to give feedback
and ask questions.
6. Change Management
Change Management involves preparing and supporting stakeholders through changes that
the project may bring about. It includes:
32