Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС, страница 7
Описание файла
PDF-файл из архива "Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 7 страницы из PDF
Дляобеспечения процесса отладки используются специальные программные средства — отладчики.Средства отладки существенно зависят от типа и назначения создаваемой программной системы.Этап ввода программной системы в эксплуатацию (внедрение) и сопровождения.Немаловажным этапом жизненного цикла программы в вычислительной системе является этап,связанный с представлением разрабатываемой программной системы в качестве программногопродукта. Одним из основных требований, предъявляемых к программному продукту, являетсявозможность эксплуатации соответствующей программной системы без постоянного участияразработчика программы. Это достигается, с одной стороны, соответствующей надежностьюпрограммы (для этого программа должна быть максимально полно протестирована и устойчива квсевозможным комбинациям входных данных), а с другой стороны — это наличие подробной иадекватной программе документации, необходимой для всех категорий пользователей даннойпрограммной системы (пользователь, системный программист, администратор, оператор и т.п.).Итак, мы рассмотрели основные этапы жизненного цикла программы в вычислительнойсистеме.
При создании различных программных систем, при использовании различныхтехнологий разработки данные этапы могут выполняться как линейно, так и итерационно, свозвратами от одного этапа к другому, последовательными уточнениями спецификаций ирасширением реализации программной системы. Современные технологии разработкипрограммного обеспечения специфицируют различные модели организации жизненного циклапрограммной системы.
Традиционная модель — каскадная модель (1.1.5) — представляетразработку в виде строго линейной последовательности этапов, каждый из которых заканчиваетсяфиксацией результата, и только после этого начинается последующий.20ПроектированиеКодированиеТестированиеОтладкаРис. 10.Каскадная модель.В определенном смысле эта модель является вырожденной, т.к. соблюсти эти правила напрактике достаточно сложно. Примером может служить связка этапа тестирования и отладки спредшествующими этапами, которая по своей сути итерационна (после обнаружения илокализации ошибки зачастую необходимо вернуться к этапу кодирования, а возможно ипроектирования). Прагматическим развитием каскадной модели является каскаднаяитерационная модель (1.1.5), которая в общем случае, предоставляет возможностьосуществления анализа полученных на этапе результатов и возврат к любому предшествующемуэтапу.ПроектированиеКодированиеТестированиеОтладкаРис.
11.Каскадная итерационная модель.Современные технологии разработки программного обеспечения помимо каскадноймодели используют и другие модели организации жизненного цикла программных систем. Вчастности, популярной является спиральная модель организации жизненного цикла (1.1.5).Данная модель основана на том, что процесс разработки программной системыскладывается из последовательности "спиралей", каждая из которых включает этапыпроектирования, кодирования, тестирования и получения результата. Под результатом понимаетсяочередная детализация проекта и получение последовательности программ — прототипов.Прототип — программа, реализующая частичную функциональность и внешние интерфейсыразрабатываемой системы. Последовательность прототипов, в конечном счете, сходится креализации программной системы.
А детализации проекта, в итоге, превращаются в полныйпроект системы.21кодированиетестированиеотладкапроектированиедетализацияпрототипыпрограммнаясистемаРис. 12.Спиральная модель.Вернемся к рассмотрению следующего уровня иерархической организациивычислительныхсистем —куровнюсистемпрограммирования.Системапрограммирования — комплекс программ, обеспечивающий поддержание этапов жизненногоцикла программы в вычислительной системе. Этапы жизненного цикла программы оставалисьв той или иной мере неизменными с момента зарождения вычислительных систем, т.к. всегдабыли и решались проблемы проектирования программной системы, кодирования, тестирования иотладки, подготовки эксплуатационной документации и сопровождения.
В тоже время,определение системы программирования как комплекса программных средств, предназначенныхдля автоматизации этапов жизненного цикла программы, изменялось постоянно вместе споявлением и развитием данных средств. Рассмотрим развитие состава и основных функцийпонятия система программирования в хронологии развития вычислительных систем.Начало 50-х годов ХХ века. Первые системы автоматизации программирования. Системапрограммирования или система автоматизации программирования включала в себя ассемблер (илиавтокод) и загрузчик. Несколько позднее появились библиотеки стандартных программ имакрогенераторы. Основная функция первых систем программирования — предоставлениепрограммисту системы мнемонического обозначения компьютерных команд и данных,используемых в программах, а также предоставление возможности создавать и использоватьбиблиотеки программ.Середина 50-х — начало 60-х годов ХХ века.
Появление и распространение языковпрограммирования высокого уровня (Фортран, Алгол-60, Кобол и др.). Формирование концепциймодульного программирования. Система программирования: макроассемблеры, трансляторыязыков высокого уровня, редакторы внешних связей, загрузчики.Середина 60-х — начало 90-х годов ХХ века. Развитие интерактивных и персональныхсистем, появление и развитие языков объектно-ориентированного программирования. Системапрограммирования: трансляторы языков программирования, редакторы внешних связей,загрузчики, средства поддержания библиотек программ, интерактивные и пакетные средстваотладки программ, системы контроля версий, средства поддержки проектов.90-е годы ХХ века — настоящее время.
Появление промышленных средствавтоматизации проектирования программного обеспечения, CASE-средств (Computer-AidedSoftware/System Engineering), унифицированного языка моделирования UML. Системыпрограммирования: интегрированные системы, предоставляющие комплексные решения вавтоматизации проектирования, кодирования, тестирования, отладки и сопровожденияпрограммного обеспечения.22Мы видим, что интерпретация термина система программирование претерпела изменениеот самого примитивного: «система программирования — это транслятор языкапрограммирования и средства редактирования связей», — до современного: «системапрограммирования — это комплекс программ, обеспечивающий технологию автоматизациипроектирования, кодирования, тестирования, отладки и сопровождения программногообеспечения».
Функции конкретной системы программирования определяются составомпрограммных компонентов, которые могут использоваться для поддержания этапов жизненногоцикла программы, и степенью интеграции этих компонентов. Таким образом, системойпрограммирования будет являться как система, включающая только транслятор языка Си,ассемблер, редактор связей и интерактивный отладчик, так и, например, система Rational Rose —набор объектно-ориентированных CASE-средств, предназначенных для автоматизации процессованализа, моделирования и проектирования с использованием UML, а также для автоматическойгенерации кодов программ на различных языках (C++, Java и пр.), разработки проектнойдокументации и реверсного инжиниринга программ. На сегодняшний день выбор конкретнойсистемы программирования во многом зависит как от масштабности и сложности решаемойзадачи автоматизации, так и от квалификации программистов.Уровень системы программирования основывается на доступе к виртуальным ифизическим ресурсам, предоставляемым операционной системой (или уровнями управленияфизическими и виртуальными ресурсами), и предоставляет программистам инструментальныесредства разработки программных систем, каждая из которых предназначена для решения своегокруга задач.1.1.6Прикладные системыИтак, мы переходим к вершине структурной организации вычислительных систем — куровню прикладного программного обеспечения.
Прикладная система — это программнаясистема, ориентированная на решение или автоматизацию решения задач из конкретнойпредметной области. Прикладная система является прагматической основой всей вычислительнойсистемы, так как, в конечном счете, именно для решения конкретных прикладных задачсоздавались все те уровни вычислительной системы, которые мы рассмотрели к настоящемувремени.В истории развития прикладных систем можно выделить четыре этапа. Первый —прикладные системы компьютеров первого поколения. Основной характеристикой данных системявлялось то, что для автоматизации решения каждой конкретной задачи создавалась уникальнаяпрограммная система, которая не предполагала возможность модификации функциональности,переноса с одной вычислительной системы на другую (1.1.6).
Пользовательского интерфейса небыло, как такового. Подавляющее большинство решаемых прикладных задач было связано смоделированием физических процессов, и, в свою очередь, результаты моделированияпредставлялись в виде последовательностей чисел и числовых таблиц. Уровень инструментальныхсредств программирования, доступных для решения прикладных задач, накладывал достаточножесткие требования к квалификации специалистов, занимающихся автоматизацией решенияприкладных задач. Кроме знания предметной области, алгоритмов и методов решениясоответствующих прикладных задач программист должен был владеть средствамипрограммирования компьютеров первого поколения — уметь использовать для этих целейсистему команд или ассемблер компьютера.ЗадачаРазработка,программированиеРис.
13.Первый этап развития прикладных систем.23РешениеВторой этап — развитие систем программирования и появление средств создания ииспользования библиотек программ (1.1.6).ЗадачаСистемапрограммированияРазработкаРешениеБиблиотекаБиблиотекаРис. 14.Второй этап развития прикладных систем.Библиотеки прикладных программ позволили аккумулировать и многократно использоватьпрактический опыт численного решения типовых задач из конкретных предметных областей.Составляющие библиотеку подпрограммы служили "строительными блоками", которые винтеграции с системами программирования использовались для разработки прикладных систем.Библиотеки прикладных программ стали одними из первых программных систем, которые моглиотноситься к категории программных продуктов — документированных, прошедших детальноетестирование, распространенное в пользовательской среде.
Библиотеки прикладных программ,наверное, были одними из первых коммерческих программных продуктов, т.е. они являлисьинтеллектуальным товаром, который можно было продать и купить. Примером может служитьбиблиотека программ численного интегрирования, включающая в свой состав подпрограммы,реализующие всевозможные методы численного нахождения значений определенных интегралов.Библиотеки прикладных программ существенно упростили процесс разработки прикладныхсистем, однако требования к квалификации прикладного программиста оставались достаточновысокими.
Прикладные системы этого этапа создавались с использованием стандартных системпрограммирования и в большей части были уникальны: создавались для решения конкретнойзадачи в конкретных условиях.Третий этап характеризуется появлением пакетов прикладных программ (ППП),которые включали в себя программные продукты (1.1.6), предназначенные для решения широкогокомплекса задач из конкретной прикладной области и обладающие следующими свойствами:− программные продукты имели развитые, стандартизованные пользовательские интерфейсы, нетребующие высокой программисткой квалификации от прикладного пользователя изначительных затрат на их освоение;24СистемапрограммированияЗадачаРешениеПрограммыПрограммыРис. 15.Третий этап развития прикладных систем.− функциональные возможности прикладных программ, входящих в состав ППП и ихпользовательские интерфейсы позволяли решать разнообразные задачи данной прикладнойобласти;− возможно совместное использование программных продуктов, входящих в состав ППП прирешении конкретных задач.Примерами наиболее распространенных пакетов прикладных программ могут служитьMicrosoft Office (1.1.6), предназначенный для автоматизации офисной деятельности или пакетMathCAD (1.1.6), предназначенный для решения задач, связанных с математическими итехническими расчетами.MS OfficeWordExcelAccessтекстовый редакторэлектронныетаблицысистема управлениябазами данных (СУБД)……PowerPointсозданиепрезентацийРис.