Process Models
by Ronni Kahalani, Copenhagen School of Design & Technology.
With inspiration from the book Software Engineering - A Practitioner's Approach.
Brings order to chaos.
Enables common communication formats,
to exchange complex and abstract ideas / insights,
efficiently and visually. A picture says a thousand words.
Who am I?
Thank you for stopping by.
I’m Ronni. I hope you’re well and wish you a safe and worthy journey.
This presentation is part of the Software Engineering Series, from my lectures at Copenhagen School of Design & Technology.
You can view the Introducing Myself, if you want to know a little more about who I am.
All my presentations and materials are free and available at my blog post: Software Engineering.
Don’t let me uphold you,
continue your journey, go to next slide.
2
Agenda
Intro
Strike a balance between the need to impart order in a chaotic world and the need to be adaptable when things change constantly
Quick Look
Quick Look
Prescriptive Process Models
Strives for structure and order in software development.
Prescriptive Process Models
Strives for structure and order in software development
Prescriptive Process Models
The Waterfall Model
The Waterfall Model
Also called “classic life cycle” is the oldest paradigm.
Used when the requirements for a problem are…
The Waterfall Model
V-model - A variation in the representation of the waterfall model
Depicts the relationship of quality assurance actions associated with communication, modelling, and early construction activities.
The Waterfall Model
The Waterfall Model
Among the problems that are some times encountered are:
Can lead to "blocking states" in which some project team members must wait for other members of the team to complete dependent tasks.
Incremental Process Models
Produce the software in increments.
Incremental Process Models
Produce the software in increments
Incremental Process Models
The first increment is often a core product - Basic requirements
As a result of use and/or evaluation, a plan is developed for the next increment
Evolutionary Process Models
Software evolves over a period of time.
Evolutionary Process Models
Software evolves over a period of time…
Business and product requirements often change as development proceeds
Evolutionary models are iterative. Characterized in a manner that enables you to develop increasingly more complete software versions
2 common evolutionary process models
Prototyping
To better understand what is to be built when requirements are fuzzy.
Prototyping
Prototyping
Prototyping paradigm may offer the best approach.
Assists you and other stakeholders to better understand what is to be built when requirements are fuzzy.
Ideally, it serves as a mechanism for identifying requirements.
Prototyping
Both stakeholders and software engineers like the prototyping paradigm.
Can be problematic for the following reasons:
Spiral Model
An evolutionary process model which couples iterative prototyping with small 2-4 weeks systematic waterfalls/rituals based iteration/sprints.
Spiral Model
Spiral Model
It is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model.
Risk-driven Process Model with 2 main distinguishing features:
Spiral Model
Software is developed in a series of evolutionary releases
Evolutionary Process Models
Spiral Model
Spiral Model
Spiral Model
Later, a circuit around the spiral might be used to represent a�"product enhancement project“
…remains operative until the software is retired.
A Final Word on Evolutionary Processes
Modern computer software is characterized by:
In many cases, time-to-market is the most important management requirement - If a market window is missed, the software project itself may be meaningless.
The challenge for software teams and their managers is to establish a proper balance between these critical project and product parameters and customer satisfaction.
Component-Based Development Model
Provide targeted functionality with well-defined interfaces that enable the component to be integrated into the software that is to be built.
Component-Based Development
Component based development model comprises applications from pre-packaged software components.
Component-Based Development
Modelling and construction activities begin with the identification of candidate components.
Incorporates the following steps using an evolutionary approach.
Component-Based Development
Leads to software reuse…
Reusability provides software engineers with a number of measurable benefits including
Unified Process (UP)
Defines a use case driven, architecture - centric, iterative and incremental process flow.
Provides the evolutionary feel that is essential in modern software development.
Phases of the Unified Process
Inception Phase
Elaboration Phase
Construction Phase
Using the architectural model as input, acquires the software components that will make each use case operational for end users.
Transition Phase
Production Phase
It is likely that at the same time the construction, transition, and production phases are being conducted.
This means that the 5 UP phases do not occur in a sequence, but rather with staggered concurrency – In parallel.
Product and Process
If the process is weak, the end product will undoubtedly suffer…but…
As creative software professional, you should also derive as much satisfaction from the process as the end product.
A Brief History
During the early 1990s James Rumbaugh, Grady Booch, and Ivar Jacobson began working on a "unified method" that would combine the best features of each of their individual object-oriented analysis and design methods and adopt additional features proposed by other experts in object-oriented modeling.
The result was UML - By 1997, UML became a de facto industry standard for object-oriented software development
Summary
Each model suggests a somewhat different process flow, but all perform the same set of generic framework activities:
Emphasize measurement, planning, and self-direction as key ingredients for a successful software process.
Methodology Comparison
Framework for Comparing different Process models Meta Model.
Methodology Comparison
What is it?
The Challenge
Avison & Fitzgerald ’s Framework (A&V)
Philosophy (Principle)
Practice
Product
Avison & Fitzgerald ’s Framework (A&V)
Questions?
Anything? What’s on your mind? Come on ask me anything…
Feedback?
Thank you for your precious time.
I hope it was worth it and would love to get your feedback.