viewpoints in software architectureist/wsr2004/slides/koschke.pdf · 2004. 5. 26. ·...
TRANSCRIPT
Software-Architektur und SichtenSymphony
Viewpoints in Software Architecture
Arie van Deursen1 Christine Hofmeister2 Rainer Koschke3
Leon Moonen1 Claudio Riva4
1CWI & Delft Univ. of Technology
2Institut fur SoftwaretechnologieUniversitat Stuttgart
3Lehigh University
4Nokia Research
Workshop Software-Reengineering, Bad Honnef, 4. Mai 2004
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
Software-Architektur
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
Was ist Software-Architektur?
Definition
Software architecture is the organizational structure of a system orcomponent [IEEE 610.12-1990].
Definition
Software architecture is the fundamental organization of a systemembodied in its
components,
their relationships to each other and to the environment,
and the principles guiding its design and evolution
[IEEE Recommended Practice for Architectural Description P1471-2000].
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
Was ist Software-Architektur?
Definition
Software architecture is the organizational structure of a system orcomponent [IEEE 610.12-1990].
Definition
Software architecture is the fundamental organization of a systemembodied in its
components,
their relationships to each other and to the environment,
and the principles guiding its design and evolution
[IEEE Recommended Practice for Architectural Description P1471-2000].
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
Views und Viewpoints
Definition
A view is a representation of a whole system from theperspective of a set of concerns [IEEE P1471-2000].
A viewpoint is a specification of the conventions forconstructing and using a view [IEEE P1471-2000].
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
Views und Viewpoints
Definition
A view is a representation of a whole system from theperspective of a set of concerns [IEEE P1471-2000].
A viewpoint is a specification of the conventions forconstructing and using a view [IEEE P1471-2000].
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
Beispiel: Module-Viewpoint von Hofmeister et al.
Module (layer) A uses
Module
Interface
Layer
module (layer) B whenA requires an interfacethat B provides
Subsystem
use
0..1
require *
*
*
require
* provide
*
* * * * *
0..1
0..1
use *
* *
* assigned−to
*
cont
ain
provide
contain
0..1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
Beispiel: Module-View eines 1,5 MLOC-Systems
md_ctg_libra
file
wga_cal
file
md_ctg
file
md_mibus
file
md_common
file
md_wga_d
file
md_cdadc
file
file
md_cseq
file
md_casc
file
fw_mx_cal_agent
file
md_wde_d
file
md_mibus_libra
file md_capsc
filemd_wge_wde_a
file
md_wde_a
file
fw_mx_cal_fw_cmd
file
aacu
file
md_wga_a
file
fw_mx_cal_util
file
wga_cal_apply
file
wga_cal_dc
file
wga_cal_error
file
wga_init
file
ssmnproc
file
ssmgr
file
ssmproc
file
ssmslot
file
ssmtask
file
mdtask
file
insttask
file
rtask
file
ssm_ew_proc
file
wga_cmd_b
filewga_setup_b
file
wde_cal
file
wg_util
file
wga_smem
file
acd_clock_dom_set
file
acd_clock_dom
file
fw_acd_clock_dom
file
acd_util
fileacd_clock_dom_resource
file
wgf_cmd_r
file
wgf_cmd_b
file
md_wgf
filewgf_memt
file
wgf_rmem
file
wgf_setup_b
file
wgf_cal_apply
file
wgf_init
file
wgf_cal
file wgf_cal_util
file
wgf_cal_error
file
aacu_relay_ctrl
file
aacu_reg_ctrl
file
aacu_ctrl_hw
file
aacu_path_ctrl
file
aacu_eeprom
file
md_wdd_a
file
md_rcg
filemd_wda_d
file
md_wda_a
file
md_spa_a
filemd_wgd_a
file
md_spb_a
file
md_tia
file
md_wdb_a
filemd_wgb_a
file
md_wgc
file
md_wge_a
file
wde_cal_timing
file
wde_cal_error
file
md_cseq_libra
file
wde_cal_dc
file
wde_cal_apply
file
wde_init
file
wde_cmd_b
file
wde_setup_b
file
ssm_async_wait
file
wde_smem
file
wde_util
file
fw_mx_cal_timing
file
tia_wrap
file
wgc_wrap
file
spb_cal_timing
file
spb_cal_error
file
spb_cal
filemd_spb_d
filemd_ctg_para
filewge_cal_timing
file
wge_cal_error
file
wge_cal
file
md_wge_d
file
wge_cal_dc
file
wge_init
file
wge_cmd_b
file
wge_setup_b
filewge_cal_apply
file
wge_util
file
wge_smem
file
spb_cal_dc
file
spb_cal_apply
file spb_init
file
spb_cmd_b
file
spb_setup_b
file
spb_smem
file
spb_util
file
wga_cal_timing
file
wga_cmd_r
file
wdd_cal
file
md_wdd_d
filewdd_init
file
wdd_cmd_b
file
wdd_setup_b
file
wdd_cal_apply
file
wdd_smem
file
wd_util
file
wdd_cal_error
file
wdd_cal_dc
file
wdd_cal_sm
file
wdd_cal_timing
file
wda_cal_apply
file
wda_cal
file
wda_init
file
wda_cmd_b
file
wda_smem
file
wda_setup_b
file
wda_cal_dc
file
wda_cal_error
file
wdd_cmd_r
file
spa_cal
file
md_spa_d
file
md_spa_wdb_d
file
spa_cal_apply
file
spa_cal_dc
file
spa_cal_error
file
spa_init
file
spa_cmd_b
file
spa_setup_b
file
spa_smem
file
spa_util
file
spa_cal_timing
file
spa_cmd_r
file
wgd_cal
file
md_wgd_d
file
wgd_cal_apply
file
wgd_cal_dc
file
wgd_cal_error
file
wgd_cal_timing
file
wgd_init
file
wgd_cmd_b
file
wgd_setup_b
file
wgd_smem
file
wgd_cmd_r
file
acd_init_clock_dom
file
wgf_cal_dc
file
wgf_cal_timing
file
md_cdadcps
file
md_wdb_d
file
md_wgb_d
file
wgb_cal
file
wgb_cal_apply
file
wgb_cal_dc
filewgb_cal_error
file
wgb_cal_timing
file
wgb_init
file
wgb_cmd_b
file
wgb_setup_b
file
wgb_smem
filewgb_cmd_r
file
wde_cmd_r
file
wdc
file
swa_cmd_b
file
swa_init
fileswa_util
file
swa_hw_acc
file
swa_virtual_hw
file
swa_setup_b
file
swa_raw
file
swa_cmd_r
file
wdb_cal
filewdb_cal_apply
file
wdb_cal_dc
file
wdb_cal_error
file
wdb_init
file
wdb_cmd_b
file
wdb_setup_b
file
wdb_smem
file
wdb_cal_timing
file
wdb_cmd_r
file
tia_cal
file
tia_cal_apply
file
tia_cal_dc
file
tia_cal_error
file
tia_init
file
tia_cal_timing
file
tia_cmd_b
file
tia_setup_b
file
tia_cmd_r
file
hpib_ssm
file
init_ssm
file
wda_cal_timing
filewda_cmd_r
file
eaa_pga_cal
file
eaa_pga_cmd
file
eaa_pga_pattern
file
daa_cmd
filedaa_meas
file
eaa_pga_init
file
wd_cmd_r
file
spb_cmd_r
file
wgc_cal
file
wgc_util
file
wgc_init
file
wgc_cmd_b
file
wgc_setup_b
file
wgc_file
file
wgc_cal_apply
file
wgc_smem
file
wgc_cal_error
file
wgc_cal_timing
file
wgc_cmd_r
file
daa_cal
file
daa_init
file
wge_cmd_r
file
wg_cmd_b
file
wg_cmd_r
file
fw_mx_cal_equations
file
pdb_ana_wga
file
machine
file
pdb_ana
file
pdb
file
pdb_ana_wdd
file
scp
file
pdb_ana_wgd
file
pdb_ana_spa
file
fw_ana_clock_
file
fw_clock_dom_types
file
butil
file
pdb_ana_wgf
file
mx_ext_com
file
pdb_ana_wgb
file
pdb_ana_wde
file
fw_mx_wde
file
llt_timer
file
md_wde
file
fw_mx_cal
file
pdb_ana_wdb
file
global_dbase
file
sa_ipc
file
ei_types
file
pdb_ana_tia
file
fw_types
file
mem_mgt
file
clock_types
file
pdb_ana_wda
filepdb_ana_wgc
file
fw_mx_wg
file
ssm
file
fw_mx_wgc
file
pdb_ana_spb
file
pdb_ana_wge
file
fw_mx_wge
file
pcm_digital_io_board_list
file
pdb_cal
file
multi_site
file
eq_types
file
wft_types
file
dvc_types
file
s_ptab
file
pac
file
int64
file
fw_mxds_list
file
ssf_types
file
pdb_ana_clock
file
hw_acc_mibus
file
storage
file
fw_mx
file
eds
file
seq_basis
file
hw_acc_cseq
file
hw_acc_wga
file
dc_cal
file
largefile
file
pcm_clock_board_list
file
fw_mxds
file
pcm_register64_sequence
file
pcm_instruction64_sequence
file
pcm_definitions
filepcm_digital_io_channel_list
filepcm_external_clock_list
file
pcm_cal_status_info
file
seq_cntrl
file
pdi_channel_version_map
file
dc_tf
file
hw_acc_wde
file
sqgb_public
file
result
file
pdivec_definitions
file
pdivec_representation
file
level
file
routing
file
fw_mx_wga
file
brst
file
hw_acc_wgf
file
mx_msi
file
pdb_ana_eaa
file
pdb_ana_pga
file
hw_acc_wda
file
hw_acc_mibus_libra
file
fw_mx_wd
file
mx_ext_dts
file
hw_acc_ctg_para
file
fw_mx_spb
file
hw_acc_wge
file
hw_acc_wdd
file
hw_acc_spa
file
fw_mx_spa
file
hw_acc_wgd
file
fw_mx_wgd
file
hw_acc_wgb
file
fw_mx_wgb
file
vec_edit
file
physdev
file
pdb_ana_swa
file
pdb_ana_cm
file
pdb_ana_daa
file
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Viele Architekturrekonstruktionstechniken
Tilley et al. (1996): Reverse-Engineering-Techniken folgendem Muster:
1. Data Gathering2. Knowledge Inference3. Information Presentation
Techniken sind spezifisch fur einen Viewpoint, keineubergreifende Prozessbeschreibung
Keine Katalogisierung der Techniken bzgl. Viewpoints
Unser Beitrag: Symphony
Rekonstruktionsprozess mit Views und expliziten ViewpointsKonzeptueller Rahmen fur Forschung→ Katalogisierung der Techniken/Viewpoints
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Viele Architekturrekonstruktionstechniken
Tilley et al. (1996): Reverse-Engineering-Techniken folgendem Muster:
1. Data Gathering2. Knowledge Inference3. Information Presentation
Techniken sind spezifisch fur einen Viewpoint, keineubergreifende Prozessbeschreibung
Keine Katalogisierung der Techniken bzgl. Viewpoints
Unser Beitrag: Symphony
Rekonstruktionsprozess mit Views und expliziten ViewpointsKonzeptueller Rahmen fur Forschung→ Katalogisierung der Techniken/Viewpoints
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Viele Architekturrekonstruktionstechniken
Tilley et al. (1996): Reverse-Engineering-Techniken folgendem Muster:
1. Data Gathering2. Knowledge Inference3. Information Presentation
Techniken sind spezifisch fur einen Viewpoint, keineubergreifende Prozessbeschreibung
Keine Katalogisierung der Techniken bzgl. Viewpoints
Unser Beitrag: Symphony
Rekonstruktionsprozess mit Views und expliziten ViewpointsKonzeptueller Rahmen fur Forschung→ Katalogisierung der Techniken/Viewpoints
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Viele Architekturrekonstruktionstechniken
Tilley et al. (1996): Reverse-Engineering-Techniken folgendem Muster:
1. Data Gathering2. Knowledge Inference3. Information Presentation
Techniken sind spezifisch fur einen Viewpoint, keineubergreifende Prozessbeschreibung
Keine Katalogisierung der Techniken bzgl. Viewpoints
Unser Beitrag: Symphony
Rekonstruktionsprozess mit Views und expliziten ViewpointsKonzeptueller Rahmen fur Forschung→ Katalogisierung der Techniken/Viewpoints
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Symphony: Ebenen
Entwurf des Rekonstruktionsprozess
Ausführung des Rekonstruktionsprozess
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Symphony: Ausfuhrungsebene
SourceViews
TargetViews
ViewsArchitectural
stakeholders
Data
reconstructor
RepositoryDataGathering
actor in
data flow
KnowledgeInference
TargetSource
InformationInterpretation
Map
Views Views
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Symphony: Entwurfs- und Ausfuhrungsebene
Target ViewpointsProblem Statement
process designer reconstructor
Source Viewpoints
stakeholders
actor in
data flowInformationInterpretation
Target ViewpointsMapping RulesProblem
StatementProblemElicitation
ConceptDetermination
Source Viewpoints
KnowledgeInference
DataGathering
Library ofViewpoints
Refinement
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Konzeptuelles Modell von Symphony
mapping rules
1 1 specifies
{OR} source viewpoint
1 1 specifies
target viewpoint
1 1 1
maps to
1 1
specifies
compared to
viewpoint for hypothetical
view 1 1
1 1 extracted from
1 1 specifies
map * *
{OR}
implementation fact
source view
*
* * target view
1 1 1
abstracted from
hypothesized architectural fact
* * hypothetical
view
1 1
1 1 1
*
* *
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architekturrekonstruktion als Folge von Sichten
convergencesdivergencesabsences
reflexion model
hypotheticalmodules
concretemodules+ deps
mapping
P1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architekturrekonstruktion als Folge von Sichten
convergencesdivergencesabsences
reflexion model
hypotheticalmodules
concretemodules+ deps
mapping
P1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architekturrekonstruktion als Folge von Sichten
systemdependencygraph
clustering
P2
convergencesdivergencesabsences
reflexion model
hypotheticalmodules
concretemodules+ deps
mapping
P1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architekturrekonstruktion als Folge von Sichten
sourceanalysis
sourcetext
P5
systemdependencygraph
clustering
P2
convergencesdivergencesabsences
reflexion model
hypotheticalmodules
concretemodules+ deps
mapping
P1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architekturrekonstruktion als Folge von Sichten
/ reference architecturesdomain concepts
domain analysis P6
sourceanalysis
sourcetext
P5
systemdependencygraph
clustering
P2
convergencesdivergencesabsences
reflexion model
hypotheticalmodules
concretemodules+ deps
mapping
P1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architekturrekonstruktion als Folge von Sichten
documentation/ interviews
documentationanalysis
P7
/ reference architecturesdomain concepts
domain analysis P6
sourceanalysis
sourcetext
P5
systemdependencygraph
clustering
P2
convergencesdivergencesabsences
reflexion model
hypotheticalmodules
concretemodules+ deps
mapping
P1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architekturrekonstruktion als Folge von Sichten
P4documentation/ interviews
documentationanalysis
P7
/ reference architecturesdomain concepts
domain analysis P6
sourceanalysis
sourcetext
P5
systemdependencygraph
clustering
P2
convergencesdivergencesabsences
reflexion model
hypotheticalmodules
concretemodules+ deps
mapping
P1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architekturrekonstruktion als Folge von Sichten
namecomparison
namesP3
P4documentation/ interviews
documentationanalysis
P7
/ reference architecturesdomain concepts
domain analysis P6
sourceanalysis
sourcetext
P5
systemdependencygraph
clustering
P2
convergencesdivergencesabsences
reflexion model
hypotheticalmodules
concretemodules+ deps
mapping
P1
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architektursichten im Forward-Engineering
[Zach
man’8
7]
[Per
ry&
Wolfe’
92]
[Kru
chte
n’9
5]
[Hofm
eist
er’9
5]
[TA
FIM
’95]
[Dru
ffel
’94]
[Em
ery’
96]
[Sow
a’9
2]
[Soft
ech’7
8]
[Mor
iconi’94]
[IEEE1471]
behavioral, dynamic,operational
× × × ×
data, data flow,information
× × × ×
development,maintenance
× ×
distributed, network,physical
× × × × ×
functional, activity × × × ×
logical, conceptual × × × ×
decomposition,module, static
× ×
code ×
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architektursichten im Reverse-Engineering
Literaturstudie:
IEEE
WCRE 1996 - 2000ICSM 1996 - 2000IWPC 1998 - 2000CSMR 1997 - 2000Trans. SE 1995 - 2001
ACM
ICSE 1987 - 2000PASTE 1998 - 1999TOSEM 1992 - 2001SIGSOFT 1990 - 2000
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Architektursichten im Reverse-Engineering
Viewpoints
4 2 6 8
3 3 4 1
26
5 5 1
F u n d
a m e n
t a l s
E v a
l u a t
i o n s
E x p
e r i e
n c e s
M
u l t i p
l e v
i e w s
G l o b a
l c o n
t r o l v
i e w p o
i n t
D e s i g
n p a
t t e r n
v i e
w p o i n
t
O b j e c
t m o d
e l v
i e w p o
i n t
U s e c
a s e v
i e w p o
i n t
S t a t i c
d e c
o m p o
s i t i o
n v i
e w p o
i n t
C o m p o
n e n t
/ C o n
n e c t o
r v i e
w p o i n
t
F i n i
t e s
t a t e
v i e w
p o i n
t
P r o t o
c o l v
i e w p o
i n t
F e a t
u r e
v i e w
p o i n
t
I n t e
r f a c e
v i e
w p o i n
t
8 8
Related areas
General
4
T r a n
s f o r
m a t
i o n
3
V i s u a
l i z a t
i o n &
B r o
w i n g
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Symphonys Konsequenzen fur die Forschung/Praxis
Gliederung der Techniken/Methoden in Aktivitaten (DataGathering, Knowledge Inference, Information Interpretation)
Views bilden den Informationsfluss zwischen Aktivitaten
Beschreibung der Techniken/Methoden durch Viewpoints
Viewpoints beschreiben die Schnittstelle zwischen Aktivitaten(“Prozessinteroperabilitat”)Katalogisierung der Techniken/Methoden in die adressiertenViewpoints
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture
Software-Architektur und SichtenSymphony
AusfuhrungsebeneEntwurfsebeneViewpoint-Katalog
Symphonys Konsequenzen fur die Forschung/Praxis
Gliederung der Techniken/Methoden in Aktivitaten (DataGathering, Knowledge Inference, Information Interpretation)
Views bilden den Informationsfluss zwischen Aktivitaten
Beschreibung der Techniken/Methoden durch Viewpoints
Viewpoints beschreiben die Schnittstelle zwischen Aktivitaten(“Prozessinteroperabilitat”)Katalogisierung der Techniken/Methoden in die adressiertenViewpoints
van Deursen, Hofmeister, Koschke, Moonen, Riva Viewpoints in Software Architecture