Файл: Основы проектирования программ. Этапы создания программного обеспечения ( Понятие и особенности программного обеспечения ).pdf
Добавлен: 01.04.2023
Просмотров: 346
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Понятие и проектирование программного обеспечения
1.1 Понятие и особенности программного обеспечения
1.2 Проектирование программного обеспечения
Глава 2. Классификация и особенности видов программного обеспечения
2.1 Системное программное обеспечение
Так, под системой программирования понимают это совокупность программ, использующихся при разработке, отладке и внедрении новых программных продуктов. К системам программирования относят: трансляторы; непосредственную среду разработки программ; отладчики; библиотеки справочных программ (процедур и функций); редакторы связей и др.
Редакторы документов являются наиболее широко используемым видом прикладных программ. С их помощью можно быстро и удобно подготавливать документы (использование различных шрифтов символов, абзацев произвольной формы, автоматический перенос слов, возможность делать сноски, вставлять графические объекты, автоматическая нумерация страниц и пр.). Наиболее известные – 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 - Информационные связи процесса
проектирования
Проектирование - итерационный процесс, при помощи которого требования к ПО транслируются в инженерные представления программных систем.
Обычно в проектировании выделяют две ступени: предварительное проектирование и детальное проектирование.
Предварительное проектирование обеспечивает:
- идентификацию подсистем;
- определение основных принципов управления подсистемами, взаимодействия подсистем.
Предварительное проектирование включает три типа деятельности:
- Структурирование системы. Система структурируется на несколько подсистем, где под подсистемой понимается независимый программный компонент. Определяются взаимодействия подсистем.
- Моделирование управления. Определяется модель связей управления между частями системы.
- Декомпозиция подсистем на модули. Каждая подсистема разбивается на модули. Определяются типы модулей и межмодульные соединения[25].
Известны четыре модели системного структурирования:
- модель хранилища данных;
- модель клиент-сервер;
- трёхуровневая модель;
- модель абстрактной машины.
Известны два типа моделей управления:
- модель централизованного управления;
- модель событийного управления.
Известны два типа моделей модульной декомпозиции:
- модель потока данных;
- модель объектов.
Каждый этап разработки программного обеспечения оказывает влияние на другие более ранние этапы (технология «синтез – анализ»). Так, процесс написания спецификаций оказывает влияние на анализ исходных требований. На этапе проектирования вскрываются ошибки, допущенные в процессе написания спецификаций. На этапах кодирования, тестирования и эксплуатации выявляются проблемы, решить которые можно лишь на этапе проектирования.
В качестве средств структурного подхода рассмотрим следующие наиболее распространенные методы[26]:
- SADT (Structured Analysis and Design Technique, IDEF0) модели и диаграммы демонстрируют функциональную структуру объекта: действия и связи между ними.
- DFD (Data Flow Diagrams) – диаграмма потоков данны. Она представляет собой иерархию функциональных процессов, связанных потоками данных.
- ERD (Entity-Relationship Diagrams, IDEFI) – диаграмма «сущность- связь», предложенная П. Ченом. ERD (в частности, метод описания данных – IDEF1X) является наиболее распространенным средством моделирования данных.
- IDEF3 - диаграмма документирования технологических процессов. IDEF3 позволяет: описать процессы, фокусируя внимание на течении этих процессов; рассмотреть конкретный процесс с учетом последовательности выполняемых операций.
В качестве разбиение системы на объекты используются объектноориентированные методы разработки программного обеспечения:
- OMT (Object Modeling Technique). При использовании технологии OMT проектируемая система представляется в виде 3-х коррелирующих между собой моделях[27]:
- объектной;
- динамической;
- функциональной.
- RUP (Rational Unified Process). Рациональный унифицированный процесс разработки (RUP) ПО был разработан компанией Rational Software
- JSD (Jackson Structured Development). В JSD рассматриваются в качестве одного большого процесса этапы от анализа требований до разработки ПО.
Для создания моделей анализа и проектирования объектноориентированных программных систем используют языки визуального моделирования. В настоящее время различают три поколения языков визуального моделирования. UML - стандартный язык для написания моделей анализа, проектирования и реализации объектно-ориентированных программных систем.
На рисунке 2 представлена структура диаграмм, входящих в состав унифицированного языка моделирования UML версии 2.3.
Рисунок 2 - Диаграммы унифицированного языка моделирования UML версии 2.3
Выбор основной платформы для тиражируемого программного продукта определяется:
- ее доступностью в момент, когда у пользователя возникает потребность в решении определенной задачи;
- ее удобством для решения данной задачи;
Для сложных и требующих существенного времени задач таких, как проектирование, 3D-моделирование, создание медиа-контента, разработка, более удачным решением будет desktop-приложение для традиционного ПК[28]. Как правило, такие задачи требуют большого экранного пространства, сложного пользовательского интерфейса, активного использования клавиатуры и мыши, а также очень требовательны к производительности и аппаратным ресурсам, и поэтому не могут быть выполнены в браузере или на мобильном устройстве.