Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1438

.pdf
Скачиваний:
2
Добавлен:
30.04.2022
Размер:
1.16 Mб
Скачать

Е.А. Ганцева

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Учебное пособие

Воронеж 2004

3

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Воронежский государственный технический университет

Е.А. Ганцева

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Учебное пособие

Утверждено Редакционно-издательским советом университета в качестве в качестве учебного пособия

Воронеж 2004

4

УДК 681.3

Ганцева Е.А. Технология программирования: Учеб. пособие. Воронеж: Воронеж. гос. техн. ун-т, 2004. 202 с.

Рассматривается содержание основных этапов и методология разработки программного обеспечения. Издание соответствует требованиям Государственного образовательного стандарта высшего профессионального образования по направлению 230100 «Информатика и вычислительная техника», специальности 230101 «Вычислительные машины, комплексы, системы и сети», дисциплинам «Программирования на языках высокого уровня» и «Технология программирования».

Учебное пособие предназначено для студентов очного обучения, а также будет полезно аспирантам и научным работниками, интересующимся современными технологиями создания программного обеспечения.

Учебное пособие подготовлено на магнитном носителе в текстовом редакторе MS Word и содержится в файле

«TPR.rar».

Табл. 13. Ил. 29. Библиогр.: 18 назв.

Научный редактор д-р техн. наук, проф. С.Л. Подвальный Рецензенты: кафедра ПМиЭММ ВГТА (зав. кафедрой д-р

техн. наук, проф. М.Г. Матвеев); канд. техн. наук, с.н.с. В.А. Каладзе

©Ганцева Е.А., 2004

©Оформление. Воронежский государственный технический университет, 2004

5

ВВЕДЕНИЕ

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

Впособии описываются современная индустриальная

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

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

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

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

6

1. ПРЕДМЕТ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ПРОГРАММНАЯ СИСТЕМА, КОМПЛЕКС ПРОГРАММ, ПРОГРАММА

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

Прежде, чем приступить к изложению основных вопросов данного предмета, необходимо дать определения тем понятиям, которые будут использоваться в дальнейшем [1, 11, 15].

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

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

Комплекс программ понимается как программная система или программное средство, еще не прошедшее испытаний.

Программа – это любой текст на языке программирования, пригодный для компьютера.

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

7

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

Небольшие программы имеют размер порядка одной – нескольких сотен строк, разрабатываются, как правило, одним человеком без применения специальных методов разработки. На написание таких программ уходит несколько дней, а срок их использования очень короткий [8].

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

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

По назначению можно провести такую классификацию:

однопользовательские системы (не предполагают тиражирования);

многопользовательские (предполагают тиражирова-

ние);

Классификация по требованиям надежности может быть такова:

критические ПС (системы управления жизненно важными объектами);

важные ПС (например, системы продажи железнодорожных билетов, системы обеспечения заказов покупателям);

ординарные ПС (игры, бытовые программы).

Классификация ПС по технологии разработки:

8

промышленная разработка программных систем;

непромышленная разработка; Технология проектирования ПС определяется как сово-

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

Методические материалы, инструкции, нормативы и стандарты, критерии оценки результатов

Исходные данные

 

 

 

 

 

 

 

 

 

 

 

 

в стандартном

 

 

 

 

 

 

Результаты в

 

 

Техническая

 

представлении

 

 

 

стандартном

 

 

операция

 

(документы, рабочие

 

 

 

представлении

 

 

 

 

 

материалы, результаты

 

 

 

 

 

 

предыдущей операции)

 

 

 

 

 

 

 

 

 

 

Исполнители,

 

 

 

 

инструментальные

 

 

 

 

 

 

средства

 

 

Рис.1. Операция проектирования ПС

Современная технология проектирования [8, 15] ПС должна обеспечивать:

соответствие стандарту ISO/IЕС 12207 (поддержка всех процессов жизненного цикла ПС);

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

возможность декомпозиции проекта на составные части, разрабатываемые группами исполнителей ограниченной численности (3-7 человек), с последующей интеграцией составных частей;

9

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

независимость получаемых проектных решений от средств реализации ВС (СУБД, операционных систем, языков и систем программирования);

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

2. ЖИЗНЕННЫЙ ЦИКЛ ПС

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

Этапами классического ЖЦ [1, 6, 11, 15] (автор Уинстон Ройс, 1970г.) являются:

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

2)проектирование;

3)кодирование;

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

5)эксплуатация и сопровождение.

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

10

кументов определяются ГОСТами: ГОСТ 19.102-77, ГОСТ

19.001-87, ГОСТ 19.105-88.

1-й этап включает в себя подробный анализ предметной области, определение требований к системе, планирование проекта системы, определение трудоемкости разработки, характеристики и интерфейс. На данном этапе решается вопрос о том, что должна делать система. В соответствии с ГОСТ результат анализа требований отражается в техническом зада-

нии.

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

рабочем проекте.

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

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

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

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

2.1.Модели жизненного цикла

Взависимости от последовательности прохождения этих этапов, объединения их и возможности возврата к преды-

11

дущим этапам, различают модели ЖЦ ПО. Модель ЖЦ актуальна для выбора стратегии разработки, планирования и распределения работ в коллективе разработчиков.

Остановимся на основных моделях ЖЦ [1, 11, 15].

1. Каскадная (или водопадная) модель (70 – 80 гг.) – подразумевает переход на следующий этап только после окончания работ на предыдущем.

Рис.2. Каскадная схема разработки ПО

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

2. Поэтапная модель (80 – 85 гг.) – итерационная модель с циклами обратной связи. По сравнению с каскадной моделью здесь меньше трудоемкость за счет элементарной этап-

12