Классы программных продуктов

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

  • аппаратная часть автономных компьютеров и сетей ЭВМ;

  • функциональные задачи различных предметных областей;

  • технология разработки программ.

Дня поддержки информационной технологии в этих областях выделим соответственно и класса программных продуктов:

  • системное программное обеспечение;

  • пакеты прикладных программ;

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

Системное программное обеспечение направлено:

  • на создание операционной среды функционирования других программ;

  • на обеспечение надежной и эффективной работы самого компьютера и вычислитель­ной сети;

  • на проведение диагностики и профилактики аппаратуры компьютера и вычислитель­ных сетей;

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

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

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

Системное программное обеспечение (System Software) — совокупность программ и программных комплексов для обеспечения работы компьютера и сетей ЭВМ.

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

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

Пакет прикладных программ (application program package) — комплекс взаимосвязанных программ для решения задач определенного класса конкретной предметной области.

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

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

8. Методология проектирования программных продуктов: классификация методов проектирования программных продуктов (структурное проектирование; информационное моделирование предметной области и связанных с ней приложений; объектно-ориентированное проектирование); этапы создания программных продуктов (составление технического задания на программирования; технический проект; рабочая документация (рабочий проект); ввод в действие); структура программных продуктов; проектирование интерфейса пользователя (диалоговый режим; графический интерфейс пользователя)

. Классификация методов проектирования программных продуктов

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

  • степень автоматизации проектных работ;

  • принятая методология процесса разработки.

По степени автоматизации проектирования алгоритмов и программ можно выделить:

  • методы традиционного (неавтоматизированного) проектирования;

  • методы автоматизированного проектирования (CASE-технология и ее элементы).

Проектирование алгоритмов и программ может основываться на различных подходах, среди которых наиболее распространены:

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

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

В зависимости от объекта структурирования различают:

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

  • методы структурирования данных.

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

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

Структурный подход использует:

  • диаграммы потоков данных (информационно-технологические схемы;

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

  • диаграммы декомпозиции — структура и декомпозиция целей, функций управления, приложений;

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

Для полного представления о программном продукте необходима также текстовая ин­формация описательного характера.

  • информационное моделирование предметной области и связанных с ней приложений;

Еще большую значимость информационные модели и структуры данных имеют для информационного моделирования предметной области, в основе которого положение об определяющей роли данных при проектировании алгоритмов и программ. Подход появился в условиях развития программных средств организации хранения и обработки данных — СУБД.

Один из основоположников информационной инженерии — Дж. Мартин — выделяет следующие составляющие данного подхода:

  • информационный анализ предметных областей (бизнес-областей);

  • информационное моделирование — построение комплекса взаимосвязанных моделей данных;

  • системное проектирование функций обработки данных;

  • детальное конструирование процедур обработки данных.

Первоначально строятся информационные модели различных уровней представления:

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

  • даталогические модели, ориентированные на среду хранения и обработки данных.

Даталогические модели имеют логический и физический уровни представления. Физи­ческий уровень соответствует организации хранения данных в памяти компьютера. Логичес­кий уровень данных применительно к СУБД реализован в виде:

  • концептуальной модели базы данных — интегрированные структуры данных под уп­равлением СУБД;

  • внешних моделей данных — подмножество структур данных для реализации прило­жений.

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

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

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

  • объектно-ориентированное проектирование программных продуктов.

Объектно-ориентированный подход к проектированию программных продуктов осно­ван на:

  • выделении классов объектов;

  • установлении характерных свойств объектов и методов их обработки;

  • создании иерархии классов, наследовании свойств объектов и методов их обработки.

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

Объектный подход при разработке алгоритмов и программ предполагает:

  • объектно-ориентированный анализ предметной области;

  • объектно-ориентированное проектирование.

Объектно-ориентированный анализ — анализ предметной области и вы­деление объектов, определение свойств и методов обработки объектов, ус­тановление их взаимосвязей.

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

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

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

Этапы создания программных продуктов

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

Что вообще собой представляет классификация программных продуктов?

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

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

Основные классы программных продуктов

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

  • системное ПО;
  • прикладные программы;
  • средства программирования и разработки.

Взаимосвязь между классами программных продуктов

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

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

Системное ПО

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

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

  • базовое ПО;
  • вспомогательное сервисное ПО.

В свою очередь, базовый софт делится на следующие компоненты:

  • локальные операционные системы;
  • сетевые ОС;
  • драйверы;
  • графические и текстовые оболочки.

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

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

Что касается драйверов, они представляют собой специальные приложения, которые обеспечивают взаимодействие «железных» компонентов компьютера с операционной системой. Грубо говоря, это средство, при помощи которого «операционка» может инициализировать, допустим, звуковую или видеокарту, а также в полной мере использовать ее возможности для передачи определенной информации пользователю. Но это, так сказать, только общее понимание, поскольку в некоторых случаях для обеспечения корректной работы системы в целом могут понадобиться даже драйверы для виртуальных устройств (самый простой пример – драйверы ASIO4ALL).

Как уже можно было заметить, эти подклассы программных продуктов включают в себя и операционные системы – ту самую основу, которая является своеобразным мостом между компьютером и пользователем. Иногда, как было сказано выше, это относится и к «железу» в прямом смысле.

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

  • системы безопасности (антивирусы, файрволлы и т.д.);
  • архиваторы;
  • оптимизаторы;
  • программные кодеки и декодеры;
  • дополнительные утилиты, обеспечивающие наблюдение за работой ОС и т.д.

Пакеты прикладных программ

Теперь рассмотрим так называемые пакеты прикладного ПО. И в них тоже есть свои дополнительные классы программных продуктов. Что это такое в общем смысле?

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

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

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

Еще одну большую группу тоже условно можно разделить на несколько подгрупп, которые условно можно трактовать именно как «классы программных продуктов». Это четыре основных разновидности:

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

Как правило, все эти средства похожи только в одном – они базируются на определенных языках программирования, которые позволяют создавать программные продукты определенного типа и для обеспечения взаимодействия компьютера с пользователем, и для создания условий для работы встроенных «железных» устройств. Если посмотреть на эти классы программных продуктов более внимательно, нетрудно заметить, что здесь присутствует разработка драйверов, которые относятся к системному ПО. А это, так сказать, дополнительный довод в пользу взаимосвязи между всеми категориями.

Что же касается используемого средства программирования, сегодня языков существует столько, что все и не перечислишь. Например, для создания ОС чаще всего используется язык C+/C++, мобильные программы могут основываться на языке Java, офисные приложения практически всегда имеют встроенные средства поддержки языка Visual Basic.

Аналитика, моделирование и прогнозирование

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

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

Автоматизированные системы управления

АСУ на основе программ сегодня уже не редкость. При всем этом, программное обеспечение такого типа работает не только на каких-то заводских станках или технологических производственных линиях. Достаточно часто можно встретить приложения, разработанные для целых заводов.

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

Бухгалтерский учет

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

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

Разделение прикладных программ на примере мультимедиа

Теперь посмотрим на некоторые общие принципы, присутствующие в разделении программ на группы внутри самого большого класса – прикладного ПО.

Чтобы было понятнее, приведем пример мультимедиа. В нем можно выделить несколько основных групп:

  • аудио;
  • видео;
  • графика;
  • анимация.

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

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

Специфичные классы программ

Наконец, посмотрим на программы, которые можно отнести к нескольким классам сразу. В первую очередь это касается средств Интернета.

Посудите сами, ведь многие браузеры вроде Mozilla Firefox одновременно являются и средством доступа во Всемирную паутину, и средством просмотра веб-страниц, и средством прослушивания музыки или просмотра видео, и средством загрузки контента на компьютер, и даже средством веб-разработки.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *