Краткое описание разработки программного обеспечения
Следующий план представляет собой обзор и актуальное руководство по разработке программного обеспечения:
Разработка программного обеспечения – применение систематического, дисциплинированного, поддающегося количественной оценке подхода к разработке, эксплуатации и обслуживанию программного обеспечения ; это применение техники к программному обеспечению . [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 , первого электронного цифрового компьютера, и обучила некоторых из первых человеческих компьютеров.
- Лоис Хайбт : FORTRAN , автор первого парсера.
- Маргарет Гамильтон : придумала термин «программная инженерия», разработала универсальный системный язык.
- Мэри Джин Харролд : Регрессионное тестирование , локализация ошибок
- Грейс Хоппер : Первый компилятор (Марк 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 .
Внешние ссылки [ править ]
- Профессиональные организации
- Профессионализм
- Образование
- Стандарты
- Государственные организации
- Гибкий
- Организация по продвижению гибкой разработки программного обеспечения
- Разработка через тестирование
- Экстремальное программирование
- Другие организации
- Демография
- Опросы
- Другой