Разработка проекта автоматизации риэлтерской деятельности

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 25.01.2010
Размер файла 3,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

Точно определив, какие именно данные вам нужны, каким образом они будут храниться в памяти и какая должна быть система доступа к данным, вы тем самым решили только вопрос управления данными. Кроме этого нужен еще простой способ автоматизации решения предстоящих типовых задач. Даже если вы можете разработать достаточно сложные «прикладные» электронные таблицы, у вас все равно не будет средств отладки и управления работой таких приложений, позволяющих легко создать, скажем, полные формы для заказов или систему учета материально-производственных запасов. Напротив, СУБД специально проектируются для создания приложений. Они представляют вам необходимый инструментарий для управления данными и их обработки, а также дают возможность каталогизировать объекты приложения и управлять взаимосвязями между ними. При этом вместе с СУБД в вашем распоряжении оказывается язык программирования и средство отладки.

В свете вышесказанного для автоматизации решения ваших задач вам необходимы мощная реляционная СУБД и система разработки приложений. Практически все существующие СУБД имеют средства разработки приложений, которые могут быть использованы программистами или квалифицированными пользователями при создании процедур для автоматизации управления и обработки данных. К сожалению, многие системы разработки приложений для создания процедур требуют знания некоторого языка программирования, например Си или Xbase. Несмотря на всю их силу и богатство средств, для успешного их использования от вас требуется наличие определенной профессиональной подготовки и опыта работы с ними. К счастью, имеются средства, позволяющие легко проектировать и создавать приложения для работы с базами данных без знания языка программирования. Работа в Microsoft Access начинается с определения реляционных таблиц и их полей, которые будут содержать данные. Сразу после этого вы с помощью форм, отчетов и макросов сможете определять действия над этими данными.

Формы и отчеты можно использовать для задания форматов вывода данных на экран и дополнительных вычислений, что очень похоже на работу с электронными таблицами. Но в этом случае содержащиеся в формах и отчетах форматы и инструкции по проведению вычислений отделены от данных (находящихся в таблицах), так что вы имеете полную свободу действий в использовании данных, не меняя при этом сами данные - достаточно создать дополнительную форму или отчет, использующие те же самые данные. Если вам нужно автоматизировать некоторые действия, то для установления связей между определенными формами и отчетами или для выполнения определенных действий в качестве отклика на некоторое событие (например, изменение данных в некотором поле формы) можно без особого труда создать макросы. Если нам нужны более изощренные средства, например библиотечные утилиты Windows, вы можете написать процедуру на Access Basic. Ниже приведен перечень основных причин, по которым переход к использованию в работе Access представляется целесообразным.

Причина 1.

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

Причина 2.

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

Причина 3.

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

Причина 4.

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

Microsoft Access, обладая всеми чертами классической СУБД, предоставляет и дополнительные возможности. Access - это не только мощная, гибкая и простая в использовании СУБД, но и система для разработки работающих с базами данных приложений. С помощью Access вы можете создать приложение, работающее в среде Windows и полностью соответствующее вашим потребностям по управлению данными. Используя запросы, вы можете выбирать и обрабатывать хранящуюся в таблицах информацию. Можно создавать формы для ввода, просмотра и обновления данных, а также использовать Access для создания как простых так и сложных отчетов. Формы и отчеты «наследуют» свойства базовой таблицы или запроса, так что в большинстве случаев вы указываете форматы, условия на значения и некоторые другие характеристики данных только один раз. К числу наиболее мощных средств Access относятся средства разработки объектов - Мастера, которые вы можете использовать для создания таблиц, запросов различных типов форм и отчетов, просто выбрав с помощью мыши нужные опции. Чтобы полностью автоматизировать работу вашего приложения, с помощью макросов Access вы легко свяжете данные с формами и отчетами. Вы можете создать большинство приложений, не написав ни единой строки программы, но если вам необходимо создать нечто уж совсем изощренное, то на этот случай Microsoft Access предоставляет мощный язык программирования - Microsoft Access Basic.

И наконец, все эти средства позволяют создавать приложения, работающие не только с базой данных Access, но и с другими наиболее распространенными базами данных. Ваше приложение может работать непосредственно с файлами dBASE, с базами данных Рагаdох, FохРго и любой базой данных, поддерживающей ОDВС. Вы сможете также легко импортировать данные из текстовых файлов, документов текстовых процессоров и электронных таблиц (и экспортировать данные в них).

Microsoft Access имеет множество областей применения: на малом предприятии; в работе по контракту, когда вы разрабатываете прикладные программы по заказу или выступаете в роли консультанта; в больших корпорациях, когда вы выступаете в роли координатора производственных информационных систем и даже в сфере домашнего применения.

2 Проектная часть

2.1 Информационное обеспечение задачи

2.1.1 Информационная модель и ее описание

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

Информационная модель имеет три области.

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

Область 2 описывает систему получения данных из базы данных.

В этой области пользователь получает такую информацию как.

Продажа/Покупка/обмен/найм/сдача в аренду недвижимости из таблиц:

§ Продать данные

§ Продать данные2

§ Дом

§ Обмен кВ

§ Малосемейка

§ Обмен дом/кВ

§ Обмен малосем

§ Покупка

§ Покупка2

§ Покуп Дом

§ Покуп малосем

Область 3 информационной модели описывает подсистему получения отчетов. В этой области в экранной форме получения отчетов пользователь задает условия формирования отчетов. В процессе получения отчетов используются клиентов, а результатом работы являются сформированные отчеты по клиентам предназначенные для руководителя.

Область 4 отображает подсистему бланков, таких как бланки заявлений на продажу покупку и т.д. и БСО.

Информационная модель приведена на рисунке 2.4.

Рисунок 1.3. Информационная модель.

2.1.2 Используемые классификаторы и системы кодирования

Исходя из задач поставленных перед нами при разработке данной АС из структуры информации и требований к данной АС применение классификаторов выглядит необоснованным и только перегрузит систему если они будут включены.

2.1.3 Характеристика первичных документов с нормативно-справочной и входной оперативной информации

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

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

Результатом ввода списка квартир в систему будет являться таблица квартир, которая в свою очередь выступает в качестве входных данных при подборе квартир для клиента. Такая же ситуация и со всеми остальными справочниками: обмена, клиентов, домов: все они должны быть предоставлены ответственному за введение информации в базу данных человеку руководством компании на бумажных носителях. Выходными данными являются соответствующие таблицы базы данных. Следует отметить, что таблицы справочников содержат в основном статичную информацию, т.е. не изменяющуюся со временем или изменяющуюся весьма редко. Исключение является справочник клиентов. Хотя новые договора со старыми клиентами заключается весьма не часто, что не требует частого добавления данных в справочник клиентов. Входными данными для заполнения справочника клиентов являются договора с клиентами на бумажных носителях, вводимых риэлтором проводящим сделку. Выходными данными как и в случае других справочников является заполненная таблица клиентов.

Для подсистемы составления аналитической отчетности входными данными являются записи в таблицах клиентов и всех таблицах связанных с недвижимостью.

Используя массив этих данных, с учетом условий на построение отчетов, наложенных пользователем система строит отчет, которые можно посмотреть на экране монитора или распечатать на принтере. Готовые отчеты и является выходными данными подсистемы аналитической отчетности и всей системы в целом.

Сводная таблица справочников показана далее

Полное наименование справочника

Краткое наименование

Субсправочник к

Ответственный

Частота актуализации

1

Продажа недвижимости

Продать данные 1

Риэлтор

По необходимости

2

Продажа недвижимости(доп)

Продать данные 2

№1

Риэлтор

По необходимости

3

Обмен квартир

Обмен кв

Риэлтор

По необходимости

4

Варианты обмена квартир

Обмен кв

№3

Риэлтор

По необходимости

5

Малосемейка

Малосеймейка

Риэлтор

По необходимости

6

Покупка недвижимости

Покупка

Риэлтор

По необходимости

7

Покупка недвижимости(доп)

Покупка 2

№6

Риэлтор

По необходимости

Характеристика базы данных

1.

2.

2.1.

2.1.1.

2.1.2.

2.1.3.

2.1.3.1. Характеристика инфологической модели БД

Инфологическая модель применяется после словесного описания предметной области.

Между сущностями могут быть установлены связи - бинарные ассоциации, показывающие, каким образом сущности соотносятся или взаимодействуют между собой. Связь может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь). Она показывает, как связаны экземпляры сущностей между собой. Если связь устанавливается между двумя сущностями, то она определяет взаимосвязь между экземплярами одной и другой сущности

Связи делятся на три типа по множественности: один-ко-одному (1:1), один-ко-многим (1:М), многие-ко-многим (М:М).

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

Связь один-ко-многим (1:М) означает, что один экземпляр сущности, расположенный слева по связи, может быть связан с несколькими экземплярами сущности, расположенными справа по связи.

Связь «многие-ко-многим (М:М) означает, что несколько экземпляров первой сущности могут быть связаны с несколькими экземплярами второй сущности, и наоборот. Между двумя сущностями может быть задано сколько угодно связей с разными смысловыми нагрузками.

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

Проведем инфологическое проектирование базы данных автоматизированной системы агентства недвижимости.

На основании анализа предметной области выделим сущности модели «сущность-связь» («Entity Relationship» - ER-модели) и изобразим их в виде диаграммы.

Рисунок 1.4. ER модель.

2.1.3.2. Характеристика даталогической модели БД

Вся информация, используемая при работе приложения хранится в базе данных.

В качестве настольной базы данных выбрана база данных формата MS ACCESS. То есть база данных является файлом на диске, в котором сосредоточены таблицы базы данных в виде файлов данных и индексов к ним.

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

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

Column(s) of "Вариант обмена кв" Table

Name

Datatype

Null Option

Is PK

Is FK

Код

AutoNumber

NULL

Yes

Yes

Варианты обмена

Text(255)

NULL

No

No

тип дома

Text(255)

NULL

No

No

тип квартиры

Text(255)

NULL

No

No

площадь общая

Long Integer

NULL

No

No

жилая площадь

Long Integer

NULL

No

No

площадь кухни

Long Integer

NULL

No

No

этаж

Text(255)

NULL

No

No

этажность

Text(255)

NULL

No

No

тип санузла

Text(255)

NULL

No

No

балкон

Text(255)

NULL

No

No

дополнительные свдения

Memo

NULL

No

No

Column(s) of "Дом" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

No

Адрес (Улица_ дом)

Memo

NULL

No

No

Площадь зем участка

Long Integer

NULL

No

No

материал дома

Text(255)

NULL

No

No

покрытие крыши

Text(255)

NULL

No

No

этажность дома

Text(255)

NULL

No

No

площадь общая

Long Integer

NULL

No

No

кол-во комнат

Text(255)

NULL

No

No

цена (тыс руб) до

Long Integer

NULL

No

No

коммуникации

Memo

NULL

No

No

дополнительные сведения

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

Column(s) of "Клиенты" Table

Name

Datatype

Null Option

Is PK

Is FK

Код

Text(18)

NULL

Yes

No

ФИО

Text(18)

NULL

No

No

Домащний телефон

Text(18)

NULL

No

No

Мобильный телефон

Text(18)

NULL

No

No

Адрес проживания

Text(18)

NULL

No

No

Признак имевщейся сделки

Text(18)

NULL

No

No

Подбробности сделки

Text(18)

NULL

No

No

Дополнительные данные

Text(18)

NULL

No

No

Column(s) of "малосемейка" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

No

адрес (улица_ дом)

Text(255)

NULL

No

No

тип дома

Text(255)

NULL

No

No

тип жилья

Text(255)

NULL

No

No

этаж

Text(255)

NULL

No

No

этажность

Text(255)

NULL

No

No

площадь общая

Long Integer

NULL

No

No

жилая площадь

Long Integer

NULL

No

No

цена (тыс руб) до

Long Integer

NULL

No

No

дополнительные сведения

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

Column(s) of "обмен Дом/кв" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

No

Адрес (Улица_ дом)

Memo

NULL

No

No

Площадь зем участка

Long Integer

NULL

No

No

материал дома

Text(255)

NULL

No

No

этажность дома

Text(255)

NULL

No

No

площадь общая

Long Integer

NULL

No

No

кол-во комнат

Text(255)

NULL

No

No

цена (тыс руб) до

Long Integer

NULL

No

No

коммуникации

Memo

NULL

No

No

дополнительные сведения

Memo

NULL

No

No

варианты обмена

Text(255)

NULL

No

No

условия

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

Column(s) of "обмен кв" Table

Name

Datatype

Null Option

Is PK

Is FK

Код

AutoNumber

NULL

Yes

No

категория квартир

Text(255)

NULL

No

No

Адрес (Улица_ дом)

Memo

NULL

No

No

тип дома

Text(255)

NULL

No

No

тип квартиры

Text(255)

NULL

No

No

этаж

Long Integer

NULL

No

No

этажность

Long Integer

NULL

No

No

площадь общая

Long Integer

NULL

No

No

жилая площадь

Long Integer

NULL

No

No

площадь кухни

Long Integer

NULL

No

No

тип санузла

Text(255)

NULL

No

No

балкон

Text(255)

NULL

No

No

дополнительные сведения

Memo

NULL

No

No

цена (тыс руб)

Long Integer

NULL

No

No

Варианты обмена

Text(255)

NULL

No

No

условие

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

Column(s) of "обмен малосем" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

No

адрес (улица_ дом)

Text(255)

NULL

No

No

тип дома

Text(255)

NULL

No

No

тип жилья

Text(255)

NULL

No

No

этаж

Text(255)

NULL

No

No

этажность

Text(255)

NULL

No

No

площадь общая

Long Integer

NULL

No

No

жилая площадь

Long Integer

NULL

No

No

цена (тыс руб) до

Long Integer

NULL

No

No

дополнительные сведения

Memo

NULL

No

No

варианты обмена

Text(255)

NULL

No

No

условие

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

Column(s) of "покуп Дом" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

No

Адрес (Улица_ дом)

Memo

NULL

No

No

Площадь зем участка

Long Integer

NULL

No

No

материал дома

Text(255)

NULL

No

No

покрытие крыши

Text(255)

NULL

No

No

этажность дома

Text(255)

NULL

No

No

площадь общая

Long Integer

NULL

No

No

кол-во комнат

Text(255)

NULL

No

No

цена (тыс руб) до

Long Integer

NULL

No

No

коммуникации

Memo

NULL

No

No

дополнительные сведения

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

Column(s) of "Покуп малосем" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

No

адрес (улица_ дом)

Text(255)

NULL

No

No

тип дома

Text(255)

NULL

No

No

тип жилья

Text(255)

NULL

No

No

этаж

Text(255)

NULL

No

No

этажность

Text(255)

NULL

No

No

площадь общая

Long Integer

NULL

No

No

жилая площадь

Long Integer

NULL

No

No

цена (тыс руб) до

Long Integer

NULL

No

No

дополнительные сведения

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

Column(s) of "покупка" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

No

категория квартир

Text(255)

NULL

No

No

Адрес (Улица_ дом)

Memo

NULL

No

No

тип дома

Text(255)

NULL

No

No

этаж

Long Integer

NULL

No

No

этажность

Long Integer

NULL

No

No

площадь общая

Long Integer

NULL

No

No

цена (тыс руб) до

Long Integer

NULL

No

No

Column(s) of "покупка2" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

Yes

тип квартиры

Text(255)

NULL

No

No

жилая площадь

Long Integer

NULL

No

No

площадь кухни

Long Integer

NULL

No

No

тип санузла

Text(255)

NULL

No

No

балкон

Text(255)

NULL

No

No

дополнительные сведения

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

Column(s) of "продать данные 1" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

No

категория квартир

Text(255)

NULL

No

No

Адрес (Улица_ дом)

Memo

NULL

No

No

тип дома

Text(255)

NULL

No

No

этаж

Long Integer

NULL

No

No

этажность

Long Integer

NULL

No

No

площадь общая

Long Integer

NULL

No

No

цена (тыс руб) до

Long Integer

NULL

No

No

Column(s) of "продать данные 2" Table

Name

Datatype

Null Option

Is PK

Is FK

код

AutoNumber

NULL

Yes

Yes

тип квартиры

Text(255)

NULL

No

No

жилая площадь

Long Integer

NULL

No

No

площадь кухни

Long Integer

NULL

No

No

тип санузла

Text(255)

NULL

No

No

балкон

Text(255)

NULL

No

No

дополнительные свдения

Memo

NULL

No

No

контактное лицо

Memo

NULL

No

No

контактный телефон

Text(255)

NULL

No

No

Web-адрес

Memo

NULL

No

No

2.2 Программное обеспечение задачи

2.2.1 Общие положения (дерево функций и сценарий диалога)

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

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

Первая группа экранных форм предоставляет пользователю доступ к подсистеме ведения справочников системы. Эта группа экранных форм вызывается из главного меню программы «Справочники». Каждый подпункт этого пункта меню соответствует вызову экранной формы, которая позволяет редактировать соответствующий справочник.

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

Далее представлен сценарий диалога.

Далее представлено дерево функций.

2.2.2 Структурная схема проекта

На рисунке 2.14 приведена структурная схема проекта.

Рисунок 2.1. Схема вызова модулей.

2.2.3 Описание программных модулей

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

Для реализации каждой подзадачи в проекте были созданы несколько классов, наследников стандартного класса библиотеки VCL TForm.

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

Модуль главной формы приложения предоставляет пользователю интерфейс доступа ко всем основным функциям программы. Доступ ко всем функциям программы осуществляется через главное меню и панель кнопок быстрого доступа. Все кнопки и пункты меню снабжены подробными подсказками.

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

В подсистему ведения справочников входят следующие модули:

Модуль просмотра списка товаров предназначен для просмотра списка номенклатуры, а также для выбора товара в какую-либо вызывающую форму;

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

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

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

Модуль редактирования проекта предназначен для редактирования данных одного конкретного проекта и задания свойств проекта для этого проекта;

Модуль свойств проекта предназначен для ведения списка свойств проекта;

Модуль редактирования свойства проекта предназначен для редактирования данных одного конкретного свойства;

Модуль клиентов предназначен для просмотра и редактирования списка клиентов, включая редактирование всех данных клиента, а также для выбора клиентов в вызывающую форму;

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

Модуль свойств товаров предназначен для просмотра списка свойств товаров;

Модуль редактирования свойств товаров предназначен для редактирования данных оного конкретного свойства товаров и для задания всех возможных значений этого свойства;

Модуль значений свойств предназначен для просмотра и редактирования значений свойств товаров

Модуль складов предназначен для просмотра списка складов и выбора складов в вызывающую форму;

Модуль редактирования складов предназначен для редактирования данных конкретного склада;

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

Модуль журнала документов содержит список операций, которые записаны в таблицу операций базы данных;

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

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

Подсистема аналитической отчетности включает в себя следующие модули:

Модуль составления отчета по остаткам товаров на складах;

Модуль составления отчета по движениям товара по складам.

В визуальной интегрированной среде разработки Borland С++ Builder основной составной частью программы является форма. Форма инкапсулирует в себе элементы интерфейса пользователя и программный код, заключающий в себе реакцию на действия пользователя. Это полностью отвечает принципам объектно-ориентированного программирования. C++ Builder автоматически создает для формы класс формы, который содержит компоненты, размещенные на форме, свойства и методы формы как автоматически создаваемые C++ Builder, так и определяемые пользователем. В разработанном приложении определены следующие формы:

· Форма Fmain - главная форма приложения, реализованная в файле UnitMain.cpp выполняет функции основного интерфейса доступа пользователя ко всем функциям программы через главное меню приложения и панель кнопок быстрого доступа. Кроме того, главная форма выполняет роль контейнера всех остальных форм, в которых происходит ввод и обработка данных.

· Форма FTovar, реализованная в файле UnitTovar.cpp, выполняет функции просмотра списка товаров, введенных в таблицу товаров базы данных системы. Главным элементом формы является компонент DBGrid палитры компонентов C++ Builder, который отображает таблицу товаров в виде списка. Колонки компонента DBGrid отображают соответствующие поля таблицы товаров: наименование, англоязычное наименование, штрихкод и производитель. Эта же форма служит для выбора товара в случае вызова этой формы из других форм для выбора того или иного товара например в форму отчета по остаткам.

· Форма FTovarEdit, реализованная в файле UnitTovarEdit.cpp, предназначена для просмотра и редактирования данных о товаре. В этой форме расположены органы управления, в которых отображаются основные данные товара, такие как наименование, англоязычное наименование, подробное описание, синонимы, штрих-код и цена и производитель. Отметим, что производитель выбирается путем открытия формы производителей и выбора его из предлагаемого списка. Кроме основных данных в форме редактирования товара отображаются и данные связанных справочников, записи, которых связаны с данным товаром: аналоги, проекты, к которым относится товар и свойства этого товара с их значениями. Отображении данных связанных справочников в одной форме очень удобно, так как все необходимые данные о товаре находятся вместе. Их можно просмотреть и отредактировать.

· Форма FormClients, реализованная в файле FormClientsU.cpp, предназначена для просмотре и редактирования данных о контрагентах системы: поставщиках и покупателях. Форма построена таким образом, что позволяет просматривать в левой своей части список покупателей, а в правой подробные данные о текущем покупателе. В списке выводится только наименование покупателя из поля наименования таблицы базы данных, в органах управления в правой части выводятся данные из всех остальных полей. Такой подход весьма удобен, так как позволяет просматривать и редактировать полные данные о клиенте в одной форме. Кнопки «Добавить», «Сохранить» и «Удалить» вызывают процедуры, выполняющие SQL-запросы на добавление, изменение и удаление записей из базы данных.

· Форма FormVendirs, реализованная в файле FormVendirsU.cpp, предназначена для просмотре и редактирования данных о производителях товаров. Форма построена таким образом, что позволяет просматривать в левой своей части список производителей , а в правой подробные данные о текущем производителе. В списке выводится только наименование производителя из поля наименования таблицы базы данных, в органах управления в правой части выводятся данные из всех остальных полей. Такой подход весьма удобен, так как позволяет просматривать и редактировать полные данные о производителе в одной форме. Кнопки «Добавить», «Сохранить» и «Удалить» вызывают процедуры, выполняющие SQL-запросы на добавление, изменение и удаление записей из базы данных.

· Форма FProj, реализованная в файле FProjU.cpp, выполняет функции просмотра списка проектов, введенных в таблицу проектов базы данных системы. Главным элементом формы является компонент DBGrid палитры компонентов C++ Builder, который отображает таблицу проектов в виде списка. Колонки компонента DBGrid отображают только поле «Наименование» таблицы проектов. Эта же форма служит для выбора проекта в случае вызова этой формы из других форм для выбора того или иного проекта например в форму редактирования данных о товаре.

· Форма FProjEdit, реализованная в файле UnitProjEdit.cpp, предназначена для просмотра и редактирования полных данных проекта, а также для назначения проекту свойств проекта. В левой части формы в соответствующих органах управления отображаются все данные проекта из таблицы проектов: наименование, подробное наименовании и подробное описание, а в левой части располагается список свойств этого проекта. По кнопке «Добавить свойство» открывается форма для выбора справочника свойств проектов, которая позволяет выбрать и назначить проекту свойство. Удаление свойства из списка свойств проекта происходит при нажатии кнопки «Удалить свойство».

· Форма FSimp, реализованная в файле UnitSimp.cpp предназначена для просмотра списка свойств проектов, которые дополнительно характеризуют проект.

· Форма FSimpEdit предназначена для просмотра и редактирование одного конкретного свойства проекта, которое выбрали для редактирования. Форма позволяет задать основные и дополнительные данные свойства проекта.

· Форма FProperty, реализованная в файле UnitProperty.cpp, представляет из себя список свойств товаров. В этой форме присутствует лишь список наименований свойств, который пользователь может просмотреть и выбрать одно из этих свойств в вызывающую форму, если форма была открыта для выбора свойства из какой-либо другой формы.

· Форма FPropertyEdit, реализованная в файле UnitPropertyEdit.cpp предназанчена для редактирования наименования свойства и подробного описания свойства товара, а также для задания значений свойства товаров в списке в правой части формы. Кнопки управления списком позволяют открыть форму значений свойств для выбора значения свойства. Которое может быть назначено данному свойству, а также для редактирования значения свойства, удалить значение свойства.

· Форма FSklad, реализованная в файле UnitSklad.cpp предназначена для просмотра списка складов, в котором представлены наименования складов. Эта же форма позволяет выбирать текущую запись склада в вызывающую форму

· Форма FSkladEdit, реализованная в файле UnitSkladEdit.cpp предназначена для просмотра подробных данных и редактирования как наименования, так и дополнительных данных склада.

· Форма FVals, реализованная в файле UnitVals.cpp предназначена для выбора значения свойства для элемента справочника товаров и вызывается только из формы товаров. Форма значений свойств отображает список свйоств товаров либо полностью, либо только тех значений, которые подчитнены определенному свойству, которое можно выбрать нажав кнопку открытия для выбора формы свойств. После того как свойство выбрано в списке значений свойств отображаются только те значения, которое может принимать данное свойство.

· Форма FValsEdit, реализованная в файле UnitValsEdit.cpp предназначена для редактирования значения свойства товаров, путем задания его наименования и подробного описания.

· Форма FormFilter, реализованная в файле FormFilterU.cpp предназначена для решения задачи отбора товаров по совокупности их свойств. Для отбора могут использоваться как основные данные товара (наименование, англоязычное наименование, синонимы, полное наименование, подробное описание) так и связанные данные товара: аналогии и свойства товаров. Так как основные данные товара представляют из себя строковые значения, то форма предлагает пользователю организовать гибкий отбор по этим данным. Можно организовать отбор записей таблицы товары по точному совпадению на введенную фразу, по вхождению введенной фразы в поле отбора, по вхождению в поле отбора всех слов из введенной фразы в любой последовательности или по вхождению в поле отбора хотя бы одного из слов введенной фразы. Такой отбор можно организовать по любому из полей таблицы отбора. Кроме отбора по основным свойствам форма фильтра предоставляет возможность организовать отбор по проектам, которым относится товар. Для этого заполняется список проектов, записи в который добавляются путем выбора проектов из формы списка проекта, когда она открывается для выбора. Органы управления списка проектов позволяют добавлять в список записи, удалять записи из списка, отметить все записи или полностью очистить список. Все записи списка могут имеют отметку использования в отборе или не использования (галочку), сняв которую пользователь может исключить отбор по данному проекту. В результате в отбор записей справочника товаров попадут только те товары, которые относятся к перечисленным в списке проектам. Также в форме реализована отбор по свойствам товаров и их значениям. В список свойств товаров можно добавлять записи из справочника свойств путем открытия формы списка свойств для выбора и выбора из нее определенного свойства. Для текущей записи в списке свойств отображаются все значения, которое может принимать данное свойство из которых пользователь выбирает путем проставления в них отметок нужные. В результате в сформированный отбор попадут только те товары, которые имеют перечисленные в списке значения перечисленных свойств. Форма фильтра не вызывается из главного меню непосредственно, а вызывается только из формы списка товаров, в том числе, когда она открывается для выбора, в случае, если в этой форме нужно организовать отбор товаров по совокупности каких-либо критериев.

· Форма DM, реализованная в файле UnitDM.cpp представляет из себя модуль хранения компонентов С++ Builder, обеспечивающих доступ к базе данных. Для каждой таблицы базы данных выделен отдельный компонент TQuery, который позволяет вводить и выполнять SQL-запросы, которые позволяют выбирать, редактировать и удалять записи в таблицах базы данных. То что для каждой таблицы выделен лишь один компонент доступа и то что они все объединены в одном модуле связано с тем, что программа имеет MDI-интерфейс и изменении данных в одной форме приводит к моментальному изменению их отображения во всех остальных формах. Кроме компонентов доступа к данным в этой форме хранятся и компоненты, служащие источником данных для компонентов отображения данных в формах. Компонент Database обеспечивает физическую связь всех остальных компонентов программы с базой данных.

· Форма FJornal предназначена для просмотра журнала документов - т.е. перечня операций, которые уже были выполнены с товарами. В форме размещен компонент TDBGrid, который отображает список операций с указанием для каждой записи следующих параметров: дата операции, номер операции, склад, с которого оформлена операция, клиент, с которым оформлена операция.

· Форма FDocs предназначена для редактирования или ввода новой операции по движению товара на складе. В верхней части формы размещены компоненты, в которых отображаются основные свойства операции: дата и номер операции, клиент, склад и код операции. Для выбора клиента и склада открываются для выбора формы соответсвующих справочников, в которых можно выбрать нужную запись. В нижней половине формы размещена табличная часть операции, которая представляет из себя список товаров, с указанием количества.

· Форма FJornalEdit, реализованная в файле UnitJornalEdit.cpp предназначена для редактирования одной строки операции. Эта форма вызывается из формы FJornal для редактирования текущей строки. Форма предоставляет простой интерфейс для ввода и изменения товара и количества в строке. Для выбора товара вызывается форма списка справочника товаров, выбранная запись в которой переносится в форму FJornalEdit.

· Форма FUsers предназначена для ведения списка пользователей. В компоненте DBGrid данной формы при помощи SQL-запроса формируется список пользователей системы, а в органах управления отображаются свойства пользователя: логин, пароль, фамилия, имя отчество и категория пользователя. Категория пользователя отображается радиокнопками. При нажатии на кнопки управления выполняется SQL-запрос по добавлению, редактированию данных и удалению пользователя. При удалении пользователя контролируется ссылочная целостность базы данных

· Форма FReg предназначена для аутентификации пользователя при начале сеанса работы с системой. Система проверяет наличие пользователя в базе данных, сверяет его пароль и в случае успеха открывает доступ к тем функциям, которые доступны пользователю в зависимости от его уровня доступа.

· Форма FRepForm, реализованная в файле UnitRepForm.cpp предназначена для подготовки и формирования отчета по движения товара по складам. Органы управления этой формы позволяют пользователю задать условия формирования отчета, а именно выбрать клиента, с которым была проведена операция прихода или расхода, а также склад, с которого была проведена эта операция. В нижней части формы содержится таблица, в которую пользователь может выбрать несколько записей из справочника товаров, в этом случае отчет по движениям будет строиться именно по этим товарам.

Каждая форма выполняет функции соответствующего модуля при помощи компонентов среду С++ Builder, помещенных на форму из палитры компонентов. Среда быстрого создания приложений или RAD-среда (Rapid Application Development - RAD) С++ Builder используют библиотеку визуальных компонентов VCL (Visual Component Library - VCL), которая состоит из готовых к употреблению визуальных и не визуальных объектов и оболочек. Она позволяет с минимальными затратами создавать приложения, в то же время предоставляя определенную степень независимости от библиотеки VCL.

При работе с компонентами С++ Builder широко использует принцип повторного использования объектов. Компоненты являются экземплярами классов которые доступны с помощью палитры компонентов Component Palette. Что может быть проще при создании приложения чем просто опустить нужный компонент на форму, задав его свойства, затем определив обработчики событий. Именно при помощи компонентов формы выполняют те функции, которые заложены в них.

2.3 Технологическое обеспечение задачи

2.3.1 Организация технологии сбора, передачи, обработки и выдачи информации

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

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

Технология разработки сложных программных комплексов требует разбиения программного изделия на отдельные модули. При этом часто модули создаются независимо друг от друга разными программистами. Для объединения модулей в программный комплекс необходимо разработать правила вызова модулей и правила передачи параметров между отдельными модулями. Эти правила образуют внутри- программный интерфейс.

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

· анализ обрабатываемой информации и выбор логической организации данных;

· выбор абстрактных структур данных для представления информации в соответствии с используемым языком программирования равной логической организацией данных;

· выбор физической организации данных;

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

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

· Модуль - независимая программа, которая может вызываться операционной системой или другим программным модулем. Ссылки на модуль выполняются по имени модуля.

· Модуль должен возвращать управление тому модулю, который его вызвал.

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

· Модуль должен иметь ограниченные размеры. Это требование определяется тем, что каждый модуль организует отдельную, сравнительно небольшую функцию. Кроме того, текст модуля должен быть обозримым для облегчения его понимания и сопровождения.

· Работа модуля не должна зависеть от его предыдущих вызовов.

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

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

Наиболее широко распространенным подходом к проектированию является нисходящее программирование.

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

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

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

Эта детализация выполняется до тех пор, пока не будет достигнуто элементарное представление операции при реализации каждой из функций.

Нисходящее программирование позволяет создавать достаточно сложные программы.

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

2.3.2 Схемы технологического процесса сбора, передачи, обработки и выдачи информации

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

В первую очередь рассмотрим задачу ведения справочников, назовем ее А1. Для ее реализации менеджер по ведению каталогов сортирует данные, а затем вводит данные в соответствующие таблицы. Задача ввода данных может быть разбита на несколько этапов. Функционально-технологическая схема решения задачи А1 приведена на рисунке 2.13.

Рисунок 2.2. Функционально-технологическая схема задачи А1 «Ведение справочников»

Для каждого выделенного модуля разработана функционально-технологическая схема и детальный алгоритм ее кодирования. Блок-схема задачи А1 приведена на рисунке 2.14, а функционально-технологические схемы всех модулей задачи А1 - на рисунке 2.15.

Рисунок 2.3. схема решения задачи А1 «Ведение справочников»

Рисунок 2.4. Функционально-технологические схемы модулей задачи А1

Опишем подробнее полученные схемы.

Для модуля А1.1:

Процесс: Проверка и внесение данных о товаре.

Вход: информация о товаре.

Выход: сформированные данные о товаре в БД

Алгоритм:

· Проверка наличия данных о товаре в БД

· Если данные отсутствуют, то внести новую запись в БД

· Вывести данные о товаре на экран.

Для модуля А 1.2:

Процесс: Проверка и внесение данных о клиенте.

Вход: информация о клиенте.

Выход: сформированные данные о клиенте в БД

Алгоритм:

· Проверка наличия данных о клиенте в БД

· Если данные отсутствуют, то внести новую запись в БД

· Вывести данные о клиенте на экран.

Для модуля А 1.3:

Процесс: Проверка и внесение данных о свойстве товара.

Вход: информация о свойстве товаре.

Выход: сформированные данные о свойстве товара в БД

Алгоритм:

· Проверка наличия данных о свойстве товаре в БД

· Если данные отсутствуют, то внести новую запись в БД

· Вывести данные о свойстве товара на экран.

Для модуля А 1.4:

Процесс: Проверка и внесение данных о пользователе.

Вход: информация о пользователе.

Выход: сформированные данные о пользователе в БД

Алгоритм:

· Проверка наличия данных о пользователе в БД

· Если данные отсутствуют, то внести новую запись в БД

· Вывести данные о пользователе на экран.

Для модуля А 1.5:

Процесс: Проверка и внесение данных о проектах.

Вход: информация о проекте.

Выход: сформированные данные о проекте в БД

Алгоритм:

· Проверка наличия данных о проекте в БД

· Если данные отсутствуют, то внести новую запись в БД

· Вывести данные проекте на экран.

Для модуля А 1.6:

Процесс: Проверка и внесение данных о подразделении.

Вход: информация о подразделении.

Выход: сформированные данные о подразделении в БД


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.