Title: The Experience Factory
1The Experience Factory
- May 2004 Leonardo Vaccaro
2Introduction
- Reuse of products, processes and experience
- originating from the system life cycle is seen
today - as a feasible solution to the problem of
developing - higher quality system at lower cost.
3Outline
- Importance of Experience Factory in the Software
Business - The Experience Factory
- Software Engineering Laboratory
- Q-Labs Experience Management System
- Experience Factory Implications
4Experience Factory(Definition)
- It is a logical and/or physical organization that
supports project developments by analyzing and
synthesizing all kinds of experience, acting as a
repository for such experience, and supplying
that experience to various project on demand
5Importance of Experience Factory in the software
business
- The software business requires understanding,
continuous - improvement, and the packaging of experience for
reuse. - Reusing experience in the form of processes,
products and other forms of knowledge is
essential for improvement - Experience needs to be packaged
- Experience must be evaluated
- Software development must support reuse of
experience - Packaged experiences need to be integrated
-
6Experiences Factory Schema(Victor Basili)
- Envioronment
- Characteristics
- Characterize
- Set Goals
- Choose Process
- Goals, Processes,
- Tools, Products,
- Resource Models...
- Experience Factory Organization
7Project Organization
- Produce and maintain software
- Provides the analysis organization with
- project and environment characteristics
- development data
- resource usage information
- process information
8Quality Improvement Paradigm
- The basic methodological device for the
Experience Factory - Developed by Victor Basili
- Is the result of the application of the
scientific method to the problem of software
quality improvement - Based upon the notion that improving the software
process requires the continual accumulation of
evaluated experiences (learning) in a form that
can be effectively understood and modified
(experience models) into a repository of
integrated experience models (experience base)
that can be accessed and modified to meet the
needs of the current project (reuse) -
9Quality Improvement Paradigm (cont.)
- It is articulated in six steps
101. Characterize
- Understand the environment based upon
- Available models
- Data
- Intuition
- Establish baselines with the existing business
processes in the organization and characterize
their criticality -
112. Set Goals
- Set quantifiable goals for successful project and
organization performance and improvement. - Use of Goal \ Question \ Metric Paradigm
- The reasonable expectation are defined upon the
baseline provided by the characterization step
123. Choose Process
- Choose the appropriate processes for
- Improvement
- Support methods and tools
- The processes must be consistent with the goals
that have been set
134. Execute
- Perform the processes
- Constructing the products
- Providing project feedback based upon the data on
goal achievement that are being collected
145. Analyze
- At the end of each specific project, analyze the
data and the information gathered to - Evaluate the current practices
- Determine the problems
- Make recommendation for future project
improvements.
15Analysis Organization
- Processes the information received from the
development organization - Returns direct feedback to each project, together
with goals and models tailored from similar
project.
166. Package
- Consolidate the experience gained in the form of
new, or updated models - Store it in a experience base so it is available
for future projects.
17Support Organization
- Sustains and facilitates the interaction between
developers and analysts - Saving and maintaining the information
- Making it efficiently retrievable
- Controlling and monitoring the access to it.
18Experience Base
- Contains an accessible and integrated set of
analyzed, synthesized and packaged experience
models that capture past experience
19Packaged Experience
- The experience factory can package all kinds of
experience - Resource models
- Change and defect models
- Process definition and models
- Product models
- A variety of quality models
20Experience Package
- Is the main product of the experience factory
- The content of this product vary upon the kind of
experience clustered in the package - There is a central element that determines what
the package is.
21Examples of Experience Package
- Product Packages
- Processes Package
- Relationship Packages
- Tool Packages
- Management Packages
- Data Packages
22Product Packages
- Have as their central element a product,
clustered with the information needed to reuse it
and the lessons learned in reusing it - Examples
- Programs
- Architectures
- Designs
23Processes Packages
- Have as their central element a process,
clustered with the information needed to execute
it and lessons learned in executing it. - Examples
- Processes model
- Methods
24Relationship Packages
- Have as their central element a relationship or a
system of relationship among observable
characteristics of a software project. These
packages are used for analysis and/or forecast of
relevant phenomena - Examples
- Cost and defect models,
- Resource models
25Tool Packages
- Have as their central element a specific tool
either constructive or analytic. - Examples
- Code generator (constructive)
- Static analyzer (analytic)
26Management Packages
- Have as their central element any container of
reference information for project management. - Examples
- Management handbooks,
- Decision support models
27Data Packages
- Have as their central element a collection of
defined and validated data relevant for a
software project or for activities within it. - Examples
- Project databases
- Quality records
28Goal \ Question \ Metric Paradigm
- The mechanism used by the Quality Improvement
Paradigm for defining and evaluating a set of
operational goals using measurement. - Represents a systematic approach for tailoring
and integrating goals with models of the software
processes.
29Goal \ Question \ Metric Paradigm
- Development of goals
- Generation of questions that define the goals
- Indication of metrics that answer the question
- Objective
- Minimize the number of defects
- Management
- Goals or Needs
30Software Engineering Laboratory
- A software organization that has for a long time
recognized the value of accumulation and reuse of
experience is the NASA Goddard Space Flight
Centre which has developed since 1977 the
Software Engineering Laboratory
31Software Engineering Laboratory
- Is a very advanced examples of the concept of
Experience Factory. - The experience packages developed by the Software
Engineering Laboratory have mainly focused on
project management and control, acquisition and
tailoring of new technologies for software
development and maintenance
32The Software Engineering Laboratory Organization
33Software Management Environment
- The most interesting experience packages
developed by Software Engineering Laboratory - Is a set of data, tools manuals and analysis
techniques supplied to the project management in
order to - control the execution of project,
- compare it with similar ones
- detect and analyze problems,
- identify solutions
34Q-Labs
- An internationally distributed software
engineering consulting company with office in
Europe as well as in the United States - Needed an infrastructure to share experience
between employees no matter where they are
located - Q-Labs Experience Management System
35Experience Management System
- A physical implementation of the Experience
Factory - Composed of
- Content
- Data, Information, Experience
- Structure
- The way the content is organized
- Procedures
- Instructions on how to use, package, delete and
update the experience - Tools
- Visual Query Interface
36Q-Labs Experience Management System
- Stores documents and their description in the
Experience Base - The search is performed using a tool called
Visual Query Interface - Experience packages in the context of Q-Labs are
single computer document - Texts
- Slides
- Graphs
- Scanned images
- Numeric data
37Experience Factory Implications
- Offers an organizational structure that
- Separates the product development focus from the
learning and reuse focus. - Supports learning and reuse
- Generates a tangible corporate asset in the form
of packaged experiences. - There are costs involved in instituting such a
program. - Based upon the SEL experience where a full
measurement program has been in progress for over
14 years, project data collection overhead is
estimated to be about 5 of the total project
cost.
38References
- The Experience Factory Victor Basili,
Gianluigi Caldiera, Dieter Rombach - http//wwwagse.informatik.uni-kl.de/pubs/rep
ository/basili94c/encyclo.ef.pdf - Implementing the Experience Factory concepts
Victor Basili, Mikael Lindvall, Patricia Costa
http//www.cebase.org/www/researchActivities/eBase
/websepp.pdf - Software Engineering Laboratory
http//sel.gsfc.nasa.gov/website/welcome.htm - Lessons Learned about Structuring and Describing
Experience for Three Experience Base Mikael
Lindvall, Michael Frey, Patricia Costa, Roseanne
Tesoriero
39Visual Query Interface
- Visualize the content of the Experience Base
- The attributes are used to describe the
experience packages - Package Id
- Name
- Submitted
- X axis represents the Open Date
- Y axis represents The Person Responsible
- The color represents the Costumer