SDW Primer

Lieven Smits
Alle rechten voorbehouden aan de auteur.

Inhoud


Beperking

Dit is een introductie tot het gebruik van SDW (System Development Workbench), een Upper CASE tool van Cap Gemini. Oorspronkelijk heb ik deze tekst geschreven als aanvulling bij mijn cursussen aan de EHSAL. Sommige delen uit de tekst gaan er nog van uit dat de lezer beschikt over het locale netwerk van de EHSAL, waarvoor excuses. Ik hoop dat de tekst niettemin enig nut heeft voor "buitenstaanders".

Deze tekst is géén algemene handleiding voor SDW, maar beschrijft slechts het elementaire gebruik van SDW om enkele technieken voor systeemontwerp efficiënt toe te passen in het kader van een reëel ontwikkelingstraject. Van de tientallen modules waaruit SDW bestaat, komen dus slechts "Data modelling" (gegevenmodellering) en "Function Analysis" (procesmodellering) aan bod, en dan nog in beperkte mate.

Voorbereiding

Instellingen

Creëer in je lokale systeemdirectory (C:\Winnt) een bestand sdw.ini met de volgende inhoud:

[SDWenvironment]
sdwdir=I:\SDW\DATA
sdwtemp=C:\TEMP
sdwlibws=I:\SDW\LIBWS
sdwlib=L:\SDW\LIB
sdwmodel=L:\SDW\MODEL
of download dit bestand, maar dan wel onder de juiste naam (sdw.ini) op de juiste plaats (C:\Winnt) !

Maak een snelkoppeling naar het bestand L:\Sdw\Bin\Wsdw.exe in je Startup Menu.

Maak op je persoonlijke I: schijf een folder (map) met de naam Sdw en twee subfolders (deelmappen) Data en Libws. Kopieer het bestand P:\Sdw\Sdwlib\Sdw.cfg naar de zopas gecreëerde I:\Sdw\Libws.

Inloggen

Selecteer de entry voor SDW in je Startup Menu. Je moet nu een dialoogvenster krijgen waarin je login-naam en wachtwoord gevraagd wordt. Beiden zullen je zijn meegedeeld door de docent. Indien je niet officieel bent ingeschreven voor een EHSAL-cursus die van SDW gebruik maakt, en je meent toch recht te hebben op toegang, wend je dan tot de dienst informatica. SDW is geïnstalleerd door mevrouw F. Dreesen.

Login id: Password:

Als je login-naam en wachtwoord correct zijn, kom je in een menu terecht waar alle geïnstalleerde modules van SDW staan opgesomd.

startscherm

Eerst moet je het item 'select system' dubbelklikken en de naam specifiëren van het project waaraan je werkt. Als je vroeger al een projectnaam had ingevoerd, kan je die nu opnieuw selecteren.

Select system

Een gegevensmodel maken

Entiteiten en relaties tekenen

Dubbelklik het item 'Data Modelling'. Het hoofdscherm van de module Data Modelling heeft maar één knop, die met het diagram-icoon; die knop druk je dus best in.

hoofdscherm Data Modelling

Je moet nu een naam geven aan het Entity-Relationship Diagram dat je gaat tekenen. In eenzelfde project kunnen verscheidene ERDs worden getekend:

nieuw diagram: voorraadbeheer

Als je vroeger al een ERD had gedefinieerd, kan je dat nu ook selecteren.

Het witte oppervlak dat nu verschijnt, is het blad waarop het gegevensstructuurdiagram zal verschijnen.

invoerscherm nieuw ERD

De twee belangrijkste elementen van een gegevensstructuurdiagram zijn

SDW noemt dit de twee types componenten die in een entity-relationship diagram kunnen optreden. Elke component wordt geïdentificeerd door een (binnen zijn type) unieke naam. De catalogus van alle componenten heet systeemencyclopedie. Eenzelfde component kan zich in verschillende diagrammen op verschillende manieren manifesteren: zo kan een entiteit uit een ERD terugkeren als een datastore in een DFD.

Klik met de rechtermuisknop op het witte tekenblad. Je krijgt een "menu" met zes verschillende knoppen te zien. Dit zijn hun functies:

snelmenu leeg diagram

Klik op de knop "teken entiteit". Er verschijnt een dialoog waarin je de naam van de entiteit typt, bijvoorbeeld "leverancier". Druk vervolgens op <ENTER>. De entiteit leverancier wordt nu met het bekende rechthoekige symbool voorgesteld als enige element van het diagram.

entiteit leverancier

Herhaal deze procedure om een entiteit onderdeel te creëren.

Om een relatie te tekenen, rechtsklik je op ëën van de deelnemende entiteiten, bijvoorbeeld op "leverancier". Het popup-menu bevat nu acht commando-buttons:

snelmenu entiteit

Klik op de knop "teken relatie". Er verschijnt een dialoog waarin je de naam van de relatie typt, bijvoorbeeld VOLGT. Druk vervolgens op <ENTER>. Er verschijnt een lijn die begint in de geselecteerde entiteit, en waarvan het andere eindpunt aan de muisaanwijzer gekoppeld is. Beweeg de muisaanwijzer naar de andere entiteit (VAK) en klik. Er wordt nu een relatie gelegd tussen beide entiteiten: "student volgt vak".

leverancier levert onderdeel

Als je het tweede uiteinde van de relatie op een vrij gedeelte van het blad had gelegd (in plaats van bij de bestaande entiteit VAK), dan zou een klein knoppenmenuutje je de keus geven tussen:

Vlak na haar creatie is een relatie altijd binair (twee deelnemende entiteiten) één op één (beperkte cardinaliteit in beide richtingen) en verplicht-verplicht (optionaliteit in geen van beide richtingen).

Je kan nu de relatielijn rechtsklikken om allerlei aanpassingen uit te voeren aan de relatie zelf. Er verschijnen maar liefst tien verschillende knoppen:

snelmenu relatie

Gebruik de eerste twee commando's telkens tweemaal, één keer bij elk uiteinde van de relatielijn, om aan te geven dat de relatie "leverancier levert onderdeel" een tweemaal optionele veel-op-veel-relatie is. SDW tekent het 0-symbool (voor "optioneel") en het kraaiepoot-symbool (voor "veel") zoals bij James Martin [Mart]. De streepjessymbolen voor "verplicht" resp. "één" worden echter weggelaten.

cardinaliteit en optionaliteit

Grafische manipulaties

Enkele commando's uit de snelmenu's voor entiteiten en relaties hebben geen inhoudelijke functie, maar dienen slechts om het diagram mooier of overzichtelijker te maken.

Relatielijnen breken

Soms kan het verwarrend zijn als alle relaties in een diagram worden voorgesteld door rechte lijnstukken tussen de betrokken entiteiten. Je kan sommige relaties weergeven met gebroken lijnen door het toevoegen van verbindingspunten. Rechtsklik de relatielijn en kies de vierde knop, "Add link point". Als je nu met de linkermuisknop een punt op het blanco gedeelte van het diagram aanklikt, dan wordt de relatielijn omgeleid via dat punt. In onderstaand diagram hebben we vier link points toegevoegd aan de lijn die de relatie "levert" modelleert.
gebroken lijn

Rechthoek vergroten/verkleinen

Door rechts te klikken op een entiteit kun je via de vierde knop, "Modify size", de afmetingen van de rechthoek aanpassen. Na het indrukken van de knop krijg je een enigszins verwarrend beeld
tijdens het vergroten
totdat je met de linkermuisknop klikt: dat wordt de nieuwe plaats van een hoekpunt van de rechthoek. Enige oefening met deze slecht geconcipieerde interface is nodig om ermee te kunnen werken.
na het vergroten

Subtypes/supertypes (IS EEN)

Relaties van het type IS EEN werden in de cursus TSO voorgesteld door middel van een pijl van het subtype naar het supertype. SDW beschouwt dergelijke koppeling niet als een relatie, maar stelt ze voor door de rechthoek van het subtype binnen die van het supertype te tekenen.

Ga als volgt te werk om een IS EEN relatie aan te brengen:

bevoorrecht leverancier als
subtype van leverancier
Deze voorstellingswijze wijkt sterk af van de pijl-notatie die de meeste handboeken (inclusief de cursus gegevensmodellen, hoofdstuk 4, paragraaf 4.10.3) hanteren voor IS EEN-relaties.

Ternaire en hogere relaties

De relaties die we tekenen, zijn per default binair. Dat wil zeggen dat ze twee entiteiten met elkaar verbinden. Om bij een relatie nog een derde (vierde, vijfde, ...) entiteit te betrekken, gebruiken we de twaalfde knop Draw n-ary DM relationship uit het relatie-snelmenu. We krijgen nu de kans om de positie van de extra entiteit aan te geven met een muisklik, waarna twee knoppen verschijnen:

knoppen: DM entity/Cancel action

De eerste knop, met de opgestoken hand ("Cancel action") maakt de creatie van de extra entiteit ongedaan. Klik op de tweede knop ("DM entity") en typ of selecteer de naam van de derde entiteit. Het resultaat ziet er als volgt uit.

derde entiteit: contract

Dit procédé kan vanzelfsprekend herhaald worden om een relatie tussen vier en meer entiteiten te leggen.

Attributen

De attributen van een entiteit kan je invoeren via de zevende knop "SE DM entity", die het verband legt tussen een entiteit in een ERD en diezelfde entiteit in de systeemencyclopedie. Specifieer dat je de "Decomposition" van de entiteit wil maken

BROWSE/Decomposition/Description/Has triggers

en voer één voor één de namen van de attributen in.

invoerscherm attributen

Rapportering: ERD afdrukken

Je kan het diagram afdrukken met de zevende knop "Print diagram" in de werkbalk bovenaan het venster. Naast de door jou getekende elementen van het diagram, wordt ook nog een hoofding afgedrukt met de volgende informatie:

voorbeeld ERD-hoofding

De meeste velden zijn vast of worden automatisch door SDW ingevuld; de gebruiker kan echter zelf de inhoud van Author (auteur) en Version (versie) bepalen.

Een procesmodel maken

Inleiding

SDW ondersteunt procesmodellering door middel van Data Flow Diagrams (DFD) of gegevensstroomdiagrammen. Voor de beschrijving van dergelijke diagrammen en de definitie van de erin gebruikte symbolen verwijzen we naar de cursus procesmodellen. In de cursus procesmodellen is sprake van twee verschillende stellen grafische symbolen, nl. enerzijds de oorspronkelijke conventie van Yourdon en DeMarco, anderzijds de recentere tekenwijze van Gane en Sarson. Het is het tweede stel symbolen, dat van Gane/Sarson, dat door SDW wordt ondersteund, met een lichte variant voor de externe actoren:

symbolen Gane/Sarson

Je kan een gegevensstroomdiagram opbouwen via de SDW-module Function Analysis. We gaan in deze tekst niet in op de verdere mogelijkheden van deze module om events, control processes en control flows weer te geven.

Processen, gegevensstromen, archieven en externe actoren tekenen

Na het inloggen en selecteren van een systeem (zie paragraaf voorbereiding) kies je in het hoofdmenu de module Function Analysis door erop te dubbelklikken. Er verschijnt een dialoog met ofwel twee drukknoppen, ofwel slechts één; in elk geval moet je de knop "Diagram" indrukken. Na het specifiëren van de naam van het diagram (keuze van een bestaand diagram of intypen van een nieuwe naam) verschijnt een leeg diagram.

knop 'Diagram'

Rechtsklikken op het lege gedeelte van het diagram levert een snelmenu met acht functieknoppen:

snelmenu

In feite is op elk moment slechts een deel van de gehele tekening zichtbaar. De scroll-knop laat toe, het zichtbare gedeelte over de tekening te verschuiven. Je kan deze functie ook gebruiken om in de diagram-hoofding de naam van de auteur (Author) en het versienummer (Version) in te vullen.

invullen van auteur en/of versienummer

De belangrijkste functieknoppen zijn natuurlijk degene die toelaten, de vier basiselementen van een DFD te tekenen. Teken achtereenvolgens een externe actor Klant, een proces Orderverwerking en een datastroom Bestelling die van de eerste naar de tweede loopt. Na het tekenen van ieder element wordt je gevraagd, de naam van het desbetreffende element in te typen.

tekenen van een externe actor, een stroom en een proces

SDW nummert de processen automatisch. Je kan het nummer van een proces handmatig wijzigen door na een rechtsklik (op het processymbool) de achtste functieknop in te drukken.

Gebroken lijnen

Net als bij gegevensstructuurdiagrammen, kan ook bij gegevensstroomdiagrammen de leesbaarheid sterk verhoogd worden door oordeelkundig hertekenen van de lijnen (in dit geval stroompijlen). Rechtsklik een gegevensstroom-pijl om de volgende functies te bereiken:

snelmenu na rechtsklik op gegevensstroom

Detaillering van processen

Een belangrijke eigenschap van gegevensstroomdiagrammen is, dat ze informatie leveren op verschillende niveaus van detail. De overgang tussen de verschillende niveaus wordt bepaald door het opsplitsen van een proces in verscheidene deelprocessen.

Rechtsklikken op een proces levert de volgende tien functieknoppen:

Klik op de derde knop. De tekening verdwijnt en wordt vervangen door een nieuwe tekening met de naam 'Orderverwerking' (of hoe het proces ook heette). De nieuwe tekening is oorspronkelijk leeg, behalve dat de in- en uitgaande gegevensstromen van Orderverwerking er reeds in zijn opgenomen.

De bedoeling is, dat je in dit nieuwe diagram de detailspecificatie van het proces Orderverwerking tekent:

Gegevensstromen tussen Orderverwerking enerzijds en de buitenwereld anderzijds, verschijnen vanzelf in het diagram maar moeten nog met processen worden verbonden. Doe dit door telkens eerst de externe gegevensstroom te selecteren met de rechtermuisknop, en te kiezen voor het begin- óf het eindpunt. Verbind dit begin- of eindpunt met één van de deelprocessen.

Opsplitsing van gegevensstromen

Bij de opsplitsing van processen moeten soms ook de inkomende en uitgaande gegevensstromen worden ontbonden in hun samenstellende deelstromen. Dit kan via de systeemencyclopie: rechtsklik de gegevensstroom en kies de zevende knop, "FA SE modelling". Het menu-item "Composition" laat toe, de samenstellende delen van een gegevensstroom op te sommen.

Bij het controleren van de consistentie van een stel diagrammen (check consistency) wordt rekening gehouden met de regel dat een gegevensstroom gelijkwaardig is met de som van zijn samenstellende delen.

Onderhoud van de data dictionary

Tussen de afzonderlijke elementen van het systeemontwerp staat centraal de data dictionary. In SDW heet de data dictionary "System Encyclopedia" (SE).

Voor sommige handelingen moet de afzonderlijke module "SE Maintenance" worden opgestart.

Een element uit de systeemencyclopedie verwijderen

Bij het tekenen van diagrammen kunnen zowel nieuwe elementen gecreëerd, als bestaande elementen verwijderd worden. Deze twee bewerkingen zijn merkwaardig genoeg niet elkaars omgekeerde.

Bij de creatie van een nieuw element (entiteit, relatie, proces, gegevensstroom, externe actor, archief, ...) wordt niet alleen een nieuw element aan het diagram toegevoegd: het wordt eveneens aangemaakt in het centrale register dat de systeemencyclopedie is. Als je het element later uit het diagram verwijdert, blijft het in de SE staan ! Je kunt dit vaststellen doordat het blijft optreden in de keuzelijstjes die af en toe te zien zijn.

Een element definitief verwijderen gebeurt via de SDW-module "SE Maintenance". Deze module kan niet tegelijk met andere modules actief zijn: sluit dus eerst alle andere SDW-vensters (Function Analysis, Data Modelling, ...) voor je SE Maintenance opent.

Referenties

[Mart] Martin, James, "Information Engineering, Book II: Planning and Analysis," Prentice-Hall 1990, ISBN 0-13-464885-4.

Geschiedenis van deze pagina

Valid HTML 4.0! Valid CSS!