- •О. В. Шишов технология разработки программных продуктов
- •1. Программы и программирование
- •1.1 Основные определения
- •1.2. Классификация программ и различные виды программирования
- •1.3. Категории специалистов, занятых разработкой и эксплуатацией программ
- •2. Жизненный цикл программного обеспечения
- •2.1 Основные этапы жизненного цикла и их взаимосвязь
- •2.2 Стратегии и модели жизненного цикла
- •3. Качество по
- •3.1 Критерии оценки качества по
- •3.2 Методы оценки качества программного средства
- •4. Надежность программных продуктов
- •4.1 Надежность и виды отказов
- •4.2 Надежность и правильность программы
- •4.3. Вероятностный подход к оценке надежности
- •4.4 Факторы надежности
- •4.5 Приемы надежного программирования
- •6.2. Стандарты технологии создания программных продуктов
- •6.3. Основные этапы технологического процесса разработки программ
- •7. Структурное проектирование программных продуктов
- •7.1. Модули. Сцепление и связность модулей
- •7.2. Структура программных продуктов
- •7.3. Методы структурного программирования
- •8. Алгоритмическое представление задачи программирования
- •8.1. Свойства алгоритмов
- •8.2. Формы записи алгоритмов
- •8.3. Базовые алгоритмические структуры
- •9. Языки программирования
- •9.1. Основные понятия и элементы языков программирования
- •9.2. Классификация языков программирования
- •9.3. Развитие языков программирования
- •10. Пользовательский интерфейс
- •10.1. Типы интерфейсов
- •10.2. Этапы разработки пользовательского интерфейса
- •10.3. Критерии оценки интерфейса пользователем
- •11. Порядок работы эвм при выполнении программ. Трансляторы, интерпритаторы, компиляторы
- •12. Оптимизация программ
- •13. Отладка и тестирование программного обеспечения
- •13.1. Классификация неисправностей и ошибок в программе
- •13.2. Порядок и способы отладки и тестирования программ
- •13.3. Методы тестирования
- •13.4. Требования и рекомендации по тестированию программ
- •13.4. Программирование «с защитой от ошибок»
- •14. Аттестация программного средства
- •15. Сопровождение по
- •16. Защита программных продуктов
- •16.1. Обеспечение защищенности программных средств
- •16.3. Правовые методы защиты программных продуктов
- •17. Документорование программных продуктов
- •17.1. Виды программных документов
- •17.2. Содержание документации по еспд
- •17.3. Стиль оформления программы
- •Содержание
1.2. Классификация программ и различные виды программирования
В соответствии с выполняемыми функциями в программном обеспечении ЭВМ можно выделить:
-
прикладное ПО: совокупность программ, разрабатываемых целевым образом для решения тех прикладных задач, для которых проектируется конкретная вычислительная система. С точки зрения конкретного работника, это программы для выполнения профессиональных обязанностей на его рабочем месте
-
ПО разработки программ: совокупность программ, используемых в качестве вспомогательных средств на всех этапах разработки программ для вычислительной системы – от их ввода на исходном языке до проверки функционирования в реальном масштабе времени.
Программное обеспечение, включающее программы, которые могут выполняться на данной микропроцессорной системе, называется ее резидентным программным обеспечением. Прикладное ПО является только резидентным программным обеспечением.
Программное обеспечение, предназначенное для работы с микропроцессорной системой и ее программами, но реализованное на других, программно несовместимых с ней вычислительных средствах, называется кроссовым. ПО разработки программ может быть как резидентным, так и кроссовым.
Системное ПО – комплекс программ, связывающий в единую систему аппаратные, программные средства ЭВМ и человека. Этот комплекс называют операционной системой.
Программы, созданные для собственных нужд и не являющиеся предметом продажи, называются утилитарными. Не надо недооценивать значимость таких программ – к ним можно отнести большое количество программ отладки и настройки.
Если программы предназначены для удовлетворения потребностей пользователей, широкого распространения и продажи, то говорят о программном продукте. На создание программных продуктов затрачиваются значительные ресурсы – трудовые, материальные, финансовые; требуется высокая квалификация разработчиков.
Программы не всегда выступают в качестве самостоятельного продукта – они могут являться неотъемлемой частью сложного устройства вместе с его аппаратными средствами и продаваться только с ними в комплексе. Отличительной особенностью программных продуктов должна быть их системность – функциональная полнота и законченность реализуемых функций обработки, которые применяются в совокупности.
Программные продукты могут создаваться как:
-
индивидуальная разработка под заказ;
-
разработка для массового распространения среди пользователей.
При индивидуальной разработке фирма-разработчик создает оригинальный программный продукт, учитывающий специфику обработки данных для конкретного заказчика.
При разработке для массового распространения фирма-разработчик, с одной стороны, должна обеспечить универсальность выполняемых функций обработки данных, с другой стороны, гибкость и настраиваемость программного продукта на условия конкретного применения.
Программные продукты массового распространения продаются по ценам, которые учитывают спрос и конъюнктуру рынка (наличие и цены программ-конкурентов). Кроме продаж в настоящее время существуют и другие варианты легального распространения программных продуктов, которые особенно широко применяются с появлением глобальных или региональных телекоммуникационных сетей:
-
freeware – бесплатные программы, свободно распространяемые, поддерживаются самим пользователем, который правомочен вносить в них необходимые изменения;
-
shareware – некоммерческие (условно-бесплатные) программы. При условии регулярного использования подобных продуктов осуществляется взнос определенной суммы.
Как правило, программные продукты требуют сопровождения, которое осуществляется специализированными фирмами – распространителями программ (дистрибьюторами), реже – фирмами-разработчиками. Сопровождение программ массового применения сопряжено с большими трудозатратами – исправление обнаруженных ошибок, создание новых версий программ и т. п.
Рассмотрим классификацию видов программирования как деятельности по конструированию программ того или иного вида, выделив основные требования к таким программам.
Производственное программирование – разработка программ для программно-аппаратных комплексов. Производственные программы – это закрытые (замкнутые) сложные программные системы, предназначенные для управления производственными (реальными) объектами, процессами и системами.
Примеры производственных программ: программы управления космическими объектами, непрерывными производственными процессами (например, разливной стали), медицинской аппаратурой, регулирования автотранспорта и многие другие. Такие системы обычно работают в режиме реального времени.
Требования к таким программам:
-
устойчивость к сбоям аппаратуры, работающей в составе комплекса, к сбоям компьютера, изменениям внешней среды, неправильным действиям оператора;
-
в основном автоматический (не управляемый пользователем) режим функционирования;
Системное программирование – создание системных программ. Системные программы это программно-информационные системы для обеспечения специализированной (проблемно-ориентированной), интеллектуальной, эффективной работы компьютера с пользователями.
Примеры системных программ: операционные системы, системы управления базами данных, системы программирования, математические пакеты программ.
Требования к программам:
-
создание специализированных пользовательских интерфейсов;
-
эффективное использование ресурсов компьютера;
-
обеспечение гибкого и разнообразного межпрограммного интерфейса.
Пользовательское программирование – составление прикладных программ в средах (окружениях), формируемых системными программами. Например, одной из таких сред является среда, создаваемая системой Турбо Паскаль. Такое программирование подразумевает грамотное применение средств используемой среды для составления программ, решающих пользовательские задачи определенного класса.
