Разработка системы контроллинга на предприятии

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

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

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

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

Размещено на http://www.allbest.ru/

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

Тверской Государственный Технический Университет

Кафедра Программного обеспечения вычислительной техники

Бакалаврская работа

на тему: Разработка системы контроллинга на предприятии

Тверь, 2009

Введение

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

1. Технологическая часть

1.1 Проблема, цели и задачи работы

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

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

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

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

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

Задачи работы:

- анализ предметной области системы управления предприятием;

- рассмотрение структуры и освещение наиболее важных составляющих инструмента контроллинга;

- проведение анализа и моделирования бизнес-структуры системы управления;

- выбор средств моделирования и разработки;

- моделирование информационной структуры системы управления;

- описание физической модели данных для конкретной системы управления;

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

- тестирование готового программного решения.

1.2 Теоретические основы контроллинга

1.2.1 Структура контроллинга

Традиционно термин «контроллинг» начал использоваться в Германии, а в США и Великобритании утвердилось понятие «управленческого учета». В России интерес к контроллингу появился в начале 90-х гг. в связи с началом перехода к рыночной экономике. Контроллинг также называют системой управления прибылью. Различают оперативный и стратегический контроллинг. Выделяют контроллинг логистики, маркетинга, финансов и инвестиций. Однако до сих пор не понятно, где граница между всеми этими понятиями и каковы особенности, отличающие контроллинг. Наиболее точным стало определение Дитера Хана - контроллинг - автоматизированная система управления управлением, из чего следует, что контроллинг основывается на трех компонентах: экономической системе, управлении, информационной системе. Наличие этих трех составляющих подтверждается историческими этапами развития контроллинга, на протяжении которых сменялись приоритеты и ориентации концепции: - система учета (1930-е гг.); - управленческая информационная система (1970-1980-е гг.); - система управления.

1.2.2 Экономическая система как составляющая контроллинга

Цель функционирования экономической системы - увеличение прибыли. Сложная система представляет собой совокупность подсистем, для выявления которых чаще всего используется структурная декомпозиция. В соответствии с международной практикой выделяют следующие функциональные области: маркетинг, НИОКР, снабжение, производство, сбыт, финансы, персонал. Функциональные области характеризуют предметную область, которая, в свою очередь, описывается перечнем объектов, их свойствами и методами, связями. Внешняя модель системы S описывается следующим образом: S=<Input, Control, Output, Mechanism, Function>, где Input - вход, Control - управляющее воздействие внешней среды, Output - выход (цель), Mechanism - ресурсы, Function - процесс преобразования входа в выход. Внутренняя модель системы S описывает свойства, поведение и связи между объектами и выглядит следующим образом: S=<Alias, Object, Function, Relation>, где Alias - предметная область, Object - объекты и их свойства, Function - функции (поведение) объектов, Relation - связи между объектами. Количественная характеристика свойства объекта - экономический показатель, изменение значения которого происходит в результате функционирования объекта и определяется поведением данного объекта и системы в целом. На систему воздействует внешняя среда, существуют ограничения ресурсов. Между объектами и их свойствами наблюдаются информационные связи. Ограничение ресурсов вызывает необходимость управления системой. Структурный системный анализ используется для определения бизнес-структуры экономической системы. Бизнес-структура - совокупность функциональных областей, деятельность которых обеспечивает достижение цели функционирования экономической системы.

1.2.3 Система управления как составляющая контроллинга

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

Таблица 1. Отличия системы управления затратами от контроллинга

Характеристика системы

Система управления

затратами

Контроллинг

Цель

Снижение затрат

Повышение

качества решений

Подсистемы

Функции, обеспечивающие достижение цели

Функциональные области

Функции управления

Функции управления

Технологии управления и принятия решений

Исполнители и ресурсы

Труд, материалы, капитал, энергия, информация

Организационное, математическое и информационное обеспечение

Объекты

Центры и носители затрат

Система управления

Структура системы управления

Организационная структура

Структура моделей (метамодель)

Количественные характеристики

Значения экономических показателей

Значения критериев качества решений

Контролируемый фактор

Величина затрат

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

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

Таблица 2. Особенности функций управления

Функции управления

Управление

Контроллинг

Учет

Учет значений экономических показателей

Формирование словаря (тезауруса) понятий в рамках единого информационного пространства

Контроль

Контроль рассогласований значений экономических показателей

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

Анализ

Анализ причины рассогласований, оценка влияния факторов

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

Регулирование

Использование математических моделей для снижения рассогласований

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

Планирование

Использование математических моделей для планирования значений экономических показателей

Планирование внедрения системы управления на предприятии

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

Сравнение системы управления и контроллинга

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

1.2.4 Информационная система как составляющая контроллинга

Цель создания информационной системы - информационное обеспечение процесса принятия управленческих решений. Структура информационной системы, цели и задачи ее создания соответствуют стратегическим целям и задачам деятельности предприятия. Внутренняя структура информационной системы описывается следующим образом: предметная область, объекты, их свойства и поведение, связи между объектами: S=<Alias, Object, Function, Relation>. Предметная область определяется функциональной областью экономической системы. В пределах предметной области существуют объекты, обладающие некоторыми свойствами. Объекты, их свойства, а также связи между ними образуют информационную базу. Информационная база - совокупность данных, реализованная в соответствии с моделью данных: реляционной, иерархической или сетевой. Принципиально различают два подхода к определению информационной структуры: собственно структурный и объектно-ориентированный. С позиции структурного подхода, свойства и поведение объектов являются независимыми. С позиции объектно-ориентированного подхода, свойства и поведение заключены в самом объекте, и моделируются совместно. Организационная структура влияет на информационную структуру, поскольку определяет предметную область, объекты, связи между ними и функции. С другой стороны, информационная система оказывает влияние на организационную структуру, поскольку, в дополнение к управленческим задачам, формирует задачи по обслуживанию информационной системы и делегирует полномочия по их исполнению.

2. Специальная часть

2.1 Выбор инструментальной системы для моделирования бизнес-процессов

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

BPwin поддерживает три таких методологии: IDEF0, DFD и IDEF3, позволяющие анализировать ваш бизнес с трех ключевых точек зрения:

· С точки зрения функциональности системы. В рамках методологии IDEF0 (Integration Definition for Function Modeling) бизнес-процесс представляется в виде набора элементов-работ, которые взаимодействуют между собой, а также показывается информационные, людские и производственные ресурсы, потребляемые каждой работой.

· С точки зрения потоков информации (документооборота) в системе. Диаграммы DFD (Data Flow Diagramming) могут дополнить то, что уже отражено в модели IDEF3, поскольку они описывают потоки данных, позволяя проследить, каким образом происходит обмен информацией между бизнес-функциями внутри системы. В тоже время диаграммы DFD оставляют без внимания взаимодействие между бизнес-функциями.

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

2.2 Выбор инструментальной системы для создания модели данных

Для построения модели данных Computer Associates предлагает мощный и удобный инструмент - AllFusion ERwin Data Modeler (ERwin). Хотя процесс преобразования модели BPwin в модель данных плохо формализуется и поэтому полностью не автоматизирован, Computer Associates предлагает удобный инструмент для облегчения построения модели данных на основе функциональной модели - механизм двунаправленной связи BPwin - ERwin. ERwin имеет два уровня представления модели - логический и физический, причем модель данных может содержать как оба этих уровня, так и только один из них. Модели, содержащие только один уровень, могут быть синхронизированы, что особенно удобно при создании гетерогенных информационных систем. На логическом уровне данные не связаны с конкретной СУБД, поэтому могут быть наглядно представлены даже для неспециалистов. Физический уровень данных - это, по существу, отображение системного каталога, который зависит от конкретной реализации СУБД. Создание одного логического уровня и нескольких соответствующих ему физических позволяет вести одновременную разработку баз данных для нескольких СУБД. ERwin позволяет проводить процессы прямого и обратного проектирования баз данных. Это означает, что по модели данных можно сгенерировать схему базы данных или автоматически создать модель данных на основе информации системного каталога. Кроме того, ERwin позволяет выравнивать модель и содержимое системного каталога после редактирования.

2.3 Выбор интегрированной среды разработки

Для разработки программного приложения выберем интегрированную среду, пользующуюся большой популярностью среди людей, которые так или иначе задействованы в цикле производства программного обеспечения, - Microsoft Visual Studio 2008.

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

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

· принципиально новый подход к построению каркаса среды - Framework .Net.

2.4 Выбор языка программирования

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

Язык C# является наиболее известной новинкой в области создания языков программирования. В отличие от 60-х годов XX века - периода бурного языкотворчества - в нынешнее время языки создаются крайне редко. Чтобы новый язык получил признание, он должен действительно обладать принципиально новыми качествами. Языку C# повезло с родителями. Явившись на свет в недрах Microsoft, будучи наследником C++, он с первых своих шагов получил мощную поддержку.

Создателем языка является сотрудник Microsoft Андреас Хейлсберг. Он стал известным в мире программистов задолго до того, как пришел в Microsoft. Хейлсберг входил в число ведущих разработчиков одной из самых популярных сред разработки - Delphi. В Microsoft он участвовал в создании версии Java - J++, так что опыта в написании языков и сред программирования ему не занимать. Как отмечал сам Андреас Хейлсберг, C# создавался как язык компонентного программирования, и в этом одно из главных достоинств языка, направленное на возможность повторного использования созданных компонентов. Из других объективных факторов отметим следующие:

· C# создавался параллельно с каркасом Framework .Net и в полной мере учитывает все его возможности, как FCL, так и CLR;

· C# является полностью объектно-ориентированным языком, где даже типы, встроенные в язык, представлены классами;

· C# является мощным объектным языком с возможностями наследования и универсализации;

· C# является наследником языков C/C++, сохраняя лучшие черты этих популярных языков программирования. Общий с этими языками синтаксис, знакомые операторы языка облегчают переход программистов от С++ к C#;

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

· благодаря каркасу Framework .Net, ставшему надстройкой над операционной системой, программисты C# получают те же преимущества работы с виртуальной машиной, что и программисты Java. Эффективность кода даже повышается, поскольку исполнительная среда CLR предоставляет собой компилятор промежуточного языка, в то время как виртуальная Java-машина является интерпретатором байт-кода;

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

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

3. Проектная часть. Разработка системы контроллинга на предприятии

3.1. Определение и моделирование бизнес-структуры

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

Создадим диаграмму верхнего уровня в AllFusion Process Modeler (BPwin), используя методологию IDEF0. Применяя инструменты Activity Box Tool и Precedence Arrow Tool, определим и смоделируем бизнес-структуру системы управления затратами.

Бизнес-структура системы управления затратами

3.2 Моделирование организационной структуры системы

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

Декомпозируем диаграмму верхнего уровня по функциям управления. Выберем Go To Child Diagram и в появившемся окне укажем тип декомпозионной диаграммы - IDEF3. С помощью инструментов Activity Box Tool и Precedence Arrow Tool смоделируем организационную структуру системы управления затрат.

Организационная структура системы управления затратами

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

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

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

Декомпозируем задачу учета затрат на диаграмме потоков данных DFD. Выделим Activity Box «Учет затрат» и выберем Go To Child Diagram. Укажем тип DFD для диаграммы и, используя панель инструментов, укажем на диаграмме объекты и их функции в документообороте и обработке информации.

Диаграмма потоков данных для учета затрат

3.3 Моделирование информационной структуры

Диаграмма потоков данных имеет еще одно преимущество: совмещение функций и объектов отображает информационную структуру. На основе модели BPwin можно построить модель данных. Для построения модели данных Computer Associates предлагает мощный и удобный инструмент - AllFusion ERwin Data Modeler (ERwin). ERwin позволяет проводить процессы прямого и обратного проектирования баз данных. Это означает, что по модели данных можно сгенерировать схему базы данных или автоматически создать модель данных на основе информации системного каталога. Кроме того, ERwin позволяет выравнивать модель и содержимое системного катало- га после редактирования.

Для экспорта в BPWin предусмотрена возможность описания объекта диаграммы потоков данных в виде сущности или атрибута с указанием способа воздействия функций на объекты (создание, обновление, чтение, удаление). После того, как сущности и атрибуты будут экспортированы в ERWin (воспользуемся пунктом меню File->Export->Erwin 4.1 (BPX)), необходимо задать ключевые атрибуты сущностей и установить отношения между объектами. программирование контроллинг бизнес моделирование

Затем создадим базу данных MS Access, используя обратный инжиниринг. Выберем пункт меню Tools->Reverse Engineer. Укажем платформу MS Access и нужную нам версию.

Физическая модель данных

3.4 Разработка программного приложения

Как уже отмечалось, разработка программной системы будет вестись нами в Microsoft Visual Studio 2008 на языке C#. Начнем мы с создания вспомогательного класса для установления соединения и работы с базой данных.

Добавим в наше решение (Solution) новый проект - динамически подключаемую библиотеку (Class Library) и через рефакторинг кода изменим стандартное имя Class1 на DbWork.

public class DbWork

Встроенная библиотека классов FCL (Framework Class Library) предоставляет нам широкие возможности для работы с базами данных в своем проекте. Подключив к проекту пространство имен System.Data.OleDb, мы сможем использовать эти возможности. Создадим у нашего класса несколько полей, которые позволят клиентским классам работать с данными.

OleDbConnection controlConnection;

OleDbDataAdapter controlAdapter;

public DataSet kontrolDataSet = new DataSet();

Объект типа OleDbConnection отвечает за соединение с базой данных, а класс OleDbDataAdapter - адаптер данных - позволит нам редактировать записи в базе через SQL-команды.

Еще несколько полей будут хранить необходимую строковую информацию: текст SQL-команды, строку подключения к базе данных, имя файла БД.

public string strQuery;

string strCon = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=";

public static string fileName = "";

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

public bool connectDataBase()

{

if (fileName != "")

strCon += fileName;

else

strCon += "Kontrolling.mdb";

try

{

controlConnection = new OleDbConnection(strCon);

controlConnection.Open();

return true;

}

catch

{

return false;

}

}

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

Далее опишем методы для работы с данными в конкретных таблицах. Например, выборка данных из таблицы «Изделия».

public void detailLink()

{

controlAdapter = new OleDbDataAdapter(strQuery, controlConnection);

controlAdapter.Fill(kontrolDataSet, "Изделие");

}

В этом методе мы работаем с таблицей через адаптер данных и SQL-команды. Аналогично описаны и другие методы.

Полный листинг класс DbWork приведен ниже.

Листинг 4.4.1 Служебный класс для работы с базой данных

public class DbWork

{

//Объекты, отвечающие за соединение

OleDbConnection controlConnection;

OleDbDataAdapter controlAdapter;

public static string fileName = "";

public DataSet kontrolDataSet = new DataSet();

public DataSet changeDataSet = new DataSet();

/// <summary>

/// строка запроса

/// </summary>

public string strQuery;

string strCon = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=";

/// <summary>

/// соединение с БД

/// </summary>

public bool connectDataBase()

{

if (fileName != "")

strCon += fileName;

else

strCon += "Kontrolling.mdb";

try

{

controlConnection = new OleDbConnection(strCon);

controlConnection.Open();

return true;

}

catch

{

return false;

}

}

/// <summary>

/// Выбор из бд информации об изделиях

/// </summary>

public void detailLink()

{

controlAdapter = new OleDbDataAdapter(strQuery, controlConnection);

controlAdapter.Fill(kontrolDataSet, "Изделие");

}

/// <summary>

/// Выбор из бд информации о продажах текущего изделия

/// </summary>

public void saleLink()

{

controlAdapter = new OleDbDataAdapter(strQuery, controlConnection);

controlAdapter.Fill(kontrolDataSet, "Продажа");

}

/// <summary>

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

/// </summary>

public void makeLink()

{

controlAdapter = new OleDbDataAdapter(strQuery, controlConnection);

controlAdapter.Fill(kontrolDataSet, "Выпуск");

}

public void workerLink()

{

controlAdapter = new OleDbDataAdapter(strQuery, controlConnection);

controlAdapter.Fill(kontrolDataSet, "Сотрудник");

}

public void linkTable(string table)

{

controlAdapter = new OleDbDataAdapter(strQuery, controlConnection);

controlAdapter.Fill(kontrolDataSet, table);

}

public void linkTable(string table, DataSet ds)

{

controlAdapter = new OleDbDataAdapter(strQuery, controlConnection);

controlAdapter.Fill(ds, table);

}

}

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

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

Экранная форма «Оборот продукции»

При загрузке формы вызывается событие OnLoad. Напишем обработчик для этого события.

Листинг 4.4.2 Обработчик события OnLoad экранной формы «Оборот продукции»

private void RotationProductForm_Load(object sender, EventArgs e)

{

db = new DbWork();

if (!db.connectDataBase())

{

MessageBox.Show("Невозможно соединиться с базой данных!!", "Внимание!!");

return;

}

db.strQuery = "Select * FROM Изделие";

db.detailLink();

detailGrid.DataSource = db.kontrolDataSet.Tables[0].DefaultView;

detailGrid.Columns[0].HeaderText = "Изделие";

detailGrid.Columns[1].HeaderText = "Планируемая цена";

detailGrid.Columns[2].HeaderText = "Количество";

db.strQuery = "Select * FROM Продажа WHERE Изделие='" +

detailGrid.Rows[0].Cells[0].Value + "'";

db.saleLink();

saleGrid.DataSource = db.kontrolDataSet.Tables[1].DefaultView;

saleGrid.Columns[0].HeaderText = "Дата продажи";

saleGrid.Columns[1].HeaderText = "Продано";

saleGrid.Columns[2].HeaderText = "Изделие";

db.strQuery = "Select * FROM Выпуск WHERE Изделие='" +

detailGrid.Rows[0].Cells[0].Value + "'";

db.makeLink();

makeGrid.DataSource = db.kontrolDataSet.Tables[2].DefaultView;

makeGrid.Columns[0].HeaderText = "Дата выпуска";

makeGrid.Columns[1].HeaderText = "Выпущено";

makeGrid.Columns[2].HeaderText = "Изделие";

this.detailGrid.RowEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.detailGrid_RowEnter);

}

В обработчике создается экземпляр нашего служебного класса DbWork и вызывается его метод для соединения с базой данных. Если метод вернул false, то есть установить соединение не удалось, выполнение обработчика будет остановлено, а пользователь будет предупрежден о возникшей проблеме. В случае, когда соединение установлено, будет происходить выборка данных из таблиц в компоненты DataGridView.

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

Листинг 4.4.3 Обработчик события RowEnter компонента DataGridView

private void detailGrid_RowEnter(object sender, DataGridViewCellEventArgs e)

{

db.strQuery = "Select * FROM Выпуск WHERE Изделие='" +

detailGrid.Rows[e.RowIndex].Cells[0].Value + "'";

db.kontrolDataSet.Tables[2].Clear();

db.makeLink();

db.strQuery = "Select * FROM Продажа WHERE Изделие='" +

detailGrid.Rows[e.RowIndex].Cells[0].Value + "'";

db.kontrolDataSet.Tables[1].Clear();

db.saleLink();

}

Разберем подробно работу с записями в таблице «Выпуск продукции». При щелчке на кнопку «Добавить запись» вызывается модальная форма с текстовыми полями, которые необходимо заполнить пользователю.

Экранная форма добавления записи в таблицу «Выпуск изделия»

При щелчке на кнопку «Сохранить» происходит проверка данных на корректность, после чего данные добавляются в таблицу SQL-конструкцией INSERT INTO. Ниже приведен код обработчика события Click кнопки «Добавить запись».

Листинг 4.4.4 Обработчик события Click кнопки «Добавить запись»

private void addMakeButton_Click(object sender, EventArgs e)

{

save = false;

index = detailGrid.CurrentRow.Index;

amForm = new addMakeForm();

amForm.Text = "Выпуск изделия \"" + detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0].Value + "\"";

amForm.detailBox.Text = detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0].Value.ToString();

amForm.ShowDialog();

if (save == true)

{

db.strQuery = "INSERT INTO Выпуск VALUES(" + "'" + date.ToShortDateString() + "'," + count + ",'" +

detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0].Value + "')";

try

{

db.makeLink();

}

catch

{

MessageBox.Show("Невозможно добавить запись. Проверьте корректность данных", "Внимание!!");

return;

}

int a = Convert.ToInt32(detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[2].Value) + Convert.ToInt32(count);

db.strQuery = "UPDATE Изделие SET КолИзд='" + a +

"' WHERE Изделие='" + detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0].Value + "'";

db.detailLink();

db.strQuery = "Select * FROM Изделие";

db.kontrolDataSet.Tables[0].Clear();

db.detailLink();

detailGrid.CurrentCell = detailGrid.Rows[index].Cells[0];

db.strQuery = "Select * FROM Выпуск WHERE Изделие='" +

detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0].Value+ "'";

db.kontrolDataSet.Tables[2].Clear();

db.makeLink();

}

}

Заметим, что при добавлении записи в таблицу «Выпуск продукции» автоматически пересчитывается поле «Количество изделий на складе» в таблице «Изделие».

Аналогичным образом работает обработчик события Click кнопки «Изменить запись». Единственное отличие заключается в том, что вместо SQL-конструкции INSERT INTO мы используем конструкцию UPDATE SET.

Листинг 4.4.5 Обработчик события Click кнопки «Изменить запись»

private void editMakeButton_Click(object sender, EventArgs e)

{

if (makeGrid.RowCount < 2)

return;

save = false;

index = detailGrid.CurrentRow.Index;

int a = Convert.ToInt32(detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[2]. Value) - Convert.ToInt32(makeGrid.Rows[makeGrid.CurrentRow.Index]. Cells[1].Value);

amForm = new addMakeForm();

amForm.Text = "Выпуск изделия \"" + detailGrid.Rows[detailGrid. CurrentRow.Index].Cells[0].Value + "\"";

amForm.detailBox.Text = detailGrid.Rows[detailGrid.CurrentRow.Index]. Cells[0].Value.ToString();

amForm.dateBox.Text = Convert.ToDateTime(makeGrid.Rows [makeGrid.CurrentRow.Index].Cells[0].Value).ToShortDateString();

amForm.countBox.Text = makeGrid.Rows[makeGrid.CurrentRow.Index]. Cells[1].Value.ToString();

amForm.ShowDialog();

if (save == true)

{

db.strQuery = "UPDATE Выпуск SET ДатаВып=" + "'" + date. ToShortDateString() + "',КолВып='" + count + "' WHERE Изделие='" +

detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0].Value + "' AND ДатаВып="+ Convert.ToDateTime(makeGrid.Rows[makeGrid. CurrentRow.Index].Cells[0].Value).ToOADate();

a += Convert.ToInt32(count);

try

{

db.makeLink();

}

catch

{

MessageBox.Show("Невозможно изменить запись. Проверьте корректность данных", "Внимание!!");

return;

}

db.strQuery = "UPDATE Изделие SET КолИзд='" + a +

"' WHERE Изделие='" + detailGrid.Rows[detailGrid. CurrentRow.Index].Cells[0].Value + "'";

db.detailLink();

db.strQuery = "Select * FROM Изделие";

db.kontrolDataSet.Tables[0].Clear();

db.detailLink();

detailGrid.CurrentCell = detailGrid.Rows[index].Cells[0];

db.strQuery = "Select * FROM Выпуск WHERE Изделие='" +

detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0].Value + "'";

db.kontrolDataSet.Tables[2].Clear();

db.makeLink();

}

}

Остается рассмотреть обработчик события Click для кнопки «Удалить запись». Механизм прежний - используем SQL-конструкцию, на этот раз DELETE, а потом обновляем данные в таблицах.

Листинг 4.4.6 Обработчик события Click кнопки «Удалить запись»

private void deleteMakeButton_Click(object sender, EventArgs e)

{

index = detailGrid.CurrentRow.Index;

if (makeGrid.RowCount < 2)

return;

if (MessageBox.Show("Вы действительно хотите удалить текущую запись?", "Внимание!", MessageBoxButtons.YesNo) == DialogResult.Yes)

{

int a = Convert.ToInt32(detailGrid.Rows[detailGrid. CurrentRow.Index].Cells[2].Value) - Convert.ToInt32 (makeGrid.Rows[makeGrid.CurrentRow.Index].Cells[1].Value);

DateTime d = Convert.ToDateTime(makeGrid.Rows [makeGrid.CurrentRow.Index].Cells[0].Value);

db.strQuery = "DELETE FROM Выпуск WHERE Изделие='" +

detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0]. Value.ToString() + "' AND ДатаВып=" + d.ToOADate();

try

{

db.makeLink();

}

catch

{

MessageBox.Show("Невозможно удалить запись", "Внимание!!");

return;

}

db.strQuery = "UPDATE Изделие SET КолИзд='" + a +

"' WHERE Изделие='" + detailGrid.Rows[detailGrid.CurrentRow. Index].Cells[0].Value + "'";

db.detailLink();

db.strQuery = "Select * FROM Изделие";

db.kontrolDataSet.Tables[0].Clear();

db.detailLink();

detailGrid.CurrentCell = detailGrid.Rows[index].Cells[0];

db.strQuery = "Select * FROM Выпуск WHERE Изделие='" +

detailGrid.Rows[detailGrid.CurrentRow.Index].Cells[0].Value + "'";

db.kontrolDataSet.Tables[2].Clear();

db.makeLink();

}

}

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

Мы подробно рассмотрели проектирование экранной формы «Оборот продукции» и программную реализацию работы с данными в таблице «Выпуск продукции». Аналогичным образом создаются и другие экранные формы. Программный код этих форм немногим отличается от разобранного примера.

3.5 Тестирование программного решения

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

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

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

Сообщение об ошибке при невозможности соединения с БД

Кроме того, в меню главной формы есть пункт «Сервис»-> «Установка пути к базе данных», который позволяет перенастраивать программу на другую базу данных (например, на резервную копию).

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

Сообщение об ошибке при попытке добавления в базу некорректных данных

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

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

Заключение

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

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

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

1. Малышева Л. Контроллинг на предприятии // Открытые системы .-- 2000.-- №1-2.-- C.68-78.

2. Маклаков С.В Создание информационных систем с AllFusion Modeling Suite.

3. Юн С.Г. Моделирование данных средствами ERWin.

4. Данилин А. В., Слюсаренко А. И. Архитектура предприятия.

5. Мейер Бертран Основы объектно-ориентированного проектирования.

6. Лаврищева Е.М. Современные методы программирования: возможности и инструменты.

7. Вендров А. М. Методы и средства моделирования бизнес-процессов.

8. Шилдт Г. Полный справочник по С#.

9. Биллиг В. А. Основы С#.

10. Вендров А. М. Технологии создания ПО.

Размещено на Allbest.ru


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

  • Трехмерное моделирование: улучшение алгоритмов рендеринга и просчета трехмерных изображений. Обоснование выбора алгоритмов. Выбор языка программирования и среды разработки. Структура данных и программного комплекса. Системные требования для работы.

    курсовая работа [263,8 K], добавлен 24.06.2009

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

    дипломная работа [222,2 K], добавлен 25.03.2013

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

    дипломная работа [448,5 K], добавлен 08.11.2010

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

    отчет по практике [295,9 K], добавлен 22.05.2013

  • Понятие, сущность и функции контроллинга - системы управления. Фазы стратегического контроллинга: банковский, оперативный, маркетинговый. Контроль за экономичностью принятого решения. Контроллинг инвестиций, инновационных процессов. Анализ отклонений.

    курс лекций [31,5 K], добавлен 12.03.2008

  • Изучение существующих методик и инструментальных средств для управления сервисным обслуживанием. Лучшие практики управления IT. Выбор языка моделирования информационной системы. Ролевая модель системы. Модуль управления объектами и настройки системы.

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

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

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

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

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

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

    дипломная работа [1002,3 K], добавлен 13.04.2014

  • Разработка системы управления проектами для компании ЗАО "Диакон". Экономические параметры разработки и внедрения электронной информационной системы. Технология разработки программного обеспечения. Выбор типа графического интерфейса, его составляющие.

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

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