1
1
2
22CS602- OBJECT
ORIENTED SOFTWARE
ENGINEERING
DEPARTMENT : CSE
BATCH : 2022-2026
YEAR/SEMESTER : III/06
CREATED ON : 18.12.2024 3
Table of Contents
S.NO Topic Page No.
1. Course Objectives 5
2. Pre-Requisites 6
3. Syllabus 7
4. Course outcomes 8
9. Assignments 52
4
Course
Objectives
5
Pre-Requisites
Semester VI
Semester II &
III
20CS201-DATA STRUCTURES,
20CS302-OBJECT ORIENTED PROGRAMMING
6
SYLLABUS
LTPC
22CS602 OBJECT ORIENTED SOFTWARE
ENGINEERING(Lab 2023
Integrated)
UNIT I PRODUCT AND PROCESS 6+6
The Nature of Software – Defining the Discipline – The Software Process – Process models
– Prescriptive Process Models – Product and Process – Agility and Process – What is an
Agile Process?– Scrum– Other Agile Framework – Kanban – DevOps
Course Level
Description in Bloom’s
Outcome
Taxonomy
s
8
CO- PO/PSO
Mapping
Program
Program Outcomes Specific
Leve Outcomes
Course
l of
OutCome
CO K3,
s
K3 K4 K4 K5 K5, A3 A2 A3 A3 A3 A3 A2 PS
K6 PS PS
O-
O-2 O-3
1
PO- PO- PO- PO- PO- PO- PO- PO- PO- PO- PO- PO-
1 2 3 4 5 6 7 8 9 10 11 12
2 1 1 1 1 - - 1 1 1 - 1 2 2 -
CO1 K2
2 1 1 1 1 - - 1 1 1 - 1 2 2 -
CO2 K2
3 2 2 1 1 - - 1 1 1 - 1 2 2 -
CO3 K2
3 2 2 1 1 - - 1 1 1 - 1 2 2 -
CO4 K3
3 2 2 1 1 - - 1 1 1 - 1 2 2 -
C05 K3
3 2 2 1 1 - - 1 1 1 - 1 2 2 -
C06 K3
9
UNIT - I
PRODUCT
AND
PROCESS
10
Lecture Plan –Unit- 1
Evolutionary BB,PPT
4 1 Models – CO1 K2,K4
Prototyping
BB,PPT
5 1 Spiral Model CO1 K2
Concurrent BB,PPT
6 1 model- Product CO1 K2
and Process
Agility and BB,PPT
7 1 process-Agil CO1 K2
e Process
Scrum-Other BB,PPT
Agile
8 1 Frameworks CO1 K2,K3
Kanban BB,PPT
9 1 CO1 K2
–
DevOps
Activity based learning
Online Quiz:
https://docs.google.com/forms/d/e/1FAIpQLSc2RsW2Wf1377vSmkiFAxUIpm
W 6MdxSPB9XmNAT1bvqHiLpvQ/viewform?usp=sf_link
12
22CS602 OBJECT ORIENTED SOFTWARE ENGINEERING
UNIT I PRODUCT AND PROCESS
The Nature of Software – Defining the Discipline – The Software Process – Process models
– Prescriptive Process Models – Product and Process – Agility and Process – What is an
Agile Process?– Scrum– Other Agile Framework – Kanban – DevOps
❑ Steps involved-
❑ Hardware wears out but —software doesn’t wear out. But it does deteriorate!
❑ Figure 1.1 depicts failure rate as a function of time for hardware.
The relationship, often called the “bathtub curve,” indicates that
hardware exhibits relatively high failure rates early in its life
(these failures are often attributable to design or
manufacturing defects).
Defects are then corrected, and failure rate drops to a steady-state level
(hopefully, quite
low) for some period of time. As time passes, however, the failure rate rises again
as hardware components suffer from the cumulative affects of dust, vibration,
abuse, temperature extremes , and many other environmental maladies. Stated
simply, the hardware begins to wear out.
Figure 1.1:
15
Failure curve for
hardware
Software is not susceptible to the environmental maladies that cause hardware to
wear out. In theory, therefore, the failure rate curve for software should take the form of
the “idealized curve” shown in Figure 1.2.
Undiscovered defects will cause high failure rates early in the life of a program.
However, these are corrected (hopefully, without introducing other errors), and the curve
flattens as shown. The idealized curve is a gross oversimplification of actual failure models
for software. However, the implication is clear—software doesn’t wear out. But it does
deteriorate! This seeming contradiction can best be explained by considering the “actual
curve” in Figure 1.2. During its life, software will undergo change. As changes are made,
it is likely that errors will be introduced, causing the failure rate curve to spike as shown
in Figure 1.2. Before the curve can return to the original steady-state failure rate, another
change is requested, causing the curve to spike again. Slowly, the minimum failure rate
level begins to rise— the software is deteriorating due to change.
Another aspect of wear illustrates the difference between hardware and software.
When a hardware component wears out, it is replaced by a spare part. There are no
software spare parts. Every software failure indicates an error in design or in the process
through which design was translated into machine-executable code. Therefore, software
maintenance involves considerably more complexity than hardware maintenance.
16
Although the industry is moving toward component-based
construction,
most software continues to be custom built.
Consider the manner in which the control hardware for a computer- based product
is designed and built. The design engineer draws a simple schematic of the digital
circuitry, does some fundamental analysis to ensure that proper function will be
achieved, and then goes to the shelf where catalogs of digital components exist. Each
integrated circuit has a part number, a defined and validated function, a well-defined
interface, and a standard set of integration guidelines. After each component is selected,
it can be ordered off the shelf.
System software:
System software is a collection of programs written to service other programs. Some
system software (e.g., compilers, editors, and file management utilities) processes
complex, but determinate, information structures.Other systems applications (e.g.,
operating system components, drivers, networking software, telecommunications
processors) process largely indeterminate data.
In either case, the systems software area is characterized by heavy interaction with
computer
hardware; heavy usage by multiple users; concurrent operation that requires scheduling,
resource sharing, and sophisticated process management; complex data structures;
a nd
1 7
multiple external interfaces.
Application software:
Application software consists of standalone programs that solve a specific business
need.Applications in this area process business or technical data in a way that
facilitates business operations or management/technical decision making.In
addition to conventional data processing applications, application software is used
to control business functions in real-time (e.g., point-of-sale transaction
processing, real-time manufacturing process control)
Engineering/scientific software:
This software applications range from astronomy to volcanology, from automotive
stressanalysis to space shuttle orbital dynamics, and from molecular biology to
automated manufacturing. However, modern applications within the
engineering/scientific area are moving away from conventional numerical
algorithms. Computer-aided design, system simulation, and other interactive
applications have begun to take on real-time and even system software
characteristics.
Embedded software:
Web-applications:
“WebApps,” can be little more than a set of linked hypertext files that present
information using text and limited graphics. However, as e-commerce and B2B
applications grow in importance, WebApps are evolving into sophisticated computing
environments that not only provide standalone features, computing functions, and
content to the end user, but also are integrated with corporate databases and
business applications.
In the early days of the World Wide Web (circa 1990 to 1995),
websites consisted of little more than a set of linked hypertext fi les that presented
information using text and limited graphics. As time passed, the augmentation of
HTML by development tools (e.g., XML, Java) enabled Web engineers to provide
computing capability along with informational content. Web-based systems and
applications5 (we refer to these collectively as WebApps) were born. Today,
WebApps have evolved into sophisticated computing tools that not only provide
stand-alone function to the end user, but also have been integrated with corporate
databases and business applications.
A decade ago, WebApps “involve[d] a mixture between print publishing and
software development, between marketing and computing, between internal
communications and external relations, and between art and technology.” [Pow98]
But today, they provide full computing potential in many of the application
categories.
Over the past decade, Semantic Web technologies (often referred to as Web 3.0)
have evolved into sophisticated corporate and consumer applications that
encompass “semantic databases [that] provide new functionality that requires Web
linking, flexible [data] representation, and external access APIs.” [Hen10]
Sophisticated relational data structures will lead to entirely new WebApps that
allow access to disparate information in ways never before possible.
Mobile Applications
The term app has evolved to connote software that has been
specifically designed to reside on a mobile platform (e.g., iOS, Android, or Windows
Mobile). In most instances, mobile applications encompass a user interface that
takes advantage of the unique interaction mechanisms provided by the mobile
platform, interoperability with Web-based resources that provide access to a wide
array of information that is relevant to the app, and local processing capabilities
that collect, analyze, and format information in a manner that is best suited to the
mobile platform. In addition, a mobile app provides persistent storage capabilities
within the platform.
It is important to recognize that there is a subtle distinction between mobile web
applications and mobile apps. A mobile web application (WebApp) allows a mobile
device to gain access to web-based content via a browser that has been
specifically designed to accommodate the strengths and weaknesses of the mobile
platform. A mobile app can gain direct access to the hardware characteristics of the
device (e.g., accelerometer or GPS location) and then provide the local processing
and storage capabilities noted earlier.
19
Cloud Computing
Referring to the figure, computing devices reside outside the cloud and have
access to a variety of resources within the cloud. These resources encompass
applications, platforms, and infrastructure. In its simplest form, an external
computing device accesses the cloud via a Web browser or analogous software.
The cloud provides access to data that resides with databases and other data
structures. In addition, devices can access executable applications that can be
used in lieu of apps that reside on the computing device.
20
Attributes of good software
The software should deliver the required functionality and performance to the user
and should be maintainable, dependable and usable.
▪ The trust challenge: As software is intertwined with all aspects of our lives, it
is essential that we can trust that software. This is especially true for remote software
systems accessed through a web page or web service interface.
▪ The trust challenge is to develop techniques that demonstrate that software can be
trusted by its users.
UMBRELLA ACTIVITIES
PROCESS ADAPTATION
software engineering process –
A rigid prescription ? - NO
✔Should be Agile and Adaptable for a timely delivery of a quality software
development. The process adopted varies project to project
Among the differences are
• Overall flow of activities, actions, and tasks and the interdependencies among them.
• Degree to which actions and tasks are defined within each framework activity.
• Degree to which work products are identified and required.
• Manner in which quality assurance activities are applied.
• Manner in which project tracking and control activities are applied.
• Overall degree of detail and rigor with which the process is described.
• Degree to which the customer and other stakeholders are involved with the project.
• Level of autonomy given to the software team.
• Degree to which team organization and roles are prescribed.
PROCESS MODELS
• Process Flow
• Process Patterns
PRESCRIPTIVE PROCESS MODELS
• The waterfall model
• Incremental Process Models
• Evolutionary Process Models
• Prototyping Model
• Spiral Model
• Concurrent Model
25
.
PROCESS FLOW
Process flow describes how the framework activities and the actions and
tasks that occur within each framework activity are organized with respect to
sequence and time.
● A linear process flow executes each of the five framework activities
in sequence, beginning with communication and culminating with
deployment.
● An iterative process flow repeats one or more of the activities before
proceeding to the
next
● An evolutionary process flow executes the activities in a “circular” manner.
Each circuit
● A parallel process flow executes e or more activities in parallel with oth of er
through the five activities leads to a more complete version of the software.
activities (e.g., modeling for one aspect the software might be executed in paral e lel
on
with construction of another aspect of th software).
PROCESS PATTERN
Types:
•Stage pattern-defines problems in the
Framework Activity
Eg: Establishing Communication
The first published model of the software development process was derived from more
general system engineering processes .This is illustrated in Figure 1.8. Because of the
cascade from one phase to another, this model is known as the waterfall model or
software life cycle. The principal stages of the model map onto fundamental
development activities: Communication,Planning,Modeling,Construction and deployment.
27
COMMMUNICATION & PLANNING
1. Requirements analysis and definition: The system’s services, constraints
and
goals are established by consultation with system users. They are then defined in detail
and serve as a system specification.
MODELING
2. System and software design: The systems design process partitions the
requirements to either hardware or software systems. It establishes an overall system
architecture. Software design involves identifying and describing the fundamental
software system abstractions and their relationships.
CONSTRUCTION
3. Implementation and unit testing: During this stage, the software
design is realized as a set of programs or program units. Unit testing involves verifying
that each unit meets its specification.
Because of the costs of producing and approving documents, iterations are costly
and involve significant rework. Therefore, after a small number of iterations, it is normal
to freeze parts of the development, such as the specification, and to continue with the
later development stages. Problems are left for later resolution, ignored or programmed
around. This premature freezing of requirements may mean that the system won’t do
what the user wants. It may also lead to badly structured systems as design problems
are circumvented by implementation tricks.
During the final life-cycle phase (operation and maintenance), the software is put into
use.Errors and omissions in the original software requirements are discovered.
Program and design errors emerge and the need for new functionality is identified.
The system must therefore evolve to remain useful. Making these changes (software
maintenance) may involve repeating previous process stages.
28
Advantages of the waterfall model:
Simple and easy to understand and
implement Good for small projects
As requirements are known at the beginning of the project it is easy to manage.
V-MODEL
A variation in the representation of the waterfall model is called the V-
model. Fundamentally no difference b/w Waterfall and V-model
The V-model provides a way of visualizing how verification and validation actions
are applied to earlier engineering work.
29
Represented in Figure 1.8.1 , the V-model depicts the relationship of quality
assurance actions to the actions associated with communication, modeling, and
early construction activities. As a software team moves down the left side of the
V, basic problem requirements are refi ned into progressively more detailed and
technical representations of the problem and its solution. Once code has been
generated, the team moves up the right side of the V, essentially performing a
series of tests (quality assurance actions) that validate each of the models
created as the team moves down the left side.
There are many situations in which initial software requirements are reasonably
well-defined, but
the overall scope of the development effort precludes a purely linear process. In
addition, there may be a compelling need to provide a limited set of software
functionality to users quickly and then
refine and expand on that functionality in later software releases. In such cases, a
process model that is designed to produce the software in increments is chosen.
The incremental model combines elements of the waterfall model applied in an
iterative fashion. Referring to Figure 1.9, the incremental model applies linear
sequences in a staggered fashion as calendar time progresses. Each linear
sequence produces deliverable “increments” of the software.
For example, word-processing software developed using the incremental
paradigm might deliver basic file management, editing and document production
functions in the first increment more
sophisticated editing, and document production capabilities in the second
increment; spelling and grammar checking in the third increment; and advanced
page layout capability in the fourth increment. It should be noted that the process
flow for any increment may incorporate the
prototyping paradigm.
When an incremental model is used, the first increment is often a core product.
That is, basic requirements are addressed, but many supplementary features
(some known, others unknown) remain undelivered. The core product is used by
the customer (or undergoes detailed evaluation). As a result of use and/or
evaluation, a plan is developed for the next increment.
30
The plan addresses the modification of the core product to better meet the needs of the
customer and the delivery of additional features and functionality. This process is
repeated following the delivery of each increment, until the complete product is
produced.
Advantages:
Incremental development is particularly useful when staffing is unavailable for a
complete implementation by the business deadline that has been established for the
project. Early increments
can be implemented with fewer people. If the core product is well received, additional
staff (if required) can be added to implement the next increment. In addition,
For example, a major system might require the availability of new hardware that is
under development and whose delivery date is uncertain. It might be possible to plan
early increments
to beindelivered
a way that avoids
to end thewithout
users use ofinordinate
this hardware, thereby enabling partial
functionality delay.
31
Disadvantages of the incremental model:
The cost of the final product may cross the cost estimated
initially. This model requires a very clear and complete planning.
The planning of design is required before the whole system is broken into
small increments.
The demands of customer for the additional functionalities after every
increment causes problem during the system architecture.
Software, like all complex systems, evolves over a period of time. Business and product
requirements often change as development proceeds, making a straight-line path to an
end product unrealistic; tight market deadlines make completion of a comprehensive
software product impossible, but a limited version must be introduced to meet
competitive or business pressure; a set of core product or system requirements is
well understood, but the details of product or system extensions have yet to be defined.
In these and similar situations, software engineers need a process model that has been
explicitly designed to accommodate a product that evolves over time.
Evolutionary models are iterative. They are characterized in a manner that enables
software engineers to develop increasingly more complete versions of the software.
we present two common evolutionary process models-PROTOTYPING and SPIRAL
PROTOTYPING:
Often, a customer defines a set of general objectives for software, but does not identify
detailed
input, processing, or output requirements. In other cases, the developer may be unsure
of the efficiency of an algorithm, the adaptability of an operating system, or the form
that human-machine interaction should take. In these, and many other situations, a
prototyping paradigm may offer the best approach.
Although prototyping can be used as a standalone process model, it is more commonly
used as a technique that can be implemented within the context of any one of the
process models. Regardless of the manner in which it is applied, the prototyping
paradigm assists the software engineer and the customer to better understand what is
to be built when requirements are fuzzy.
The prototyping paradigm (Figure 1.11) begins with communication. The software
engineer and customer meet and define the overall objectives for the software, identify
whatever requirements are known, and outline areas where further definition is
mandatory.
32
Advantages of Prototype model:
• Users are actively involved in the development
• Since in this methodology a working model of the system is
• provided, the users get a better understanding of the system being
• developed.
• Errors can be detected much earlier.
• Quicker user feedback is available leading to better solutions.
• Missing functionality can be identified easily
Disadvantages of Prototype model:
• Leads to implementing and then repairing way of building systems.
• Practically, this methodology may increase the complexity of the system
as scope of the system may expand beyond original plans.
• In a rush to provide a working model software engineers
overlook the quality
and maintainabily by sticking to the available tools and known
algorithms.
33
1. The customer sees what appears to be a working version of the software, Unaware that
the prototype is held together “with chewing gum and baling wire,” unaware that in
the rush to get it working we haven’t considered overall software quality or
long-term maintainability. When informed that the product must be rebuilt so that
high-levels of quality can be maintained, the customer cries foul and demands that “a
few fixes” be applied to make the prototype a working product. Too often, software
development management relents.
2. The developer often makes implementation compromises in order to get a prototype
working
quickly. An inappropriate operating system or programming language may be used
simply because it is available and known; an inefficient algorithm may be implemented
simply to demonstrate capability. After a time, the developer may become comfortable
with these choices and forget all the reasons why they were inappropriate. The less-
than- ideal choice has now become an integral part of the system.
Anchor point milestones—a combination of work products and conditions that are
attained
along the path of the spiral—are noted for each evolutionary pass.
The first circuit around the spiral might result in the development of a product specification;
subsequent passes around the spiral might be used to develop a prototype and then
progressively
more sophisticated versions of the software. Each pass through the planning region results in
adjustments to the project plan. Cost and schedule are adjusted based on feedback derived from
the customer after delivery. In addition, the project manager adjusts the planned number of
Unlike other process models that end when software is delivered, the spiral model can be
adapted to apply throughout the life of the computer software. Therefore, the first circuit around
the spiral might represent a “concept development project” which starts at the
core of the spiral and continues for multiple iterations until concept development is complete. If
the concept is to be developed into an actual product, the process proceeds outward on the
spiral and a “new product development project” commences. The new product
will evolve through a number of iterations around the spiral. Later, a circuit around the spiral
might be used to represent a “product enhancement project.” In essence, the
spiral, when characterized in this way, remains operative until the software is retired.
a There are
nt, but whenever a change is initiated, the process starts
times when the process is dorma t the appropriate
duct enhancement).
entry point (e.g., pro
The spiral model is a realistic approach to the development of large-scale systems and software.
Because software evolves as the process progresses, the developer and customer better
understand and react to risks at each evolutionary level. The spiral model uses prototyping as a
risk reduction 35
mechanism but, more importantly, enables the developer to apply the prototyping
approach at any stage in the evolution of the product. It maintains the systematic
stepwise approach suggested by the classic life cycle but incorporates it into an iterative
framework that more realistically reflects the real world. The spiral model demands a
direct consideration of technical risks at all stages of the project and, if properly applied,
should reduce risks before they become problematic.
But like other paradigms, the spiral model is not a panacea. It may be difficult to convince
customers (particularly in contract situations) that the evolutionary approach is
controllable. It demands considerable risk assessment expertise and relies on this
expertise for success. If a major risk is not uncovered and managed, problems will
undoubtedly occur.
Note:
If the management demands fixed – budget development (generally a bad
idea), the spiral
model can be problem; as each circuit is completed, project cost is revisited and revised.
Evolutionary process models were conceived to address these issues, and yet, as
a general class of process models, they too have weaknesses.
These are summarized by Nogueira and his colleagues :
● The first concern is that prototyping poses a problem to project planning because
of the uncertain
number of cycles required to construct the product. Most project management
and estimation techniques are based on linear layouts of activities, so they do not
fit completely.
● Second, evolutionary software processes do not establish the maximum speed of the
evolution. If the evolutions 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. 37
● Third, software processes should be focused on flexibility and extensibility rather than on
high quality. This assertion sounds scary. However, we should prioritize the speed of
the development over zero defects. Extending the development in order to reach
high, quality could result in a late delivery of the product, when the opportunity
niche has disappeared. This paradigm shift is imposed by the competition on the edge of
chaos.
PRODUCT
Sr. Key ANDProduct
PROCESS Process
No.
If the process is weak, the end product will undoubtedly suffer. But
an obsessive over-reliance on process is also dangerous.
About every ten years give or take five, the software community
redefines “the problem” by shifting its focus from product issues to
process issues
Duality of product and process- A creative software professional should
also
derive as much satisfaction from the process as the end product
38
AGILITY AND PROCESS
AGILITY INTRODUCTION
AGILITY AND THE COST OF CHANGE
WHAT IS AN AGILE PROCESS?
AGILITY PRINCIPLES
ADVANTAGES & DISADVANTAGES OF AGILE DEVELOPMENT
AGILITY INTRODUCTION
The main point of this section is to introduce agility in the context of software
development. Agility is more than change management. Agility means that customers and
developers need to work together as collaborators on the development team and try to
build products that can be adapted to a rapidly changing market place. Part of this
adaptation is learning when and how to streamline the production of work products and
focus on the development of incremental operational prototypes.
A manifesto is normally associated with an emerging political movement-one that
attacks
the old guard and suggests revolutionary change.
“We are uncovering better ways of developing software by doing it and helping
others do it. Through this work we have come to value:
Individuals and interactions over processes and
tools Working software over comprehensive
documentation Customer collaboration over
contract negotiation
That is, while there is value in the items on the right, we value the items
on the
left more –Kent Beck et al.
39
AGILE PROCESS
40
PRINCIPLES BEHIND THE AGILE MANIFESTO
The Agile Alliance defines 12 agility principles for those who want to achieve agility:
to become more effective, then tunes and adjusts its behavior accordingly.
Figure 1.17
Agiity model
41
What Are the Advantages of the Agile Process?
AGILE METHODOLOGIES
The following are some of the methods to implementations of agile:
Scrum
XP
(AUP) Lean
Kanban 42
SCRUM
• Scrum -the name is derived from an activity that occurs during a rugby match.
• Restarting the game-gaining possession of ball closely packed
• Most popular agile framework-concentrates particularly on how to manage
tasks within a team-based development environment.
• Scrum uses iterative and incremental development model, with shorter
duration of iterations.
• Relatively simple to implement and focuses on quick and frequent deliveries.
• Scrum principles are consistent with the agile manifesto and are used to guide
development activities within a process that incorporates the following framework
activities: requirements, analysis, design, evolution, and delivery.
• Within each framework activity, work tasks occur within a process called a sprint.
• The No. of Sprints within a framework activity will vary depending on product
complexity and size
• The work conducted within a sprint is adapted to the problem at hand
and is defined and often modified in real time by the Scrum team
43
Scrum emphasizes the use of a set of software process patterns that have
proven effective for projects with tight timelines, changing requirements, and
business criticality
Each of these software patterns defines a set of development activitites:
Backlogs:
A prioritized list of project requirements or features that
provide business value for the customer.
Items can be added to the backlog at any time (this is how changes are
introduced). The product manager assesses the backlog and updates priorities as
required.
Sprints:
Consist of work units that are required to achieve a requirement defined in
the backlog that must be fit into a predefined time-box (typically 30 days).
Changes (e.g., backlog work items) are not introduced during the sprint.
Hence, the sprint allows team members to work in a short-term, but stable
environment
Scrum meetings:
These are short (typically 15-minute) meetings held daily by the Scrum
team.
3 questions in the fig 5.3 are asked and answered by all team
members
oScrum Master leads the meeting and assesses the responses of team
members
oUncovers potential problems as early as possible
oLead to “knowledge socialization” thereby promoting a self-organizing team
structure
Demos:
oIt deliver the software increment to the customer so that functionality that
has been implemented can be demonstrated and evaluated by the
customer. oIt is important to note that the demo may not contain all
planned functionality, but rather those functions that can be delivered within
44
the
time- box that was established.
OTHER AGILE FRAMEWORKS
The following are some of the methods to implementations of
agile: Extreme Programming(XP)
Dynamic Systems Development
Method(DSDD) Agile Modeling (AM)
Agile Unified Process
(AUP) Lean
Kanban
Planning
Begins with the creation of “user stories” and then placed on an index card.
The customer assigns a value to the story based on the overall business value of
the function. Agile “XP” team assesses each story and assigns a cost “measured
in development weeks.”
If stories take more than 3 weeks to develop, the customer is asked to split the
stories into smaller ones.
Stories are grouped to form a deliverable increment “done by customer and XP team.”
Once a commitment is made on delivery date, the XP team orders the stories that
will be developed in one of three ways:
1. Help estimate delivery dates and schedule for subsequent releases, and
2. Determine whether an over-commitment has been made for all
stories across the entire development project.
45
Design
XP Follows the KIS(S) principle. A simple design is always preferred over a
more complex representation.
Encourage the use of CRC (class-responsibility collaboration) cards which identify and organize
the O-O classes that are relevant to the current software increment.
For difficult design problems, suggests the creation of “spike solutions”—a design prototype
that is implemented and
evaluated.
http://www.ironspeed.com/articles/Evolving%20With%20Extreme%20Programmi
n
g/Article.aspx
Coding
Recommends the construction of a unit test for a story before coding commences
Encourages “pair programming” where two programmers work together at one
workstation
Testing
All unit tests are executed daily which provides the XP team with a continual indication
of progress and also can raise warning flags early if things are going awry.
“Acceptance tests” are defined by the customer “user stories” and executed to assess
customer visible functionality
47
Dynamic System Development Method (DSDM)
The Agile Unified Process (AUP) adopts a “serial in the large” and “iterative
in the small” philosophy for building computer-based systems.
▪Enables a team to visualize the overall process flow for a software project.
▪The serial nature of Agile UP is captured in its four phases :
❖ Inception. The goal is to identify the initial scope of the
project, a potential architecture for your system, and to obtain
initial project funding and stakeholder acceptance.
❖ Elaboration. The goal is to prove the architecture of the system.
❖ Construction. The goal is to build working software on a
regular, incremental basis which meets the highest-priority needs
of your project stakeholders.
❖ Transition. The goal is to validate and deploy your system
into your production environment.
Within each of the activities, the team iterates to achieve agility and
to deliver meaningful software increments to end users as rapidly as
possible.
Each AUP iteration addresses the following activities
❖ Testing-Like XP, the team designs and executes a series of tests to uncover
errors and ensure that the source code meets its requirements.
Kanban metrics
Kanban uses specific metrics to measure team capacity and estimate
project length.
Team velocity defines how many tasks a team can deliver in a given period of
time, for example a week or iteration.[13] Velocity is calculated periodically and
to help with accuracy of the calculated velocity, teams aim to create tasks that
are similar in size. Knowing team velocity helps better predict when a project is
going to end.
Lead and Cycle time defines the average time it takes to complete a task.
Lead time is calculated since the team gets a request from the client and cycle
time is calculated since the team starts working on a task. Lead time is used to
understand how long a client has to wait for their product and cycle time is used
to understand how fast the team produces a product.
Actionable Agile metrics use cycle time to better predict when each project
item is going to be finished. Created by Daniel S. Vacanti in 2015,actionable
Agile
metrics measure how much time it took to finish 50%, 85% and 95% of the
tasks. This information can be used to help the team better predict and control
task delivery dates.
ASSIGNMENTS
52
PART-A
Delivers information-
Software can be determinate or indeterminate
Software doesn’t wear out but may deteriorate if not adapted to change.
Software is a logical rather than a physical system element- It is not
manufactured but engineered.
Other characterestics
include, Usability of Software
Reusability of components
Flexibility of software
Maintainability of
software
4-Tools
53
QUALITY – bedrock supporting SE-organizational primary commitment
▪An action (e.g., architectural design) encompasses a set of tasks that produce a
major work product (e.g., an architectural model).
▪A task focuses on a small, but well-defined objective (e.g., conducting a unit test)
that produces a tangible outcome.
Ans: A generic process framework for software engineering encompasses five activities:
1. Communication
2. Planning
3. Modeling
4. Construction
5. Deployment
Communication –understanding stakeholders’ need
Construction-What you design must be built. This activity combines code generation
(either manual or automated) and the testing that is required to uncover errors in the
code.
Types:
Stage pattern-defines problems in the Framework
Activity Eg: Establishing Communication
Task pattern- defines problems in the Action or
Task set Eg: Requirements Gathering
56
be addressed and handled as soon as possible.
15. What are the disadvantages of Agile methodologies (K2,CO1)
Effort required is unpredictable for large software deliverables.
Lack of formal documents leaves scope for confusion as it is not possible
to review the important design decisions
The project may turn up as an failure if customer representative is
unclear. Only senior programmers are capable of taking the kind of
decisions required during the development process disregarding the new
comers..
17. What are CRC cards? What is the use of it? (K2,CO1)
Ans: A Class Responsibility Collaborator (CRC) model is a collection of
standard index cards that have been divided into three sections-A class
represents a collection of similar objects, a responsibility is something that a
class knows or does, and a collaborator is another class that a class interacts
with to fulfill its responsibilities.
It consist of work units that are required to achieve a requirement defined in the
backlog that must be fi t into a predefined time-box.
Scrum meetings of 15 minute duration take place every 24 hours during the course
of sprint.
The work conducted within a sprint (the number of sprints required for each framework
activity will vary depending on product complexity and size) is adapted to the problem at
hand and is defined and often modified in real time by the Scrum team.
Demos:It deliver the software increment to the customer so that functionality that has
been implemented can be demonstrated and evaluated by the customer. It is important
to note that the demo may not contain all planned functionality, but rather those
functions that can be delivered within the time-box that was established.
58
PART-B
3. Justify how Concurrent model can be used in context with any other
models. (K3,CO1)
4. Explain Scrum.(K1,CO1)
5. Explain XP in detail.(K1,CO1)
6. Compare Waterfall and Spiral model.(K2,CO1)
7. 7.Explain AUP in detail.(K2,CO1)
8. Explain Agility and substantiate with any 2 methodologies
9. Explain the Generic Process Framework activities involved in
INVENTORY MANAGEMENT problem. (K3,CO1)
59
Supportive online Certification
courses
NPTEL/OTHER REFERENCES / WEBSITES:
http://nptel.ac.in
https://www.tutorialspoint.com/software_engineering/
www.udemy.com
www.upgrad.com
www.simplilearn.co
60
Real time Applications in day to day life and to Industry
61
CONTENTS BEYOND THE SYLLABUS
What is RAD?
Rapid application development is a software development methodology that
uses minimal planning in favor of rapid prototyping. A prototype is a working
model that is functionally equivalent to a component of the product.
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. Since there is no detailed preplanning, it makes it easier to incorporate
the changes within the development process.
RAD projects follow iterative and incremental model and have smallteams
comprising of developers, domain experts, customer representatives and other
IT resources working progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that
the prototypes developed are reusable.
Business Modelling
The business model for the product under development is designed in terms of
flow of information and the distribution of information between various business
channels. A complete business analysis is performed to find the vital information
for business, how it can be obtained, how and when is the information processed
and what are the factors driving successful flow of information.
62
Data Modelling
The information gathered in the Business Modelling phase is reviewed and
analyzed to form sets of data objects vital for the business. 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.
Process Modelling
The data object sets defined in the Data Modelling phase are converted to
establish the business information flow needed to achieve specific business
objectives as per the business model. 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 modifying a data object are
given.
Application Generation
The actual system is built and coding is done by using automation tools to
convert process and data models into actual prototypes.
63
RAD Model Vs Traditional SDLC
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 build
available for a long time.
The customer may need some changes after he gets to see the software.
However, the change process is quite rigid and it may not be feasible to
incorporate major changes in the product in the traditional SDLC.
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 with the actual user requirements.
The following pointers describe the typical scenarios where RAD can be used −
It should be used only if the budget permits use of automated code generating
tools.
RAD SDLC model should be chosen only if domain experts are available with
relevant business knowledge.
Should be used where the requirements change during the project and
working prototypes are to be presented to customer in small iterations of 2-3
months.
64
ASSESSMENT SCHEDULE
: 03.04.25- 17.04.25
Model Examination
65
PRESCRIBED TEXTBOOKS &
REFERENCE BOOKS
TEXT BOOKS:
1. Roger S. Pressman, “Software Engineering: A Practitioner‘s Approach” , McGraw
Hill International Edition, Nineth Edition, 2020.
2. Ali Bahrami, “Object Oriented Systems Development”, McGraw Hill
International Edition,2017.
REFERENCES:
1. Micheal Blalh and James Rumbaugh, Object Oriented Modeling and Design with UML,
2nd edition Pearson 2013.
2. Ian Sommerville, “Software Engineering”, Tenth Edition, Pearson Education, 2016.
3. Ivar Jacobson, Harold Bud Lawson, Pan-Wei Ng, Paul E. McMahon, Michael Goedicke,
“The Essentials of Modern Software Engineering”, Morgan & Claypool Publishers, 2019.
4. Booch, G, Jacobson I, Rumbaugh J, “The Unified Modeling Language User Guide”,
Addison Wesley, 2008.
5. Martin Fowler, “UML Distilled: A Brief Guide to the Standard Object Modeling
6. Language”, 3rd edition, Addison Wesley, 2003.
66
Mini Project suggestions
67
Thank you
Disclaimer:
This document is confidential and intended solely for the educational purpose of RMK Group of Educational
Institutions. If you have received this document through email in error, please notify the system manager. This
document contains proprietary information and is intended only to the respective group / learning community as
intended. If you are not the addressee you should not disseminate, distribute or copy through e-mail. Please notify
the sender immediately by e-mail if you have received this document by mistake and delete this document from
your system. If you are not the intended recipient you are notified that disclosing, copying, distributing or taking
any action in reliance on the contents of this information is strictly prohibited.
68