Hur man gör ett uml -diagram. Allmänna egenskaper hos UML -språket

UML (Unified Modeling Language) är ett grafiskt beskrivningsspråk för objektmodellering i mjukvaruutveckling. UML är ett bredspråkigt språk; det är en öppen standard som använder grafisk notation för att skapa en abstrakt modell av ett system som kallas UML-modellen. UML skapades för att definiera, visualisera, designa och dokumentera i första hand mjukvarusystem. UML är inte ett programmeringsspråk, men kodgenerering är möjlig för att köra UML -modeller som tolkad kod. Wikipedia

Kommersiella produkter

Microsoft Visio

Typ: kommersiell programvara

En populär mjukvaruprodukt från Microsoft som låter dig rita rika diagram, inklusive UML:

Från och med 2010 -versionen blev det möjligt att publicera diagram på webben (SharePoint + Visio Services):

Visio Viewerär ett gratis program som låter dig se tidigare skapade Visio-diagram. Du kan ladda ner med% D1% 81% D1% 81% D1% 8B% D0% BB% D0% BA% D0% B5% 20.

% 0A

Microsoft% 20Visuell% 20Studio% 202010

% 0A

% D0% A2% D0% B8% D0% BF:% 20% D0% BA% D0% BE% D0% BC% D0% BC% D0% B5% D1% 80% D1% 87% D0% B5% D1% 81% D0% BA% D0% BE% D0% B5% 20% D0% 9F% D0% 9E% 20 (% D0% B5% D1% 81% D1% 82% D1% 8C% 20% D0% B1% D0 % B5% D1% 81% D0% BF% D0% BB% D0% B0% D1% 82% D0% BD% D0% B0% D1% 8F% 20Express% 20% D0% B2% D0% B5% D1% 80 % D1% 81% D0% B8% D1% 8F).

% 0A

% D0% 92% 20% D0% BF% D0% BE% D1% 81% D0% BB% D0% B5% D0% B4% D0% BD% D0% B5% D0% B9% 20% D0% B2% D0 % B5% D1% 80% D1% 81% D0% B8% D0% B8% 20 Microsoft% 20Visuell% 20Studio% 202010% 20% D0% BF% D0% BE% D1% 8F% D0% B2% D0% B8% D0% BB% D1% 81% D1% 8F% 20% D0% BD% D0% BE% D0% B2% D1% 8B% D0% B9% 20% D1% 82% D0% B8% D0% BF% 20% D0% BF% D1% 80% D0% BE% D0% B5% D0% BA% D1% 82% D0% B0% 20-% 20 Modellering,% 20% D0% BA% D0% BE% D1% 82% D0 % BE % D1% 80% D1% 8B% D0% B9% 20% D0% BF% D0% BE% D0% B7% D0% B2% D0% BE% D0% BB% D1% 8F% D0% B5% D1 % 82% 20% D1% 80% D0% B8% D1% 81% D0% BE% D0% B2% D0% B0% D1% 82% D1% 8C% 20% D1% 80% D0% B0% D0% B7 % D0% BB% D0% B8% D1% 87% D0% BD% D1% 8B% D0% B5% 20UML% 20% D0% B4% D0% B8% D0% B0% D0% B3% D1% 80% D0 % B0% D0% BC% D0% BC% D0% B0% 20% D0% B8% 20% D0% BF% D1% 80% D0% BE% D0% B2% D0% B5% D1% 80% D1% 8F % D1% 82% D1% 8C% 20% D0% BD% D0% B0% D0% BF% D0% B8% D1% 81% D0% B0% D0% BD% D0% BD% D1% 8B% D0% B5 % 20 % D1 % 80 % D0 % B5 % D1 % 88 % D0 % B5 % D0 % BD % D0 % B8 % D1 % 8F % 20 % D0 % BD % D0 % B0 % 20 % D1 % 81 % D0 % BE % D0% BE% D1% 82% D0% B2% D0% B5% D1% 82% D1% 81% D1% 82% D0% B2% D0% B8% D0% B5% 20% D1% 81% 20% D0 % BD% D0% B5% D0% BE% D0% B1% D1% 85% D0% BE% D0% B4% D0% B8% D0% BC% D0% BE% 20% D0% B0% D1% 80% D1 % 85 % D0 % B8 % D1 % 82 % D0 % B5 % D0 % BA % D1 % 82 % D1 % 83 % D1 % 80 % D0 % BE % D0 % B9.

% 0A

% D0% 9F% D0% BE% D0% B7% D0% B2% D0% BE% D0% BB% D1% 8F% D0% B5% D1% 82% 20% D0% B3% D0% B5% D0% BD % D0% B5% D1% 80% D0% B8% D1% 80% D0% BE% D0% B2% D0% B0% D1% 82% D1% 8C% 20 Sekvens% 20 Diagram% 20% D0% BD% D0% B0% 20% D0% BE% D1% 81% D0% BD% D0% BE% D0% B2% D0% B0% D0% BD% D0% B8% D0% B8% 20% D0% BA% D0% BE% D0% B4% D0% B0,% 20% D0% B2% D0% B8% D0% B7% D1% 83% D0% B0% D0% BB% D0% B8% D0% B7% D0% B8% D1% 80 % D0% BE% D0% B2% D0% B0% D1% 82% D1% 8C% 20% D1% 81% D0% B2% D1% 8F% D0% B7% D0% B8% 20% D0% B2% 20 % D0% BF% D1% 80% D0% BE% D0% B5% D0% BA% D1% 82% D0% B5% 20% D0% BC% D0% B5% D0% B6% D0% B4% D1% 83 % 20% D0% BA% D0% BE% D0% BC% D0% BF% D0% BE% D0% BD% D0% B5% D0% BD% D1% 82% D0% B0% D0% BC% D0% B8 ,% 20% D1% 81% D0% B1% D0% BE% D1% 80% D0% BA% D0% B0% D0% BC% D0% B8% 20% D0% B8% 20% D1% 81% D1% 81% D1% 8B% D0% BB% D0% BA% D0% B0% D0% BC% D0% B8% 20% D0% B8% 20% D1% 82.% D0% B4.

% 0A

% D0% 9F% D1% 80% D0% B8% D0% BC% D0% B5% D1% 80% 20 Använd% 20case% 20% D0% B4% D0% B8% D0% B0% D0% B3% D1% 80 % D0% B0% D0% BC% D0% BC% D1% 8B,% 20% D0% BD% D0% B0% D1% 80% D0% B8% D1% 81% D0% BE% D0% B2% D0% B0% D0% BD% D0% BD% D0% BE% D0% B9% 20% D0% B2% 20 Visuell% 20Studio% 202010:

% 0A% 0A

% D0% 9A% D1% 80% D0% BE% D0% BC% D0% B5% 20% D1% 82% D0% BE% D0% B3% D0% BE,% 20% D0% B4% D0% BE% D1% 81% D1% 82% D1% 83% D0% BF% D0% B5% D0% BD% 20Visualisering% 20and% 20Modellering% 20Funktion% 20Pack% 20 (% D0% B4% D0% BB% D1% 8F% 20 % D0% BF% D0% BE% D0% B4% D0% BF% D0% B8% D1% 81% D1% 87% D0% B8% D0% BA% D0% BE% D0% B2% 20MSDN),% 20 % D0% BA% D0% BE% D1% 82% D0% BE% D1% 80% D1% 8B% D0% B9% 20% D0% BF% D0% BE% D0% B7% D0% B2% D0% BE % D0% BB% D1% 8F% D0% B5% D1% 82:

% 0A
  • % D0% B3% D0% B5% D0% BD% D0% B5% D1% 80% D0% B8% D1% 80% D0% BE% D0% B2% D0% B0% D1% 82% D1% 8C% 20 % D0% BA% D0% BE% D0% B4% 20% D0% BD% D0% B0% 20% D0% B1% D0% B0% D0% B7% D0% B5% 20UML% 20% D0% B4% D0 % B8% D0% B0% D0% B3% D1% 80% D0% B0% D0% BC% D0% BC% 20% D0% BA% D0% BB% D0% B0% D1% 81% D1% 81% D0 % BE% D0% B2
  • % 0A
  • % D1% 81% D0% BE% D0% B7% D0% B4% D0% B0% D0% B2% D0% B0% D1% 82% D1% 8C% 20UML% 20% D0% B4% D0% B8% D0 % B0% D0% B3% D1% 80% D0% B0% D0% BC% D0% BC% D1% 8B% 20% D0% B8% D0% B7% 20% D0% BA% D0% BE% D0% B4 % D0% B0
  • % 0A
  • % D0% B8% D0% BC% D0% BF% D0% BE% D1% 80% D1% 82% D0% B8% D1% 80% D0% BE% D0% B2% D0% B0% D1% 82% D1 % 8C% 20UML% 20% D0% B4% D0% B8% D0% B0% D0% B3% D1% 80% D0% B0% D0% BC% D0% BC% D1% 8B% 20% D0% BA% D0 % BB% D0% B0% D1% 81% D1% 81% D0% BE% D0% B2,% 20% D0% B4% D0% B8% D0% B0% D0% B3% D1% 80% D0% B0% D0% BC% D0% BC% D1% 8B% 20% D0% BF% D0% BE% D1% 81% D0% BB% D0% B5% D0% B4% D0% BE% D0% B2% D0% B0% D1% 82% D0% B5% D0% BB% D1% 8C% D0% BD% D0% BE% D1% 81% D1% 82% D0% B5% D0% B9,% 20% D0% B4% D0% B8 % D0% B0% D0% B3% D1% 80% D0% B0% D0% BC% D0% BC% D1% 8B% 20% D0% B2% D0% B0% D1% 80% D0% B8% D0% B0 % D0% BD% D1% 82% D0% BE% D0% B2% 20% D0% B8% D1% 81% D0% BF% D0% BE% D0% BB% D1% 8C% D0% B7% D0% BE % D0% B2% D0% B0% D0% BD% D0% B8% D1% 8F% 20% D1% 81% 20XMI% 202,1
  • % 0A
  • % D1% 81% D0% BE% D0% B7% D0% B4% D0% B0% D0% B2% D0% B0% D1% 82% D1% 8C% 20% D0% B4% D0% B8% D0% B0 % D0% B3% D1% 80% D0% B0% D0% BC% D0% BC% D1% 8B% 20% D0% B7% D0% B0% D0% B2% D0% B8% D1% 81% D0% B8 % D0% BC% D0% BE% D1% 81% D1% 82% D0% B5% D0% B9% 20% D0% B4% D0% BB% D1% 8F% 20ASP.NET,% 20C% 20% D0% B8% 20C ++% 20% D0% BF% D1% 80% D0% BE% D0% B5% D0% BA% D1% 82% D0% BE% D0% B2
  • % 0A
  • % D1% 81% D0% BE% D0% B7% D0% B4% D0% B0% D0% B2% D0% B0% D1% 82% D1% 8C% 20% D0% B8% 20% D0% BF% D1 % 80% D0% BE% D0% B2% D0% B5% D1% 80% D1% 8F% D1% 82% D1% 8C% 20lager% 20diagram% 20% D0% B4% D0% BB% D1% 8F% 20C % 20% D0% B8% 20C ++% 20% D0% BF% D1% 80% D0% BE% D0% B5% D0% BA% D1% 82% D0% BE% D0% B2
  • % 0A
  • % D0% BF% D0% B8% D1% 81% D0% B0% D1% 82% D1% 8C% 20% D1% 81% D0% BE% D0% B1% D1% 81% D1% 82% D0% B2 % D0% B5% D0% BD% D0% BD% D1% 8B% D0% B5% 20% D0% BF% D1% 80% D0% BE% D0% B2% D0% B5% D1% 80% D0% BA % D0% B8% 20% D0% B4% D0% BB% D1% 8F% 20lager% 20diagram
  • % 0A

% D0% A1% D0% BA% D0% B0% D1% 87% D0% B0% D1% 82% D1% 8C% 20Visualisering% 20och% 20Modellering% 20Funktion% 20Pack% 20% D0% BC% D0% BE% D0 % B6% D0% BD% D0% BE% 20% D0% BF% D0% BE% 20% D1% 81% D1% 81% D1% 8B% D0% BB% D0% BA% D0% B5:% 20 http://msdn.microsoft.com/ru-ru/vstudio/ff655021%28en-us%29.aspx.

IBM Rational Rose

Möjligheterna:

  • Använd falldiagram
  • Implementeringsdiagram (topologidiagram);
  • Statechart diagram
  • Aktivitetsdiagram
  • Interaktionsdiagram
  • Sekvensdiagram
  • Samarbetsdiagram
  • Klassdiagram
  • Komponentdiagram

Skärmdumpar:

Program med öppen källkod

StarUML

Möjligheterna:

  • UML 2.0 -stöd
  • MDA (Model Driven Architecture)
  • Plug-in-arkitektur (du kan skriva på COM-kompatibla språk: C ++, Delphi, C #, VB, ...)

StarUML skrivs huvudsakligen i Delphi, men du kan lägga till komponenter på andra språk, till exempel C / C ++, Java, Visual Basic, Delphi, JScript, VBScript, C #, VB.NET. Flera skärmdumpar visas nedan.

Klassdiagram:

Diagram för användningsfall:

ArgoUML

Diagram som stöds:

  • Klass
  • stat
  • Användningsfall
  • Aktivitet
  • Samarbete
  • Spridning
  • Sekvens

Möjligheterna:

  • Stöd för nio UML 1.4 -diagram
  • Plattformsoberoende (Java 5+)
  • UML 1.4 Standard Metamodell
  • XMI -stöd
  • Exportera till GIF, PNG, PS, EPS, PGML och SVG
  • Språk: EN, EN-GB, DE, ES, IT, RU, FR, NB, PT, ZH
  • OCL -stöd
  • Framåt, omvänd teknik

Skärmdump:

UML-modell(UML -modellen) är en samling av en begränsad uppsättning språkkonstruktioner, vars huvudsakliga är enheter och relationer mellan dem.

Modellernas enheter och relationer är själva förekomster av metamodellerna i metamodellen.

Med tanke på UML-modellen från den mest allmänna synpunkten kan vi säga att det är en graf (närmare bestämt en laddad multi-pseudo-hyper-digraph), där hörnen och kanterna laddas med ytterligare information och kan ha en komplex intern struktur. Hörnen i denna graf kallas entiteter, och kanterna är relationer... Resten av det här avsnittet ger en snabb (preliminär) men fullständig översikt över tillgängliga entitetstyper och relationer. Lyckligtvis finns det inte för många av dem. I efterföljande kapitel i boken betraktas alla enheter och relationer igen, mer detaljerat och med exempel.

1.4.1. Enheter

För att underlätta visningen kan enheter i UML delas in i fyra grupper:

  • strukturell;
  • beteende;
  • gruppering;
  • annotering.

Strukturella enheter, som du kanske gissar, är avsedda att beskriva struktur. Typiskt inkluderar strukturella enheter följande.

Ett objekt(objekt) 1 är en enhet som är unik och kapslar in tillstånd och beteende.

Klass(klass) 2 - en beskrivning av en uppsättning objekt med gemensamma attribut som bestämmer tillstånd och operationer som bestämmer beteende.

Gränssnitt(gränssnitt) 3 är en namngiven uppsättning operationer som definierar en uppsättning tjänster som kan begäras av en konsument och tillhandahållas av en tjänsteleverantör.

Samarbete(samarbete) 4 - en samling objekt som interagerar för att uppnå ett mål.

Skådespelare(aktör) 5 är en enhet som ligger utanför det modellerade systemet och direkt interagerar med det.

∇ Ett sådant förhållande finns säkert, vilket uttrycks i fig. Diagramtyp hierarki för UML 1 i form av ett beroendeförhållande med en förfinad stereotyp.

∇∇ I UML 1 fanns en ofrivillig koppling mellan samarbetsdiagrammet och enheten med samma namn, vilket inte var helt sant och ibland missvisande.

∇∇∇ I UML 2 har den syntaktiska och semantiska belastningen av tillståndsdiagrammet förändrats så mycket att namnet inte längre speglar innehållet.

En lista över de nya sjökorten och deras namn som används i den här boken visas nedan.

  • Sammansatt struktur diagram
  • Paketdiagram
  • Statsmaskindiagram
  • Kommunikationsschema
  • Interaktionsöversiktsdiagram
  • Tidsdiagram

I fig. Diagramtyp hierarki för UML 2 (del 1 och 2)är ett klassdiagram som visar sambandet mellan diagram i UML 2.

Senare i detta kapitel kommer vi mycket kort att beskriva alla tretton kanoniska diagram för att få ett visst sammanhang och ordförråd för senare presentation. Detaljerna beskrivs i de återstående kapitlen i boken.

Men innan vi går vidare till nästa avsnitt, låt oss göra en liten avvikelse om hur standarden kräver att diagram formateras. Den allmänna diagrammallen visas nedan.

Det finns två huvudsakliga designelement: en yttre ram och en etikett med namnet på diagrammet. Om allt är enkelt med ramen - det är en rektangel som begränsar området där diagramelementen ska placeras, skrivs diagramnamnet i ett speciellt format, som visas i fig. Notering för diagram.

Den angivna komplexa formen på fliken stöds inte av alla verktyg. Detta är dock inte nödvändigt, eftersom semantik är primär och notation är sekundär. Från och med nu kommer vi att använda en rektangel som en etikett för diagrammet överallt, och detta bör inte orsaka förvirring.

Möjliga taggar (typer) för diagram visas i följande tabell. Taggarna som erbjuds av standarden skrivs i den andra kolumnen. Som praktiken har visat är de regler som föreslås av standarden inte alltid praktiska och logiskt grundade, därför innehåller tabellens tredje kolumn ett rimligt alternativ enligt vår uppfattning.

Flik. Diagramtyper och taggar

Diagramtitel Tagg (standard) Tagg (föreslås)
Användningsdiagram användningsfall eller uc användningsfall
Klassdiagram klass klass
Automatdiagram statsmaskin eller stm statsmaskin
Aktivitetsdiagram aktivitet eller spela teater aktivitet
Sekvensdiagram samspel eller sd sd
Kommunikationsschema samspel eller sd komm
Komponentdiagram komponent eller cmp komponent
Placeringsdiagram odefinierad spridning
Objektdiagram odefinierad objekt
Internt strukturschema klass klass eller komponent
Interaktionsöversiktsdiagram samspel eller sd samspel
Synkroniseringsdiagram samspel eller sd tidpunkt
Paketdiagram paket eller pkg paket
Jag tror att alla i barndomen har hört ett sådant ordspråk som " Sju gånger mäta klippa en gång". Det är samma sak i programmering. Det är alltid bättre att tänka på implementeringen innan du lägger tid på genomförandet. Ofta måste du skapa klasser under implementeringen, komma med deras interaktion. Och ofta kan en visuell representation av detta hjälpa till att lösa problemet på det mest korrekta sättet hjälper UML.

Vad är UML?

Om du tittar på bilderna i sökmotorer kommer det att bli klart att UML- det här är något om diagram, pilar och rutor. Det som är viktigt är att UML översätts som Unified Modeling Language... Ordet Unified är viktigt här. Det vill säga att våra bilder kommer att förstås inte bara av oss, utan också av andra som känner till UML. Det visar sig att detta är ett så internationellt språk för att rita diagram.

Som Wikipedia säger

UML är ett grafiskt beskrivningsspråk för objektmodellering inom mjukvaruutveckling, affärsprocessmodellering, systemutveckling och kartläggning av organisationsstrukturer.
Det mest intressanta, som inte alla tänker eller gissar, har UML specifikationer. Och det finns till och med en UML2 -specifikation. Mer information om specifikationen finns på Object Management Groups webbplats. Egentligen är denna grupp engagerad i utvecklingen av UML-specifikationerna. Det är också intressant att UML inte är begränsat till att beskriva klassens struktur. Det finns många typer av UML -diagram. En kort beskrivning av typerna av UML-diagram kan ses i samma Wikipedia: UML - diagram eller i Timur Batyrshinovs video Översikt över UML -diagram... UML används också i stor utsträckning för att beskriva olika processer, till exempel här: SSO med JWT. Tillbaka till användningen av UML -klassdiagram är det värt att notera boken Head First: Design Patterns, där mönster illustreras med samma UML -diagram. Det visar sig att UML verkligen används. Och det visar sig att känna till och förstå dess tillämpning är en ganska användbar färdighet.

Ansökan

Låt oss se hur du kan arbeta med just denna UML från IDE. Som IDE, låt oss ta IntelliJ Idé... Om du använder IntelliJ Idea Ultimate, då kommer plugin-programmet att installeras "out of the box" UML -support". Det låter dig automatiskt generera vackra klassdiagram. Till exempel, genom Ctrl + N eller menyalternativet" Navigera "->" Klass "gå till klassen ArrayList... Nu, genom snabbmenyn med klassnamnet, välj "Diagram" -> "Visa diagram popup". Som ett resultat får vi ett fint diagram:

Men vad händer om du vill rita själv, och även det inte finns någon Ultimate-version av Idea? Om vi ​​använder IntelliJ Idea Community Edition har vi inget annat val. För att göra detta måste du förstå hur ett sådant UML -diagram fungerar. Först måste vi installera Graphviz. Det är en uppsättning grafvisualiseringsverktyg. Det används av den plugin som vi kommer att använda. Efter installationen måste du lägga till katalogen papperskorg från den installerade katalogen Graphviz till miljövariabel VÄG... Efter det, i IntelliJ Idea, välj Arkiv -> Inställningar från menyn. I fönstret "Inställningar" väljer du kategorin "Plugins", klickar på "Browse repositories" -knappen och installerar PlantUML -integrationspluginet. Vad är så bra med det här PlantUML? Den använder ett grafspråk som heter " punkt"och detta gör att det kan bli mer universellt, eftersom detta språk inte bara används av PlantUML. Dessutom kan allt vi gör nedan inte bara i IDE, utan också i onlinetjänsten planttext.com. Efter installation av PlantUML plugin -in kommer vi att kunna skapa UML -diagram genom "File" -> "New". Låt oss skapa ett diagram av typen "UML class". Under detta genereras en mall med ett exempel automatiskt. Låt oss ta bort dess innehåll och skapa vår egen, beväpnad med en artikel från Habr: Klassrelationer - från UML till kod. Och för att förstå hur man skildrar det i texten, ta PlantUML -manualen: plantuml class-diagram. I den finns det i början, en plattan med hur man beskriver anslutningarna:

När det gäller själva länkarna kan vi fortfarande kika här: "Relationer mellan klasser i UML. Exempel". Baserat på dessa material, låt oss börja skapa vårt UML-diagram. Lägg till följande innehåll som beskriver de två klasserna: @startuml class ArrayList () class LinkedList () @enduml För att se resultatet i Idea, välj View -> Tool Windows -> PlantUML. Vi får bara två rutor som representerar klasserna. Som vi vet implementerar båda dessa klasser listgränssnittet. Denna klassrelation kallas förverkligande. En pil med en prickad linje används för att skildra en sådan anslutning. Låt oss representera det: gränssnitt List List< | . . ArrayList List < | . . LinkedList List - один из дочерних классов Collection . То есть он наследуется от Collection. Эта связь называется обобщением (generalization). Выглядит как стрелка с обычной непрерывной линией. Изобразим её: interface Collection Collection < | -- List Для следующего типа связи добавим в описание класса ArrayList запись о paket privat array of elements: ~ Object elementData Nu vill vi visa att ArrayList innehåller några objekt. I det här fallet kommer länktypen att vara - aggregering(aggregation). Aggregatet i detta fall är ArrayList, sedan den innehåller andra objekt. Vi väljer aggregering eftersom objekten i listan kan leva utan listan: de är inte integrerade delar av den. Deras livstid är inte bunden till listans livstid. Aggregat från latin översätts som "sammansatt", det vill säga något som består av något. Till exempel i livet finns det en pumpenhet, som består av en pump och en motor. Själva enheten kan demonteras och lämnar något av dess beståndsdelar. Till exempel att sälja eller sätta i en annan enhet. Så den finns på listan. Och detta uttrycks i form av en tom diamant vid enheten och en kontinuerlig linje. Låt oss skildra det så här: class Object () ArrayList o- Object Nu vill vi visa att, till skillnad från ArrayList, innehåller LinkedList -klassen Node - behållare som refererar till lagrad data. I det här fallet är noder en del av själva LinkedList och kan inte leva separat. Noden lagras inte direkt innehåll utan innehåller bara en länk till det. Till exempel, när vi lägger till en rad i LinkedList, lägger vi till en ny nod som innehåller en länk till den raden, samt en länk till föregående och nästa nod. Denna typ av kommunikation kallas sammansättning(Sammansättning). För att visa kompositen (den som består av delar) dras en målad robot, en kontinuerlig linje leder till den. Låt oss nu skriva detta i form av en textvisning av länken: class Node () LinkedList * - Node och nu måste vi lära oss att visa en annan viktig typ av länk - missbruk(beroendeförhållande). Den används när en klass använder en annan, och klassen innehåller inte den använda klassen och ärver inte från den. Till exempel kan både LinkedList och ArrayList skapa en ListIterator. Vi representerar detta som pilar med en prickad linje: class ListIterator ListIterator< . . . ArrayList : create ListIterator < . . . LinkedList : create Выглядеть после всего это будет следующим образом:

Du kan specificera så mycket som behövs. Alla beteckningar listas här: "PlantUML - Klassdiagram". Dessutom finns det inget övernaturligt i att rita ett sådant schema, och när du arbetar med dina uppgifter kan du snabbt rita det för hand. Detta kommer att utveckla färdigheter i att tänka igenom applikationens arkitektur och hjälper dig att identifiera brister i klassstrukturen tidigt, snarare än när du redan har tillbringat dagen med att implementera fel modell. Jag tror att detta är en bra anledning att prova?)

Automatisering

Det finns olika sätt att automatiskt generera PlantUML -diagram. Till exempel i Aning det finns ett SketchIT -plugin, men det ritar dem inte riktigt korrekt. Låt oss säga att implementeringen av gränssnitten dras felaktigt (visas som arv). Det finns också exempel på Internet på hur du kan integrera detta i ditt projekts livscykel. Låt oss säga för Maven det finns ett exempel med uml-java-docklet. För att visa hur detta är, låt oss använda Maven Archetype för att snabbt skapa ett Maven -projekt. Kör kommandot: mvn arketyp: generera När du ombeds välja ett filter ( Välj ett nummer eller använd filter) lämna standard genom att helt enkelt trycka på Enter. Det kommer alltid att vara " maven-archetype-quickstart". Vi väljer den senaste versionen. Sedan svarar vi på frågorna och slutför skapandet av projektet:

Eftersom Maven inte är i fokus för den här artikeln kan du hitta svar på dina Maven -frågor på Maven Users Center. I det genererade projektet, öppna projektbeskrivningsfilen för redigering, pom.xml... Kopiera innehållet från uml-java-docklet-installationsbeskrivningen till den. Artefakten som används i beskrivningen kunde inte hittas i Maven Central -förvaret. Men det fungerade för mig med detta: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. Det vill säga, du behöver bara ersätta i den beskrivningen groupId med " info.leadinglight"på" com.chfourie"och lägg versionen" 1.0.0 ". Efter det kan vi köra i katalogen där filen finns pom.xml dessa kommandon: mvn clean install och mvn javadoc: javadoc. Om vi ​​nu öppnar den genererade dokumentationen (explorer target \ site \ apidocs \ index.html) ser vi UML -diagrammet. Förresten, implementeringen visas redan korrekt här)

Slutsats

Som du kan se tillåter UML dig att visualisera strukturen i din applikation. Dessutom är UML inte begränsat till just det. Med UML kan du beskriva olika processer inom ditt företag eller beskriva en affärsprocess inom vilken en funktion som du skriver fungerar. Det är upp till dig att bestämma hur användbar UML är för dig personligen, men det kommer att vara bra att hitta tid och bekanta dig med mer information. #Viacheslav Ryska versionen av detta inlägg: UML-diagram Java på CodeGym

UML är en förkortning för Unified Modeling Language. I själva verket är det en av de mest populära affärsprocessmodelleringsteknikerna och är en internationell standardnotation för att specificera, visualisera och dokumentera mjukvaruutveckling. Definierad av Object Management Group, framkom som ett resultat av flera ytterligare UML -notationssystem och har nu blivit de facto -standarden för visuell modellering. Den grundläggande principen för all objektorienterad programmering börjar med att bygga en modell.

UML skapades ur kaoset kring mjukvaruutveckling och dokumentation. På 1990 -talet fanns det flera olika sätt att representera mjukvarusystem. Det fanns ett behov av ett mer enhetligt visuellt UML-sätt att representera dessa system, och som ett resultat utvecklades det 1994-1996 av tre mjukvaruingenjörer som arbetade på Rational Software. Det antogs senare som en standard 1997 och är fortfarande så, efter att ha fått bara några få uppdateringar.

I grund och botten är UML ett generellt modelleringsspråk inom mjukvaruutveckling. Det återspeglas dock nu i dokumentationen av flera affärs- eller arbetsflödesprocesser, till exempel aktivitetsdiagram. UML -diagramtypen kan användas som ersättning för flödesscheman. De ger både ett mer standardiserat sätt att modellera arbetsflöden och ett brett utbud av funktioner för att förbättra läsbarheten och effektiviteten.

Arkitekturen är baserad på ett meta-objekt som definierar grunden för att skapa UML. Det är tillräckligt noggrant för att skapa en hel applikation. Fullt körbar UML kan distribueras över flera plattformar med olika tekniker med alla processer under hela programutvecklingscykeln.

UML är avsett för utveckling av ett visuellt modelleringsspråk av användare. Det stöder designkoncept på hög nivå som strukturer, mönster och samarbete. UML är en samling element som:

  1. Programmeringsspråk uttalanden.
  2. Aktörer - beskriv rollen som användaren eller något annat system som interagerar med objektet spelar.
  3. Aktiviteter som ska utföras för utförandet av arbetskontraktet och presenteras i diagram.
  4. En affärsprocess som innehåller en uppsättning uppgifter som skapar en specifik tjänst för kunder, visualiserade med ett flödesschema över sekventiella åtgärder.
  5. Logiska och återanvändbara programvarukomponenter.

UML-diagram delas in i två kategorier. Den första typen innehåller sju typer av diagram som representerar strukturell information, den andra inkluderar de andra sju som representerar vanliga typer av beteende. Dessa diagram används för att dokumentera systemarkitekturen och är direkt involverade i UML -systemmodellering.

UML -diagram presenteras som statiska och dynamiska vyer av systemmodellen. Den statiska vyn innehåller klass- och sammansatta strukturdiagram som betonar den statiska strukturen. En dynamisk vy representerar interaktionen mellan objekt och förändringar i objektens interna tillstånd med hjälp av sekvens-, aktivitets- och tillståndsdiagram.

Ett brett utbud av UML -modelleringsverktyg är tillgängliga för att förenkla modellering, inklusive IBM Rose, Rhapsody, MagicDraw, StarUML, ArgoUML, Umbrello, BOUML, PowerDesigner och Dia.

UML används på olika sätt, både i prooch i affärsprocesser:

  1. Skiss. I detta fall används UML -diagram för att förmedla olika aspekter och egenskaper hos systemet. Detta är dock bara en översikt över systemet och kommer troligen inte att innehålla alla nödvändiga detaljer för att genomföra projektet till slutet.
  2. Framåtdesign - Utformningen av skissen görs innan applikationen kodas. Detta för att ge en bättre överblick över systemet eller arbetsflödet som användaren försöker skapa. Många designproblem eller brister kan identifieras, vilket kommer att förbättra projektets övergripande hälsa och välbefinnande.
  3. Omvänd design. När koden är skriven visas UML -diagram som en form av dokumentation för olika aktiviteter, roller, deltagare och arbetsflöden.
  4. Plan. I detta fall fungerar diagrammet som en komplett konstruktion, som endast kräver den faktiska implementeringen av systemet eller programvaran. Detta görs ofta med hjälp av CASE -verktyg (Computer Aided Software Engineering Tools). Den största nackdelen med att använda CASE -verktyg är att de kräver en viss kunskapsnivå, användarutbildning och ledning och personal.

UML är inte ett fristående programmeringsspråk som Java, C++ eller Python, men med rätt verktyg kan det bli en pseudo-UML. För att uppnå detta mål måste hela systemet dokumenteras i olika diagram, och med rätt programvara kan diagrammen översättas direkt till kod. Denna teknik kan bara vara användbar om den tid det tar att rita diagrammen är mindre tidskrävande än att skriva den faktiska koden. Även om UML skapades för systemmodellering har den funnit flera användningsområden inom affärsområden.

Följande är ett exempel på UML -diagram för affärsmodellering.

En praktisk lösning skulle vara att visualisera processflödet för telesäljning genom ett aktivitetsdiagram. Från det ögonblick då beställningen tas som en ingång, till det ögonblick då beställningen är klar och en specifik utmatning ges.

Det finns flera typer av UML -diagram, och var och en utför en annan uppgift, oavsett om den utvecklas före implementering eller efter, som en del av dokumentationen. De två bredaste kategorierna, som täcker alla andra typer, är beteendediagram och strukturdiagram. Som namnet antyder försöker vissa UML -diagram analysera och skildra strukturen i ett system eller en process, medan andra beskriver ett systems beteende, dess deltagare och komponenter.

De olika typerna är uppdelade enligt följande:

  1. Inte alla av de 14 olika typerna av UML-diagram används regelbundet vid dokumentation av system och arkitekturer.
  2. Pareto -principen gäller också för användning av UML -diagram.
  3. 20 % av diagrammen används av utvecklare 80 % av tiden.

De vanligaste elementen i mjukvaruutveckling är:

  • användningsdiagram;
  • klassdiagram;
  • sekvens.

Åtgärdsdiagram är de viktigaste UML-diagrammen för att skapa affärsprocessmodeller. I mjukvaruutveckling används de för att beskriva flödet av olika åtgärder. De kan vara antingen sekventiella eller parallella. De beskriver objekt som används, konsumeras eller produceras som ett resultat av aktiviteter och förhållandet mellan olika aktiviteter.

Allt ovanstående är viktigt för modellering av affärsprocesser som leder från en till en annan, eftersom de är sammankopplade med en begriplig början och slut. I en affärsmiljö kallas detta också för affärsprocess kartläggning. Huvudaktörerna är författare, redaktör och förläggare. Exempel på UML inkluderar följande. När en granskare granskar projektet och beslutar att vissa ändringar måste göras. Författaren reviderar sedan projektet och returnerar det igen för att analysera översikten.

Användningsdiagram

Systemets hörnsten - används för att analysera kraven på systemets nivå. Dessa krav uttrycks i olika användningsfall. De tre huvudkomponenterna i ett UML -diagram är:

  1. Funktionell - presenterad som användningsfall.
  2. Ett verb som beskriver en handling.
  3. Aktörer - att interagera med systemet. Skådespelaren kan vara användare, organisationer eller en extern applikation. Förhållandet mellan deltagarna representeras av raka pilar.

Till exempel för ett lagerkontrollschema. I det här fallet finns det en ägare, en leverantör, en chef, en inventeringsspecialist och en inventeringsinspektör. De runda behållarna representerar de handlingar som skådespelarna utför. Möjliga åtgärder inkluderar att köpa och betala för aktier, kontrollera lagerkvaliteten, returnera aktier eller distribuera dem.

Denna typ av diagram är väl lämpad för att visa dynamiskt beteende mellan deltagare i ett system, förenkla dess presentation utan att återspegla implementeringsdetaljer.

Temporär

UML -tidsdiagram används för att representera objektrelationer när fokus är tidsberoende. Samtidigt är det inte intressant hur objekt interagerar eller förändrar varandra, men användaren vill föreställa sig hur objekt och ämnen agerar längs en linjär tidsaxel.

Varje enskild deltagare representeras genom en livslinje, som i huvudsak är en linje som bildar stadierna, när den enskilda deltagaren går från ett steg till nästa. Fokus ligger på händelsernas varaktighet och de förändringar som sker beroende på det.

Huvudkomponenterna i ett tidtabell är:

  1. Lifeline är en individuell medlem.
  2. Statens tidslinje - En enda livsväg kan gå igenom olika tillstånd i en process.
  3. Duration Constraint - En tidsintervallbegränsning som representerar den varaktighet som krävs för att begränsningen ska uppfyllas.
  4. Tidsgräns - begränsa det tidsintervall under vilket något måste göras av deltagaren.
  5. Destruction Appearance - Utseendet på ett meddelande som förstör en enskild deltagare och visar slutet på deltagarens livscykel.

Horisontella diagram, även kallade tillståndsdiagram, används för att beskriva de olika tillstånden för en komponent i ett system. Det tar ett slutgiltigt namnformat eftersom ett diagram i huvudsak är en maskin som beskriver flera tillstånd för ett objekt och hur det förändras baserat på interna och externa händelser.

Ett mycket enkelt maskintillståndsdiagram skulle vara i ett schackspel. Ett typiskt schackspel består av drag gjorda av vit och drag gjorda av svart. White har det första drag, som därmed initierar spelet. Slutet av spelet kan ske oavsett om vitt eller svart vinner. Spelet kan sluta i en match, avgång eller oavgjort (olika villkor för maskinen). Statecharts används främst vid fram- och bakåt UML -design av olika system.

I följd

Denna typ av diagram är det viktigaste UML -diagrammet, inte bara bland datavetenskapssamhället, utan också som en designlagermodell för utveckling av affärsapplikationer. De är populära för att beskriva affärsprocesser på grund av deras visuellt självförklarande karaktär. Som namnet antyder beskriver diagrammen sekvensen av meddelanden och interaktioner som uppstår mellan ämnen och objekt. Skådespelare eller objekt kan bara vara aktiva när det behövs eller när ett annat objekt vill kommunicera med dem. All kommunikation presenteras i kronologisk ordning.

För mer information, se exempel på UML-sekvensdiagram nedan.

Som exemplet visar används strukturdiagram för att visa strukturen i ett system. Mer specifikt används ett språk i mjukvaruutveckling för att representera ett systems arkitektur och hur olika komponenter är sammankopplade.

UML -klassdiagram är den vanligaste typen av diagram för programvarudokumentation. Eftersom de flesta program som för närvarande skrivs fortfarande är baserade på det objektorienterade programmeringsparadigmet, är det sunt att använda klassdiagram för att dokumentera programvara. Detta beror på att OOP är baserat på UML -klasser och relationerna mellan dem. I ett nötskal innehåller diagram klasser, tillsammans med deras attribut, även kallade datafält och deras beteende, kallade medlemsfunktioner.

Mer specifikt har varje klass tre fält: namn överst, attribut precis under namnet, operationer / beteende längst ner. Relationen mellan de olika klasserna (representerade av förbindelselinjen) utgör ett klassdiagram. Exemplet ovan visar ett grundläggande klassdiagram.

Objekt

När du diskuterar UML -strukturdiagram måste du fördjupa dig i datavetenskapliga koncept. I mjukvaruutveckling betraktas klasser som abstrakta datatyper, medan objekt är instanser. Om det till exempel finns en "bil", som är en generisk abstrakt typ, skulle en instans av "bil" -klassen vara "Audi".

UML -objektdiagram hjälper mjukvaruutvecklare att kontrollera om den genererade abstrakta strukturen genererar en livskraftig struktur när den implementeras i praktiken, det vill säga när objekt skapas. Vissa utvecklare anser att detta är en sekundär nivå av noggrannhetsverifiering. Det visar instanser av klasser. Mer exakt har den allmänna klassen "Kund" nu en verklig kund, till exempel namnet "James". James är en instans av en mer allmän klass och har samma attribut, dock med de givna värdena. Detsamma gjordes med Konton och Sparkontot. De är båda föremål för sina respektive klasser.

Spridning

Distributionsdiagram används för att visualisera förhållandet mellan programvara och hårdvara. För att vara mer specifik, med distributionsdiagram, kan du bygga en fysisk modell av hur programvarukomponenter (artefakter) distribueras på hårdvarukomponenter som kallas noder.

Ett typiskt förenklat distributionsschema för en webbapplikation skulle inkludera:

  1. Noder (applikationsserver och databasserver).
  2. Artefakter klientprogram schema och databas.

Paketdiagrammet liknar makron för UML -distributionsdiagrammen som vi förklarade ovan. Olika paket innehåller noder och artefakter. De grupperar diagram och modellerar komponenter i grupper, ungefär som ett namnutrymme kapslar in olika namn som är något relaterade. I slutändan kan ett paket också skapas av flera andra paket för att representera mer komplexa system och beteende.

Huvudsyftet med ett paketdiagram är att visa sambandet mellan de olika huvudkomponenterna som utgör ett komplext system. Programmerare tycker att denna abstraktionsfunktion är en bra fördel för att använda paketdiagram, särskilt när detaljer kan lämnas utanför bilden.

Precis som alla andra saker i livet krävs rätt verktyg för att få något rätt. För att dokumentera programvara, processer eller system används verktyg som erbjuder UML -kommentarer och diagrammallar. Det finns olika verktyg för dokumentation av programvara som kan hjälpa dig att rita ett diagram.

De brukar falla i följande huvudkategorier:

  1. Papper och penna är enkla. Du tar papper och en penna, öppnar UML -syntaxkoden från Internet och ritar vilken typ av diagram du vill.
  2. Onlineverktyg – Det finns flera onlineapplikationer som du kan använda för att skapa ditt diagram. De flesta av dem erbjuder en betald prenumeration eller ett begränsat antal gratis tier-diagram.
  3. Gratis onlineverktyg är nästan desamma som betalda. Den största skillnaden är att de betalda också erbjuder självstudier och färdiga mallar för specifika diagram.
  4. Ett skrivbordsprogram är ett typiskt skrivbordsprogram som används för diagram och nästan alla andra diagram är Microsoft Visio. Den erbjuder avancerade funktioner och funktioner. Den enda nackdelen är att du måste betala för det.

Således är det helt klart att UML är en viktig aspekt i samband med utvecklingen av objektorienterad programvara. Den använder grafisk notation för att skapa visuella modeller av systemprogram.

Anteckning: Ämnet för denna kurs är The UML - Unified Modeling Language. I föregående föreläsning pratade jag om vad UML är, om dess historia, syfte, sätt att använda språket, strukturen för dess definition, terminologi och notation. Det noterades att en UML -modell är en samling diagram. I denna föreläsning kommer vi att överväga sådana frågor: varför behöver vi flera typer av diagram; typer av diagram; OOP och diagramsekvens

Innan vi går vidare med att diskutera huvudmaterialet i denna föreläsning, låt oss prata om varför man överhuvudtaget bygger någon form av diagram. Utvecklingen av en modell för alla system (inte bara programvara) föregår alltid dess skapande eller uppdatering. Detta är nödvändigt åtminstone för att tydligare föreställa sig att problemet löses. Genomtänkta modeller är mycket viktiga både för interaktion inom utvecklingsteamet och för ömsesidig förståelse med kunden. I slutändan kan du se till att designen är "arkitektoniskt konsekvent" innan den implementeras i kod.

Vi bygger modeller av komplexa system, eftersom vi inte kan beskriva dem fullständigt, "ta en titt". Därför pekar vi ut endast de egenskaper hos systemet som är väsentliga för en specifik uppgift och bygger en modell som återspeglar dessa egenskaper. Den objektorienterade analysmetoden gör det möjligt att beskriva riktiga komplexa system på det mest adekvata sättet. Men när komplexiteten i systemen ökar, finns det ett behov av bra modelleringsteknik. Som vi sa i förra föreläsningen används en enhetlig teknik som en sådan "standard"-teknik. modelleringsspråk(Unified Modeling Language, UML), som är ett grafiskt språk för specifikation, visualisering, design och dokumentation av system. Med UML kan du utveckla en detaljerad modell av systemet som skapas, vilket inte bara återspeglar dess koncept, utan också specifika implementeringsfunktioner. Inom ramen för UML-modellen fixas alla idéer om systemet i form av speciella grafiska konstruktioner, kallade diagram.

Notera... Vi kommer inte att överväga alla, utan bara några av typerna av diagram. Till exempel omfattas inte komponentdiagrammet i detta kapitel, som bara är en kort översikt över diagramtyperna. Antalet diagramtyper för en specifik applikationsmodell är inte begränsat på något sätt. För enkla applikationer behöver du inte skapa diagram av alla typer utan undantag. Några av dem kan helt enkelt saknas, och detta faktum kommer inte att betraktas som ett fel. Det är viktigt att förstå att tillgängligheten av diagram av en viss typ beror på det specifika för ett visst projekt. Information om andra (inte täckta här) typer av diagram finns i UML -standarden.

Varför du behöver flera typer av diagram

Låt oss först definiera terminologin. I inledningen till denna föreläsning har vi upprepade gånger använt begreppen system, modell och diagram. Författaren är säker på att vi alla intuitivt förstår innebörden av dessa begrepp, men för att göra det helt klart, låt oss titta på ordlistan igen och läsa följande:

Systemet- en uppsättning sammankopplade kontrollerade delsystem, förenade med ett gemensamt syfte.

Ja, inte särskilt informativt. Vad är då ett delsystem? För att klargöra situationen, låt oss vända oss till klassikerna:

Systemetär en uppsättning delsystem organiserade för att uppnå ett specifikt mål och beskrivs med hjälp av en uppsättning modeller, möjligen från olika synvinklar.

Tja, ingenting kan göras, du måste leta efter definitionen av delsystemet. Det står också att delsystemär en samling element, varav några specificerar specifikationen för beteendet hos andra element. Ian Somerville förklarar detta koncept på detta sätt:

Delsystemär ett system vars funktion inte är beroende av andra delsystems tjänster. Ett mjukvarusystem är uppbyggt som en uppsättning relativt oberoende delsystem. Interaktioner mellan delsystem definieras också.

Inte heller särskilt tydlig, men bättre. I mänskliga termer representeras systemet som en uppsättning enklare enheter som är relativt självförsörjande. Detta kan jämföras med hur vi under utvecklingen av ett program bygger ett grafiskt gränssnitt från vanliga "kuber" - visuella komponenter, eller hur själva programmets text också är uppdelad i moduler som innehåller underrutiner förenade med en funktionell funktion , och de kan återanvändas i följande program.

Vi kom på begreppet ett system. Under designprocessen övervägs systemet ur olika synvinklar med hjälp av modeller, vars olika representationer presenteras i form av diagram. Återigen kan läsaren ha frågor om begreppens innebörd. modell och diagram... Vi tycker en vacker, men inte för tydlig definition modell som en semantiskt sluten abstraktion av systemetär osannolikt att klargöra situationen, så låt oss försöka förklara det med våra egna ord.

Modellär ett visst (material eller inte) objekt som endast visar de egenskaper hos systemet som är mest betydelsefulla för en given uppgift. Modeller är olika - material och icke -material, konstgjorda och naturliga, dekorativa och matematiska ...

Här är några exempel. Leksaksbilarna i plast som vi alla känner till, som vi lekte med sådan passion i barndomen, är inget annat än material konstgjort dekorativt modell av en riktig bil. Naturligtvis, i en sådan "bil" finns det ingen motor, vi fyller inte tanken med bensin, växellådan fungerar inte i den (desutom finns det ingen växellåda alls), men som modell uppfyller denna leksak fullt ut sin funktioner: det ger barnet en uppfattning om bilen, eftersom den visar dess karakteristiska egenskaper är närvaron av fyra hjul, en kaross, dörrar, fönster, förmågan att köra etc.

Inom medicinsk forskning föregår djurförsök ofta mänskliga kliniska prövningar av läkemedel. I detta fall fungerar djuret som material naturligt mänskliga modeller.

Ekvationen som visas ovan är också en modell, men det här är en matematisk modell, och den beskriver rörelsen av en materiell punkt under påverkan av gravitationen.

Det återstår bara att säga vad ett diagram är. Diagramär en grafisk framställning av många element. Vanligtvis avbildad som en graf med hörn (enheter) och kanter (relationer). Det finns många exempel på diagram. Detta är ett blockdiagram som är bekant för oss alla från skolåren och scheman för montering av olika utrustningar, som vi kan se i användarmanualer, och ett träd av filer och kataloger på en disk, som vi kan se genom att köra trädkommandot i Windows-konsolen och mycket, mycket annat. I vardagen omger diagram oss från alla håll, eftersom en ritning uppfattas av oss lättare än en text ...

Men tillbaka till mjukvarudesign (och inte bara). I den här branschen med med hjälp av diagram kan du visualisera systemet ur olika synvinklar... Ett av diagrammen kan till exempel beskriva användarens interaktion med systemet, det andra - förändringen av systemets tillstånd under driften, det tredje - interaktionen mellan systemelementen osv Ett komplext system kan och bör representeras som en uppsättning små och nästan oberoende modeller - diagram, och ingen av dem är tillräcklig för att beskriva systemet och få en fullständig bild av det, eftersom var och en av dem fokuserar på någon specifik aspekt av systemets funktion och uttrycker en annan abstraktionsnivå... Med andra ord motsvarar varje modell vissa specifika synpunkter på det projicerade systemet.

Trots det faktum att vi i föregående stycke behandlade konceptet med en modell mycket fritt, bör det förstås att i samband med ovanstående definitioner inget enda diagram är en modell... Diagram är bara ett visualiseringsverktyg för modellen, och de två begreppen bör särskiljas. Endast en uppsättning diagram utgör en modell av systemet och beskriver det mest fullständigt, men inte ett diagram taget ur sitt sammanhang.

Typer av diagram

UML 1.5 definierat tolv typer av diagram uppdelad i tre grupper:

  • fyra typer av diagram representerar applikationens statiska struktur;
  • fem representerar beteendemässiga aspekter av systemet;
  • tre representerar de fysiska aspekterna av systemets funktion (implementeringsdiagram).

Den nuvarande versionen av UML 2.1 har inte gjort för många ändringar. Diagrammen har förändrats något i utseende (ramar och andra visuella förbättringar har dykt upp), notationen har förbättrats något, vissa diagram har fått nya namn.

Men det exakta antalet kanoniska diagram det är absolut oviktigt för oss, eftersom vi inte kommer att överväga alla, utan bara några - av den anledningen att antalet diagramtyper för en viss modell av en viss applikation inte är strikt fast. För enkla applikationer behöver du inte skapa alla diagram utan undantag. Till exempel, för en lokal applikation, är det inte nödvändigt att bygga ett distributionsdiagram. Det är viktigt att förstå att listan över diagram beror på detaljerna i projektet som utvecklas och bestäms av utvecklaren själv. Om den nyfikna läsaren fortfarande vill veta om alla UML-diagram, hänvisar vi det till UML-standarden (http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML). Kom ihåg att syftet med denna kurs inte är att beskriva absolut alla UML: s möjligheter, utan bara att bekanta sig med detta språk, att ge en inledande uppfattning om denna teknik.

Så vi kommer kort att titta på sådana typer av diagram som:

  • diagram för användningsfall;
  • klassdiagram;
  • objektdiagram;
  • sekvensdiagram;
  • interaktionsdiagram;
  • tillstånd diagram;
  • aktivitetsdiagram;
  • distribution diagram.

Vi kommer att prata om några av dessa diagram mer i detalj i nästa föreläsningar. Under tiden kommer vi inte att fokusera på detaljerna, utan sätta oss som mål att lära läsaren att åtminstone visuellt skilja mellan diagramtyperna, för att ge en inledande uppfattning om syftet med huvudtyperna av diagram. Så, låt oss börja.

Använd falldiagram

Alla (inklusive programvara) system är utformade med hänsyn till det faktum att de under sitt arbete kommer att användas av människor och / eller interagera med andra system. De enheter som systemet interagerar med under sitt arbete kallas vektorer och varje aktör förväntar sig att systemet ska bete sig på ett strikt definierat, förutsägbart sätt. Låt oss försöka ge en mer strikt definition av sektorn. För att göra detta kommer vi att använda ett underbart visuellt ordförråd för UML. Zicom Mentor:

Hector (skådespelare)är en uppsättning logiskt relaterade roller som utförs när de interagerar med användningsfall eller enheter (system, delsystem eller klass). En ektor kan vara en person eller ett annat system, delsystem eller klass som representerar något utanför essensen.

Grafiskt avbildas ektorn som antingen " liten man"liknande de som vi målade som barn, som visar medlemmar i vår familj eller klass symbol med matchande stereotyp, som det visas på bilden. Båda presentationsformerna har samma betydelse och kan användas i diagram. Den "stereotypa" formen används ofta för att representera systemaktörer eller i de fall där aktören har egenskaper och måste visas (bild 2.1).

En uppmärksam läsare kan omedelbart ställa frågan: varför är en skådespelare och inte en skådespelare? Vi håller med om att ordet "ector" skär lite i örat på en ryss. Anledningen till att vi talar på det här sättet är enkel - ektorn bildas av ordet handling, vilket i översättning betyder handling... Den bokstavliga översättningen av ordet "ector" är skådespelare- för lång och obekväm att använda. Därför kommer vi att fortsätta tala på detta sätt.


Ris. 2.1.

Samma uppmärksamma läsare kanske har lagt märke till ordet "prejudikat" som blinkade över definitionen av ektorn. Vad är det? Denna fråga kommer att intressera oss ännu mer om vi kommer ihåg att vi nu pratar om diagram för användningsfall... Så,

Användningsfall- en beskrivning av en särskild aspekt av systemets beteende ur användarens synvinkel (Booch).

Definitionen är ganska klar och omfattande, men den kan förtydligas lite mer med samma Zicom Mentor"ohm:

Användningsfall- en beskrivning av uppsättningen sekventiella händelser (inklusive alternativ) utförda av systemet som leder till resultatet observerat av aktören. Ett användningsfall representerar en enhets beteende och beskriver samspelet mellan aktörer och systemet. Prejudikatet visar inte "hur" ett visst resultat uppnås, utan bara "vad" utförs.

Användningsfall anges på ett mycket enkelt sätt - i form av en ellips, i vilken dess namn anges. Användningsfall och skådespelare kopplas ihop med linjer... Ofta, i ena änden av raden, är ris avbildat. 2.3

  • bildande av allmänna krav för beteendet hos det konstruerade systemet;
  • utveckling av en konceptuell modell av systemet för dess efterföljande detaljering;
  • utarbetande av dokumentation för interaktion med kunder och användare av systemet.
  • Dela detta