Впервые термин «программная инженерия» («технология программирования», как называлась она тогда в нашей стране) появился в начале 70-х годов 20-го века. В то время ресурсы, затрачиваемые на создание программ стали соизмеримы со стоимостью оборудования вычислительных систем («железа»), поэтому возникла необходимость в научной дисциплине, целью которой является сокращение стоимости программ и времени на их разработку.
Определения терминов программной инженерии
Программная инженерия значительно отличается от простого программирования, как профессионал своего дела от обывателя-любителя. Научиться программированию простых программ способен любой человек, вскоре этому научатся и лучшие представители «искусственного разума». Но такие простенькие программы будут несравнимы с фирменными продуктами по всем качественным показателям, особенно по быстродействию, надежности и экономии вычислительных ресурсов.
Программирование – выдача задания имеющимся вычислительным мощностям в виде перечня команд по управлению входными данными для получения требуемого набора выходных показателей, удовлетворяющих целям создания и функционирования конкретной сложной системы.
Программная инженерия
Программные инженеры – профессиональные программисты, умеющие писать программные продукты с требуемым уровнем качества решения задач, имеющие представление о применяемых процессах и ограничениях при разработке решений, о влиянии выбранных способов решения на устойчивость и безопасность функционирования сложных систем.
Определение 1
Программная инженерия – путь создания безопасных, надежных и неизменных по качеству в течение всего своего жизненного цикла программных продуктов путем их предварительного проектирования, написания, тестирования и сопровождения в ходе решения пользовательских задач.
Настоящий программный инженер, таким образом, способен понять, какими ресурсами можно удовлетворить насущные потребности в решении обнаруженных проблем. И зачастую для определенных задач даже нет необходимости писать отдельную программу, достаточно применять уже написанную или совокупность из нескольких готовых, а при хорошем предварительном проектировании сложных систем проявление каких-либо стандартных проблем в будущем вообще возможно избежать в принципе.
«Программная инженерия»
Готовые курсовые работы и рефераты
Решение учебных вопросов в 2 клика
Помощь в написании учебной работы
Основные составляющие программной инженерии
Основополагающими составляющими программной инженерии являются:
- предварительное ознакомление с предметной областью и создание, при необходимости, модели (математической или физической) подвергнутой системному анализу структуры;
- уточнение целей и проблем, требующих решения программными методами, разработка архитектуры решения задач программными методами;
- определение возможности применения готовых процедур и написание недостающего кода для созданной архитектуры в выбранном языке (языках) программирования;
- тестирование, устранение ошибок и сборка программного изделия.
В ходе предварительного ознакомления и при уточнении задач перед началом создания продукта программный инженер ставит следующие вопросы и ищет на них ответы:
Качества плхого программного кода (программотехника — программная инженерия — software engineering)
- можно ли решить обнаруженные проблемы сложной системы в рамках написания или использования одной программы;
- какие определенные задачи будут способны решать по отдельности все созданные или используемые программы;
- как облегчить и ускорить решение задач с помощью применения сторонних разработок, написания нового программного кода, их комбинации.
При уточнении необходимости разработки продукта «с нуля» или возможности использования отдельных созданных процедур и написания только недостающего кода — программный инженер задает уже иные вопросы:
- какие компоненты программного обеспечения будут связываться в единое целое, взаимодействовать друг с другом в создаваемом продукте;
- необходимые критерии для закладывания в продукт возможностей по дальнейшему его расширению;
- требуемые показатели читабельности кода и достаточности комментариев для понимания работы создаваемого программного продукта.
В ходе проведения тестирования возникают уже совершенно непохожие на ранее сформулированные вопросы с поиском ответов:
- созданный продукт работоспособен в различных условиях (например, требуемые для работы ресурсы вычислительной техники, начальные временные установки, операционные среды и программное окружение);
- полученный продукт эффективен с точки зрения экономии ресурсов вычислительной техники, надежности, аккуратности исполнения, устойчивости работы, удобства установки, обслуживания и сопровождения;
- разработанный продукт способен предлагать пользователям удобства;
- полученный продукт устойчив к некорректному вводу начальных условий и ненадежному взаимодействию объектов в сложной системе;
- в программном продукте есть способы повышения защищенности и безопасности от влияний из вне, а также отсутствие не предусмотренных разработчиком (декларируемых) возможностей или дефектов;
- проявление изменений и/или ошибок сопровождается понятным любому пользователю сообщением от разработанного нового продукта;
- правильно ли функционирует системный журнал с фиксацией всех ситуаций возникающих ошибок и возможностью их дальнейшего анализа любым сторонним программистом, а не только автором программного кода;
- применяется ли самое качественное и современное программное обеспечение разработки (языки программирования), сокращающее циклы обратной связи при программировании в ходе создания нового программного продукта.
Цель и процессы программной инженерии
Из всего вышесказанного можно сделать вывод: программная инженерия непосредственно связана напрямую со всеми процессами жизненного цикла любого программного обеспечения.
Цель программной инженерии состоит в реализации самых эффективных, новых и лучших технологий в практических целях для реализации и совершенствования сложных систем, объектов, процессов или явлений.
Сам термин процесса программной инженерии («Software Engineering Process») может характеризоваться обсуждением, поиском и реализацией на практике реальных последовательностей действий по правильным и эффективным способам выполнения поставленных задач.
Связанные непосредственно со всеми процессами жизненного цикла программного обеспечения (разработка либо приобретение, а также сопровождение и вывод из эксплуатации), подавляющее большинство процессов программной инженерии взаимодействуют между собой, а также и как напрямую, так и опосредованно с другими областями знаний.
Все процессы программной инженерии комплексно направлены на выработку наиболее верных решений при построении надежных и безопасных программных продуктов в условиях минимальных временных и ресурсных затрат на их создание, внедрение и сопровождение.
Источник: spravochnick.ru
Программная инженерия (быстрое знакомство)
Малые проекты характеризуются небольшим количеством исполнителей проекта, обычно это один единственный разработчик или коллектив из 3 – 5 человек. Цель процесса создания малых систем – получить функционирующую программу, обычно это автоматизация простых процессов и научных исследований.
Для малых систем вопросы распространения и тиражирования на рынке как таковые не рассматриваются. Отсутствует явный заказчик, финансирование. Может подойти для стартапов с дальнейшим поиском инвесторов. Не происходит документирование трудоёмкости, сроков, требований и стоимости. Отсутствуют требования к независимому тестированию, гарантии качества и сертификации.
Не производится регламентация жизненного цикла программного обеспечения. Поддержка версий и применение стандартов также не предусматривается. Всё это допустимо пока можно справиться с непредсказуемостью процесса и результата.
Большие проекты
Большие проекты характеризуются существенным размером, трудоёмкостью и стоимостью, а также необходимостью в обеспечении гарантированного качества. Требования к процессу создания – оценка экономической эффективности и конкурентоспособности, определение требований к процессу и продукту, функциям и характеристикам, соответствия выделенного финансирования и квалификации исполнителей, управление организацией и координацией деятельности, ответственность за качество и надёжность функционирования, безопасность, регламентирование процессов, этапов, документов, технологии и инструментов.
Составляющие продукта
Составляющие продукта – архитектура системы, компоненты и интерфейсы.
Компоненты программного средства бывают общими, предметно и проблемно ориентированными — бизнес-логика, кодом приложения. К общим компонентам относят абстрактные типы данных, функционал общего назначения (горизонтальный домен), сюда входят математические функции и средства создания интерфейса пользователя. Значение общих компонентов – расширение языка программирования. К предметно-ориентированным компонентам относят функционал для определённой тематической области (вертикальный домен), например для области финансов, торговли и образования, и функционал для определённой проблемной области (горизонтальный домен), например функции сортировки, сетевых операций и системного программирования, приспособленных для нужд предметной области. Код приложения представляет собой уточнение компонентов и добавление нового функционала, вне компонентов, управление компонентами.
Виды повторно используемых активов
- Спецификации требований . Повторному использованию в данном контексте доступны представление структуры и описание функционала, а также нотация, натуральный или формальный язык. Интерес – описание всей системы или её части.
- Проект . Модель описания проблемы. Решения – архитектура, шаблоны.
- Тестовые данные . Множество входных данных и инструментов для запуска тестов.
- Документация . Документированные активы, структура документов.
- Архитектура . Организация системы, взаимосвязь компонентов между собой и с окружающей средой, руководящие правила (проектирование и развитие системы).
- Компоненты . Исполняемый код, оптимизированный функционал, информация о структуре, язык программирования.
Процесс
В отношении организации процесс характеризуется продолжительностью, регламентом свойств, планом ресурсов, этапов и сроков, технологической и организационной документацией. К экономическим характеристикам относятся стоимость создания, тиражирования и эксплуатации, эффективность. В рамках программной инженерии суть процесса заключается в систематичности, научности и предсказуемости. Процесс зависит от технологии создания продукта.
Требования программной инженерии
Виды требований
- К архитектурным требованиям относят требования к соответствию архитектуры текущим целям и задачам, стратегическим и функциональным, требования к изменению, развитию и расширению гибкости.
- К инвестиционным требованиям относят требования максимально возможной сохранности инвестиций на аппаратуру, программные средства и базы данных с учётом структуры системы и её компонентов.
- К ресурсосберегающим требованиям относят требования обеспечить эффективность использования ресурсов, минимизировать затраты на обработку данных, обеспечить соответствие капиталовложениям.
- К качественным требованиям относят главным образом требования к безопасности функционирования и авторизации пользователей, к защите данных от ошибок, разрушения и потери, к управлению резервированием и восстановлением, к переносимости на различные аппаратные, программные и операционные платформы.
- К эргономическим требованиям относят требования к комфортному обучению, упрощённому доступу к функциям системы и получению от неё результатов, требования наглядности и выразительности пользовательского интерфейса, вопросы восприятия времени.
- К управленческим требованиям относят требования обеспечить планирование, управление технологическим процессом, обеспечить адаптированные профили стандартов.
Область применения
Типичная область применения программной инженерии – критические системы. Примерами здесь могут служить проекты программных средств атомных электростанций, банков, армии и медицины. Основные возможные дефекты в критических системах – искажение исходных данных, сбои, отказ аппаратуры, ошибки пользователя.
Требования к проектам критических систем – ответственность за качество процесса создания и результата. Необходимо применять соответствующие меры. Это меры, направленные на обеспечение непрерывного обучения, совершенствования, повышения квалификации не только разработчиков, но и заказчиков и пользователей, освоение методов, процессов и международных стандартов, а также обеспечение высокой культуры коллектива.
Программная инженерия применима как к малым, так и к средним и большим проектам. Главное требование – адаптация стандартов, технологии и инструментария под специфику проекта.
Источник: dzen.ru
Программная инженерия код программы
Подключите пакет «Плюс» и пользуйтесь всеми сервисами сайта без ограничений и рекламы:
Полное отсутствие рекламы.
Неограниченный доступ к премиальным сервисам сайта.
5 тестов на выбор профессии с расширенными результатами.
Сервисы сравнения вузов по 50 критериям и специльностей по 22 критериям.
Калькулятор ЕГЭ с дополнительными опциями.
Персональный онлайн робот-помощник с искусственным интеллектом Поступика (планируется).
Все новые сервисы, которые мы планируем выпустить, также будут входить в пакет «Плюс» без ограничений.
Стоимость пакета «Плюс»
Источник: postupi.online