Component Based Development
Dr.ir. Gerard M. Wijers Directeur ID Research B.V. Voorzitter Ordina Compas Center
ID Research
1
Agenda Achtergrond – Architecturen – Componenten
Ontwerpprincipes Het CBD Ontwikkelproces CBD methoden en tooling
ID Research
2
CBD Trend Watch “The emergence of Component-Based Development (CBD) is one of the most important events in the evolution of information technology.” “Moving to software components is not just a technology issue, it is actually more about the application architecture, the delivery process and the standards adopted.” “Unfortunately the term component is being applied to just about every form of software artefact.” ID Research
3
Business drivers Tijdsbesparing: time-to-market Inspelen op marktontwikkelingen – IT-ondersteuning van marketing (nieuwe produkten) – Multi-channeling
Kostenbesparing: hergebruik, TCO Onderhoudbaarheid – aanpasbaarheid – kopen i.p.v. maken
ID Research
4
Technische drivers Ontsluiting back-office legacy Multiple front-ends – – – –
Web PC Voice response Call center
Interoperability (service oriented architecture)
ID Research
5
Computing era’s: technologisch perspectief 60
80
Mainframe world
TP monitor C/S 2-tier C/S
ID Research
90
00
Web C/S
Distributed object C/S
Object web
6
Applicatie-architecturen Momenteel Over 1 jaar
Stand-alone Host-terminal Bron: ToolVision98 ID Research
2-tier
n-tier
Distributed
Web based
Definitie component Een component is een afgebakende, logische, herkenbare eenheid van bij elkaar horende gegevens en/of functies die worden ontsloten via gedefinieerde interfaces. Elke component is een black box en is zo min mogelijk gekoppeld met zijn omgeving. – – – –
specificatie ontwerp interface implementatie Bedrijfs Logica
ID Research
8
Eigenschappen van een component Functioneel
Technisch
– Betekenisvol in de business context – Interacteert via interfaces – Loosely coupled – Black box – ‘Clickable’: plug & play
– Distribueerbaar – Zelfstandig operationeel – Meerdere interfaces per component – Implementatie technisch onafhankelijk – Ondersteunt interoperability standaarden (DCOM, CORBA, EJB)
Bedrijfs Logica
ID Research
9
Normalisatie (Gartner) Eerste normaalvorm: coarse-grained – gehele applicatie is component – wrapping van legacy-systemen
Tweede normaalvorm: medium-grained
– blok samenhangende functionaliteit is component – BKR-toets
Derde normaalvorm: fine-grained – RMI, ActiveX – ‘Client’
2003: 70% van nieuwe applicaties component-based (medium-grained)
ID Research
10
CBD processen Informatie Architectuur en Bedrijfsprocesmodellering
Applicatie Ontwikkeling programma en project management contract management
• applicatie-architectuur •ontwerp • component realisatie • creeren, wrappen, abonneren, aanschaffen, wijzigen • assemblage en testen
Component management
• Catalogus • Change management
ID Research
CBD processes and phases Business Modelling
Requirements Definition
Component Modelling
Non-Object Modelling
Object Modelling
Non-Object Implementation
Object Implementation
ID Research
Component Acquisition
Component Reuse
12
Publieke methoden & technieken Contract management – ISPL
Project management – PRINCE2
Life cycle processes – DSDM
IT management
OO/CBD life cycle processes – Scipio – Rational’s Unified Process
OO/CBD modelling – Catalysis – Select Perspective – UML
– ITIL
ID Research
13
Evolutie rond Object en Component modellering
Eerste generatie. Diverse methoden: Coad Yourdon, Booch, Rumbaugh (OMT), Jacobson (Use cases), Wirfs-Brock Integratie pogingen: Fusion (HP), Mainstream objects (Software AG) De facto OO-modelleerstandaard: UML (Booch, Rumbaugh, Jacobson) CBD in ontwikkelstadium
ID Research
14
Wat is UML (Unified Modeling Language)? Een set concepten en notaties voor object modellering Ontwikkeld door een consortium olv Rational Nu een OMG standaard Geadopteerd door Microsoft voor het Repository Information Model
ID Research
UML 1.1 Consortium Digital Equipment Ericsson Hewlett-Packard I-LOGIX IBM Icon Computing Intellicorp MCI Systemhouse Microsoft ObjecTime Oracle Platinum Technology Rational Software Texas Instruments Unisys
15
Wat biedt UML? UML definieert een grote verzameling van concepten en diagrammen voor object modellering Use Case Diagrams Class Diagrams Collaboration Diagrams Sequence Diagrams State Chart Diagrams Activity Diagrams Component Diagrams Deployment Diagrams
ID Research
16
Bekende CBD Methoden als UML extensies Catalysis – Strong focus on • • • •
Component Types Components Rigorous specification of interfaces Refinement
– The bare and original Catalysis is commonly deemed “too-academic”, hence evolved methodologies are promoted by CA, Sterling and others
Select Perspective – – – –
Strong focus on components and business orientation Implements Microsoft Solution Framework Pragmatic support for legacy wrapping, reuse and componentisation Select Enterprise also has good component management facilities
Scipio Consortium – Strong focus on linking business requirements to components ID Research
17
Noodzaak tot combineren van methoden Voorbeeld: – – – –
Catalysis CRC: Class, Responsibilities, Collaborations DSDM: Dynamic Systems Development Method UML: Unified Modeling Language
Way of working
Way of modelling
phasing
DSDM
DSDM
modelling tasks
Catalysis
Catalysis, CRC, UML
ID Research
product, deliverable
modelling techniques 18
OO & CBD tools
• • • •
Im pl i ed BPM & Data Modelling ind wa ivi ter Business du fal (process) al l ap Component Specification co modelling mp plies Data / object modelling on • Component specification en to Build / Buy / Blend neutral including interface ts Repository connection specification Component Development
BPM & Data modelling tools: • IDS-Scheer Aris • COOL:Biz • Popkin System Architect • CA BPwin and ERwin • (Select)
• UML-based (mostly v1.1) • Repository connection
OO Analysis & Design tools: • Rational Rose • Select • COOL:Spex • Popkin System Architect • Riverton How
• Tool categories I-CASE, Enterprise AD, 4GL, 3GL • UML-based input • Often proprietary repository • Tools implement their own implicit vision on components e.g. as a group of classes, or part of a meta model
Test tools Deployment tools
Examples of component dev.: • COOL:Gen • Oracle Developer • Microsoft Visual Studio
Repository / Repositories ID Research
19
Conclusies Meer interesse voor architectuur en ontwerp Van maken naar kopen: ‘het netwerk als repository’ Medium-grained componenten business georiënteerd Componenthergebruik beleggen en inbedden in de processen Opkomst nieuwe methoden/technieken Revival repositories en software configuratie management tools
ID Research
20