Очерк программной инженерии - Outline of software engineering
Следующее контур предоставляется как обзор и тематическое руководство по разработке программного обеспечения:
Программная инженерия - применение систематического, дисциплинированного, поддающегося количественной оценке подхода к разработке, эксплуатации и техническому обслуживанию программного обеспечения; это применение инженерное дело к программного обеспечения.[1]
Технологии и практики
Квалифицированный программного обеспечения инженеры используют технологии и методы из различных областей, чтобы повысить свою производительность при создании программного обеспечения и улучшить качество поставляемого продукта.
Программные приложения
Программного обеспечения инженеры строят программного обеспечения (Приложения, операционные системы, программное обеспечение ) которые люди используют.
Приложения влияют на разработку программного обеспечения, заставляя разработчиков решать проблемы новыми способами. Например, потребительское программное обеспечение делает упор на низкую стоимость, медицинское программное обеспечение - на высокое качество, а программное обеспечение для интернет-торговли - на быстрое развитие.
- Программное обеспечение для бизнеса
- Аналитика
- Сбор данных тесно связан с база данных
- Системы поддержки принятия решений
- Авиакомпания оговорки
- Банковское дело
- Банкоматы
- Проверять обработка
- Кредитные карты
- Коммерция
- Сделка
- Аукционы (например, eBay)
- Обратные аукционы (закупка)
- Сканеры штрих-кода
- Компиляторы
- Общение
- Эл. почта
- Мессенджеры
- VOIP
- Календари - планирование и координация
- Связаться с менеджерами
- Компьютерная графика
- Анимация
- Спецэффекты для видео и кино
- Редактирование
- Постобработка
- Криптография
- Базы данных, поддерживают практически все области
- Встроенные системы И инженеры-программисты, и традиционные инженеры пишут системы управления программным обеспечением для встраиваемых продуктов.
- Автомобильное программное обеспечение
- Программное обеспечение авионики
- Отопление, вентиляция и кондиционирование (HVAC ) программного обеспечения
- Программное обеспечение медицинского оборудования
- Телефония
- Телеметрия
- Инженерное дело Все традиционные инженерные отрасли широко используют программное обеспечение. Инженеры используют электронные таблицы чаще, чем когда-либо использовали калькуляторы. Инженеры используют нестандартное программное обеспечение инструменты разрабатывать, анализировать и моделировать собственные проекты, например мосты и линии электропередач. Эти проекты во многом напоминают программное обеспечение, потому что работа существует как электронные документы и проходит анализ, дизайн, реализация, и фазы тестирования. Программные инструменты для инженеров используют принципы информатики; а также принципы исчисления, физики и химии.
- файл
- Финансы
- Игры
- Информационные системы, поддерживают практически все области
- Логистика
- Производство
- Музыка
- Сетевое управление
- Сети и Интернет
- Офисные апартаменты
- Операционные системы
- Робототехника
- Обработка сигнала, кодирование и интерпретация сигналов
- Обработка изображений, кодирование и интерпретация визуальной информации
- Обработка речи
- Распознавание текста
- Распознавание почерка
- Моделирование, поддерживает почти все поля.
- Инженерное дело, Программное обеспечение симуляция может быть дешевле в строительстве и более гибким для изменения, чем физический инженерная модель.
- Наук
- Наук
- Управление трафиком
- Подготовка
- Дрель
- Моделирование
- Тестирование
- Визуализация, поддерживает почти все поля
- Голосование
- Всемирная сеть
Темы программной инженерии
Многие технологии и практики (в основном) ограничиваются разработкой программного обеспечения, хотя многие из них используются совместно с Информатика.
Парадигма программирования, основанная на технологии языка программирования
- Объектно-ориентированного программирования
- Аспектно-ориентированное программирование
- Функциональная декомпозиция
- Структурированное программирование
- Программирование на основе правил
Базы данных
Графические пользовательские интерфейсы
- GTK + Набор инструментов GIMP
- wxWidgets
- Окончательный ++
- Набор инструментов Qt
- ФЛТК
Инструменты программирования
- Управление конфигурацией и управление исходным кодом
- CVS
- Subversion
- Git
- Mercurial
- RCS
- GNU Arch
- Синхронизатор LibreSource
- Сервер Team Foundation
- Visual Studio Team Services
- Инструменты сборки
- Редакторы
- Парсер инструменты для создания
- Инструменты статического анализа кода
Библиотеки
Языки дизайна
Шаблоны, документируют множество распространенных методов программирования и управления проектами.
Процессы и методологии
- Agile
- Тяжеловес
- Чистая комната
- ISO / IEC 12207 - процессы жизненного цикла программного обеспечения
- ISO 9000 и ISO 9001
- Модели процессов
- Метамодели
Платформы
Платформа объединяет компьютерное оборудование и операционную систему. По мере того, как платформы становятся более мощными и дешевыми, приложения и инструменты становятся более доступными.
- Заваривать
- Cray суперкомпьютеры
- DEC миникомпьютеры
- IBM мэйнфреймы
- Linux ПК
- Классическая Mac OS и macOS ПК
- Microsoft .NET
- Пальма КПК
- Sun Microsystems Солярис
- Windows ПК (Wintel )
- ОС Symbian
Прочие методы
- Общение
- Методология
- Парное программирование
- Производительность
- Производительность программирования
- Рефакторинг
- Инспекции программного обеспечения /Проверки кода
- Повторное использование программного обеспечения
- Системная интеграция
- Работа в команде
Прочие инструменты
Темы информатики
Квалифицированные инженеры-программисты знают много Информатика включая то, что возможно и невозможно, и что легко и сложно для программного обеспечения.
- Алгоритмы, четко определенные методы решения конкретных задач.
- Теория компилятора
- Структуры данных, четко определенные методы для хранения и извлечения данных.
- Вычислимость, некоторые проблемы вообще не решаются
- Сложность, некоторые проблемы решаемы в принципе, но не решаемы на практике
- Формальные методы
- Адаптивные системы
По математике
Дискретная математика ключевой фундамент программного обеспечения инженерия.
Другой
Фазы жизненного цикла
- Развитие фаза жизненного цикла
- Сбор / анализ требований
- Архитектура программного обеспечения
- Компьютерное программирование
- Тестирование, обнаруживает ошибки
- Гарантия качества, обеспечивает соблюдение процесса.
- Товар Фаза жизненного цикла и Жизненный цикл проекта
- Выпуск стадия развития, ближе к концу цикла выпуска
- Жизненный цикл разработки программного обеспечения
Практические результаты
Для многих проектов SE необходимо разработать конечные результаты. Программные инженеры редко делают все эти результаты самостоятельно. Обычно они сотрудничают с авторами, инструкторами, установщиками, маркетологами, сотрудниками службы технической поддержки и другими людьми, которые делают многие из этих результатов.
- Прикладное программное обеспечение - программное обеспечение
- База данных - схемы и данные.
- Документация, в Интернете и / или в печати, Вопросы-Ответы, Прочти меня, примечания к выпуску, Помогите, для каждой роли
- Администрация и Обслуживание политика, что должно быть скопировано, проверено, настроено, ...
- Установщики
- Миграция
- Обновление с предыдущих установок
- Обновление с установок конкурентов
- Подготовка материалы, для каждой роли
- Пользователь
- Администратор
- Управляющий делами
- Покупатель
- Поддержка информация для групп компьютерной поддержки.
- Маркетинг и продажи материалы
- белые бумаги, объясните технологии, используемые в приложениях
Деловые роли
- Операции
- Пользователи
- Администраторы
- Менеджеры
- Покупатели
- Развитие
- Бизнес
- Консультации - настройка и установка приложений
- Продажи
- Маркетинг
- Юридический - контракты, права интеллектуальной собственности
- Конфиденциальность и Инженерия конфиденциальности
- Поддержка - помощь клиентам в использовании приложений
- Персонал - прием на работу и обучение квалифицированного персонала
- Финансы - финансирование новых разработок
- Academe
Темы управления
- Лидерство
- Управление человеческими ресурсами
- Наем, привлечение людей в организацию
- Подготовка
- Оценка
- Управление проектом
- Управление процессом
Деловые темы
- Качественные программы
Профессия программиста
- Демография программной инженерии
- Экономика программной инженерии
- CCSE
- История программной инженерии
- Профессионализм программной инженерии
- Юридический
История программной инженерии
Пионеры
Многие люди внесли важный вклад в технологии, практики или приложения SE.
- Джон Бэкус: Фортран, первый оптимизирующий компилятор, BNF
- Виктор Василий: Опыт фабрики.
- F.L. Бауэр: Стек принцип, популяризировал термин Программная инженерия
- Кент Бек: Рефакторинг, экстремальное программирование, парное программирование, разработка через тестирование.
- Тим Бернерс-Ли: Всемирная сеть
- Барри Бем: SE экономика, КОКОМО, Спиральная модель.
- Грейди Буч: Объектно-ориентированный дизайн, UML.
- Фред Брукс: Удалось Система 360 и ОС 360. Написал Мифический человеко-месяц и Нет серебряной пули.
- Ларри Константин: Структурированный дизайн, связь, сплоченность
- Эдсгер Дейкстра: Написал Примечания по структурированному программированию, Дисциплина программирования и Перейти к заявлению, которое считается вредным, алгоритмы, формальные методы, педагогика.
- Майкл Фэган: Проверка программного обеспечения.
- Том Гилб: Показатели программного обеспечения, Проверка программного обеспечения, Эволюционная доставка («Эво»).
- Адель Голдстайн: Написал руководство по эксплуатации для ENIAC, первый электронно-цифровой компьютер, и обучил некоторых из первых человеческие компьютеры
- Лоис Хайбт: FORTRAN, написал первый парсер
- Маргарет Гамильтон: Придумал термин «программная инженерия», разработал Универсальный системный язык
- Мэри Джин Харролд: Регрессионное тестирование, локализация неисправности
- Грейс Хоппер: Первый компилятор (Марка 1), КОБОЛ, Наносекунды.
- Уоттс Хамфри: Модель зрелости возможностей, Персональный программный процесс, член Институт программной инженерии.
- Жан Ичбия: Ада
- Майкл А. Джексон: Структурное программирование Джексона, Разработка системы Джексона
- Билл Джой: Беркли Unix, vi, Ява.
- Алан Кей: Болтовня
- Брайан Керниган: C и Unix.
- Дональд Кнут: Написал Искусство программирования, TeX, алгоритмы, грамотное программирование
- Нэнси Левесон: Безопасность системы
- Бертран Мейер: Дизайн по контракту, Язык программирования Eiffel.
- Питер Г. Нойман: Дайджест РИСКОВ, ACM Sigsoft.
- Давид Парнас: Модульный дизайн, социальная ответственность, профессионализм.
- Дэвид Пирсон, компьютерный ученый: Разработал ICL CADES система программной инженерии.
- Джеф Раскин: Разработан оригинал Macintosh GUI, автор Гуманный интерфейс
- Деннис Ричи: C и Unix.
- Уинстон В. Ройс: Модель водопада.
- Мэри Шоу: Программного обеспечения архитектура.
- Ричард Столмен: Основатель Фонд свободного программного обеспечения
- Линус Торвальдс: Linux ядро свободное программное обеспечение / Открытый исходный код развитие.
- Уилл Трач: Повторное использование, Примечания по разработке программного обеспечения ACM.
- Джеральд Вайнберг: Написал Психология компьютерного программирования.
- Элейн Вейкер: Тестирование программного обеспечения
- Жаннетт Винг: Формальные спецификации.
- Эд Йордон: Структурированное программирование, написал Упадок и падение американского программиста.
Смотрите также
Известные публикации
- О Face: основы дизайна пользовательского интерфейса от Алан Купер, о дизайне пользовательского интерфейса. 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 Свод знаний в области программной инженерии
- CCSE Учебная программа по вычислительной технике для разработки программного обеспечения
- Этимология компьютерных терминов, происхождение компьютерных терминов
- Сложность или масштабирование
- Синдром второй системы
- оптимизация
- Эскроу исходного кода
- Проблема взаимодействия функций
- Сертификация (программная инженерия)
- Инженерные катастрофы # Сбой из-за программного обеспечения
- План разработки программного обеспечения
использованная литература
- ^ Пьер Бурк; Роберт Дюпюи, ред. (2004). Руководство к своду знаний по программной инженерии - версия 2004 г.. IEEE Computer Society. п. 1. ISBN 0-7695-2330-7.
внешние ссылки
- Профессиональные организации
- Профессионализм
- Образование
- Стандарты
- Государственные организации
- Agile
- Организация по продвижению гибкой разработки программного обеспечения
- Разработка через тестирование
- Экстремальное программирование
- Другие организации
- Демография
- Обзоры
- Другой