Лечение депрессии аутотренингом. Упражнения аутотренинга для успокоения нервной системы. шаг: прогрессивная мышечная релаксация

Каждый вопрос экзамена может иметь несколько ответов от разных авторов. Ответ может содержать текст, формулы, картинки. Удалить или редактировать вопрос может автор экзамена или автор ответа на экзамен.

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

Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и в непрерывном взаимодействии.

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

Существуют следующие виды программного обеспечения (рисунок 7.1):

Базовое программное обеспечение;

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

Прикладное программное обеспечение;

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

Рисунок 7.1. - Классификация программного обеспечения

Базовое программное обеспечение - самый низкий уровень программного обеспечения. Оно отвечает за взаимодействие с базовыми программными средствами. Как правило, базовые программные средства непосредственно входят в состав базового оборудования и хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ - Read Only Memory). Программы и данные записываются («прошиваются») в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации.

В тех случаях, когда изменение базовых программных средств во время эксплуатации является технически целесообразным, вместо микросхем ПЗУ применяют перепрограммируемые постоянные запоминающие устройства (ППЗУ - Erasable and Programmable Read Only Memory ) . В этом случае изменение содержания ПЗУ можно выполнять как непосредственно в составе вычислительной системы (такая технология называется флэш-технологией ), так и вне ее, на специальных устройствах, называемых программаторами .

К базовому программному обеспечению относится базовая система ввода-вывода.

BIOS ( BIOS Basic Input / Output System ) - набор программ небольшого размера, в функции которых входят начальное тестирование оборудования и обеспечение взаимодействия компонентов компьютера. Имеется несколько видов BIOS: например, видео-BIOS обеспечивает работу видеоплаты, начиная от ее тестирования в момент включения и заканчивая взаимодействием видеоплаты с процессором, BIOS SCSI-контроллера выполняет роль переводчика между интерфейсом и системной шиной и т. п. Но наиболее важной в компьютере является системная BIOS, в функции которой входят:

Тестирование компьютера при включении питания с помощью специальных тестовых программ;

Поиск и подключение к системе других BIOS, расположенных на платах расширения;

Распределение ресурсов между компонентами компьютера.

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

Физически BIOS — это набор микросхем постоянной памяти (ROM, Read Memory — только для чтения), расположенных на материнской плате.

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

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

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

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

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

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

Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью.

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

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

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

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

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

Инструментарий технологии программирования делится на следующие группы:

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

2. CASE-технологии (Computed Aided Software Engineering ) - система конструирования программ с помощью компьютера, представляющая методы анализа, проектирования и создания программных систем и предназначенная для автоматизации процессов разработки и реализации информационных систем. Это программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных систем.

Программное обеспечение - неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него ПО.

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

Программное обеспечение современных компьютеров включает миллионы программ � от игровых до научных.

Классификация ПО

Программы, работающие на компьютере, можно разделить на три категории:

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

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

Прикладное ПО . Для IBM PC разработаны и используются сотни тысяч различных прикладных программ для различных применений. Наиболее широко применяются программы:

  1. подготовки текстов (документов) на компьютере � редакторы текстов;
  2. подготовки документов типографского качества � издательские системы;
  3. обработки табличных данных � табличные процессоры;
  4. обработки массивов информации � системы управления базами данных.

Прикладная программа � это любая конкретная программа, способствующая решению какой-либо задачи в пределах данной проблемной области.

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

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

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

Наиболее часто используемые типы прикладных программ.

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

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

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

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

Системы автоматизированного проектирования (САПР) позволяют осуществлять черчение и конструирование различных механизмов с помощью компьютера.

  1. Интегрированные системы � сочетают в себе возможности системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности.
  2. Бухгалтерские программы � предназначены для ведения бухгалтерского учета, подготовки финансовой отчетности и финансового анализа деятельности предприятий. Из-за не совместимости отечественного бухгалтерского учета с зарубежным в нашей стране используются почти исключительно отечественные бухгалтерские программы. Некоторые из них предназначены для автоматизации отдельных участков бухгалтерского учета - начисление заработной платы, учета товаров, материалов на складах и т.д.

Программы-оболочки. Весьма популярный класс системных программ составляют программы-оболочки. Они обеспечивают более удобный и наглядный способ общения с компьютером, чем с помощью командной строки DOS.Многие пользователи настолько привыкли к удобствам, предоставляемым своей любимой программой-оболочкой, что чувствуют себя без нее �не в своей тарелке�. Наиболее популярными программами-оболочками являются Norton Commander, Xtree Pro Gold, PC Shell из комплекта PC Tools. В состав операционной системы MS DOS, начиная с версии 4.0, также входит собственная программа-оболочка Shell (впрочем, не очень популярная).

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

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

Операционные оболочки упрощают создание графических программ, предоставляя для этого большое количество удобных средств, и расширяют возможности компьютера. Но платой за это являются повышенные требования к ресурсам. Так, для эффективной работы c Microsoft Windows необходим компьютер АТ/386, имеющий 4 Мбайта оперативной памяти. Наиболее популярной программой-надстройкой является Microsoft Windows, иногда используется Desq View и значительно реже другие оболочки (GEM, Geo Works и др.).

К системным программам можно также отнести большое количество так называемых утилит, т.е. программ вспомогательного назначения. Ниже мы кратко опишем некоторые разновидности этих программ. Часто утилиты объединяются в комплексы, наиболее популярны комплексы Norton Utilities, PC Tools Deluxe и Mace Utilities.

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

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

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

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

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

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

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

Поскольку без ПО функционирование ПК невозможно в принципе, оно является неотъемлемой составной частью любого ПК и поставляется вместе с его аппаратной частью (hardware ).

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

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

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

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

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

Назначение ПО:

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

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

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

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

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

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

Расширение существующего ПО предполагает наличие следующих возможностей:

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

ПО ориентировано на использование вычислительных систем в различных сферах деятельности и должно обеспечивать своевременное и адекватное поставленным задачам решение. Это вызывает необходимость соблюдения ряда требований при разработке компонентов ПО , основными из которых являются:

  • модульность;
  • наращиваемость и развитие;
  • надежность;
  • предсказуемость;
  • удобство и эргономичность;
  • гибкость;
  • эффективность;
  • совместимость.

Основные принципы разработки современного программного обеспечения:

  • параметрическая универсальность;
  • функциональная избыточность;
  • функциональная избирательность.

Программы на компьютер можно установить двумя способами:

  • Инсталляцией с дистрибутива
  • Простым копированием

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

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

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

Внутреннее ПО выполняет следующие основные функции:

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

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

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

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

При успешном завершении самопроверки ПЭВМ готова к работе. Управление через программное прерывание передается программе начальной загрузки. Эта программа предназначена для считывания в оперативную память остальных компонентов операционной системы. При успешном выполнении этой операции управление передается только что считанной программе.

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

Драйверы имеют следующие особенности:

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

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

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

ОС представляет собой набор программ управления ПЭВМ.

Состав ПО определяется кругом задач, которые пользователь предполагает решать с помощью компьютера.

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

Классификация программного обеспечения по функциональному назначению

Схема общей классификации ПО

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

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

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

Программное обеспечение

Программное обеспечение

1) Прикладные программы

2) Системные программы :

  • управление ресурсами ЭВМ.
  • операционные системы.
  • системы программирования.
  • инструментальные системы.
  • интегрированные пакеты.
  • системы машинной графики.

Жизненный цикл ПО и его стандартизация, процессы ЖЦ ПО, группы процессов ЖЦ ПО

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

Жизненный цикл программного обеспечения (ЖЦ ПО) – период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного снятия с эксплуатации.

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

Согласно стандарту ISO/IEC 12207 все процессы ЖЦ ПО разделены на три группы:

1. основные процессы :

1.1. приобретение;

1.2. поставка;

1.3. разработка;

1.4. эксплуатация;

1.5. сопровождение;

2. вспомогательные процессы :

2.1. документирование;

2.2. управление конфигурацией;

2.3. обеспечение качества;

2.4. верификация;

2.5. аттестация;

2.6. совместная оценка;

2.7. аудит (определение соответствия требованиям, планам и условиям договора);

2.8. разрешение проблем;

3. организационные процессы :

3.1. управление;

3.2. инфраструктура;

3.3. усовершенствование

3.4. обучение.

3. Процесс разработки ПО: основные действия и их содержание

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

Процесс разработки включает следующие действия:

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

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

3) Проектирование архитектуры системына высоком уровне заключается в определении компонентов ее оборудования, ПО и операций, выполняемых эксплуатирующим систему персоналом.

4) Анализ требований к ПО

Проектирование архитектуры ПО

6) Детальное проектирование ПО

Кодирование и тестирование ПО

8) Интеграция ПО предусматривает сборку разработанных компонентов ПО в соответствии с планом интеграции и тестирование агрегированных компонентов.

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

10) Интеграция системы заключается в сборке всех ее компонентов, включая ПО и оборудование.

11) После интеграции система, в свою очередь, подвергается квалификационному тестированию на соответствие совокупности требований к ней.

12) Установка ПО осуществляется разработчиком в соответствии с планом в той среде и на том оборудовании, которые предусмотрены договором.

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


Сертификация процессов разработки ПО, модель CMM

Гарантия качества процессов разработки программных продуктов является весьма значимой в современных условиях. Такую гарантию дают сертификаты качества процесса , подтверждающие его соответствие принятым международным стандартам. Наиболее авторитетными являются модели стандартов ISO 9001:2000, ISO/IEC 15504 и модель зрелости процесса разработки ПО (Capability Maturity Model – CMM).

Основным понятием модели CMM является зрелость процессов (Software process maturity). Зрелость процессов – это степень их управляемости, контролируемости и эффективности. Повышение технологической зрелости означает потенциальную возможность возрастания устойчивости процессов и указывает на степень эффективности и согласованности использования процессов создания и сопровождения ПО в рамках всей организации.

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

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

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

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

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

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


Каскадная модель жизненного цикла ПО: описание, преимущества и недостатки,

Критерии применения

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

Системный анализ – Анализ требований – Проектирование – Реализация – Тестирование – Внедрение – Сопровождение

Системный анализ: задается роль каждого элемента и их взаимодействие друг с другом.

Анализ требований: определение функциональных и нефункциональных требований к ПО.

Проектирование: трансляция требований к ПО во множество проектных представлений. Также на этом этапе осуществляется оценка качества будущего программного обеспечения.

Реализация: преобразование проектных спецификаций в текст на ЯП (язык прогр.) (кодирование).

Тестирование: проверка корректности, исправление ошибок в функциях и логике.

Внедрение: установка разработанного ПО у заказчика, обучение персонала.

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

Преимущества:

Модель хорошо известна потребителям;

Хорошо срабатывает для тех проектов, которые достаточно понятны

Весьма доступна для понимания, проста и удобна в применении;

Ее структурой может руководствоваться даже неопытный персонал;

Отличается стабильностью требований;

Хорошо срабатывает тогда, когда требования к качеству доминируют над тре­бованиями к затратам и графику выполнения проекта;

Способствует осуществлению строгого контроля менеджмента проекта;

Стадии модели довольно хорошо определены и понятны;

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

Недостатки:

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

Выражение "35 процентов выполнено" - не несет никакого смысла и не является показа­телем для менеджера проекта;

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

У клиента едва ли есть возможность ознакомиться с системой заранее;

Все требования должны быть известны в начале жизненного цикла;

Возникает необходимость в жестком управлении и контроле, поскольку в модели не предусмотрена возможность модификации требований;

Модель основана на документации, а значит, количество документов может быть избыточным;

Весь программный продукт разрабатывается за один раз. Нет возможности раз­бить систему на части;

Отсутствует возможность учесть переделку и итерации за рамками проекта.

Критерии применения: каскадная модель может использоваться при создании ПО, для которого в самом начале разработки можно достаточно точно и полно сформулировать все требования.

Критерии применения

Макетирование (прототипирование) – это процесс создания модели разрабатываемого программного продукта. Модель может принимать один из трех видов:

1) бумажный макет или «электронный» макет , который представляет GUI;

2) работающий макет (выполняет только часть требуемых функций);

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

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

Преимущества:

Пользователь может "увидеть" системные требования в процессе их сбора командой разработчиков;

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

В процесс можно внести новые требования пользо­вателя;

Да
Нет
образуются постоянные, видимые признаки прогресса;

Качество продукта определяется при активном участии пользователя в процесс разработки;

Благодаря меньшему объему доработок уменьшаются затраты на разработку;

Обеспечивается управление рисками;

Недостатки:

Разработанные "на скорую руку" прототипы страдают от неадекватной или недостающей документации;

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

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

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

Если выполнение проекта завершается досрочно, у ко­нечного пользователя останется лишь частичная система;

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

Критерии применения:

Требования не известны заранее, не постоянны или могут быть неудачно сформулированы;

Существует потребность в разработке пользовательских интерфейсов;

Осуществляются временные демонстрации;

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

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

Алгоритмы или системные интерфейсы усложнены;

Разрабатывается ПО, когда проявляется средняя и высокая степень риска;


Типы связей IDEF3

Соединения разбивают или соединяют внутренние потоки:

Типы соединений

Графическое обозначение Название Вид Правила инициализации
& Соединение «И» Разворачивающее Каждое конечное действие обязательно инициируется
Сворачивающее Каждое исходное действие обязательно должно завершиться
X Соединение «исключающее ИЛИ» Разворачивающее Одно и только одно конечное действие инициируется
Сворачивающее Одно и только одно исходное действие должно завершиться
O Соединение «ИЛИ» Разворачивающее Одно или несколько конечных действий инициируются
Сворачивающее Одно или несколько исходных действий должны завершиться

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

Виды указателей IDEF3

22 Основные этапы проектирования программных систем и их содержание

Технологический цикл разработки программного обеспечения информационной системы включает три процесса: анализ, синтез и сопровождение . В ходе анализа ищется ответ на вопрос: «Что должна делать будущая система?». В процесс синтеза формируется ответ на вопрос: «Каким образом система будет реализовывать предъявляемые к ней требования?» Выделяют три этапа синтеза: проектирование, кодирование и тестирование .

Модель хранилища данных

Модель «клиент-сервер»

Трехуровневая модель

Преимущества трехуровневой модели:

· упрощается такая модификация уровня, которая не влияет на другие уровни;

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

Модель абстрактной машины

Подсистема 2
Подсистема N
Обработчик событий и сообщений

Модульная декомпозиция

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

· модель потока данных;

· модель объектов.

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

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

Принцип «разделяй и властвуй» . С увеличением количества модулей (и уменьшением их размера) затраты на их реализацию также растут.

Затраты на модульность

Таким образом, существует оптимальное количество модулей Opt, которое приводит к минимальной стоимости разработки.

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

Информационная закрытость обозначает следующее:

· все модули независимы, обмениваются только информацией, необходимой для работы;

· доступ к операциям и структурам модуля ограничен.

Достоинства информационной закрытости:

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

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

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


Типы вызовов модулей

А
В
В
А
С
А
В
а)
б)
в)

Условные и циклические вызовы модулей: а) – циклический; б) – условный; в) – однократный

Переход

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

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

Сложные переходы

Выбор и соединение

Псевдосостояние выбора (choice pseudo state) предназначено для моделирования нескольких альтернативных ветвей при реализации поведения конечного автомата

Псевдосостояние соединения (junction pseudo state) является вершиной со свободной семантикой, которая используется для соединения вместе нескольких переходов

Разделение и слияние

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

Вершина слияния (join vertex) – псевдосостояние, предназначенное для соединения нескольких переходов, которые имеют в качестве своих источников вершины из различных ортогональных регионов композитного состояния.

Точки входа и выхода

Точка входа (entry point) – псевдосостояние, предназначенное для моделирования входа в некоторый конечный автомат или композитное состояние

Точка выхода (exit point) – псевдосостояние, предназначенное для моделирования выхода из некоторого конечного автомата или композитного состояния

Псевдосостояние неглубокой истории (shallow pseudo state)

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

Псевдосостояние глубокой истории (deep pseudo state)

Псевдосостояние глубокой истории (deep pseudo state) предназначено для представления последней активной конфигурации композитного состояния после выхода из него.

Интерфейсы

Предоставляемый интерфейс (provided interface) – интерфейс, который компонент предлагает для своего окружения.

Требуемый интерфейс (required interface) – интерфейс, который необходим компоненту от своего окружения для выполнения заявленной функциональности, контракта или поведения.

Порт

Порт определяет различимую точку взаимодействия между компонентом и окружающей его средой или между компонентом и его внутренними частями

Наличие имени у порта не является обязательным

При отсутствии имени порта его тип ассоциируется с типом интерфейса, с которым связан порт.

Собирающий соединитель
(assembly connector)

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

Делегирующий соединитель
(delegation connector)

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

Делегирующий соединитель выполняет одну из следующих задач:

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

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


Узел(node)

Является элементом модели, который представляет некоторый вычислительный ресурс для развертывания на нем различных артефактов

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

Хотя в языке UML 2.х конкретные стереотипы для узлов не определены, разработчики предложили для этой цели следующие текстовые стереотипы:

«application server» (сервер приложений), «client workstation» (клиентская рабочая станция), «mobile device» (мобильное устройство), «embedded device» (встроенное устройство), «processor» (процессор), «sensor» (датчик), «modem» (модем), «net» (сеть), «printer» (принтер) и другие.

Понятие программного обеспечения, классификация программного обеспечения

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

К ПО относится также вся область деятельности по проектированию и разработке ПО.

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

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

2) Системные программы :

  • управление ресурсами ЭВМ.
  • создание копий используемой информации.
  • проверку работоспособности устройств компьютера.
  • выдачу справочной информации о компьютере и др..

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

Более или менее определенно сложились следующие группы программного обеспечения :

  • операционные системы.
  • системы программирования.
  • инструментальные системы.
  • интегрированные пакеты.
  • динамические электронные таблицы.
  • системы машинной графики.
  • системы управления базами данных (СУБД).
  • прикладное программное обеспечение.