Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Особенности имитационного моделирования производственных систем




 

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

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

Имитационные модели позволяют без использования каких-либо аналитических или других функциональных зависимостей отображать сложные объекты, состоящие из разнородных эле­ментов, между которыми существуют разнообразные связи. В эти модели может быть включен также и человек. Без принципиальных усложнений в такие модели могут быть включены как детерминированные, так и стохастические потоки (материальные и информационные). С помощью имитационного моделирова­ния можно отображать взаимосвязи между рабочими местами, потоками материалов и изделий, транспортными средствами и персоналом. Несмотря на такие очевидные преимущества, преж­де всего заключающиеся в широте и универсальности примене­ния, при этом методе из вида упускается существо логических связей, что исключает возможность полной оптимизации полу­чаемых на этой модели решений. Гарантируется лишь возмож­ность отбора лучшего из просмотренных вариантов. Практиче­ски же имитационное моделирование во многих реальных случа­ях – единственно возможный способ исследования. После раз­работки имитационной модели с ней проводятся компьютерные эксперименты, которые позволяют сделать выводы о поведении производственной системы:

 без ее реализации, если эта система находится в стадии про­ектирования;

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

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

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

 до начала проектирования производственной системы с це­лью определения значимости и критичности ее параметров, а также оценки и оптимизации ее показателей;

 на этапе разработки проекта системы с целью исследования и сравнения различных вариантов ее построения;

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

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

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

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

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

 



Тематический обзор*

1. ТЕХНОЛОГИя СОЗДАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

1.1. Общая характеристика технологии создания программного обеспечения

Технология разработки программного обеспечения (ПО) определяется двумя факторами:

 осуществляется ли разработка программ как составных элементов единой системы автоматизиро­ванной обработки информации либо как относительно независимого локального компонента общего програм­много комплекса;

 какие программно-инструментальные средства использу­ются для разработки и реализации задач на ЭВМ.

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

Рассмотрим технологию разработки программ на примере экономических задач.

Исторически сложившаяся технология разработки про­грамм решения задач экономического характера строилась исходя из “позадачного” подхода, при котором слабо учиты­вались или вообще не учитывались программно-информаци­онные взаимосвязи между отдельными задачами, а в качестве инструментальных средств программирования использовались исключительно алгоритмические языки. Принципиальная схе­ма такого процесса представлена на рис. 1.1.

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

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

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

 форма представления отдельных реквизитов (цифровая, символьная и т.д.);

количество знаков (разрядов), выделяемых для записи рек­визитов, исходя из их максимальной значности;

вид реквизита по его роли в процессе решения задачи (ис­ходный, расчетный, нормативный, справочный и т.п.);

источник возникновения реквизита (документ, задача и т.п.).

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

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

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

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

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

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

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

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

аналитические (вычислительные);

матричные (балансовые);

графические (частным видом которых являются сетевые).

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

Хотя математическая запись постановки задачи, как пра­вило, отличается высокой точностью отображения ее сущнос­ти, лаконичностью записи, а главное однозначностью пони­мания, далеко не для всех задач она может быть выполнена. Кроме того, математическое описание задачи в большинстве случаев трудно перевести на язык ЭВМ. Для задач, допус­кающих возможность экономико-математического описа­ния, необходимо выбрать численный метод решения, а для нечисловых
задач – принципиальную схему решения в виде однозначно понимаемой последовательности выполнения элементарных математических и логических функций (опе­раций).

При выборе метода решения задачи предпочтение отдает­ся методу, который наиболее полно удовлетворяет основным требованиям:

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

позволяет использовать готовые стандартные программы для решения задачи или ее отдельных фрагментов;

ориентирован на минимальный объем исходной информации;

способствует наиболее быстрому получению искомых результатов.

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

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

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

Любой алгоритм обладает следующими важными свой­ствами: детерминированностью, массовостью, результатностью и дискретностью.

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

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

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

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

Таким образом, алгоритм дает возможность чисто механи­чески решать любую задачу из некоторого класса однотип­ных задач.

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

Процесс алгоритмизации решения задачи обычно реализу­ется по следующей схеме:

выделение автономных этапов процесса решения задачи (как правило, с одним входом и выходом);

формализованное описание содержания работ, выполняе­мых на каждом выделенном этапе;

проверка правильности реализации выбранного алгорит­ма на различных примерах решения задачи.

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

Непосредственно к предыдущему этапу примыкает этап тестирования и отладки. Оба эти процесса функционально свя­заны между собой, хотя их цели несколько отличаются друг от друга. Тестирование представляет собой совокупность дей­ствий, предназначенных для демонстрации правильности ра­боты программы в заданных диапазонах изменения внешних условий и режимов эксплуатации программы. Цель тестиро­вания заключается в демонстрации отсутствия (или выявле­нии) ошибок в разработанных программах на заранее подго­товленном наборе контрольных примеров. Процессу тестиро­вания сопутствует понятие “отладка”, которое подразумевает совокупность действий, направленных на устранение ошибок в программах, начиная с момента обнаружения фактов ошибочной работы программы и завершая устранением причин их возникновения.

По своему характеру (причине возникновения) ошибки в программах делятся на синтаксические и логические.

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

в какой-то момент программа не может продолжать работу (возникает программное прерывание, обычно сопровождаю­щееся указанием места в программе, где оно произошло);

программа работает, но не выдает всех запланированных результатов и не выходит на останов (происходит ее “за­цикливание”);

программа выдает результаты и завершает свою работу, но они полностью или частично не совпадают с конт­рольными.

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

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

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

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

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

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

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

Описанная схема технологического процесса разработки прикладных программных средств отражает их “жизненный цикл”, т.е. временной интервал с момента зарождения про­граммы до момента полного отказа от ее эксплуатации.

1.2. Современные методы и средства разработки программного обеспечения

1.2.1. Современные методы разработки ПО

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

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

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

Для ускорения разработки программного комплекса час­то вместо некоторых программ нижнего уровня, находящих­ся в процессе разработки, могут применяться специальные “программы-заглушки”. Программы-заглушки требуются толь­ко на ранних стадиях разработки для того, чтобы не сдержи­вать общий ход создания программного комплекса. Суть про­граммы-заглушки заключается в том, что при обращении к ней в соответствии с заданным набором исходных тестовых данных она не формирует, а выбирает результат “решения” из заранее подготовленного набора. Благодаря этому обеспе­чивается возможность имитировать работу на ЭВМ реально создаваемой программы, а следовательно, осуществлять про­верку работоспособности программ верхнего уровня еще до того, как будут разработаны и отлажены все составляющие программы нижнего уровня.

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

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

по завершении работы модуль должен возвращать управ­ление тому модулю, который его вызывал;

модуль должен иметь один вход и выход;

модуль должен иметь небольшой размер, обеспечиваю­щий его обозримость.

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

Модульный принцип разработки программ обладает сле­дующими преимуществами:

большую программу могут разрабатывать одновременно несколько исполнителей, и это позволяет сократить сро­ки ее разработки;

появляется возможность создавать (и многократно исполь­зовать в дальнейшем) библиотеки наиболее употребимых программ;

упрощается процедура загрузки больших программ в опе­ративную память, когда требуется ее сегментация;

возникает много естественных контрольных точек для на­блюдения за осуществлением хода разработки программ, а в последующем для контроля за ходом исполнения про­грамм;

обеспечивается более эффективное тестирование про­грамм, проще осуществляются проектирование и последу­ющая отладка.

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

Актуальная для начального периода развития и исполь­зования ЭВМ проблема разработки программ, занимающих минимум основной памяти и выполняющихся за кратчайшее время, в последующем в связи с резким падением стоимости аппаратной части ЭВМ, значительным возрастанием их быстродействия и объемов памяти сменилась необходимостью разработки и применения принципиально новых “индустри­альных” методов составления программ. Все это нашло свое воплощение в разработке принципа структурного програм­мирования. Одной из целей структурного программирования было стремление облегчить разработку и отладку програм­мных модулей, а главное – их последующее сопровождение и модификацию.

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

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

При развитии этого направления следует учитывать специфику задач экономи­ческого управления:

доминирование задач с относительно несложными вычис­лительными алгоритмами и потребностью формирования различного рода накопительных итогов, т.е. задач “пря­мого счета”;

работа с большими массивами исходной информации (обычно упорядоченной определенным образом);

требование предоставления большинства результатной информации в виде документов табличной формы.

Решение указанных задач может быть осуществлено с исполь­зованием программно-инструментальных средств СУБД и электронных таблиц. Основное достоинство этих инструментальных средств заключается в том, что они предъявляют к пользователям меньшие требова­ния в области программирования, обес­печивая в то же время достаточно быстрое и эффективное решение большинства задач экономического управления. В связи с этим они пользуются большой популярностью среди непрофессиональных программистов.

К наиболее развитым программно-инструментальным средствам относятся систе­мы автоматизации проектирования (САПР) ПО, создание ко­торых было начато в конце 70-х годов. Однако подобные раз­работки в то время слабо учитывали требования системного подхода, так как ограничивались автоматизацией лишь части этапов разработки ПО, причем, как правило, узкого класса задач. Вместе с тем появление и быстрое распространение совре­менных персональных компьютеров среди профессиональных разработчиков ПО открыли новые перспективы в деле автоматизации бла­годаря их широким возможностям интерактивного взаимо­действия. Так, за последнее десятилетие в области средств автоматиза­ции программирования сформировалось новое направление под общим названием CASE-технология (Computer Aided Software Engineering).

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

Высокая “тяжесть” последствий ошибок, присущих этапу составления спецификаций для автоматизации информацион­ной системы объекта, вызвала поиск путей сокращения их числа на этом этапе до минимума. Естественным решением проблемы была разработка формализованного аппарата для составления описания и последующего анализа информационной модели системы. Впервые такой подход с системных позиций был реализован сотрудниками Мичиганского уни­верситета под руководством проф. Д.Тайкроу в рамках про­екта ISDOS (Information System Design and Optimization System – проектирование и оптимизация информационных систем).

В основу реализации проекта ISDOS были положены спе­циально разработанный язык PSL (Problem Stain-lent Language – язык постановки задач), который обеспечивал описание це­лей, функций и задач систем организационно-экономическо­го управления, и программный анализатор описаний PSA (Problem Statment Analizator – анализатор постановок задач), выполненных средствами PSL.

На языке PSL пользователь специфицирует параметры, определяющие входы и выходы информационной системы и их временные характеристики.

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

ввод, контроль и кодирование спецификаций проектируе­мой системы;

анализ правильности постановки и согласован­ности задач;

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

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

выделение основных элементов информационной системы.

Первая версия ISDOS, разработанная применительно к си­стемам административного управления, впоследствии приме­нялась в области управления правительственными организациями, космическими объектами, торговыми организациями и т.д.

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

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

Постоянный поиск методов совершенствования процес­сов разработки прикладных программных средств обусло­вил появление в начале 80-х годов методологии, по которой разработка программы начиналась не после завершения про­цесса выработки окончательных требований к ней, а как толь­ко устанавливались требования на первый, “стартовый” (пилотный) вариант прикладной программы, позволяющий на­чать содержательную работу по ее реализации на компью­тере. Это дало пользователю возможность, получая уже с первых шагов конкретное представление о характере реали­зации задачи, уточнять ее постановку. Тем самым облегчал­ся процесс экспериментального поиска нужного решения ав­томатизации задачи. Благодаря тесному взаимодействию разработчика с заказчиком (пользователем) на самом ответ­ственном этапе создания прикладных программ между ними достигалось быстрое взаимопонимание цели поставленной задачи и возможности ее автоматизации в данных конкрет­ных условиях. Это повышало скорость разработки программ и послужило основанием для названия такой технологии RAD (Rapid Application Development – быстрая разработка про­грамм), которая получила широкое распространение.

Другое направление разработки прикладных программных средств, олицетворяющее собой современный подход к реа­лизации широкого круга задач для принятия управленческих решений, базируется на концепции создания специального хранилища данных (Data Warehouse). Основное отличие концепции Data Warehouse от традиционного представления баз данных заключается в следующем:

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

во-вторых, в том, что наряду с информацией, непосред­ственно отражающей состояние системы управления, в Data Warehouse аккумулируются и метаданные.

Метаданные (данные о данных) облегчают возможность визуального представления содержимого Data Warehouse, позволяют, “перемещаясь” по хранилищу, быстро отбирать необходимые данные для последующей обработки. Основ­ные типы метаданных Data Warehouse отражают:

структуру и содержимое хранилища;

соответствие между исходными и выходными данными;

объемные характеристики данных;

критерии архивирования;

отношения между данными;

информацию по кодированию;

интервал жизни данных и т.п.

Концепция Data Warehouse поддерживается RAD сред­ствами разработки прикладного ПО, благодаря которым даже неспециалист может быстро создавать программные приложения, подбирая необходимые прототипы программ, расширяя их набор путем объединения и настройки более мелких.

Создание программных приложений для Data Warehouse по RAD-технологии представляет собой достаточно простой итеративный процесс, состоящий из следующих пяти этапов:

отбора необходимых объектов для создания программных приложений;

установки переменных для просмотра и ана­лиза данных;

различного рода настройки атрибутов в соответствии с требованиями отображения информации и алгоритмов об­работки;

тестирования приложения, возвращаясь при необходимости к предыдущим этапам;

создания пользовательского интерфейса и пиктограмм.

Концепция Data Warehouse обеспечивает возможность разработки программных приложений для поддержки про­цессов принятия решений с использованием OLAP-систем. Система OLAP (On-Line Analytical Processing) предоставляет возможность разработки прикладного ПО информационных систем, ориентированных на организацию многомерных баз данных и создание корпоративных сетей, а также обеспечива­ет поддержку Web-технологий в сетях Internet/Intranet.

Успешное применение инструментальных средств OLAP-систем объясняется быстротой разработки приложений, гибкостью и широкими возможностями в области доступа к дан­ным и их преобразования. В настоящее время на рынке ПО предлагается большое число OLAP-систем, разработчика­ми которых являются различные фирмы, например Arbor Software, IBM, Informix, Microsoft, Oracle, SAS Institute, Sybase.

1.2.2. Инструментарий технологии программирования

Инструментарий технологии программирования – про­граммные продукты поддержки (обеспечения) технологии программирования.

В рамках этого направления сформировались следующие группы программных про­дуктов (рис. 1.2):

средства для создания приложений, включающие:

– локальные средства, обеспечивающие выполнение отдельных работ по созданию программ;

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

средства для создания информационных систем (СASE-технология), представляющие мето­ды анализа, проектирования и создания программных систем и предназначенные для автоматизации процессов разработки и реализации информационных систем.

1.2.3. Средства для создания приложений

Локальные средств а разработки программ

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

Язык программирования – формализованный язык для описания алго­ритма решения задачи на компьютере.

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

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

машинные языки (computer language) – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);

машинно-ориентированные языки (computer-oriented language) – языки программиро­вания, которые отражают структуру конкретного типа компьютера (ассемблеры);

алгоритмические языки (algorithmic language) – языки программирования, не зависящие от архитектуры ком­пьютера, для отражения структуры алгоритма (Паскаль, Си, Фортран, Бейсик и др.);

процедурно-ориентированные языки (procedure-oriented
language) – языки програм­мирования, где имеется возможность описания программы как совокупности проце­дур (подпрограмм);

проблемно-ориентированные языки (universal programming language) – языки про­граммирования, предназначенные для решения задач определенного класса (Лисп, Пролог, Симула и др.);

интегрированные системы программирования.

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

Программа, подготовленная на языке программирования, проходит этап трансляции, когда происходит преобразование исходного кода программы (source code) в объект­ный код (object code), который далее пригоден к обработке редактором связей. Ре­дактор связей – специальная программа, обеспечивающая построение загрузочного модуля (load module), пригодного к выполнению (рис. 1.3).

Трансляция может выполняться с использованием средств компиляторов (com­piler) или интерпретаторов (interpreter). Компиляторы транслируют всю програм­му, но без ее выполнения. Интерпретаторы, в отличие от компиляторов, выполняют пооператорную обработку и выполнение программы.

Существуют специальные программы, предназначенные для трассировки и анализа выполнения других программ, так называемые отладчики (debugger). Лучшие отлад­чики позволяют осуществить трассировку (отслеживание выполнения программы в поопе­раторном варианте), идентификацию места и вида ошибок в программе, “наблюдение” за изменением значений переменных, выражений и т.п. Для отладки и тестирования правиль­ности работы программ создается база данных контрольного примера.

Более мощным средством разработки программ являются системы программирования.

Системы программирования (programming system) включают:

компилятор;

интегрированную среду разработчика программ;

отладчик;

средства оптимизации кода программ;

набор библиотек (возможно с исходными текстами программ);

редактор связей;

сервисные средства (утилиты) для работы с библиотеками, текстовыми и двоичными файлами;

справочные системы;

документатор исходного кода программы;

систему поддержки и управления проектом программного комплекса.

Средства поддержки проектов – новый класс средств разработки программного обеспечения, предназна­ченный для:

отслеживания изменений, выполненных разработчиками программ;

поддержки версий программы с автоматической разноской изменений;

получения статистики о ходе работ проекта.

Инструментальная среда пользователя представлена специальными средствами, встроенными в пакеты прикладных программ, такими, как:

библиотека функций, процедур, объектов и методов обработки;

макрокоманды;

клавишные макросы;

языковые макросы;

программные модули-вставки;

конструкторы экранных форм и отчетов;

генераторы приложений;

языки запросов высокого уровня;

языки манипулирования данными;

конструкторы меню и многое другое.

Средства отладки и тестирования программ предназначены для подготовки разработанной программы к промышленной эксплуатации.





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 1182 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2538 - | 2391 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.