3. Introduction
Dr. K. Adisesha
3
Software:
The term software specifies to the set of computer programs, procedures and associated
documents (Flowcharts, manuals, etc.) that describe the program and how they are to
be used.
➢ Software is more than programs. Any program is a subset of software, and it becomes
software only if documentation & operating procedures manuals are prepared.
➢ There are three components of the software:
➢ Program: Program is a combination of source code & object code.
➢ Documentation: Documentation consists of different types of manuals. Examples of
documentation manuals are: Data Flow Diagram, Flow Charts, ER diagrams, etc.
➢ Operating Procedures: Operating Procedures consist of instructions to set up and use the
software system and instructions on how react to the system failure.
4. Introduction
Dr. K. Adisesha
4
Components of Software :
Operating Procedures –Set of step-by-step instructions compiled by an organization to
help workers carry out complex routine operations.
➢ Code: the instructions that a computer executes in order to perform a specific task or
set of tasks.
➢ Data: the information that the software uses or manipulates.
➢ User interface: the means by which the user interacts with the software, such as
buttons, menus, and text fields.
➢ Libraries: pre-written code that can be reused by the software to perform common
tasks.
➢ Documentation: information that explains how to use and maintain the software, such
as user manuals and technical guides.
5. Introduction
Dr. K. Adisesha
5
Characteristics of Software:
Software products may be developed for a particular customer or may be developed for
a general market.
➢ Software is engineered not manufactured.
❖ Software does not wear out, failed components must be re-engineered.
❖ Software is intangible – It has no mass, no volume, no color, no odor and it cannot
be touched.
❖ Maintainability – Software should meet the changing needs of customers.
❖ Usability – The software should have appropriate user interface and enough
number of documentations.
❖ Dependability – Means reliability, it should be safe and secure to use the software
without causing system failure.
6. Introduction
Dr. K. Adisesha
6
Components of Software :
Operating Procedures –Set of step-by-step instructions compiled by an organization to
help workers carry out complex routine operations.
➢ Test cases: a set of inputs, execution conditions, and expected outputs that are used to
test the software for correctness and reliability.
➢ Configuration files: files that contain settings and parameters that are used to
configure the software to run in a specific environment.
➢ Build and deployment scripts: scripts or tools that are used to build, package, and
deploy the software to different environments.
➢ Metadata: information about the software, such as version numbers, authors, and
copyright information.
7. Introduction
Dr. K. Adisesha
7
Software:
The term software specifies to the set of computer programs, procedures and associated
documents (Flowcharts, manuals, etc.) that describe the program and how they are to
be used.
➢ Process: A process is the sequence of steps executed to achieve a goal. A process is
defined by cycles. Similar to a project, a process also has a beginning, middle, and end;
however, this cycle repeats itself over an average period of time.
➢ Project: A project is defined by a fixed time, scope, and resources. When
implementing a project, the goal is to execute change, usually drastic, and to
incorporate that change into the day-to-day processes of the company.
8. Introduction
Dr. K. Adisesha
8
Software Crisis:
There are several various general models or paradigms of software development:
➢ Size: Software is becoming more expensive and more complex with the growing complexity
and expectation out of software. For example, the code in the consumer product is doubling
every couple of years.
➢ Quality: Many software products have poor quality, i.e., the software products defects after
putting into use due to ineffective testing technique.
➢ Cost: Software development is costly i.e. in terms of time taken to develop and the money
involved.
➢ Delayed Delivery: Serious schedule overruns are common. Very often the software takes longer
than the estimated time to develop, which in turn leads to cost shooting up.
9. Software Engineering
Dr. K. Adisesha
9
Software Engineering:
A systematic approach to the development, operation, maintenance and retirement of
software.
➢ Definition by IEEE (Institute of Electrical and Electronics Engineers): The application
of systematic, disciplined, quantifiable approach to the development, operation,
maintenance of software that is the application of engineering to the software.
➢ Goals of Software Engineering
❖ To improve the quality of the software product
❖ To increase productivity and
❖ To give job satisfaction to the Software engineers.
10. Software Engineering
Dr. K. Adisesha
10
Software Engineering:
Key Challenges of Software Engineering.
➢ The legacy challenge: The challenging method of maintaining and updating the
software in such a way that high costs are avoided and essential business services
continue to be delivered.
➢ The Heterogeneity challenge: Systems are required to operate as distributed systems
across networks. The challenge of developing techniques to build dependable software
which is flexible to cope with is called heterogeneity.
➢ The delivery challenge: A challenge of shortening delivery time for large and complex
systems without compromising system quality.
11. Software Engineering
Dr. K. Adisesha
11
Software Product:
Software products are software systems that are delivered to a customer with
documentation which describes how to install and use this system.
➢ Software products may be classified into two types.
❖ Generic products: Generic products are stand-alone systems
that are developed by a production unit and sold on the open
market to any customer who is able to buy them.
❖ Customized Products: Customized products are the systems
that are commissioned by a particular customer. Some
contractor develops the software for that customer.
12. Software Processes
Dr. K. Adisesha
12
Software Processes:
A software process is the set of activities and associated outcome that produce a
software product. Software engineers mostly carry out these activities.
➢ These are four key process activities, which are common to all software processes:
❖ Software specifications: The functionality of the software and constraints on its
operation must be defined.
❖ Software development: The software to meet the requirement must be produced.
❖ Software validation: The software must be validated to ensure that it does what the
customer wants.
❖ Software evolution: The software must evolve to meet changing client needs.
13. Software Development Life Cycle
Dr. K. Adisesha
13
Software Development Life Cycle (SDLC):
SDLC is a sequence of activities carried out by analyst, designer and user to develop
and implement an information system.
➢ SDLC can be broadly classified into 7 phases.
➢ Feasibility Study
➢ Requirement analysis
➢ System Design
➢ Development
➢ Testing
➢ Deployment
➢ Software Maintenance
14. Software Development Life Cycle
Dr. K. Adisesha
14
Software Development Life Cycle (SDLC):
SDLC is a sequence of activities carried out by analyst, designer and user to develop
and implement an information system.
➢ SDLC can be broadly classified into 7 phases.
➢ Feasibility Study: The main aim is to determine whether the product is financially
worthwhile and technically feasible.
➢ Requirement analysis: In this phase the aim is to find exact requirement of the
customers,
➢ System Design: Software architecture is derived from SRS document. A new system is
designed according to the needs of the user.
➢ Development: This is the actual phase where the system is developed. The whole
design is built and implemented.
15. Software Development Life Cycle
Dr. K. Adisesha
15
Software Development Life Cycle (SDLC):
SDLC is a sequence of activities carried out by analyst, designer and user to develop
and implement an information system.
➢ SDLC can be broadly classified into 7 phases.
➢ Testing: During implementation phase each module of the design is coded and each
module is unit tested individually. This is to check if each individual module works
correctly. This is the most critical phase.
➢ Deployment: The developed system is handed over to the client. The old system is
dispensed and the new system is put to operations and used.
➢ Software Maintenance: In this phase adding enhancements, improvements and updates
to the new versions are done.
16. SDLC Models
Dr. K. Adisesha
16
SDLC Models:
Software Development life cycle (SDLC) is a spiritual model used in project
management that defines the stages include in an information system development
project.
➢ Each process model follows a series of phase unique to its type to ensure success in the
step of software development.
➢ Different types of SDLC Models are:
❖ Waterfall Model
❖ Iterative Model
❖ Prototype model
❖ Iterative enhancement model
❖ Agile Model
17. SDLC Models
Dr. K. Adisesha
17
Waterfall Model:
This model is a software life cycle where the stages are depicted as cascading from one
to another. It was described by W.W. Royce in 1970.
➢ The waterfall model arranges all the phases sequentially so that each new phase
depends on the outcome of the previous phase. Conceptually, the design flows from
one phase down to the next, like that of a waterfall.
18. SDLC Models
Dr. K. Adisesha
18
Waterfall Model:
This model is a software life cycle where the stages are depicted as cascading from one
to another. It was described by W.W. Royce in 1970.
➢ Advantages of Waterfall Model
❖ Easy to explain to the user.
❖ Stages and activities are well defined
❖ Verification at each stage ensures early detection of errors
❖ Widely used to identify and meet the milestones
❖ Establishes communication between customer and developer to meet the
specifications.
19. SDLC Models
Dr. K. Adisesha
19
Waterfall Model:
This model is a software life cycle where the stages are depicted as cascading from one
to another. It was described by W.W. Royce in 1970.
➢ Disadvantages of Waterfall Model
❖ The next stage begins only after the previous stage is complete, making it rigid.
❖ User training is not given much importance.
❖ Interaction with the user takes place right at the beginning and then at the time of
deployment, which creates a gap between the phases.
❖ Due to its cascading flow there is very little interaction from the user.
20. SDLC Models
Dr. K. Adisesha
20
Iterative Model:
The iterative process suggests that teams begin software development with a small
subset of requirements. Then, they iteratively enhance versions over time until the
complete software is ready for production.
➢ iterative development is a way of breaking down the software development of a large
application into smaller pieces.
➢ The team produces a new software version at the end of each iteration.
➢ Pros and cons
❖ It’s easy to identify and manage risks, as
requirements can change between iterations.
However, repeated cycles could lead to scope
change and underestimation of resources.
21. SDLC Models
Dr. K. Adisesha
21
Prototype model:
Prototype is a partially developed product /dummy model that allow customers and
developers to analyze if the proposed system is suitable for the finished product.
➢ A prototype is a toy implementation which is built before starting actual development.
❖ The reason for developing a prototype is it is impossible to
“get it right” the first time; we must plan to throw away
the first product in order to develop a good product.
❖ The developed prototype is submitted to the customer/user
for evaluation, based on the customer feedback the model
is modified/refined. The cycle continues until the customer
approves the prototype.
22. SDLC Models
Dr. K. Adisesha
22
Prototype model:
Prototype is a partially developed product /dummy model that allow customers and
developers to analyze if the proposed system is suitable for the finished product.
➢ Advantages of Prototype Model
❖ Modification in prototype is faster.
❖ Helps determine feasibility of the system.
❖ Software Developers commitment is higher.
➢ Disadvantages of Prototype Model
❖ Prototyping tools are expensive.
❖ Design and code for the prototype is usually thrown away.
❖ In order to get the prototype work quickly the quality is compromised.
23. SDLC Models
Dr. K. Adisesha
23
Spiral model:
The spiral model is a risk-driven process model. This SDLC model helps the group to
adopt elements of one or more process models like a waterfall, incremental, waterfall, etc.
➢ Spiral model was proposed by Boehm in 1988.
➢ Innermost loop is concerned with system feasibility, next loop system requirement,
followed by system design and so on.
➢ Each loop in the spiral represents a phase of the software process.
➢ Each loop is split into 4 sectors:
❖ Objective setting
❖ Risk assessment and reduction
❖ Development and Validation
❖ Planning
24. SDLC Models
Dr. K. Adisesha
24
Spiral model:
The spiral model is a risk-driven process model. This SDLC model helps the group to
adopt elements of one or more process models like a waterfall, incremental, waterfall, etc.
➢ Advantages of Spiral Model
❖ High amount of risk analysis
❖ Supports large and high risk projects
❖ Spiral model is one of the most flexible SDLC models.
❖ Changes can be introduced later in the life cycle as well
➢ Disadvantages of Spiral model
❖ When to stop the spiral process is not clear.
❖ Cost involved in this model is usually high.
❖ Does not work well for smaller projects.
❖ Project’s success is highly dependent on the risk analysis phase.
25. SDLC Models
Dr. K. Adisesha
25
Agile Model:
The agile model was mainly designed to adapt to changing requests quickly. The main
goal of the Agile model is to facilitate quick project completion.
➢ Agile methodology is a practice which promotes continues interaction of development
and testing during the SDLC process of any project.
➢ In the Agile method, the entire project is
divided into small incremental builds.
➢ All of these builds are provided in iterations,
and each iteration lasts from one to three
weeks.
26. SDLC Models
Dr. K. Adisesha
26
The Agile software development cycle:
Agile software development refers to a group of software development methodologies
based on iterative development, where requirements and solutions evolve through
collaboration between self-organizing cross-functional teams.
➢ The Agile software development cycle can be broken down into the following six steps:
❖ Concept
❖ Inception
❖ Iteration/construction
❖ Release
❖ Production
❖ Retirement
27. SDLC Models
Dr. K. Adisesha
27
Advantages of Agile methodologies:
The goal of every Agile methodology is to embrace and adapt to change while
delivering working software as efficiently as possible.
➢ Advantages:
❖ Deployment of software is quicker and thus helps in increasing the trust of the
customer.
❖ Helps in getting immediate feedback which can be used to improve the software in
the next increment.
❖ Increased collaboration and communication
❖ Flexibility and adaptability
❖ Improved quality and reliability
28. SDLC Models
Dr. K. Adisesha
28
Disadvantages of Agile methodologies:
In the case of large software projects, it is difficult to assess the effort required at the
initial stages of the software development life cycle.
➢ Disadvantages:
❖ Lack of predictability
❖ Limited scope control
❖ Lack of emphasis on testing
❖ Risk of team burnout
❖ Lack of structure and governance
29. Software Processes
Dr. K. Adisesha
29
The Software Process Model:
A software process model is a specified definition of a software process, which is
presented from a particular perspective.
➢ Models, by their nature, are a simplification, so a software process model is an
abstraction of the actual process, which is being described.
➢ Some examples of the types of software process models that may be produced are:
❖ A workflow model
❖ A dataflow or activity model
❖ A role/action model
30. Software Processes
Dr. K. Adisesha
30
Software Process Model:
Some examples of the types of software process models that may be produced are:
➢ A workflow model: This shows the series of activities in the process along with their inputs,
outputs and dependencies.
❖ The activities in this model perform human actions.
➢ A dataflow or activity model: This represents the process as a set of activities, each of which
carries out some data transformations.
❖ The activities here may be at a lower level than activities in a workflow model.
❖ They may perform transformations carried out by people or by computers.
➢ 3. A role/action model: This means the roles of the people involved in the software process
and the activities for which they are responsible.
31. Software Processes
Dr. K. Adisesha
31
Software Process Model :
A software process model is a specified few Software Crisis, which is presented from a
particular perspective:
➢ The waterfall approach: This takes the above activities and produces them as separate process
phases such as requirements specification, software design, implementation, testing, and so on.
➢ Evolutionary development: This method interleaves the activities of specification,
development, and validation. An initial system is rapidly developed from a very abstract
specification.
➢ Formal transformation: This method is based on producing a formal mathematical system
specification and transforming this specification, using mathematical methods to a program.
These transformations are 'correctness preserving
➢ System assembly from reusable components: This method assumes the parts of the system
already exist.
32. Software Process Model
Dr. K. Adisesha
32
Software Process Model:
The software development team must decide the process model that is to be used for
software product development and then the entire team must adhere to it.:
➢ The Waterfall Model – It is a sequential design process in which progress is seen as
flowing steadily downwards.
➢ A workflow Model – It is the sequential series of tasks and decisions that make up a business
process.
➢ Phases in waterfall model:
(i) Requirements Specification
(ii) Software Design
(iii) Implementation
(iv) Testing
33. Software Process Model
Dr. K. Adisesha
33
Agile software development:
Agile software development refers to a group of software development methodologies
based on iterative development, where requirements and solutions evolve through
collaboration between self-organizing cross-functional teams.
➢ In 2001, 17 software development professionals gathered to discuss concepts around the idea
of lightweight software development and ended up creating the Agile Manifesto.
➢ The four core values outlined in the Agile Manifesto are as follows:
❖ Individual interactions are more important than processes and tools.
❖ A focus on working software rather than thorough documentation.
❖ Collaboration instead of contract negotiations.
❖ A focus on responding to change.
34. Software Process Model
Dr. K. Adisesha
34
Agile software development:
Here is the working of Agile -
➢ Define the project: The team, along with the customer, defines the project's goals,
objectives, and requirements.
➢ Create a backlog: A backlog is a prioritized list of tasks that need to be completed. The
customer, product owner, and the team work together to create the backlog.
➢ Plan the sprint: The team plans the sprint by selecting the highest-priority tasks from
the backlog and determining how much work can be completed in the upcoming sprint.
➢ Execute the sprint: The team works on completing the tasks planned for the sprint, with
daily meetings to check progress and address any issues.
35. Software Process Model
Dr. K. Adisesha
35
Agile software development:
Here is the working of Agile -
➢ Review and demo: At the end of the sprint, the team demonstrates the completed work
to the customer and gets feedback.
➢ Retrospect: The team retrospects on the sprint, discussing what went well, what didn't,
and what can be improved for the next sprint.
➢ Repeat: The process is repeated for each sprint until the project is completed. The
product is incrementally developed and delivered to the customer in small chunks.
➢ Continuously improve: Agile methodologies focus on continuous improvement. The
team reflects on its progress and makes adjustments as necessary to improve processes,
tools, and communication for the next sprint.
36. Software Process Model
Dr. K. Adisesha
36
Types of Agile methodologies:
The goal of every Agile methodology is to embrace and adapt to change while
delivering working software as efficiently as possible.
➢ The most widely used Agile methods include the following:
❖ Scrum
❖ Kanban
❖ Crystal
❖ Continuous Integration
❖ Test-Driven Development
❖ Dynamic systems development method
❖ Feature-driven development
37. Software Process Model
Dr. K. Adisesha
37
Types of Agile methodologies:
The goal of every Agile methodology is to embrace and adapt to change while
delivering working software as efficiently as possible.
➢ The most widely used Agile methods include the following:
❖ Scrum: Scrum is a framework for agile software development that involves
iterative cycles called sprints, daily stand-up meetings, and a product backlog that
is prioritized by the customer.
❖ Kanban: Kanban is a visual system that helps teams manage their work and
improve their processes. It involves using a board with columns to represent
different stages of the development process, and cards or sticky notes to represent
work items.
38. Software Process Model
Dr. K. Adisesha
38
Types of Agile methodologies:
The goal of every Agile methodology is to embrace and adapt to change while
delivering working software as efficiently as possible.
➢ The most widely used Agile methods include the following:
❖ Continuous Integration: Continuous Integration is the practice of frequently merging code
changes into a shared repository, which helps to identify and resolve conflicts early in the
development process.
❖ Test-Driven Development: Test-Driven Development (TDD) is a development practice that
involves writing automated tests before writing the code. This helps to ensure that the code
meets the requirements and reduces the likelihood of defects.
❖ Pair Programming: Pair programming involves two developers working together on the
same code. This helps to improve code quality, share knowledge, and reduce the defects.
39. Software Process Model
Dr. K. Adisesha
39
Types of Agile methodologies:
The goal of every Agile methodology is to embrace and adapt to change while
delivering working software as efficiently as possible.
➢ The most widely used Agile methods include the following:
❖ Continuous Integration: Continuous Integration is the practice of frequently merging code
changes into a shared repository, which helps to identify and resolve conflicts early in the
development process.
❖ Test-Driven Development: Test-Driven Development (TDD) is a development practice that
involves writing automated tests before writing the code. This helps to ensure that the code
meets the requirements and reduces the likelihood of defects.
❖ Pair Programming: Pair programming involves two developers working together on the
same code. This helps to improve code quality, share knowledge, and reduce the defects.
40. Software Process Model
Dr. K. Adisesha
40
Scrum methodologies:
Scrum is a subset of Agile. It is a lightweight process framework for agile development,
and the most widely-used one..
➢ A Scrum process is distinguished from other agile processes by specific concepts and
practices, divided into the three categories of the ScrumMaster, the Product Owner, and the
Team.
➢ An agile Scrum process benefits the organization by helping it to
❖ Increase the quality of the deliverables
❖ Cope better with change (and expect the changes)
❖ Provide better estimates while spending less time creating them
❖ Be more in control of the project schedule and state
41. Software Process Model
Dr. K. Adisesha
41
Scrum methodologies:
Scrum is a popular framework that enables teams to work together. Based on Agile
principles, Scrum enables the development, delivery, and sustenance of complex
projects.
➢ It enables teams to hypothesize how they think something works, try it out, learn and
reflect from their experiences, and make appropriate changes.
❖ Project deliverables are completed quickly and efficiently
❖ Time and money are used properly
❖ Projects are manageable since they’re divided into smaller units called sprints
❖ Teams have greater visibility, thanks to scrum meetings and stand-up sessions
❖ There’s constant feedback from customers and clients
❖ Individual efforts of the team members can be focused on
42. Software Process Model
Dr. K. Adisesha
42
Kanban board template:
The main benefit of using a template for your Kanban board is that it allows you to
quickly set up your project task list, especially when you create your template in project
management software.
➢ Kanban board templates are simple workflow management tools.
➢ From there, you and your team can see project work in real time, watching as other team
members move tasks from “to-do” to “in progress.”
❖ Software development teams working through product backlogs.
❖ Startups who need a clear and easy way to coordinate work with limited team members or
resources.
❖ Content marketing teams who need to assign articles to a variety of writers. The article
can move through different stages, in this example the columns could be: to-do, assigned,
drafting, editing, and published.