Учебно-методическое пособие Краснодар




НазваниеУчебно-методическое пособие Краснодар
страница1/24
Дата публикации09.11.2013
Размер1.58 Mb.
ТипУчебно-методическое пособие
uchebilka.ru > Информатика > Учебно-методическое пособие
  1   2   3   4   5   6   7   8   9   ...   24


Кубанский государственный университет

Системный подход

в программировании и

построении моделей приложений

Учебно-методическое пособие





Краснодар


© 2000

АННОТАЦИЯ




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



Баянов Дмитрий Александрович, …


Учебно-методическое пособие "Системный подход в программировании и построении моделей приложений"
Работа выполнена при поддержке гранта REC-004 Американского фонда гражданских исследований и развития для независимых государств бывшего Советского Союза.

Все приведенные в работе решения являются интеллектуальной собственностью автора.

Home page: dbrad32.newmail.ru, e-mail: dbrad32@newmail.ru

© 2000, Дмитрий.Баянов

DBRAD32®

Содержание




Введение …………………………………...……………………………………

5

1. Определение технологии системного программирования ……………

7

2. Обсуждение общих методов построения приложений …………………




10

2.1. Категории приложений …………………………………………………….
10

2.2. Что есть приложение ? ……………………………………………………..

10
2.3. Системное меню ………………………………………………………
12
2.4. Системный интерфейс …………………………………………………..
12
2.5. Системные функции ……………………………………………………….
13
2.6. Отчеты ………...…………………………………………………………….
14
2.7. Предметная структура данных ……………………………………………
15
2.8. Предметный интерфейс ……………………………………………………
15
2.9. Инструмент для разработки, его выбор …………………………………..
15
2.10. Корректирующие технологии для инструмента ………………………..
16
2.11. Массивы …………………………………………………………………...
16
2.12. Организация пространственных измерений данных…...……………….
17

2.13. Использование физических моделей ……………..…………………….

18
2.14. Использование классов …………………………………………………..
18

2.15. Использование внешних компонент (OLE, Active-X, COM, …) ………

19

2.16. Использование SQL ……………………………………………………....

20
2.17. Модальные и немодальные окна ………………………………………...
21
2.18. Каждый должен делать то, что умеет делать лучше …………………...
21
2.19. Границы теории и практики в разработке ………………………………
22
2.20. Проблема удержания проекта под контролем …………………………..
23
2.21. Версионность ……………………………………………………………...
24
2.22. Конверторы совместимости версий ……………………………………..
24
2.23. Поддержка изменения структур данных ………………………………..
25
2.24. Системная обработка ошибок ……………………………………………
25

2.25. Методика поиска и отладки ошибок …………………………………….

25
2.26. Работа над проектом в группе …………………………………………...
26
2.27. Системные журналы ……………………………………………………...
26
2.28. В каком виде распространять приложение ……………………………...
27
2.29. Оформление текста кодов программ …………………………………….
27
2.30. Использование чужих авторских компонент …………………………...
28
2.31. Авторская регистрация программ ……………………………………….
28







3. Примеры системного решения частных задач ………………………….


29

3.1. Создание класса Trigger button - Триггерная кнопка …………………….

29

3.2. Создание класса Ticker - Управляющий ползунок ScrollBar ……………

31

3.3. Функции работы с массивами ……………………………………………..

39

3.4. Классы универсального поиска …………………………………………...

40

3.5. Позиционирование на запись таблицы ……………………….…………..

40

3.6. Получение значения уникального идентификатора GUID (первичного ключа записи) ..……………………………………………………………...


41

3.7. Организация выделенных (подсвеченных) записей в таблице ………….

45

3.8. Быстрое выделение (поиск) записей в таблице …………………………..

46

3.9. Вычисление логического номера записи …………………………………

46

3.10. Нормализация индекса ……………………………………………..…….

47

3.11. Функция упорядочивания по убыванию ………………………….…….

48

3.12. Масштабируемое изменение размеров окна с его объектами …………

48

3.13. Проблема унификации сетевого пути …………………………………...

50

3.14. Блокированные файлы и терминирование программы ………………...

51

3.15. Нелимитированная по длине макроподстановка ……...………………..

51

3.16. Вычисляемый макрос в тексте …………………………………………...

52

3.17. Работа с текстами через массив ………………………………………….

53

3.18. Рекурсивный интерпретатор конструкции If_ElseIf_Else_Endif ………

55

3.19. Рекурсивный интерпретатор макропроцедур с поддержкой DoWhile_EndDo и If_ElseIf_Else_Endif…………………………………


58

3.20. Организация стека истории ключей и его хранение …………………..

63

3.21. Имитация технологии электронной таблицы …………………………...

64

3.22. Редактирование буферной SQL выборки из большой таблицы ………

65

3.23. Многопользовательские семафорные блокировки ……………………..

68

3.24. Задержка достоверности разделяемых данных …………………………

75

3.25. Построение трехмерной перекрестной таблицы ………………………..

76







^ 4. Пример разработки большого универсального системного проекта ..


81

4.1. Построение расширенного словаря базы данных ...……………………...

81

4.2. Оптимальный состав компонент базового исполняющего ядра ...……...

82

4.3 Создание оптимального набора визуальных компонент редактирования данных БД .……………………….…………………………………………


82

4.4. Определение многофункционального табличного интерфейса для типовой работы с данными БД ….……………..…………………………..


83

4.5. Модель защиты от несанкционированного использования и распространения элементов ИС ……...…………...……………………….


84

4.6. Решение задачи системного построения надежного первичного ключа – глобального уникального идентификатора GUID ...……………………


84

4.7. Создание логических семафорных блокировок для многоуровневого регулирования доступа к разделяемым объектам сетевых ресурсов …...


88

4.8. Создание универсального генератора аналитических отчетов …………

94

4.9. Решение задачи программной генерации документов MS-WORD из внешнего приложения и задачи слияния RTF-документов в объединенный документ ….……………………………………………......



107

Введение



Данная работа ставит своей целью совершенствовать технологию принятия правильных технических решений при компьютерном программировании и построении моделей в информационных технологиях. Каждый вид такой технологии характеризуется своим методологическим подходом и реализуется набором специфичных методов. Системный подход и его методы в настоящем контексте рассматривается как альтернатива традиционному, так называемому процедурному подходу. И системный, и процедурный подходы в принятии решений широко используются во всех сферах жизнедеятельности человека – в политике, экономике, технике и в компьютерном программировании. Использование системного подхода в целях программирования мы также будет называть системным программированием, а процедурного – процедурным программированием. Процедурное программирование можно отождествить с методом, позволяющим быстро решить тактическую задачу сегодняшнего дня, не тратя ни цента на поддержку задач, могущих возникнуть завтра. То есть, это способ прямого, прагматичного решения вставших проблем, решения проблем по “мере их поступления” путем составления технической процедуры принятия решения исключительно в рамках данной проблемы. Отрицательные стороны процедурного подхода в некоторой степени можно увидеть в старой известной притче о слоне и слепцах, которые, кто держась за хобот, кто за хвост, а кто за ногу, выносили суждение о том, с чем они имеют дело – со столбом, веревкой и т.д. Решение проблем по мере их поступления в таком контексте можно сравнить с неожиданным явлением из тумана то головы слона, то хобота, то хвоста, но не видеть его целиком как единый объект. Отдельные признаки такого “слона” мы можем наблюдать в виде широко распространенной народной операционной системы. Нефундаментальное ограниченное решение некоторых технических проблем в ней привело к нарушению целостности модели целиком, к появлению т.н. service packs, patches – заплаток, устраняющих программные конфликты между процедурными модулями. В русском языке такому сооружению можно вспомнить эквивалент – “тришкин кафтан”. Использование такого подход находит все большее применение в некоторых направлениях вследствие своей относительной эффективности и дешевизны как в технологически развитых странах, как США, так в последнее время - и в России. Однако, исторически российскому менталитету ближе был другой подход – системный. Русский ремесленник, уж если строил что-либо, к примеру, -изготавливал шкатулку или лавку, то лаком крыл ее не только снаружи, но и изнутри/снизу, несмотря на то, что эти места недоступны взору, – считалось, что так было правильнее, хотя и хлопотнее. Содержание системного особенно заметно в фундаментальных науках, и именно потому, что системный подход является фундаментальным, методологическим, и правильным, а процедурный - нет. Системную схему можно сравнить с голограммой, в которой каждый элементарный участок содержит информацию о всем изображении в целом, только более или менее расплывчато, в зависимости от размера этого участка. Процедурный специалист является профессионалом в своей узкой области, но он практически не осведомлен в областях за пределами, смежными с его специализации. Такие различия легко наблюдаемы на рынке специалистов в России и США. Россия богата широкопрофильными универсалами, а США – в основном узкими специалистами. Универсала процедурно организованная фирма не может использовать системно целиком, а лишь в рамках одной из его специальности . Понятно, что в рамках жесткой рентабельности и конкуренции процедурный подход является экономически привлекательнее.

Широко развитая инфраструктура “персональных” программных продуктов имеет сравнительно молодой возраст – около 20 лет. И, постепенно накапливаясь, отрицательные последствия процедурного программирования только начали проявляться. Хотя еще 20 лет назад, до появления ПК, вычислительная техника и программы были уделом специалистов, существование которых было заметно только по выбросам рулонов перфолент и колод перфокарт. В это время программирование было практически полностью системным. Память и файловая структура операционной системы была защищена на системном (в смысле ОС) уровне, появление вирусов в принципе было невозможно. Файл, кроме имени и расширения, имел номер версии. Правильное приложения к выпуску в свет должно было быть переписано на быстрые компактные языки – ассемблер или C. Операционная система на 10 Мб диске могла надежно работать без перезагрузки месяцами, ухитряясь в 128 кб оперативной памяти разместить 20 пользователей и процессы в настоящем реальном времени. Ситуация изменилась, когда ЭВМ превратилась в персональный прибор. ПК стал разновидностью бытового электроприбора, вроде телевизора или магнитофона. Программировать на ПК стали широчайшие массы, не обязательно имеющие специальное образование. Их стремления выражались в получении быстрого и немедленного результата, желательно в цвете, графике и звуке. С одной стороны, это подтолкнуло развитие аппаратуры и средств мультимедиа, с другой – сильнее приблизило ПК к “навороченной” игрушке, чем к инструменту. Понятие “программист” стало очень широким и размытым. Ранее учебный и не очень серьезный язык Бэйсик сейчас превратился в рабочий инструмент Visual Basic компании Microsoft – на нем выпускается масса серьезных модулей со "страшными" аббревиатурами – OLE, COM, DCOM и пр. Использование Basic и ему подобных “рыхлых” продуктов привело к катастрофическому увеличению размеров файлов и замедлению в работе, однако эти проблемы рекомендовано устранять просто и процедурно – увеличивать объем RAM, HDD и быстродействие CPU за счет потребителя. Расчетная математическая задача на языке Fortran работает медленнее на Pentium-500mHz, чем на древней IBM–10mHz ! Компенсирование роста сложности информационных продуктов за счет роста производительности аппаратных средств может зайти в тупик, когда аппаратура приблизится к пределу возможностей используемых оптических, электромагнитных и других физических эффектов.

Очевидно, что создать крупную и сложную систему надежнее и правильнее, не используя процедурное программирование. Такие примеры широко известны – это классические ОС класса Unix, OC Mac, продукты Sun Microsystems, Digital Equipment, продукты японского, китайского, и, как ни странно, программы российского производства.

Технология профессиональной разработки надежных и качественных технических решений невозможна без техники системного програмирования. Методы и собственный стиль такого программирования можно выработать эмпирически, в процессе многолетнего творчества. Однако, некоторые навыки развития системного мышления в разработке можно попробовать получить и на практических примерах. Главное в системном подходе не “знать что”, а “понимать как”, так как “знать что” непрерывно меняется, и особенно стремительно в информатике, а “понимать как” - поможет в любой ситуации, даже не связанной с техникой.

  1   2   3   4   5   6   7   8   9   ...   24

Добавить документ в свой блог или на сайт

Похожие:

Учебно-методическое пособие Краснодар iconУчебно-методическое пособие по патофизиологии для студентов ІІІ курса...
Учебно-методическое пособие утверждено на учебно-методическом заседании кафедры патофизиологии (протокол №9 от 30. 12. 11г)

Учебно-методическое пособие Краснодар iconУчебно-методическое пособие казань
Социальная работа : курсовое и дипломное проектирование : учебно-методическое пособие / А. В. Морозов. – Казань : Изд-во Казан гос...

Учебно-методическое пособие Краснодар iconУчебно-методическое пособие по курсу экономико-математические
Алесинская Т. В., Сербин В. Д., Катаев А. В. Учебно-методическое пособие по курсу "Экономико-математические методы и модели. Линейное...

Учебно-методическое пособие Краснодар iconУчебно-методическое пособие (для студентов дневной формы обучения...
Учебно-методическое пособие предназначено для того, чтобы помочь студентам начать использовать современное программное обеспечение...

Учебно-методическое пособие Краснодар iconУчебно-методическое пособие по дисциплине «корпоративное управление»
Учебно-методическое пособие по дисциплине «Корпоративное управление» для студентов экономических специальностей дневной и заочной...

Учебно-методическое пособие Краснодар iconУчебно-методическое пособие для студентов-иностранцев
Основы русской фонетики в таблицах, комментариях, упражнениях : учебно-методическое пособие для студентов-иностранцев / сост.: Л....

Учебно-методическое пособие Краснодар iconЗиновьева Н. Б. Документоведение. Учебно- методическое пособие
Зиновьева Н. Б. Документоведение. Учебно-методическое пособие. М.: Профиздат, 2001. – 208 с

Учебно-методическое пособие Краснодар iconУчебно-методическое пособие по патофизиологии для студентов III курса...
...

Учебно-методическое пособие Краснодар iconКраткий курс лекций (учебно-методическое пособие для студентов строительных...
Мазур В. А. Металлические конструкции гражданских зданий и инженерных сооружений: Учебно-методическое пособие для студентов строительных...

Учебно-методическое пособие Краснодар iconВ. А. Федотова Психология деятельности и учебный менеджмент Учебно-методическое пособие
Федотова В. Л. Психология деятельности и учебный менеджмент: Учебно-методическое пособие. Под общей редакцией Узуновой Н. С. – Симферополь,...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<