В Камаев - Технологии программирования

Здесь есть возможность читать онлайн «В Камаев - Технологии программирования» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2006, ISBN: 2006, Издательство: Издательство «Высшая школа», Жанр: Прочая околокомпьтерная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Технологии программирования: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Технологии программирования»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге изложены технологии структурного программирования, объектно-ориентированного проектирования, визуального программирования, технология, основанная на абстракции данных Дейкстеры. Рассмотрено использование средств автоматизации проведения программных разработок.
Второе издание (1-е — 2005 г.) дополнено главами по структуре данных и основам инженерии создания программ.
Для студентов вузов, обучающихся по направлению «Информатика».

Технологии программирования — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Технологии программирования», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Необходимость в проекте вызвана сложностью задачи.

Следующий пример показывает нелинейную зависимость роста сложности задачи от ее размера. Необходимо в уме сложить числа 4 и 3. Ответ, разумеется, — 7. Необходимо в уме перемножить числа 7 и 9. Ответ, конечно, — 63. Но если не знаете таблицу умножения, то надо выполнить нестандартное преобразование в виде многократного сложения. Трудно ли оно для вас? Необходимо в уме перемножить числа 289 и 347. Если вы не феноменальный счетчик, то хватит ли в вашей голове оперативной памяти? А сможете ли вы перемножить в уме шестизначные числа? Но если декомпозировать данную задачу на вычисление ряда произведений одного из сомножителей на отдельные цифры другого сомножителя и затем найденные произведения сложить (при этом записывать на бумаге все промежуточные результаты), то с этой задачей вполне может справиться заурядный человек.

Еще пример, показывающий один из путей снижения сложности задачи за счет ее декомпозиции на обозримые части. Обычный нормальный человек со средними способностями может одновременно в своей голове удержать не более семи мыслей. В школе задачи с шестью действиями считаются задачами повышенной сложности и помечаются символом «*». В армиях разных стран, времен и народов производилось деление на десятки, сотни, тысячи. У командиров в подчинении находилось либо десять воинов, либо десять младших командиров.

Программа — очень сложный объект, содержащий до сотен тысяч и даже нескольких миллионов мыслей. Сложность программного продукта — отнюдь не случайное свойство, скорее необходимое. Его сложность определяется четырьмя основными причинами: сложностью задачи, сложностью управления процессом разработки, сложностью описания поведения отдельных подсистем, сложностью обеспечения гибкости конечного программного продукта.

В табл. 1.1 приведены пять признаков сложной системы вместе с примерами. Эти признаки инвариантны как для осязаемой системы из реального мира «музыкальный центр», так и для программной системы — текстового редактора.

Таблица 1.1.

Примеры музыкального центра и текстового редактора как сложных систем

Признаки Музыкальный центр Текстовый редактор
1. Сложность часто представляется в виде иерархии. Сложная система обычно состоит из взаимозависимых подсистем, которые в свою очередь также могут быть разделены на подсистемы и т. д., вплоть до самых низких уровней абстракции Состоит из 6 подсистем: усилителя, блока цифрового управления системой, проигрывателя компакт-дисков, кассетной деки, радиоприемника, динамиков. Каждая из подсистем может быть в свою очередь разделена на подсистемы. Усилитель разделяется на фильтры, предварительные каскады усиления и усилитель мощности. Блок цифрового управления системой разделяется на процессор, панель кнопок, панель индикации и на цифроаналоговые, аналого-цифровые преобразователи. Проигрыватель компакт-дисков — на лазер, устройство управления лазером, цифроаналоговый преобразователь и т. д. Состоит из файлов: описания глобальных констант и переменных, библиотеки модулей поддержки дисплея, библиотеки модулей поддержки клавиатуры, библиотеки модулей поддержки главного «меню», набора модулей самого редактора. Библиотека модулей поддержки клавиатуры в свою очередь включает модуль строчного редактора, который использует такие модули файла библиотеки поддержки дисплея, как отображения строки на экране и перемещения курсора в заданную позицию, а также еще целый ряд внутренних модулей
2. Выбор низшего уровня абстракции является в значительной мере произвольным и в большей степени определяется наблюдателем В качестве низшего уровня абстракции можно выбрать узлы, выполняющие законченные функции обработки электронных или звуковых сигналов: усилительные каскады — усиливают сигналы, фильтры — обеспечивают исключение помех соответствующих частот и т. д. При необходимости улучшить функцию какого-либо узла необходимо рассмотреть более низкий уровень абстракции, т. е. операционные усилители, транзисторы, диоды и др. Системные аналитики в качестве низшего уровня абстракции в программах используют модули. Кодировщики, реализующие модули, в качестве низшего уровня абстракции используют алгоритмические структуры (операторы) языка высокого уровня и структуры данных
3. Внутриэлементные связи обычно прочнее межэлементных связей. Поэтому взаимодействия частей внутри элементов системы оказываются естественным образом отделенными от взаимодействия между самими элементами. (Различие между внутри- и межэлементными взаимодействиями обусловливает разделение системы на абстрактные автономные части, которые можно изучать по отдельности.) Каждый узел, как правило, имеет или один (управляющий), или два входа (управляющий и сигнальный) и только один выход (обработанный сигнал). Связи между узлами обеспечиваются соединением входов и выходов различных узлов. Узел работает как «черный ящик», внутриэлементные связи которого «не видны» извне. Количество внутриэлементных связей существенно больше, чем межэлементных Связи между модулями реализованы с помощью аргументов (в количестве от 0 до 10) функций и небольшого количества глобальных переменных. Внутримодульные связи реализованы с помощью общих для модуля переменных (обычно от 10 до нескольких десятков). Поскольку переменные доступны из любой точки модуля, то такая связь является связью типа «все со всеми»
4. Иерархические системы обычно состоят из нескольких подсистем разного типа, реализованных в различном порядке и в разнообразных комбинациях Каждый из электронных узлов устройства выполнен, в конечном итоге, из одних и тех же типовых элементов: полупроводниковых приборов (транзисторов и диодов), сопротивлений, конденсаторов различных номиналов и способов изготовления. Различаются порядок и комбинации использования этих элементов в разных узлах Каждый модуль представляет собой набор одних и тех же вычислительных структур (операторов) и стандартных функций, по-разному взаимодействующих друг с другом через общие данные в каждом из модулей
5. Работающая сложная система неизбежно оказывается результатом развития работающей простой системы. Сложная система, разработанная от начала до конца на бумаге, никогда не работает и нельзя заставить ее заработать. Обычно первоначально создают простую работающую систему, которую развивают в последующих версиях на основе новых идей, полученных при эксплуатации Прототипы музыкального центра: радиоприемник, кассетный магнитофон, проигрыватель компакт-дисков. Музыкальный центр является комбинацией и дальнейшим развитием этих систем: улучшены подсистемы усиления и фильтрации звука, улучшены динамики, добавлен цифровой процессор для обработки звука Сначала появились простейшие текстовые редакторы как строчные, так и экранные для набора и корректировки текстов в режиме пишущей машинки. Затем появились текстовые процессоры, форматирующие текст и осуществляющие проверку орфографии. Далее появились интегрированные системы, включающие процессоры: текстовые, графические, электронных таблиц, баз данных и деловой графики

Проектирование— это разработка проекта, процесс создания спецификации, необходимой для построения в заданных условиях еще несуществующего объекта на основе первичного описания этого объекта. Результатом проектирования является проектное решение или совокупность проектных решений, удовлетворяющих заданным требованиям. Заданные требования обязательно должны включать форму представления решения.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Технологии программирования»

Представляем Вашему вниманию похожие книги на «Технологии программирования» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Технологии программирования»

Обсуждение, отзывы о книге «Технологии программирования» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x