Практическое задание на тему: База данных «Компьютерный магазин»

Автор работы: Пользователь скрыл имя, 04 Апреля 2010 в 13:59, Не определен

Описание работы

введение 4
1 оптимизация программ 5
1.1 назначение и цели оптимизации 5
1.2 промежуточный язык 5
1.3 блок (линейный участок) 7
1.4 сильно связная область 8
1.5 способы оптимизации 8
1.6 разгрузка участков повторяемости 9
1.7 сдвиг инвариантных операторов 10
1.8 вставка псевдоблока 13
2 практическая часть 15
2.1 анализ существующих аналогов 15
2.2 обоснование выбора темы 17
2.3 краткий обзор среды разработки access 18
2.4 краткий обзор среды разработки delphi 7 29
2.5 руководство по написанию программы 33
2.6 руководство пользователя 38
заключение 42
список литературы 43

Файлы: 1 файл

курсовая работа Сахаров Андрей ПО-2-06 ТРПП.docx

— 1.36 Мб (Скачать файл)

    Министерство  образования и науки Российской Федерации

    Челябинский юридический колледж

    Отделение права и ИТ

    Кафедра «Информатики и ВТ» 
 
 
 
 

    Курсовая  работа

    по  дисциплине

    «Технологии разработки программных продуктов»

    Вариант – 50

    Практическое  задание на тему:

    База данных «Компьютерный магазин»

 
 
 
 
 
    Работа  защищена с оценкой:

    ________________________

    «___» _____________ 2009 г

 
 
 
    Выполнил:_________________

    Студент Сахаров А.Н.

    «____»________________ 2009г.

    Проверил:__________________

    Преподаватель Соловьёва Л.В.

    «___» _________________ 2009г.

 
 
 
 
 

    Челябинск

    2009 

АННОТАЦИЯ

                Сахаров А.Н. Пояснительная записка к курсовой работе. Вариант – 50 . Практическое задание на тему: БД «Компьютерный магазин». Челябинск: ЧЮК, , 2009, (48 стр.). Библиография литературы наименований;

    В работе представлены вопросы:

    • Анализ существующих аналогов и обоснование выбора темы
  • Этапы создания программного продукта «База данных Компьютерный магазин»

    Первая глава содержит информацию о понятии “Оптимизация”

    Во второй главе рассмотрены программы, аналогичные разрабатываемой базе данных, проведен их анализ с указанием достоинств и недостатков. Так же рассматриваются все этапы разработки программного продукта с четким указанием, что было сделано на каждом этапе. А также и обоснование выбора темы и формирование технического задания. Вторая глава также содержит руководство пользователя. 

СОДЕРЖАНИЕ 

Оглавление

ВВЕДЕНИЕ 4

1 ОПТИМИЗАЦИЯ ПРОГРАММ 5

1.1 НАЗНАЧЕНИЕ И ЦЕЛИ  ОПТИМИЗАЦИИ 5

1.2 ПРОМЕЖУТОЧНЫЙ ЯЗЫК 5

1.3 БЛОК (ЛИНЕЙНЫЙ УЧАСТОК) 7

1.4 СИЛЬНО СВЯЗНАЯ ОБЛАСТЬ 8

1.5 СПОСОБЫ ОПТИМИЗАЦИИ 8

1.6 РАЗГРУЗКА УЧАСТКОВ ПОВТОРЯЕМОСТИ 9

1.7 СДВИГ ИНВАРИАНТНЫХ ОПЕРАТОРОВ 10

1.8 ВСТАВКА ПСЕВДОБЛОКА 13

2 ПРАКТИЧЕСКАЯ ЧАСТЬ 15

2.1 АНАЛИЗ СУЩЕСТВУЮЩИХ АНАЛОГОВ 15

2.2 ОБОСНОВАНИЕ ВЫБОРА  ТЕМЫ 17

2.3 КРАТКИЙ ОБЗОР  СРЕДЫ РАЗРАБОТКИ  ACCESS 18

2.4 КРАТКИЙ ОБЗОР  СРЕДЫ РАЗРАБОТКИ  DELPHI 7 29

2.5 РУКОВОДСТВО ПО  НАПИСАНИЮ ПРОГРАММЫ 33

2.6 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 38

ЗАКЛЮЧЕНИЕ 42

СПИСОК  ЛИТЕРАТУРЫ 43 

 

ВВЕДЕНИЕ

    Несмотря  на все более широкое распространение  языков программирования и интегрированных  сред программирования, оптимизация программ остается актуальной темой дискуссий для программистов.

    Всегда  желательно иметь компилятор, который создает эффективно - работающие объектные программы. Как правило, программа в кодах машины, полученная в результате трансляции, будет занимать больший объем памяти и работать медленнее, чем такая же программа, написанная опытным программистом. Термин "оптимизация" применяется к попыткам сделать выходные программы более "эффективными", т.е. быстрее работающими или более компактными. Таким образом, оптимизацией называется улучшение выходной программы, а часть транслятора, выполняющая эту функцию - оптимизирующей частью транслятора.

    Если  вы пришли к выводу, что ваша программа  работает недостаточно быстро, первое, что надо сделать, - это убедиться, что вы решаете задачу, пользуясь  наилучшими алгоритмами и представлениями  данных. Замена примитивного или неадекватного  алгоритма более подходящим может  ускорить выполнение вашей программы  на порядок и более.

 

1 ОПТИМИЗАЦИЯ ПРОГРАММ

1.1 НАЗНАЧЕНИЕ И ЦЕЛИ ОПТИМИЗАЦИИ

 

    Оптимизирующая  часть выполняет следующие действия:

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

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

1.2 ПРОМЕЖУТОЧНЫЙ ЯЗЫК

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

    во-первых, единицы действия программы в кодах команд слишком мелки, что уже само по себе затрудняет анализ,

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

    в-третьих, из-за нестандартности форматов различных элементов языка и рекурсивных конструкций, широко применяемых в текстах программ.

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

    Строго сформулировать требования, предъявляемые к промежуточному языку, трудно. Однако уже из самого обоснования необходимости промежуточного языка видно, что:

  1. операторы языка не должны быть слишком мелкими;
  2. символы, идентификаторы и числа должны иметь фиксированный формат;
  3. в строении операторов желательно отсутствие рекурсивности;
  4. должна сохраняться вся  информация, необходимая для оптимизации, которая есть во входном языке;
  5. язык должен быть приспособлен к выполнению оптимизирующих преобразований и удобен для последующей трансляции в коды вычислительной машины.

    Требования. "4" и "5" показывают, что разработать единый универсальный промежуточный язык для трансляции с любого языка программирования в коды любой вычислительной машины трудно. В качестве промежуточного языка можно использовать польскую запись, триады, синтаксические деревья.

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

    Необходимо  различать переменные,  введенные  программистом (программные переменные), и переменные, генерируемые в процессе трансляции на промежуточный язык (mi - идентификаторы). Между определением программной переменной и ее использованием в качестве операнда существует следующая зависимость:

    - если программная переменная, используемая  в области, не определена в ней, то предполагается, что она определена  во всех путях, ведущих к области;

    - если программная переменная  определена и используется в

области, то внутри области существует путь между  определением

переменной  и каждым ее использованием;

    - если программная переменная определена в области, то, вообще говоря, это не значит, что она определена на каждом выходном пути.

1.3 БЛОК

    Вопросы оптимизации обычно связаны с топологией программы, т.е. со способом ее построения. Для того, чтобы локализовать процессы оптимизации и не связывать их с конкретным входным языком, они проводятся внутри отдельных участков программы, называемых блоками и сильно связанными областями.

    Блок (линейный участок) - выполняемая по порядку последовательность операторов, имеющая единственную точку входа - первый оператор с меткой, на который может быть передано управление, и единственную точку выхода - последний оператор.

    Блок  моделирует часть программы на промежуточном языке, которая содержит операторы присваивания.

    Формально модель линейного участка может быть представлена следующим образом:

    Блок B - это тройка вида (P,I,U),где

  1. P - список операторов S1,S2,...Sn (n>=0),
  2. I - множество входных переменных,
  3. U - множество выходных переменных.

    Оператор S в программе называется входом в линейный участок, если он либо первый оператор в программе, либо помечен идентификатором, появляющимся в операторе перехода, либо непосредственно следует за условным оператором.

    Линейный  участок, относящийся к входу в участок S, состоит из S и всех операторов, следующих за ним вплоть до оператора останова, включая его, или вплоть до входа в следующий блок.

1.4 СИЛЬНО СВЯЗНАЯ ОБЛАСТЬ

    Для каждого  блока B=(P,I,U) можно найти ориентированный ациклический граф , представляющий этот блок. При этом каждый лист  графа (концевая вершина) соответствует одной входной переменной в I, а каждая его внутренняя вершина - оператору  из P. Граф отражает порядок выполнения операторов программы и дает более наглядное представление, чем линейная последовательность операторов.

    Если  вершины i и j графа соответствуют участкам i и j программы, то дуга идет из i в j, если:

Информация о работе Практическое задание на тему: База данных «Компьютерный магазин»