Community

author
8 minutes, 54 seconds Read

Tekijä: Ding Yi, lempinimeltään Sanhua Alibabassa.

Teknisen viestinnän arvo ei heijastu vain tapaan, jolla sovelluksia kehitetään kaupallisten tuotteiden ja avoimen lähdekoodin projektien avulla, ja tapaan, jolla erilaisia liiketoiminnan käynnistysprosesseja nopeutetaan. Mutta sen arvo heijastuu hyvin paljon myös useiden erilaisten erinomaisten insinöörien jakamassa kokemuksessa tuottavuuden parantamisesta, tuotteiden suorituskyvyn optimoinnista ja käyttäjäkokemuksen edistämisestä. Lyhyesti sanottuna tekninen viestintä on tärkeää, koska se parantaa ammatillisia valmiuksiamme.

Tässä artikkelissa Alibaban tekninen asiantuntija Ding Yi jakaa ajatuksiaan ja kokemuksiaan tehokkaiden arkkitehtuurikaavioiden luomisesta.

Kuvaillessamme järjestelmäämme yhdessä tai useammassa kaaviossa törmäämme usein seuraaviin ongelmiin:

  • Emmekä tiedä, mistä aloittaisimme.
  • Emmekä tiedä, miten kuvata järjestelmää yhdessä kaaviossa, joka on riittävän selkeä, jotta asiaankuuluvat tuote-, käyttö- ja kehitystiimit ymmärtäisivät sen selkeästi.
  • Puolessa välissä huomaammekin, ettemme tiedä, kuka on yleisö.
  • Emmekä tiedä, kuvaammeko tuotteen toiminnallista kaaviota, teknistä kaaviota vai pelkkää sekoitusta.
  • Kun kaaviossa on liian vähän laatikoita, emme tiedä, mitä muuta pitäisi lisätä.
  • Emmekä ole koskaan tyytyväisiä kaavion ulkoasuun.

Jos olet törmännyt samoihin ongelmiin, tässä artikkelissa esitellään piirustusmenetelmä selkeiden arkkitehtuurikaavioiden tuottamiseksi.

Käsitteet

Mikä on arkkitehtuuri?

”Arkkitehtuuri” voidaan määritellä abstraktiksi kuvaukseksi järjestelmän entiteeteistä ja niiden välisistä suhteista. Siihen liittyy sarja päätöksentekoprosesseja.

Arkkitehtuuri on rakenne ja visio.

”Järjestelmäarkkitehtuuri” on käsitteiden ilmentymä ja asioiden tai tiedon toimintojen ja muodollisten elementtien välisten vastaavuuksien jako. Se määrittelee elementtien väliset suhteet sekä elementtien ja ympäröivän ympäristön väliset suhteet.

Järkevän arkkitehtuurin rakentaminen on monitahoinen tehtävä ja suuri aihe, josta voimme keskustella tässä. Kun olet rakentanut arkkitehtuurin, asiaankuuluvien osapuolten on ymmärrettävä se ja noudatettava sen määräyksiä.

Mikä on arkkitehtuurikaavio?

Arkkitehtuurikaavio on järjestelmää kuvaava kaavio, jota käytetään abstrahoimaan ohjelmistojärjestelmän yleinen hahmotelma ja komponenttien väliset suhteet, rajoitukset ja rajat. Se on tärkeä työkalu, koska se tarjoaa kokonaiskuvan ohjelmistojärjestelmän fyysisestä käyttöönotosta ja sen kehityssuunnitelmasta.

Mitä arkkitehtuurikaavion tehtävät ovat?

Kaavio, aivan kuten kuva, kertoo enemmän kuin tuhat sanaa. Toisin sanoen arkkitehtuurikaavion on palveltava useita eri toimintoja. Jotta asiaankuuluvat käyttäjät voivat ymmärtää järjestelmän arkkitehtuurin ja seurata sitä päätöksenteossaan, meidän on välitettävä tietoa arkkitehtuurista. Arkkitehtuurikaaviot ovat erinomainen tapa tehdä tämä. Tiivistäen joitakin tärkeimpiä toimintoja, arkkitehtuurikaavion on:

  • Murtamaan kommunikaatioesteitä
  • Saavuttamaan yhteisymmärrystä
  • Vähentämään epäselvyyksiä

Arkkitehtuurikaavioiden tyyppejä

Arkistokaaviot voidaan luokitella moneen luokkaan. Yksi suosittu kaaviotyyppi on 4+1-näkymä, joka sisältää arkkitehtuurin skenaario-, loogisen, fyysisen, prosessi- ja kehitysnäkymän.

Skenaario-näkymä

Skenaario-näkymä kuvaa järjestelmän osallistujien ja toiminnallisten käyttötapausten välisiä suhteita ja kuvastaa järjestelmän lopullisia vaatimuksia ja vuorovaikutuksen suunnittelua. Tämä näkymä on yleensä käyttötapauskaavio.

Logiikkanäkymä

Logiikkanäkymää käytetään kuvaamaan komponenttien suhteita, komponenttirajoituksia ja rajoja järjestelmäohjelmiston toimintojen jaottelun jälkeen. Se kuvastaa järjestelmän kokonaiskoostumusta ja sitä, miten järjestelmä on rakennettu. Tämä näkymä on yleensä UML-komponenttikaavio tai luokkakaavio.

Fyysinen näkymä

Fyysinen näkymä kuvaa järjestelmäohjelmiston ja fyysisen laitteiston välisen kartoituksen ja osoittaa, miten järjestelmän komponentit on sijoitettu laskettavissa olevien fyysisten solmujen ryhmään. Se opastaa ohjelmistojärjestelmän käyttöönottoprosessissa.

Prosessinäkymä

Prosessinäkymässä kuvataan järjestelmän ohjelmistokomponenttien välinen tiedonsiirtojärjestys sekä datan syöttö ja ulostulo ja se kuvastaa järjestelmän toiminnallisia ja tietovirtoja. Tämä näkymä esitetään tavallisesti sekvenssikaaviona tai vuokaaviona.

Kehitysnäkymä

Kehitysnäkymää käytetään kuvaamaan järjestelmämoduulien jakoa ja koostumusta sekä tarkentamaan sisäisten pakettien koostumussuunnittelua. Tätä näkymää käyttävät kehittäjät, ja se kuvastaa järjestelmän kehitys- ja toteutusprosesseja.

Viisi edellä mainittua arkkitehtuurinäkymää kuvaavat ohjelmistojärjestelmän eri ominaisuuksia eri näkökulmista. Yhdistämällä ne arkkitehtuurikaavioksi voimme sitten kuvata järjestelmän kokonaisarkkitehtuurin hyvin selkeästi.

Mikä tekee tehokkaasta arkkitehtuurikaaviosta?

Miten voimme tietää, onko kaavio hyvä kaavio? Ja mitä menetelmiä meidän tulisi käyttää kaavioiden luomiseen?

Yllä olevat kaaviot on valittu havainnollistamaan erilaisia kaaviotyyppejä, eikä niiden laatua ole juurikaan mietitty. Mielestämme hyvän arkkitehtuurikaavion kuvaamiseksi meidän on tiedettävä, kuka on yleisömme, ja mietittävä, mitä tietoa haluamme välittää. Siksi meidän ei pitäisi kuvata fyysistä näkymää tai loogista näkymää sen itsensä vuoksi. Kaavioita tulisi käyttää, jotta ne välittäisivät täsmällisesti tietyn yleisön tarvitsemat tiedot, jotta ne olisivat tehokkaita. Vasta sen jälkeen meidän pitäisi huolehtia siitä, minkä tyyppinen kaavio se on. Siksi suorin standardi, jolla voimme arvioida piirustuksen laatua, on se, ymmärtääkö yleisö tarkasti sen tiedon, jonka olemme yrittäneet välittää.

Tämä tarkoittaa, että hyvää ja tehokasta arkkitehtuurikaaviota ei tarvitse selittää yleisölle. Sen pitäisi ilmaista kaikki, mitä halutaan sanoa, ihan itsestään. Lisäksi hyvällä kaaviolla pitäisi olla myös johdonmukainen rakenne, sen pitäisi olla tarkka edustamaansa dataan nähden ja sen pitäisi vastata suoraan koodia.

Yleisiä haasteita arkkitehtuurikaavioita kuvattaessa

Mitä neliö edustaa?

Miksi käytämme neliöitä ympyröiden sijaan? Neliöiden tai muiden muotojen satunnainen käyttö voi aiheuttaa sekaannusta.

Mitä tarkoittavat katkoviivat ja yhtenäiset viivat? Mitä nuoli tarkoittaa? Mitä värit tarkoittavat?

Viivojen tai nuolien mielivaltainen käyttö voi johtaa väärinkäsityksiin.

Onko ajonaikaisen ja kääntämisajan välillä ristiriitoja? Onko tasoristiriitoja?

Arkkitehtuurin rakentaminen on monimutkaista työtä. Siksi vain yhden kaavion käyttäminen arkkitehtuurin esittämiseen voi helposti johtaa epäselvyyksiin arkkitehtuurin tietyistä näkökohdista.

Suosittelemani piirtotapa

C4-mallissa käytetään kontteja, kuten sovelluksia, tietovarastoja ja mikropalveluja, sekä komponentteja ja koodia kuvaamaan ohjelmistojärjestelmän staattista rakennetta. Nämä kaaviot on helppo piirtää, ja niiden keskeiset elementit ovat yksiselitteisiä. Tärkeintä on kuitenkin se, että niissä pystytään selkeästi osoittamaan kunkin kaavion kohdeyleisö ja merkitys.

Oheinen esimerkki on peräisin viralliselta C4-sivustolta. Sen perusteella onnistumme käyttämään omaa ymmärrystämme ohjelmiston arkkitehtuurin parempaan ilmaisemiseen.

Järjestelmän kontekstikaavio

Tämä on kaavio suunnitellusta pankkijärjestelmästä. Se käyttää ulkoista mainframe-pankkijärjestelmää asiakastilien ja tapahtumatietojen käyttämiseen ja lähettää sähköpostiviestejä asiakkaille ulkoisen sähköpostijärjestelmän kautta. Kuten näet, kaavio on yksinkertainen ja selkeä. Se ei vaadi mitään lisäselvityksiä, jotta yleisö ymmärtäisi sen. Näemme myös, että se sisältää rakennettavan järjestelmän, järjestelmän asiakkaat ja oheisjärjestelmät, jotka ovat vuorovaikutuksessa tämän järjestelmän kanssa.

Käyttö

Tällaisesta yksinkertaisesta kaaviosta voidaan päätellä, minkä tyyppinen järjestelmä rakennetaan, ketkä ovat sen käyttäjiä, ketkä sitä käsittelevät ja miten se integroidaan olemassa olevaan IT-ympäristöön. Kaavion kohderyhmänä voi olla kehitystiimin sisäinen henkilökunta, ulkopuolinen tekninen henkilökunta tai ei-tekninen henkilökunta. Se kertoo:

  • Millainen järjestelmä rakennetaan?
  • Kuka sitä manipuloi?
  • Miten se integroidaan olemassa olevaan tietotekniseen ympäristöön?

Miten kaaviota kuvataan

Tässä kaaviossa oma järjestelmä on keskellä, ja sen ympärille on sijoitettu käyttäjiä ja järjestelmiä, jotka ovat vuorovaikutuksessa tämän järjestelmän kanssa. Tärkeintä tässä kaaviossa on se, että se järjestää ja näyttää selkeästi rakennettavan järjestelmän käyttäjät ja korkean tason riippuvuudet. Kun käsitteellinen työ on tehty, kaavion kuvaaminen vie vain muutaman minuutin.

Kontti-kaavio

Kontti-kaavio laajentaa edellisessä järjestelmäkontekstikaaviossa esitettyä järjestelmää.

Edellisessä kuviossa rakennettavaan järjestelmään kuuluu käyttäjien ja oheisjärjestelmien lisäksi Javan Spring MVC:hen perustuva web-sovellus, joka tarjoaa järjestelmän toimintoportaalin, kun taas Xamariiniin perustuva mobiiliapplikaatio tarjoaa toimintoportaalin mobiiliasiakkaille. Java-pohjainen API-sovellus tarjoaa palveluja, ja tallennukseen käytetään MySQL-tietokantaa. Nuolet osoittavat sovellusten välisiä vuorovaikutussuhteita.

Kun katsot tätä kaaviota, et huomaa, onko laatikoilla terävät vai pyöristetyt kulmat tai onko nuolilla yhtenäiset vai katkoviivat. Edes nuolien suunnat eivät herätä suurta huomiota.

On olemassa monia piirtomenetelmiä, jotka kaikki määrittelevät kehysten ja viivojen merkitykset. Tämä edellyttää, että sekä kaavion piirtäjä että katsoja ymmärtävät nämä määritelmät selkeästi. Vain siten voidaan ymmärtää kaikki kaavion sisältämä tieto. Tämä on kuitenkin vaativaa, ja monet katsojat tajuavat vain yleiset käsitteet.

Käyttö

Tämän kaavion yleisö voi olla sisäisiä tai ulkoisia kehittäjiä tai O&M-henkilöstöä. Tämä kaavio palvelee seuraavia tarkoituksia:

  • Se esittää ohjelmistojärjestelmän yleisen rakenteen.
  • Se kuvastaa korkean tason teknistä päätöksentekoa.
  • Se osoittaa, miten vastuualueet on jaettu järjestelmässä ja miten kontit ovat vuorovaikutuksessa keskenään.
  • Se kertoo kehittäjille, missä tarvitaan koodin ohjelmointia.

Miten kaaviota kuvataan

Tässä kaaviossa käytetään kehyksiä, jotka voivat sisältää nimiä, teknisiä valintoja, vastuita ja kehysten välisiä vuorovaikutuksia. Jos mukana on ulkoinen järjestelmä, rajaus kannattaa määritellä.

Komponenttikaavio

Komponenttikaaviota käytetään kontin laajentamiseen ja sen sisäisten moduulien kuvaamiseen.

Käyttö

Tämä kaavio on tarkoitettu sisäisille kehittäjille, ja se näyttää heille, miten koodia järjestetään ja kehitetään. Tämä kaavio palvelee seuraavia tarkoituksia:

  • Se kuvaa järjestelmän komponentit tai palvelut.
  • Se selventää komponenttien välisiä suhteita ja riippuvuuksia.
  • Se tarjoaa kehyksen, joka osoittaa, miten ohjelmistokehitystehtävät voidaan jakaa ja toimittaa.

Koodi- tai luokkakaavio

Tämä kaaviokaavio on tarkoitettu teknisen tuen henkilöstölle. Se on yleinen kaaviotyyppi, joten emme kuvaa sitä yksityiskohtaisesti.

Tapaustutkimus

Seuraavassa kuvassa on esitetty sisäisen reaaliaikaisen datatyökalun arkkitehtuuri. Koska arkkitehtuurikaavion pitäisi olla itsestään selvä, sitä ei tarvitse juurikaan selittää. Jos sitä ei voi selvästi ymmärtää, kaavio ei varmasti ole riittävän hyvä.

Hyvän arkkitehtuurikaavion kuvaamiseen on monia menetelmiä. Tässä artikkelissa esitellään C4-menetelmä, joka kuitenkin myös kehittyy jatkuvasti. Tästä huolimatta piirustusmenetelmästä riippumatta meidän on yksinkertaisesti otettava huomioon piirustuksen tarkoitus ja välitettävä se paremmin yleisölle. Meidän ei tarvitse rajoittua tarpeettomasti sääntöihin piirustusprosessissa. Lyhyesti sanottuna, kysy itseltäsi ennen kaavion aloittamista: Kenelle se on tarkoitettu, mistä se koostuu ja miten siitä tehdään intuitiivinen ja ymmärrettävä.

Tekijästä: Sanhua on tekninen asiantuntija Alibabassa. Zijing, Pengsheng ja Yule osallistuivat myös tämän artikkelin kirjoittamiseen. Ding Yi työskenteli aiemmin useita vuosia työnkulkumoottorin R&D:n parissa, mutta nyt hän keskittyy korkeavaluuttaisten mobiilien Internet-sovellusten arkkitehtuuriin ja kehittämiseen. Tämän artikkelin kirjoittajat ovat Alibaban LST-osastolta.

Oletko innokas tuntemaan Alibaba Cloudin viimeisimmät teknologiatrendit? Kuule ne huippuasiantuntijoiltamme hiljattain lanseeratussa Tech Show -sarjassamme!

Similar Posts

Vastaa

Sähköpostiosoitettasi ei julkaista.