Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие ТРПО_Итог.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

1) 230100.62 (09.03.01) «Информатика и вычислительная техника»:

  • разрабатывать интерфейсы «человек – электронно-вычислительная машина» (ПК-3);

  • разрабатывать модели компонентов информационных систем, включая модели баз данных (ПК-4);

  • разрабатывать компоненты программных комплексов и баз данных, использовать современные инструментальные средства и технологии программирования (ПК-5);

  • обосновыввать применяемые проектные решения, осуществлять постановку и выполнять эксперименты по проверке их корректности и эффективности (ПК-6).

2) 231000.62 (09.03.04) «Программная инженерия»:

  • уменеие применять основы информатики и программирования к проектированию, конструированию и тестированию программных продуктов (ПК-10);

  • навыки чтения, понимания и выделения главной идеи прочитанного исходного кода, документации (ПК-11);

  • навыки моделирования, анализа и использования формальных методов конструирования программного обеспечения (ПК-12);

  • способность оценивать временную и емкостную сложность программного обеспечения (ПК-13);

  • способность создавать программные интерфейсы (ПК-14);

  • понимание основных концепций и моделей эволюции и сопровождения программного обеспечения (ПК-26);

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

Курс «Технология разработки ПО» связан с другими дисциплинами следующим образом.

Курс является заключительным в цикле подготовки по разработке программного обеспечения и опирается на следующие дисциплины: «Объектно-ориентированное проектирование» «Информатика и программирование», «Структуры и алгоритмы обработки данных», «Базы данных», «Операционные системы».

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

Начнем знакомиться с данным курсом с основных понятий.

Лекция №1. Основные понятия и определения

План лекции

  • Программа, программная система. Программный продукт. Программная систем как технологический объект.

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

  • Понятие жизненного цикла программных систем.

  • Модели жизненного цикла программных систем: поэтапная, каскадная, спиральная и др.

  • Матрица фазы-функции. Возможности формализации и автоматизации отдельных стадий и этапов жизненного цикла.

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

Бизнес-модель – это описание предприятия как сложной системы с заданной точностью. В рамках бизнес-модели отображаются все объекты (сущности), процессы, правила выполнения операций, существующая стратегия развития, а также критерии оценки  эффективности функционирования системы. Форма представления бизнес-модели и уровень ее детализации определяются целями моделирования и принятой точкой зрения [16].  

Информационная модель – подмножество бизнес-модели, описывающее все существующие  (в т.ч. не формализованные в документальном виде) информационные потоки на предприятии, правила обработки и алгоритмы маршрутизации всех элементов информационного поля [18]. 

Информационная система (ИС) – это вся инфраструктура предприятия, задействованная в процессе управления всеми информационно-документальными потоками.

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

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

Существуют различные определения технологии разработки ПО. Ниже приведены наиболее распространенные из них.

Технология разработки программного обеспечения – это совокупность процессов и методов создания программного продукта.

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

Технология разработки программного обеспечения – это система инженерных принципов для создания экономичного ПО с заданными характеристиками качества.

Любая технология разработки ПО базируется на некоторой методологии или совокупности методологий [33].

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

В настоящее время широкую известность приобрели два базовых принципа разработки ПС: модульный и объектно-ориентированный.

Разработка модульных ПС основывается на использовании структурных методов проектирования, целью которых является разбиение по некоторым правилам проектируемого программного средства на структурные компоненты.

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

Объектно-ориентированная разработка базируется на применении объектных методов, к которым относятся методологии объектно-ориентированного анализа, проектирования и программирования.

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

Программный модуль (software unit) – отдельно компилируемая часть программного кода (программы).

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

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

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

В основе деятельности по созданию и использованию программного обеспечения (ПО) лежит понятие его жизненного цикла (ЖЦ).

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

Принято выделять следующие этапы ЖЦ ПО:

  • анализ требований;

  • проектирование;

  • кодирование;

  • тестирование и отладка;

  • эксплуатация и сопровождение;

  • вывод из эксплуатации и замена.

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

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

Модели ЖЦ определяют порядок исполнения этапов в ходе разработки, а также критерии перехода от этапа к этапу. Наибольшее распространение получили следующие модели:

Каскадная модель ЖЦ ПО (1970-1980 гг.) – предполагает переход к следующему этапу после полного завершения предыдущего (рисунок 1).

Поэтапная модель с промежуточным контролем (1980-1985 гг.) – итерационная модель разработки ПО с циклами обратной связи между этапами (рисунок 2). Преимущество модели – уменьшение трудоемкости благодаря межэтапным корректировкам. Недостаток – отсутствие четко выделенных этапов разработки, растягивание их на весь ЖЦ.

Спиральная модель (1986–1990 гг.) – упор делается на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проводится проверка и обоснование реализуемости технических решений путем создания прототипов. Каждый виток спирали соответствует поэтапной модели создания фрагмента или версии программного изделия, уточняются цели и параметры проекта и в результате выбирается обоснованный вариант, который доводится до реализации (рисунок 3).

Преимущества модели:

  • Накопление и повторное использование программных средств, моделей и прототипов.

  • Ориентация на развитие и модификацию ПО в процессе проектирования.

  • Анализ риска и издержек в процессе проектирования.

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

Главная особенность индустрии ПО состоит в концентрации сложности на начальных этапах ЖЦ (анализ, проектирование) при относительно невысокой сложности и трудоемкости последующих этапов. Более того, нерешенные вопросы и ошибки, допущенные на этапах анализа и проектирования, порождают на последующих этапах трудные, часто неразрешимые проблемы и, в конечном счете, приводят к неуспеху всего проекта. Рассмотрим эти этапы более подробно.

Анализ требований – первая фаза разработки ПО, на которой требования заказчика уточняются, формализуются и документируются. Фактически на этом этапе дается ответ на вопрос: "Что должна делать будущая система". Именно здесь лежит ключ к успеху всего проекта. В практике создания больших систем ПО известно немало примеров неудачной реализации проекта именно из-за неполноты и нечеткости определения системных требований [33].

Рисунок 1 – Каскадная модель жизненного цикла программного обеспечения.

Рисунок 2 – Поэтапная модель жизненного цикла программного обеспечения

Рисунок 3 – Спиральная модель жизненного цикла программного обеспечения

Список требований к разрабатываемой системе должен включать:

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

  • описание выполняемых системой функций;

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

Целью анализа является преобразование общих, неясных знаний о требованиях к будущей системе в точные (по возможности) определения. На этом этапе определяются:

  • архитектура системы, ее функции, внешние условия, распределение функций между аппаратурой и ПО;

  • интерфейсы и распределение функций между человеком и системой;

  • требования к программным и информационным компонентам ПО, необходимые аппаратные ресурсы, требования к БД, физические характеристики компонентов ПО, их интерфейсы.

Этап проектирования дает ответ на вопрос: "Как (каким образом) система будет удовлетворять предъявленным к ней требованиям?". Задачей этого этапа является исследование структуры системы и логических взаимосвязей ее элементов, причем здесь не рассматриваются вопросы, связанные с реализацией на конкретной платформе.

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

Обычно этот этап разделяют на два подэтапа:

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

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

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

Кодирование. На этом этапе должны быть получены следующие результаты:

  1. Верифицированная детальная спецификация каждого блока:

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

    • Описание базы данных до уровня атрибутов.

    • Верификация полноты, непротиворечивости и соответствия требованиям проектных спецификаций системы и планам распределения ресурсов.

  2. Одобренный план приемных испытаний.

  3. Руководство пользователя и предварительный план комплексирования и отладки.

  4. Проверка работы всех модулей не только для номинальных, но и для исключительных и предельных значений.

  5. Проверка всех вариантов ввода и вывода, включая сообщения об ошибках.

  6. Выполнение всех операторов и всех ветвей передачи управления.

  7. Проверка выполнения стандартов разработки.

  8. Завершение помодульного документирования внутренней структуры.

Эксплуатация и сопровождение. Содержание данного этапа следующее:

  1. Проверка удовлетворения приемных испытаний системы.

  2. Проверка удовлетворения системных требований.

  3. Проверка производственной готовности, аппаратуры, средств обслуживания и персонала.

  4. Завершение всех специфицированных работ и ввод системы в действие.

Вывод из эксплуатации и замена. На данном этапе решаются следующие задачи:

  1. Выбор новой системы.

  2. Миграция данных в новую систему.

  3. Очистка системы от старого ПО.

  4. Утилизация материальных носителей (диски, документация и т.п.).

  5. Документирование вывода и замены ПО.

Мы видим, что ЖЦ ПО возник как ответ на проблему управленческой сложности при разработке ПО, и главным его назначением является структурирование и организация цикла разработки информационных систем.

Вопросы

1) Понятие технологии разработки программного обеспечения (ТРПО)

2) Понятие и этапы ЖЦ ПО

3) Каскадная модель ЖЦ ПО

4) Модель ЖЦ ПО с промежуточным контролем

5) Спиральная модель ЖЦ ПО

6) Требования к разрабатываемой системе

Дополнительная информация

1) http://www.interface.ru/home.asp?artId=4718

2) http://www.interface.ru/iarticle/files/35798_52840953.pdf