PHOTO

Александр Бурьяк

Пpоектирование систем обработки данных

(Отрывки)

Что представляет собой работа с данными сегодня? Если бы уделялось должное внимание её организации, то 80% затрачиваемых в этой области усилий стали бы не нужными, а эффективность оставшихся 20% возросла бы в несколько раз.


Обновлено: 10.02.2013
Другие произведения
bouriac@rambler.ru

Предисловие.

Данные -- это состояния некоторых элементов и передаваемые сигналы, имеющие какой-нибудь смысл для воспринимающих их людей или для работающих с ними устройств. Работа с данными -- это их формирование, передача, хранение, обработка, представление, уничтожение. С данными работают люди и устройства. Некоторые из таких устройств традиционно называются компьютерами ("вычислителями"), хотя вычисления составляют малую часть их работы с данными. В работе с данными выделяются три области: 1) производство средств работы с данными; 2) деловое использование средств работы с данными; 3) использование средств работы с данными для развлечения. Средства работы с данными разделяются на аппаратные и програм- мные. Некоторые действия с данными можно осуществлять как аппа- ратно, так и программно. Производство программных средств работы с данными включает в себя следующее: 1) производство средств производства программных средств работы с данными(компиляторов и пр.); 2) производство вспомогательных средств (операционных систем, систем управления базами данных и пр.); 3) производство типовых прикладных средств (текстовых редакторов, графических редакторов и пр.); 4) производство нетиповых прикладных средств. В данной книге рассматривается производство нетиповых приклад- ных программных средств для работы с данными (их формирования, обработки, представления). * * * Что представляет собой работа с данными сегодня? Если бы уделя- лось должное внимание её организации, то 80% затрачиваемых в этой области усилий стали бы не нужными, а эффективность оставшихся 20% возросла бы в несколько раз. ПОЧЕМУ ЖЕ ОНО НЕ УДЕЛЯЕТСЯ? Потому что любая проблема -- это для кого-нибудь источник дохода. * * * Применяемые сокращения: ОД -- обработка данных; СОД -- средство обработки данных; СПР -- система поддержки решений; СУБД -- система управления базами данных. * * * Материалы этой книги можно использовать в следующих видах деятельности: организация ОД; управление развитием ОД; подготовка специалистов по ОД; разработка банков данных по ОД; проектирование изделий и услуг в области ОД; формирование коллективов специалистов -- разработчиков аппаратуры, программных средств; принятие решений по закупке, комплектованию СОД.

Оглавление.

1. Предисловие.
2. Введение.
....2.1. Феномен программирования.
....2.2. Технологии использования систем обработки данных.
....2.3. Средства обработки данных.
....2.4. Системы обработки данных.
....2.5. Направления развития программных средств.
....2.6. Виды систем обработки данных.
....2.7. Классификация компьютерных программ.
3. Философия программирования.
....3.1. Специализированность или универсальность.
....3.2. Автоматизация или ручная обработка.
4. Теоретические основы проектирования СОД.
....4.1. Элементы теории программирования.
....4.2. Теория автоматизации.
....4.3. Настройка системы.
....4.4. Доступ к действиям.
....4.5. Быстрый диалог.
....4.6. Модели деятельности.
....4.7. Взаимодействие человека с компьютером.
5. Создание СОД.
....5.1. Проектирование СОД.
....5.2. Реализация СОД.
....5.3. Внедрение СОД.
....5.4. Сопровождение СОД.
....5.5. Развитие СОД.
6. Устройство системы обработки данных.
....6.1. Логическая структура программы.
....6.2. Вызов программы.
....6.3. Начало работы программы.
....6.4. Взаимодействие программ.
....6.5. Завершение работы программы.
....6.6. Компоненты сложной программной системы.
....6.7. Многопользовательские системы.
....6.8. Защита.
....6.9. Размещение данных оперативной в памяти.
....6.10. Управляемые пакеты.
....6.11. Работа с базами данных.
7. Данные.
....7.1. Метаданные.
....7.2. Уровни структуризации данных.
....7.3. Размеры полей данных.
8. Типы данных.
....8.1. Теория типов.
....8.2. Объекты данных.
....8.3. Отношения между типами.
....8.4. Логические типы данных.
....8.5. Хранение данных разной структуры.
....8.6. Динамические структуры данных.
9. Экранные типы данных.
....9.1. Таблицы.
....9.2. Списки.
....9.3. Схемы.
....9.4. Бланки.
....9.5. Графики.
....9.6. Карты.
....9.7. Тексты.
....9.8. Гипертексты.
10. Дисковые типы данных.
....10.1. Файлы.
....10.2. Каталоги.
11. Связи.
....11.1. Связь через соседство.
....11.2. Связи в массивах данных различных типов.
12. Ссылки.
....12.1. Начало и конец фрагмента,
....12.2. Связанные компоненты.
....12.3. Справочник ссылок.
....12.4. Ссылки из текста.
....12.5. Виртуальный массив.
....12.6. Система ссылок.
....12.7. Кодирование разнотипных ссылок в базе данных.
....12.8. Варианты структуры файла ссылок.
13. Структуры данных.
....13.1. Структура данных и организация данных.
....13.2. Выбор организации данных.
....13.3. Уровни структуризации данных.
....13.4. Работа со структурой записи.
....13.5. Смысл данных.
....13.6. Распределение данных между файлами.
....13.7. Хранение данных переменой длины.
....13.8. Смена типа сущности.
....13.9. Базы данных.
....13.10. Базы знаний.
14. Процессы.
15. Пользовательский интерфейс.
....15.1. Склонности пользователя.
....15.2. Художественное оформление интерфейсов.
....15.3. Экранное оформление действий над данными.
....15.4. Работа с данными, имеющими табличную организацию.
....15.5. Экранные объекты.
....15.6. Средства ввода данных.
....15.7. Цвета.
....15.8. Звук.
....15.9. Экранные мнемонические изображения.
....15.10. Печатание.
....15.11. Изнанка программы.
....15.12. Связывание и встраивание объектов.
....15.13. Типизация названий программ.
16. Оформление проекта.
....16.1. Именование.
....16.2. Оформление текстов программ.
....16.3. Оформление документации.
17. Основные типы систем обработки данных.
....17.1. Гипертексты.
....17.2. Обучающие системы.
....17.3. Системы поддержки знаний.
....17.4. Демонстрационные системы.
....17.5. Учебные системы.
....17.6. Игровые системы.
....17.7. Компьютерные учебники.
....17.8. Системы формирования знаний.
....17.9. Системы поддержки навыков.
....17.10. Навыки решения статических проблем.
....17.11. Системы принятия решений.
....17.12. Системы поддержки решений.
18. Инструментальные средства.
....18.1. Средства программирования.
....18.2. Парадигмы программирования.
........18.2.1. Процедурное программирование.
........18.2.2. Объектное программирование.
........18.2.3. Событийное программирование.
........18.2.4. Структурное программирование.
....18.3. Языки программирования.
....18.4. Систематизация языков программирования.
....18.5. Проектирование языков.
....18.6. Выбор средства программирования.
....18.7. Инструментальные системы.
19. Руководство программным проектом.
....19.1. Планшет руководителя проекта.
....19.2. Заключение договора с заказчиком.
....19.3. Техническое задание.
....19.4. Разработчики.
....19.5. Изучение программных продуктов.
....19.6. Подготовка специалистов.
....19.7. Этапы работы над проектом.
....19.8. Товарное оформление продукта.
20. Сопровождение программ.
....20.1. Модифицирование программ для облегчения сопровождения.
....20.2. Метасистема для сопровождения.
....20.3. Утилиты для сопровождения.
....20.4. Утилиты для автоматизации документирования.
....20.5. Организация работы специалиста по сопровождению.
....20.6. Развитие программ.
21. Программирование.
....21.1. Знания программиста.
....21.2. Самоорганизация программиста.
....21.3. Технологии программирования.
....21.4. Упорядочение команд и функций.
....21.5. Экран.
....21.6. Данные.
....21.7. Программа.
....21.8. Оперативная память.
....21.9. Файл.
....21.10. Принтер.
....21.11. Обеспечение защиты от ошибок пользователя.

.................................................................
.................................................................
25. Универсальная система обработки данных.
....25.1. Универсальная настраиваемая структура элементов.
....25.2. Элементы.
....25.3. Связи.
....25.4. Сцепления.
....25.5. Агрегаты.
....25.6. Структуры.
....25.7. Сеть элементов.

.................................................................
.................................................................


2. Введение.

Средства быстрого программирования: 1. Языки программирования высокого уровня. 2. Средства объектно-ориентированного программирования. 3. Системы поддержки проектирования, программирования, отладки. 4. Дорабатываемые базовые системы. 5. Настраиваемые системы. Большинство систем обработки данных сводиться к нескольким типам и может создаваться путём наращивания некоторых базовых систем -- хорошо спроектированных, написанных, отлаженных и вдобавок приспособленных для развития. Базовые системы могут, в свою очередь, разрабатываться на основе одной системы, в которую добавляются те или иные возможности. В этом случае они образуют семейство базовых систем. Можно добиваться очень высокого уровня отлаженности базовых систем. Семейство базовых систем задаёт стандарт и стиль программиро- вания. * * * Можно говорить о том, что есть два направления развития техно- логий работы с данными: 1) наращивание мощностей и расширение функций; 2) оптимизация основных функций. В настоящее время доми- нирует первое направление, отнимая ресурсы и внимание от второго и добавляя ему сложности. Как сегодня оценивают положение дел в области компьютерной работы с данными? По количеству прибыли, по числу занятых. Иначе говоря, чем больше ресурсов общества оттягивает на себя эта отрасль, тем якобы лучше обстоят в ней дела. Ясно, что при таком подходе абсурд и сложности в работе с данными будут только нарас- тать. Вследствие этого будет снижаться эффективность отрасли, будут увеличиваться вредные побочные эффекты и -- хуже того -- продолжит усугубляться ситуация с уязвимостью цивилизации в целом. Основные "болезни" в области работы с данными: 1) вирусы; 2) игры; 3) отвлекающая и деструктивная информация; 4) ненужная новизна. В развитии информационных технологий в настоящее время слишком много рыночности, сиюминутности, а требуется больше плановости, дальновидности. Следует больше разрабатывать, обсуждать, пропа- гандировать и в отдельных случаях даже навязывать некоторые стратегии и стандарты. Средства работы с данными почти никогда не обсуждаются в СМИ как инструменты для решения некоторых проблем -- внешних по отно- шению к области работы с данными. Они обсуждаются преимущественно как самоценности либо как инструменты решения внутренних проблем этой области. * * * Взможные направления работы по исправлению ситуации в области работы с данными: 1. Использование мощных метасистем в разработке и сопровождении программных систем. 2. Использование базовых систем при создании прикладных средств обработки данных. 3. Разработка и распространение систем поддержки решений, прививающих эффективную культуру информационной работы. 4. Курирование профессионального развития программистов. Принципы, которыми следует руководствоваться: 1. Минимализм. 2. Протекционизм. 3. Жёсткое соблюдение правил компьютерной гигиены (понимаемой как подход, позволяющий избегать вредных последствий компьютеризации для здоровья, интеллекта и т. п.). * * * Почему не делаются базовые системы? Потому что создать хорошую базовую систему с использованием некоторого средства программи- рования много сложнее, чем создать аналогичную по возможностям конкретную систему обычного качества с использованием того же средства программирования. Вдобавок при этом нужна значительно более высокая культура работы. Далее, построение базовой системы задерживается тем, что требует приобретения некоторого опыта использования средства программирования. А это значит, что пока кто-то будет делать базовую систему с использованием какого-ни- будь нового средства программирования, другие разработчики уже предложат конкретные системы, которые можно было бы с меньшими усилиями и лучшим качеством сделать на основе прототипа. Системы будут работать плохо и требовать значительных усилий по сопровож- дению, но они появятся раньше. К тому времени, когда будет предложена хорошо отлаженная базовая система, применённое для её создания средство программирования уже частично устареет, и пользователей будут привлекать разработки с применением новых средств. Таким образом, развитие компьютерных средств -- это по преиму- ществу гонка уродцев (правда, более-менее приглаженных внешне). * * * Чтобы быстро создавать базовые системы, следует иметь нала- женную технологию. Чтобы обеспечить интерес пользователей к продуктам, сделанным на основе базовых систем, так что поль- зователи соглашались бы ждать появления таких продуктов, а не приобретать первые предложенные, следует пропагандировать базовые системы. * * * Работа с данными -- в настоящее время наиболее быстро развива- ющаяся область деятельности. Она развивается настолько быстро и настолько хаотично, что даже у якобы успешно действующих в ней субъектов отсутствует сколько-нибудь чёткое представление о том, что же всё-таки с нею происходит и чем всё это грозит. * * * Наибольшее распространение почти всегда получает не самая луч- шая система, а та, которая раньше появилась на рынке, "захватила" его. Разумеется, обнаруженные в системе значительные недостатки в дальнейшем по возможности устраняются, но зачастую эта возмож- ность не очень велика, и разработчики новых версий программного продукта оказываются вынуждены придерживаться однажды принятых технических решений и делать вид, что эти решения достаточно хороши. Создавать более-менее работающие компьютерные программы умеют очень многие. В том числе создавать программы, удовлетворяющие распространенным представлениям о том, что такое хорошая програм- ма. Но очень немногим удается разрабатывать программы так, чтобы от них был общий положительный эффект. Большинство программ в лучшем случае переносит проблемы с одного места в другое: к при- меру, становится удобно "конечному пользователю", но оказывается, что фирма вынуждена слишком много тратиться на компьютеры и программистов, и т. п. ............................................................... ...............................................................

12. Структуры данных.

............................................................... ............................................................... Структура базы данных (БД) должна быть такой, чтобы наиболее частые запросы к БД выполнялись наиболее быстро. То есть, при проектировании структуры БД надо в основном идти от запросов, а не преодолевать избыточность данных. Должно быть соответствие между структурой запросов и наличными индексными таблицами. Индексные таблицы, создаются так, чтобы наиболее быстро выполнялись наиболее частые запросы. Эффективность индексной таблицы зависит от разнообразия значе- ний в колонке таблицы данных, для которой эта индексная таблица строится. Чем больше возможных значений и чем равномернее они представлены, тем эффективнее таблица. Структура SQL-запросов должна оптимизироваться с точки зрения быстроты формирования ответа на запрос. Существенен порядок задаваемых условий выборки. Итого взаимосвязанные объекты оптимизации: таблицы данных; индексные таблицы; запросы к базе данных. Перед проектированием базы данных выясняется совокупность возможных запросов к ней. Сложные запросы к БД должны созаваться разработчиком базы данных, а не прикладными программистами, пишущими программы для работы с этой БД. Обычно чем меньше требуется памяти для обработки запроса к БД, тем быстрее формируется ответ на запрос. Уменьшению потребления памяти способствует снижение избыточности данных. Существуют программные средства, поддерживающие разработку структуры БД, а также средства, анализирующие выполнение запросов к БД и позволяющие находить способы уменьшения времени, требуемо- го для формирования ответов на запросы.

Возврат на главную страницу