WikiDer > Очерк программной инженерии
Следующее контур предоставляется как обзор и тематическое руководство по разработке программного обеспечения:
Программная инженерия - применение систематического, дисциплинированного, поддающегося количественной оценке подхода к разработке, эксплуатации и техническому обслуживанию программного обеспечения; это применение инженерное дело к программного обеспечения.[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
- Организация по продвижению гибкой разработки программного обеспечения
- Разработка через тестирование
- Экстремальное программирование
- Другие организации
- Демография
- Обзоры
- Другой