Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы проектирования программ. Этапы создания программного обеспечения ( Понятие и проектирование программного обеспечения )

Содержание:

Введение

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

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

Цель работы: изучить основы проектирования программ, этапы создания программного обеспечения.

Задачи исследования:

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

Объект исследования: программное обеспечение.

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

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

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

Глава 1. Понятие и проектирование программного обеспечения

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

Количество программ, которые устанавливаются на современном компьютере, насчитывает сотни и даже тысячи. Именно они дают возможность пользователю комфортно работать. Вся совокупность программ и составляет так называемое программное обеспечение компьютера[1].

Состав программного обеспечения компьютера − важнейшая его функциональная характеристика. Программное обеспечение (Software) – это совокупность: программ постоянного использования, необходимых для решения задач пользователя, программ, позволяющих наиболее эффективно использовать вычислительную технику, обеспечивая пользователям наибольшие удобства в работе и минимум затрат труда на программирование задач и обработку информации, техническая программная документация для них. Техническая документация − набор документов, используемых при проектировании и создании программного и аппаратного обеспечения. Программа для компьютера − описание алгоритма решения задачи, которое задаётся на языке программирования и при помощи транслятора автоматически переводится на машинный язык конкретного компьютера[2].

Справедливым в настоящее время является суждение о том, что рассматриваемое программное обеспечение (ПО) – это, фактически, определенное продолжение аппаратных средств, неотъемлемая часть компьютерной системы. Даже если программа никак не взаимодействует с оборудованием, если не запрашивает ввод данных с устройства ввода, не выполняет вывод данных на устройства вывода, по сути, ее работа нужна для управления аппаратными устройствами компьютера. В зависимости от того, какие конкретно работы предполагается выполнять на компьютере, подбирается состав программного обеспечения, или программная конфигурация. Большинство программ работают, опираясь на другие программы более низкого уровня, т.е. между ними существует взаимосвязь, или межпрограммный интерфейс. Такой интерфейс основывается на технических условиях и протоколах взаимодействия и обеспечивается распределением программного обеспечения на несколько категорий, которые взаимодействуют между собой[3].

Уровни ПО существуют различные, основных вида три. Базовое ПО – базовый уровень. Системное ПО – системный уровень. Также выделяют прикладное ПО. Каждый вышележащий уровень повышает функциональность всей системы. Всё программное обеспечение можно условно поделить на четыре категории. Базовое программное обеспечение – это минимальный набор программных средств, которые обеспечивают работу компьютера; отвечают за взаимодействие с базовыми программными средствами (входят в состав базового оборудования и хранятся в специальных микросхемах)[4]. Эти микросхемы носят название постоянное запоминающее устройство (ПЗУ – Read Only Memory)[5]. ПЗУ является энергозависимой памятью. Программы и данные записываются («прошиваются») в микросхемы ПЗУ на этапе производства, такие микросхемы не могут быть изменены в процессе сроков работы компьютера. Если есть необходимость в изменении базовых программных средств во время эксплуатации компьютера, то вместо микросхем ПЗУ используют микросхемы ППЗУ – перепрограммируемые постоянные запоминающие устройства (Erasable and Programmable Read Only Memory). Тогда изменение содержания ППЗУ можно сделать в самой вычислительной системе (флэш-технология) или на специальном устройстве, которое называется программатором.

К базовому программному обеспечению также относится BIOS (Basiс Input/Output System) − базовая система ввода-вывода), которая определяет ход процесса загрузки компьютера. Лишь только после этого происходит загрузка операционной системы персонального компьютера, и дальнейшая его работа происходит уже под управлением операционной системы. Во время работы компьютера BIOS обеспечивает базовые функции ввода-вывода информации и функции взаимодействия различных устройств между собой[6].

Это набор микропрограмм, которые сначала тестируют (POST) оборудование, размещённое на материнской плате, потом осуществляют дальнейший запуск операционной системы и обеспечивают взаимодействие всех компонентов компьютера[7].

Надо отметить, что в современных компьютерах некоторые платы (к примеру, видеокарта, звуковая карта и т.п.) имеют свои микросхемы BIOS на материнской плате расширения (кроме основной микросхемы BIOS). При настройке основного BIOS можно разрешить или запретить использование BIOS плат расширения[8].

В функции основной BIOS входят: тестирование компьютера с помощью специальных тестовых программ при включении питания; поиск и подключение к системе других BIOS, которые расположены на платах расширения; распределение ресурсов между компонентами компьютера. Физически BIOS – это набор микросхем постоянной памяти (ROM, Read Memory − только для чтения), расположенных на материнской плате[9].

Программы, содержащиеся в системной BIOS, обеспечивают взаимодействие микросхем чипсета, оперативной памяти, кэш-памяти, процессора с внешними (периферийными) устройствами, а также друг с другом. Когда происходит инициализация и тестирование оборудования, BIOS сравнивает полученные данные системной конфигурации и ту информацию, которая хранится в чипе CMOS. Если найдено несоответствие/сбой, то система выдает сообщение на мониторе или звуковой сигнал об ошибке. Чип CMOS расположен на материнской плате. Это энергозависимая память, которой нужно питаться от специальной батарейки. Системное программное обеспечение (System Software) – это программы и программные комплексы для работы компьютера и телекоммуникационного оборудования[10]. Системное программное обеспечение служит: для создания операционной среды для работы других программ; для обеспечение надежной и эффективной работы компьютера и телекоммуникационной сети; для проведения диагностики аппаратуры компьютера и сетей; для архивирования данных, копирования, восстановления файлов программ и баз данных и т.п. Системное программное обеспечение (СПО) по сути выполняет функции «организатора» всех компонентов ПК, а также подключенных к нему периферийных устройств. Такое СПО в обязательном порядке должно быть надежным, технологичным, удобным, эффективным в применении. Подразделяется СПО на базовое и сервисное[11].

Базовое программное обеспечение, как правило, приобретается вместе с компьютером, а сервисное может быть приобретено дополнительно. Прикладное программное обеспечение (appliation program pakage) − комплекс связанных между собой программ, предназначенных для решения конкретных задач определённой предметной области, написаны для пользователей или самими пользователями, например, экспертная система или программа создания списков рассылки. Это самый многочисленный класс программных продуктов[12].

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

Система программирования включает в себя следующие программные компоненты: редактор текста, транслятор с соответствующего языка, компоновщик (редактор связей), отладчик, библиотеки подпрограмм[14].

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

ИТП делится на подкатегории, так, в частности, имеют место различные средства для создания приложений. Они включают в себя интегрированные среды для разработчиков программ, необходимые для выполнения работ по созданию программ, и локальные средства, которые нужны для выполнения отдельных работ по созданию этих программ; СASE-технологии (Сomputed Aided Software Engineering) – это система-конструктор программ с помощью компьютера, в которую входят методы анализа, проектирования и создания программных систем. Предназначены СASE-технологии для автоматизации процессов разработки и реализации информационных систем. Это целый программный комплекс, который автоматизирует весь технологический процесс (анализ, проектирование, разработка и сопровождение сложных программных систем)[15].

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

Например, операционные системы могут моделировать те виды человеческой деятельности, которые всегда считались интеллектуальными. Появились программы, классифицировать которые по привычным критериям сложно, а порой и невозможно, программа − электронный собеседник, например, или компьютерное зрение, которое связано ещё и с робототехникой, или область машинного обучения, к которой относится достаточно большой класс задач на распознавание образов (распознавание символов, рукописного текста, речи, анализ текстов)[17].

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

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

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

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

Редакторы документов являются наиболее широко используемым видом прикладных программ. С их помощью можно быстро и удобно подготавливать документы (использование различных шрифтов символов, абзацев произвольной формы, автоматический перенос слов, возможность делать сноски, вставлять графические объекты, автоматическая нумерация страниц и пр.). Наиболее известные – Wordpad, Microsoft Word. Табличные процессоры позволяют работать с информацией различного типа, заключенной в ячейках таблиц (вычислять значения элементов таблицы по указанным формулам, строить по данным таблиц различные графики и пр.). Наиболее известные - Quatro Pro, Microsoft Excel.

Графические редакторы дают возможность создавать и редактировать изображения с использованием рисования линий, кривых, объектов, раскраской областей экрана, созданием надписей различными шрифтами, обрабатывать изображения со сканеров. Наиболее известные – Corel Draw, Adobe Photoshop[19].

В правовых базах данных содержатся тексты нормативных документов и предоставляются возможности получения справки, контекстного поиска, распечатки и пр. Наиболее известные – Консультант+, Гарант. Системы автоматизированного проектирования (САПР) осуществляют конструирование и черчение различных механизмов и предметов с помощью компьютера. Наиболее известные - Компас, AutoCad.

Системы управления базами данных (СУБД) используются для управления большими информационными массивами - базами данных (поиск, ввод, сортировка, выборка записей, составление отчетов и пр.). Наиболее известные – Clipper, Microsoft Access, Paradox[20].

Интегрированные системы сочетают в себе возможности СУБД, табличного и текстового процессоров, системы деловой графики и др.). Наиболее известные – Open Office, Microsoft Office. Бухгалтерские программы используются для ведения бухгалтерского учета, подготовки финансовой отчетности и финансового анализа деятельности предприятий. Наиболее известные - Инфо-бухгалтер, 1C: Предприятие.

Программы-архиваторы позволяют сжимать информацию на дисках и объединять несколько архивных файлов в один. Наиболее известные –WinZip, WinRar[21]. Программы для создания резервных копий информации дают возможность периодически копировать важную информацию с жесткого диска на дополнительные носители. Наиболее известные – Acronis True Image, APBackUp. Антивирусные программы служат для предотвращения заражения вирусами и ликвидации последствий заражения. Наиболее известные – DrWeb, Kaspersky Antivirus, Norton Antivirus. Коммуникационные программы служат для организации обмена информацией между компьютерами путем соединения кабелем их последовательных портов и посредством телефонной сети (при наличии модема). Наиболее известные – Cute FTP, Venta Fax. Программы для диагностики компьютера служат для проверки конфигурации компьютера (объем памяти и ее использование, типы дисков и т.д.), работоспособности устройств компьютера, оценки его производительность. Наиболее известные – Norton System Information, Sisoft Sandra. Программы для оптимизации дисков служат для обеспечения быстрого доступа к информации на диске за счет оптимизации размещения данных. Наиболее известные - Microsoft Scandisk, Norton Disk Doctor. Программы для печати экрана служат для вывода на печать содержимого экрана (особенно при работе с графическими программами). Наиболее известные – HyperSnap-DX, SnagIt. Операционные системы

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

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

Без ОС невозможно запустить ни одну прикладную программу.

Операционные системы бывают: однозадачными и многозадачными; однопользовательскими и многопользовательскими; сетевыми и несетевыми. Помимо этого ОС может иметь графический или командный многооконный интерфейс (либо оба сразу). На сегодняшний наиболее популярны – Windows, UNIX, Linux.

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

Итак, можно сказать, что на сегодняшний день более или менее определённо можно выделить следующие группы ПО: операционные системы и их оболочки (текстовые или графические); системы программирования (отладчики, трансляторы, библиотеки подпрограмм и т.д.); инструментальные технологические системы; интегрированные программные пакеты; системы машинной графики (растровая, векторная, 3D-графика, САПР); динамические электронные таблицы; системы управления базами данных (СУБД). В заключение можно сказать, что почти всякая классификация не является единственно возможной.

1.2 Проектирование программного обеспечения

Проектированием программного обеспечения является процесс создания проекта программного обеспечения (ПО), кроме того, под проектированием ПО понимают дисциплину, изучающую методы проектирования. Проектирование программного обеспечения представляет собой частный случай проектирования процессов и продуктов[22].

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

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

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

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

Для управления ходом разработки больших программных систем выделяются следующие этапы, составляющие цикл разработки (цикл жизни) программного обеспечения[24]:

  • постановка и анализ задачи, определение требований;
  • проектирование,
  • разработка, написание кода;
  • тестирование, отладка и оценка качества;
  • документирование.
  • внедрение и сопровождение.

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

Рисунок 1 - Информационные связи процесса

проектирования

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

Обычно в проектировании выделяют две ступени: предварительное проектирование и детальное проектирование.

Предварительное проектирование обеспечивает:

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

Предварительное проектирование включает три типа деятельности:

  1. Структурирование системы. Система структурируется на несколько подсистем, где под подсистемой понимается независимый программный компонент. Определяются взаимодействия подсистем.
  2. Моделирование управления. Определяется модель связей управления между частями системы.
  3. Декомпозиция подсистем на модули. Каждая подсистема разбивается на модули. Определяются типы модулей и межмодульные соединения[25].

Известны четыре модели системного структурирования:

  • модель хранилища данных;
  • модель клиент-сервер;
  • трёхуровневая модель;
  • модель абстрактной машины.

Известны два типа моделей управления:

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

Известны два типа моделей модульной декомпозиции:

  • модель потока данных;
  • модель объектов.

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

В качестве средств структурного подхода рассмотрим следующие наиболее распространенные методы[26]:

  1. SADT (Structured Analysis and Design Technique, IDEF0) модели и диаграммы демонстрируют функциональную структуру объекта: действия и связи между ними.
  2. DFD (Data Flow Diagrams) – диаграмма потоков данны. Она представляет собой иерархию функциональных процессов, связанных потоками данных.
  3. ERD (Entity-Relationship Diagrams, IDEFI) – диаграмма «сущность- связь», предложенная П. Ченом. ERD (в частности, метод описания данных – IDEF1X) является наиболее распространенным средством моделирования данных.
  4. IDEF3 - диаграмма документирования технологических процессов. IDEF3 позволяет: описать процессы, фокусируя внимание на течении этих процессов; рассмотреть конкретный процесс с учетом последовательности выполняемых операций.

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

  1. OMT (Object Modeling Technique). При использовании технологии OMT проектируемая система представляется в виде 3-х коррелирующих между собой моделях[27]:
  • объектной;
  • динамической;
  • функциональной.
  1. RUP (Rational Unified Process). Рациональный унифицированный процесс разработки (RUP) ПО был разработан компанией Rational Software
  2. JSD (Jackson Structured Development). В JSD рассматриваются в качестве одного большого процесса этапы от анализа требований до разработки ПО.

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

На рисунке 2 представлена структура диаграмм, входящих в состав унифицированного языка моделирования UML версии 2.3.

Рисунок 2 - Диаграммы унифицированного языка моделирования UML версии 2.3

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

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

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

Для задач с активной коммуникацией и совместной работой пользователей, работающих с  динамическими данными, имеющих сложную внешнюю вычислительную составляющую (backend), эффективным решением будет реализация сервиса с предоставлением доступа через web-интерфейс (frontend)  или  мобильное приложение для Android, IOS, Windows Phone[29].

При разработке  программного продукта  начинать следует с проектирования – т.е. с полного планирования того, что непосредственно придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом. Определив требования к программному обеспечению, разработчик получает согласованный четкий план действий, график оплат и сроков, сокращает время разработки и повышает её качество. Проектируя ПО заранее, разработчик получает возможность[30]:

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

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

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

Этапы и результаты проектирования:

  • описание: совместная работа заказчика (говорит о пользе продукта, требованиях к работоспособности и внешнему виду) и разработчика (предлагает технические и алгоритмические решения);
  • архитектура: утверждается язык программирования, база данных, серверы и фреймворки;
  • техническое задание: составляется архитектором на основании описания и ответов заказчика на вопросы, согласовывается с менеджером проекта, затем передается клиенту, производятся правки.
  • макеты (добавляются к техзаданию): интерфейсов, принципиальные схемы устройства, диаграммы структуры базы данных, схемы взаимодействия компонентов;
  • контроль: архитектор устраняет замечания менеджера проектов.
  • утверждение: заказчик проверяет и меняет ТЗ самостоятельно или сообщает список правок проект-менеджеру, замечания устраняются, ТЗ утверждается[31].

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

Техническое задание должно содержать:

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

Требования к документированию процесса и результата разработки:
в составе ТЗ необходимо уделить внимание описанию деталей:

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

При проектировании ПО заранее разработчик имеет возможность: оценить время разработки и стоимость программного продукта; исключить потери материальных затрат и времени на вынужденные доработки, ненужные действия, длительное согласование; избежать неудовлетворенности и разногласий между заказчиком и исполнителем[33].

Проектирование состоит из следующих этапов:

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

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

Разработки технического задания (ТЗ). ТЗ составляет архитектор в соответствии с описанием и ответами на вопросы заказчика. Затем ТЗ согласовывают с менеджером проекта, далее передают клиенту и производят правки.

Этап разработки макетов, которые затем добавляются к ТЗ. На данном этапе разрабатывают макеты принципиальных схем устройства, интерфейсов, диаграмм структуры базы данных, схем взаимодействия компонентов[34].

Контроля. В ходе этого этапа архитектором устраняются замечания менеджера проектов[35].

Утверждения. На данном этапе заказчиком проверяется и меняется самостоятельно ТЗ, либо сообщается список правок проект-менеджеру. После устранения замечаний ТЗ утверждают и прилагают к контракту. В результате проектирования получается техническое задание с однозначной и понятной как для заказчика, так и для исполнителя (в качестве исполнителя могут выступить руководитель проекта, программисты, тестировщики, дизайнеры и другие участники процесса разработки) иллюстрацией ответов на вопросы[36].

В случае предоставления заказчиком на подготовительном этапе результата проектирования согласно указанным требованиям данный этап проектирования можно опустить и сразу перейти к оценке проекта. Приведем минимальные требования, достаточные для ТЗ, в соответствии с которыми оно должно: полно, четко (инструкционно, без лишних слов и возможностей разночтения) и структурировано описывать разрабатываемый программный продукт (как должно выглядеть ПО, как и с чем работать, каким требованиям должно отвечать) и процесс его разработки, чтобы у архитектора не возникло вопросов по реализации ПО; исключить противоречивые сведения; быть юридически точно оформленным (согласно ГОСТу), так как наряду с контрактом и прочими документами ТЗ приобретет юридическую силу[37].

В техническом задании должны содержаться: общие данные по проекту (название продукта, категория пользователей и назначение использования); общие требования к программному обеспечению (к его структуре, функционалу, должны быть приложены схема архитектуры и описание связей подсистем, видов интерфейсов всех составляющих – готовый дизайн либо его концепция); детальный план работ, содержащий перечень этапов и сроки по каждому из них; порядок проведения тестирования и приемки, в котором должны быть описаны состав и виды испытаний продукта, как в целом, так и отдельных частей; перечень действий, осуществляемых при запуске продукта; требования к документации, содержащей описание процесса и результатов разработки[38].

В составе ТЗ важно уделить внимание описаниям: конкретных детaлей: пользователей программного продукта (их роли, права и функции), алгоритмов обработки данных, перечня закрытых и открытых протоколов, требований к безопасности данных в ходе всего жизненного цикла, списка используемых в разработке компонентов (свободных, платных); примеров: аналогов, интегрируемых систем с указанием ссылок на них; типичных сценариев взаимодействия системы с пользователем; входящих данных и форматов данных взаимодействия подсистем (таблиц, баз, страниц и др.); исходящих данных (видов отчетов и экспортируемых файлов); надежности и производительности: уровней нагрузки системы (день, месяц, максимальный), требований к сохранности и производительности, обоснования выбора оборудования запуска ПО, хостинга серверной части[39].

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

Глава 2. Классификация и особенности видов программного обеспечения

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

Системное программное обеспечение (System Software) − это программы и программные комплексы для работы компьютера и телекоммуникационного оборудования. System Software выступает в роли «переводчика-синхрониста» между приложением пользователя и непосредственно с аппаратным обеспечением[40]. По одной из классификаций к системному ПО относится только служебное (сервисное) программное обеспечение, по другой классификации СПО – это двухуровневое программное обеспечение, которое состоит из базового ПО и сервисного. Возможно ли отнести то или иное программного обеспечения к системному, зависит от соглашений, которые были прописаны в конкретном контексте. Будем придерживаться второй точки зрения (более распространённой), когда к системному программному обеспечению (СПО) относят и базовое программное обеспечение (не путать с BIOS), и сервисное. Это операционные системы, оболочки, утилиты, драйверы, системы программирования, системы управления базами данных, связующее программное обеспечение. СПО служит: для создания операционной среды для работы других программ; для обеспечения надежной и эффективной работы компьютера и телекоммуникационной сети; для проведения диагностики аппаратуры компьютера и сетей; для архивирования данных, копирования, восстановления файлов программ и баз данных и т.п. Системное программное обеспечение «организует» работу всех компонентов компьютера, а также подключенных к нему периферийных устройств[41].

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

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

Этот набор сервисных, дополнительно устанавливаемых программ, можно классифицировать следующим образом (по функциональному признаку): драйверы специфических и специальных устройств (не поставляются в составе ОС); мониторы установки, они предназначены для контроля над установкой ПО; средства контроля (мониторинга), позволящие следить за процессами, которые проходят в системе; средства диагностики работоспособности компьютера; они используются и для оптимизации работы компьютерной системы, и для устранения неполадок, например, утилита «Дефрагментация диска» позволяет данные, которые принадлежат одному файлу и находятся в разных сегментах диска, объединить в одной непрерывной области данных; средства обеспечения компьютерной безопасности, это средства активной и пассивной защиты данных от какого-либо повреждения, несанкционированного доступа, просмотра и/или изменения данных: o средства активной защиты − антивирусные программы, они необходимы, чтобы обеспечить защиту компьютера, обнаружить и восстановить зараженные файлы; o средства пассивной защиты - программы обслуживания дисков, они обеспечивают контроль сохранности файловой системы на логическом и физической уровнях, проверяют качество поверхности магнитного диска, создают страховые копии дисков, резервируют данные на внешних носителях, выполняют сжатие дисков и т. д. программы архивирования данных, предназначены для создания архивов, что упрощает хранение файлов за счёт уменьшения объема памяти.

Наиболее известные архиваторы WinZip, WinRAR, 7Zip; диспетчеры файлов, которые нужны для выполнения большинства операций, связанных с обслуживанием файловой системы: осуществляют навигацию в файловой структуре, создают каталоги (папки), производят удаление файлов и каталогов, копируют, перемещают и переименовывают файлы, выполняют поиск файлов. Наиболее популярные для ОС Windows − Total Commander (бывший Windows Commander) и FAR Manager, для Linux − Midnight Commander; программы обслуживания сети. Это средства коммуникаций, которые позволяют установить связь с удалёнными компьютерами, участвовать в работе телеконференций, обслуживают передачу сообщений электронной почты и т.д. Базовое программное обеспечение, как правило, приобретается вместе с компьютером, а сервисное ПО может быть приобретено дополнительно.

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

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

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

Прикладная программа (ПП) – программа, которая предназначена для выполнения определённых задач и рассчитана на непосредственное взаимодействие с пользователем[42]. В основном прикладные программы не могут взаимодействовать с оборудованием ПК и другими программами с помощью операционной системы. Также их называют вспомогательными программами. К прикладному программному обеспечению (ППО) относят компьютерные программы, написанные для облегчения работы пользователей с помощью ПК, который выполняет конкретные задания. Примером ППО являются программы обработки заказов или создания списков рассылки. Создают ППО так называемые прикладные программисты. Среди многочисленных программных средств для решения различных типов вычислительных задач можно выделить 4 основные группы: отдельные ПП; библиотеки ПП; пакеты ПП; интегрированные программные системы.

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

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

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

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

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

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

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

Имитационное ПО применяется для симуляции физических или абстрактных систем в научно-исследовательских, учебных или развлекательных целях[44].

Инструментальные ПО в области медиа предназначены для использования пользователями, которые сознают печатные или электронные медиаресурсы для собственного применения или для других потребителей на любой (коммерческой или образовательной) основе. К такому программному обеспечению относятся программы полиграфической обработки, компьютерной вёрстки, обработки мультимедиа, HTML-редакторы, редакторы компьютерной анимации, редакторы для работы со звуковыми данными, для работы с видео и т.п. ПП для проектирования и конструирования широко применяются для разработки аппаратного и программного обеспечения. К программам проектирования относятся системы автоматизированного проектирования (САПР), программы автоматизированной инженерии (Computer Aided Engineering – CAE), программы-редакторы и компиляторы языков программирования, программы интегрированной среды разработки (Integrated Development Environments – IDE). Прикладное программное обеспечение широко используется пользователями разного уровня и направленности применения. В данное время индустрия разработки прикладного ПО не стоит на месте. Таким образом, типизация ППО может рассматриваться с других позиций, чем рассмотрено выше[45].

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

Самые известные текстовые редакторы – Блокнот (входит в стандартный состав операционной системы Windows), TextPad[46].

Текстовые процессоры кроме создания и редактирования текста позволяют применять к нему оформление (изменять шрифт, размер, цвет текста, выравнивание и др.), внедрять таблицы, графики и формулы. Самые используемые текстовые процессоры – Microsoft Word, WordPad (менее мощный, входит в стандартный состав операционной системы MS Windows). Электронные таблицы (табличные процессоры) предназначены для работы с различными типами данных в табличной форме, например, финансовые, бухгалтерские документы, инженерные расчеты. Среди электронных таблиц программа MS Excel, Lotus. Основным преимуществом табличных процессоров перед текстовыми процессорами (в которых тоже можно работать с таблицами, производить небольшие вычисления и сортировку) в том, что содержание ячеек является функционально зависимым, т.е. при изменении содержания одних ячеек изменяется содержание связанных с ними других ячеек[47].

Электронные таблицы позволяют создавать небольшие базы данных и визуализировать данные в виде различных таблиц, диаграмм и графиков. Основные виды графических редакторов: растровые, в которых удобно проводить обработку фотографий и объектов с мягкими цветовыми переходами. К ним относятся программа MS Paint (входит в стандартный состав операционной системы MS Windows), профессиональный редактор Adobe Photoshop; векторные, которые используются для работы с векторными изображениями и являются удобным инструментом для обработки чертежей и рисованных картинок. Среди них CorelDRAW и Adobe Illustrator; редакторы 3D-графики используют для создания объемных графических композиций, позволяют проследить взаимодействия 3D-объектов между объектом и источником света. Наиболее известны программы 3D Max, Maya, Cinema 4D. Программы для просмотра различных форматов файлов: изображений – программы ACDSee, FastStone Image Viewer и др.; HTML-страниц – веб-браузеры Internet Explorer, Mozilla Firefox, Google Chrome, Opera и др.; медиа контента (плееры, проигрыватели): аудиоплееры AIMP, Spider player, Media Monkey и др.; мультимедиа-центры Windows Media Player (WMP, входит в стандартный состав операционной системы MS Windows), QuickTime Player (входит в стандартный состав Mac OS), Winamp, VLC Media Player, Media Player Classic и др.; flash-контента, которые используются для воспроизведения видео и аудиофайлов на веб-сайтах, для игр онлайн – Flash-плеер Adobe Flash Player и др.; pdf-файлов для просмотра и печати pdf-файлов – программа Adobe Reader.

Системы управления базами данных (СУБД), к которым относятся настольные базы данных для создания и управления работой баз данных, среди которых MS Access, Paradox. К функциям СУБД относится описание данных, обеспечение доступа к данным, осуществление поиск и отбора данных по определенным критериям. Программы-переводчики: электронные словари для перевода отдельных слов – ABBYY Lingvo, МультиЛекс; программы для перевода больших текстов – ПРОМТ. ППО специального назначения – совокупность программ для решения более узких задач различных предметных областей. Экспертные системы стали дальнейшим развитием СУБД и предназначаются для анализа данных, которые хранятся в базах знаний (заменяют специалиста-эксперта). СУБД производят операции манипулирования данными, а экспертные системы проводят логический анализ данных, оснащены функциями самообучения. Наиболее известны: MYCIN (медицина), ACES (военное дело), ACE (электроника), CODES (информатика), DENDRAL (химия), PROSPECTOR (геология), РЕМОРАМА (торговля). Экспертные системы в основном используются работниками, которые занимаются диагностикой, конструированием, планированием и управлением. Настольные издательские системы, которые используются для электронной верстки печатной продукции (газеты, журналы, книги, буклеты). Используются работниками типографий, редакций журналов и газет, издательств, а также работниками рекламных агентств. Среди программ QuarkXPress, Adobe InDesign, Adobe FrameMaker, Corel Ventura, MS Publisher (чаще используется как программа общего назначения). Электронные энциклопедии, учебники, словари, справочники используются школьниками, студентами, научными работниками, специалистами различных сфер для получения знаний в определенной сфере. Известны Энциклопедия современной техники. Строительство», «Справочник мастера-строителя», «Музыкальный словарь», интерактивный мультимедиа учебник «Органическая химия» и мн. др.

Серверные СУБД используются администраторами баз данных для управления созданием и работой с базами данных информационных систем. К ним относятся mySQL, MS SQL Server, Oracle Database. Видеоредакторы (системы видеомонтажа): профессиональные (Adobe Premiere Pro, Grass Valley Ediu, Sony Vegas Pro); «домашние» (Windows Movie Maker (входит в операционную систему Windows), Corel VideoStudio Pro, Pinnacle Studio). Аудиоредакторы (системы аудиомонтажа): профессиональные – предназначены для записи музыкальных файлов, создания фонограмм для радио, озвучивания фильмов, компьютерных игр, реставрации старых фонограмм (Adobe Audition, Sony Sound Forge. Audacity и др.); «домашние» – используются для записи любительских музыкальных файлов, создания собственных рингтонов для мобильных телефонов и др. (CyberPower Audio Editing Lab, Akram Audio Editor и др.)[48].

Нотные редакторы используются работниками музыкальных издательств, музыкальных учебных заведений, музыкальных театров, филармоний, композитовами, дирижерами для создания и редактирования нотного текста с оформлением, а также для проигрывания набранного текста (Finale, Encore, Cakewalk Overture, Sibelius,MuseScore).

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

Системы автоматизированного проектирования (САПР, CAD/CAM/CAE) используются для автоматизации процесса разработки чертежей, схем, 3D-моделей, конструкторской документации. Используются инженерами-конструкторами, архитекторами. Известны программы Компас, AutoCAD, ZwCAD, BtoCAD и др. Геоинформационные системы (ГИС): универсальные и специализированные, с помощью которых можно создавать, редактировать и проводить анализ электронных географических карт, осуществлять поиск информации об объектах карт: городах, дорогах, зданиях, улицах, реках, рельефе, среднегодовой температуре. Используются ГИС-специалистами, ГИС-операторами, инженерами-картографами, геологами, геодезистами, гидрологами, метеорологами (MapInfo, ArcGIS, Arcview, GeoServer, GRASS, Полигон, Панорама, ГИС Метео); информационно-справочные используются непрофессионалами для просмотра карт города и окрестностей, для поиска организаций, маршрутов транспорта, поиска проезда по городу. К ним относят 2ГИС. Бухгалтерские системы используются для ведения бухгалтерского и налогового учета[50]. Например, 1С:Бухгалтерия. Финансово-аналитические системы предназначены для ведения аналитического учета финансово-хозяйственной деятельности организации (систематизация информации, расчет аналитических показателей и формирование отчетов). Например, Альт-Финансы, Audit Expert, ИНЭК-Аналитик, ФинЭкАнализ и др.

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

Заключение

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

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

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

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

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

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

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

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

Список литературы

  1. Автоматизация проектирования вычислительных систем. Языки, моделирование и базы данных / ред. М. Брейер. - М.: Мир, 2015. - 463 c.
  2. Агальцов, В.П. Информатика для экономистов: Учебник / В.П. Агальцов, В.М. Титов. – М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2015. – 448 c.
  3. Акперов, И.Г. Информационные технологии в менеджменте: Учебник / И.Г. Акперов, А.В. Сметанин, И.А. Коноплева. – М.: НИЦ ИНФРА-М, 2015. – 400 c.
  4. Акулов, О. А., Медведев, Н. В. Информатика. Базовый курс: учебник / О. А. Акулов, Н. В. Медведев. – Москва: Омега-Л, 2015. – 557 с.
  5. Алехина Г. В. Информатика. Базовый курс: учебное пособие / Под ред. Г. В. Алехиной. - М.: Маркет ДС Корпорейшн, 2016. – 731 с.
  6. Варфоломеева, А.О. Информационные системы предприятия: Учебное пособие / А.О. Варфоломеева, А.В. Коряковский, В.П. Романов. – М.: НИЦ ИНФРА-М, 2015. – 283 c.
  7. Васильков, А.В. Информационные системы и их безопасность: Учебное пособие / А.В. Васильков, А.А. Васильков, И.А. Васильков. – М.: Форум, 2015. – 528 c.
  8. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – 539 с.
  9. Вендров, А. М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М. Вендров. - М.: Финансы и статистика, 2017. - 192 c.
  10. Волкова В.Н. Теория информационных процессов и систем. – М.: Юрайт, 2016. – 504 с.
  11. Воройский, Ф. С. Основы проектирования автоматизированных библиотечно-информационных систем / Ф.С. Воройский. - М.: ФИЗМАТЛИТ, 2016. - 384 c.
  12. Гаврилов, М.В. Информатика и информационные технологии: Учебник для бакалавров / М.В. Гаврилов, В.А. Климов; Рецензент Л.В. Кальянов, Н.М. Рыскин. – М.: Юрайт, 2015. – 378 c.
  13. Гвоздева, В.А. Информатика, автоматизированные информационные технологии и системы: Учебник / В.А. Гвоздева. – М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2017. – 544 c.
  14. Гейн, А.Г. Основы информатики и вычислительной техники / А.Г. Гейн, В.Г. Житомирский, Е.В. Линецкий, и др. – М.: Просвещение, 2015. – 254 c.
  15. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – 608 c.
  16. Горячев, А.В. Практикум по информационным технологиям / А.В. Горячев, Ю.А. Шафрин. – М.: Бином, 2016. – 272 c.
  17. Гохберг, Г.С. Информационные технологии: Учебник для студ. учрежд. сред. проф. образования / Г.С. Гохберг, А.В. Зафиевский, А.А. Короткин. – М.: ИЦ Академия, 2016. – 208 c.
  18. Гришин, В.Н. Информационные технологии в профессиональной деятельности: Учебник / В.Н. Гришин, Е.Е. Панфилова. – М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2015. – 416 c.
  19. Грошев А.С. Информатика: лабораторный практикум. Сев. (Арктич.) федер. ун-т им. М.В. Ломоносова. – Архангельск: ИД САФУ, 2015. – 154 с.
  20. Зегжда, Д.П. Основы безопасности информационных систем / Д.П. Зегжда, А.М. Ивашко. - М.: Горячая линия - Телеком, 2017. - 452 c.
  21. Иопа, Н. И. Информатика: (для технических специальностей): учебное пособие / Н. И. Иопа. – Москва: КноРус, 2015. – 469 с.
  22. Ипатова, Э. Р. Методологии и технологии системного проектирования информационных систем / Э.Р. Ипатова, Ю.В. Ипатов. - М.: Флинта, 2016. - 256 c.
  23. Исаев, Г.Н. Информационные системы в экономике: Учебник для студентов вузов / Г.Н. Исаев. – М.: Омега-Л, 2015. – 462 c.
  24. Исаев, Г.Н. Информационные технологии: Учебное пособие / Г.Н. Исаев. – М.: Омега-Л, 2015. – 464 c.
  25. Кушниренко, А.Г. Основы информатики и вычислительной техники / А.Г. Кушниренко, Г.В. Лебедев, Р.А. Сворень. – М.: Инфра-М, 2015. - 224 c.
  26. Ляхович В.Ф., Молодцов В.А., Рыжикова Н.Б. Основы информатики. – М.: КноРус, 2016. – 348 с.
  27. Макарова Н. В. Информатика и информационно-коммуникационные технологии. - СПб.: Питер, 2015. – 224 с.
  28. Максимов, Н.В. Современные информационные технологии: Учебное пособие / Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: Форум, 2015. – 512 c.
  29. Мидоу, Ч. Анализ информационных систем: моногр. / Ч. Мидоу. - М.: Прогресс, 2015. - 400 c.
  30. Михеева Е.В. Информационные технологии в профессиональной деятельности. – М.: Академия, 2015. – 384 с.
  31. Розин, В.М. Проектирование и программирование: Методологическое исследование. Замысел. Разработка. Реализация. Исторический и социальный контекст / В.М. Розин. - М.: Ленанд, 2018. - 160 c.
  32. Симонович, С.В. Общая информатика / С.В. Симонович. – М.: СПб: Питер, 2015. – 428 c.
  33. Синаторов, С.В. Информационные технологии: Учебное пособие / С.В. Синаторов. – М.: Альфа-М, НИЦ ИНФРА-М, 2015. – 336 c.
  34. Угринович, Н. Информатика и информационные технологии / Н. Угринович. – М.: Лаборатория знаний, 2017. – 512 c.
  35. Федорова, Г.Н. Информационные системы: Учебник для студ. учреждений сред. проф. образования / Г.Н. Федорова. – М.: ИЦ Академия, 2015. – 208 c.
  1. Гейн, А.Г. Основы информатики и вычислительной техники / А.Г. Гейн, В.Г. Житомирский, Е.В. Линецкий, и др. – М.: Просвещение, 2015. – С. 140

  2. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 22

  3. Гейн, А.Г. Основы информатики и вычислительной техники / А.Г. Гейн, В.Г. Житомирский, Е.В. Линецкий, и др. – М.: Просвещение, 2015. – С. 141

  4. Автоматизация проектирования вычислительных систем. Языки, моделирование и базы данных / ред. М. Брейер. - М.: Мир, 2015. – С. 35

  5. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 25

  6. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 26

  7. Автоматизация проектирования вычислительных систем. Языки, моделирование и базы данных / ред. М. Брейер. - М.: Мир, 2015. – С. 36

  8. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 29

  9. Гейн, А.Г. Основы информатики и вычислительной техники / А.Г. Гейн, В.Г. Житомирский, Е.В. Линецкий, и др. – М.: Просвещение, 2015. – С. 143

  10. Акулов, О. А., Медведев, Н. В. Информатика. Базовый курс: учебник / О. А. Акулов, Н. В. Медведев. – Москва: Омега-Л, 2015. – С. 42

  11. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 38

  12. Автоматизация проектирования вычислительных систем. Языки, моделирование и базы данных / ред. М. Брейер. - М.: Мир, 2015. – С. 39

  13. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 39

  14. Алехина Г. В. Информатика. Базовый курс: учебное пособие / Под ред. Г. В. Алехиной. - М.: Маркет ДС Корпорейшн, 2016. – С. 55

  15. Автоматизация проектирования вычислительных систем. Языки, моделирование и базы данных / ред. М. Брейер. - М.: Мир, 2015. – С. 46

  16. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 44

  17. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 63

  18. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 64

  19. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 98

  20. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 65

  21. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 66

  22. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 75

  23. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 76

  24. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 113

  25. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 115

  26. Автоматизация проектирования вычислительных систем. Языки, моделирование и базы данных / ред. М. Брейер. - М.: Мир, 2015. – С. 120

  27. Голицына, О.Л. Информационные технологии: Учебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ИНФРА-М, 2016. – С. 137

  28. Угринович, Н. Информатика и информационные технологии / Н. Угринович. – М.: Лаборатория знаний, 2017. – С. 54

  29. Ипатова, Э. Р. Методологии и технологии системного проектирования информационных систем / Э.Р. Ипатова, Ю.В. Ипатов. - М.: Флинта, 2016. – С. 30

  30. Угринович, Н. Информатика и информационные технологии / Н. Угринович. – М.: Лаборатория знаний, 2017. – С. 57

  31. Угринович, Н. Информатика и информационные технологии / Н. Угринович. – М.: Лаборатория знаний, 2017. – С. 58

  32. Угринович, Н. Информатика и информационные технологии / Н. Угринович. – М.: Лаборатория знаний, 2017. – С. 60

  33. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 79

  34. Исаев, Г.Н. Информационные технологии: Учебное пособие / Г.Н. Исаев. – М.: Омега-Л, 2015. – С. 64

    Симонович, С.В. Общая информатика / С.В. Симонович. – М.: СПб: Питер, 2015. – С. 20

  35. Угринович, Н. Информатика и информационные технологии / Н. Угринович. – М.: Лаборатория знаний, 2017. – С. 61

  36. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 81

  37. Ипатова, Э. Р. Методологии и технологии системного проектирования информационных систем / Э.Р. Ипатова, Ю.В. Ипатов. - М.: Флинта, 2016. – С. 32

  38. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – М.: Инфра-М, 2017. – С. 82

  39. Угринович, Н. Информатика и информационные технологии / Н. Угринович. – М.: Лаборатория знаний, 2017. – С. 102

  40. Ипатова, Э. Р. Методологии и технологии системного проектирования информационных систем / Э.Р. Ипатова, Ю.В. Ипатов. - М.: Флинта, 2016. – С. 35

  41. Гришин, В.Н. Информационные технологии в профессиональной деятельности: Учебник / В.Н. Гришин, Е.Е. Панфилова. – М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2015. – С. 56

  42. Вендров, А. М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М. Вендров. - М.: Финансы и статистика, 2017. – С. 114

  43. Вендров, А. М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М. Вендров. - М.: Финансы и статистика, 2017. – С. 115

  44. Вендров, А. М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М. Вендров. - М.: Финансы и статистика, 2017. – С. 119

  45. Гвоздева, В.А. Информатика, автоматизированные информационные технологии и системы: Учебник / В.А. Гвоздева. – М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2017. – С. 74

  46. Вендров, А. М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М. Вендров. - М.: Финансы и статистика, 2017. – С. 121

  47. Гаврилов, М.В. Информатика и информационные технологии: Учебник для бакалавров / М.В. Гаврилов, В.А. Климов; Рецензент Л.В. Кальянов, Н.М. Рыскин. – М.: Юрайт, 2015. – С. 78

  48. Волкова В.Н. Теория информационных процессов и систем. – М.: Юрайт, 2016. – С. 32

  49. Вендров, А. М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М. Вендров. - М.: Финансы и статистика, 2017. – С. 122

  50. Вендров, А. М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М. Вендров. - М.: Финансы и статистика, 2017. – С. 124