Краткое описание разработки программного обеспечения
Следующий план представляет собой обзор и актуальное руководство по разработке программного обеспечения:
Программная инженерия – применение систематического, дисциплинированного, поддающегося количественной оценке подхода к разработке, эксплуатации и обслуживанию программного обеспечения ; это применение техники к программному обеспечению . [1]
Система компьютерной классификации ACM представляет собой полииерархическую онтологию, которая организует темы в этой области и может использоваться в семантических веб-приложениях, а также в качестве де-факто стандартной системы классификации для этой области. Основной раздел «Программное обеспечение и его разработка» представляет собой схему и онтологию разработки программного обеспечения.
Программные приложения [ править ]
Инженеры- программисты создают программное обеспечение ( приложения , операционные системы , системное программное обеспечение ), которое используют люди.
Приложения влияют на разработку программного обеспечения, заставляя разработчиков решать проблемы новыми способами. Например, потребительское программное обеспечение подчеркивает низкую стоимость, медицинское программное обеспечение подчеркивает высокое качество, а программное обеспечение для интернет-коммерции подчеркивает быстрое развитие.
- Программное обеспечение для бизнеса
- Аналитика
- авиабилетов Бронирование
- Банковское дело
- Банкоматы
- Проверить обработку
- Кредитные карты
- Коммерция
- Торговля
- Аукционы (например, eBay)
- Реверсивные аукционы (закупки)
- Сканеры штрих-кода
- Составители
- Коммуникация
- Электронная почта
- Мессенджеры
- VOIP
- Календари — планирование и координация
- Контакты менеджеров
- Компьютерная графика
- Анимация
- Спецэффекты для видео и кино
- Редактирование
- Постобработка
- Криптография
- Базы данных , поддерживают практически все поля
- Встроенные системы Как инженеры-программисты, так и традиционные инженеры пишут системы управления программным обеспечением для встраиваемых продуктов.
- Автомобильное программное обеспечение
- Программное обеспечение для авионики
- Программное обеспечение для систем отопления, вентиляции и кондиционирования воздуха ( HVAC ).
- Программное обеспечение для медицинского оборудования
- Телефония
- Телеметрия
- Инженерное дело Все традиционные инженерные отрасли широко используют программное обеспечение. Инженеры используют электронные таблицы чаще, чем когда-либо калькуляторы. Инженеры используют специальные программные инструменты для проектирования, анализа и моделирования своих собственных проектов, таких как мосты и линии электропередачи. Эти проекты во многих отношениях напоминают программное обеспечение, поскольку работа существует в виде электронных документов и проходит этапы анализа, проектирования , внедрения и тестирования. Программные средства для инженеров используют принципы информатики; а также принципы исчисления, физики и химии.
- Файл
- Финансы
- Игры
- Информационные системы , поддерживают практически все области
- Логистика
- Производство
- Музыка
- Управление сетью
- Сети и Интернет
- Офисные пакеты
- Операционные системы
- Робототехника
- Обработка сигналов , кодирование и интерпретация сигналов
- Обработка изображений , кодирование и интерпретация визуальной информации
- Обработка речи
- Распознавание текста
- Распознавание рукописного ввода
- Моделирование поддерживает практически все области.
- Инженерное моделирование . Программное моделирование может быть дешевле в создании и более гибким в изменении, чем физическая инженерная модель .
- Науки
- Науки
- Контроль дорожного движения
- Обучение
- Сверлить
- Моделирование
- Тестирование
- Визуализация , поддерживает практически все поля
- Голосование
- Всемирная паутина
Темы разработки программного обеспечения [ править ]
Парадигма программирования, основанная на технологии языка программирования [ править ]
- Объектно-ориентированное программирование
- Аспектно-ориентированное программирование
- Функциональная декомпозиция
- Структурированное программирование
- Программирование на основе правил
Базы данных [ править ]
Графические пользовательские интерфейсы [ править ]
- GTK+ Набор инструментов GIMP
- wxWidgets
- Ultimate++
- Qt-инструментарий
- ФЛТК
Инструменты программирования [ править ]
- Управление конфигурацией и управление исходным кодом
- CVS
- Подрывная деятельность
- Гит
- Меркуриальный
- РКС
- ГНУ Арка
- Синхронизатор LibreSource
- Сервер Team Foundation
- Командные службы Visual Studio
- Инструменты сборки
- Делать
- Грабли
- Кабал
- Муравей
- падать
- Нант
- Мавен
- Последний строитель
- Градл
- Сервер Team Foundation
- Командные службы Visual Studio
- Визуальная сборка Pro
- Редакторы
- парсера Инструменты создания
- Инструменты статического анализа кода
Библиотеки [ править ]
Языки дизайна [ править ]
Шаблоны документируют многие распространенные методы программирования и проектами управления .
Процессы и методологии [ править ]
- Гибкий
- Тяжёлый вес
- Чистое помещение
- ISO/IEC 12207 — процессы жизненного цикла программного обеспечения
- ИСО 9000 и ИСО 9001
- Модели процессов
- Метамодели
Платформы [ править ]
Платформа объединяет компьютерное оборудование и операционную систему. По мере того как платформы становятся более мощными и менее дорогостоящими, приложения и инструменты становятся более доступными.
- ВАРИТЬ
- Cray Суперкомпьютеры
- DEC Мини-компьютеры
- IBM Мэйнфреймы
- с Linux ПК
- Классические с Mac OS и macOS ПК
- Майкрософт .NET
- Пальмовые КПК
- Сан Микросистемс Солярис
- с ОС Windows ПК ( Wintel )
- ОС Симбиан
Другие практики [ править ]
- Коммуникация
- Метод инженерии
- Парное программирование
- Проектирование производительности
- Производительность программирования
- Рефакторинг
- Инспекции программного обеспечения / проверки кода
- Повторное использование программного обеспечения
- Системная интеграция
- Работа в команде
Другие инструменты [ править ]
Темы информатики [ править ]
Квалифицированные инженеры-программисты знают многое из информатики, включая то, что возможно и невозможно, а также что легко и сложно для программного обеспечения.
- Алгоритмы , четко определенные методы решения конкретных задач.
- Теория компилятора
- Структуры данных — четко определенные методы хранения и извлечения данных.
- Вычислимость , некоторые задачи вообще не могут быть решены
- Сложность : некоторые проблемы разрешимы в принципе, но неразрешимы на практике.
- Формальные методы
- Адаптивные системы
Темы по математике [ править ]
Дискретная математика является ключевой основой разработки программного обеспечения .
- числа Представление
- Набор (информатика)
- Сумки
- Графики
- Логика
- Индукция
- Комбинаторика
Другой
Фазы жизненного цикла [ править ]
- разработки Этап жизненного цикла
- Сбор/анализ требований
- Архитектура программного обеспечения
- Компьютерное программирование
- Тестирование , обнаружение ошибок
- Гарантия качества , гарантирует соблюдение процесса.
- Фаза жизненного цикла продукта и жизненный цикл проекта
- релиза Стадия разработки , ближе к концу цикла выпуска.
- Жизненный цикл разработки программного обеспечения
Результаты [ править ]
Результаты должны быть разработаны для многих проектов SE. Инженеры-программисты редко создают все эти результаты самостоятельно. Они обычно сотрудничают с авторами, инструкторами, установщиками, маркетологами, специалистами по технической поддержке и другими людьми, которые создают многие из этих результатов.
- Прикладное программное обеспечение — программное обеспечение
- База данных — схемы и данные.
- Документация в Интернете и/или в печатном виде, часто задаваемые вопросы , файлы Readme , примечания к выпуску , справка для каждой роли.
- Политика администрирования и обслуживания : что необходимо скопировать, проверить, настроить и т. д.
- Монтажники
- Миграция
- Обновление с предыдущих установок
- Обновление с установок конкурентов
- Учебные материалы для каждой роли
- Пользователь
- Администратор
- Менеджер
- Покупатель
- Информация о поддержке групп поддержки компьютеров.
- по маркетингу и продажам Материалы
- Официальные документы , объясняющие технологии, используемые в приложениях.
Бизнес-роли [ править ]
- Операции
- Пользователи
- Администраторы
- Менеджеры
- Покупатели
- Разработка
- Бизнес
- Консультации — настройка и установка приложений
- Продажи
- Маркетинг
- Юридические — контракты, права интеллектуальной собственности
- Конфиденциальность и инженерия конфиденциальности
- Поддержка — помощь клиентам в использовании приложений
- Персонал — подбор и обучение квалифицированного персонала
- Финансы — финансирование новых разработок
- академия
Темы управления [ править ]
- Лидерство
- Коучинг
- Коммуникация
- Прослушивание
- Мотивация
- Vision , SE хороши в этом
- Пример : все лучше всего следуют хорошему примеру.
- Управление человеческими ресурсами
- Управление проектом
- Управление процессами
Бизнес-темы [ править ]
- Качественные программы
Профессия программиста [ править ]
- Демография разработки программного обеспечения
- Экономика программной инженерии
- CCSE
- История разработки программного обеспечения
- Профессионализм в области разработки программного обеспечения
- Юридический
История разработки программного обеспечения [ править ]
История разработки программного обеспечения
Пионеры [ править ]
Многие люди внесли важный вклад в технологии, практики или приложения SE.
- Джон Бэкус : Фортран , первый оптимизирующий компилятор, BNF
- Виктор Базили : Фабрика опыта.
- Ф. Л. Бауэр : Принцип стека , популяризировавший термин «Программная инженерия».
- Кент Бек : Рефакторинг , экстремальное программирование , парное программирование , разработка через тестирование .
- Тим Бернерс-Ли : Всемирная паутина
- Барри Бём : экономика SE , COCOMO , спиральная модель .
- Грэди Буч : Объектно-ориентированное проектирование , UML .
- Фред Брукс : Managed System 360 и OS 360 . Написал «Мифический человеко-месяц» и «Нет серебряной пули» .
- Ларри Константин : Структурированный дизайн , взаимосвязь , сплоченность.
- Эдсгер Дейкстра : Написал заметки по структурному программированию , дисциплине программирования и переходу к утверждению, считающемуся вредным , алгоритмам , формальным методам , педагогике .
- Майкл Фэган : Проверка программного обеспечения .
- Том Гилб : Метрики программного обеспечения , Проверка программного обеспечения , Эволюционная доставка («Эво») .
- Адель Голдстайн : Написала руководство по эксплуатации ENIAC , первого электронного цифрового компьютера, и обучила некоторых из первых человеческих компьютеров.
- Лоис Хайбт : ФОРТРАН , автор первого парсера.
- Маргарет Гамильтон : придумала термин «программная инженерия», разработала универсальный системный язык.
- Мэри Джин Харролд : Регрессионное тестирование , локализация ошибок
- Грейс Хоппер : Первый компилятор (Марк 1), COBOL , Nanoсекунды .
- Уоттс Хамфри : Модель зрелости возможностей , Персональный процесс разработки программного обеспечения , научный сотрудник Института программной инженерии .
- Жан Ичбиа : Да
- Майкл А. Джексон : Структурное программирование Джексона , Разработка системы Джексона
- Билл Джой : Беркли Unix , vi , Java .
- Алан Кей : Smalltalk
- Брайан Керниган : C и Unix.
- Дональд Кнут : Написал «Искусство компьютерного программирования» , TeX , алгоритмы , грамотное программирование.
- Нэнси Левесон : Безопасность системы
- Бертран Мейер : Проектирование по контракту , язык программирования Eiffel .
- Питер Г. Нейман : Дайджест РИСКОВ , ACM Sigsoft.
- Дэвид Парнас : Модульный дизайн, социальная ответственность, профессионализм.
- Джеф Раскин : разработал оригинальный Macintosh графический интерфейс , автор книги «Гуманный интерфейс».
- Деннис Ритчи : C и Unix .
- Уинстон В. Ройс : Модель водопада .
- Мэри Шоу : Архитектура программного обеспечения .
- Ричард Столлман : основатель Фонда свободного программного обеспечения
- Линус Торвальдс : Linux Ядро , свободное программное обеспечение / с открытым исходным кодом . разработка
- Уилл Трач : Повторное использование, Заметки по разработке программного обеспечения ACM.
- Джеральд Вайнберг : Написал «Психологию компьютерного программирования» .
- Элейн Вейкер : Тестирование программного обеспечения
- Жанетт Уинг : Официальные характеристики .
- Эд Юрдон : Структурированное программирование , написал книгу «Упадок и падение американского программиста» .
См. также
публикации Известные
- About Face: The Essentials of User Interface Design Алана Купера , о дизайне пользовательского интерфейса. ISBN 0-7645-2641-3
- Модель зрелости способностей Уоттса Хамфри . Написано для Института программной инженерии с упором на управление и процесс. (См. «Управление процессом разработки программного обеспечения»). ISBN 0-201-18095-2 )
- «Собор и базар» Эрика Рэймонда о разработке с открытым исходным кодом.
- Книга «Упадок и падение американского программиста» Эда Юрдона предсказывает конец разработки программного обеспечения в США. ISBN 0-13-191958-X
- Шаблоны проектирования , Эриха Гаммы Ричарда Хелма , Ральфа Джонсона и Джона Влиссайдса . ISBN 0-201-63361-2
- Экстремальное программирование, объясненное Беком Кентом ISBN 0-321-27865-8
- « Перейти к заявлению, которое считается вредным », Эдсгер Дейкстра .
- «Интернет, инновации и открытый исходный код: действующие лица в сети» — в первый понедельник, статья Илкки Туоми (2000) источник
- «Мифический человеко-месяц» об Фреда Брукса управлении проектами. ISBN 0-201-83595-9
- Объектно-ориентированный анализ и проектирование , Грейди Буч . ISBN 0-8053-5340-2
- Peopleware от Тома ДеМарко и Тима Листера. ISBN 0-932633-43-9
- Инженер-прагматик против научного дизайнера , Э. В. Дейкстра [1]
- Принципы управления программной инженерией Тома Гилба об эволюционных процессах. ISBN 0-201-19246-2
- Психология компьютерного программирования Джеральда Вайнберга . Написано как независимый консультант, частично о его годах в IBM. ISBN 0-932633-42-0
- Рефакторинг: улучшение дизайна существующего кода , Мартин Фаулер Кент Бек , Джон Брант, Уильям Опдайк и Дон Робертс. ISBN 0-201-48567-2
- Программист-прагматик: от подмастерья к мастеру Эндрю Ханта и Дэвида Томаса . ISBN 0-201-61622-X
- Свод знаний по программной инженерии (SWEBOK) ISO/IEC TR 19759
Связанные поля [ изменить ]
- Информатика
- Информационная инженерия
- Информационные технологии
- Традиционное проектирование
- Программная инженерия
- Искусство и науки
- Прикладное программное обеспечение
- Программирование
- Системная инженерия
См. также [ править ]
- Указатель статей по разработке программного обеспечения
- Разработка программного обеспечения на основе поиска
- SWEBOK Совокупность знаний в области разработки программного обеспечения
- Учебная программа CCSE по информатике для разработки программного обеспечения
- Этимология компьютерных терминов , истоки компьютерных терминов.
- Сложность или масштабирование
- Синдром второй системы
- оптимизация
- Депонирование исходного кода
- Проблема взаимодействия функций
- Сертификация (программная инженерия)
- Инженерные катастрофы#Отказ из-за программного обеспечения
- Схема разработки программного обеспечения
- Список философий разработки программного обеспечения
Ссылки [ править ]
- ^ Бурк, Пьер; Дюпюи, Робер, ред. (2004). Руководство по своду знаний по программной инженерии — версия 2004 г. Компьютерное общество IEEE . п. 1. ISBN 0-7695-2330-7 .
Внешние ссылки [ править ]
- Профессиональные организации
- Профессионализм
- Образование
- Стандарты
- Государственные организации
- Гибкий
- Организация по продвижению гибкой разработки программного обеспечения
- Разработка через тестирование
- Экстремальное программирование
- Другие организации
- Демография
- Опросы
- Другой