|
project overview
OOSPICE
- Software
Process Improvement
and Capability dEtermination
for Object Oriented/component
based software development
OOSPICE [1] is a project based on the
principles of empirical software engineering. It focuses on
the processes, technology and quality of software systems
produced using component-based development (CBD) which is
achieving substantial software re-use. Among its main objectives
are a unified CBD process metamodel, a CBD assessment methodology,
component-provider capability profiles, a CBD methodology
and extentions to the ISO 155504 process assessment standard.
1. domain and rationale
The domain of this project is component-based software engineering
in which complex software systems are often rapidly produced,
for example, to meet the time to market of e-commerce. In general
the technology involves designing an appropriate architecture
for independently produced components (architecting),
component assembly and
component provisioning
(often by third parties). CBD, encompassing these three aspects,
is of increasing importance, especially for rapid software development.
However, companies are experiencing many problems in CBD, inter
alia, the following:
- Companies believe that CBD is valuable and a key to enhancing
both quality and productivity but do not have the knowledge
or skills to obtain the benefits.
- Organisational structures and processes are not adapted to
CBD.
- Inappropriate technical and management approaches are being
used for CBD, for example, in risk estimation, project planning
and quality assurance.
- Information concerning availability, quality and reliability
of (software) components is deficient.
- Prevailing culture is resistant, rejecting newness, and mistrusting
components.
- Information about capability of component suppliers and
their component construction process is inadequate.
- Components are not trusted because they are not well specified
or are not self-describing or reflective, especially where components
are themselves complex assemblies of components.
Currently various suitable processes for CBD are still emerging
and their general applicability is being debated. Developers of
component-based systems find it hard to determine and assess the
appropriateness of available components. This project will
address these problems and provide processes, methods, tools and
standards to create a technological basis needed for effective
CBD and component provision. Especially in the context of re-use,
the notion of software components has been around since McIlroy
proposed it in 1968. With the emphasis on re-use in object-oriented
development, together with a multiplicity of characterisations
of what components are (e.g. from Microsoft, Sun, OMG) and the
use of object-style interfaces to components, practitioners and
researchers remain unclear about the distinction between components
and objects.
Go Up
2. focus of work
An accepted principle in software engineering is that process
quality determines product quality [3]
[4]. This is the basis
of approaches like CMMI and SPICE (ISO/IEC TR15504: 1998 -Software
process assessment [5].
The updating and improvement of the technology for CBD as
planned for OOSPICE
requires detailed analysis and codification of the wide variety
of currently offered approaches, like OPEN, Catalysis and
BlackBox. Based on the identified best-practice approaches
it is the aim to devise suitable process models and an assessment
methodology. Following the SPICE model of ISO 15504, we can
distinguish between two different forms of process models:
- Process reference
models serve to define the entities subject to assessment by
providing basic definitions of the processes within their scope.
- Process assessment
models serve to support the performance of process assessment
by linking the performance of defined processes to the existence
and achievement of specific indicators of performance or achievement.
There are no widely accepted processes specifically for CBD let
alone their assessment. Furthermore, the relationship between
CBD and the way in which components themselves are produced is
also not clear, for example, the impact of object technology used
for components like JavaBeans. Preliminary work has shown that
established SPI (software process improvement) approaches such
as CMMI and SPICE (ISO 15504) are not ideally suited to either
object-oriented development or CBD. This constitutes a significant
gap in technology. Hence the project focuses on the processes
employed for both the
provision (development) of reusable software components, and for
the architecting and assembly of larger systems from acquired
components. Thus issues of re-use and the resulting modifications
to existing processes (making compromises between original requirements
and available components and estimating cost of adaptation) have
to be considered. As a side effect to the main goals, refinements
of ISO 15504 for
object-oriented software development will be proposed and submitted
to the relevant committees. In exploring the relevant processes,
the principles and techniques of process assessment, particularly
as set out in ISO 15504, will be applied. In relation to producing
components, the project
will seek to answer the following questions:
- Are there specific and unique aspects of producing components
that require or support the development of new or modified process
reference models?
- Are the results of the assessment of processes for producing components, of use and value
in developing confidence in the suitability and value of these
software components for use in CBD of systems?
In relation to CBD of systems, the project will seek to answer
the following questions:
- Are there specific and unique aspects of processes for CBD
that require or support the development of new or modified process
reference models specifically for CBD?
- Are
there specific issues involved in the application of assessment
of capability of CBD processes for process improvement or capability
determination?
Successful resolution of these questions will involve the generation
of process assessment models for both component production and
component-based systems development. It may also involve the development
or modification of a process metamodel.
Go Up
3.
technological objectives
Six major technological objectives have been identified for the
project. They are listed below together with the main corresponding
project results and suggested criteria for evaluation:
1. Evaluation: To evaluate current theory and practice
in CBD, using both published and unpublished sources; this
will involve the study of selected industry projects.
2. Unified CBD process
model: Propose a unifying theoretical CBD process model
with reference to best practice and underpin with a process
metamodel.
3. CBD assessment methodology: Develop an industry-validated
CBD process assessment methodology (model, Method, tools).
4.
Component-provider
capability profiles: Define capability profiles for component
providers through the analysis of results of the new CBD process
assessment methodology (see objective 3).
5.
New CBD methodology:
Specify a CBD methodology (management and technical processes,
methods and tools) for ‘architecting’ and assembly of independently
produced components (e.g. COTS) and for component provision
including complex components produced using CBD, as affected
by the previous items above.
6.
Dissemination
and Use Planning: Ensure international acceptance and
take-up of results through dissemination, standards and license
schemes. This will be
augmented by provision of web-based information and appropriate
training material.
[1] This project is called
OOSPICE for reasons to do with the relevance of object technology
to the production of components. Our focus is CBD with an
expectation that process models suited to object-oriented
development will have to be addressed.
[2] J. Herbsleb, D. Zubrow, D. Goldenson,
W. Hyes, M. Paulk: Software Quality and the Capability
Maturity Model. Comm. ACM, vol. 40 (1997), no. 6. pp.
30-45.
[3] W.S. Humphrey: Managing the Software
Process. Addison-Wesley, 1989.
[4] G.A. Cignoni: Software Process
Technologies and the Competitiveness Challenge. R. Conradi
(ed.): Software Process Technology, 7th European
Workshop on Software Process Technology, EWSPT 2000, Springer,
2000, pp. 151-155.
[5] ISO/IEC TR 15504: Information
technology – Software process assessment, International
Standards Organization, 1998.
Go Up
|