Автоматизированная система складского учета в ЗАО "Белгородский бройлер"

Разработка программного комплекса автоматизации складского учета, предназначенного для розничных предприятий ЗАО "Белгородский бройлер": логическое, физическое проектирование, создание интерфейса пользователя на языке Delphi, расчет экономических затрат.

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

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

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

Оглавление

Введение

Глава 1: Выбор методологии разработки

Глава 2: Исследование

Глава 3: Проектирование

3.1 Платформа .NET

3.2. Обзор ASP.NET

3.2 Проектирование базы данных

3.2.1 Логическое проектирование

3.2.2 Физическое проектирование

Глава 4: Разработка

4.1 Borland Delphi 2005

4.2 Архитектура

4.3 HTML прототипы

4.4 Бизнес логика

4.5 Разработка интерфейса пользователя

Глава 5: Экономический эффект

5.1 План анализа экономической эффективности

5.2 Технико-экономическое обоснование разработки ПО

5.3 Расчет затрат на разработку ПО

5.4 Стоимость внедрения ПО Заказчиком

5.5 Расходы заказчика при эксплуатации ПО

5.6 Эффективность внедрения для Заказчика ПО

5.7 Правовые аспекты

Заключение

Список использованной литературы

Введение

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

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

В данной работе будут показаны преимущества разработки и внедрения собственного программного продукта в дополнение к имеющемуся типовому решению "1С Предприятие: Торговля и склад".

ЗАО "Белгородский бройлер" было основано в 2000 году. Цель деятельности компании - производство и реализация мяса птицы и сопутствующих товаров. В процессе своего роста, компания стала больше внимания уделять сбыту продукции конечному потребителю. Для этого за несколько лет была создана розничная сеть магазинов, специализирующихся на продаже продукции ЗАО "Белгородский бройлер" и сторонних компаний. Ассортимент продукции компании постоянно расширялся, поэтому и управлять товарно-материальными потоками становилось все сложнее и сложнее. Среди прочих проблем все острее вставал вопрос складского учёта - от производства продукции до ее реализации конечному потребителю.

В отделе сбыта и розничных продаж ЗАО "Белгородский бройлер" используется пакет программ "1С Предприятие". Пока количество филиалов (розничных магазинов) ограничивалось двумя и ассортимент продукции состоял из нескольких наименований особых проблем не было. Но с развитием филиальной сети магазинов (сейчас их семь) появились новые требования к ПО складского учета.

Рисунок 1

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

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

· низкая актуальность данных - обновление данных происходит не чаще 1 раза в день;

· двойной ввод данных - первый раз - при продаже\поступлении товара, второй раз - при учете этой же операции в системе "1С: Предприятие";

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

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

Рисунок 2

Новая модель позволит достигнуть основной бизнес цели, сформулированной менеджментом компании:

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

Для достижения этой цели необходимо:

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

· Увеличить скорость сбора данных о товарообороте;

· Создать единую картину товарооборота всех филиалов.

Также для компании немаловажным будет являться побочный эффект от проекта:

· Повышение имиджа компании как IT ориентированной.

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

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

По ряду причин для решения поставленных задач заказчику не подошло клиент-серверное решение в формате "1С: Предприятие":

· высокая стоимость решения при росте числа магазинов;

· высокие требования к каналам передачи данных;

· излишний функционал, приводящий к сложностям в восприятии системы рядовыми пользователями;

· отсутствие web-интерфейса.

Было решено, что разработка некоего простого (с точки зрения пользовательского интерфейса) и легкого (с точки зрения системных требований и требований к каналам связи) web-ориентированного приложения с функцией конвертации данных в "1С: Предприятие" будет лучшим решением сложившейся ситуации.

Глава 1: Выбор методологии разработки

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

Существует множество различных методологий. Среди них выделяют тяжеловесные и гибкие методологии. Для тяжеловесных методологий необходимо детальное планирование большого объема разработок, большой объем документации, и такой подход работает - однако до тех пор, пока не начнутся изменения. Следовательно, для этих методологий сопротивляться всяким изменениям совершенно естественно. Гибкие же методологии, напротив, изменения приветствуют. В отличие от тяжеловесных, они были задуманы как процессы, которые адаптируют изменения и только выигрывают от них, даже в том случае, когда изменения происходят в них самих. Наиболее известными и популярными гибкими методологиями в настоящее время является RUP (Rational Unified Process) и XP (eXtreme Programming).

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

У RUP и XP множество различий, но решающим фактором при выборе методологии стал подход к архитектуре проектируемых систем. RUP советует уделять внимание архитектуре во избежание рисков, связанных с превышением времени на разработку, излишним объемом проекта и введением новых технологий. В XP предполагается либо наличие архитектуры, либо архитектура настолько проста и понятна, что может быть выведена непосредственно из кода. XP советует не проектировать на будущее, а реализовывать то, что нужно сегодня. Предполагается, что будущее сможет позаботиться о себе само, если вы будете сохранять проект настолько простым, насколько это возможно. Если даже система или ее часть будут переписываться в будущем, XP отмечает, что это все равно лучше, и зачастую дешевле, чем планировать такую возможность изначально. Для некоторых систем это действительно так, и при использовании RUP рассмотрение риска во время проработки проекта может привести вас к такому выводу. RUP не считает это истинным для всех систем и, как показывает опыт больших, более сложных систем, этот фактор может оказаться катастрофическим.

Учитывая сложность разрабатываемой системы, а также требования к адаптивности, мы выбрали в качестве методологии разработки RUP. Создатели RUP определяют его как итеративный, архитектурно-ориентированный и управляемый прецедентами использования процесс разработки программного обеспечения [9]. Основа RUP: разработка концепции; управление по плану; снижение рисков и отслеживание их последствий; тщательная проверка экономического обоснования; использование компонентной архитектуры; прототипирование, инкрементное создание и тестирование продукта; регулярные оценки результатов; управление изменениями; создание продукта, пригодного к употреблению; адаптация RUP под нужды своего проекта.

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

· определение требований (Requirements);

· проектирование и анализ (Design & Analysis);

· разработка (Development);

· тестирование (Testing);

· развертывание и сопровождение (Deployment & Operations).

Каждый из этих этапов должен тщательно отслеживаться и контролироваться. Правильно организованная ALM-система позволяет:

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

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

· повысить производительность труда (разработчики получают возможность делиться передовым опытом разработки и внедрения);

· ускорить разработку благодаря интеграции инструментов;

· уменьшить затраты на сопровождение, постоянно поддерживая соответствие между приложением и его проектной документацией;

· получить максимальную отдачу от инвестиций в навыки, процессы и технологии.

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

Рис. 1.1 Этапы жизненного цикла ALM Borland

Реализация ALM-стратегии в исполнении Borland заключается в предоставлении комплекса взаимосвязанных инструментов для всех этапов жизненного цикла приложений, таких, как определение требований, анализ и проектирование, разработка, тестирование, развертывание и управление [13]. Этапы жизненного цикла изображены на рисунке 1.1. Данная стратегия компании Borland достаточно гибкая и адаптируются под любую методологию, в том числе и выбранную нами RUP. В рамках данной стратегии компания выпустила ряд продуктов, которые мы собираемся использовать в своей работе, главным преимуществом которых является тесная интеграция друг с другом:

· Borland CaliberRM 2005;

· Borland Together Designer 2005;

· Borland StartTeam 2005;

· Borland Delphi 2005.

Rational Unified Process (RUP) - одна из наиболее совершенных технологий, претендующих на роль мирового корпоративного стандарта. RUP в значительной степени соответствует стандартам и нормативным документам, связанным с процессами жизненного цикла ПО и оценкой технологической зрелости организаций-разработчиков (ISO 12207, ISO 9000, CMM и др.). Ее основными принципами являются:

1. Итерационный и инкрементный (наращиваемый) подход к созданию ПО.

2. Планирование и управление проектом на основе функциональных требований к системе - вариантов использования.

3. Построение системы на базе архитектуры ПО.

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

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

На рисунке 1.2 показано общее представление RUP в двух измерениях. Горизонтальное измерение представляет время, отражает динамические аспекты процессов и оперирует такими понятиями, как стадии, итерации и контрольные точки. Вертикальное измерение отражает статические аспекты процессов и оперирует такими понятиями, как виды деятельности (технологические операции), рабочие продукты, исполнители и дисциплины (технологические процессы).

Согласно RUP, жизненный цикл ПО разбивается на отдельные циклы, в каждом из которых создается новое поколение продукта [5]. Каждый цикл, в свою очередь, разбивается на четыре последовательные фазы, каждая из которых преследует свои цели:

· Фаза Исследование (inception), предназначена для создания модели предметной области;

· Фаза Проработка (elaboration), предназначена для создания базовой архитектуры;

· Создание (construction), преследует цель создания продукта путем последовательного выпуска версий с постепенно расширяющимися функциональными возможностями;

· Фаза Переходный период (transition), необходима для проверки готовности продукта к эксплуатации;

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

Рис. 1.2 Представление стадий и работ RUP

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

Статический аспект RUP представлен четырьмя основными элементами:

· роли;

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

· рабочие продукты;

· дисциплины.

Понятие "роль" (role) определяет поведение и ответственность личности или группы личностей, составляющих проектную команду. Одна личность может играть в проекте много различных ролей.

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

Дисциплина (discipline) соответствует понятию технологического процесса и представляет собой последовательность действий, приводящую к получению значимого результата.

В рамках RUP определены шесть основных дисциплин:

· построение бизнес-моделей;

· определение требований;

· анализ и проектирование;

· реализация;

· тестирование;

· развертывание.

и три вспомогательных:

· управление конфигурацией и изменениями;

· управление проектом;

· создание инфраструктуры.

RUP основывается на шести лучших практиках (best practices):

· Итеративная разработка;

· Управление требованиями;

· Использование модульных архитектур;

· Визуальное моделирование;

· Проверка качества;

· Отслеживание изменений.

Они не являются непосредственной частью RUP, но их рекомендуется соблюдать при настройке процесса.

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

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

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

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

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

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

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

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

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

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

Глава 2: Исследование

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

· выделяется предметная область действия системы, то есть определяются границы применения приложения и его взаимоотношение с другими системами;

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

· выявляются основные риски;

Фаза завершается формулировкой целей проекта.

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

Продавец - лицо, работающее на контрольно-кассовом аппарате.

Администратор - лицо, ведущее количественный учет товаров.

Менеджер - управляющий компанией.

Затем были выделены функции каждого пользователя:

Пользователь

Функция

Описание

Продавец

Авторизация

Вход в Систему по своему логину и паролю

Запрос помощи

Обращение к сетевому администратору в случае технических неполадок

Расход

Создание и изменение расходной накладной

Администратор

Авторизация

Вход в Систему по своему логину и паролю

Запрос помощи

Обращение к сетевому администратору в случае технических неполадок

Приход

Создание и изменение приходной накладной

Редактирование накладных

Управление уже сохранёнными расходными и приходными накладынми

Редактирование списка "Поставщики"

Редактирование списка "Каталог"

Редактирование списка "Магазины"

Менеджер

Авторизация

Вход в Систему по своему логину и паролю

Запрос помощи

Обращение к сетевому администратору в случае технических неполадок

Создание отчета об остатках

Просмотр количественной информации по остаткам на складах

Создание отчета об оборотах

Просмотр финансовой информации по оборотам компании

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

Глава 3: Проектирование

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

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

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

· сбор схем использования, покрывающих минимум 80% функциональных возможностей системы;

На этой фазе основное внимание уделяется этапам анализа и проектирования. На этапе анализа требования к приложению анализируются и формулируются на языке разработчиков. Этап "анализ" - промежуточный между сбором требований и проектированием приложения.

Принципиальное отличие RUP от многих других итеративных подходов состоит в большом внимании к разработке архитектуры системы. Архитектура в RUP включает в себя тип организации системы и используемые типовые решения. Кроме того, архитектура в RUP -- это еще и ключевая часть кода (обычно, до 20% общего объема), которая позволяет продемонстрировать соответствие системы основным функциональным и нефункциональным требованиям. Поэтому в RUP часто говорится о понятии "архитектурный каркас" [10]. Ориентация на архитектуру означает, что разработку программного обеспечения начинают с разработки архитектурного каркаса, а затем наращивают дополнительную функциональность, максимально используя отработанные при создании каркаса типовые решения. Это дает возможность использовать RUP для решения таких заведомо сложных задач, как разработка систем с использованием новых технологий (например, языков программирования или платформ), а также снижает трудоемкость разработки, позволяя избегать многократного решения схожих задач.

Основным инструментом разработчика на данном этапе выступает Together Designer 2005. Проектирование ведется на языке UML с использованием минимально необходимого набора диаграмм для упрощения дальнейшего процесса разработки, а именно: диаграмм классов, диаграмм последовательностей, диаграмм компонентов и диаграмм развертывания.

3.1 Платформа .NET

13 февраля 2002 года состоялся официальный старт новой платформы Microsoft .NET -- на грандиозной презентации в Сан-Франциско были представлены рабочие версии двух главных ее элементов: операционной среды .NET Framework и инструментального набора Visual Studio .NET. Что нового предлагают эти средства, что они сулят разработчикам и пользователям?

К сожалению, несмотря на обилие публикаций о данных продуктах, многое остается весьма туманным. Самое удивительное, что "дымовую завесу" активно поддерживает и сама Microsoft. Например, в официальном пресс-релизе по поводу выхода новинок написано, что это "краеугольные камни в реализации стратегии Microsoft в отношении XML Web Services". Хотя даже при поверхностном взгляде видно, что .NET Framework и VS.NET никак явно не связаны с этими сервисами.

Не говоря уже о том, что технология XML Web Services базируется на отрытых стандартах и является платформно-независимой. В этой связи представляется полезным внимательнее разобраться с архитектурными решениями, лежащими в основе одного из базовых элементов Microsoft .NET, -- операционной среды .NET Framework.

Новая операционная среда

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

Хотелось бы отметить, что термин "платформа" мы обычно применяем в двух разных смыслах. С одной стороны, это "концепция" (идеи, спецификации и т. д.), с другой -- набор вполне конкретных объектов (файлов, документации и пр.). Эта двойственность в полной мере относится к .NET Framework.

Рис. 1. Структурная схема .NET Framework

В настоящее время поставляется программный набор .NET Framework SDK 1.0, в который кроме собственно модулей операционной среды входят документация, а также ряд автономных компиляторов -- VB, C# (т. е. разработку простых .NET-приложений можно вести и без визуальной среды Visual Studio .NET). Пакет устанавливается поверх Windows NT 4.0, 2000 или XP в подкаталог WINNT\Microsoft.NET\Framework\ v1.0.XXX. Он распространяется бесплатно (его можно загрузить с Web-сайта Microsoft) или в составе VS.NET.

.NET Framework состоит из двух главных компонентов: библиотеки базовых классов и CLR (Common Language Runtime -- общая для языков среда исполнения NET-приложений), которые соответственно предназначены для решения следующих задач:

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

· повышения управляемости приложений с точки зрения безопасности и эффективного использования ресурсов.

В этой среде ведется разработка и исполнение программ. Главным инструментом создания приложений является конечно же Visual Studio .NET, в котором каждый из языков программирования взаимодействует с .NET Framework через общий интерфейс. В состав VS.NET входит несколько языков Microsoft, среди которых важнейшая роль отводится C/C++, C# и VB.

В саму среду разработки вошли средства, ранее реализованные в виде пакета Visual InterDev. VS.NET позволяет создавать .NET-приложения различных типов, но все они являются теми или иными модификациями трех базовых вариантов -- Console Application, Windows Application и Class Library.

Создание универсальной среды разработки и общих базовых функций предопределило то, что отныне все языки программирования Microsoft поставляются в виде единого пакета (например, отдельного продукта VB.NET уже нет). Кроме того, это сильно упрощает подключение к ней (в виде дополнительных модулей Add-Ins) других языков программирования. В настоящее время о создании таких средств (Cobol, Fortran, Perl и пр.) объявили многие разработчики. Кроме того, некоторые поставщики (в частности, Borland) предлагают собственные интегрированные средства программирования для .NET.

Представители Microsoft, сравнивая .NET с конкурирующей Java 2 Platform, часто подчеркивают, что корпорация вовсе не стремится доминировать в области языков программирования, предоставляя всем разработчикам равные возможности (прозрачный намек на Sun). В какой-то степени это справедливо (хотя "льготные" условия для Microsoft заложены в .NET изначально), но самое важное заключается совсем в другом: все независимые инструменты будут только в среде .NET Framework.

Библиотека базовых классов

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

Впрочем, говорить о разных наборах функций для различных языков в "до .NET-овские" времена можно с большой долей условности. Та же Microsoft для QuickBasic и QuickC использовала единые внутренние конструкции и библиотеки подпрограмм еще в конце 80-х годов. А компиляторы VB изначально были реализованы с помощью промежуточного кода на Си.

Такая унификация системы разработки автоматически нивелирует функциональные возможности разных языков, поэтому выбор инструмента в значительной степени зависит от пристрастия конкретного программиста к тому или иному синтаксису. Это сегодня особенно хорошо видно на примере VB.NET и C#. Однако тут стоит отметить, что Microsoft осталась верна принципу "разделяй и властвуй" -- в ее языках сохранены искусственные различия, предопределяющие необходимость применения различных средств для решения разных задач.

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

Кроме того, базовые функции перестали быть принадлежностью пользовательских приложений и превратились в неотъемлемый компонент операционной системы (ранее принадлежностью ОС были только API-функции).

Например, библиотеки MFC VC++ -- это набор статических объектных модулей, которые подключаются к приложению на этапе компоновки исполняемого модуля программы и становятся при этом его составной частью. А .NET Class Library -- динамические библиотеки классов, являющиеся компонентом .NET Framework.

Рис. 2. Состав библиотек базовых классов

О достоинствах применения объектных библиотек (LIB) и библиотек классов (DLL) отныне можно говорить лишь с точки зрения академического интереса. Ведь разработчики .NET лишены возможности выбора (за исключением тех, кто пишет на C/C++, которые занимают особое положение в средствах разработки .NET). Очевидно, что привязка прикладной программы к платформе .NET существенно возросла по сравнению с традиционной Windows.

Библиотека классов .NET реализована в виде набора DLL (сейчас их 20), имена которых начинаются с идентификатора System (рис. 2). Кстати, из рисунка хорошо видно, что за поддержку технологии Web Services отвечает лишь одна из DLL.

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

.NET и COM-объекты

Class Library -- лишь базовый набор функций, который можно расширять за счет дополнительных библиотек .NET-объектов, создаваемых независимыми разработчиками. В несколько упрощенной форме различие между системными и дополнительными библиотеками заключается в том, что первые автоматически доступны для приложений (как часть ОС!), а вторые нужно подключать индивидуально.

С точки зрения пользователя (но лишь на первый взгляд), .NET-объекты представляют собой модернизированный вариант COM с двумя видимыми отличиями: в них используются иерархическая система имен объектов и иной порядок объединения программных компонентов в приложении.

В отличие от плоского идентификатора типа "ИмяПриложения.ИмяКласса" в COM, теперь можно использовать "ИмяПриложения.Имя1.Имя2....ИмяКласса". Если ранее, например в VB 6.0, модуль класса мог содержать только один класс, то теперь (VB.NET) один модуль может включать иерархию классов:

Public Class Class0 `объект нулевого уровня

`код класса

End Class

Namespace Name1 `объекты первого уровня

Public Class Class1

End Class

Public Class Class2

End Class

Namespace Name2 `объекты второго уровня

Public Class Class2

End Class

End Namespace

End Namespace

Соответственно полные имена объектов для этого модуля, включенного в MyClass.dll, будут выглядеть следующим образом:

MyClass.Class0

MyClass.Name1.Class1

MyClass.Name1.Class2

MyClass.Name1.Name2.Class2

Для использования сокращенных имен объектов допускается импорт пространств имен:

Imports MyClass

Imports MyClass.Name1

Тогда в программе к объектам можно обращаться с такими именами: Class0, Class1, Class2, Name2.Class2. Понятно, что использовать импорт пространств имен нужно очень аккуратно, чтобы не возникло противоречий идентификаторов классов.

В приведенном выше примере мы не можем импортировать MyClass.Name1.Name2, так как возникнет неопределенность для имени Class2 (оно встречается дважды в разных пространствах имен).

Объединение отдельных .NET-компонентов в одно приложение непосредственно связано с новым понятием "сборка" (Assembly). Как известно, с контролем версий в COM дело обстояло, мягко говоря, не самым лучшим образом. Фактически поддержка совместимости версий была полностью возложена на разработчика COM-объектов.

Технология .NET Assembly призвана решить все эти проблемы, известные под названием DLL Hell (ад DLL). В упрощенном виде идея заключается в переносе процедур регистрации объектов из системного Реестра на уровень отдельных приложений.

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

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

Что касается решения проблем DLL Hell, то, помимо жесткого контроля за используемыми версиями, оно включает также простое создание локальных копий внешних компонентов внутри каталога с данным приложением (т. е. сборка будет включать не ссылку на компонент, а сам компонент).

Common Language Runtime

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

Фактически CLR исполняет программы, написанные только на одном стандартном языке Microsoft Intermediate Language (MSIL), который в свою очередь соответствует спецификациям Common Language Specification. Кстати, MSIL -- это вполне реальный язык программирования (с использованием синтаксиса в стиле "Си"), на нем можно писать исходные модули и транслировать их с помощью автономного компилятора, который входит в состав .NET Framework SDK*.

* На самом деле точным аналогом Java (с точки зрения его роли для платформы) является именно MSIL -- язык платформы .NET нижнего уровня, ".NET-Assembler".

Все же остальные языки, в том числе и C#, -- это языки верхнего уровня, платформно-независимые. Можно было бы легко включить MSIL в визуальную среду Visual Studio .NET, но, видимо, Microsoft решила не дразнить гусей, чтобы иметь возможность говорить о "равных правах для всех поставщиков средств программирования".

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

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

Первый вариант является основным, при этом применяется так называемый Just-In-Time -- компилятор, который выполняет преобразование MSIL в машинный код по мере обращения к соответствующим процедурам (т. е. неиспользуемые фрагменты программы вовсе не компилируются). Данный подход тоже достаточно известен, он, в частности, уже несколько лет используется в платформе "1С:Предприятие".

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

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

Программы на языке MSIL создают так называемый "управляемый код" (managed code). Это означает, что CLR не просто преобразует MSIL в машинные инструкции, а выполняет эти действия с учетом внешних установок.

Например, Модуль1 может задать собственный набор прав, предоставляемый вызываемому им Модулю 2, запретив, в частности, любые операции коррекции файлов. То есть в CLR мы видим реализацию идей Интернет-браузеров, которые предоставляют промежуточную среду выполнения программ, но только с более высоким уровнем управляемости правами по сравнению с обычной OC.

Microsoft предлагает три языка программирования в составе Visual Studio .NET для формирования "управляемого кода" (создания .NET-приложений) -- VB, C# и специальный вариант С++ With Managed Extensions. Как видно из этого списка, Visual C+ занимает совершенно особую позицию в средствах разработки Microsoft: с его помощью можно писать как традиционные Windows-приложения с "неуправляемым кодом" (unmanaged code), так и .NET-приложения, исполняемые в среде CLR.

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

Во-вторых, Microsoft совершенно иначе, чем Java-сообщество, трактует понятие многоплатформности: JIT-компиляторы появятся для разных типов аппаратуры (карманные ПК, сотовые телефоны и пр.), но работать они будут только в среде Windows .NET!

Что впереди

Сегодня .NET Framework -- это некая дополнительная операционная среда, устанавливаемая в Windows в качестве автономного программного компонента. Нет сомнений, что она станет неотъемлемой частью будущей версии Windows. Тем не менее еще несколько лет пользователи Windows будут иметь возможность работать как в режиме "Win API + COM", так и .NET. Но потом им придется забыть о "старом, добром Windows" и работать исключительно в режиме "управляемого кода" в среде CLR. Это произойдет гораздо быстрее, чем в период "от DOS к Windows".

3.2. Обзор ASP.NET

Летом 2001го года Microsoft представила новую прогрессивную платформу .NET, а с ней несколько очень привлекательных технологий, в том числе ASP.NET, также называемую ASP+. Данная статья посвящена обзору этой серверной технологии Microsoft. Возможности ASP.NET настолько впечатляют, что ее сложно назвать следующей версией ASP. ASP 3.0 было выпущено не очень давно, но ASP.NET построена на других принципах. В ее основе лежит другая платформа, и основными языками программирования для нее выбраны C# и VB, вместо бывших скриптинг языков. В то же время, новая технология позволяет писать ASP страницы на вашем любимом языке. Мы будем придерживаться C# в примерах. На нашем сайте вы можете найти статьи и учебники, посвященные этому языку программирования.

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

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

Возможности.

Компилирование кода.

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

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

Библиотеки

Теперь при написании кода вы можете использовать набор компонентов, поставляемых с .NET, а он, надо заметить, не мал. Ну вот, например, использование System.Web.Util. Правда, милый пример? А использование Common Language Runtime библиотеки классов, API которой специфицировано, влечет за собой уменьшение кода, который нужно писать разработчику, ускорение процесса разработки, упрощается установка и перенос приложения.

ADO+

В ASP.NET коде, как и в любом другом коде под .NET, вы можете использовать ADO+. Здесь можно упомянуть, например, возможность сохранения датасета в XML и загрузки его из XML, что упрощает разработку распределенных приложений на основе ASP.NET, в частности полезно при передаче данных между веб-сервисами ASP.NET.

Поддержка средств разработки

Visual Studio.NET предоставляет возможность WYSWYG создания и редактирования, включает в себя средства, упрощающие создание и портирование приложений. Также упрощает отладку скриптов. Но несомненно, никто не отнимет у вас возможность написания кода в любимом редакторе, будь то CodeWright, EditPlus или NotePad.

Языковая независимость

ASP.NET работает в рамках Common Language Runtime, что позволяет писать ваш код на любом языке, для которого написан компилятор, поддерживающий эту технологию. Уже в preview версии была поддержка VB и С#, сейчас работает поддержка JScript.

Возможности расширения решения

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

Обработка ошибок.

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

Объектно-ориентированная разработка.

Использование C# позволяет в полной мере использовать концепции, методы и паттерны объектно-ориентированной разработки.

Повторное использование.

Помимо возможностей объектно-ориентированного программирования, ASP.NET представляет новые технологии, такие как пейджлеты (pagelets), новую концепцию установки (bin) и другие возможности.

Набор серверных ASP.NET компонент.

В комплект ASP.NET оболочки входят серверные компоненты. Это такие компоненты, как валидаторы, листовые компоненты, rich контролы (например, календарь).

Обзор ASP.NET Framework

Как отражение глобальных изменений в технологии, не могла не поменяться и внутренняя структура ASP. Если ASP представляла из себя ISAPI DLL, с набором компонент и несколькими системными файлами, то ASP.NET - часть глобальной платформы .NET. Эта платформа - часть новой стратегии Microsoft и соответствует всем современным стандартам разработки как распределенных систем, так и настольных приложений.

Язык .NET - C# сейчас стандартизуется, как и его среда выполнения, что даст возможность портировать платформу на различные системы.

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

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

Intermediate Language позволяет создавать ваши системы на любом удобном для вас языке. И независимо от того, используете вы C#, VB.NET, JScript.NET или Perl.NET, вы получаете код, готовый к выполнению.


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

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

    курсовая работа [3,6 M], добавлен 08.12.2013

  • Описание технологии функционирования информационных систем. Разработка функционального модуля. Физическое проектирование базы данных. Разработка экранных форм ввода-вывода и отчетов. Анализ складского учета. Логическая модель информационной системы.

    курсовая работа [2,8 M], добавлен 29.11.2013

  • Описание складского учета ООО "Курочка рядом". Проведение инвентаризации на предприятии и возможности его автоматизации. Разработка программного обеспечения подсистемы складского учета. Описание задач разработанной подсистемы и средств ее взаимодействия.

    дипломная работа [3,8 M], добавлен 12.04.2012

  • Типичные бизнес-процессы и способы ведения складского учета. Инвентаризация материально-производственных запасов. Разработка базы данных для хранения информации, необходимой для автоматизации работы оптового склада с использованием СУБД Interbase 7.5.

    дипломная работа [3,1 M], добавлен 17.04.2015

  • Обоснование языка программирования Object Pascal и среды разработки Delphi. Создание интерфейса пользователя. Проектирование структуры и описание компонентов, использованных при разработке программного продукта. Составление инструкции пользователя.

    курсовая работа [888,7 K], добавлен 20.05.2015

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

    курсовая работа [1,0 M], добавлен 17.10.2011

  • Предпроектное обследование ООО "ЮГАГРОМАШ". Технические и программные средства ЭИВТ предприятия. Создание логической и физической модели базы данных информационной подсистемы складского учета. Себестоимость автоматизированной информационной системы.

    дипломная работа [4,8 M], добавлен 24.06.2011

  • Среда программирования Delphi и баз данных Microsoft Access. Разработка проекта автоматизации складского учета. Качество работы финансового звена предприятия. Разработка системы автоматизации учета товаров в торговой организации складских операций.

    дипломная работа [1,9 M], добавлен 03.07.2015

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

    дипломная работа [2,5 M], добавлен 06.06.2012

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

    дипломная работа [2,1 M], добавлен 11.07.2015

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