- •В.М. Комаров
- •Рыбинск
- •Содержание
- •Указатель сокращений
- •Введение
- •1. Организация микропроцессорных систем
- •1.1. Типовая структура микропроцессорных систем
- •1.2. Структура и принцип действия микроЭвм
- •1.3. Организация устройств микроЭвм
- •1.3.1. Организация процессора
- •Операционный блок
- •Управляющий блок
- •1.3.2. Организация памяти
- •1.3.3. Организация интерфейса
- •Методы обмена данными
- •Синхронный обмен
- •Асинхронный обмен
- •Обмен по прерыванию
- •Обмен в режиме прямого доступа в память
- •2. Элементная база микроэвм
- •2.1. Состав элементов для построения микроЭвм
- •2.2. Однокристальные микропроцессоры к1810вм86/к1810вм88
- •2.2.1. Аппаратный интерфейс
- •2.2.2. Функциональный смысл внешних сигналов
- •2.2.3. Структура и принцип действия
- •2.2.4. Временные диаграммы функционирования
- •2.3. Генератор тактовых импульсов к1810гф84
- •2.4. Шинные буферы к1810ва86
- •2.5. Элементы памяти
- •2.5.1. Элементы постоянной памяти
- •2.5.2. Микросхемы энергонезависимой памяти фирмы Atmel
- •Общие сведения
- •Микросхемы памяти группы eeprom
- •Микросхемы памяти группы Parallel eeprom
- •Микросхемы памяти группы Flash Memory
- •2.5.3. Элементы оперативной памяти
- •2.6. Порты ввода/вывода
- •2.6.1. Порт ввода/вывода к1810ир82
- •2.6.2. Порт ввода/вывода к589ир12
- •2.6.3.Программируемый параллельный интерфейс кр580вв55а
- •Режим 0
- •Режим 1
- •Режим 2
- •3. Проектирование микропроцессорных систем
- •3.1. Представление системы как объекта проектирования
- •3.2. Основные этапы проектирования
- •3.3. Разработка архитектуры системы
- •3.4. Проектирование программных средств
- •3.4.1. Этапы жизненного цикла программы
- •3.4.2. Точная постановка задачи и формулировка требований к программе
- •Постановка задачи ввода данных в озу
- •3.4.3 Проектирование программы
- •Декомпозиция общей задачи
3.4. Проектирование программных средств
Из рассмотрения МПС как объекта проектирования следует, что основные функции в ней выполняются программным путем, а программа представляет собой некоторый функциональный преобразователь, реализующий заданную функцию преобразования Yp = Fp(Xp) входных данных Xp в требуемый результат Yp.
В общем случае программа может быть представлена в виде "черной сферы" (рис. 3.4).
Рис. 3.4. Представление программы в виде "черной сферы"
Такое представление помогает осмыслить функции, выполняемые программой, а также ее входные и выходные данные. В процессе проектирования программы необходимо определить набор и способ соединения элементов, входящих в эту "сферу" и обеспечивающих решение поставленной задачи.
До настоящего времени проектирование программ в значительной степени считается искусством, т. к. до сих пор нет формальных методов программирования. Разработка прикладных программ в основном опирается на опыт и здравый смысл программиста, которым очень трудно научить. Они приобретаются лишь при проектировании собственных программ и тщательном анализе программ, разработанных другими.
3.4.1. Этапы жизненного цикла программы
Начинающие программисты часто считают, что программирование сводится к записи процесса обработки данных на используемом языке программирования. Однако это является лишь одним из множества этапов жизненного цикла программы этапом кодирования.
Полный жизненный цикл сложной программы состоит из двух этапов [8]:
создание программы (32%);
сопровождение программы (68%).
При этом создание программы включает в себя следующие фазы:
точная постановка задачи и формулировка требований к программе (15%);
проектирование программы (15%);
кодирование программы (15%);
разработка документации (10%);
тестирование и отладка программы (25%);
занесение программы на рабочий носитель (5%);
комплексная отладка программы (15%).
Цифры, приведенные в скобках, показывают трудоемкость каждого этапа по отношению к полной трудоемкости работ данной группы.
Из анализа показателей трудоемкости следует, что трудоемкость сопровождения программы существенно выше трудоемкости ее создания.
Под сопровождением программы понимается доработка программы в процессе эксплуатации в случае обнаружения в ней ошибок или изменения условий ее использования. Необходимость сопровождения обусловлена тем, что в процессе тестирования и отладки программы, как правило, выявляются не все ошибки, которые обнаруживаются и исправляются при ее эксплуатации. Кроме того, в связи с большой гибкостью программного обеспечения модернизация МПС и дальнейшее совершенствование их характеристик всегда осуществляются путем модернизации программ.
Высокая трудоемкость этапа сопровождения программы обусловлена тем, что нередко работающие программы написаны столь запутанно и имеют столь плачевную документацию, что разобраться в них может лишь автор и то в течение короткого периода после разработки. Это приводит к тому, что на этапе сопровождения очень часто программы переписываются полностью вместо внесения в них изменений.
Отсюда вытекает, что важнейшим критерием при создании программ является ясность и простота их написания с представлением высокоинформативной документации. Использование этого критерия позволит существенно снизить трудоемкость этапа сопровождения.
Процесс создания программы состоит из большого количества этапов различной трудоемкости. При этом очевидно, что роль кодирования в нем весьма невелика, а основную трудность представляет собой тестирование и отладка программы.
Рассмотрим реализацию отдельных этапов создания сложной программы. Для иллюстрации изложенных теоретических сведений в качестве примера будем рассматривать реализацию соответствующего этапа в процессе создания программы работы устройства для ввода данных в ОЗУ.