И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования, страница 3
Описание файла
PDF-файл из архива "И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Реально процесс разработки программного обеспечения никогдане бывает простым, чаще применяется каскадно-возвратный метод:ОпределениетребованийПроектированиееПрограммированиеКомпоновка(интеграция)Только для каскадной схемы,в нисходящей схеме –обратная связь отсутствуетОпределениетребованийПроектированиеПрограммированиеКомпоновка(интеграция)ТестированиеТестированиеДокументированиеРеальный ходразработкипрограммногообеспечения(каскадновозвратная схема)Идеальный случайразработкипрограммногообеспечения (нисходящаяи каскадная схемы)10ДокументированиеДля преодоления проблем каскадно-возвратного метода используетсяспиральная модель жизненного цикла, упор в которой делается на начальные этапы:определение требований, их анализ и проектирование. На этих этапах реализуемостьтехнических решений проверяется путем создания прототипов.
Каждый виток спиралисоответствует созданию фрагмента или версии программ, на нем уточняются цели ихарактеристики проекта, определяется качество проектирования, планируютсяследующие работы. Основная проблема спирального цикла – определение моментаперехода на следующий этап. Для ее решения вводят временные ограничения накаждый из этапов жизненного цикла.Написание текстаПроектированиеАнализ(определениетребований)КомпоновкаВерсия 1Версия 2Версия 3Верификация,тестирование,отладкаДокументированиеТиражированиеВнедрениеТехнологические процессы, составляющие жизненный цикл любогопрограммного продукта, стандартизованы. Международной организаций по стандартамISO, институтом IEEE и другими организациями, в том числе структурамиПравительства России, утверждены стандарты, описывающие процессы, видыдеятельности и задачи жизненного цикла программ и программно-аппаратных систем, атакже результаты, достигаемые с помощью различных видов деятельности. С помощьюстандартов удается проводить оценку качества проводимых процессов и выискиватьвозможности для их улучшения.
Например, международный стандарт ISO/IEC 15504(SPICE) Standard for Information Technology — Software Process Assessment (оценкапроцессов разработки и поддержки программного обеспечения) определяет правилаоценки процессов жизненного цикла. Этот стандарт определяет 5 категорий процессов,включающих 35 процессов и 201 вид деятельности. Например, процесс приобретенияпрограммного обеспечения включает такие виды деятельности, как определениепотребности в программном обеспечении, определение требований, подготовкустратегии покупки, подготовку запроса предложений и выбор поставщика.1.2. Основные требования к системам программированияВажнейшимизтребований,которыепредъявляютсясистемампрограммирования, является требование согласованности интерфейсов инепротиворечивости результатов работы компонентов этих систем.
Именно этосогласование превращает наборы системных программ в единую систему, нацеленнуюна решение своей основной задачи – поддержку единого процесса подготовкипрограмм.11Другое требование – полнота набора системных компонентов, являетсяважным, но вторичным. В мире существуют немного систем программирования,которые обеспечивали бы поддержкой весь процесс проектирования, разработки исопровождения программных продуктов. Однако имеется некоторый уже обязательныйкруг компонентов, лакуны в котором недопустимы. Невозможно представить себесистему программирования, в которой отсутствовали бы трансляторы.
Уже давнообязательным компонентом считается редактор связей (компоновщик), позволяющийобъединять раздельно созданные модули в единую программу. Наличие системныхбиблиотек также является обязательным требованием к составу системпрограммирования. Среди современных систем программирования уже трудно найтисистемы без интерактивных отладчиков и справочных систем. В то же время,отсутствие компонентов, ответственных за первые этапы проектирования программ –от фиксации первичных требований к разрабатываемому программному продукту доразработки подробных спецификаций и структурированных описаний программ, внастоящее время еще не считается существенным недостатком системпрограммирования, и многие из них обходятся без таких компонентов, оставляя ихсистемам проектирования другого рода.
Можно ожидать, что в будущем, по меревнедрения автоматизированных технологий разработки программного обеспечения,системы, предназначенные для автоматизации различных стадий общего процессапроектирования и разработки, будут объединяться в единые комплексы.Все большую важность в последнее время приобретает требование удобстваработы с системами программирования и отдельными их компонентами.
Важнымиявляются возможности по поддержке работы в различных режимах, а также поподдержке ведения в системе нескольких разных проектов разработки программногообеспечения. От систем программирования требуется поддерживать как режим отладкипрограмм, так и режим получения наиболее эффективного варианта программ.Поддержка нескольких проектов позволяет пользователям систем сохранять в архивахсделанные ими настройки и установки режимов для ведущихся ими проектовразработки и быстро извлекать их оттуда, легко восстанавливая сохраненный контекст.1.3. Основные компоненты систем программированияСодержание работ, производимых на отдельных этапах, базируется нарезультатах других этапов, все этапы должны быть согласованы между собой.
Длядостижения этого согласования необходимо вести базу данных проекта, что позволяетсохранять информацию о проекте и причинах принятия тех или иных решений припроектировании, а также контролировать его внутреннюю согласованность: измененияв составе требований должны приводить к указаниям на места проекта, в которых этитребования использованы. Все изменения, которые вносятся в проект, должны бытькорректными, то есть не должны нарушать общие требования к проектируемомупрограммному продукту. Должна проверяться непротиворечивость принимаемыхрешений. Все изменения в такой базе проекта можно проводить толькосанкционированно (специалист, реализующий какие-либо требования, не имеет правоих изменять).Содержимое базы проекта используется не только системой программирования,но и находящейся и функционирующей рядом системой управления проектом.
Так же,как и система программирования, система управления проектом ведет свою работу напротяжении всего жизненного цикла проекта. Среди задач системы управленияпроектом находятся12•••Планирование работ (составление списка задач, длительности и графиковвыполнения проекта, оценка затрат на выполнение проекта, распределениересурсов, необходимых для решения задач, распределение ответственностипо решаемым задачам).Выявление источников затруднений (устранимых и неизбежных рисков),которыми могут быть: недостаточноевовлечениевпроектвысшегоруководстваразработчиков, невозможность привлечения к работам над проектом будущихпользователей программного продукта, нестабильные требования к проекту, нехватка знаний или опыта вколлективе разработчиков, организационно-политические риски.Управление рисками заключается в идентификации рисков и впредупреждении рисков, то есть снижении степени их негативного влиянияна выполнение проекта.
Способы предупреждения рисков могут сводитьсялибо к попыткам полностью их избежать, либо к действиям по ихпреодолению.Контроль и координация календарного плана работ: работа с единой базойпроекта, идентификация хода проекта по графикам и диаграммам, рассылкасообщений участникам проекта, генерация отчетов о выполнении работ.Наиболее известным программным продуктом, позволяющим осуществлятьуправление разработкой проектами, является компонент пакета офисных программMicrosoft Office, который носит название Microsoft Project.
Доступны и другие системыуправления проектами, например, система TimeLine, представляющая собой оченьхорошую систему для ведения единой базы проектов. Широко используются системыSureTrack и Primavera Project Planner компании Primavera, свободно распространяемаясистема OpenProj.На этапе анализа и формулирования требований (и планирования проекта)необходимо иметь возможность использовать формальные языки описания требований,проводить анализ этих требований и их непротиворечивости, осуществлятьмоделирование проектируемой системы, используя поведенческие модели, а такжевыявлять необоснованно завышенные требования к программному обеспечению.Основными компонентами систем программирования, используемыми на этапеанализа требований являются текстовые и графические редакторы, а такжепрограммные средства автоматического контроля непротиворечивости таблицрешений, функциональных диаграмм, текстов на языках спецификаций.На этапе проектирования также возникают текстовые и графическиематериалы, поэтому в системах программирования также необходимы текстовые играфические редакторы.
Если используется объектно-ориентированный подход кпроектированию и объектно-ориентированная декомпозиция, полезными оказываютсясредства, позволяющие разработчикам автоматически строить визуальные описанияклассов объектов, просматривать их и согласованно редактировать. Поскольку этаппроектирования опирается на результаты первого этапа, уже на этом этапе широкоиспользуется база данных проекта.13Этап программирования (кодирования) многими ошибочно называется этапомразработки программ. На самом деле разработке программ посвящены все этапы всовокупности, программирование есть лишь одна из нескольких стадий разработки. Наэтапе написания программ (кодирования) в системах программирования нужно иметь••••••Средства автоматизации (пусть частичной) написания программ.Некоторые системы программирования включают в свой состав компоненты,облегчающие процесс написания программ и автоматически генерирующиезаготовки программ, которые впоследствии превращаются программистами вполноценныепрограммы.Например,присозданиипрограмм,взаимодействующих друг с другом с помощью брокеров запросов объектов,требуется перед программированием составить описание интерфейсовпрограммных компонентов.
Такое описание создается на языке определенияинтерфейсов (Interface Definition Language, IDL), трансляция с этого языкаведется в выбранный язык программирования (часто используются Си++ иJava) специальным компилятором, формирующим согласованные друг сдругом заготовки текстов программ, как для серверной части программы, таки для клиентской части.Помощь в автоматизации графического интерфейса пользователя (GraphicalUser Interface – GUI). Поскольку, независимо от решаемой задачи, самипользовательские интерфейсы для разных задач могут быть похожими,полезны генераторы графических интерфейсов.Библиотеки содержательная часть (средства ввода/вывода, наборы функций, дляобъектно-ориентированных языков – классы и компоненты как системыклассов) средства работы с библиотеками (например, работа с иерархиямиклассов), то есть библиотекари.Средства редактирования текстов (программ).