Introduktion til OMG s Samlet Modeling Language ™ (UML®)

Original: http://www.omg.org/gettingstarted/what_is_uml.htm

Opdateret juli 2005 afspejle formel vedtagelse af UML 2.0 Overbygning.
Store virksomhedsapplikationer – dem, der udfører core business-applikationer, og holde et selskab går – skal være mere end bare en flok kode moduler. De skal være struktureret på en måde, der gør det muligt for skalerbarhed, sikkerhed og robust udførelse under stressende forhold, og deres struktur – ofte omtalt som deres arkitektur – skal defineres tydeligt nok, at vedligeholdelse programmører kan (! Hurtigt) finde og rette en fejl, der viser sig længe efter de oprindelige forfattere har flyttet videre til andre projekter. Det er disse programmer skal være konstrueret til at fungere perfekt på mange områder, og business funktionalitet er ikke den eneste (selvom det helt sikkert er den afgørende kerne). Selvfølgelig en veldesignet arkitektur gavner ethvert program, og ikke kun de største, som vi har fremhævet her. Vi nævnte store applikationer først, fordi strukturen er en måde at håndtere kompleksitet, så fordelene ved strukturen (og modellering og design, som vi vil vise) forbindelse som ansøgning størrelse vokser store. En anden fordel af struktur er, at det giver mulighed for genbrug af kode: Design tid er den nemmeste tid at strukturere et program som en samling af selvstændige moduler eller komponenter. Til sidst, virksomhederne opbygge et bibliotek af modeller af komponenter, som hver repræsenterer en implementering opbevaret i et bibliotek af kode moduler. Når et andet program har brug for den samme funktionalitet, kan designeren hurtigt importere sin modul fra biblioteket. På kodning tid, kan bygherren lige så hurtigt importere kodemodulet i applikationen.

Modellering er udformningen af ​​software-applikationer, før kodning. Modellering er en væsentlig del af store software-projekter, og nyttigt at mellemstore og selv små projekter. En model spiller den analoge rolle i udvikling af software, som tegninger og andre planer (site maps, opstalter fysiske modeller) spiller i opbygningen af ​​en skyskraber. Ved hjælp af en model, kan de ansvarlige for en udvikling af software projektets succes sikre sig, at erhvervslivet funktionalitet er fuldstændige og korrekte, er slutbrugernes behov opfyldt, og programmet design understøtter krav til skalerbarhed, robusthed, sikkerhed, udvidelsesmuligheder, og andre egenskaber, inden gennemførelsen i kode gør ændringer vanskelige og dyre at fremstille. Undersøgelser viser, at store software-projekter har en enorm sandsynlighed for fiasko – i virkeligheden, er det mere sandsynligt, at en stor softwareprogram ikke vil opfylde alle sine krav til tiden og på budget end at det vil lykkes. Hvis du kører et af disse projekter, er du nødt til at gøre alt, hvad du kan for at øge odds for succes, og modellering er den eneste måde at visualisere dit design og tjekke det mod krav, før din besætning begynder at kode.

Hæve niveauet for Abstraction: Modeller hjælpe os ved at lade os arbejde på et højere abstraktionsniveau. En model kan gøre dette ved at skjule eller maskere detaljer, der understreger det store billede, eller ved at fokusere på forskellige aspekter af prototypen. I UML 2.0, kan du zoome ud fra et detaljeret billede af en ansøgning til det miljø, hvor det udfører, visualisere forbindelser til andre programmer eller, zoomet endnu mere, til andre sites. Alternativt kan du fokusere på forskellige aspekter af anvendelsen, såsom business process at det automatiserer, eller en forretningsregler visning. Den nye evne til reden modelelement, tilføjede i UML 2.0, understøtter dette begreb direkte.

OMG Unified Modeling Language ™ (UML®) hjælper dig med at specificere, visualisere og dokumentere modeller af software systemer, herunder deres struktur og design, på en måde, der opfylder alle disse krav. (Du kan bruge UML til business modellering og modellering af andre ikke-software-systemer også.) Ved hjælp af en hvilken som helst af det store antal af UML-baserede værktøjer på markedet, du kan analysere din fremtidige anvendelse krav og designe en løsning, der opfylder dem, repræsenterer resultater ved hjælp af UML 2.0 tretten standard diagramtyper.

Du kan modellere næsten enhver type applikation, der kører på en hvilken som helst type og kombination af hardware, operativsystem, programmeringssprog, og netværk, i UML. Dens fleksibilitet lader dig modellere distribuerede applikationer, der bruger næsten enhver middleware på markedet. Bygget på grundlæggende OO-begreber, herunder klasse og drift, er det et naturligt valg for objekt-orienterede sprog og miljøer såsom C ++, Java, og den seneste C #, men du kan bruge det til at modellere ikke-OO applikationer samt i, for eksempel, Fortran, VB, eller COBOL. UML Profiler (dvs. delmængder af UML skræddersyet til specifikke formål) hjælper du model forretningsmæssig, Real-time, og fejltolerante systemer på en naturlig måde.

Du kan gøre andre nyttige ting med UML også: For eksempel analysere nogle værktøjer eksisterende kildekode og reverse-engineering det ind i et sæt af UML diagrammer (eller, nogle hævder, objekt kode!). Et andet eksempel: Nogle værktøjer på markedet eksekvere UML-modeller, typisk på en af ​​to måder: Nogle værktøjer udføre din model interpretively på en måde, der lader dig bekræfte, at det virkelig gør hvad du vil, men uden skalerbarhed og hastighed, som du vil brug for i din indsat ansøgning. Andre værktøjer (typisk designet til kun at arbejde inden for et afgrænset anvendelsesområde, såsom telekommunikation eller finansiering) generere program sprogkode fra UML, der producerer det meste af en bug-fri, der kan indsættes program, der kører hurtigt, hvis kodegenerator inkorporerer bedste praksis skalerbare mønstre for , fx transaktionelle database operationer eller andre fælles program opgaver. (OMG medlemmer arbejder på en specifikation for eksekverbare UML nu.) Vores endelige post i denne kategori: En række værktøjer på markedet generere test og verifikation Suites fra UML-modeller.

UML og OMG model Driven Architecture® (MDA®): Et par år siden (faktisk overraskende få!), Det største problem en udvikler står når du starter en distribueret programmering projekt var at finde en middleware med den funktionalitet, som han havde brug for, der kørte på hardware og operativsystemer, der kører i hans butik. I dag er konfronteret med en pinligt rigt udvalg af middleware platforme, udvikleren har tre forskellige middleware problemer: For det første, vælge en; andet, at få det til at virke med de andre platforme, der allerede er udstationeret, ikke kun i sin egen butik, men også de af hans kunder og leverandører; og tredje, grænseflade til (eller, endnu værre, at migrere til) en ny “næstbedste”, når en ny platform kommer og fanger fancy af analytikerne, og nødvendigvis, CIO’er overalt.

Med sin rige palet og middleware uafhængighed, UML danner et fundament af OMG model Driven Architecture (MDA). Faktisk kan en UML-model enten være platform-uafhængige eller platform-specifikke, som vi vælger, og MDA udvikling proces bruger begge disse former: Hver MDA standard eller ansøgning er baseret, normativt, på en platformsuafhængig Model (PIM ), som repræsenterer sin forretning funktionalitet og adfærd meget præcist, men omfatter ikke tekniske aspekter. Fra PIM, MDA-aktiverede udviklingsværktøjer følger OMG-standardiserede tilknytninger til at producere en eller flere Platform-specifikke modeller (PSM’er), ligeledes på UML, en for hvert mål platform, som bygherren vælger. (Dette trin konvertering er stærkt automatiseret, men ikke magi: Inden værktøjet producerer en PSM, skal bygherren anmærke basen PIM til at producere en mere specifik, men stadig platformsuafhængig PIM der indeholder detaljer om de ønskede semantik, og guider valg at værktøjet bliver nødt til at gøre på grund af ligheder blandt middleware platforme af en given genre -. komponent-baseret, eller messaging-baseret, for eksempel -. denne vejledning kan indgå i et PIM uden at gøre det platform-specifikke Alligevel vil udviklerne nødt til at finjustere producerede PSM’erne til en vis grad, mere i tidlige dage af MDA, men mindre og mindre som værktøjer og algoritmer forhånd.)

PSM indeholder de samme oplysninger som en implementering, men i form af en UML-model i stedet for at køre kode. I det næste trin værktøjet genererer køre kode fra PSM, sammen med andre nødvendige filer (herunder grænseflade definition filer om nødvendigt, konfigurationsfiler makefiler og andre filtyper). Efter at have givet udvikleren mulighed for at hånd-tune den genererede kode, værktøjet udfører makefilerne at producere en udfoldelig endelig ansøgning.

MDA applikationer er kombinerbare: Hvis du importerer PIM’er for moduler, tjenester eller andre MDA programmer i din udvikling værktøj, kan du rette det til at generere opkald ved hjælp uanset grænseflader og protokoller er nødvendige, selv om disse køre på tværs af platforme. Og, MDA applikationer er fremtidssikret: Når en ny “Next Best Thing” kommer på markedet, vil OMG medlemmer generere og standardisere en kortlægning til det, og din leverandør vil opgradere sin MDA-aktiverede værktøj til at inkludere den. Drage fordel af denne udvikling, vil du være i stand til at generere cross-platform påkaldelser til den nye platform, og selv havn dine eksisterende MDA ansøgninger til det, automatisk ved hjælp af dine eksisterende PIM’er.

Modeller vs metoder: Processen med at indsamle og analysere et programs krav, og indarbejde dem i et program design, er et komplekst og industrien understøtter i øjeblikket mange metoder, der definerer de formelle procedurer for, hvordan man griber det an. Et kendetegn ved UML – faktisk den, der gør det muligt for den udbredte støtte fra industrien, at sproget har – er, at det er metode-uafhængig. Uanset hvilken metode, du bruger til at udføre din analyse og design, kan du bruge UML til at udtrykke resultaterne. Og ved hjælp af XMI (XML Metadata Interchange, en anden OMG standard), kan du overføre din UML model fra et værktøj til et depot, eller til et andet værktøj for raffinement eller det næste skridt i din valgte udviklingsproces. Disse er fordelene ved standardisering!

Hvad kan du Model med UML? UML 2.0 definerer tretten typer af diagrammer, opdelt i tre kategorier: Seks diagramtyper repræsenterer statisk ansøgning struktur; tre repræsentere generelle former for adfærd; og fire repræsenterer forskellige aspekter af interaktioner:

Struktur diagrammer omfatter klassediagram, Object Diagram, Komponentdiagram, Komposit Struktur Diagram, Pakke Diagram, og Deployment diagram.

Behavior diagrammer omfatter brugstilfældediagram (bruges af nogle metoder i løbet af kravene indsamling); Aktivitet Diagram, og State Machine diagram.

Interaktion diagrammer, der alle stammer fra den mere generelle adfærd Diagram, omfatter sekvensdiagrammet, Kommunikation Diagram, tidstagerdiagram, og Interaktion Oversigt diagram.

Vi agter ikke denne indledende webside for at være en komplet UML tutorial, så vi ikke kommer til at nævne nogen detaljer om de forskellige diagramtyper her. Hvis du vil vide mere, kan du tjekke ud en af ​​de mange online tutorials, eller købe en bog. (Sidste gang vi kontrolleres, skrive “UML” i ​​søgefeltet for de store online-boghandlere returnerede en liste på mere end 100 titler!) Eller hvis du er teknisk og ønsker hele historien, kan du hente UML specifikation sig fra OMG hjemmeside. Det er gratis, naturligvis, men det er også meget teknisk, lakoniske, og meget svært for begyndere at forstå. (For nogle flere afsnit om, hvorfor specifikationer er svært at læse, se her.)

Jeg er ved at starte min første UML-udviklingsprojekt. Hvad skal jeg gøre? Tre ting, sandsynligvis (men ikke nødvendigvis) i denne rækkefølge:

1) Vælg en metode: En metode formelt definerer den proces, du bruger til at indsamle krav, analysere dem og designe et program, der møder dem på alle måder. Der er mange metoder, der hver afviger i en eller anden måde eller måder fra de andre. Der er mange grunde til, at den ene metode kan være bedre end en anden for netop dit projekt: For eksempel, nogle er bedre egnet til store enterprise-applikationer, mens andre er bygget til at designe små indlejrede eller sikkerhedskritiske systemer. På en anden akse, nogle metoder bedre støtte et stort antal arkitekter og designere, der arbejder på det samme projekt, mens andre arbejder bedre, når de anvendes af en person eller en lille gruppe.

OMG, som en sælger-neutral organisation, der ikke har en mening om nogen metode. For at hjælpe dig med at komme i gang at vælge den ene, der er bedst for dig, har vi samlet links til metode ressourcer her.

2) Vælg et UML Development Tool: Fordi de fleste (dog ikke alle) UML-baserede værktøjer til at anvende en bestemt metode, der i nogle tilfælde kan det ikke være praktisk at vælge et værktøj, og derefter prøve at bruge den med en metode, at det ikke var bygget til. (For andre værktøj / metode kombinationer, kan dette ikke være et problem, eller kan være let at arbejde omkring.) Men nogle metoder er blevet implementeret på flere værktøjer, så det ikke er strengt en en-valg miljø.

Du kan finde et værktøj, så velegnet til din applikation eller organisation, som du er villig til at skifte metoder for at bruge det. Hvis det er tilfældet, gå videre – vores råd at vælge en metode, der først er generel og kan ikke gælde for et specifikt projekt. En anden mulighed: Du kan finde en metode, som du kan lide, som ikke er implementeret i et værktøj, der passer til dit projekt størrelse, eller dit budget, så du er nødt til at skifte. Hvis en af ​​disse tilfælde sker for dig, så prøv at vælge en alternativ metode, der ikke afviger for meget fra den, du foretrak oprindeligt.

Som med metoder, er OMG ikke har en mening eller bedømmelse af UML-baserede modelværktøjer, men vi har links til en række lister her. Disse vil hjælpe dig med at komme igang med at lave dit valg.

3) Få Uddannelse: Du og dine medarbejdere (medmindre du er heldig nok til at ansætte UML-erfarne arkitekter), vil brug for uddannelse i UML. Det er bedst at få uddannelse, der lærer, hvordan du bruger din valgte værktøj med din valgte metode, som typisk udbydes af enten værktøjet leverandør eller metodelærer. Hvis du beslutter ikke at gå denne vej, så tjek OMG uddannelse side for et kursus, der opfylder dine behov. Når du har lært UML, kan du blive en OMG-certificeret UML Professional – tjek her for detaljer.

UML 2.0 – en større opgradering: “Ledige” version af UML 2.0 Overbygning specifikation (dvs. den version, der har afsluttet sin første vedligeholdelse frigivelse og bygget ind sælger produkter) er afsluttet, og er tilgængelig for alle til gratis download . Tre separate dele af UML 2.0 – Infrastruktur (dvs. meta-metamodel), Objekt Constraint sprog og Diagram Interchange – undergår stadig deres første vedligeholdelse og bliver tilgængelige specifikationer, når det er fuldført. Der er en beskrivelse af den aktuelle tilstand af alle fire specifikationer, og linker til dem alle, her.

Hvad er nyt i UML 2.0: Vi har allerede integreret de nye funktioner i denne writeup, men her er en oversigt:

Indlejrede Klassificører: Dette er en ekstremt kraftfuld koncept. I UML, næsten hver model byggesten du arbejder med (klasser, objekter, komponenter, adfærd, såsom aktiviteter og state maskiner, og mere) er en classifier. I UML 2.0 kan du indlejre et sæt af klasser inde i komponenten, der styrer dem, eller indlejre en adfærd (såsom en stat maskine) inde i klassen eller komponent, der implementerer det. Denne funktion kan du også opbygge kompleks adfærd fra enklere dem, den kapacitet, som definerer Interaktion Oversigt diagram. Du kan lag forskellige niveauer af abstraktion på flere måder: For eksempel kan du bygge en model af dit Enterprise, og zoome ind på indlejrede synspunkter sted, og derefter til departementale synspunkter i stedet, og derefter til applikationer inden for en afdeling. Alternativt kan du indlejre beregningsmodeller inden for en forretningsproces model. OMG Business Enterprise Integration Domain Task Force (BEI DTF) arbejder i øjeblikket på flere interessante nye standarder i erhvervslivet proces og forretningsregler.
Forbedret Behavioral Modeling: I UML 1.x de forskellige adfærdsmæssige modeller var uafhængige, men i UML 2.0, de alle stammer fra en grundlæggende definition af en adfærd (bortset fra Use Case, der er subtilt anderledes, men stadig deltager i den nye organisation ).
Forbedret forhold mellem struktur og adfærd Modeller: Som vi påpegede under Nested Klassificører, UML 2,0 lader dig angive, at en adfærd, repræsenteret af (for eksempel) en stat maskine eller Sekvensdiagram er opførslen af ​​en klasse eller en komponent.
Det vil sige, det nye sprog går langt ud over de Klasser og objekter godt modelleret af UML 1.X at tilføje kapacitet til at repræsentere ikke blot adfærdsmæssige modeller, men også arkitektoniske modeller, business process og regler og andre modeller, der anvendes i mange forskellige dele af computere og endog ikke-computing discipliner.

Under opgraderingen processen blev flere tilføjelser til sproget indarbejdet i den, herunder Object Constraint Language (OCL) og Action semantik.

Comments are closed.