Lista filozofii tworzenia oprogramowania - List of software development philosophies
Rozwój oprogramowania |
---|
Jest to lista podejść, stylów, metodologii, filozofii w tworzeniu oprogramowania i inżynierii. Zawiera on również paradygmat programowania , metod rozwoju oprogramowania , procesów tworzenia oprogramowania oraz pojedyncze praktyki, zasady i prawa.
Niektóre z wymienionych metod są bardziej odpowiednie dla określonej dziedziny niż inne, takie jak motoryzacja czy lotnictwo. Zauważalny jest trend w kierunku zwinnych metod w inżynierii oprogramowania, jednak nadrzędna jest również potrzeba udoskonalenia badań na ten temat. Należy również zauważyć, że niektóre z wymienionych metod mogą być nowsze lub starsze lub nadal używane lub nieaktualne, a badania nad metodami projektowania oprogramowania nie są nowe i trwają.
Metodologie, wytyczne, strategie tworzenia oprogramowania
Style programowania na dużą skalę
- Rozwój oparty na zachowaniu
- Rozwój oparty na projektowaniu
- Projektowanie oparte na domenie
- Bezpieczne z założenia
- Rozwój oparty na testach
- Rozwój oparty na danych
- Projektowanie zorientowane na dane
Kompleksowe systemy
Praktyczne zasady, prawa, wytyczne i zasady
- 300 Rules of Thumb and Nuggets of Wisdom (fragment książki Managing the Unmanageable - Rules, Tools and Insights for Managing Software People and Teams autorstwa Mickey W. Mantle, Ron Lichty)
- 42 ostateczne pytania Karpowa dotyczące programowania, refaktoryzacji i wszystkiego
- Wielka kula błota
- Podstawowe wytyczne C++ (Stroustrup/Sutter) Zasady filozofii P1 - P13
- Rozdzielenie polecenia-zapytania (CQS)
- Kodowanie kowbojskie
- Rób to, co mam na myśli (DWIM)
- Nie powtarzaj się (DRY)
- Programowanie bez ego
- Szybka awaria
- Prawo Galla
- Jeśli nie jest zepsuty, nie naprawiaj tego
- Zasada pocałunku
- Prawo Demeter , znane również jako zasada najmniejszej wiedzy
- Prawo zachowania złożoności , znane również jako prawo Teslera
- Prawa Lehmana dotyczące ewolucji oprogramowania
- Minimalizm (komputer)
- Zasada dziewięćdziesiąt dziewięć
- Zasada otwarte-zamknięte
- Zasada Pareto
- Prawo Parkinsona
- Zasada najmniejszego zdziwienia (POLA)
- Wypuszczaj wcześnie, wypuszczaj często
- Zasada solidności , znana również jako prawo Postela
- Zasada najmniejszej mocy
- Separacja mechanizmu i polityki
- Usługa luźnego połączenia zasada
- Pojedyncze źródło prawdy (SSOT)
- Pojedyncza wersja prawdy (SVOT)
- SOLID (projektowanie obiektowe)
- Jest na to więcej niż jeden sposób
- Zasada jednolitego dostępu
- Filozofia Uniksa
- Gorzej jest lepiej
- Nie będziesz tego potrzebować (YAGNI)
- Ogólne wzorce przypisania odpowiedzialności w oprogramowaniu (GRASP)
Inne
- Davis 201 Zasady tworzenia oprogramowania
- Don't Make Me Think (Zasady intuicyjnej nawigacji i projektowania informacji)
- The Art of Computer Programming (ogólne arcydzieło informatyki autorstwa Donalda E. Knutha )
- The Cathedral and the Bazaar — książka porównująca oprogramowanie open-source odgórne i oddolne
- Filozofia informatyki
- Gdzie jest teoria inżynierii oprogramowania?
Paradygmaty programowania
- Programowanie agentowe
- Programowanie aspektowe (AOP)
- Konwencja nad konfiguracją
- Inżynieria oprogramowania oparta na komponentach
- Programowanie funkcjonalne (FP)
- Hierarchiczne projektowanie obiektowe (HOOD)
- Programowanie piśmienne
- Programowanie logiczne
- Programowanie modułowe
- Programowanie obiektowe (OOP)
- Programowanie proceduralne
- Programowanie reaktywne
Metodologie tworzenia oprogramowania
- Zwinny ujednolicony proces (AUP)
- Konstrukcjonistyczna metodologia projektowania (CDM)
- Metoda rozwoju systemów dynamicznych (DSDM)
- Programowanie ekstremalne (XP)
- Rozwój iteracyjny i przyrostowy
- Kanban
- Rozwój oprogramowania szczupłego
- Inżynieria systemów oparta na modelach (MBSE)
- Otwórz ujednolicony proces
- Programowanie par
- Szybki rozwój aplikacji (RAD)
- Racjonalny ujednolicony proces (RUP)
- Scrum
- Metoda analizy i projektowania systemów strukturalnych (SSADM)
- Ujednolicony proces (UP)
Procesy rozwoju oprogramowania
- Programowanie sterowane przez Active-Admin (AADD)
- Rozwój oparty na zachowaniu (BDD)
- Rozwój sterowany błędami (BgDD)
- Programowanie sterowane konfiguracją (CDD)
- Rozwój oparty na projektowaniu (D3)
- Projektowanie oparte na domenie (DDD)
- Rozwój oparty na funkcjach (FDD)
- Rozwój oparty na testach (TDD)
- Projektowanie zorientowane na użytkownika (UCD) ( Rozwój zorientowany na użytkownika (UDD))
- Projekt oparty na wartości (VDD)
- Przegląd oprogramowania
- Certyfikat Jakości Oprogramowania
Zobacz też
- Antywzór
- Konwencje kodowania
- Wzór projektu
- Paradygmat programowania
- Metodologia tworzenia oprogramowania
- Proces tworzenia oprogramowania
- Zarys informatyki
- Zarys inżynierii oprogramowania
- Zarys inżynierii komputerowej
- Zarys programowania komputerowego
- Kategoria:Zasady programowania
Dalsza lektura
- ISO / IEC / IEEE 26515: 2018 (E) - ISO / IEC / IEEE International Standard - Inżynieria systemów i oprogramowania - Opracowywanie informacji dla użytkowników w zwinnym środowisku
Inne materiały, książki, artykuły itp.
- Don't Make Me Think (książka Steve'a Kruga o interakcji człowieka z komputerem i użyteczności sieci )
Bibliografia
- ^ Gruszczyński B. (maj 2006). „Przegląd aktualnego stanu inżynierii oprogramowania we wbudowanej elektronice samochodowej” . 2006 Międzynarodowa Konferencja IEEE na temat Elektrotechniki/Technologii Informacyjnej : 377-381. doi : 10.1109/EIT.2006.252190 . Numer ISBN 0-7803-9592-1. S2CID 34164454 .
- ^ Patel, BK; Litchfield, V.; Tamanaha, D.; Davis, A. (luty 1991). „Systemy czasu rzeczywistego/metodologie oprogramowania dla dużych systemów lotniczych” . 1991 Skrót konferencji IEEE Aerospace Applications : 2/1-2/9. doi : 10.1109/AERO.1991.154537 . Numer ISBN 0-87942-686-1. S2CID 151614328 .
- ^ Yau, Stephen S; Jia, Xiaopinga; Bae, Doo-Hwan (1992-05-01). "Metody projektowania oprogramowania dla rozproszonych systemów obliczeniowych" . Komunikacja komputerowa . Programowe aspekty przyszłych trendów w systemach rozproszonych. 15 (4): 213–224. doi : 10.1016/0140-3664(92)90104-M . ISSN 0140-3664 .
- ^ Stawru, Stawros (01.08.2014). „Krytyczna analiza ostatnich badań przemysłowych dotyczących stosowania metod zwinnych” . Dziennik systemów i oprogramowania . 94 : 87-97. doi : 10.1016/j.jss.2014.03.041 . ISSN 0164-1212 .
- ^ Dyba, Tore; Dingsøyr, Torgeir (2008-08-01). „Badania empiryczne zwinnego tworzenia oprogramowania: przegląd systematyczny” . Technologia informacyjna i programowa . 50 (9): 833-859. doi : 10.1016/j.infsof.2008.01.006 . ISSN 0950-5849 .
- ^ Taylor, P. (listopad 2011). „Designerskie myślenie: jakiej metodologii oprogramowania można się nauczyć z teorii projektowania” . Proceedings Międzynarodowa konferencja na temat metod i narzędzi oprogramowania. SMT 2000 : 107-116. doi : 10.1109/SWMT.2000.890426 . Numer ISBN 978-0-7695-0903-7. S2CID 110041968 .
- ^ Yau, Stephen S; Jia, Xiaopinga; Bae, Doo-Hwan (1992-05-01). "Metody projektowania oprogramowania dla rozproszonych systemów obliczeniowych" . Komunikacja komputerowa . Programowe aspekty przyszłych trendów w systemach rozproszonych. 15 (4): 213–224. doi : 10.1016/0140-3664(92)90104-M . ISSN 0140-3664 .
- ^ Gomaa, Hassan (1994-05-01). „Metody projektowania oprogramowania do projektowania wielkoskalowych systemów czasu rzeczywistego” . Dziennik systemów i oprogramowania . 25 (2): 127–146. doi : 10.1016/0164-1212(94)90002-7 . ISSN 0164-1212 .
- ^ Budgen, David (lipiec 1995). „ ' Modele projektowe' z metod projektowania oprogramowania” . Studia projektowe . 16 (3): 293-325. doi : 10.1016/0142-694X(95)00001-8 . ISSN 0142-694X .
- ^ Płaszcz, Mickey W. (2020). Zarządzanie tym, czym nie można zarządzać: reguły, narzędzia i spostrzeżenia dotyczące zarządzania ludźmi i zespołami zajmującymi się oprogramowaniem . Ron Lichty (wyd. 2). Boston. Numer ISBN 978-0-13-566763-7. OCLC 1137802633 .
- ^ "Podstawowe wytyczne C++" . isocpp.github.io . Pobrano 2021-04-11 .
- ^ Davis, Alan Mark. (1995). 201 zasady tworzenia oprogramowania . Nowy Jork: McGraw-Hill. Numer ISBN 0-07-015840-1. OCLC 31814837 .
- ^ Krug Steve (2014). Nie każ mi myśleć, ponownie: zdroworozsądkowe podejście do użyteczności sieci . Bayle, Elisabeth,, Straiger, Aren,, Matcho, Mark (wyd. trzecie). [San Francisco, Kalifornia]. Numer ISBN 978-0-321-96551-6. 859556499 OCLC .
- ^ Turner, Raymond; Angius, Nicola (2020), „The Philosophy of Computer Science” , w Zalta, Edward N. (red.), The Stanford Encyclopedia of Philosophy (wyd. wiosna 2020), Metaphysics Research Lab, Stanford University , pobrane 2020-09- 01
- ^ Johnsona, Ponta; Ekstedt, Mathias; Jacobson, Ivar (2012). „Gdzie jest teoria inżynierii oprogramowania?”. Oprogramowanie IEEE . 29 (5): 96. doi : 10.1109/MS.2012.127 . ISSN 0740-7459 . S2CID 38239662 .
- ^ Aslett, MJ (grudzień 1991). „Przegląd metody HOOD” . 1991 IEE Colloquium na temat wprowadzenia do metodologii projektowania oprogramowania (nr ref.: 1991/181) : 5/1-5/4.
- ^ Norma międzynarodowa ISO/IEC/IEEE — Inżynieria systemów i oprogramowania — Opracowywanie informacji dla użytkowników w zwinnym środowisku . ISO/IEC/IEEE 26515:2018(E) . grudzień 2018. s. 1-32. doi : 10.1109/IEEESTD.2018.8584455 . Numer ISBN 978-1-5044-5297-7.