Лекция 2.3 Программное обеспечение.
Жизненный цикл ПО
При решении различных задач на ЭВМ следует иметь в виду, что ЭВМ выполняет вычислительный процесс по заранее заданной программе и не может сама «осмыслить» процесс решения задачи и полученные результаты. Следовательно, работа на ЭВМ подразумевает нечто большее, нежели простое использование ЭВМ как инструмента вычислений.
Технология подготовки и решения задачи на ЭВМ включает в себя четыре основных этапа:
· ознакомление с поставленной задачей – условия задачи, общий подход к решению, исходные данные, цели решения;
· составление плана решения – определение состава и последовательности требуемых преобразований, выбор способа решения, разработка алгоритма;
· осуществление решения – переработка согласно составленному плану входной информации в выходную, разработка программы;
· проверка правильности решения задачи – отладка, счет, интерпретация результатов, получение выводов.
В идеальном варианте указанные этапы выполняются последовательно в линейном порядке. На самом деле действия в процессе решения задачи представляют последовательность циклов, каждый из которых охватывает либо все этапы и действия, либо некоторые из них.
Комплексы программ создаются, эксплуатируются и развиваются во времени. Жизненный цикл программных средств (ПС) включает в себя все этапы развития – от возникновения потребности в программе определенного целевого назначения до полного прекращения использования программы вследствие морального старения, либо отсутствия необходимости решения соответствующих задач.
По длительности жизненного цикла ПС можно разделить на два класса: с малым и большим временем жизни.
В научных организациях и вузах преобладают разработки программ первого класса, а в проектных и промышленных организациях – второго.
Рассмотрим структуру разработки крупных программных комплексов систем управления и обработки информации, оформляемых в виде программного продукта.
Жизненный цикл такого класса программ включает в себя следующие основные этапы (рис. П.1.1):
· системный анализ, в ходе которого определяют потребность в ПС, его назначение и основные функциональные характеристики, оцениваются затраты и возможная эффективность применения комплекса программ;
· проектирование ПС, включающее в себя разработку структуры комплекса и его компонентов, программирование модулей и ряд этапов отладки, а также испытание и внедрение для регулярной эксплуатации комплекса программ;
· эксплуатацию ПС, заключающуюся в исполнении программ и получении ожидаемых результатов, а также в обеспечении достоверности и надежности выдаваемых данных;
· сопровождение ПС, состоящее в эксплуатационном обслуживании, развитии функциональных возможностей, повышении эксплуатационных характеристик и тиражировании ПС.
Наиболее специфическим и трудно формализуемым этапом является этап системного анализа, где формулируются назначение и основные показатели качества создаваемых программ, тесно связанные с предметной областью системного анализа, т. е. с решаемой задачей.
Рис..1. Жизненный цикл программ
Исходя из функционального назначения, программы с малой длительностью эксплуатации создаются, как правило, для решения научных и инженерных задач. Их жизненный цикл – это длительные этапы системного анализа и проектирования, которые продолжаются от месяца до года, и относительно небольшой этап эксплуатации, редко превышающий несколько лет.
Программы с малой длительностью эксплуатации не предназначены для тиражирования и не нуждаются в сопровождении и модификации.
Программы с большой длительностью эксплуатации создаются для регулярной обработки информации и управления в сложных вычислительных системах. Эти программы тиражируются и сопровождаются документацией как промышленные изделия, жизненный цикл которых состоит в основном из эксплуатации и сопровождения, и может длиться десятки лет.
Поскольку именно крупные программные комплексы систем управления и обработки информации оформляются как программные продукты, целесообразно привести основные этапы их разработки ..
Процесс разработки ПС в соответствии с техническим заданием делится на две крупные стадии: техническое и рабочее проектирование.
В представленной схеме второй, третий и частично четвертый этапы относятся к техническому проектированию, а последующие этапы – к рабочему.
После завершения разработки и испытаний ПС начинается процесс их эксплуатации и сопровождения.
Сопровождение должно обеспечивать высокое качество и расширение функций ПС в течение всего времени его жизни. Сюда входит качественное тиражирование и передача пользователям определенных версий комплекса с учетом частных запросов пользователя.
Рис. 2. Этапы разработки программного продукта
На основе эталонных версий создаются пользовательские экземпляры ПС, имеющие значительные различия.
Создание и модернизация пользовательских экземпляров осуществляется обычно программистами, которые не осуществляли первичную разработку. Для корректного и эффективного изменения программ необходима более обширная, чем при эксплуатации, технологическая документация, а также регистрация и учет всех вносимых изменений.
Очень старые эталонные версии целесообразно списывать и объявлять всем пользователям о прекращении их существования и сопровождения.
Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и в непрерывном взаимодействии. Несмотря на то что мы рассматриваем эти две категории отдельно, нельзя забывать, что между ними существует диалектическая связь, и раздельное их рассмотрение является по меньшей мере условным.
Рис. Уровни программного обеспечения |
Состав программного обеспечения вычислительной системы называют программной конфигурацией. Между программами, как и между физическими узлами и блоками существует взаимосвязь — многие программы работают, опираясь на другие программы более низкого уровня, то есть, мы можем говорить о межпрограммном интерфейсе. Возможность существования такого интерфейса тоже основана на существовании технических условий и протоколов взаимодействия, а на практике он обеспечивается распределением программного обеспечения на несколько взаимодействующих между собой уровней. Уровни программного обеспечения представляют собой пирамидальную конструкцию, рис.2.2. Каждый следующий уровень опирается на программное обеспечение предшествующих уровней. Такое членение удобно для всех этапов работы с вычислительной системой, начиная с установки программ до практической эксплуатации и технического обслуживания. Обратите внимание на то, что каждый вышележащий уровень повышает функциональность всей системы. Так, например, вычислительная система с программным обеспечением базового уровня не способна выполнять большинство функций, но позволят установить системное программное обеспечение.
Базовый уровень. Самый низкий уровень программного обеспечения представляет базовое программное обеспечение. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило, базовые программные средства непосредственно входят в состав базового оборудования и хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ — ReadOnlyMemory, ROM). Программы и данные записываются (“прошиваются”) в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации.
В тех случаях, когда изменение базовых программных средств во время эксплуатации является технически целесообразным, вместо микросхем ПЗУ применяют перепрограммируемые постоянные запоминающие устройства (ППЗУ — ErasableandProgrammableReadOnlyMemory, EPROM). В этом случае изменение содержания ПЗУ можно выполнять как непосредственно в составе вычислительной системы (такая технология называется флэш-технологией), так и вне ее, на специальных устройствах, называемых программаторами.
Системный уровень. Системный уровень — переходный. Программы, работающие на этом уровне, обеспечивают взаимодействие прочих программ компьютерной системы с программами базового уровня и непосредственно с аппаратным обеспечением, то есть выполняют “посреднические” функции.
От программного обеспечения этого уровня во многом зависят эксплуатационные показатели всей вычислительной системы в целом. Так, например, при подключении к вычислительной системе нового оборудования на системном уровне должна быть установлена программа, обеспечивающая для других программ взаимосвязь с этим оборудованием. Конкретные программы, отвечающие за взаимодействие с конкретными устройствами, называются драйверами устройств — они входят в состав программного обеспечения системного уровня.
Другой класс программ системного уровня отвечает за взаимодействие с пользователем. Именно благодаря им он получает возможность вводить данные в вычислительную систему, управлять ее работой и получать результат в удобной для себя форме. Эти программные средства называют средствами обеспечения пользовательскогоинтерфейса. От них напрямую зависит удобство работы с компьютером и производительность труда на рабочем месте.
Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера. Полное понятие операционной системы мы рассмотрим несколько позже, а здесь только отметим, что если компьютер оснащен программным обеспечением системного уровня, то он уже подготовлен к установке программ более высоких уровней, к взаимодействию программных средств с оборудованием и, самое главное, к взаимодействию с пользователем. То есть наличие ядра операционной системы — непременное условие для возможности практической работы человека с вычислительной системой.
Служебный уровень. Программное обеспечение этого уровня взаимодействует как с программами базового уровня, так и с программами системного уровня. Основное назначение служебных программ (их также называют утилитами) состоит в автоматизации работ по проверке, наладке и настройке компьютерной системы. Во многих случаях они используются для расширения или улучшения функций системных программ. Некоторые служебные программы (как правило, это программы обслуживания) изначально включают в состав операционной системы, но большинство служебных программ являются для операционной системы внешними и служат для расширения ее функций.
В разработке и эксплуатации служебных программ существует два альтернативных направления: интеграция с операционной системой и автономноефункционирование. В первом случае служебные программы могут изменять потребительские свойства системных программ, делая их более удобными для практической работы. Во втором случае они слабо связаны с системным программным обеспечением, но предоставляют пользователю больше возможностей для персональной настройки их взаимодействия с аппаратным и программным обеспечением.
Прикладной уровень. Программное обеспечение прикладного уровня представляет собой комплекс прикладных программ, с помощью которых на данном рабочем месте выполняются конкретные задания. Спектр этих заданий необычайно широк — от производственных до творческих и развлекательно-обучающих. Огромный функциональный диапазон возможных приложений средств вычислительной техники обусловлен наличием прикладных программ для разных видов деятельности.
Поскольку между прикладным программным обеспечением и системным существует непосредственная взаимосвязь (первое опирается на второе), то можно утверждать, что универсальность вычислительной системы, доступность прикладного программного обеспечения и широта функциональных возможностей компьютера напрямую зависят от типа используемой операционной системы, от того, какие системные средства содержит ее ядро, как она обеспечивает взаимодействие триединого комплекса человек — программа — оборудование.