User:N9UHZ1/Szoftverfunkció
Szoftver esetén a funkció egy számítógépes program azonosítható jellemzője. [1]
Kontextus
[edit]A funkció kifejezés ugyanazt jelenti a szoftver esetében, mint bármely más rendszer esetében. Például a Brit Királyi Haditengerészet HMS Dreadnought (1906) hajója fontos mérföldkőnek számított a haditengerészeti technológia terén az pre-dreadnought csatahajókban nem letező fejlett funkciói miatt.[2]
A funkció a számítógépes hardverekre is vonatkozik. A számítógépek korai történetében olyan eszközök, mint a Digital Equipment Corporation PDP-7 miniszámítógépe (1964-ben készült) számos funkcióval rendelkeztek, például ez volt az első PDP miniszámítógép-sorozat, amely huzalszalagot használt, és az első, amely szintén ugyanabban az évben felttalált, szabadalmaztatott DEC Flip-Chip modult alkalmazta.[3][4]
A funkció olyan fogalmakra is vonatkozik, mint pédául a programozási nyelvek. A Python programozási nyelv jól ismert arról a funkciójáról, hogy különböző kódrészleteket nem kapcsos zárójelekkel, hanem szóközökkel és tabulátorokkal jelöl.[5]
Egy másik hasonló magas szintű, objektumorientált programozási nyelv, a Ruby, kiemelkedő azzal, hogy a különböző változó hatóköröket a "@" és "$" jelekkel jelöli, amit a fejlesztők a kód olvashatóságának javulásával indokolnak. A fejlesztők azt is állítják, hogy egyik fontos jellemzője a magas rugalmasság.[6]
Az Institute of Electrical and Electronics Engineers (IEEE) a szoftver tesztdokumentáció (elavult) szabványában, az IEEE 829-ben a funkciót egy szoftverelem 'megkülönböztető jellemzőjeként' határozza meg (például teljesítmény, hordozhatóság vagy funkcionalitás).[7]
Bár a funkció általában egy szoftverrendszer pozitív aspektusára utal, a szoftverhiba is egy funkció, de negatív értékkel.
Példák
[edit]A terminálemulátor xterm számos kiemelkedő funkcióval rendelkezik, ideértve az X Windows System kompatibilitását, a VT220 és VT320[8] terminálok emulálásának képességét ANSI színekkel, valamint a menekülési szekvenciák bevitelének lehetőségét számítógépes egérrel vagy más hasonló eszközökkel, és a többi különböző Unix-szerű operációs rendszeren (például Linux, AIX, BSD és HP-UX) való futtatásának képességét.[9]
Jellemzőkben gazdag és funkció túlszaporodás
[edit]A funkciógazdag kifejezés egy szoftverrendszert sok opcióval és képességgel rendelkezővel ír le.
A felhasználó számára egy mechanizmus a funkciógazdag szoftver benevezésére a progresszív feltárás koncepciója, egy olyan technika amely során a funkciókat fokozatosan vezetik be, ahogy azok szükségessé válnak, hogy csökkentsék az egyszerre sok funkció megjelenéséból adódó potencionális zavar lehetőségét.[10]
Néha a funkciógazdag szoftver negatív tulajdonságnak tekintik. A feature creep, software bloat és featuritis kifejezések olyan szoftverekre utalnak, amelyek túlzottan sok funkciót tartalmaznak.[11] Ez a funkció beépítése bizottság általi tervezés eredménye.[12]
A szoftverfejlesztők hajlamának ellensúlyozására, hogy további, szükségtelen funkciókat adjanak hozzá, a Unix filozófiája fejlődött ki a 70-es években a Bell Labs munkatársai által, akik a Unix operaciós rendszeren dolgoztak, mint például Ken Thompson és Dennis Ritchie. A filozófia összefoglalható úgy, hogy a szoftverprogramok általában csak egyetlen elsődleges feladatot kellene végrehajtaniuk, és hogy "a kicsi a gyönyörű".[13][14]
Lásd még
[edit]- Funkció-orientált programozás
- Termékcsalág tervezés
- Szoftvertervezés
- Szoftvertesztelés
- Alkalmazás-életciklus menedzsment
- Feature creep
- Scope creep
- Overengineering
Források
[edit]- ^ Apel, Sven (August 2009). "An Overview of Feature-Oriented Software Development". The Journal of Object Technology. 8 (5): 49–84. doi:10.5381/jot.2009.8.5.c5.
- ^ "How the Dreadnought sparked the 20th Century's first arms race".
- ^ "PDP-7". reference.com Computing Dictionary. Archived from the original on June 16, 2013.
- ^ Tore Sinding Bekkedal (2009). "Digital Equipment Corporation PDP-7". soemtron.org.
- ^ "PEP 8 – Style Guide for Python Code".
- ^ "About Ruby".
- ^ IEEE Std. 829-1998
- ^ "XTERM - Change Log - Patch #24 - 1996/8/11 - XFree86 3.1.2Ee". Archived from the original on 2001-12-22.
- ^ Thomas E. Dickey. "XTerm – Frequently Asked Questions (FAQ), Who wrote XTerm?". Archived from the original on 2018-06-24. Retrieved 2018-06-04.
- ^ User centered system design: new perspectives on human-computer interaction. Norman, Donald A., Draper, Stephen W. Hillsdale, N.J.: L. Erlbaum Associates. 1986. ISBN 0-89859-781-1. OCLC 12665902.
{{cite book}}
: CS1 maint: others (link) - ^ "Featuritis (or creeping featurism)".
- ^ Krystallis, Ilias (2022-09-01). "Normalizing White-Collar Wrongdoing in Professional Service Firms". Journal of Management in Engineering. 38 (5): 04022049. doi:10.1061/(ASCE)ME.1943-5479.0001079. ISSN 1943-5479.
- ^ Doug McIlroy (8 July 1978). "Unix Time-Sharing System: Foreword". The Bell System Technical Journal. Bell Laboratories: 1902–1903.
- ^ "The Unix Philosophy".