введение
Поскольку мы хотим научиться конструированию программного обеспечения, что такое программное обеспечение? Концепция программного обеспечения была впервые предложена Аланом Тьюрингом. В нашей жизни есть все виды программного обеспечения, такие как операционные системы и приложения, а также различные программы для ПК, Интернета, Android, IOS и т. д. Все они называются программным обеспечением.
Принципиальная схема уровней взаимодействия с компьютером |
---|
пользователь |
применение |
Операционная система |
аппаратные средства |
В то же время наше понимание программных систем также постоянно меняется: от прошлого к настоящему:
- программа
- Алгоритм + структура данных
- Программа + данные + документ
- Модуль (компонент) + поток данных / управления В настоящее время наше кодирование становится все более интегрированным, и модульное программирование также является основным направлением.
Структурная схема разрабатываемого программного обеспечения.
Структурной называют схему, отражающую состав и взаимодействие по управлению частей разрабатываемого программного обеспечения.
Структурные схемы пакетов программ не информативны, поскольку организация программ в пакеты не предусматривает передачи управления между ними. Поэтому структурные схемы разрабатывают для каждой программы пакета, а список программ пакета определяют, анализируя функции, указанные в техническом задании.
Самый простой вид программного обеспечения — программа, которая в качестве структурных компонентов может включать только подпрограммы ибиблиотеки ресурсов. Разработку структурной схемы программы обычно выполняют методом пошаговой детализации.Структурными компонентами программной системы или программного комплекса могут служить программы, подсистемы, базы данных, библиотеки ресурсов и т. п.Структурная схема программного комплекса демонстрирует передачу управления от программы-диспетчера соответствующей программе (рис. 5.1).
Рис. 5.1. Пример структурной схемы программного комплекса
Структурная схема программной системы, как правило, показывает наличие подсистем или других структурных компонентов. В отличие от программного комплекса отдельные части (подсистемы) программной системы интенсивно обмениваются данными между собой и, возможно, с основной программой. Структурная же схема программной системы этого обычно не показывает (рис. 5.2).
Рис. 5.2. Пример структурной схемы программной системы
Более полное представление о проектируемом программном обеспечении с точки зрения взаимодействия его компонентов между собой и с внешней средой дает функциональная схема.
Функциональная схема.Функциональная схема или схема данных (ГОСТ 19.701-90) — схема взаимодействия компонентов программного обеспечения с описанием информационных потоков, состава данных в потоках и указанием используемых файлов и устройств. Для изображения функциональных схем используют специальные обозначения, установленные стандартом. Основные обозначения схем данных по ГОСТ 19.701-90 приведены в табл. 5.1.
Название блока | Обозначение | Назначение блока |
Запоминаемые данные | Для обозначения таблиц и других структур данных, которые должны быть сохранены без уточнения типа устройства | |
Оперативное запоминающее устройство | Для обозначения таблиц и других структур данных, хранящихся в оперативной памяти | |
Запоминающее устройство с последовательной выборкой | Для обозначения таблиц и других структур данных, хранящихся на устройствах с последовательной выборкой (магнитной ленте и т.п.) | |
Запоминающее устройство с прямым доступом | Для обозначения таблиц и других структур данных, хранящихся на устройствах с прямымдоступом (дисках) | |
Документ | Для обозначения таблиц и других структур данных, выводимых на печатающее устройство | |
Ручной ввод | Для обозначения ручного ввода данных с клавиатуры | |
Карта | Для обозначения данных на магнитных или перфорированных картах | |
Дисплей | Для обозначения данных, выводимых на дисплей компьютера |
Функциональные схемы более информативны, чем структурные. На рис. 5.3 для сравнения приведены функциональные схемы программных комплексов и систем.
Все компоненты структурных и функциональных схем должны быть описаны. При структурном подходе особенно тщательно необходимо прорабатывать спецификации межпрограммных интерфейсов, так как от качества их описания зависит количество самых дорогостоящих ошибок. К самым дорогим относятся ошибки, обнаруживаемые при комплексном тестировании, так как для их устранения могут потребоваться серьёзные изменения уже отлаженных текстов.
Рис. 5.3. Примеры функциональных схем: а — комплекс программ; б — программная система
С каких измерений смотреть на структуру программного обеспечения
- Программирование и время выполнения Когда дело доходит до времени выполнения, вы должны учитывать, как программа работает на целевой машине, например, как загрузить программу с диска, как загрузить ее в память и т. д. Такие факторы, как объем памяти, скорость работы и т. Д., Станут объектом внимания. В то время мы будем использовать «снимки кода» и другие методы для проведения соответствующих наблюдений.
- Микро и Макро Перспектива кода (Исходный код): ①Как насчет исходного кодалогикаСоздавайте программные блоки (например, функции, классы, методы, отговорки и т. Д.) Или полагайтесь на них. ② Программы в памяти, а также то, как они работают и взаимодействуют; Перспектива модуля (структура): ①Как насчет исходного кодафизическоеСостав или зависимая структура (например, файлы, каталоги, пакеты, библиотеки и т. Д.) ②Как настраивать, запускать и взаимодействовать с каждым программным пакетом в физической среде;
- Временной период Момент: в определенный момент времени, как выглядит код или модуль и как работает программа; Период: со временем, как изменяется код или модуль и как работает программа;
При программировании, в определенный момент, перспектива кода
В этом случае мы имеем следующие три аспекта от мала до велика:
- Семантический уровень
- Грамматический уровень
- Семантический уровень
При программировании в определенный момент вид модуля
- Состав исходного кодафайл, А затем сформируйтеоглавление
- Файл упакован какпакет, По логике, также называемые подсистемами и компонентами
- Формирование многоразового модуляБиблиотека Обычно разработчики не разрабатывают программы с нуля, а предпочитают повторно использовать модули в библиотеке. Инвентарь есть повсюду, из самых разных источников, мы можем рассматривать его как дополнение к стандартным языкам программирования. Есть два способа использования библиотеки : динамическое связывание и статическое связывание. Подробное содержание может просмотреть компьютерную систему.
При программировании, определенный период, перспектива модуля
Как каждый модуль меняется со временем? Чтобы описать такого рода изменения, мы ввели систему контроля версий, которая также имеет номер версии, который мы часто называем.
После выпуска программы на этом дело не закончилось. Программное обеспечение должно развиваться вместе с рынком, технологиями и другими факторами. Каждая часть программного обеспечения также переживет наиболее приспособленные и станет более совершенным. Иногда затраты на обслуживание составляют даже 90% затрат на разработку.
Время выполнения, определенный момент, перспектива кода
будет использовать моментальный снимок кода для наблюдения за кодом, анализа использования памяти и т. д. (Подробно это будет описано в главе 03)
Что такое прикладное программное обеспечение
Определения
Программное обеспечение — совокупность программных средств и сопроводительных документов, которые предназначены для решения задач разной сложности с помощью компьютера в процессе осуществления экономической, управленческой, других направлений деятельности и обеспечения работы аппаратных средств ЭВМ.
Прикладное программное обеспечение (англ. applicationsoftware) — тип программного обеспечения, целевым назначением которого является эффективная разработка и выполнение определенных, обычно, сложных совокупностей пользовательских задач.
Прикладное программное обеспечение управляется с помощью операционной системы. В состав ППО входят пакеты программ, разработанные фирмой изготовителем, и прикладные пользовательские приложения. Такое обеспечение является продуктом разработки специализированных организаций, которые создают программные продукты и реализуют их на рынках сбыта.
Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут
Над созданием ППО трудятся профессиональные специалисты такие, как системные аналитики и программисты. Прикладное программное обеспечение поставляется в форме комплекса программ на машинных носителях и сопроводительной документации к ним. В комплект документов включены руководства по работе с приложениями, сведения о конкретных программах и их назначении для решения определенных задач.
В основную часть прикладного программного обеспечения включены пакеты прикладных программ.
Определение
Пакеты прикладных программ — комплексные средства, позволяющие решить задачи из определенного класса, относящиеся к конкретной тематике.
В процессе создания подобных продуктов учитывается их удобство для пользователей. Таким образом, эксплуатация компьютерной техники максимально упрощается с учетом интересов специалистов из разных профессиональных областей.
Принципы интуитивно понятного интерфейса программного обеспечения упрощают процесс взаимодействия пользователя с компьютером, который осуществляется несколькими способами:
- Входной язык пакета, то есть ввод с клавиатуры, выполнение команд, просмотр информации.
- Указания встроенного средства или мастера для пошагового решения задачи.
Прикладное программное обеспечение отличается назначением, функционалом и пользовательскими характеристиками. Такими, как язык интерфейса, особенности меню и работы с командами. В настоящее время можно найти множество приложений, с которыми можно работать в режиме онлайн. Программы открываются в интернет-браузере. Другой тип программного обеспечения требует установки на компьютер или другое электронное устройство.
Ключевые понятия программного обеспечения
Назначение программного обеспечения заключается в осуществлении управления электронными и механическими частями компьютера. ПО – это весьма гибкая система, обладающая возможностью усовершенствования. Программный продукт, оперирующий информацией, превращает аппаратную часть ПК в комплекс, при помощи которого можно решать самые различные задачи.
Ключевые понятия программного обеспечения
Жизненный цикл любого компьютерного программного обеспечения состоит из трех основных стадий: написание, работа и поддержка. Сам процесс написания условно подразделяется на 6 этапов:
- Постановка задачи.
- Создание концепции.
- Выработка алгоритма.
- Формирование и компиляция.
- Выявление ошибок и отладка.
- Завершение процедур по оформлению документации.
Особенности ПО:
- Практически любым процессом можно управлять определённым набором инструкций.
- Затруднение разработки состоит в сложности его оцифровки.
- Создание нового ПО осуществляется на ПК с установленным программным обеспечением.
- Написание кода менее трудоёмкая операция, чем его отладка и настройка управления.
- Программное обеспечение пользователя является методом реализации поставленных задач.
Инструментальное
Инструментальное ПО (системы программирования) предназначено для использования разработчиками в процессе проектирования и создания программ.
Элементами системы программирования являются:
- Текстовые редакторы помогают создавать, редактировать и объединять тексты.
- Транслятор преобразовывает алгоритмический язык программы в машинный (двоичные коды), создавая при этом объектный модуль. Интерпретатор осуществляет перевод построчно, не создавая объектный модуль.
- Средства отладки (отладчик) обеспечивают пошаговое выполнение программ с предоставлением данных о результатах исполнения.
- Библиотеки подпрограмм.
Системное, что включает
Системное ПО (System Software) — группы программ и их систем, которые обеспечивают работу компьютера.
СПО предназначается для:
- формирования условий для функционирования других программных групп;
- обеспечения автоматизации разработки нового софта;
- регулирования качества работы компьютера и вычислительной системы;
- диагностирования и профилактики компьютерной аппаратуры;
- произведения дополнительных технологических процессов (архивирование, восстановление компонентов программ и файлов баз данных, копирование).
Продукты данного вида ПО являются неотъемлемой частью компьютера и рассчитаны на опытных пользователей — оператора, администратора сети или системного программиста.
СПО состоит из системных программ управляющих и обрабатывающих.
Управляющие системные программы обеспечивают корректную работу всех механизмов системы и выполняют функции:
- Руководство вычислительными комплексами.
- Взаимодействие с внутренними данными операционной системы.
В зависимости от местонахождения управляющие программные средства делятся на:
- резидентные составляют ядро ОС и расположены в основной памяти;
- транзитные загружаются в память компьютера только перед исполнением.
Компании-разработчики предоставляют управляющие системные программы в виде драйверов специальных устройств и инсталляционных пакетов ОС.
Обрабатывающие системные программы представляют собой дистрибутивные пакеты, в состав которых входит ПО (приложения, программы инсталляции).
По другой классификации в структуру ПО включают:
1. Базовое — минимальный комплекс программ, который обеспечивает работу компьютера. К ним относят:
- ОС и входящие в их состав драйверы;
- операционные оболочки, при помощи которых ОС может взаимодействовать с пользователем (интерфейс);
- системы, управляющие файлами.
Операционная система — комплекс программных средств, который обеспечивает регулирование работы аппаратной части компьютера и прикладных программ, их кооперацию и взаимодействие с пользователем.
Операционная система выполняет роль интерфейса между компьютерной аппаратурой и задачами пользователя. Её задача заключается в организации корректных вычислений и обеспечении эффективности использования вычислительных ресурсов.
Системы управления файлами служат для создания удобного доступа к файлам (данным), используют логический доступ, указывая имя файла вместо определенных физических адресов.
2. Сервисное — софт, который дает возможность расширить функционал базового ПО и обеспечивает удобство для пользователя. В зависимости от выполняемой функции среди них выделяют:
- драйверы специальных устройств, которые не входят в состав ОС;
- программы, диагностирующие работоспособность компьютерной системы;
- антивирусники, которые предназначены для защиты компьютера, обнаружения и очистки вредоносных файлов;
- программные средства, контролирующие процессы на дисках (сохранение файлов, сжатие дисков, формирование копий, проверка состояния поверхности диска;
- архиваторы, предназначенные для сжатия файлов с целью уменьшения их размеров;
- программы, обслуживающие сеть.
Для обозначения сервисных программ часто используют понятие «утилиты».
ППО общего назначения
Распространенные задачи информационного характера встречаются практически во всех сферах деятельности современного человека. Для их решения используется прикладное программное обеспечение общего назначения. К данному типу приложений относятся продукты широкого спектра использования, которые знакомы большинству пользователей персональных компьютеров.
Текстовые редакторы
Они обладают достаточно простым функционалом и предназначены для работы с текстовой информацией. Опции программ позволяют оперативно делать редактирование, выполнить просмотр, печать, создание новых документов. К дополнительным возможностям современных текстовых редакторов относят изменение шрифтов, автоматическую замену слов, копирование, перемещение, удаление фрагментов текста, работу с несколькими открытыми файлами одновременно.
Текстовые процессоры
Такие программы предназначены для работы с разными форматами текста. Кроме стандартных опций набора и печати, приложения позволяют менять оформление документов, работать с ними не только после перевода на бумажный носитель, но и в электронном виде, подключая других пользователей к сети. Современные текстовые процессоры дополнены инструментами для создания и редактирования формул, графиков, диаграмм, иллюстраций.
Электронные таблицы
Основным назначением таких программ является создание и изменение разных вариантов табличных форм. В роли объекта обработки выступают планово-финансовые, бухгалтерские документы, инженерные расчеты. Отличие электронных таблиц от текстовых процессоров с подобной опцией заключается в наличии дополнительных функций для профессионального редактирования документов. К примеру, при изменении одной ячейки, автоматически форматируется содержание остальных, согласно заданным формулам.
Системы верстки
HTML-редакторы и более простые приложения необходимы для написания программного кода визуальной части сайта. С помощью систем верстки соединяют и формируют расположение составных частей страницы. К таким компонентам относятся текстовые заголовки, разнообразные иллюстрации и таблицы. Редакторы включают набор инструментов, по средствам которых пользователи повышают скорость загрузки интернет-контента и адаптируют его под конкретные потребности конечного клиента. От качества работ зависит восприимчивость страницы поисковыми системами.
Графические редакторы
Данные программы предназначены для работы с изображениями разной сложности. К графическим системам относятся редакторы растровой, векторной графики, приложения для создания и редактирования трехмерной графики. Популярностью пользуются и системы машинной графики. С их помощью автоматизируют конструкторский труд в области машиностроения, промышленной электроники, строительстве.
СУБД
Системы управления базами данных предназначены для работы с большими массивами информации, которые обычно представлены в виде табличных структур. С помощью СУБД автоматизируют технологические процессы по созданию, хранению и анализу электронных данных. Такие системы служат основой для разработки современных информационно-справочных программных комплексов.
Редакторы презентаций
Данный тип программного обеспечения пользуется большой популярностью на предприятиях разных сфер деятельности и в учебных заведениях. Редакторы презентаций позволяют максимально доходчиво, оригинально и интересно представить информацию о каком-либо продукте, услуге, достижении, научном исследовании.
Такой формат успешно применяют для защиты проектов, привлечения инвестиций, демонстрации коммерческих предложений и других работ. С помощью специальных инструментов пользователь создает и скрепляет между собой отдельные слайды, параллельно редактируя информацию, добавляя таблицы, изображения, диаграммы, графики и другие элементы, а также настраивая формат демонстрационного режима.
Браузеры
Прикладное программное обеспечение знакомо каждому пользователю глобальной сети интернет. С помощью браузера просматривают страницы, веб-документы, компьютерные файлы и каталоги, а также управляют интернет-приложениями. С помощью данного вида программ выполняют запросы, обрабатывают, изменяют, просматривают содержание веб-сайтов. Современные модификации браузеров обладают возможностью обмена файлами с серверами FTP, открывают графические объекты, запускают аудио и видео форматы, тексты и другие файлы.
Виды программного обеспечения
Различают 3 основных вида программного обеспечения:
- системное;
- прикладное;
- инструментарий технологии программирования (инструментальные средства).
ПО классифицируется также в соответствии с характеристиками, выполняемыми функциями:
- По режиму эксплуатации: групповое, индивидуальное, сетевое.
- По масштабу: малое, среднее, большое.
- По свойствам стабильности: стабильное, средней стабильности, нестабильное. Стабильные компоненты обеспечения корректно функционируют, не требуя внесения изменений и дополнений. Нестабильное оборудование не гарантирует бесперебойной работы.
- По требованию защиты: надежные, сомнительные.
- По необходимым рабочим характеристикам: гибкие/неизменные, универсальные, полные.
- По исходному языку: машинные, машинно-ориентированные, алгоритмические, интегрированные, процедурно-ориентированные, проблемно-ориентированные.
- ПО различается в зависимости от характеристик вычислительной среды: алгоритмической сложности, объемов файловой системы, разновидности процессора, системности обработки.
- По классу пользователя: простой клиент, расширенный пользователь, максимум.
- По значению критичности: секретность, национальная безопасность, жизнь человека, паника в социальной сфере, частная собственность, безопасность в организации.
- По видам доступа к использованию: просмотр и редактирование для всех пользователей, только просмотр, редактирование для некоторых пользователей, просмотр только для некоторых пользователей.
По способу распространения и использования выделяют 6 типов:
-
Free — распространяются бесплатно, доступны для скачивания, копирования;
-
Adware — бесплатные, содержащие платные дополнительные функции;
-
Shareware — бесплатные для индивидуального пользования, доступ компании разрешается за определенную оплату;
-
Trial — скрипты, позволяющие бесплатно производить действия в течение установленного периода (10-30 суток), для дальнейшего доступа необходима покупка лицензионного ключа;
-
Demo — пробная версия программы;
- Закрытое ПО представляет собой частную собственность разработчиков, доступ к которой возможен лишь при определенных условиях, выставленных автором.
Отношения между перспективами
- Ф → Code Programming / Coding (Chapter 3 ADT / OOP) Review, static analysis / checking (Chapter 4 Understandability)
- Code → Component Design (Chapter 3 ADT / OOP; Chapter 5 Reusability; Chapter 6 Maintainability) Build: compile, static link, package, install, clean (Chapter 2 Construction process)
- Build-time → Run-time Install / deploy (Another course) Debug, unit / intergration testing (Chapter 7 Robustness)
- Moment → Period Refactoring (Chapter 9 Refactoring) Version Control (Chapter 2 SCM) Loading, dynamic linking, interpreting, execution (dumping, profiling, logging) (Chapter 8 Performance)