Chapter 1 Introduction To Software Engineering and Process Models
Chapter 1 Introduction To Software Engineering and Process Models
Models
Syllabus Content
1.2 Prescriptive Process Models: The Waterfall, Incremental Process Models, Evolutionary
Process Models: RAD & Spiral
What is Software?
• The product that software professionals build and then support over the long
term.
• Software encompasses:
(2) data structures that enable the programs to adequately store and manipulate
information and
(3) documentation that describes the operation and use of the programs.
Software Product
• Generic products
Stand-alone systems that are marketed and sold to any customer who wishes to buy
them.
CAD software; software for specific markets such as appointments systems for dentists.
• Customized products
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Software that is commissioned by a specific customer to meet their own needs.
Examples – embedded control systems, air traffic control software, traffic monitoring
systems.
business environment.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Software applications
6. WebApps (Web applications) network centric software. As web 2.0 emerges, more
sophisticated computing environments is supported integrated with remote database
Open source—”free” source code open to the computing community (a blessing, but
Also Data mining,Grid computing, Cognitive machines & Software for nanotechnologies
Characteristics Of Software
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Characteristics 1-: Software is developed or engineered, it is not manufactured in the
classical sense which has quality problem.
Characteristic 3-: Most Software are custom built rather than being assembled from
existing component
[Software engineering is] the establishment and use of sound engineering principles in
order to obtain economically software that is reliable and works efficiently on real
machines.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Software Engineering: (1) The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of software; that is, the
Tools
Methods
Process Models
Quality Focus
• Tools provide automated or semi-automated support for the process and methods.
Software Process
• A process is a collection of activities, actions and tasks that are performed when
some work product is to be created.
quality to satisfy those who have sponsored its creation and those who will use it.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• A framework for the activities, actions, and tasks that are required to build high-
quality software.
• CMM was developed by the Software Engineering Institute (SEI) at Carnegie Mellon
University in 1987.
product.
products.
different levels.
• Each level of maturity shows a process capability level. All the levels except level-1
are further described by Key Process Areas (KPA’s).
software process in order to satisfy the KPA and achieve that level of maturity.
• Conceptually, key process areas form the basis for management control of the
software project and establish a context in which technical methods are applied,
work products like models, documents, data, reports, etc. are produced, milestones
• No KPA’s defined.
• Processes followed are adhoc and immature and are not well defined.
Level-2: Repeatable –
• Experience with earlier projects is used for managing new similar natured projects.
performance of the software product, including all its components, for the entire
lifecycle.
feedback which result in some changes in the requirement set. It also consists of
accommodation of those modified requirements.
software contractors i.e. it manages the parts of the software which are developed
by third parties.
Level-3: Defined –
• At this level, documentation of the standard guidelines and procedures takes place.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• KPA’s:Peer Reviews- In this method, defects are removed by using a number of
review methods like walkthroughs, inspections, buddy checks, etc.
team members including the developers and ensuring an increase in work efficiency.
team members including the developers and ensuring an increase in work efficiency.
• Level-4: Managed
• At this stage, quantitative quality goals are set for the organization for software
• The measurements made help the organization to predict the product and process
quality within some limits defined quantitatively.
quality.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Level-5: Optimizing
• This is the highest level of process maturity in CMM and focuses on continuous
process improvement in the organization using quantitative feedback.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Five Activities of Generic Process Framework
requirements
2. Planning: creates a “map” defines the work by describing the tasks, risks and
resources, work products and work schedule.
3. Modeling: Create a “sketch”, what it looks like architecturally, how the constituent
parts fit together and other characteristics.
5. Deployment: Delivered to the customer who evaluates the products and provides
feedback based on the evaluation.
Umbrella Activities
• Software project tracking and control: assess progress against the plan and take
• Risk management: assesses risks that may affect the outcome and quality.
• Technical reviews: assesses work products to uncover and remove errors before
• Reusability management: defines criteria for work product reuse and establishes
mechanism to achieve reusable components.
• Work product preparation and production: create work products such as models,
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Process Flow
• A parallel process flow executes one or more activities in parallel with other
activities ( modeling for one aspect of the software in parallel with construction
• What: It is a road map that helps you create a timely, high-quality results.
• Who: Software engineers and their managers, clients also. People adapt the
process to their needs and follow it.
• What are the steps: The process you adopt depends on the software that you
are building. One process might be good for aircraft avionic system, while an
Prescriptive Models
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Prescriptive process models advocate an orderly approach to software
engineering. However, will some extent of chaos (less rigid) be beneficial to
Waterfall Model
• In a waterfall model, each phase must be completed before the next phase can
only if the previous phase is complete. In this waterfall model, the phases do not
overlap.
specification document.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
2.System Design − The requirement specifications from first phase are studied in
this phase and the system design is prepared. This system design helps in
specifying hardware and system requirements and helps in defining the overall
system architecture.
3.Implementation − With inputs from the system design, the system is first
developed in small programs called units, which are integrated in the next phase.
Each unit is developed and tested for its functionality, which is referred to as Unit
Testing
4.Integration and Testing − All the units developed in the implementation phase
are integrated into a system after testing of each unit. Post integration the entire
system is tested for any faults and failures.
market.
6.Maintenance − There are some issues which come up in the client environment.
To fix those issues, patches are released. Also to enhance the product some better
versions are released. Maintenance is done to deliver these changes in the
customer environment.
Advantages
• Easy to manage due to the rigidity of the model. Each phase has specific deliverables
• Works well for smaller projects where requirements are very well understood.
Disadvantages
• Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
• Integration is done as a "big-bang. at the very end, which doesn't allow identifying
any technological or business bottleneck or challenges early.
V-Model
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• This means that for every single phase in the development cycle, there is a
directly associated testing phase.
• This is a highly-disciplined model and the next phase starts only after completion
of the previous phase.
• This is the first phase in the development cycle where the product requirements are
understood from the customer’s perspective.
• This phase involves detailed communication with the customer to understand his
2.System Design
• Once you have the clear and detailed product requirements, it is time to design the
complete system.
• The system design will have the understanding and detailing the complete hardware
and communication setup for the product under development.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• The system test plan is developed based on the system design. Doing this at an
earlier stage leaves more time for the actual test execution later.
Architectural Design
Architectural specifications are understood and designed in this phase. Usually more than
one technical approach is proposed and based on the technical and financial feasibility the
final decision is taken.
• The system design is broken down further into modules taking up different
functionality. This is also referred to as High Level Design (HLD).The data transfer
and communication between the internal modules and with the outside world
(other systems) is clearly understood and defined in this stage. With this
information, integration tests can be designed and documented during this stage.
Module Design
In this phase, the detailed internal design for all the system modules is specified, referred
to as Low Level Design (LLD). The unit tests are an essential part of any development
process and helps eliminate the maximum faults and errors at a very early stage..
Coding Phase
• The actual coding of the system modules designed in the design phase is taken up
in the Coding phase.
• The best suitable programming language is decided based on the system and
architectural requirements.
• The code goes through numerous code reviews and is optimized for best
Validation Phases
Unit Testing
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Unit tests designed in the module design phase are executed on the code during
this validation phase.
• Unit testing is the testing at code level and helps eliminate bugs at an early stage
Integration Testing
• Integration tests are performed to test the coexistence and communication of the
internal modules within the system.
System Testing
• System tests check the entire system functionality and the communication of the
system under development with external systems. Most of the software and
hardware compatibility issues can be uncovered during this system test execution.
Acceptance Testing
• Acceptance testing is associated with the business requirement analysis phase and
• Acceptance tests uncover the non functional issues & compatibility issues with the
other systems available in the user environment.
Applications of V-Model
Advantages
• Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
Disadvantages
• Not suitable for the projects where requirements are at a moderate to high risk of
changing.
functionality.
Incremental Model
• In the incremental model, starts with a simple implementation of a small set of the
software requirements and iteratively enhances the evolving versions until the
• Model does not attempt to start with a full specification of requirements. Instead,
development begins by specifying and implementing just part of the software,
• This process is then repeated, producing a new version of the software at the end
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• In this incremental model, the whole requirement is divided into various builds.
• During each iteration, the development module goes through the requirements,
• Each subsequent release of the module adds function to the previous release. The
process continues till the complete system is ready as per the requirement.
against those requirements within each cycle of the model. As the software evolves
through successive cycles, tests must be repeated and extended to verify each
• In this incremental model, the whole requirement is divided into various builds.
• During each iteration, the development module goes through the requirements,
• Each subsequent release of the module adds function to the previous release. The
process continues till the complete system is ready as per the requirement.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• The key to a successful use of an iterative software development lifecycle is rigorous
validation of requirements, and verification & testing of each version of the software
against those requirements within each cycle of the model. As the software evolves
through successive cycles, tests must be repeated and extended to verify each
Advantages
• Some working functionality can be developed quickly and early in the life cycle.
• Risks are identified and resolved during iteration; and each iteration is an easily
managed milestone.
• Issues, challenges and risks identified from each increment can be utilized/applied
to the next increment.
Disadvantages
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Although cost of change is lesser, but it is not very suitable for changing
requirements.
• System architecture or design issues may arise because not all requirements are
through workshops or focus groups, early testing of the prototypes by the customer
using iterative concept, reuse of the existing prototypes (components), continuous
• In the RAD model, the functional modules are developed in parallel as prototypes
and are integrated to make the complete product for faster product delivery
• RAD projects follow iterative and incremental model and have small teams
comprising of developers, domain experts, customer representatives and other IT
resources working progressively on their component or prototype.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Prototypes developed are reusable.
1) Business Modeling:-
• The business model for the product under development is designed in terms of
flow of information and the distribution of information between various business
2)Data Modeling
• The attributes of all data sets is identified and defined. The relation between these
data objects are established and defined in detail in relevance to the business
model.
3)Process Modeling
• The data object sets defined in the Data Modeling phase are converted to
establish the business information flow needed to achieve specific business
objectives as per the business model.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• The process model for any changes or enhancements to the data object sets is
defined in this phase. Process descriptions for adding, deleting, retrieving or
4)Application Generation
The actual system is built and coding is done by using automation tools to convert
process and data models into actual prototypes.
• The overall testing time is reduced in the RAD model as the prototypes are
independently tested during every iteration.
• However, the data flow and the interfaces between all the components need to be
thoroughly tested with complete test coverage. Since most of the programming
components have already been tested, it reduces the risk of any major issues.
• The traditional SDLC follows a rigid process models with high emphasis on
requirement analysis and gathering before the coding starts.
• It puts pressure on the customer to sign off the requirements before the project
starts and the customer doesn’t get the feel of the product as there is no working
• The customer may need some changes after he gets to see the software.
• The RAD model focuses on iterative and incremental delivery of working models
to the customer.
• This results in rapid delivery to the customer and customer involvement during the
complete development cycle of product reducing the risk of non-conformance
Advantages
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Progress can be measured.
Disadvantages
requirements.
Evolutionary Models
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• You need a process model that has been explicitly designed to accommodate a
product that evolved over time.
the software.
• When to use: Customer defines a set of general objectives but does not identify
detailed requirements for functions and features. Or Developer may be unsure of
the efficiency of an algorithm, the form that human computer interaction should
take.
• What step: Begins with communication by meeting with stakeholders to define the
objective, identify whatever requirements are known, outline areas where further
definition is mandatory. A quick plan for prototyping and modeling (quick design)
occur. Quick design focuses on a representation of those aspects the software
that will be visible to end users. ( interface and output). Design leads to the
construction of a prototype which will be deployed and evaluated. Stakeholder’s
• Both stakeholders and software engineers like the prototyping paradigm. Users
get a feel for the actual system, and developers get to build something
immediately. However, engineers may make compromises in order to get a
• The Prototyping Model is one of the most popularly used Software Development
Life Cycle Models (SDLC models).
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• This model is used when the customers do not know the exact project
requirements beforehand.
• In this model, a prototype of the end product is first developed, tested and refined
• In this process model, the system is partially implemented before or during the
analysis phase thereby giving the customers an opportunity to see the product
early in the life cycle.
• The process starts by interviewing the customers and developing the incomplete
high-level paper model. This document is used to build the initial prototype
• Once the customer figures out the problems, the prototype is further refined to
eliminate them. The process continues till the user approves the prototype and
Quick
communication plan
Modeling
Quick design
Deployment
delivery & Construction
feedback of prototype
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
detail. The user is interviewed in order to know the requirements of the
system.
4. User evaluation: Next, the proposed system is presented to the user for thorough
evaluation of the prototype to recognize its strengths and weaknesses such as what is to
be added or removed. Comments and suggestions are collected from the users and
5. Refining prototype: Once the user evaluates the prototype and if he is not satisfied, the
current prototype is refined according to the requirements. That is, a new prototype is
developed with the additional information provided by the user. The new prototype is
evaluated just like the previous prototype. This process continues until all the requirements
specified by the user are met. Once the user is satisfied with the developed prototype, a
prototype. The final system is evaluated thoroughly followed by the routine maintenance
on regular basis for preventing large-scale failures and minimizing downtime.
• when the requirements of the product are not clearly understood or are unstable
• This model can be successfully used for developing user interfaces, high technology
software-intensive systems, and systems with complex algorithms and interfaces.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• It is also a very good choice to demonstrate the technical feasibility of the product.
Advantages
• The customers get to see the partial product early in the life cycle. This ensures a
greater level of customer satisfaction and comfort.
• Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
• The developed prototype can be reused by the developer for more complicated
projects in the future.
• Flexibility in design
Disadvantages
• There may be too much variation in requirements each time the prototype is
evaluated by the customer.
• It is very difficult for the developers to accommodate all the changes demanded by
the customer.
• After seeing an early prototype, the customers sometimes demand the actual
• The customer might lose interest in the product if he/she is not satisfied with the
initial prototype.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Exam Question-: Describe Spiral Model
Spiral Model
• The spiral model combines the idea of iterative development with the systematic,
1.Communication
• This phase starts with gathering the business requirements in the baseline spiral. In
the subsequent spirals as the product matures, identification of system
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
requirements, subsystem requirements and unit requirements are all done in this
phase.
communication between the customer and the system analyst. At the end of the
spiral, the product is deployed in the identified market.
2.Planning
3. Design
• The Design phase starts with the conceptual design in the baseline spiral and
4.Construct or Build
• The Construct phase refers to production of the actual software product at every
spiral. In the baseline spiral, when the product is just thought of and the design is
being developed a POC (Proof of Concept) is developed in this phase to get
customer feedback.
• Then in the subsequent spirals with higher clarity on requirements and design
details a working model of the software called build is produced with a version
number. These builds are sent to the customer for feedback.
feasibility and management risks, such as schedule slippage and cost overrun.
After testing the build, at the end of first iteration, the customer evaluates the
software and provides feedback.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• For medium to high-risk projects.
• New product line which should be released in phases to get enough customer
feedback.
• Significant changes are expected in the product during the development cycle.
Advantages
• Development can be divided into smaller parts and the risky parts can be
developed earlier which helps in better risk management.
Disadvantages
• Not suitable for small or low risk projects and could be expensive for small
projects.
• Process is complex
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Sr. no. Waterfall Model Spiral Model
2. In waterfall model errors or risks are In spiral model errors or risks are
identified and rectified after the identified and rectified earlier.
completion of stages.
4. Waterfall model is applicable for While Spiral model is used for large
small project. project.
7. There is high amount risk in waterfall There is low amount risk in spiral
model. model.
• Second, it does not establish the maximum speed of the evolution. If the
evolution occur too fast, without a period of relaxation, it is certain that the
process will fall into chaos. On the other hand if the speed is too slow then
productivity could be affected.
activity moves from the under development state into the awaiting change
state.
• The concurrent process model activities moving from one state to another
state.
Advantages
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• This model is applicable to all types of software development processes.
• It is easy for understanding and use.
Disadvantages
• It needs better communication between the team members. This may not be
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
elaborati
on
inception
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Unified Process Work Product
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• High-level design review. Formal verification methods (Chapter 21)
are applied to uncover errors in the design. Metrics are maintained for
all important tasks and work results.
• Build self-directed teams that plan and track their work, establish goals, and own
their processes and plans. These can be pure software teams or integrated product
and expected.
• Provide improvement guidance to high-maturity organizations.
Exam Question:
What is ‘Agility’?
• Effective (rapid and adaptive) response to change (team members, new technology,
requirements)
• Effective communication in structure and attitudes among all team members,
technological and business people, software engineers and managers。
• Drawing the customer into the team. Eliminate “us and them” attitude. Planning in
an uncertain world has its limits and plan must be flexible.
activates are not discouraged, and active and continuous communication between
developers and customers
• What? They morph into a minimal task set that push the team toward construction
and delivery sooner.
• The only really important work product is an operational “software increment” that
is delivered.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Agility and the Cost of Change
• If there are any changes, the costs of doing this work are minimal. But
if the middle of validation testing, a stakeholder is requesting a major
functional change.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
An Agile Process
assumptions:
– Recognizes that plans are short-lived (some requirements will persist, some
will change. Customer priorities will change)
necessary before construction. Design models are proven as they are created.
• People and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Agile Process Disadvantages
assess the effort required at the beginning of the software development life cycle.
• The project can easily get taken off track if the customer representative is not clear
what final outcome that they want.
• Only senior programmers are capable of taking the kind of decisions required
during the development process. Hence it has no place for newbie programmers,
Agility Principles
Our highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
10. Simplicity – the art of maximizing the amount of work not done – is essential.
11. The best architectures, requirements, and designs emerge from self–organizing
teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes
• To implement a new feature the developers, need to lose only the work of a few
days, or even only hours, to roll back and implement it.
• Agile assumes that the end users’ needs are ever changing in a dynamic business
and IT world. Changes can be discussed and features can be newly effected or
removed based on feedback. This effectively gives the customer the finished system
• Both system developers and stakeholders alike, find they also get more freedom of
time and options than if the software was developed in a more rigid sequential way.
Extreme Programming
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Extreme Programming (XP) is an agile software development framework that aims
to produce higher quality software, and higher quality of life for the development
team.
• 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.
• It does not mention finer details such as the different scenarios that can occur. On
– Begins with the listening, leads to creation of “user stories” that describes
required output, features, and functionality. Customer assigns a value(i.e., a
– Agile team assesses each story and assigns a cost (development weeks. If
more than 3 weeks, customer asked to split into smaller stories)
implemented first.
– Follows the KIS principle (keep it simple) Nothing more nothing less than the
story.
object-oriented context.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• XP Coding
• XP Testing
– All unit tests are executed daily and ideally should be automated. Regression
• Costs incurred in changes − Extensive and ongoing testing makes sure the
changes do not break the existing functionality. A running working system always
ensures sufficient time for accommodating changes such that the current
operations are not affected.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Staff turnover − Intensive team collaboration ensures enthusiasm and good will.
Cohesion of multi-disciplines fosters the team spirit.
XP Debate
Applications of Extreme Programming (XP): Some of the projects that are suitable
to develop using XP model are given below:
• Small projects: 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 projects face
XP Disadvantages
• Requirements are expressed informally: Use stories and acceptance tests are the
• Lack of formal design: XP deemphasizes the need for architectural design. Complex
systems need overall structure to exhibit quality and maintainability. Proponents
Scrum
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• A Scrum process is distinguished from other agile processes by
specific concepts and practices, divided into the three categories of
Roles, Artifacts, and Time Boxes.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Scrum is an agile process most commonly used for product
development, especially software development.
• Scrum team: A typical scrum team has between five and nine people,
but Scrum projects can easily scale into the hundreds. However, Scrum
can easily be used by one-person teams and often is. This team does
not include any of the traditional software engineering roles such as
programmer, designer, tester or architect. Everyone on the project
works together to complete the set of work they have collectively
committed to complete within a sprint. Scrum teams develop a deep
form of camaraderie and a feeling that “we’re all in this together.”
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Product owner: The product owner is the project’s key stakeholder
and represents users, customers and others in the process. The
product owner is often someone from product management or
marketing, a key stakeholder or a key user.
• Scrum Master: The Scrum Master is responsible for making sure the
team is as productive as possible. The Scrum Master does this by
helping the team use the Scrum process, by removing impediments to
progress, by protecting the team from outside, and so on.
• Daily Scrum: Each day during the sprint, a brief meeting called the
daily scrum is conducted. This meeting helps set the context for each
day’s work and helps the team stay on track. All team members are
required to attend the daily scrum.
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Sprint review meeting: At the end of each sprint, the team
demonstrates the completed functionality at a sprint review meeting,
during which, the team shows what they accomplished during the
sprint. Typically, this takes the form of a demonstration of the new
features, but in an informal way; for example, PowerPoint slides are
not allowed. The meeting must not become a task in itself nor a
distraction from the process.
Each of the Scrum terms has its own page within the Scrum section, so
be sure to check out all the pages in the navigation.
Kanban Model
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
• Kanban allows the software be developed in one large development
cycle. Despite this, Kanban is an example of an agile methodology
because it fulfils all twelve of the principles behind the Agile manifesto,
because whilst it is not iterative, it is incremental.
• Visualize what you do today (workflow): seeing all the items in context
of each other can be very informative
• Limit the amount of work in progress (WIP): this helps balance the
flow-based approach so teams don™t start and commit to too much
work at once
• Enhance flow: when something is finished, the next highest thing from
the backlog is pulled into play
• Kanban project has no defined start or end points for individual work
items, each can start and end independently from one another, and
work items have no pre-determined duration for that matter.
• A work item is not allowed to move on to the next phase until some
capacity opens up ahead.
• It is only as tasks are completed that new tasks are pulled into the
cycle. WIP limits should be fine-tuned based on comparisons of
expected versus actual effort for tasks that complete.
• Kanban does not impose any role definition as say, Scrum does and
along with the absence of formal iterations, role flexibility makes
Kanban attractive to those who have been using waterfall-style
development models and want to change but are afraid of the initial
upheaval something like Scrum can cause while being adopted by a
development team.
Benefits:
• Responsiveness to Change:
• Reducing waste and removing activities that don™t add value to the
team/department/organization
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)
Chapter 1 Introduction to Software Engineering and Process Models -Prepared by Prof .Prita Patil(VIT-CMPN)