Beruflich Dokumente
Kultur Dokumente
Jan Bosch
Professor of Software Engineering
University of Groningen, Netherlands
Jan.Bosch@cs.rug.nl
http://www.cs.rug.nl/~bosch
• introduction
• trends in software engineering
• software product families
– adoption
– maturity model
oftware engineering
• software architecture
– explicit design decisions
• conclusions
Research Challenges in SA and SPFs 2
Software Engineering group
Senior members • Fernando Erazo (2007)
• prof. dr. ir. Jan Bosch • Ivor Bosloper (2007)
• dr. Jos Nijhuis (APr) • Johanneke Siljee (2007)
• dr. Rein Smedinga (APr) Industrial Ph.D. students
• Rob van Ommering
Post-docs (Philips Research)
• dr. Theo Dirk Meijler • Jan Gerben Wijnstra
• dr. Jilles van Gurp (Philips Research)
• dr. Lisette Bakalis • Alessandro Maccari
(Nokia Research/Mobile
Ph.D. students
oftware engineering
Phones)
• Michel Jaring (2004) • Ernst Kesseler (Dutch
• Eelke Folmer (2005) Aerospace Laboratory)
• Sybren Deelstra (2006) • Sylvia Stuurman
• Marco Sinnema (2006) (Open Universiteit)
• Anton Jansen (2006) • Emil Petkov (UK)
software
modeling design architecture variability
decisions explicitly management
EU project CONIPF
feature-based
architectural centric
oftware engineering
Industrial age
360 years
Agrarian age
oftware engineering
25 years
13 years
oftware engineering
10 years
5 years
technologies
trends (proactive)
Philips
per product
100
oftware engineering
1000
10
GSM 900
GSM 1900
GSM 900/1800
oftware engineering
GSM 900/1900
GSM 900/1800/1900
external
internal
oftware engineering
...
mechanical parts
req.
SW
oftware engineering
product
post fielding upgrades
license key driven conf.
3rd part software
testing T C F
oftware engineering
architectural
T C F
configuration
• introduction
• trends in software engineering
• software product families
– adoption
– maturity model
oftware engineering
• software architecture
– explicit design decisions
• conclusions
Research Challenges in SA and SPFs 23
Adopting an SPF
• requires changes that cross-cut the
organization, i.e. BAPO
• potential problems:
– mismatch between shared components and
product needs
– design erosion of shared components
– complex interface
oftware engineering
100%
reduced value due
to inefficiencies
n
tio
la
re
ed
m
oftware engineering
su
as
actual
relation
product-specific
100% requirements covered
old, generic
components component
centric
only
common mixed
component features responsibility
with plug-in
virtual
team
encompassing
oftware engineering
"barter"
shared component component
component unit
scoping
taxation
organization
licensing/
royalty
funding
understood
– little time for pay-back on product-specific
components, cost of implementing superset of
features
Research Challenges in SA and SPFs 27
Feature Selection
• Component unit
– clear responsibilities, clear interfaces
for decision making
– “local optimization”, perfectionism
oftware engineering
• Licensing/royalty
– market pressures, COTS replacement
easily identified
– component needs to be mature, if core
competence, still no market pressure
oftware engineering
• Encompassing component
– efficient development in case of
complex QAs
– larger component team
oftware engineering
– Funding: “barter”
– Shared component scoping: only
common features
• Expanding scope
– Feature selection: existing, but
evolving, components
– Architecture harmonisation: iterative
product architecture harmonisation
– Organization: virtual component team
oftware engineering
– Funding: taxation
– Shared component scoping: complete
components with plug-in capability
• Increasing “maturity”
– Feature selection: all components
– Architecture harmonisation:
revolutionary architecture adoption
– Organization: component unit
– Funding: licensing/royalty
oftware engineering
responsibility component
for product teams
teams
Funding “Barter” Taxation Licensing
Shared Only common Complete Encompassing
component features components component
scoping with plug-ins
Research Challenges in SA and SPFs 40
Overview
• introduction
• trends in software engineering
• software product families
– adoption
– maturity model
oftware engineering
• software architecture
– explicit design decisions
• conclusions
Research Challenges in SA and SPFs 41
SPF Assessment Framework
FOCUS
Assess the maturity of an organization regarding SPFs: 4 aspects
• Business
• Architecture
• Process
• Organization
and
Frank van der Linden, Jan Bosch, Erik Kamsties, Kari Känsälä,
Lech Krzanik, Henk Obbink A Maturity Framework for Software
Product Families Evaluation, Product Family Engineering
Workshop (PFE5), 2003.
• Reactive
• Awareness
• Extrapolate
• Proactive
• Strategic
Research Challenges in SA and SPFs 43
Aspect - Architecture
Architectural “Maturity” Levels
independent
products
standardized
infrastructure
platform
product
oftware engineering
population
software
product
line
program of
product lines
configurable
product base
program of configurable
product populations
software product families product
oftware engineering
• Domain: emerging
• Software variability management: absent
• Example: most SMEs and several large
companies
Research Challenges in SA and SPFs 46
Standardized Infrastructure
• description
– operating system
– database
– GUI
– etc.
some additional proprietary glue code
oftware engineering
might be present
P D
• description:
– functionality common to all products in
the product family is captured
– infrastructure is typically also included
oftware engineering
P D
• Domain: mature
• Software variability management:
managed at platform level
• Example: Symbian OS
Research Challenges in SA and SPFs 50
Software Product Family
• description: domain assets capture
functionality common to several or
most products
product family component set
architecture
external
internal
oftware engineering
...
req.
SW
product
oftware engineering
domain maturity
(stability)
high PL CPB
medium example
oftware engineering
CPB
SPL
PL
oftware engineering
SI
• Level 1: Initial
• Level 2: Managed
• Level 3: Defined
• Level 4: Quantitatively Managed
• Level 5: Optimizing
oftware engineering
product populations
infrastructure infrastructure infrastructure
component component component
organization
scope 1
shared
artefacts
PA PB PC P P
production-site
configuration
oftware engineering
installation-time
configuration
run-time
configuration
RT P RT P
scope 1.1.1
• introduction
• trends in software engineering
• software product families
– adoption
– maturity model
oftware engineering
• software architecture
– explicit design decisions
• conclusions
Research Challenges in SA and SPFs 62
Architecture-centric SE
software engineering community has
evolved through
• project-centric SE
• product-centric SE
• architecture-centric SE
oftware engineering
• quality requirements
Quality requirements can be categorised into
development QRs, e.g. maintainability, and
operational QRs, e.g. performance and reliability
• run-time
– dynamic software architectures, post-fielding upgrades,
dynamic reorganization, etc.
conceptual
process
development
run-time aspect
(software)
design
assessment
evolution
technology
Research Challenges in SA and SPFs 66
Software Architecture Use
– component development
– system evolution
• functional requirements
• quality requirements
Scheduler 1. restructuring
2. design rule:
operation tick()
Input
Input Ouput
3. design rule: register Deviation
at scheduler on creation
Input Deviation Ouput
oftware engineering
Input Ouput
4. design constraint:
tick() exec. time < X ms
Input 5. rationale: least resource consuming
mechanism to achieve concurrency
Input
+
ADDn
DD4 DD8
oftware engineering
DD1
DD1 DD2
DD2 DD3
DD3 DD5
DD2 DD4
DD5 DD6
DD6 DD7
DD7
aggregation
oftware engineering
d.update(self);
proceed;
end;
end;
fragment 3
architectures c is-a subject with layers
aMS : MeasurementSystemArchitecture a: Adapter(accept getFrame as
where observedMethod);
c is-a sensor with layers end;
a : Adapter(accept value as getFrame); ui is-a observer;
fragment 1
end; end;
domain comps.
tr is-a trigger; components
l is-a actuator; c : Camera;
bci is-a measurement-item with layers tr : LightContactTrigger
sensor : Acquaintance(c); l : Lever;
actuator : Acquaintance(l); bci : BeerCanItem;
oftware engineering
end; ui : UserInterface;
end; end; // MeasurementSystem-example
fragment 2
o1 : Observer where
tr is-a subject with layers
a: Adapter(accept trigger as
observedMethod);
end;
ui is-a observer,
end;
• introduction
• trends in software engineering
• software product families
– adoption
– maturity model
oftware engineering
• software architecture
– explicit design decisions
• conclusions
Research Challenges in SA and SPFs 81
oftware engineering