Добавлен: 25.10.2018

Просмотров: 10326

Скачиваний: 105

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

106 

12. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. СТРУКТУРНОЕ  

И ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 

12.1. Жизненный цикл программного обеспечения 

Программный  продукт (software product) – совокупность 

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

Классификация программного обеспечения ПО: 
1) по способу исполнения программы делят: 
– на интерпретируемые; 
– компилируемые. 
2) по степени переносимости программы делят: 
– на платформозависимые; 
– кроссплатформенные; 
3) по способу распространения и использования программы 

делят: 

– на  несвободные  (закрытые) (proprietary software) – про-

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

– открытые (open-source software) – программное обеспече-

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

–  свободные (free software) – программное  обеспечение, 

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


background image

107 

Жизненный  цикл  программного  обеспечения – период  вре-

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

Структура  жизненного  цикла  ПО  согласно  стандарту 

ISO/IEC 12207 базируется на трех группах процессов: 

– основные  процессы (приобретение, поставка, разработка, 

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

– вспомогательные процессы, обеспечивающие выполнение 

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

– организационные  процессы  (управление  проектами,  соз-

дание инфраструктуры проекта, определение, оценка и улучше-
ние самого жизненного цикла, обучение). 

Разработка  проекта  включает  в  себя  все  работы  по  созда-

нию ПО и  его компонентов  в соответствии  с  заданными  требо-
ваниями. Этапы жизненного цикла ПО: 

– формирование требований; 
– проектирование; 
– реализация (программирование); 
– тестирование; 
– внедрение; 
– эксплуатация и сопровождение. 
Важное  место  в  цикле  разработки  ПО  после  этапов  про-

граммирования и тестирования занимает отладка  – этап разра-
ботки  компьютерной  программы,  на  котором  обнаруживают, 
локализуют  и  устраняют  ошибки.  Для  того  чтобы  понять,  где 
возникла ошибка, приходится: 

– узнавать текущие значения переменных; 
– выяснять, по какому пути выполнялась программа. 
Существуют две взаимодополняющие технологии отладки: 
1) использование отладчиков – программ, которые включа-

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


background image

108 

ей, с остановками на некоторых строках исходного кода или при 
достижении определённого условия; 

2) вывод текущего состояния программы с помощью распо-

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

Эксплуатация содержит работы по внедрению компонентов 

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

Сопровождение  (поддержка)  программного  обеспечения – 

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

Переносимость  программ.  Переносимость  программы 

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

Необходимость  в  выполнении  портирования  возникает 

обычно  из-за  различий  в  системе  команд  процессора,  различий 
между способами взаимодействия операционной системы и про-
грамм (API – Application Program Interface), принципиальных 
различий в архитектуре вычислительных систем либо по причи-
не  некоторых  несовместимостей  или  даже  полного  отсутствия 
используемого языка программирования в целевом окружении. 

По мере развития операционных систем, языков и техники 

программирования  становится  всё  проще  портировать  програм-
мы между различными платформами. 

Понятие  интеллектуальной  собственности.  Интеллекту-

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


background image

109 

В России с 1 января 2008 г. вступила в силу 4-я часть Граж-

данского  кодекса  (в  соответствии  с  Федеральным  законом  от 
18.12.2006  № 231-ФЗ),  раздел VII «Права  на  результаты  интел-
лектуальной деятельности и средства индивидуализации», кото-
рый  определяет  интеллектуальную  собственность  как  список 
результатов  интеллектуальной  деятельности  и  средств  индиви-
дуализации, которым предоставляется правовая охрана. Соглас-
но этому документу интеллектуальной собственностью  являют-
ся  в  том  числе  и  программы  для  электронных  вычислительных 
машин (программы для ЭВМ). 

Законодательство,  которое  определяет  права  на  интеллекту-

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

12.2. Структурное программирование 

Структурное программирование – методология разработки 

программного обеспечения, в основе которой лежит представле-
ние  программы  в  виде  иерархической  структуры  блоков.  Пред-
ложена в 1970-х гг. нидерландским ученым Э. Дейкстрой, разра-
ботана и дополнена швейцарским ученым Н. Виртом. 

В  соответствии  с  данной  методологией  любая  программа 

строится  без  использования  оператора  goto  из  трёх  базовых 
управляющих  структур:  последовательность,  ветвление,  цикл; 
кроме  того,  используются  подпрограммы.  При  этом  разработка 
программы ведётся пошагово, методом «сверху вниз». 

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

ловного перехода goto. 

2.  Любая  программа  строится  из  трёх  базовых  управляю-

щих конструкций: последовательность, ветвление, цикл. 

3.  В  программе  базовые  управляющие  конструкции  могут 

быть  вложены  друг  в  друга  произвольным  образом.  Никаких 


background image

110 

других  средств  управления  последовательностью  выполнения 
операций не предусматривается. 

4. Повторяющиеся фрагменты программы можно оформить 

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

5. Каждую логически законченную группу инструкций сле-

дует оформить как блок (block). Блоки являются основой струк-
турного программирования. 

Блок – это логически сгруппированная часть исходного ко-

да, например набор инструкций, записанных подряд в исходном 
коде программы. Границы блока строго определены. Например, 
в  языке Pascal в  if-инструкции  блок  ограничен  кодом 
begin...end. 

6.  Все  перечисленные  конструкции  должны  иметь  один 

вход и один выход. 

7. Разработка программы ведётся пошагово, методом «свер-

ху вниз». 

Суть метода «сверху вниз» заключается в следующем. Сна-

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

После  того  как  программист  убедится,  что  подпрограммы 

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

Рассмотрим применение принципов структурного програм-

мирования на примере задач математического моделирования.