Файл: Конспект лекций по предмету ПМ. 01 Разработка модулей программного обеспечения для компьютерных систем.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 204
Скачиваний: 13
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Конспект лекций по предмету:
«ПМ.01 РАЗРАБОТКА МОДУЛЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ КОМПЬЮТЕРНЫХ СИСТЕМ»
Разработал:
преподаватель Чумаков Алексей Валерьевич
2019
Введение. Требования к современным технологиям.
Программное средство (ПС) – это программа или логически связанная совокупность программ на носителях данных, снабженная программной документацией.
Программная документация позволяет понять, какие функции выполняет та или иная программа, как подготовить исходные данные и запустить требуемую программу в процесс ее выполнения, а также: что означают получаемые результаты (или каков эффект выполнения этой программы).
Будем считать, что в ПС имеется ошибка, если оно не выполняет функции, описанные в документации по ее применению.
Надежность ПС - это его способность безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью.
Технология программирования – это система научно-обоснованных принципов, методов и средств, обеспечивающих создание и развитие ПС, в течении всего жизненного периода (жизненного цикла) программного средства.
Состав технологии программирования:
-
принципы и методы организации труда при разработке, эксплуатации ПС; -
принципы и методы разработки самих программ; -
средства инструментальной поддержки и автоматизации, позволяющие унифицировать разработку ПС.
Жизненный цикл ПС
Жизненный цикл ПС - период его разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и заканчивая прекращением всех видов его использования.
Внешнее описаниеПС является описанием его поведения с точки зрения внешнего по отношению к нему наблюдателю с фиксацией требований относительно его качества. Внешнее описание ПС начинается с определения требований к ПС со стороны пользователей (заказчика).
КонструированиеПС охватывает процессы: разработку архитектуры ПС, разработку структур программ ПС и их детальную спецификацию.
Кодирование: создание текстов программ на языке программирования, их отладка и тестирование ПС.
На этапе аттестации ПС производится оценка качества ПС, после успешного завершения которого, разработка ПС считается законченной.
Программное изделие (ПИ) - экземпляр или копия, снятая с разработанного ПС. Изготовление ПИ - это процесс генерации и/или воспроизведения (снятия копии) программ и программных документов ПС с целью их поставки пользователю для применения по назначению. Производство ПИ - это совокупность работ по обеспечению изготовления требуемого количества ПИ в установленные сроки. Стадия производства ПС в жизненном цикле ПС является, по-существу, вырожденной (не существенной), так как представляет рутинную работу, которая может быть выполнена автоматически и без ошибок.
Стадия эксплуатации ПС охватывает процессы хранения, внедрения и сопровождения ПС, а также транспортировки и применения ПИ по своему назначению. Она состоит из двух параллельно проходящих фаз: фазы применения ПС и фазы сопровождения ПС.
Применение ПС - это использование ПС для решения практических задач на компьютере путем выполнения ее программ.
Сопровождение ПС - это процесс сбора информации о его качестве в эксплуатации, устранения обнаруженных в нем ошибок, его доработки и модификации, а также извещения пользователей о внесенных в него изменениях.
Понятие качества ПС.
Качество ПС - это совокупность его черт и характеристик, которые влияют на его способность удовлетворять заданные потребности пользователей.
Качество ПС является удовлетворительным, когда оно обладает указанными свойствами в такой степени, чтобы гарантировать успешное его использование.
Критерии качества ПС:
-
функциональность, -
надежность, -
легкость применения, -
эффективность, -
сопровождаемость, -
мобильность.
Функциональность - это способность ПС выполнять набор функций, удовлетворяющих заданным или подразумеваемым потребностям пользователей. Набор указанных функций определяется во внешнем описании ПС.
Легкость применения - это характеристики ПС, которые позволяют минимизировать усилия пользователя по подготовке исходных данных, применению ПС и оценке полученных результатов, а также вызывать положительные эмоции определенного или подразумеваемого пользователя.
Эффективность - это отношение уровня услуг, предоставляемых ПС пользователю при заданных условиях, к объему используемых ресурсов.
Сопровождаемость - это характеристики ПС, которые позволяют минимизировать усилия по внесению изменений для устранения в нем ошибок и по его модификации в соответствии с изменяющимися потребностями пользователей.
Мобильность - это способность ПС быть перенесенным из одной среды (окружения) в другую, в частности, с одной ЭВМ на другую.
Обязательные критерии качества: функциональность и надежность.
Разработка структуры программы и модульное программирование
Приступая к разработке каждой программы ПС, следует иметь ввиду, что она является большой системой, поэтому нужно принимать меры для ее упрощения. Для этого программу разрабатывают по частям, которые называются программными модулями. Такой метод программирования называют модульным программированием.
Модуль – это самостоятельная часть программы, имеющая определенное значение и обеспечивающая заданные функции обработки автономно от других программных модулей.
Каждый программный модуль программируется, компилируется и отлаживается отдельно от других модулей программы, и тем самым физически разделен с другими программными модулями.
Каждый программный модуль может включаться в состав разных программ, если выполнены условия его использования, описанные в документации по ее использованию. Т.е. хорошо продуманный модуль позволяет избежать дублирования в программировании.
Любое ПС имеет свою структуру, которая разрабатывается для удобства:
-
разработки -
программирования -
отладки -
внесения изменений
Также структуризация ПС позволяет:
-
распределить работы по исполнителям, обеспечив их загрузку и требуемые сроки разработки -
построить календарные графики проектных работ и осуществлять их координацию в процессе создания ПИ. -
контролировать трудозатраты и стоимость проектных работ.
При создании ПС выделяются многократно используемые модули, их типизируют и унифицируют, за счет чего сокращаются сроки и трудозатраты на разработку ПС в целом.
Некоторые ПС используют готовые модули из библиотек стандартных процедур, функций, объектов и методов обработки данных.
Типовая структура ПС:
Типы модулей:
Наименование модуля | Описание |
Головной модуль | Управляет запуском ПС (он в единственном числе) |
Управляющий модуль | Обеспечивает вызов других модулей, задает последовательность вызова на выполнение очередного модуля |
Рабочие модули | Выполняют функции обработки |
Сервисные модули | Осуществляют обслуживающие функции |
Свойства модуля:
-
один вход и один выход – на входе программный модуль получает определенный набор исходных данных, выполняет обработку данных и возвращает результат -
функциональная завершенность – модуль выполняет перечень операций для реализации каждой отдельной функции в полном составе. -
логическая независимость – результат работы модуля зависит только от исходных данных, и не зависит от работы других модулей. -
слабые информационные связи с другими программными модулями – обмен информации между модулями должен быть по возможности минимизирован. -
обозримый по размеру и сложности.
Каждый модуль состоит из спецификации и тела модуля.
Спецификация – правила использования модуля.
Тело – способ реализации процесса обработки.
Принцип модульного программирования ПС:
-
Определение состава и подчиненность функций -
определение набора программных модулей, реализующих эти функции
При составлении алгоритма необходимо учитывать:
каждый модуль вызывается на выполнение вышестоящим модулем и закончив работу, возвращает управление вызвавшему модулю.
Методы разработки структуры программы.
В качестве модульной структуры программы принято использовать древовидную структуру, включая деревья со сросшимися ветвями. В узлах дерева размещаются модули, а стрелки показывают подчиненность модулей (т.е. в тексте модуля, из которого она исходит, имеется ссылка на модуль, в который она входит).
Модульная структура программы должна включать и совокупность спецификаций модулей, образующих эту программу. Спецификация программного модуля содержит:
-
синтаксическую спецификацию его входов, позволяющую построить обращение к нему на используемом языке программирования -
функциональную спецификацию модуля (описание всех функций, выполняемых этим модулем).
Существуют разные методы разработки структуры программы. Обычно используют 2 метода:
-
Метод восходящей разработки -
метод нисходящей разработки
Метод восходящей разработки. Сначала строится модульная структура программы в виде дерева. Затем поочередно программируются модули программы, начиная с модулей самого нижнего уровня, в таком порядке, чтобы для каждого программируемого модуля были уже запрограммированы все модули, к которым он может обращаться. После того, как все модули программы запрограммированы, производится их поочередное тестирование и отладка в принципе в таком же (восходящем) порядке, в каком велось их программирование.
На первый взгляд такой порядок разработки программы кажется вполне естественным: каждый модуль при программировании выражается через уже запрограммированные непосредственно подчиненные модули, а при тестировании использует уже отлаженные модули. Не рекомендуется, т.к.:
-
для программирования какого-либо модуля совсем не требуется текстов используемых им модулей - для этого достаточно, чтобы каждый используемый модуль был лишь специфицирован (в объеме, позволяющем построить правильное обращение к нему), а для тестирования его возможно используемые модули заменять их имитаторами (заглушками). -
каждая программа в какой-то степени подчиняется некоторым внутренним для нее, но глобальным для ее модулей соображениям (принципам реализации, предположениям, структурам данных и т.п.), что определяет ее концептуальную целостность и формируется в процессе ее разработки. При восходящей разработке эта глобальная информация для модулей нижних уровней еще не ясна в полном объеме, поэтому очень часто приходится их перепрограммировать. -
при восходящем тестировании для каждого модуля (кроме головного) приходится создавать ведущую программу (модуль), которая должна подготовить для тестируемого модуля необходимое состояние информационной среды и произвести требуемое обращение к нему. Это приводит к большому объему "отладочного" программирования и в то же время не дает никакой гарантии, что тестирование модулей производилось именно в тех условиях, в которых они будут выполняться в рабочей программе.