Рефераты по программной инженерии

Обновлено: 02.07.2024

Методы разработки чрезвычайно важны для преодоления сложности программирования системы, так как они упорядочивают процесс создания сложных систем, и как общие средства доступны для всей команды разработчиков. Кроме того, метод — это последовательный процесс создания моделей, который описывает определенным образом различные стороны разрабатываемой программной системы. Их применение позволяет… Читать ещё >

  • программная инженерия. визуальное моделирование программных систем

Методы программной инженерии ( реферат , курсовая , диплом , контрольная )

Компоненты методов

Методы программной инженерии — это структурные решения, предназначенные для разработки программного обеспечения и включающие системные модели, формализованные нотации и правила проектирования, а также способы управления процессом разработки.

В качестве основы для реализации методов программной инженерии используются средства автоматизированной разработки программного обеспечения — CASE-средства (Computer Aided Software Engineering).

Совокупность методов, применяемых в жизненном цикле разработки программного обеспечения и объединенных одним общим философским подходом, представляет собой методологию разработки.

Методы разработки чрезвычайно важны для преодоления сложности программирования системы, так как они упорядочивают процесс создания сложных систем, и как общие средства доступны для всей команды разработчиков. Кроме того, метод — это последовательный процесс создания моделей, который описывает определенным образом различные стороны разрабатываемой программной системы. Их применение позволяет менеджерам в процессе разработки оценить степень продвижения и риск.

Различают следующие методы программной инженерии:

• методы прототипирования, базирующиеся на различных формах прототипов;

  • • формальные методы, обоснованные математически;
  • • эвристические методы, касающиеся неформализованных

подходов (структурные, ориентированные на данные, объектно-ориентированные).

Методы прототипирования используются для получения прототипов — промежуточных версий программной системы. Прототипы создаются в некоторых процессах разработки для демонсграции концепций, заложенных в системе, проверки вариантов требований, а также выявления проблем, которые могут возникнуть как в ходе разработки, так и при эксплуатации системы.

В 1980;х годах многие исследователи считали, что формальные спецификации и формальные методы являются наиболее эффективным путем улучшения качества программного обеспечения. Они привели веские доводы в пользу того, что строгий и детальный анализ, который является неотъемлемой частью формальных методов, приведет к созданию программ с малым количеством ошибок. Эксперты предсказывали, что к XXI столетию большую часть программного обеспечения будут разрабатывать с использованием формальных методов.

Однако программная инженерия пошла другим путем. Прошло более 35 лет с начала исследований по использованию математических методов в процессе создания программного обеспечения. Так называемые формальные методы разработки программных систем не получили широкого признания, несмотря на то, что при их использовании может быть достигнуто повышение качества программ путем доказательства их правильности. Многие компании, разрабатывающие программное обеспечение, не считают экономически выгодным применение этих методов в процессе разработки (27, "https://referat.bookap.info").

Развитие структурных методов, методов управления конфигурацией и так далее позволило повысить качество’программ при более низких затратах по сравнению со стоимостью разработки формализованными методами. Кроме того, с формальной спецификацией плохо согласуются методы быстрой разработки программного обеспечения. Это вступает в противоречие с тем, что в настоящее время главным критерием программной индустрии для некоторых классов систем является не качество, а время поставки их на рынок.

Формальные математические спецификации не содержат деталей реализации системы, но должны представлять ее полную математическую модель. Существует два основных подхода к разработке формальной спецификации:

  • • алгебраический подход, при котором система описывается в терминах операций и их отношений;
  • • подход, ориентированный на моделирование, при котором модель системы строят с использованием математических конструкций, таких, как множества и последовательности, а системные операции определяются тем, как они изменяют состояние системы.

Формальные методы оказались рентабельны в ограниченной области применения: это разработка критических систем, где важны такие свойства, как безопасность, безотказность и защищенность. Примерами критических систем, при разработке которых успешно применялись формальные методы, являются информационные системы управления воздушным транспортом, системы сигнализации на железной дороге, бортовые системы космических кораблей и медицинские системы управления.

В этих языках основной базовой единицей является подпрограмма, и программа в целом принимает форму дерева, в котором одни подпрограммы в процессе работы вызывают другие подпрограммы. Структурное проектирование использует именно такой подход: алгоритмическая декомпозиция применяется для разбиения большой задачи на более мелкие.

В большинстве появившихся впоследствии методов, предлагающих множество формализованных нотаций и нормативных руководств для проектирования программного обеспечения, были устранены очевидные недостатки структурного проектирования.

Эвристические методы разработки программного обеспечения делятся на три основные группы [10]:

  • • метод структурного анализа и проектирования;
  • • метод потоков данных Джексона (JSD — Jackson System

Структурный подход основан на алгоритмической декомпозиции. В методе потоков данных программная система рассматривается как преобразователь входных потоков в выходные. В основе объектно-ориентированного проектирования (ООП) лежит представление о том, что программную систему необходимо проектировать как совокупность взаимодействующих друг с другом объектов, рассматривая каждый объект как экземпляр определенного класса, причем классы образуют иерархию.

Все упомянутые методы основаны на идее создания моделей системы, которые можно представить графически, и на использовании этих моделей в качестве спецификации системы или ее структуры. Методы программной инженерии обычно включают в себя компоненты, совокупность которых обеспечивает взаимосвязанные процедуры моделирования создаваемых систем (табл. 1.1).


Рисунок 1 – Процессы жизненного цикла ПО

Зарегистрируйся, чтобы продолжить изучение работы


Рисунок 1 – Процессы жизненного цикла ПО


2. ОСНОВНЫЕ МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА

В различных организациях применяются разные стадии жизненного цикла ПО. Существует ряд базовых моделей, которые наиболее популярны сегодня [17]:
каскадная модель (водопадная) - данная модель, разработанная в 1970 г., впервые формализовала структуру этапов разработки ПО. В ней отражается каскадная стратегия однократного прохода этапов разработки. Основой данной модели является полное формулирование требований со стороны заказчика на начальном этапе. В рамках каскадной модели процесс разработки ПО распадается на ряд последовательных шагов, каждый из которых не может быть начат до завершения предыдущего. Схема каскадной модели представлена на рисунке 2. Стоит подчеркнуть, что каждый шаг по необходимости может сопровождаться различными вспомогательными и организационными процессами, например, верификацией, управлением проектом, обеспечением качества, документированием и т.п.
Достоинства модели:
постоянство требований;
отсутствие цикличности этапов;
простота планирования, контроля и управления;
доступность для понимания заказчиком.
Недостатки:
сложность в полноценном формулировании требований;
линейность структуры – отсутствие возможности возврата к предыдущим этапам;
непригодность промежуточных продуктов;
минимальное участие конечного пользователя в процессе разработки [14].
поэтапная модель с промежуточным контролем - каскадная модель, дополненная обратными связями (см. рисунок 3) [12]. Данная модель требует большего времени разработки, однако, такой подход позволяет уменьшать риски получения некачественного продукта на выходе, а также повышает надежность системы в целом [6].
спиральная модель - данная модель послужила прорывом в разработке ПО. В ней сочетаются проектирование и постадийное прототипирование. В данной модели реализация программных средств происходит в виде последовательных версий. Характерной чертой данной модели является тот факт, что на начальном этапе процесса могут быть сформулированы не все требования – так как они уточняются при дальнейшей разработке. Любой виток спирали характеризуется созданием фрагмента или версии программного продукта, уточнением цели и характеристики проекта, определением


Рисунок 2 - Каскадная модель жизненного цикла

его качества, а также планированием работ следующего витка спирали (см. рисунок 4). Преимущества спиральной модели:
использование системного подхода;
наиболее реальное отображение процесса разработки;
учет рисков;
использование моделирования;
Недостатки:
повышенные требования к заказчику;
трудности контроля и управления временем разработки [11];
инкрементная модель - в основе данной модели лежит идея о том, что программная система должна разрабатываться по принципу приращений

Гост

ГОСТ

Определения терминов программной инженерии

Программирование – выдача задания имеющимся вычислительным мощностям в виде перечня команд по управлению входными данными для получения требуемого набора выходных показателей, удовлетворяющих целям создания и функционирования конкретной сложной системы.

Программные инженеры – профессиональные программисты, умеющие писать программные продукты с требуемым уровнем качества решения задач, имеющие представление о применяемых процессах и ограничениях при разработке решений, о влиянии выбранных способов решения на устойчивость и безопасность функционирования сложных систем.

Программная инженерия – путь создания безопасных, надежных и неизменных по качеству в течение всего своего жизненного цикла программных продуктов путем их предварительного проектирования, написания, тестирования и сопровождения в ходе решения пользовательских задач.

Настоящий программный инженер, таким образом, способен понять, какими ресурсами можно удовлетворить насущные потребности в решении обнаруженных проблем. И зачастую для определенных задач даже нет необходимости писать отдельную программу, достаточно применять уже написанную или совокупность из нескольких готовых, а при хорошем предварительном проектировании сложных систем проявление каких-либо стандартных проблем в будущем вообще возможно избежать в принципе.

Готовые работы на аналогичную тему

Основные составляющие программной инженерии

Основополагающими составляющими программной инженерии являются:

  • предварительное ознакомление с предметной областью и создание, при необходимости, модели (математической или физической) подвергнутой системному анализу структуры;
  • уточнение целей и проблем, требующих решения программными методами, разработка архитектуры решения задач программными методами;
  • определение возможности применения готовых процедур и написание недостающего кода для созданной архитектуры в выбранном языке (языках) программирования;
  • тестирование, устранение ошибок и сборка программного изделия.

В ходе предварительного ознакомления и при уточнении задач перед началом создания продукта программный инженер ставит следующие вопросы и ищет на них ответы:

  • можно ли решить обнаруженные проблемы сложной системы в рамках написания или использования одной программы;
  • какие определенные задачи будут способны решать по отдельности все созданные или используемые программы;
  • как облегчить и ускорить решение задач с помощью применения сторонних разработок, написания нового программного кода, их комбинации.
  • какие компоненты программного обеспечения будут связываться в единое целое, взаимодействовать друг с другом в создаваемом продукте;
  • необходимые критерии для закладывания в продукт возможностей по дальнейшему его расширению;
  • требуемые показатели читабельности кода и достаточности комментариев для понимания работы создаваемого программного продукта.

Цель и процессы программной инженерии

Из всего вышесказанного можно сделать вывод: программная инженерия непосредственно связана напрямую со всеми процессами жизненного цикла любого программного обеспечения.

Цель программной инженерии состоит в реализации самых эффективных, новых и лучших технологий в практических целях для реализации и совершенствования сложных систем, объектов, процессов или явлений.

Связанные непосредственно со всеми процессами жизненного цикла программного обеспечения (разработка либо приобретение, а также сопровождение и вывод из эксплуатации), подавляющее большинство процессов программной инженерии взаимодействуют между собой, а также и как напрямую, так и опосредованно с другими областями знаний.

Все процессы программной инженерии комплексно направлены на выработку наиболее верных решений при построении надежных и безопасных программных продуктов в условиях минимальных временных и ресурсных затрат на их создание, внедрение и сопровождение.

icon

Средний срок выполнения: 2 дня

Последние работы на эту тему по предмету "информатика"

Здравствуйте, по каким предметам сможете помочь? Введение в программную инженерию Компьютерная графика Алгоритмы и структуры данных Вычислительные системы, сети и телекоммуникации Конструирование программного обеспечения Проектирование человеко-машинного интерфейса - 1 Архитектура вычислительных с

Требования преподавателя (выполнять обязательно): При оформлении материалов просим соблюдать следующие требования: • Формат страницы — А4, ориентация — книжная. Шрифт Times New Roman, 14 пунктов, междустрочный интервал – полуторный. • Поля страницы: верхнее, нижнее и правое — по 2 см, левое — 3 см.

реферат на тему решение систем обыкновенных уравнений в инженерных программных пакетах (на примере MatLab)

Последние работы на эту тему по предмету "информационные технологии"

Введение В настоящее время достаточно быстрыми темпами идет развитие рынка интегрированных программных систем, позволяющих проводить автоматизацию деятельности на предприятиях и учреждениях различной направленности (финансовые, промышленные, офисные) и различного размера с разнообразием схем у

ВВЕДЕНИЕ В настоящее время основой любого процесса разработки программного обеспечения (ПО) является понятие жизненного цикла. Все имеющиеся стандарты, технологии и методики, описывают различные этапы жизненного цикла не только с точки зрения функционального наполнения, но и с точки зрения содерж

Любая тема связанная с программной инженерией, только не про саму программную инженерию, тему необходимо согласовать.

Последние работы на эту тему по предмету "программирование"

Введение Информационные системы являются отражением предметной области программной инженерии и должны соответствовать меняющейся ситуации на объекте. С точки зрения программной инженерии, информационная система является системой, имеющей сложную структуру. Необходимость учета изменений в предмет

Читайте также: