SlideShare uma empresa Scribd logo
1 de 126
Baixar para ler offline
RUP & SPEM
Modelos de Procesos y
Metodologías de Ingeniería de
software
Mayo de 2014
Universidad de Caldas
Facultad de Ingenierías
Maestría en Ingeniería Computacional
Welcome!
Content
IBM Rational Unified Process
Process Framework Theory
Tayloring
Some Model-Driven Theory
SPEM & UMA Metamodels
Eclipse Process Framework
Sources
•Gerard O’Regan, Introduction to Software Process
Improvement, Springer 2011. ISBN 978-0-85729-171-4
•Ahmad K. Shuja and Jochen Krebs. IBM Rational Unified
Process Reference and Certification Guide: Solution Designer.
IBM Press 2008. ISBN 9780131562929
•Per Kroll and Philippe Kruchten. Rational Unified Process Made
Easy- A Practitioner’s Guide to RUP. IBM Academic Intitiative.
•IBM Software Group. PRJ270: Essentials of Rational Unified
Process. 2003
•IBM Software Group. Basic Method Authoring with IBM Rational
Method Composer V7.5. IBM, 2009
Before…
What do you listened about RUP?
•It’s so difficult
•It’s misunderstood
•It’s rigorous
•It’s imposible to apply all
•It’s not suitable for small companies
•It’s old
•It’s for Rational Tools exclusively
Before…
What do you listened about RUP?
•It’s horrible
•It cannot be adapted
•There are so many artifacts
•It’s confusing
•…
•Among others
But…
Source: Estudio de la caracterización de productos y servicios de
la industria de software y servicios asociados 2012 Fedesoft
Rational Unified Process - RUP
(Classical definition from common SE books)
“It is a visual modelling language for software
systems and provides a means of specifying,
constructing, and documenting the object-
oriented system. This facilitates the
understanding of the architecture and
complexity of the system”
Rational Unified Process - RUP
(Sommerville – cool!! )
“The RUP is a phased model that identifies four
discrete phases in the software process.
However, unlike the waterfall model where
phases are equated with process activities, the
phases in the RUP are more closely related to
business rather than technical concerns.”
Taking into account…
• UML: 1997
• RUP: 1999
Rumbaugh, J., et al.: The Unified Software
Development Process. Addison Wesley
(1999)
Rational Unified Process - RUP
• RUP is a process framework
for successful iterative-
incremental software
development.
• It’s a very important
knowledge source for modern
Software Engineering
Rational Unified Process - RUP
• A software development approach that is
iterative, architecture-centric and use-case
driven
• A well-defined and structured software
engineering process
• A process product providing a customizable
process framework
RUP vs the others
RUP vs the others (II)
• RUP as a traditional SW Process?
• Note that the up-front goals modeling
component may not be directly associated
with any given software development
methodology but is there to ensure
alignment between new software
products or releases and the business
strategy.
• One key of RUP is its strong business
alignement
Three central elements of RUP
• Key principles for business-driven
development
• A framework of reusable method content
and process building blocks
• The underlying method and process
definition language
RUP as Process Framework
• A process framework can be defined as an incomplete
support structure in which another process can be
organized and developed. Therefore, you need to finish
a process framework before you can apply it to
specific projects within an organization
• The RUP framework is defined by a family of method plug-
ins from which, based on the unique business needs as
well as the context (technical and management
complexity), organizations are able to create their own
method configurations and tailored processes.
• RUP provides an architectural foundation and wealth of
material from which a process definition can be
constructed, therefore enabling the adopting organization
to configure and extend that foundation as desired.
RUP ABC
• Adapt the process.
• Balance stakeholder priorities.
• Collaborate across teams.
• Demonstrate value iteratively.
• Elevate the level of abstraction.
• Focus continuously on quality
Develop only what is necessary
– Lean process, agility
Minimize paperwork
Be flexible
– Requirements, plan, usage of people,
etc…
Learn from earlier mistakes
– Feedback loops
– Process improvement
Revisit risks regularly
Establish objective, measurable criteria for
progress
Automate
– Support process with software
development tools
•Develop Iteratively
•Manage
Requirements
•Use Component
Architectures
•Model Visually (UML)
•Continuously Verify
Quality
•Manage Change
RUP Best Practices & Key Principles
The Spirit of RUP
1. Attack major risks early and continuously…
or they attack you
2. Ensure that you deliver value to your customer
3. Have a maniacal focus on working software
4. Accommodate change early in the project
5. Baseline an executable architecture early on
6. Build your system with components
7. Work closely together as one team
8. Make quality a way of life, not an afterthought
RUP Best Practices & Key Principles
•Needs not met
•Requirements churn
•Modules don’t fit
•Hard to maintain
•Late discovery
•Poor quality
•Poor performance
•Colliding developers
•Build-and-release
•Insufficient requirements
•Ambiguous communications
•Brittle architectures
•Overwhelming complexity
•Undetected inconsistencies
•Poor testing
•Subjective assessment
•Waterfall development
•Uncontrolled change
•Insufficient automation
Symptoms Root Causes Best Practices
•
•Ambiguous communications
•
•Undetected inconsistencies
•
•
•
•
•
•Develop Iteratively
•Manage Requirements
•Use Component Architectures
•Model Visually (UML)
•Continuously Verify Quality
•Manage Change
•Model Visually (UML)
•Continuously Verify Quality
•
•
•Modules don’t fit
•
•
•
•
•
•
RUP Architecture
Iterative Lifecycle Graph
In an iteration,
you may walk
through all
disciplines
C
O
N
T
E
N
T
S
T
R
U
C
T
U
R
E T I M E
• The RUP provides an iterative and incremental
approach to developing software.
• This iterative and incremental development
happens within iterations that occur within a
structured lifecycle consisting of phases and
milestones.
• The RUP has four sequential phases: Inception,
Elaboration, Construction, and Transition.
• Each of them plays a central role in managing
iterative and incremental development projects
using RUP.
• Each phase concludes with a major milestone
Phases and Milestones
• Phases are made up of iterations, and both phases
and iterations are important concepts to grasp for
building a concrete understanding of the RUP
• According to the RUP, a discipline is a collection of
related activities that are related to a major area
of concern.
• Based on which phase you are in, each iteration
contains activities from across different disciplines.
• Iterations are designed and executed with
certain goals in mind. Depending upon which
phase the iteration belongs to, the iteration
goals are aligned to accomplish the respective
milestone.
Phases and Milestones
Inception: Know What to Build
Prepare vision document and initial business case
– Include risk assessment and resource estimate
Develop high-level project requirements
– Initial use-case and domain models (10-20%
complete)
Manage project scope
– Reduce risk by identifying all key requirements
– Acknowledge that requirements will change
 Manage change, use iterative process
•Inception •Elaboration •Construction •Transition
Inception: Know What to Build
The following are the primary Inception phase objectives:
To establish the project’s scope and boundary conditions
To identify the critical use cases of the system
To exhibit and demonstrate one candidate architecture
To estimate the overall cost and schedule for the project
To produce detailed estimates for the Elaboration phase
To estimate the potential risks
To prepare the support environment for the project
The Lifecycle Objectives milestone concludes the Inception
phase. At that point, a major decision is made on whether to
proceed with the project or cancel it
•Inception •Elaboration •Construction •Transition
Detail requirements as necessary (~80% complete)
– Less essential requirements may not be fleshed out
Produce an executable and stable architecture
– Define, implement and test interfaces of major components
– Identify dependencies on external components and systems.
Integrate shells/proxies of them.
– Some key components will be partially implemented
– Roughly 10% of code is implemented.
Drive architecture with key use cases
– 20% of use cases drive 80% of the architecture
– Design, implement and test key scenarios for use cases
•Inception •Elaboration •Construction •Transition
Elaboration: Know How to Build It
Verify architectural qualities
– Reliability: Stress test
– Scalability and Performance: Load test
Continuously assess business case, risk profile and
development plan
•Inception •Elaboration •Construction •Transition
Elaboration: Know How to Build It
The Elaboration phase objectives are as follows:
To stabilize the architecture, requirements, and respective plans
To sufficiently mitigate risks to predictably determine project cost and schedule
To address all architecturally significant risks
To establish a baselined architecture
To produce an evolutionary prototype of production-quality components
Optionally, to produce throw-away prototypes to mitigate specific risks such as
design trade-offs, component reuse, and product feasibility
To demonstrate that the baselined architecture will support the requirements of the
system at a reasonable cost and in a reasonable time
To establish a supportive environment
The Lifecycle Architecture milestone concludes the Elaboration phase,
establishing a managed baseline for the architecture of the system and enabling
the project team to scale during the Construction phase.
Elaboration: Know How to Build It
•Inception •Elaboration •Construction •Transition
Complete requirements and design model
Design, implement and test each component
– Prototype system and involve end users
– Incrementally evolve executable architecture to
complete system
Build daily or weekly with automated build process
Test each build
– Automate regression testing
– Load and stress test to ensure architectural integrity
Deliver fully functional software (beta release)
– Includes training material, user and deployment documentation
Produce release descriptions
Construction: Build The Product
•Inception •Elaboration •Construction •Transition
Construction phase objectives can be briefly summarized as follows:
To minimize development costs through optimization of resource utilization by
avoiding unnecessary scrap and rework and by achieving a degree of parallelism
in the work of development teams
To achieve adequate quality as rapidly as is practical
To achieve useful executable versions (alpha, beta, and so on) as rapidly as
practical
To complete the analysis, design, development, and testing of all required
functionality
To iteratively and incrementally develop a complete product that is ready to
transition to its user community
To decide if the software, the sites, and the users are ready for the deployment of
the solution.
The Construction phase concludes with the Initial Operational Capability
milestone, which determines whether the product is ready to be deployed into a
beta-test environment.
Construction: Build The Product
•Inception •Elaboration •Construction •Transition
Produce incremental ‘bug-fix’ releases
Update user manuals and deployment documentation
Update release descriptions
Execute cut-over
Conduct “post-mortem” project analysis
Transition: Deploy to End Users
•Inception •Elaboration •Construction •Transition
Following are the primary objectives of the Transition phase:
To validate the new system against user expectations (by beta testing)
To train the end users and maintainers
If applicable, to roll out the product to marketing, distribution, and sales teams
To fine-tune the product by engaging in bug-fixing and creating performance and
usability enhancements
To conclude the assessment of the deployment baseline against the complete
vision and the acceptance criteria for the product
To achieve user self-supportability
To achieve stakeholder concurrence that deployment baselines are complete and
are consistent with the evaluation criteria of the vision.
The Product Release milestone concludes this phase. A decision is made
whether the objectives of the project were met.
Transition: Deploy to End Users
•Inception •Elaboration •Construction •Transition
Iterative Development Phases
•Inception
•Time
•Elaboration •Construction •Transition
•Major Milestones
Inception: Understand what to build
– Vision, high-level requirements, business case
– Not detailed requirements
Elaboration: Understand how to build it
– Baseline architecture, most requirements detailed
– Not detailed design
Construction: Build the product
– Working product, system test complete
Transition: Validate solution
– Stakeholder acceptance
• In RUP, a discipline is defined as a
categorization of activities based on similarity of
concerns and cooperation of work effort.
• A discipline is a collection of activities that are
related to a major area of concern (or “a field of
study”) within the overall project.
• In RUP, an activity is a process element that
supports the nesting and logical grouping of
related process elements, such as a descriptor
and subactivities, thus forming breakdown
structures.
RUP Disciplines
• In the RUP, a discipline refers to a specific area of
concern (or a field of study, as mentioned earlier)
within software engineering.
• In addition, disciplines in RUP allow you to
govern the activities you perform within that
discipline.
• A discipline in RUP gives you all the guidance you
require to learn not only when to perform a
given activity but also how to perform it.
Therefore, disciplines in RUP allow you to bring
closely related activities under control.
RUP Disciplines (II)
The benefits provided by separating the RUP activities
into various disciplines are summarized as follows:
• Makes the activities easier to comprehend.
• Proves useful when customizing a given discipline
to meet the specific needs of the project or when
defining a set of organizational standard processes.
• Enables different roles to better and more effectively
appreciate their responsibilities (in terms of the
tasks/activities that they are responsible for) on a
given project.
• Allows Project Managers to more effectively monitor
and control these activities.
RUP Disciplines (III)
• A discipline in RUP is a collection of activities that are related to a
major area of concern or field of study.
• Each activity is further decomposed into subactivities or one or
many tasks.
• Tasks require an input artifact or artifacts for their successful
execution, and these in turn produce or refine some form of output
artifact(s).
• Note that these artifacts can include both document-based artifacts
and executables. Each task has an associated role (or roles)
responsible for performing that task.
• To provide additional support and guidance, each discipline in the
base RUP offers a set of standard template artifacts related to that
discipline.
• These artifacts, as well as the process, can be (and should be)
customized/tailored for a given project or organization
ORACLES
A Structured Process: Role, Artifact,
Activity
•Distribute Behavior•Find Design
•Classes
•Designer
•Use Case Realization
•Role •Activities
•Artifact •responsible for
Guidelines, Templates, Tool Mentors, …
•Distribute Behavior•Find Design
•Classes
•Designer
•Use Case Realization •Use Case Template
•Rose Tool Mentor•Design Guideline
•Role •Activities
•Artifact •responsible for
• RUP models the when as workflows, and each discipline in
RUP has a workflow. Like other workflows, a discipline’s workflow
is a semi-ordered sequence of activities performed by specific roles
to achieve a particular goal.
• This semi-ordered nature of discipline workflows emphasizes that
they cannot present the nuances of scheduling “real work,”
because they cannot depict the optionality of activities or iterative
nature of real projects.
• These workflows are part of RUP Framework, so, these constitutes
guidance on a rich set of software engineering principles.
• It is applicable to projects of different size and complexity, as well
as to different development environments and domains. This
means that no single project or organization will benefit from using
all of RUP.
• It is important to understand that the sequence of activities in
each of the workflows is based on best practices
Workflows
Expressed as Workflows and Workflow
Details
According with Project Management Institute (PMI)
• The project’s work breakdown structure (WBS)
provides the relationship among all the components
of the project and the project deliverables.
• WBS is a deliverable-oriented hierarchical
decomposition of the work to be executed by the
project team to accomplish the project objectives
and create the required deliverables.
• It organizes and defines the total scope of the
project. Each descending level represents an
increasingly detailed definition of the project work.
Workflow Breakdown Structure
• RUP adopts a slightly different view of WBS.
Discipline WBS in RUP represents the activities-
oriented hierarchical decomposition of the project
effort specific to the respective discipline.
• Each descending level represents an increasingly
detailed definition of the project work.
• In the RUP, the WBS provides mostly four
descending level of details.
• These levels include Discipline, Activity, Sub-
Activity/Task, and Step.
Workflow Breakdown Structure
• Activity is a process element that supports the
nesting and logical grouping of related process
elements such as descriptor and subactivities, thus
forming breakdown structures.
• Task is a unit of work that a role may be asked to
perform.
• Step is a content element used to organize tasks
into parts or subunits of work.
• Note that it is at the Task level that RUP
associates the roles and the artifacts produced,
modified, or used.
Workflow Breakdown Structure
Workflow Breakdown Structure
Level of activity decomposition
Optimizing iterative and incremental development
RUP is Use-Case Driven Development
A use case describes complete and meaningful services that your
system offers to users and other systems
Use cases drive the work through each iteration
– Planning of iterations
– Creation and validation of the architecture
– Definition of test cases and procedures
– Design of user interfaces and creation of user documentation
•Use-Case Model
•Analysis & Design Model
•Implementation Model
•Test Model
•Requirements
•realized by
•implemented by
•verified by
•Analysis & Design
•Implementation
•Test
RUP is Use-Case Driven Development
•Problem
•Solution
Space
•Problem
Space
•Needs
•Features
•Software
•Requirements
•Test Scripts
•Design •User
Docs
•The
Product
to Be
Built
RUP metamodel
RUP Traceability
RUP Artifacts
RUP 4+1 View
• Applying all of RUP will likely result in an
inefficient project environment, where teams will
struggle to keep focused on the important tasks and
struggle to find the right set of information.
• It is recommended that RUP be tailored to provide
an appropriate and customized process for
developing software.
• As an important component of tailoring the RUP
framework, these workflows should be customized to
suit project or organizational needs. This
customization might require redefining some of these
sequences
Tayloring
Factors that influence the configuring and tailoring of
RUP:
• Project complexity
• Organizational maturity
• Organization culture
• Regulatory compliance and policy requirements
• Development type
• Organization size
Tayloring (II)
Approaches for Adopting RUP
•Alternative 1: Use it as a knowledgebase
•Non-intrusive with minimal effort and risk
•No different than training, books, and magazines
•Alternative 2: Focused implementation aiming at fast
results
•Focused and incremental adoption with training and
mentoring aiming at changing behavior - takes time and
effort
•Focus on critical areas first, it is not an all or nothing
•Use mentors / consultants to accelerate results
•Adopting RUP is a continuum between alternative 1
and 2
Tayloring (III)
Common Mistakes Adopting RUP
• Not coupling process improvement with business
results
• Adopting too much of what is in RUP
• Customizing too much of RUP too early
• See
https://wiki.aston.ac.uk/foswiki/pub/DanCornford/Fin
alYearProjectResources/RUP_Guide.pdf and
www.x-tier.com/public/RUPUPIn10EasySteps.doc
for guides of RUP adoption
Tayloring (IV)
Now, process tayloring, process specification and
process adaptation can be done by the power of
model driven initiatives and tools for process
edition (Eclipse Process Framework and IBM
Rational Process Composer).
• In November 2000 the OMG proposed a new
approach to interoperability named MDA™ (Model-
Driven Architecture). MDA is one example of the
broader Model Driven Engineering (MDE) vision,
encompassing many popular current research
trends related to generative and transformational
techniques in software engineering, system
engineering, or data engineering.
• Considering models as first class entities and
any software artifact as a model or as a model
element is one of the basic principles of MDE.
Model-driven
Source: Bézivin, J. (2006). Model Driven Engineering: An Emerging Technical Space. Generative and
Transformational Techniques in Software Engineering. R. Lämmel, J. Saraiva and J. Visser, Springer Berlin /
Heidelberg. 4143: 36-64.
• The OMG MDA initial proposal may be defined as
the realization of MDE principles around a set of
OMG standards like MOF, XMI, OCL, UML, CWM,
and SPEM.
Model-driven (II)
Source: Bézivin, J. (2006). Model Driven Engineering: An Emerging Technical Space. Generative and
Transformational Techniques in Software Engineering. R. Lämmel, J. Saraiva and J. Visser, Springer Berlin /
Heidelberg. 4143: 36-64.
• The IBM manifesto makes the claim that MDA-based approaches
are founded on three ideas: Direct representation, Automation
and Standards.
• Direct representation allows a more direct coupling of problems to
solutions with the help of Domains Specific Languages (DSLs).
• Automations means that the facets represented in these DSLs are
intended to be processed by computer-based tools to bridge
the semantic gap between domain concepts and
implementation technologies and not only for mere
documentation.
• This should be complemented by the use of open standards that
will allow technical solutions to interoperate
Model-driven (III)
Source: Bézivin, J. (2006). Model Driven Engineering: An Emerging Technical Space. Generative and
Transformational Techniques in Software Engineering. R. Lämmel, J. Saraiva and J. Visser, Springer Berlin /
Heidelberg. 4143: 36-64.
Model-driven (IV)
Source: Bézivin, J. (2006). Model Driven Engineering: An Emerging Technical Space. Generative and
Transformational Techniques in Software Engineering. R. Lämmel, J. Saraiva and J. Visser, Springer Berlin /
Heidelberg. 4143: 36-64.
•http://www.omg.org/mda/
Relations between MD* Acronyms
Source: Jordi Cabot. Clarifying concepts: MBE vs MDE vs MDD vs MDA. Available in http://modeling-
languages.com/clarifying-concepts-mbe-vs-mde-vs-mdd-vs-mda/
MDA Consequences
•From:
http://www.omg.org/mof/
•Key: The MetaObject Facility
(MOF) Specification is the
foundation of OMG's
industry-standard
environment where models
can be exported from one
application, imported into
another, transported across
a network, stored in a
repository and then
retrieved, rendered into
different formats (including
XMI, OMG's XML-based
standard format for model
transmission and storage),
transformed, and used to
generate application code
MDA Consequences (II)
Source: http://www.modeliosoft.com/en/technologies/mda.html
MDA Consequences (II)
Source: http://www.jot.fm/issues/issue_2006_11/article4/
Note: XMI means XML Metadata Interchange
Source: Bézivin, J. and I. Kurtev Model-based Technology Integration with the Technical
Space Concept.
Key: the Technical spaces concept
metametamodel level
metamodel level
model level
Real life level
MDA
MDA & Software Process?
cd Logical Model
M3
M2
M1
M0
MetaObject Facility (MOF)
Software Process Engineering
Metamodel (SPEM) as a UML Profile
Template complete MOF-based
Metamodel M3
A defined process (RUP) from the
template M2
A specific customized implementation of
M1
Modeling Level
3: MetaObject
Facility
Modeling Level
2: Process
Metamodel
Modeling Level
1: Process Model
Modeling Level
0: Performing
process
Source: https://wiki.aston.ac.uk/foswiki/pub/DanCornford/FinalYearProjectResources/RUP_Guide.pdf
MOF
MDA & Software Process?
metametamodel level
metamodel level
model level
Real life level
SPEM
RUP SCRUM XP
Taylored Process
• A Metamodel is the construction of a collection of
"concepts" (things, terms, etc.) within a certain
domain.
• A model is an abstraction of phenomena in the real
world;
• A metamodel is yet another abstraction, highlighting
properties of the model itself.
• A model conforms to its metamodel in the way that
a computer program conforms to the grammar of
the programming language in which it is written.
Metamodel (from Wikipedia)
http://en.wikipedia.org/wiki/Metamodeling
• The Software and Systems Process Engineering
Meta-model (SPEM) is a process engineering
meta-model as well as conceptual framework, which
can provide the necessary concepts for modeling,
documenting, presenting, managing,
interchanging, and enacting development
methods and processes.
• An implementation of this meta-model would be
targeted at process engineers, project leads, project
and program managers who are responsible for
maintaining and implementing processes for their
development organizations or individual projects.
SPEM Metamodel
SPEM’s Advantages
•To provide a standardized representation and
managed libraries of reusable method content
•To support systematic development, management,
and growth of development processes
•To support deployment of just the method content
and process needed by defining configurations of
processes and method content
•To support the enactment of a process for
development projects
SPEM Introduction (I)
• Throughout the software industry there are a lot
of great ideas and knowledge available about
how to effectively develop software.
• Nowadays, development teams need and have
access to a wide range of information. Not only
do they need to acquire detailed information
about specific development technologies such as
Java, Java EE, Eclipse, SOA technologies, .NET,
as well as various development and tool
environments
SPEM Introduction (II)
They also need to figure out how to organize
their work along modern development best
practices such as agile, iterative, architecture-
centric, risk- and quality-driven software
development.
SPEM Introduction (III)
•Some problems development organizations
face when they leave their developers to find
such information for themselves are
• Team members will not have centralized and
easy access to the same body of information
when they need it, i.e., different developers
might rely on different sources and versions of
the same information
SPEM Introduction (IV)
•It’s difficult to combine and integrate content
and development processes that are made
available in their own proprietary format, as
every book and publication presents method
content and process using a different
representation and presentation style
•It’s hard to define an organized and
systematic development approach that is
right-sized to their needs, i.e., addresses their
specific culture, standardized practices, and
compliance requirements.
SPEM
• SPEM
SPEM
• Evolution of CMMI
SPEM Editor (EPF)
SPEM Editor (EPF)
SPEM
Structure of the SPEM 2.0 Meta-Model
The SPEM 2.0 UML 2 Profile stereotypes defined in the
Process Structure package
The SPEM 2.0 UML 2 Profile stereotypes defined in the
Method Content package
The SPEM 2.0 UML 2 Profile stereotypes defined in the
Process Structure package
The SPEM 2.0 UML 2 Profile stereotypes defined in the
Process with Methods package
UMA (Unified Method Architecture)
•UMA is an architecture to conceive, specify, and
store method and process metadata.
•UMA clearly separates Method Content definitions
from their application in delivery processes. It does
this by defining the reusable core Method Content
in the form of general content descriptions and the
project-specific applications in the form of process
descriptions.
•A unified method architecture (UMA) meta-model
provides a language for describing method content
and processes.
UMA
Method Content and Process
are Separated
method = method content + process
Method content is the
description of work that can
be reused as key building
blocks. Method content
describes tasks, roles, work
products, guidelines, and so
on, that are involved in
completing work.
Processes are the order of
doing work. They provide the
order for the method content.
Processes will differ
depending on project type,
size, or other characteristics.
A Method provides both the
descriptions of work and the
order of work. A method is
end-to-end, and is usable on
a project. An example of a
method is the RUP
methodology.
Types of Method Content and Process
Process
Applies method content for assembly of
many different executable processes
Specific to the scale or context of project
(for example, develop from scratch versus
maintain existing system, or formal and high
ceremony versus agile and self-organizing)
Described with Breakdown Structures that
refer to Method Content elements
Two types of processes
 Delivery Process: end-to-end
 Capability Pattern: reusable
fragments (for example, the
Inception iteration, shown in the
image).
Method Content
Describes key reusable building blocks:
Roles, Work Products, Tasks, and
Guidance
Provides step-by-step guidelines by
which specific goals are approached
Provides general development
techniques
and practices, described independent of
lifecycle. For example, “Analyze Use
Case Behavior”, "Develop component
model“, and so on.
Key:
UMA is contained in the actual version of
SPEM OMG Metamodel
Content Elements
UMA elements that describe the schema
elements for the static aspects of a process.
Content Elements
Role
• A role is defined as a set of related skills, competencies,
and responsibilities. The people or tools in the roles
perform tasks and produce work products. For some tasks
and work products, those in the roles are directly
responsible for performing the tasks and producing the
work products. For other tasks and work products, those in
the roles simply participate in accomplishing what’s
needed.
Content Elements
• Work Product
• Work products are produced, consumed, or
modified while a task is performed. Only one
designated role is responsible for each work
product.
Content Elements – Work
Product
Artifacts
• Artifacts are tangible and can be nested in other
artifacts. For example, a software development
plan is an artifact that contains the risk-list artifact
among others
Content Elements – Work
Product
Outcome
• An outcome is commonly intangible and not
reused, which could be a state or result. For
example, an outcome could be improved
performance or a competed tool installation
Content Elements – Work
Product
Deliverable
• A deliverable is intended to be value provided to
stakeholders internally or externally. A deliverable
consists of the other two work products: artifacts
and outcomes. Deliverables are intended to
package content from other work products to be
consumed, for example, by stakeholders.
Content Elements
Task
• A task is an action performed by roles, associated
with input and output (work products), and driven
by a goal. An example of a goal might be to
develop vision. The task describes the work to
be performed and commonly an optional set of
steps.
Content Elements
Task
• Tasks usually last between a few hours and a few
days and affect only a small number of work
products. Because of their granularity, tasks are
often repeated in iterations and are often too small
for planning purposes.
Content Elements
Step
• A step represents the most granular unit of work to be
performed. It has a name and a textual description. Steps
are useful for breaking down tasks into more granular
elements. They define tasks in greater detail and can
separate various aspects of the task. Even though steps
are typically conceptualized as being sequential, as part of
UMA, they are treated as optional and can be executed in
any order that works to complete the task. As a general
rule of thumb, steps may call upon the performing role to
think, perform, or review
Content Elements
Guidance
• The Guidance add more details to a certain
element in a particular situation. The type of
guidance determines the content of the element.
There is no limit on how many guidance elements
you can attach to other elements. You can also
associate one guidance element with another.
Content Elements - Guidance
Checklist
• A checklist allows you to specify a set of statements
that can be used to check the completion of a set of
activities but can also be attached to work products.
This guidance is especially useful for reviews and
status checks.
Concept
• A concept guidance provides more context to key
ideas used in the referenced element. For example,
a concept for discipline might describe the basic
principles, motivations, and advantages of grouping
elements by disciplines.
Content Elements - Guidance
Tool Mentor
• Tool mentors provide the technical and conceptual
details to the user concerning how to apply the tools
to the situation outlined in the process.
Whitepaper
• This guidance element connects externally published
papers to the process, providing a larger scope on
the same concepts, different perspectives, and
opinions. Whitepapers are commonly written and
published independently and appear isolated from
the process. Therefore, you can often add and
remove them without consequence.
Content Elements - Guidance
Guideline
• A guideline element supplies more in-depth
information about the referenced element, such as
how to execute steps or complete work products.
Guidelines are particularly useful for new users who
need more assistance to complete their work.
• Guidance is a generic name for all kinds of
optional elements attached to process or content
elements. A guideline is a specific instance or
example of it.
Content Elements - Guidance
Template
• Template guidance elements provide a predefined structure to
a work product. They are helpful for creating consistency in a
project through the use of similar work products.
Term Definition
• This guidance element defines and describes common
concepts and puts them in a glossary. The individual terms
can then be used in other content element descriptions to
provide guidance similar to an encyclopedia. The glossary is
automatically generated when the process is published and
term definitions are not attached to other content elements
like the rest of the guidance elements...
Content Elements - Guidance
Roadmap
• Roadmap guidance elements are associated with
activities to guide the user through a complex
process, providing a start-to-finish scenario
Supporting Material
• Any required guidance elements that do not fit the
definition of any of the other guidance elements can
be described as supporting material. No specific
intent is outlined other than the general purpose of
providing a kind of guidance that can not be specified
elsewhere.
Content Elements - Guidance
Examples
• Examples show a practical application of a work product or
task. For instance, a project plan template becomes more
descriptive when a real example of the artifact is
demonstrated. Examples provide a hands-on application of
other content elements.
Report
• Report guidance elements describe the standards for
predefined forms and layouts of information. They are often
used in combination with tool automation when the structure
and content of the generated report requires specification.
The report guidance also describes the information extracted
from work products.
Content Elements - Guidance
Estimation Consideration
• Each estimation consideration guidance offers additional
information about a specific estimation technique. It provides
sample situations in which the technique can be applied.
Estimation consideration guidance elements usually reference
other elements that require cost, schedule, or work-effort
estimation
Practice
• Practice guidance elements describe positive, proven
strategies that are applied in various situations. For example,
the practice of iterative development impacts many tasks,
work products, and roles and contributes to the overall
success of the project
Content Elements - Guidance
Reusable Asset
• Assets are useful elements that provide value and
quality. If a solution provides value in various
situations in a certain context, it can be treated as a
reusable asset. A reusable asset might be, for
example, a design pattern that can then be directly
linked to a tool of choice (such as IBM Rational
Software Architect)
Content Elements
Categories
• Categories are useful organizational and structural
aids that can be used to group content elements.
Content Elements – Categories
Discipline
• Discipline categories aid in allocating certain content
elements (that is, tasks, capability patterns, and
guidance) to a certain area of concern.
Domain
• This category groups content elements based on
resources, timing, or relationship. Compared to
disciplines, domains can be broken down even
further, into subdomains, creating a domain
hierarchy. Even though domains often group content
elements from the same discipline, such groupings
are not limited to intradiscipline content.
Content Elements - Categories
Role Set
• Even though both roles are grouped into different
domains and disciplines, the roles are associated
with management. You can use the role set to
categorize these roles and group them as managers.
Tool Category
• In the tool category, tool mentors are usually bundled
together as a unit to provide one view of all the tool
mentors used.
Process Elements
•Process elements organize content elements
into activities and lifecycles and give the
content a sequential structure. These
elements help answer questions about when
content elements occur, either sequentially or
in parallel.
The advantage of separating the
process elements from the
content elements is that process
engineers can assemble
processes from existing content
elements based on the needs of a
particular project
Process Elements
Activities
• Method content (specifically tasks) is bundled into
activities, which group a unit of work. In contrast to
tasks, activities are not considered method
content because they are work breakdown
elements. Activities might contain other
activities.
Iteration
• The iteration process element allows process
engineers to group activities that are planned to be
repeated more than once. Iterations represent a
special form of activity.
Process Elements
Phase
• A phase element groups process elements into a
significant period in a project. Phases are often
related to different views or project perspectives.
They are a variation of an activity concept.
Process Elements
Capability Pattern
• Capability patterns are incomplete process fragments that can
contain activities and milestones. Grouping common process
elements into capability patterns enables process engineers
to reuse these process fragments and compose delivery
processes from them.
Delivery Process
• The intent of a delivery process is to publish and deploy what
is grouped so the user can eventually consume it. Delivery
processes are end-to-end project lifecycles assembled from a
set of activities, phases, iterations, capability patterns, and
milestones.
Process Elements
Milestone
• Milestones are decision points. They might follow an
activity, capability pattern, phase, or iteration to verify
a certain situation followed by a decision. Milestones
are often associated with metrics that compare a
plan with the actual result.
Process Package
• For organizational purposes, process packages
group process elements into folders.
Process Diagrams
Workflow Diagram
• is a tailored version of the UML activity diagram,
• can contain a start and end point, decision nodes, links,
activities, synchronization bars, task descriptors phases, and
milestones.
• The workflow diagram provides a high-level overview of the
activities and their sequence.
• The guards allow branching in certain situations, whereas the
synchronization bars demonstrate which activities are
performed in parallel.
• The user can drill down into each activity to retrieve an activity
detail diagram to get further details on the activity.
Process Diagrams - Workflow
Diagram
Process Diagrams
Activity Detail Diagram
• Gives a visual overview of the task descriptors within
an activity, the responsible role descriptors
associated with the task descriptors, and the input
and output work product descriptor.
• A descriptor is basically a reference object inside a
process that represents the occurrence of a method
content element, such as a task or work product
inside an activity. It has its own relationships and
documentation that defines the difference between
the default implementation and this particular
occurrence of the element in the process.
Process Diagrams - Activity
Detail Diagram
Process Diagrams
Work-Product Dependency Diagram
•The work-product dependency diagram
illustrates the relationships and dependencies
among various work products.
Process Diagrams
Work-Product Dependency Diagram
Now
IBM proposes the Rational Process Library, The industry’s
most robust collection of practices guidance
•Governance
•Governance
•Governance
•Governance•Governance
Customizable Process Library
Rational
Unified
Process
Process Design & Management
IBM
Practices
CMMI
GDD
SOA
Gov
ITUP
Tooling
 Author
 Manage
 Re-use
 Configure
 Tailor
 Publish
 Reporting
 Deploy
 Estimate
Over 100 practices and processes
to leverage & customize…
IBM Rational Method
Composer v7.5
Agile Core
Governance and
Compliance
Quality Management
Requirements
Management
Change & Release
Management
Architecture Management
IBM Practices in key
solution areas
Questions?
Thanks

Mais conteúdo relacionado

Mais procurados

Best Practices In Business Development
Best Practices In Business DevelopmentBest Practices In Business Development
Best Practices In Business DevelopmentDavid Fatlowitz
 
How to Create a Product Management Process That Doesn't Suck
How to Create a Product Management Process That Doesn't SuckHow to Create a Product Management Process That Doesn't Suck
How to Create a Product Management Process That Doesn't SuckIntelligent_ly
 
Agile Project management
Agile Project managementAgile Project management
Agile Project managementBabu Appat
 
Product strategy in a customer centric company at LeanKit
Product strategy in a customer centric company at LeanKitProduct strategy in a customer centric company at LeanKit
Product strategy in a customer centric company at LeanKitFlorent de Gantes
 
Agile Software Engineering and Design Thinking: Efficiency and Innovation in ...
Agile Software Engineering and Design Thinking: Efficiency and Innovation in ...Agile Software Engineering and Design Thinking: Efficiency and Innovation in ...
Agile Software Engineering and Design Thinking: Efficiency and Innovation in ...Tobias Schimmer
 
Agile Development – Why requirements matter
Agile Development – Why requirements matterAgile Development – Why requirements matter
Agile Development – Why requirements matterAgile Austria Conference
 
New is Easy but Right is Hard: Hacking Product Management
New is Easy but Right is Hard: Hacking Product ManagementNew is Easy but Right is Hard: Hacking Product Management
New is Easy but Right is Hard: Hacking Product ManagementBernard Leong
 
The Entrepreneur and Opportunity
The Entrepreneur and OpportunityThe Entrepreneur and Opportunity
The Entrepreneur and OpportunityRobin Paul
 
Module-1 Process of _Design Thinking
Module-1 Process of _Design ThinkingModule-1 Process of _Design Thinking
Module-1 Process of _Design Thinkingvijimech408
 
"Stop making excuses a culture first approach to product centricity" by Jorda...
"Stop making excuses a culture first approach to product centricity" by Jorda..."Stop making excuses a culture first approach to product centricity" by Jorda...
"Stop making excuses a culture first approach to product centricity" by Jorda...Productized
 
Stakeholder Management for Product Managers - ProductTank Paris
Stakeholder Management for Product Managers - ProductTank ParisStakeholder Management for Product Managers - ProductTank Paris
Stakeholder Management for Product Managers - ProductTank ParisJean-Yves SIMON
 
Product Portfolio Management
Product Portfolio ManagementProduct Portfolio Management
Product Portfolio Managementandback
 
Agile adoption julen c. mohanty
Agile adoption   julen c. mohantyAgile adoption   julen c. mohanty
Agile adoption julen c. mohantyJulen Mohanty
 
Accessibility, Usability and User Centred Design (Usabiltiy)
Accessibility, Usability and User Centred Design (Usabiltiy)Accessibility, Usability and User Centred Design (Usabiltiy)
Accessibility, Usability and User Centred Design (Usabiltiy)David Lamas
 

Mais procurados (20)

Best Practices In Business Development
Best Practices In Business DevelopmentBest Practices In Business Development
Best Practices In Business Development
 
How to Create a Product Management Process That Doesn't Suck
How to Create a Product Management Process That Doesn't SuckHow to Create a Product Management Process That Doesn't Suck
How to Create a Product Management Process That Doesn't Suck
 
Agile Project management
Agile Project managementAgile Project management
Agile Project management
 
Product strategy in a customer centric company at LeanKit
Product strategy in a customer centric company at LeanKitProduct strategy in a customer centric company at LeanKit
Product strategy in a customer centric company at LeanKit
 
Agile Software Engineering and Design Thinking: Efficiency and Innovation in ...
Agile Software Engineering and Design Thinking: Efficiency and Innovation in ...Agile Software Engineering and Design Thinking: Efficiency and Innovation in ...
Agile Software Engineering and Design Thinking: Efficiency and Innovation in ...
 
Introducing Agile
Introducing AgileIntroducing Agile
Introducing Agile
 
Agile scrum brown bag
Agile scrum brown bagAgile scrum brown bag
Agile scrum brown bag
 
Agile Development – Why requirements matter
Agile Development – Why requirements matterAgile Development – Why requirements matter
Agile Development – Why requirements matter
 
New is Easy but Right is Hard: Hacking Product Management
New is Easy but Right is Hard: Hacking Product ManagementNew is Easy but Right is Hard: Hacking Product Management
New is Easy but Right is Hard: Hacking Product Management
 
The Entrepreneur and Opportunity
The Entrepreneur and OpportunityThe Entrepreneur and Opportunity
The Entrepreneur and Opportunity
 
Module-1 Process of _Design Thinking
Module-1 Process of _Design ThinkingModule-1 Process of _Design Thinking
Module-1 Process of _Design Thinking
 
Agile PMO - PM
Agile PMO - PMAgile PMO - PM
Agile PMO - PM
 
Lean product development
Lean product developmentLean product development
Lean product development
 
Enterprise work management
Enterprise work managementEnterprise work management
Enterprise work management
 
"Stop making excuses a culture first approach to product centricity" by Jorda...
"Stop making excuses a culture first approach to product centricity" by Jorda..."Stop making excuses a culture first approach to product centricity" by Jorda...
"Stop making excuses a culture first approach to product centricity" by Jorda...
 
Stakeholder Management for Product Managers - ProductTank Paris
Stakeholder Management for Product Managers - ProductTank ParisStakeholder Management for Product Managers - ProductTank Paris
Stakeholder Management for Product Managers - ProductTank Paris
 
Product Portfolio Management
Product Portfolio ManagementProduct Portfolio Management
Product Portfolio Management
 
Agile adoption julen c. mohanty
Agile adoption   julen c. mohantyAgile adoption   julen c. mohanty
Agile adoption julen c. mohanty
 
What is agile?
What is agile?What is agile?
What is agile?
 
Accessibility, Usability and User Centred Design (Usabiltiy)
Accessibility, Usability and User Centred Design (Usabiltiy)Accessibility, Usability and User Centred Design (Usabiltiy)
Accessibility, Usability and User Centred Design (Usabiltiy)
 

Semelhante a Introduction to RUP & SPEM

Rational unified process lecture-5
Rational unified process lecture-5Rational unified process lecture-5
Rational unified process lecture-5MujiAhsan
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified ProcessKumar
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING  SOFTWARE ENGINEERING
SOFTWARE ENGINEERING Gaditek
 
An Overview of RUP methodology
An Overview of RUP methodologyAn Overview of RUP methodology
An Overview of RUP methodologyMasoud Kalali
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2Rupesh Vaishnav
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.pptNyamburaKinyua
 
Session2.ppt
Session2.pptSession2.ppt
Session2.pptMehuk1
 
presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)EveryThing68
 

Semelhante a Introduction to RUP & SPEM (20)

Rational unified process lecture-5
Rational unified process lecture-5Rational unified process lecture-5
Rational unified process lecture-5
 
ID, UP, & RUP.pptx
ID, UP, & RUP.pptxID, UP, & RUP.pptx
ID, UP, & RUP.pptx
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING  SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 
An Overview of RUP methodology
An Overview of RUP methodologyAn Overview of RUP methodology
An Overview of RUP methodology
 
Agile mODEL
Agile mODELAgile mODEL
Agile mODEL
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
Unified process
Unified processUnified process
Unified process
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
ddd.ppt
ddd.pptddd.ppt
ddd.ppt
 
Session2.pptx.ppt
Session2.pptx.pptSession2.pptx.ppt
Session2.pptx.ppt
 
SDLC.PPT
SDLC.PPTSDLC.PPT
SDLC.PPT
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)
 
SDLC.ppt
SDLC.pptSDLC.ppt
SDLC.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
Session2 (1).ppt
Session2 (1).pptSession2 (1).ppt
Session2 (1).ppt
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 

Mais de Fáber D. Giraldo

ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??Fáber D. Giraldo
 
Software configuration management in deep
Software configuration management in deepSoftware configuration management in deep
Software configuration management in deepFáber D. Giraldo
 
Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Fáber D. Giraldo
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Fáber D. Giraldo
 
Teamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsTeamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsFáber D. Giraldo
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software EngineeringFáber D. Giraldo
 
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...Fáber D. Giraldo
 
Introduction to Software Process
Introduction to Software ProcessIntroduction to Software Process
Introduction to Software ProcessFáber D. Giraldo
 
Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Fáber D. Giraldo
 
Continuous Integration Introduction
Continuous Integration IntroductionContinuous Integration Introduction
Continuous Integration IntroductionFáber D. Giraldo
 
software configuration management
software configuration managementsoftware configuration management
software configuration managementFáber D. Giraldo
 
software metrics (in spanish)
software metrics (in spanish)software metrics (in spanish)
software metrics (in spanish)Fáber D. Giraldo
 

Mais de Fáber D. Giraldo (20)

ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??
 
Software configuration management in deep
Software configuration management in deepSoftware configuration management in deep
Software configuration management in deep
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 
Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
 
Teamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsTeamwork in Software Engineering Projects
Teamwork in Software Engineering Projects
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
 
SEMAT
SEMATSEMAT
SEMAT
 
The SEI Approach
The SEI ApproachThe SEI Approach
The SEI Approach
 
The Agile Movement
The Agile MovementThe Agile Movement
The Agile Movement
 
Introduction to Software Process
Introduction to Software ProcessIntroduction to Software Process
Introduction to Software Process
 
Code Inspection
Code InspectionCode Inspection
Code Inspection
 
Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects
 
Continuous Integration Introduction
Continuous Integration IntroductionContinuous Integration Introduction
Continuous Integration Introduction
 
Patterns Overview
Patterns OverviewPatterns Overview
Patterns Overview
 
L software testing
L   software testingL   software testing
L software testing
 
software configuration management
software configuration managementsoftware configuration management
software configuration management
 
I software quality
I   software qualityI   software quality
I software quality
 
software metrics (in spanish)
software metrics (in spanish)software metrics (in spanish)
software metrics (in spanish)
 

Último

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Último (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Introduction to RUP & SPEM

  • 1. RUP & SPEM Modelos de Procesos y Metodologías de Ingeniería de software Mayo de 2014 Universidad de Caldas Facultad de Ingenierías Maestría en Ingeniería Computacional
  • 3. Content IBM Rational Unified Process Process Framework Theory Tayloring Some Model-Driven Theory SPEM & UMA Metamodels Eclipse Process Framework
  • 4. Sources •Gerard O’Regan, Introduction to Software Process Improvement, Springer 2011. ISBN 978-0-85729-171-4 •Ahmad K. Shuja and Jochen Krebs. IBM Rational Unified Process Reference and Certification Guide: Solution Designer. IBM Press 2008. ISBN 9780131562929 •Per Kroll and Philippe Kruchten. Rational Unified Process Made Easy- A Practitioner’s Guide to RUP. IBM Academic Intitiative. •IBM Software Group. PRJ270: Essentials of Rational Unified Process. 2003 •IBM Software Group. Basic Method Authoring with IBM Rational Method Composer V7.5. IBM, 2009
  • 5. Before… What do you listened about RUP? •It’s so difficult •It’s misunderstood •It’s rigorous •It’s imposible to apply all •It’s not suitable for small companies •It’s old •It’s for Rational Tools exclusively
  • 6. Before… What do you listened about RUP? •It’s horrible •It cannot be adapted •There are so many artifacts •It’s confusing •… •Among others
  • 7. But… Source: Estudio de la caracterización de productos y servicios de la industria de software y servicios asociados 2012 Fedesoft
  • 8. Rational Unified Process - RUP (Classical definition from common SE books) “It is a visual modelling language for software systems and provides a means of specifying, constructing, and documenting the object- oriented system. This facilitates the understanding of the architecture and complexity of the system”
  • 9. Rational Unified Process - RUP (Sommerville – cool!! ) “The RUP is a phased model that identifies four discrete phases in the software process. However, unlike the waterfall model where phases are equated with process activities, the phases in the RUP are more closely related to business rather than technical concerns.”
  • 10. Taking into account… • UML: 1997 • RUP: 1999 Rumbaugh, J., et al.: The Unified Software Development Process. Addison Wesley (1999)
  • 11. Rational Unified Process - RUP • RUP is a process framework for successful iterative- incremental software development. • It’s a very important knowledge source for modern Software Engineering
  • 12. Rational Unified Process - RUP • A software development approach that is iterative, architecture-centric and use-case driven • A well-defined and structured software engineering process • A process product providing a customizable process framework
  • 13. RUP vs the others
  • 14. RUP vs the others (II) • RUP as a traditional SW Process? • Note that the up-front goals modeling component may not be directly associated with any given software development methodology but is there to ensure alignment between new software products or releases and the business strategy. • One key of RUP is its strong business alignement
  • 15. Three central elements of RUP • Key principles for business-driven development • A framework of reusable method content and process building blocks • The underlying method and process definition language
  • 16. RUP as Process Framework • A process framework can be defined as an incomplete support structure in which another process can be organized and developed. Therefore, you need to finish a process framework before you can apply it to specific projects within an organization • The RUP framework is defined by a family of method plug- ins from which, based on the unique business needs as well as the context (technical and management complexity), organizations are able to create their own method configurations and tailored processes. • RUP provides an architectural foundation and wealth of material from which a process definition can be constructed, therefore enabling the adopting organization to configure and extend that foundation as desired.
  • 17. RUP ABC • Adapt the process. • Balance stakeholder priorities. • Collaborate across teams. • Demonstrate value iteratively. • Elevate the level of abstraction. • Focus continuously on quality
  • 18. Develop only what is necessary – Lean process, agility Minimize paperwork Be flexible – Requirements, plan, usage of people, etc… Learn from earlier mistakes – Feedback loops – Process improvement Revisit risks regularly Establish objective, measurable criteria for progress Automate – Support process with software development tools •Develop Iteratively •Manage Requirements •Use Component Architectures •Model Visually (UML) •Continuously Verify Quality •Manage Change RUP Best Practices & Key Principles
  • 19. The Spirit of RUP 1. Attack major risks early and continuously… or they attack you 2. Ensure that you deliver value to your customer 3. Have a maniacal focus on working software 4. Accommodate change early in the project 5. Baseline an executable architecture early on 6. Build your system with components 7. Work closely together as one team 8. Make quality a way of life, not an afterthought
  • 20. RUP Best Practices & Key Principles •Needs not met •Requirements churn •Modules don’t fit •Hard to maintain •Late discovery •Poor quality •Poor performance •Colliding developers •Build-and-release •Insufficient requirements •Ambiguous communications •Brittle architectures •Overwhelming complexity •Undetected inconsistencies •Poor testing •Subjective assessment •Waterfall development •Uncontrolled change •Insufficient automation Symptoms Root Causes Best Practices • •Ambiguous communications • •Undetected inconsistencies • • • • • •Develop Iteratively •Manage Requirements •Use Component Architectures •Model Visually (UML) •Continuously Verify Quality •Manage Change •Model Visually (UML) •Continuously Verify Quality • • •Modules don’t fit • • • • • •
  • 21. RUP Architecture Iterative Lifecycle Graph In an iteration, you may walk through all disciplines C O N T E N T S T R U C T U R E T I M E
  • 22. • The RUP provides an iterative and incremental approach to developing software. • This iterative and incremental development happens within iterations that occur within a structured lifecycle consisting of phases and milestones. • The RUP has four sequential phases: Inception, Elaboration, Construction, and Transition. • Each of them plays a central role in managing iterative and incremental development projects using RUP. • Each phase concludes with a major milestone Phases and Milestones
  • 23. • Phases are made up of iterations, and both phases and iterations are important concepts to grasp for building a concrete understanding of the RUP • According to the RUP, a discipline is a collection of related activities that are related to a major area of concern. • Based on which phase you are in, each iteration contains activities from across different disciplines. • Iterations are designed and executed with certain goals in mind. Depending upon which phase the iteration belongs to, the iteration goals are aligned to accomplish the respective milestone. Phases and Milestones
  • 24. Inception: Know What to Build Prepare vision document and initial business case – Include risk assessment and resource estimate Develop high-level project requirements – Initial use-case and domain models (10-20% complete) Manage project scope – Reduce risk by identifying all key requirements – Acknowledge that requirements will change  Manage change, use iterative process •Inception •Elaboration •Construction •Transition
  • 25. Inception: Know What to Build The following are the primary Inception phase objectives: To establish the project’s scope and boundary conditions To identify the critical use cases of the system To exhibit and demonstrate one candidate architecture To estimate the overall cost and schedule for the project To produce detailed estimates for the Elaboration phase To estimate the potential risks To prepare the support environment for the project The Lifecycle Objectives milestone concludes the Inception phase. At that point, a major decision is made on whether to proceed with the project or cancel it •Inception •Elaboration •Construction •Transition
  • 26. Detail requirements as necessary (~80% complete) – Less essential requirements may not be fleshed out Produce an executable and stable architecture – Define, implement and test interfaces of major components – Identify dependencies on external components and systems. Integrate shells/proxies of them. – Some key components will be partially implemented – Roughly 10% of code is implemented. Drive architecture with key use cases – 20% of use cases drive 80% of the architecture – Design, implement and test key scenarios for use cases •Inception •Elaboration •Construction •Transition Elaboration: Know How to Build It
  • 27. Verify architectural qualities – Reliability: Stress test – Scalability and Performance: Load test Continuously assess business case, risk profile and development plan •Inception •Elaboration •Construction •Transition Elaboration: Know How to Build It
  • 28. The Elaboration phase objectives are as follows: To stabilize the architecture, requirements, and respective plans To sufficiently mitigate risks to predictably determine project cost and schedule To address all architecturally significant risks To establish a baselined architecture To produce an evolutionary prototype of production-quality components Optionally, to produce throw-away prototypes to mitigate specific risks such as design trade-offs, component reuse, and product feasibility To demonstrate that the baselined architecture will support the requirements of the system at a reasonable cost and in a reasonable time To establish a supportive environment The Lifecycle Architecture milestone concludes the Elaboration phase, establishing a managed baseline for the architecture of the system and enabling the project team to scale during the Construction phase. Elaboration: Know How to Build It •Inception •Elaboration •Construction •Transition
  • 29. Complete requirements and design model Design, implement and test each component – Prototype system and involve end users – Incrementally evolve executable architecture to complete system Build daily or weekly with automated build process Test each build – Automate regression testing – Load and stress test to ensure architectural integrity Deliver fully functional software (beta release) – Includes training material, user and deployment documentation Produce release descriptions Construction: Build The Product •Inception •Elaboration •Construction •Transition
  • 30. Construction phase objectives can be briefly summarized as follows: To minimize development costs through optimization of resource utilization by avoiding unnecessary scrap and rework and by achieving a degree of parallelism in the work of development teams To achieve adequate quality as rapidly as is practical To achieve useful executable versions (alpha, beta, and so on) as rapidly as practical To complete the analysis, design, development, and testing of all required functionality To iteratively and incrementally develop a complete product that is ready to transition to its user community To decide if the software, the sites, and the users are ready for the deployment of the solution. The Construction phase concludes with the Initial Operational Capability milestone, which determines whether the product is ready to be deployed into a beta-test environment. Construction: Build The Product •Inception •Elaboration •Construction •Transition
  • 31. Produce incremental ‘bug-fix’ releases Update user manuals and deployment documentation Update release descriptions Execute cut-over Conduct “post-mortem” project analysis Transition: Deploy to End Users •Inception •Elaboration •Construction •Transition
  • 32. Following are the primary objectives of the Transition phase: To validate the new system against user expectations (by beta testing) To train the end users and maintainers If applicable, to roll out the product to marketing, distribution, and sales teams To fine-tune the product by engaging in bug-fixing and creating performance and usability enhancements To conclude the assessment of the deployment baseline against the complete vision and the acceptance criteria for the product To achieve user self-supportability To achieve stakeholder concurrence that deployment baselines are complete and are consistent with the evaluation criteria of the vision. The Product Release milestone concludes this phase. A decision is made whether the objectives of the project were met. Transition: Deploy to End Users •Inception •Elaboration •Construction •Transition
  • 33. Iterative Development Phases •Inception •Time •Elaboration •Construction •Transition •Major Milestones Inception: Understand what to build – Vision, high-level requirements, business case – Not detailed requirements Elaboration: Understand how to build it – Baseline architecture, most requirements detailed – Not detailed design Construction: Build the product – Working product, system test complete Transition: Validate solution – Stakeholder acceptance
  • 34. • In RUP, a discipline is defined as a categorization of activities based on similarity of concerns and cooperation of work effort. • A discipline is a collection of activities that are related to a major area of concern (or “a field of study”) within the overall project. • In RUP, an activity is a process element that supports the nesting and logical grouping of related process elements, such as a descriptor and subactivities, thus forming breakdown structures. RUP Disciplines
  • 35. • In the RUP, a discipline refers to a specific area of concern (or a field of study, as mentioned earlier) within software engineering. • In addition, disciplines in RUP allow you to govern the activities you perform within that discipline. • A discipline in RUP gives you all the guidance you require to learn not only when to perform a given activity but also how to perform it. Therefore, disciplines in RUP allow you to bring closely related activities under control. RUP Disciplines (II)
  • 36. The benefits provided by separating the RUP activities into various disciplines are summarized as follows: • Makes the activities easier to comprehend. • Proves useful when customizing a given discipline to meet the specific needs of the project or when defining a set of organizational standard processes. • Enables different roles to better and more effectively appreciate their responsibilities (in terms of the tasks/activities that they are responsible for) on a given project. • Allows Project Managers to more effectively monitor and control these activities. RUP Disciplines (III)
  • 37. • A discipline in RUP is a collection of activities that are related to a major area of concern or field of study. • Each activity is further decomposed into subactivities or one or many tasks. • Tasks require an input artifact or artifacts for their successful execution, and these in turn produce or refine some form of output artifact(s). • Note that these artifacts can include both document-based artifacts and executables. Each task has an associated role (or roles) responsible for performing that task. • To provide additional support and guidance, each discipline in the base RUP offers a set of standard template artifacts related to that discipline. • These artifacts, as well as the process, can be (and should be) customized/tailored for a given project or organization ORACLES
  • 38. A Structured Process: Role, Artifact, Activity •Distribute Behavior•Find Design •Classes •Designer •Use Case Realization •Role •Activities •Artifact •responsible for
  • 39. Guidelines, Templates, Tool Mentors, … •Distribute Behavior•Find Design •Classes •Designer •Use Case Realization •Use Case Template •Rose Tool Mentor•Design Guideline •Role •Activities •Artifact •responsible for
  • 40. • RUP models the when as workflows, and each discipline in RUP has a workflow. Like other workflows, a discipline’s workflow is a semi-ordered sequence of activities performed by specific roles to achieve a particular goal. • This semi-ordered nature of discipline workflows emphasizes that they cannot present the nuances of scheduling “real work,” because they cannot depict the optionality of activities or iterative nature of real projects. • These workflows are part of RUP Framework, so, these constitutes guidance on a rich set of software engineering principles. • It is applicable to projects of different size and complexity, as well as to different development environments and domains. This means that no single project or organization will benefit from using all of RUP. • It is important to understand that the sequence of activities in each of the workflows is based on best practices Workflows
  • 41. Expressed as Workflows and Workflow Details
  • 42. According with Project Management Institute (PMI) • The project’s work breakdown structure (WBS) provides the relationship among all the components of the project and the project deliverables. • WBS is a deliverable-oriented hierarchical decomposition of the work to be executed by the project team to accomplish the project objectives and create the required deliverables. • It organizes and defines the total scope of the project. Each descending level represents an increasingly detailed definition of the project work. Workflow Breakdown Structure
  • 43. • RUP adopts a slightly different view of WBS. Discipline WBS in RUP represents the activities- oriented hierarchical decomposition of the project effort specific to the respective discipline. • Each descending level represents an increasingly detailed definition of the project work. • In the RUP, the WBS provides mostly four descending level of details. • These levels include Discipline, Activity, Sub- Activity/Task, and Step. Workflow Breakdown Structure
  • 44. • Activity is a process element that supports the nesting and logical grouping of related process elements such as descriptor and subactivities, thus forming breakdown structures. • Task is a unit of work that a role may be asked to perform. • Step is a content element used to organize tasks into parts or subunits of work. • Note that it is at the Task level that RUP associates the roles and the artifacts produced, modified, or used. Workflow Breakdown Structure
  • 45. Workflow Breakdown Structure Level of activity decomposition
  • 46. Optimizing iterative and incremental development
  • 47. RUP is Use-Case Driven Development A use case describes complete and meaningful services that your system offers to users and other systems Use cases drive the work through each iteration – Planning of iterations – Creation and validation of the architecture – Definition of test cases and procedures – Design of user interfaces and creation of user documentation •Use-Case Model •Analysis & Design Model •Implementation Model •Test Model •Requirements •realized by •implemented by •verified by •Analysis & Design •Implementation •Test
  • 48. RUP is Use-Case Driven Development •Problem •Solution Space •Problem Space •Needs •Features •Software •Requirements •Test Scripts •Design •User Docs •The Product to Be Built
  • 53. • Applying all of RUP will likely result in an inefficient project environment, where teams will struggle to keep focused on the important tasks and struggle to find the right set of information. • It is recommended that RUP be tailored to provide an appropriate and customized process for developing software. • As an important component of tailoring the RUP framework, these workflows should be customized to suit project or organizational needs. This customization might require redefining some of these sequences Tayloring
  • 54. Factors that influence the configuring and tailoring of RUP: • Project complexity • Organizational maturity • Organization culture • Regulatory compliance and policy requirements • Development type • Organization size Tayloring (II)
  • 55. Approaches for Adopting RUP •Alternative 1: Use it as a knowledgebase •Non-intrusive with minimal effort and risk •No different than training, books, and magazines •Alternative 2: Focused implementation aiming at fast results •Focused and incremental adoption with training and mentoring aiming at changing behavior - takes time and effort •Focus on critical areas first, it is not an all or nothing •Use mentors / consultants to accelerate results •Adopting RUP is a continuum between alternative 1 and 2 Tayloring (III)
  • 56. Common Mistakes Adopting RUP • Not coupling process improvement with business results • Adopting too much of what is in RUP • Customizing too much of RUP too early • See https://wiki.aston.ac.uk/foswiki/pub/DanCornford/Fin alYearProjectResources/RUP_Guide.pdf and www.x-tier.com/public/RUPUPIn10EasySteps.doc for guides of RUP adoption Tayloring (IV)
  • 57. Now, process tayloring, process specification and process adaptation can be done by the power of model driven initiatives and tools for process edition (Eclipse Process Framework and IBM Rational Process Composer).
  • 58. • In November 2000 the OMG proposed a new approach to interoperability named MDA™ (Model- Driven Architecture). MDA is one example of the broader Model Driven Engineering (MDE) vision, encompassing many popular current research trends related to generative and transformational techniques in software engineering, system engineering, or data engineering. • Considering models as first class entities and any software artifact as a model or as a model element is one of the basic principles of MDE. Model-driven Source: Bézivin, J. (2006). Model Driven Engineering: An Emerging Technical Space. Generative and Transformational Techniques in Software Engineering. R. Lämmel, J. Saraiva and J. Visser, Springer Berlin / Heidelberg. 4143: 36-64.
  • 59. • The OMG MDA initial proposal may be defined as the realization of MDE principles around a set of OMG standards like MOF, XMI, OCL, UML, CWM, and SPEM. Model-driven (II) Source: Bézivin, J. (2006). Model Driven Engineering: An Emerging Technical Space. Generative and Transformational Techniques in Software Engineering. R. Lämmel, J. Saraiva and J. Visser, Springer Berlin / Heidelberg. 4143: 36-64.
  • 60. • The IBM manifesto makes the claim that MDA-based approaches are founded on three ideas: Direct representation, Automation and Standards. • Direct representation allows a more direct coupling of problems to solutions with the help of Domains Specific Languages (DSLs). • Automations means that the facets represented in these DSLs are intended to be processed by computer-based tools to bridge the semantic gap between domain concepts and implementation technologies and not only for mere documentation. • This should be complemented by the use of open standards that will allow technical solutions to interoperate Model-driven (III) Source: Bézivin, J. (2006). Model Driven Engineering: An Emerging Technical Space. Generative and Transformational Techniques in Software Engineering. R. Lämmel, J. Saraiva and J. Visser, Springer Berlin / Heidelberg. 4143: 36-64.
  • 61. Model-driven (IV) Source: Bézivin, J. (2006). Model Driven Engineering: An Emerging Technical Space. Generative and Transformational Techniques in Software Engineering. R. Lämmel, J. Saraiva and J. Visser, Springer Berlin / Heidelberg. 4143: 36-64. •http://www.omg.org/mda/
  • 62. Relations between MD* Acronyms Source: Jordi Cabot. Clarifying concepts: MBE vs MDE vs MDD vs MDA. Available in http://modeling- languages.com/clarifying-concepts-mbe-vs-mde-vs-mdd-vs-mda/
  • 63. MDA Consequences •From: http://www.omg.org/mof/ •Key: The MetaObject Facility (MOF) Specification is the foundation of OMG's industry-standard environment where models can be exported from one application, imported into another, transported across a network, stored in a repository and then retrieved, rendered into different formats (including XMI, OMG's XML-based standard format for model transmission and storage), transformed, and used to generate application code
  • 64. MDA Consequences (II) Source: http://www.modeliosoft.com/en/technologies/mda.html
  • 65. MDA Consequences (II) Source: http://www.jot.fm/issues/issue_2006_11/article4/ Note: XMI means XML Metadata Interchange
  • 66. Source: Bézivin, J. and I. Kurtev Model-based Technology Integration with the Technical Space Concept. Key: the Technical spaces concept metametamodel level metamodel level model level Real life level MDA
  • 67. MDA & Software Process? cd Logical Model M3 M2 M1 M0 MetaObject Facility (MOF) Software Process Engineering Metamodel (SPEM) as a UML Profile Template complete MOF-based Metamodel M3 A defined process (RUP) from the template M2 A specific customized implementation of M1 Modeling Level 3: MetaObject Facility Modeling Level 2: Process Metamodel Modeling Level 1: Process Model Modeling Level 0: Performing process Source: https://wiki.aston.ac.uk/foswiki/pub/DanCornford/FinalYearProjectResources/RUP_Guide.pdf
  • 68. MOF MDA & Software Process? metametamodel level metamodel level model level Real life level SPEM RUP SCRUM XP Taylored Process
  • 69. • A Metamodel is the construction of a collection of "concepts" (things, terms, etc.) within a certain domain. • A model is an abstraction of phenomena in the real world; • A metamodel is yet another abstraction, highlighting properties of the model itself. • A model conforms to its metamodel in the way that a computer program conforms to the grammar of the programming language in which it is written. Metamodel (from Wikipedia) http://en.wikipedia.org/wiki/Metamodeling
  • 70. • The Software and Systems Process Engineering Meta-model (SPEM) is a process engineering meta-model as well as conceptual framework, which can provide the necessary concepts for modeling, documenting, presenting, managing, interchanging, and enacting development methods and processes. • An implementation of this meta-model would be targeted at process engineers, project leads, project and program managers who are responsible for maintaining and implementing processes for their development organizations or individual projects. SPEM Metamodel
  • 71. SPEM’s Advantages •To provide a standardized representation and managed libraries of reusable method content •To support systematic development, management, and growth of development processes •To support deployment of just the method content and process needed by defining configurations of processes and method content •To support the enactment of a process for development projects
  • 72. SPEM Introduction (I) • Throughout the software industry there are a lot of great ideas and knowledge available about how to effectively develop software. • Nowadays, development teams need and have access to a wide range of information. Not only do they need to acquire detailed information about specific development technologies such as Java, Java EE, Eclipse, SOA technologies, .NET, as well as various development and tool environments
  • 73. SPEM Introduction (II) They also need to figure out how to organize their work along modern development best practices such as agile, iterative, architecture- centric, risk- and quality-driven software development.
  • 74. SPEM Introduction (III) •Some problems development organizations face when they leave their developers to find such information for themselves are • Team members will not have centralized and easy access to the same body of information when they need it, i.e., different developers might rely on different sources and versions of the same information
  • 75. SPEM Introduction (IV) •It’s difficult to combine and integrate content and development processes that are made available in their own proprietary format, as every book and publication presents method content and process using a different representation and presentation style •It’s hard to define an organized and systematic development approach that is right-sized to their needs, i.e., addresses their specific culture, standardized practices, and compliance requirements.
  • 76. SPEM
  • 78. SPEM
  • 79. • Evolution of CMMI SPEM Editor (EPF)
  • 81. SPEM
  • 82. Structure of the SPEM 2.0 Meta-Model
  • 83. The SPEM 2.0 UML 2 Profile stereotypes defined in the Process Structure package
  • 84. The SPEM 2.0 UML 2 Profile stereotypes defined in the Method Content package
  • 85. The SPEM 2.0 UML 2 Profile stereotypes defined in the Process Structure package
  • 86. The SPEM 2.0 UML 2 Profile stereotypes defined in the Process with Methods package
  • 87. UMA (Unified Method Architecture) •UMA is an architecture to conceive, specify, and store method and process metadata. •UMA clearly separates Method Content definitions from their application in delivery processes. It does this by defining the reusable core Method Content in the form of general content descriptions and the project-specific applications in the form of process descriptions. •A unified method architecture (UMA) meta-model provides a language for describing method content and processes.
  • 88. UMA
  • 89. Method Content and Process are Separated method = method content + process Method content is the description of work that can be reused as key building blocks. Method content describes tasks, roles, work products, guidelines, and so on, that are involved in completing work. Processes are the order of doing work. They provide the order for the method content. Processes will differ depending on project type, size, or other characteristics. A Method provides both the descriptions of work and the order of work. A method is end-to-end, and is usable on a project. An example of a method is the RUP methodology.
  • 90. Types of Method Content and Process Process Applies method content for assembly of many different executable processes Specific to the scale or context of project (for example, develop from scratch versus maintain existing system, or formal and high ceremony versus agile and self-organizing) Described with Breakdown Structures that refer to Method Content elements Two types of processes  Delivery Process: end-to-end  Capability Pattern: reusable fragments (for example, the Inception iteration, shown in the image). Method Content Describes key reusable building blocks: Roles, Work Products, Tasks, and Guidance Provides step-by-step guidelines by which specific goals are approached Provides general development techniques and practices, described independent of lifecycle. For example, “Analyze Use Case Behavior”, "Develop component model“, and so on.
  • 91. Key: UMA is contained in the actual version of SPEM OMG Metamodel
  • 92. Content Elements UMA elements that describe the schema elements for the static aspects of a process.
  • 93. Content Elements Role • A role is defined as a set of related skills, competencies, and responsibilities. The people or tools in the roles perform tasks and produce work products. For some tasks and work products, those in the roles are directly responsible for performing the tasks and producing the work products. For other tasks and work products, those in the roles simply participate in accomplishing what’s needed.
  • 94. Content Elements • Work Product • Work products are produced, consumed, or modified while a task is performed. Only one designated role is responsible for each work product.
  • 95. Content Elements – Work Product Artifacts • Artifacts are tangible and can be nested in other artifacts. For example, a software development plan is an artifact that contains the risk-list artifact among others
  • 96. Content Elements – Work Product Outcome • An outcome is commonly intangible and not reused, which could be a state or result. For example, an outcome could be improved performance or a competed tool installation
  • 97. Content Elements – Work Product Deliverable • A deliverable is intended to be value provided to stakeholders internally or externally. A deliverable consists of the other two work products: artifacts and outcomes. Deliverables are intended to package content from other work products to be consumed, for example, by stakeholders.
  • 98. Content Elements Task • A task is an action performed by roles, associated with input and output (work products), and driven by a goal. An example of a goal might be to develop vision. The task describes the work to be performed and commonly an optional set of steps.
  • 99. Content Elements Task • Tasks usually last between a few hours and a few days and affect only a small number of work products. Because of their granularity, tasks are often repeated in iterations and are often too small for planning purposes.
  • 100. Content Elements Step • A step represents the most granular unit of work to be performed. It has a name and a textual description. Steps are useful for breaking down tasks into more granular elements. They define tasks in greater detail and can separate various aspects of the task. Even though steps are typically conceptualized as being sequential, as part of UMA, they are treated as optional and can be executed in any order that works to complete the task. As a general rule of thumb, steps may call upon the performing role to think, perform, or review
  • 101. Content Elements Guidance • The Guidance add more details to a certain element in a particular situation. The type of guidance determines the content of the element. There is no limit on how many guidance elements you can attach to other elements. You can also associate one guidance element with another.
  • 102. Content Elements - Guidance Checklist • A checklist allows you to specify a set of statements that can be used to check the completion of a set of activities but can also be attached to work products. This guidance is especially useful for reviews and status checks. Concept • A concept guidance provides more context to key ideas used in the referenced element. For example, a concept for discipline might describe the basic principles, motivations, and advantages of grouping elements by disciplines.
  • 103. Content Elements - Guidance Tool Mentor • Tool mentors provide the technical and conceptual details to the user concerning how to apply the tools to the situation outlined in the process. Whitepaper • This guidance element connects externally published papers to the process, providing a larger scope on the same concepts, different perspectives, and opinions. Whitepapers are commonly written and published independently and appear isolated from the process. Therefore, you can often add and remove them without consequence.
  • 104. Content Elements - Guidance Guideline • A guideline element supplies more in-depth information about the referenced element, such as how to execute steps or complete work products. Guidelines are particularly useful for new users who need more assistance to complete their work. • Guidance is a generic name for all kinds of optional elements attached to process or content elements. A guideline is a specific instance or example of it.
  • 105. Content Elements - Guidance Template • Template guidance elements provide a predefined structure to a work product. They are helpful for creating consistency in a project through the use of similar work products. Term Definition • This guidance element defines and describes common concepts and puts them in a glossary. The individual terms can then be used in other content element descriptions to provide guidance similar to an encyclopedia. The glossary is automatically generated when the process is published and term definitions are not attached to other content elements like the rest of the guidance elements...
  • 106. Content Elements - Guidance Roadmap • Roadmap guidance elements are associated with activities to guide the user through a complex process, providing a start-to-finish scenario Supporting Material • Any required guidance elements that do not fit the definition of any of the other guidance elements can be described as supporting material. No specific intent is outlined other than the general purpose of providing a kind of guidance that can not be specified elsewhere.
  • 107. Content Elements - Guidance Examples • Examples show a practical application of a work product or task. For instance, a project plan template becomes more descriptive when a real example of the artifact is demonstrated. Examples provide a hands-on application of other content elements. Report • Report guidance elements describe the standards for predefined forms and layouts of information. They are often used in combination with tool automation when the structure and content of the generated report requires specification. The report guidance also describes the information extracted from work products.
  • 108. Content Elements - Guidance Estimation Consideration • Each estimation consideration guidance offers additional information about a specific estimation technique. It provides sample situations in which the technique can be applied. Estimation consideration guidance elements usually reference other elements that require cost, schedule, or work-effort estimation Practice • Practice guidance elements describe positive, proven strategies that are applied in various situations. For example, the practice of iterative development impacts many tasks, work products, and roles and contributes to the overall success of the project
  • 109. Content Elements - Guidance Reusable Asset • Assets are useful elements that provide value and quality. If a solution provides value in various situations in a certain context, it can be treated as a reusable asset. A reusable asset might be, for example, a design pattern that can then be directly linked to a tool of choice (such as IBM Rational Software Architect)
  • 110. Content Elements Categories • Categories are useful organizational and structural aids that can be used to group content elements.
  • 111. Content Elements – Categories Discipline • Discipline categories aid in allocating certain content elements (that is, tasks, capability patterns, and guidance) to a certain area of concern. Domain • This category groups content elements based on resources, timing, or relationship. Compared to disciplines, domains can be broken down even further, into subdomains, creating a domain hierarchy. Even though domains often group content elements from the same discipline, such groupings are not limited to intradiscipline content.
  • 112. Content Elements - Categories Role Set • Even though both roles are grouped into different domains and disciplines, the roles are associated with management. You can use the role set to categorize these roles and group them as managers. Tool Category • In the tool category, tool mentors are usually bundled together as a unit to provide one view of all the tool mentors used.
  • 113. Process Elements •Process elements organize content elements into activities and lifecycles and give the content a sequential structure. These elements help answer questions about when content elements occur, either sequentially or in parallel.
  • 114. The advantage of separating the process elements from the content elements is that process engineers can assemble processes from existing content elements based on the needs of a particular project
  • 115. Process Elements Activities • Method content (specifically tasks) is bundled into activities, which group a unit of work. In contrast to tasks, activities are not considered method content because they are work breakdown elements. Activities might contain other activities. Iteration • The iteration process element allows process engineers to group activities that are planned to be repeated more than once. Iterations represent a special form of activity.
  • 116. Process Elements Phase • A phase element groups process elements into a significant period in a project. Phases are often related to different views or project perspectives. They are a variation of an activity concept.
  • 117. Process Elements Capability Pattern • Capability patterns are incomplete process fragments that can contain activities and milestones. Grouping common process elements into capability patterns enables process engineers to reuse these process fragments and compose delivery processes from them. Delivery Process • The intent of a delivery process is to publish and deploy what is grouped so the user can eventually consume it. Delivery processes are end-to-end project lifecycles assembled from a set of activities, phases, iterations, capability patterns, and milestones.
  • 118. Process Elements Milestone • Milestones are decision points. They might follow an activity, capability pattern, phase, or iteration to verify a certain situation followed by a decision. Milestones are often associated with metrics that compare a plan with the actual result. Process Package • For organizational purposes, process packages group process elements into folders.
  • 119. Process Diagrams Workflow Diagram • is a tailored version of the UML activity diagram, • can contain a start and end point, decision nodes, links, activities, synchronization bars, task descriptors phases, and milestones. • The workflow diagram provides a high-level overview of the activities and their sequence. • The guards allow branching in certain situations, whereas the synchronization bars demonstrate which activities are performed in parallel. • The user can drill down into each activity to retrieve an activity detail diagram to get further details on the activity.
  • 120. Process Diagrams - Workflow Diagram
  • 121. Process Diagrams Activity Detail Diagram • Gives a visual overview of the task descriptors within an activity, the responsible role descriptors associated with the task descriptors, and the input and output work product descriptor. • A descriptor is basically a reference object inside a process that represents the occurrence of a method content element, such as a task or work product inside an activity. It has its own relationships and documentation that defines the difference between the default implementation and this particular occurrence of the element in the process.
  • 122. Process Diagrams - Activity Detail Diagram
  • 123. Process Diagrams Work-Product Dependency Diagram •The work-product dependency diagram illustrates the relationships and dependencies among various work products.
  • 125. Now IBM proposes the Rational Process Library, The industry’s most robust collection of practices guidance •Governance •Governance •Governance •Governance•Governance Customizable Process Library Rational Unified Process Process Design & Management IBM Practices CMMI GDD SOA Gov ITUP Tooling  Author  Manage  Re-use  Configure  Tailor  Publish  Reporting  Deploy  Estimate Over 100 practices and processes to leverage & customize… IBM Rational Method Composer v7.5 Agile Core Governance and Compliance Quality Management Requirements Management Change & Release Management Architecture Management IBM Practices in key solution areas