Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Это список подходов, стилей, методологий, философий в разработке программного обеспечения и инженерии. Он также содержит парадигмы программирования , методологию разработки программного обеспечения , процессы разработки программного обеспечения , и отдельные практик, принципы и законы.

Некоторые из упомянутых методов больше подходят для конкретной области, чем для другой, например, автомобилестроения или авиакосмической промышленности. [1] [2] Тенденция к гибким методам разработки программного обеспечения заметна, [3] однако потребность в улучшенных исследованиях по этому вопросу также имеет первостепенное значение. [4] [5] Также обратите внимание, что некоторые из перечисленных методов могут быть более новыми или старыми, или все еще используемыми или устаревшими, а исследования методов проектирования программного обеспечения не новы и не продолжаются. [6] [7] [8] [9]

Методологии, руководства, стратегии разработки программного обеспечения [ править ]

Стили крупномасштабного программирования [ править ]

  • Поведенческая разработка
  • Разработка на основе дизайна
  • Домен-ориентированный дизайн
  • Безопасность благодаря дизайну
  • Разработка через тестирование
    • Разработка через приемочные испытания
    • Непрерывная разработка через тестирование
    • Уточнение на примере
  • Разработка на основе данных
  • Дизайн, ориентированный на данные

Парадигмы, связанные со спецификациями [ править ]

  • Итеративная и инкрементальная разработка
  • Модель водопада
  • Формальные методы

Комплексные системы [ править ]

  • Гибкая разработка программного обеспечения
    • Бережливая разработка программного обеспечения
  • Легкая методология
    • Адаптивная разработка программного обеспечения
    • Экстремальное программирование
    • Разработка на основе функций
    • ICONIX
  • Канбан (разработка)

Эмпирические правила, законы, руководящие принципы и принципы [ править ]

  • 300 практических правил и крупиц мудрости (отрывок из книги « Управление неуправляемым - правила, инструменты и идеи для управления людьми и командами программного обеспечения» [10] Микки В. Мантла, Рона Личти)
  • 42 основных вопроса Карпова о программировании, рефакторинге и многом другом
  • Большой шар грязи
  • Основные принципы C ++ [11] (Страуструп / Саттер) P1 - P13 Правила философии
  • Разделение команд и запросов (CQS)
  • Ковбойское кодирование
  • Делай то, что я имею в виду (DWIM)
  • Не повторяйся (СУХОЙ)
  • Программирование без эго
  • Быстро
  • Закон галла
  • Если он не сломан, не чините его.
  • Принцип KISS
  • Закон Деметры , также известный как принцип наименьшего знания
  • Закон сохранения сложности , также известный как закон Теслера
  • Законы Лемана эволюции программного обеспечения
  • Минимализм (вычисления)
  • Правило девяноста девяноста
  • Принцип открыт-закрыт
  • Принцип Парето
  • Закон Паркинсона
  • Принцип наименьшего удивления (ПОЛА)
  • Выпускайте раньше, выпускайте часто
  • Принцип устойчивости , также известный как закон Постела
  • Правило наименьшей мощности
  • Разделение механизма и политики
  • Принцип работы с ослабленной муфтой
  • Единый источник истины (SSOT)
  • Единая версия правды (SVOT)
  • SOLID (объектно-ориентированный дизайн)
  • Есть несколько способов сделать это
  • Принцип единого доступа
  • Философия Unix
  • Чем хуже, тем лучше
  • Тебе это не понадобится (ЯГНИ)

Другое [ править ]

  • Дэвис 201 Принципы разработки программного обеспечения [12]
  • Не заставляйте меня думать (Принципы интуитивной навигации и информационного дизайна) [13]
  • Искусство программирования (общий шедевр информатики Дональда Э. Кнута )
  • The Cathedral and the Bazaar - книга, сравнивающая нисходящее и восходящее программное обеспечение с открытым исходным кодом
  • Философия компьютерных наук [14]
  • Где теория программной инженерии? [15]

Парадигмы программирования [ править ]

  • Агентно-ориентированное программирование
  • Аспектно-ориентированное программирование (АОП)
  • Соглашение важнее конфигурации
  • Компонентная разработка программного обеспечения
  • Функциональное программирование (FP)
  • Иерархический объектно-ориентированный дизайн (HOOD) [16]
  • Грамотное программирование
  • Логическое программирование
  • Модульное программирование
  • Объектно-ориентированное программирование (ООП)
  • Процедурное программирование
  • Реактивное программирование

Методологии разработки программного обеспечения [ править ]

  • Гибкий унифицированный процесс (AUP)
  • Конструктивистская методология проектирования (CDM)
  • Метод разработки динамических систем (DSDM)
  • Экстремальное программирование (XP)
  • Итеративная и инкрементальная разработка
  • Канбан
  • Бережливая разработка программного обеспечения
  • Системная инженерия на основе моделей (MBSE)
  • Открытый единый процесс
  • Парное программирование
  • Быстрая разработка приложений (RAD)
  • Рациональный унифицированный процесс (RUP)
  • Scrum
  • Метод анализа и проектирования структурированных систем (SSADM)
  • Единый процесс (UP)

Процессы разработки программного обеспечения [ править ]

  • Разработка, управляемая активным администратором (AADD)
  • Поведенческая разработка (BDD)
  • Разработка на основе ошибок (BgDD)
  • Разработка на основе конфигурации (CDD)
  • Разработка на основе дизайна (D3)
  • Доменно-ориентированный дизайн (DDD)
  • Разработка на основе функций (FDD)
  • Разработка через тестирование (TDD)
  • Дизайн, ориентированный на пользователя (UCD) ( User-Driven Development (UDD))
  • Дизайн, ориентированный на ценность (VDD)
  • Обзор программного обеспечения
  • Гарантия качества программного обеспечения

См. Также [ править ]

  • Анти-шаблон
  • Соглашения о кодировании
  • Шаблон дизайна
  • Парадигма программирования
  • Методология разработки программного обеспечения
  • Процесс разработки программного обеспечения
  • Очерк информатики
  • Краткое описание программной инженерии
  • Очерк компьютерной инженерии
  • Очерк компьютерного программирования
  • Категория: Принципы программирования

Дальнейшее чтение [ править ]

  • ISO / IEC / IEEE 26515: 2018 (E) - Международный стандарт ISO / IEC / IEEE - Системная и программная инженерия - Разработка информации для пользователей в гибкой среде [17]

Другие материалы, книги, статьи и т. Д. [ Править ]

  • Не заставляйте меня думать (книга Стива Круга о взаимодействии человека с компьютером и удобстве использования Интернета )

Ссылки [ править ]

  1. ^ Gruszczyński, B. (май 2006). «Обзор текущего состояния программной инженерии во встроенной автомобильной электронике» . 2006 Международная конференция IEEE по электро / информационным технологиям : 377–381. DOI : 10.1109 / EIT.2006.252190 .
  2. ^ Патель, Б.К .; Litchfield, V .; Tamanaha, D .; Дэвис, А. (февраль 1991 г.). «Системы реального времени / методологии программного обеспечения для больших аэрокосмических систем» . Дайджест конференции по аэрокосмическим приложениям IEEE 1991 : 2 / 1–2 / 9. DOI : 10.1109 / AERO.1991.154537 .
  3. ^ Яу, Стивен S; Цзя, Сяопин; Пэ, Ду-Хван (1992-05-01). «Методы проектирования программного обеспечения для распределенных вычислительных систем» . Компьютерные коммуникации . Программные аспекты будущих тенденций в распределенных системах. 15 (4): 213–224. DOI : 10.1016 / 0140-3664 (92) 90104-M . ISSN 0140-3664 . 
  4. ^ Stavru, Ставрос (2014-08-01). «Критический анализ последних промышленных исследований по использованию гибких методов» . Журнал систем и программного обеспечения . 94 : 87–97. DOI : 10.1016 / j.jss.2014.03.041 . ISSN 0164-1212 . 
  5. ^ Дыба, Торе; Дингсёйр, Торгейр (1 августа 2008 г.). «Эмпирические исследования гибкой разработки программного обеспечения: систематический обзор» . Информационные и программные технологии . 50 (9): 833–859. DOI : 10.1016 / j.infsof.2008.01.006 . ISSN 0950-5849 . 
  6. Перейти ↑ Taylor, P. (ноябрь 2011 г.). «Дизайнерское мышление: чему методология разработки программного обеспечения может извлечь уроки из теории дизайна» . Труды Международной конференции по программным методам и инструментам. SMT 2000 : 107–116. DOI : 10.1109 / SWMT.2000.890426 .
  7. ^ Яу, Стивен S; Цзя, Сяопин; Пэ, Ду-Хван (1992-05-01). «Методы проектирования программного обеспечения для распределенных вычислительных систем» . Компьютерные коммуникации . Программные аспекты будущих тенденций в распределенных системах. 15 (4): 213–224. DOI : 10.1016 / 0140-3664 (92) 90104-M . ISSN 0140-3664 . 
  8. ^ Gomaa, Хасан (1994-05-01). «Методы проектирования программного обеспечения для проектирования крупномасштабных систем реального времени» . Журнал систем и программного обеспечения . 25 (2): 127–146. DOI : 10.1016 / 0164-1212 (94) 90002-7 . ISSN 0164-1212 . 
  9. ^ Budgen, Дэвид (июль 1995). « Дизайн модели“от методов разработки программного обеспечения» . Исследования дизайна . 16 (3): 293–325. DOI : 10.1016 / 0142-694X (95) 00001-8 . ISSN 0142-694X . 
  10. Перейти ↑ Mantle, Mickey W. (2020). Управление неуправляемым: правила, инструменты и идеи для управления людьми и командами разработчиков программного обеспечения . Рон Личти (2-е изд.). Бостон. ISBN 978-0-13-566763-7. OCLC  1137802633 .
  11. ^ «Основные принципы C ++» . isocpp.github.io . Проверено 11 апреля 2021 .
  12. ^ Дэвис, Алан Марк. (1995). 201 принцип разработки программного обеспечения . Нью-Йорк: Макгроу-Хилл. ISBN 0-07-015840-1. OCLC  31814837 .
  13. ^ Круг, Стив (2014). Не заставляйте меня думать, повторюсь: здравый подход к юзабилити в Интернете . Бейл, Элизабет, Стрейгер, Арен, Матчо, Марк (Третье изд.). [Сан - Франциско, Калифорния]. ISBN 978-0-321-96551-6. OCLC  859556499 .
  14. ^ Тернер, Раймонд; Ангиус, Никола (2020), «Философия компьютерных наук» , в Zalta, Эдвард Н. (редактор), Стэнфордская энциклопедия философии (издание весна 2020 года), Исследовательская лаборатория метафизики, Стэнфордский университет , извлечено 2020-09- 01
  15. ^ Джонсон, Понт; Экстедт, Матиас; Якобсон, Ивар (2012). «Где теория программной инженерии?». Программное обеспечение IEEE . 29 (5): 96. DOI : 10,1109 / MS.2012.127 . ISSN 0740-7459 . S2CID 38239662 .  
  16. ^ Aslett, MJ (декабрь 1991). «Обзор метода HOOD» . Коллоквиум НВО 1991 г. по введению в методологии проектирования программного обеспечения (Ref. №: 1991/181) : 5 / 1–5 / 4.
  17. ^ «Международный стандарт ISO / IEC / IEEE - Системная и программная инженерия - Разработка информации для пользователей в гибкой среде» . ИСО / МЭК / IEEE 26515: 2018 (E) : 1–32. Декабрь 2018 г. doi : 10.1109 / IEEESTD.2018.8584455 .