Vaihteisto (ohjelmointi)

Kiinnitys [1] , kytkentä , liitettävyys , konjugaatio [2] ( englanniksi  kytkentä ) - ohjelmistomoduulien välisen riippuvuuden menetelmä ja aste [3] ; moduulien välisten liitäntöjen vahvuus [4] ; mitta eri rutiinien tai moduulien keskinäisriippuvuudesta [3] .

Vahvaa kytkentää pidetään vakavana haittapuolena, koska se vaikeuttaa moduulien logiikan ymmärtämistä, muokkaamista, testaamista itsenäisesti ja myös uudelleenkäyttöä erikseen. Heikko koheesio puolestaan ​​on merkki hyvin jäsennellystä ja hyvin suunnitellusta järjestelmästä, ja yhdistettynä vahvaan koheesioon vastaa yleisiä hyvän luettavuuden ja ylläpidettävyyden indikaattoreita.

Linkitys- ja liitettävyysmittarit loi Larry Constantine , alkuperäinen rakennesuunnittelun kehittäjä [5] , joka oli myös tällaisten käsitteiden varhainen kannattaja (katso myös SSADM ) .

Heikko linkitys on yksi Craig Larmanin GRASP - kuvioista [6] .

Vaihteistotyypit

ISO/IEC/IEEE 24765:n mukaan sitoutumistyyppejä ovat: [3]

Menetelmiä vaihteiston pienentämiseksi

Irrotusmenetelmiä on useita .  Tyypillisesti ne kuvataan suunnittelukuvioiden muodossa . Yksi keskeinen tekniikka on ohjauksen inversio ja erityisesti riippuvuuden lisääminen .

Kerrostetun sovellusarkkitehtuurin, kuten Model-View-Controller , Model-View-Presenter , Model-View-ViewModel jne., käyttö auttaa myös vähentämään sotkua .

Katso myös

Muistiinpanot

  1. Kravchenko A. K., Afanasyeva I. V. Vaihteiston ja liitettävyyden muutosten vaikutus koodin monimutkaisuuteen ja sen nopeuteen ohjelmistokehityksessä // Radioelectronics and Informatics, 2016, nro 3, s. 9-12.
  2. McConnell, 2010 .
  3. 1 2 3 ISO/IEC/IEEE 24765-2017 Järjestelmä- ja ohjelmistotekniikka - Sanasto . Haettu 1. marraskuuta 2021. Arkistoitu alkuperäisestä 31. maaliskuuta 2022.
  4. ISO/IEC TR 19759:2005, Ohjelmistotuotanto – Ohjelmistosuunnittelun osaamiselimen (SWEBOK) opas
  5. W. Stevens, G. Myers, L. Constantine, "Structured Design", IBM Systems Journal, 13(2), 115-139, 1974.
  6. Philip A. Laplante, Philip A. Laplante. Mitä jokaisen insinöörin tulisi tietää ohjelmistosuunnittelusta. - CRC Press, 2007. - S. 105-106. - ISBN 978-1-4200-0674-2 .

Kirjallisuus