Следующий план представляет собой обзор и тематическое руководство по разработке программного обеспечения:
Программная инженерия - применение систематического, дисциплинированного, поддающегося количественной оценке подхода к разработке, эксплуатации и обслуживанию программного обеспечения ; это приложение инженерии к программному обеспечению.
Система ACM Computing Classification - это полииерархическая онтология, которая организует темы области и может использоваться в семантических веб-приложениях и в качестве стандартной системы классификации deacto для этой области. Основной раздел «Программное обеспечение и его разработка» предоставляет схему и онтологию для разработки программного обеспечения.
СОДЕРЖАНИЕ
- 1 Технологии и практики
- 1.1 Программные приложения
- 1.2 Темы программной инженерии
- 1.2.1 Парадигма программирования, основанная на технологии языка программирования
- 1.2.2 Базы данных
- 1.2.3 Графические пользовательские интерфейсы
- 1.2.4 Инструменты программирования
- 1.2.5 Библиотеки
- 1.2.6 Языки дизайна
- 1.2.7 Шаблоны, документируют множество распространенных методов программирования и управления проектами.
- 1.2.8 Процессы и методологии
- 1.2.9 Платформы
- 1.2.10 Другие методы
- 1.2.11 Другие инструменты
- 1.3 Темы информатики
- 1.4 Темы математики
- 1.5 Фазы жизненного цикла
- 1.6 Результаты
- 1.7 Деловые роли
- 1.8 Темы управления
- 1.9 Деловые темы
- 2 Профессия программиста
- 3 История программной инженерии
- 4 Известные публикации
- 5 Связанные поля
- 6 См. Также
- 7 ссылки
- 8 Внешние ссылки
Технологии и практики
Квалифицированные инженеры- программисты используют технологии и методы из различных областей, чтобы повысить свою продуктивность при создании программного обеспечения и улучшить качество поставляемого продукта.
Программные приложения
Программные инженеры строят программное обеспечение ( приложения, операционные системы, системное программное обеспечение ), которые люди используют.
Приложения влияют на разработку программного обеспечения, заставляя разработчиков решать проблемы новыми способами. Например, потребительское программное обеспечение делает упор на низкую стоимость, медицинское программное обеспечение - на высокое качество, а программное обеспечение для интернет-торговли - на быстрое развитие.
- Программное обеспечение для бизнеса
- Аналитика
- Авиабилеты Бронирование
- Банковское дело
- Коммерция
- Компиляторы
- Коммуникация
- Компьютерная графика
- Анимация
- Спецэффекты для видео и кино
- Редактирование
- Постобработка
- Криптография
- Базы данных, поддерживают почти все поля
- Встроенные системы Как инженеры-программисты, так и традиционные инженеры пишут программные системы управления для встраиваемых продуктов.
- Автомобильное программное обеспечение
- Программное обеспечение авионики
- Программное обеспечение для отопления, вентиляции и кондиционирования ( HVAC )
- Программное обеспечение медицинского оборудования
- Телефония
- Телеметрия
- Инжиниринг Все традиционные инженерные отрасли широко используют программное обеспечение. Инженеры используют электронные таблицы чаще, чем когда-либо использовали калькуляторы. Инженеры используют специальные программные инструменты для проектирования, анализа и моделирования своих собственных проектов, таких как мосты и линии электропередач. Эти проекты во многом напоминают программное обеспечение, поскольку работа существует в виде электронных документов и проходит этапы анализа, проектирования, внедрения и тестирования. Программные инструменты для инженеров используют принципы информатики; а также принципы математического анализа, физики и химии.
- Файл
- Финансы
- Игры
- Информационные системы, поддерживают практически все области
- ЛИС Управление лабораторными данными
- MIS Управление финансовыми и кадровыми данными
- Логистика
- Производство
- Музыка
- Сетевое управление
- Сети и Интернет
- Офисные апартаменты
- Операционные системы
- Робототехника
- Обработка сигналов, кодирование и интерпретация сигналов
- Моделирование, поддерживает почти все области.
- Инженерное дело. Программное моделирование может быть дешевле в создании и более гибким для изменения, чем физико- инженерная модель.
- Наук
- Наук
- Управление трафиком
- Подготовка
- Визуализация, поддерживает почти все поля
- Голосование
- Всемирная паутина
Темы программной инженерии
Многие технологии и практики (в основном) ограничиваются разработкой программного обеспечения, хотя многие из них используются совместно с информатикой.
Парадигма программирования, основанная на технологии языка программирования
Базы данных
Графические пользовательские интерфейсы
Инструменты программирования
Библиотеки
Языки дизайна
Шаблоны, документируют множество распространенных методов программирования и управления проектами.
Процессы и методологии
- Гибкий
- Тяжеловес
- Чистая комната
- ИСО / МЭК 12207 - процессы жизненного цикла программного обеспечения
- ISO 9000 и ISO 9001
- Модели процессов
- Метамодели
Платформы
Платформа объединяет компьютерное оборудование и операционную систему. По мере того, как платформы становятся более мощными и дешевыми, приложения и инструменты становятся более доступными.
Прочие методы
Прочие инструменты
Темы информатики
Квалифицированные инженеры-программисты знают много компьютерных наук, включая то, что возможно и что невозможно, а что легко и сложно для программного обеспечения.
- Алгоритмы, четко определенные методы решения конкретных задач.
- Теория компилятора
- Структуры данных, четко определенные методы для хранения и извлечения данных.
- Вычислимость, некоторые проблемы вообще невозможно решить
- Сложность, некоторые проблемы решаемы в принципе, но не решаемы на практике
- Формальные методы
- Адаптивные системы
Темы математики
Дискретная математика - ключевая основа программной инженерии.
Другой
Фазы жизненного цикла
Практические результаты
Для многих проектов SE необходимо разработать конечные результаты. Программные инженеры редко делают все эти результаты самостоятельно. Обычно они сотрудничают с авторами, инструкторами, установщиками, маркетологами, сотрудниками службы технической поддержки и другими людьми, которые делают многие из этих результатов.
- Прикладное программное обеспечение - программное обеспечение
- База данных - схемы и данные.
- Документация в Интернете и / или в печати, часто задаваемые вопросы, ознакомительные сведения, примечания к выпуску, справка для каждой роли
- Политика администрирования и обслуживания, что нужно архивировать, проверять, настраивать,...
- Установщики
- Миграция
- Обновление с предыдущих установок
- Обновление с установок конкурентов
- Учебные материалы для каждой роли
- Поддержка Информация для групп компьютерной поддержки.
- Маркетинговые и торговые материалы
- Официальные документы, объясняющие технологии, используемые в приложениях
Деловые роли
- Операции
- Разработка
- Бизнес
- Консультации - настройка и установка приложений
- Продажи
- Маркетинг
- Юридические - контракты, права интеллектуальной собственности
- Конфиденциальность и конфиденциальность
- Поддержка - помощь клиентам в использовании приложений
- Персонал - наем и обучение квалифицированного персонала
- Финансы - финансирование новых разработок
- Academe
Темы управления
Деловые темы
Профессия программиста
История программной инженерии
История программной инженерии
Пионеры
Многие люди внесли важный вклад в технологии, практики или приложения SE.
- Джон Бэкус : Fortran, первый оптимизирующий компилятор, BNF
- Виктор Василий : Фабрика опыта.
- Ф.Л. Бауэр : Принцип стека, популяризировал термин « программная инженерия».
- Кент Бек : Рефакторинг, экстремальное программирование, парное программирование, разработка через тестирование.
- Тим Бернерс-Ли : Всемирная паутина
- Барри Бем : экономика SE, COCOMO, спиральная модель.
- Грэди Буч : объектно-ориентированный дизайн, UML.
- Фред Брукс : Управляемая система 360 и OS 360. Написал «Мифический человеко-месяц и никакой серебряной пули».
- Ларри Константин : структурированный дизайн, взаимосвязь, сплоченность
- Эдсгер Дейкстра : Написал заметки о структурированном программировании, дисциплине программирования и утверждении, которое считается вредным, алгоритмах, формальных методах, педагогике.
- Майкл Фэган : Проверка программного обеспечения.
- Том Gilb : метрики программного обеспечения, инспекции программного обеспечения, Эволюционная доставки ( «Эво»).
- Адель Голдстайн : написала руководство по эксплуатации ENIAC, первого электронного цифрового компьютера, и обучила некоторых из первых компьютеров человека.
- Лоис Хейбт : FORTRAN, написал первый парсер
- Маргарет Гамильтон : придумала термин «программная инженерия», разработала универсальный системный язык.
- Мэри Джин Харролд : регрессионное тестирование, локализация неисправностей
- Грейс Хоппер : Первый компилятор (Mark 1), COBOL, Наносекунды.
- Уоттс Хамфри : модель зрелости возможностей, персональный программный процесс, сотрудник Института программной инженерии.
- Жан Ичбия : Ада
- Майкл А. Джексон : Джексон Структурное программирование, Джексон Разработка системы
- Билл Джой : Беркли Unix, vi, Java.
- Алан Кей : Smalltalk
- Брайан Керниган : C и Unix.
- Дональд Кнут : написал искусство компьютерного программирования, TeX, алгоритмы, грамотное программирование
- Нэнси Левесон : Системная безопасность
- Бертран Мейер : Дизайн по контракту, язык программирования Eiffel.
- Питер Г. Нойман : Дайджест РИСКОВ, ACM Sigsoft.
- Давид Парнас : Модульный дизайн, социальная ответственность, профессионализм.
- Дэвид Пирсон, специалист по информатике : разработал систему разработки программного обеспечения ICL CADES.
- Джеф Раскин : разработал оригинальный графический интерфейс для Macintosh, автор The Humane Interface.
- Деннис Ричи : C и Unix.
- Уинстон В. Ройс : Модель водопада.
- Мэри Шоу : Архитектура программного обеспечения.
- Ричард Столмен : основатель Фонда свободного программного обеспечения
- Линус Торвальдс : Ядро Linux, свободное программное обеспечение / разработка с открытым исходным кодом.
- Will Tracz : повторное использование, ACM Software Engineering Notes.
- Джеральд Вайнберг : написал книгу «Психология компьютерного программирования».
- Элейн Вейкер : Тестирование программного обеспечения
- Жаннетт Винг : Официальные спецификации.
- Эд Йордон : « Структурированное программирование», написал «Упадок и падение американского программиста».
Смотрите также
Известные публикации
- О Face: Основы дизайна пользовательского интерфейса с помощью Алана Купера, о дизайне пользовательского интерфейса. ISBN 0-7645-2641-3
- Capability Maturity Model по Watts Humphrey. Написано для Института программной инженерии с упором на управление и процессы. (См. ISBN управления процессом программного обеспечения 0-201-18095-2 )
- Собор и базар от Эрика Рэймонда о развитииоткрытым исходным кодом.
- Упадок и падение американского программатора по Ed Иордан предсказывают конец разработки программного обеспечения в США ISBN 0-13-191958-X
- Дизайн Шаблоны от Erich Gamma, Ричард Хелм, Ральф Джонсон и Джон Влиссидес. ISBN 0-201-63361-2
- Экстремальное программирование Разъяснения по Кент Бек ISBN 0-321-27865-8
- Эдсгер Дейкстра " Пойти к заявлению, которое считается вредным ".
- Интернет, инновации и Open Source: Актеры в Сети - первый понедельник статья Илкки Tuomi (2000) Источник
- Мифический человеко-месяц по Фред Брукс, об управлении проектами. ISBN 0-201-83595-9
- Объектно-ориентированный анализ и проектирование с помощью Гради Буч. ISBN 0-8053-5340-2
- Кадровое от Тома Демарко и Тимоти Листер. ISBN 0-932633-43-9
- Прагматичный инженер против научного дизайнера по EW Дейкстра [1]
- Принципы инженерного управления программного обеспечения от Тома Gilb об эволюционных процессах. ISBN 0-201-19246-2
- Психология компьютерного программирования на Gerald Weinberg. Написано как независимый консультант, частично о годах, проведенных в IBM. ISBN 0-932633-42-0
- Рефакторинг: улучшение существующего кода на Мартина Фаулера, Кент Бек, Джон Брант, Уильям Opdyke и Дон Робертс. ISBN 0-201-48567-2
- Прагматические Программист: от подмастерья к мастеру по Эндрю Хант и Дэвид Томас. ISBN 0-201-61622-X
- Свод знаний по программной инженерии (SWEBOK) ISO / IEC TR 19759
Смотрите также:
Связанные поля
Смотрите также
использованная литература
внешние ссылки
- Профессиональные организации
- Профессионализм
- Образование
- Стандарты
- Правительственные организации
- Гибкий
- Другие организации
- Демография
- Обзоры
- Другой