Проект информационной системы учета, обработки и хранения личных дел учащихся МОУ «Гимназии № 3 им. М. Ф. Панькова»
Если разобраться, то так ли уж непредсказуемо развитие системы и действительно ли получить информацию о ней невозможно? Вероятно, представление о системе в целом и о предполагаемых (руководством) путях ее развития можно получить посредством семинаров. После этого разбить сложную систему на более простые компоненты, упростить связи между компонентами, предусмотреть независимость компонентов… Читать ещё >
Проект информационной системы учета, обработки и хранения личных дел учащихся МОУ «Гимназии № 3 им. М. Ф. Панькова» (реферат, курсовая, диплом, контрольная)
Аннотация
В данном дипломном проекте поставлена задача разработки проекта информационной системы учета, обработки и хранения личных дел учащихся МОУ «Гимназии № 3 им. М.Ф. Панькова».
Изучены существующие методы ведения личных дел учащихся. Изучены документы, регламентирующие правила и требования к хранению личных дел.
Интерфейс пользователя сделан на основе ленточного меню, что позволяет пользователю работать на современном интерфейсе.
В процессе дипломного проектирования был разработан программный комплекс на основе поставленных задач и требований, а также рассчитана экономическая эффективность от внедрения системы, и выполнены расчеты по обеспечению безопасности жизнедеятельности.
На сегодняшнем этапе развития компьютерной индустрии разработчики и пользователи получили широчайшие разнообразие возможностей, позволяющих создавать корпоративные приложения под различные задачи и функции. Создание Windows-приложений с дружественным интерфейсом облегчило работу многим сотрудникам корпораций, предприятий, организаций.
Основное достоинство Windows-приложений — их стандартный вид. Если пользователь научился работать в одном из них, то можно считать, что он без труда освоит любое. Следуя им, разработчик получает ряд существенных преимуществ. Во — первых, разработанное приложение выглядит профессионально. Во — вторых, оно легко осваивается пользователем и согласуется с другими приложениями и, в-третьих, имеет современный дизайн.
При разработки полнофункционального корпоративного приложения следует помнить, что:
— современный программный комплекс должен обеспечить максимум удобств каждому работнику любого подразделения предприятия;
— должны быть разработаны и внедрены правила и нормы по защите информации, т. е. информация должна быть защищена степенями защиты в зависимости от конфиденциальности;
— должна быть разработана система разграничение прав доступа к информации, т. е. пользователь мог посмотреть только информацию, касающееся его сферы деятельности;
— должно быть реализована простота и удобства в поиске «открытой» информации, т. е. пользователь не должен тратить много времени и сил на поиск необходимой для его работы информации;
— приложение должно быть единым целым, но при этом с гибкой системой модульности подсистем, т. е. по мере необходимости в процессе эксплуатации приложения можно было создавать и внедрять модульные подсистемы.
В течение трех последних десятилетий происходило стремительное распространение реляционных систем управления базами данных (СУБД), которые со временем стали играть настолько важную роль, что в настоящее время в этих системах хранится значительная часть корпоративных данных.
Компанией Microsoft в последних своих продуктах был предложен новый вид интерфейса — ленточный. Его удобство в сравнении с классическим меню очевидна, на одной вкладке на ленте мы можем увидеть все возможности для работы, так называемы «просмотр на ленту», и теперь не надо вспоминать, где находиться та, или иная функция.
Изменился и дизайн. Теперь на смену скудному, морально устаревшему дизайну пришел новый, осовремененный интерфейс, при работе с которым пользователь на себе ощущает степень прогресса современного программного обеспечения.
В данном дипломном проекте были успешно применены и реализованы основные требования к корпоративным приложениям, и ко всему еще и создан дружественный интерфейс современного образца.
1. Цель дипломного проекта
Целью данного дипломного проекта является разработка прикладного программного обеспечения деятельности МОУ «Гимназия № 3 им. М.Ф. Панькова». Разрабатываемая система предназначена для решения задачи автоматизации учета учащихся.
Данная задача была поставлена исходя из современных требований к хранению информации и автоматизации документооборота, а также с потребностью в увеличение быстродействия работы с личными делами учащихся.
За время деятельности гимназии был накоплен огромный опыт по работе с личными делами и архивными данными и в купе с современными технологиями это позволит увеличить производительность, снизить нагрузку на работников гимназии, позволит перераспределить трудовые ресурсы, увеличит надежность всей системы.
2. Описание деятельности учреждения
«Гимназия № 3 им. М.Ф. Панькова» создает условия для реализации гражданами Российской Федерации гарантированного государством права на получение общедоступного общего образования всех ступеней в пределах государственных образовательных стандартов.
Деятельность гимназии основывается на принципах демократии, гуманизма, общедоступности, приоритета общечеловеческих ценностей, жизни и здоровья человека, гражданственности, свободного развития личности, автономности и светского характера образования.
Гимназии руководствуется в своей деятельности федеральными законами, указаниями и распоряжениями Президента Российской Федерации, постановлениями и распоряжениями Правительства Российской Федерации, Типовым положением об общеобразовательном учреждении.
Основными целями гимназии являются формирование общей культуры личности обучающихся на основе усвоения обязательного минимума содержания общеобразовательных программ, адаптации к жизни в обществе, создание основы для осознанного выбора и последующего освоения профессиональных образовательных программ, воспитание гражданственности, трудолюбия, уважения к правам и свободам человека, любви к окружающей природе, Родине, семье, формирования здорового образа жизни.
Гимназия осуществляет обучение и воспитание в интересах личности, общества, государства, обеспечивает охрану здоровья и создание благоприятных условий для разностороннего развития личности, в том числе возможности удовлетворения потребности обучающегося в самообразовании.
По инициативе детей в гимназии могут создаваться детские общественные объединения.
Гимназия несет в установленном законодательством РФ порядке ответственность за качество образования и его соответствие государственным образовательным стандартам, за адекватность применяемых форм, методов и средств организации образовательного процесса возрастным психофизическим особенностям, склонностям, способностям, интересам обучающихся, требованиям охраны их жизни и здоровья.
Образовательный процесс в гимназии строится на основе учебного плана и учебных программ как государственных, так и разрабатываемых самостоятельно в соответствии с базисным учебным планом.
Учебные нагрузки обучающихся не должны превышать предельно допустимых норм, определенных рекомендациями вышестоящих органов управления образования и санитарными нормами.
Количество часов, отведенных на преподавание отдельных учебных предметов (образовательных областей), не должно быть меньше количества часов, определенных базисным учебным планом.
Общее образование состоит из трех ступеней, в рамках которых гимназия реализует следующие образовательные программы:
— начального общего образования (нормативный срок освоения — четыре года), 1 — 4 классы;
— основного общего образования (нормативный срок освоения от пяти до шести лет), 5 — 9 классы;
— среднего (полного) общего образования (нормативный срок освоения два года), 10 — 11 классы;
Первая ступень обеспечивает развитие обучающихся, овладение ими чтением, письмом, счетом, основными навыками учебной деятельности, элементами теоретического мышления, простейшими навыками самоконтроля учебных действий, культурой речи и поведения, основами гигиены и здорового образа жизни, основами иностранного языка. Начальное образование является базой для получения основного общего образования.
Вторая ступень обеспечивает освоение учащимися общеобразовательных программ основного общего образования, углубленное знание иностранного языка, формирование навыков самообразования, условия развития способности к социальному самоопределению. Основное общее образование является базой для получения среднего (полного) общего образования, начального и среднего профессионального образования.
Третья ступень обеспечивает освоение обучающимися образовательных программ среднего (полного) общего образования, достижение функциональной грамотности обучающихся. Среднее (полное) общее образование является базой для получения среднего профессионального и высшего профессионального образования.
3. Проектирование бизнес — процессов, структуры информационной системы и структуры базы данных
Проектирование информационных систем всегда начинается с определения цели проекта. Основная задача любого успешного проекта заключается в том, чтобы на момент запуска системы и в течение всего времени ее эксплуатации можно было обеспечить:
— требуемую функциональность системы и степень адаптации к изменяющимся условиям ее функционирования;
— требуемую пропускную способность системы;
— требуемое время реакции системы на запрос;
— безотказную работу системы в требуемом режиме, иными словами — готовность и доступность системы для обработки запросов пользователей;
— простоту эксплуатации и поддержки системы;
— необходимую безопасность.
Производительность является главным фактором, определяющим эффективность системы. Хорошее проектное решение служит основой высокопроизводительной системы.
Проектирование информационных систем охватывает три основные области:
— проектирование объектов данных, которые будут реализованы в базе данных;
— проектирование программ, экранных форм, отчетов, которые будут обеспечивать выполнение запросов к данным;
— учет конкретной среды или технологии, а именно: топологии сети, конфигурации аппаратных средств, используемой архитектуры (файл — сервер или клиент — сервер), параллельной обработки, распределенной обработки данных и т. п.
В реальных условиях проектирование — это поиск способа, который удовлетворяет требованиям функциональности системы средствами имеющихся технологий с учетом заданных ограничений.
К любому проекту предъявляется ряд абсолютных требований, например максимальное время разработки проекта, максимальные денежные вложения в проект и т. д. Одна из сложностей проектирования состоит в том, что оно не является такой структурированной задачей, как анализ требований к проекту или реализация того или иного проектного решения.
Считается, что сложную систему невозможно описать в принципе. Это, в частности, касается систем управления предприятием. Одним из основных аргументов является изменение условий функционирования системы, например директивное изменение тех или иных потоков информации новым руководством. Еще один аргумент — объемы технического задания, которые для крупного проекта могут составлять сотни страниц, в то время как технический проект может содержать ошибки. Возникает вопрос: а может, лучше вообще не проводить обследования и не делать никакого технического проекта, а писать систему «с чистого листа» в надежде на то, что произойдет некое чудесное совпадение желания заказчика с тем, что написали программисты, а также на то, что все это будет стабильно работать?
Если разобраться, то так ли уж непредсказуемо развитие системы и действительно ли получить информацию о ней невозможно? Вероятно, представление о системе в целом и о предполагаемых (руководством) путях ее развития можно получить посредством семинаров. После этого разбить сложную систему на более простые компоненты, упростить связи между компонентами, предусмотреть независимость компонентов и описать интерфейсы между ними (чтобы изменение одного компонента автоматически не влекло за собой существенного изменения другого компонента), а также возможности расширения системы и «заглушки» для нереализуемых в той или иной версии системы функций. Исходя из подобных элементарных соображений описание того, что предполагается реализовать в информационной системе, уже не кажется столь нереальным. Можно придерживаться классических подходов к разработке информационных систем, один из которых — схема «водопада» (рисунок 3.1).
Очень часто проектирование описывают как отдельный этап разработки проекта между анализом и разработкой. Однако в действительности четкого деления этапов разработки проекта нет — проектирование, как правило, не имеет явно выраженного начала и окончания и часто продолжается на этапах тестирования и реализации. Говоря об этапе тестирования, также следует отметить, что и этап анализа, и этап проектирования содержат элементы работы тестеров, например для получения экспериментального обоснования выбора того или иного решения, а также для оценки критериев качества получаемой системы. На этапе эксплуатации уместен разговор и о сопровождении системы.
Жизненный цикл программного обеспечения представляет собой модель его создания и использования. Модель отражает его различные состояния, начиная с момента возникновения необходимости в данном ПО и заканчивая моментом его полного выхода из употребления у всех пользователей.
Поэтапная модель с промежуточным контролем. Разработка программного обеспечения ведется итерациями с циклами обратной связи между этапами. Межэтапные корректировки позволяют уменьшить трудоемкость процесса разработки по сравнению с каскадной моделью; время жизни каждого из этапов растягивается на весь период разработки.
3.1 Диаграмма вариантов использования
Для того чтобы более детально понять и уточнить процесс работы системы, а также в дальнейшем грамотно ее спроектировать, построим контекстную диаграмму вариантов использования деятельности гимназии, а также подробные диаграммы для наиболее важных вариантов использования [1,2,3].
Первоначально родители обращаются к директору с заявлением о приеме их ребенка в гимназию для получения начального образования. Процесс приема на обучение происходит довольно просто, заранее подаются документы, после чего исходя из численности формируются классы. Требования, предъявляемые к родителям, это предъявить весь пакет необходимых документов по ребенку и подать заявление на имя директора (рисунок 3.1.1).
После того, как все классы сформированы и приказом директора утверждена численность и состав, на каждого поступившего в школу ребенка заводиться личное дело, которое является основным информативным документом по ребенку и существует на протяжении всего обучения и на протяжении 5 лет после выпуска храниться в архиве (рисунок 3.1.2). В личном деле храниться личная информация, итоговые годовые оценки, а также прикладываются дипломы и грамоты за участие в научных, творческих и спортивных мероприятиях. В личном деле храниться и информация о прилежности ученика, т. е. благодарственные или докладные письма на имя директора об поведении ученика. Таким образом, информацию по ученику можно получить из материалов личного дела.
В конце каждого года обучения ученикам выставляются итоговые годовые оценки. Учитель по профильному предмету выставляет аттестационные оценки, которые заносятся в личное дело ученика (рисунок 3.1.3). На протяжении хранения личного дела можно проследить динамику изменения успеваемости ученика по годам, уровень его оценочных знаний.
По истечению срока обучения личное дело переводиться для дальнейшего хранения в архив. Личные дела хранятся в архиве в течение пяти лет после окончания обучения. В течение этого периода времени можно получить детальную информацию об успеваемости ученика за период его обучения в гимназии. После чего личные дела подвергаются уничтожению (рисунок 3.1.4).
В случаи перевода ученика в другое общеобразовательное учреждение, на руки родителям выдается личное дело ученика, по которому можно понять об уровне оценочных знаний и пройденной программы обучения (рисунок 3.1.5).
3.2 Диаграмма деятельностей
При моделировании поведения проектируемой или анализируемой системы возникает необходимость не только представить процесс изменения ее состояний, но и детализировать особенности алгоритмической и логической реализации выполняемых системой операций.
Диаграмма активностей (или, как часто говорят, диаграмма деятельности) — диаграмма UML, выглядящая наиболее простой, поскольку напоминает привычную всем блок-схему.
Диаграмма деятельностей (Activity Diagrams) являются представлением алгоритмов неких действий (активностей), выполняющихся в системе.
Именно на диаграмме деятельности представлены переходы потока управления от одной деятельности к другой. Диаграмма деятельности может быть присоединена к любому элементу модели, имеющему динамическое поведение. Диаграммы деятельности позволяют моделировать сложный жизненный цикл объекта, с переходами из одного состояния (деятельности) в другое. Но этот вид диаграмм может быть использован и для описания динамики совокупности объектов. Они применимы и для детализации некоторой конкретной операции, причем, как мы увидим далее, предоставляют для этого больше возможностей, чем «классическая» блок-схема. Диаграммы деятельности описывают переход от одной деятельности к другой, в отличие от диаграмм взаимодействия, где акцент делается на переходах потока управления от объекта к объекту [1,2,3].
На рисунке 3.2.1 представлена диаграмма деятельностей по добавлению нового ученика в базу данных. В процессе добавления пользователь выбирает данные по каким документам он будет вводить при добавление нового ученика.
На рисунке 3.2.2 представлена диаграмма деятельностей «Выставление оценок».
На рисунке 3.2.3 представлена диаграмма деятельностей «Выставление баллов по ЕГЭ».
На рисунке 3.2.4 представлена диаграмма деятельностей «Печать личного дела». При печати личного дела происходит формирование отчета для печати.
На рисунке 3.2.5 представлена диаграмма деятельностей «Перевод ученика в другой класс». При переводе ученика в другой класс необходимо выбрать с помощью системы поиска ученика и выбрать класс для перевода.
Диаграмма деятельностей «Удаление личного дела» представлена на рисунке 3.2.6. Личные дела хранятся в архиве в течение пяти лет.
3.3 Диаграмма классов
Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования [1,2,3].
Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывает их внутреннюю структуру и типы отношений. На данной диаграмме не указывается информация о временных аспектах функционирования системы. С этой точки зрения диаграмма классов является дальнейшим развитием концептуальной модели проектируемой системы.
Она используется для документирования программных систем, и основным ее компонентом является класс.
Класс на диаграмме изображается в виде прямоугольника, разделенного горизонтальными линиями на три части. В первой части указывается название класса. Как правило, имя класса состоит из одного, максимум двух слов. Вторая часть содержит перечень атрибутов класса, которые характеризуют тот или иной объект этого класса в модели предметной области. Третья часть содержит перечень операций, отражающих его поведение в модели предметной области.
Диаграмма классов представляет собой некоторый граф, вершинами которого являются элементы типа «классификатор», которые связаны различными типами структурных отношений. Следует заметить, что диаграмма классов может также содержать интерфейсы, пакеты, отношения и даже отдельные экземпляры, такие как объекты и связи. Когда говорят о данной диаграмме, имеют в виду статическую структурную модель проектируемой системы. Поэтому диаграмму классов принято считать графическим представлением таких структурных взаимосвязей логической модели системы, которые не зависят или инвариантны от времени.
Диаграмма классов состоит из множества элементов, которые в совокупности отражают декларативные знания о предметной области. Эти знания интерпретируются в базовых понятиях языка унифицированного языка моделирования (UML), таких как классы, интерфейсы и отношения между ними и их составляющими компонентами. При этом отдельные компоненты этой диаграммы могут образовывать пакеты для представления более общей модели системы [1,2,3].
Сокрытие от пользователя внутреннего устройства объектов называется инкапсуляцией. Если говорить более «научным» языком, то инкапсуляция — это защита отдельных элементов объекта, не затрагивающих существенных характеристик его как целого.
В программировании инкапсуляция обеспечивается с помощью модификаторов видимости. С их помощью можно ограничить доступ к атрибутам и операциям объекта со стороны других объектов. Если атрибут или операция описаны с модификатором private, то доступ к ним можно получить только из операции, определенной в том же классе. Если же атрибут или операция описаны с модификатором видимости public, то к ним можно получить доступ из любой части программы. Модификатор protected разрешает доступ только из операций этого же класса и классов, создаваемых на его основе. В языках программирования могут встречаться модификаторы видимости, ограничивающие доступ на более высоком уровне, например, к классам или их группам, однако смысл инкапсуляции от этого не изменяется.
Диаграмма классов изображена на рисунке 3.3.1.
4. Реализация базы данных
Сегодня организации сталкиваются с многочисленными проблемами по обработке информации; например, с потребностью в более быстрых и основанных на управлении данными решениях, с потребностью увеличить производительность и мобильность штата разработчиков, а также с настойчивыми требованиями уменьшить общий бюджет отдела информационных технологий, увеличивая инфраструктуру в соответствии со строго возрастающими требованиями.
Microsoft SQL Server 2005 Express является решением для управления и анализа данных, которое предоставляет повышенную безопасность, стабильность данным предприятия и аналитическим приложениям, облегчая их построение, развёртывание и управление.
Построенные на сильных сторонах SQL Server 2000, SQL Server 2005 Express представляет собой интегрированное решение по управлению и анализу данных, которое поможет организациям различного масштаба:
— строить, развертывать и управлять промышленными приложениями, которые являются более безопасными, масштабируемыми и надежными;
— увеличивать продуктивность информационных технологий, уменьшая сложность построения, развертывания и управления приложениями по работе с базами данных;
— разделять данные между платформами, приложениями и устройствами для облегчения соединения внутренних и внешних систем;
— контролировать стоимость, не жертвуя качеством выполнения, доступностью, масштабируемостью и безопасностью.
SQL Server 2005 Express имеет существенные улучшения в модели безопасности платформы базы данных, с намерением предоставить более точный и гибкий контроль для обеспечения безопасности данных. Значительные вложения были сделаны в большое количество функций для обеспечения высокого уровня безопасности данных вашего предприятия, включая:
— применение политик для паролей учётных записей SQL Server в области аутентификации;
— обеспечение большей модульности дл указания разрешений на различных уровнях в области авторизации;
— разделение владельца и схемы в области управления безопасностью.
Новая модель безопасности SQL Server 2005 Express позволяет администраторам управлять разрешениями на модульном уровне и в указанной области, делая управление разрешениями проще, а также обеспечивает выполнения принципа наименьших привилегий.
Кластеры SQL Server 2005 Express поддерживают аутентификацию Kerberos для виртуальных серверов SQL Server 2005 Express. Администраторы могут указать политики типа Windows для стандартных учётных записей, так что единообразная политика применяется ко всем учётным записям домена.
SQL Server 2005 Express поддерживает шифрование внутри базы данных, полностью интегрированное с инфраструктурой управления ключами. По умолчанию, коммуникации между клиентом и сервером шифруются. Для того чтобы концентрировать гарантии безопасности, может быть определена серверная политика, которая будет отвергать незашифрованные коммуникации.
На рисунке 4.1 представлена диаграмма базы данных.
5. Система математического обеспечения
5.1 Обоснование структуры математического обеспечения
При проектировании используется язык программирования С#. C# - это простой, типизированный, объектно-ориентированный язык программирования общего назначения. Visual C# дает разработчикам, занимающимся написанием кода, широкие возможности и языковую поддержку для создания сложных, подключенных веб — приложений и клиентских приложений на базе.NET Framework [9,10].
C# - это полнофункциональный объектно — ориентированный язык, который поддерживает все три «столпа» объектно-ориентированного программирования: инкапсуляцию, наследование и полиморфизм. Он имеет прекрасную поддержку компонентов, надежен и устойчив благодаря использованию «сборки мусора», обработки исключений, безопасности типов [9,10].
Язык C# разрабатывался «с нуля» и вобрал в себя много полезных свойств таких языков, как C++, Java, Visual Basic, а также Pascal, Delphy и др. При этом необходимость обратной совместимости с предыдущими версиями отсутствовала, что позволило языку C# избежать многих отрицательных сторон своих предшественников [9,10].
5.2 Обоснование выбора системы программирования
Для создания информационной системы было принято решение об использование пакета Microsoft Visual Studio 2008.
В Visual Studio 2008 свыше 250 новых функций, включая такие усовершенствования, как визуальные дизайнеры для ускорения разработки на базе.Net Framework 3.5, модернизированные инструменты веб — разработки и усовершенствования в области языка. Особый интерес представляет технология быстрой разработки приложений LINQ (Language Integrated Query), которая заполняет пробел между объектами программирования и данными. Она позволяет разработчикам сосредоточиться на том, что должно происходить с данными, а не на способах доступа к ним.
Visual Studio Team System 2008, интегрированный и расширяемый пакет средств управления жизненным циклом приложений, позволяющий снизить сложность создания распределённых сервис — ориентированных приложений. Набор инструментов Team System позволяет улучшить планирование и предсказуемость ведения проектов, добиться организационной эффективности и сократить общие затраты на разработку. Visual Studio Team System состоит из сервера Microsoft Visual Studio Team System 2008 Team Foundation Server и набора клиентских приложений. Microsoft Visual Studio Team System 2008 Team Suite, включающих инструменты для разработчиков, руководителей проектов разработки ПО, тестировщиков программ, архитекторов и проектировщиков приложений и ИТ — инфраструктуры, специалистов по тестированию и менеджеров проектов, а так же для лиц, принимающих бизнес — решения в ИТ — компаниях. В числе таких инструментов — графические конструкторы для проектирования корпоративных систем, средства модульного и нагрузочного тестирования, ранее использовавшиеся только программистами Microsoft.
Microsoft Visual Studio Team System 2008 Team Suite — комплексная среда разработки — предоставляет разработчикам, выполняющим в команде различные функции, самый полный набор инструментов для проектирования, разработки архитектуры и баз данных, а также для тестирования приложений. Коллективы разработчиков получают в своё распоряжение средства проектирования приложений, кодирования и управления качеством, а также гибкую методологию процесса разработки.
6. Ленточное меню
В основе нового пользовательского интерфейса в Microsoft Office 2007 лежит Ribbon — область в верхней части экрана, в которой содержатся главные команды, которые используются в той или иной офисной программе. Ribbon представляет собой набор вкладок, каждая из которых, в свою очередь, включает набор команд для реализации тех или иных операций.
Важным отличием Ribbon от меню и панелей задач является то, что команды внутри вкладок подразделяются по решаемым ими задачам и по их важности для решения той или иной задачи. Более того, вкладки могут быть контекстными — например все команды для работы с графическим изображением или с таблицей становятся доступны только после выбора этого объекта. Вам больше не потребуется искать функции в меню, в панелях и т. п. — все они собраны в одном месте, в соответствующей вкладке Ribbon.
Новый пользовательский интерфейс, реализованный фирмой Microsoft в Microsoft Office 2007, вызвал большой интерес в среде разработчиков. Классические меню и панели инструментов уходят в прошлое, им на смену приходит новый ленточный (риббон, ribbon) интерфейс, известный под кодовым именем Fluent UI. Поскольку Microsoft является известным законодателем мод в программной индустрии, то появление нового интерфейса означает одно — вскоре он будет реализован в большинстве современных приложений и станет стандартом.
Современные приложения реализуют все больше и больше функций. Меню и панели инструментов в них все более перегружены, так что пользователям приходится тратить море времени на поиск нужных команд. Различные полумеры типа «скрывать редко используемые пункты меню» проблемы не решают. Именно поэтому появился Fluent UI, в котором традиционные меню и панели инструментов заменены лентой (риббоном). Команды на ленте сгруппированы по вкладкам. На каждой вкладке размещена группа команд, относящихся к той или иной области деятельности в приложении. В результате пользователю нет необходимости рыскать по меню в поисках той или иной команды — все команды находятся в нужный момент перед глазами.
Elegant Ribbon — это небольшая, но мощная библиотека компонентов, разработанная фирмой FOSS Software, Inc., позволяющая реализовать Fluent UI в приложениях под Windows Forms. Библиотека реализует практически все возможности Fluent UI и содержит качественный дизайнер форм, дающий возможность быстро и удобно программировать ленточный интерфейс. Библиотека написана на стопроцентно — управляемом C# и весьма легковесна.
Реализация элементов управления в Elegant Ribbon технически выполнена очень грамотно и на самом современном уровне. Во — первых, одни и те же элементы управления библиотеки могут использоваться в различных контекстах — на форме, на ленте Fluent UI и в меню. Во — вторых, один и тот же элемент управления может иметь несколько способов отображения, например в виде большой иконки или в виде маленькой иконки с текстом, причем переключение между способами отображения происходит автоматически при изменении размеров окна. Кстати, внешний вид элементов управления задается скинами и описывается с помощью XML — файла. В — третьих, там, где это возможно, элементы управления являются windowless, т. е. для них не создается отдельных окон в системе. Это позволяет экономить системные ресурсы и увеличивает производительность системы. К слову сказать, Microsoft Net славится своей медленной прорисовкой сложных элементов управления, и с этой проблемой разработчикам приходится активно бороться. В Elegant Ribbon скорость прорисовки интерфейса очень неплохая — никаких «тормозов» не наблюдается.
Набор элементов управления Elegant Ribbon весьма богат, хотя и не является полным. Из стандартных элементов управления отсутствуют, по большому счету, лишь RichEdit, ListView, TreeView и TabControl.
Интерфейс Ribbon организован просто и логично. Лента вверху окна содержит вкладки, каждая вкладка содержит одну или несколько групп, каждая группа служит контейнером для обычных элементов управления — кнопок, checkbox, combobox и т. п. Реализация ленточного интерфейса с помощью Elegant Ribbon начинается с добавления на форму компонента Ribbon. При этом на форму добавляются Application Button, Application Menu, компонент FormFrameSkinner для управления темами и лента с одной вкладкой и одной размещенной на ней пустой группой. Далее, с помощью контекстного меню, на ленту можно добавить сколько угодно вкладок и разместить на каждой из них сколько угодно групп.
Элементы управления в группы помещаются стандартным образом — путем их перетаскивания на форму из панели инструментов. Библиотека Elegant Ribbon предоставляет достаточно широкий набор элементов управления, которые могут быть размещены в группах, включая разнообразные варианты кнопок, ComboBox, RadioButton, CheckBox, TextBox, DataTimePicker и календарь. По сравнению с аналогичными стандартными элементами управления они содержат ряд дополнительных свойств, обеспечивающих возможность реализации полноценного ленточного интерфейса.
Одним из ключевых преимуществ нового интерфейса является то, что размер и расположение элементов управления на ленте автоматически изменяются при изменении ширины окна таким образом, чтобы они оставались наиболее информативными при данных размерах окна. В Elegant Ribbon такое автомасштабирование реализовано на очень высоком уровне. Каждому элементу управления, включая ComboBox, DataTimePicker и TextBox, можно сопоставить текст и два набора иконок — больших (32×32 пикселя) и маленьких (16×16 пикселей). По мере уменьшении ширины окна размещенные в группах элементы управления уменьшаются и становятся все менее информативными — большие иконки сменяются малыми, текстовые метки пропадают.
Elegant Ribbon позволяет явно управлять порядком понижения информативности каждого конкретного элемента управления при уменьшении свободного места. Для этого предназначен набор свойств Informativeness, позволяющий определить максимальный и минимальный уровень информативности. Например, для ComboBox в качестве максимального размера по умолчанию указан ComboBoxWithImageAndLabel в качестве минимального ComboBox. Если задать оба размера равными ComboBoxWithLabel, то этот элемент управления будет отображаться в виде «текстовая метка + ComboBox» при любом масштабировании. В том случае, когда для отображения группы места недостаточно даже при минимальном уровне информативности, вместо нее отображается кнопка, при нажатии на которую появляется всплывающая панель с группой.
Таким образом, при размещении элементов управления в группах пользователь не управляет их размерами самостоятельно — за него это делает Elegant Ribbon. Если же требуется разместить в группе элементы управления заданным образом, можно воспользоваться панелью. Наличие полноценной панели — это приятная и чрезвычайно полезная особенность данной библиотеки. Панели можно добавлять в группы и произвольным образом размещать на них элементы управления.
7. Создание пакета установки
Установка программы представляет собой копирование сборок и файлов, необходимых для работы приложения, в определенную папку на компьютере пользователя. При этом также происходит интеграция приложения в операционную систему Windows — добавление иконок на рабочий стол, в меню «Пуск», в контекстное меню правой кнопки мыши. Если размер программы достаточно велик, файлы подлежат также архивации, и тогда установка программы сопровождается ее извлечением из архива.
В качестве исходного приложения для распространения будет дипломный проект «Diplom». На панели инструментов Standard среды Microsoft Visual Studio расположен список Solution Configurations, значения которого определяют режим компиляции приложения (рисунок 7.1).
Приложение, подлежащее распространению, должно состоять только из рабочих файлов, поэтому в списке Solution Configurations выбираем режим Release и компилируем приложение. При этом в проекте появится папка binRelease с готовым приложением.
Создаем новый проект под название «Setup» (рисунок 7.2).
В окне Solution Explorer щелкаем на названии проекта — «Setup» и затем переходим в окно его свойств, щелкая на вкладку Properties. А в окне Properties настраиваем свойства пакета установки (рисунок 7.3).
Указываем автора, и производителя продукта, а также само название продукта.
Добавим файл Diplom. exe, который предстоит упаковать. Щелкаем правой кнопкой на папке Application Folder и выбираем пункт Add/File. Также следует создать папки, в которых хранятся фотографии учащихся и работников, а также ксерокопии документов — Application Folder/ Add/Folder. На рисунке 7.4 показаны уже добавленные файлы приложения в проект установки.
Добавим ярлыки приложения в пакет — они будут появляться при установке программы на Рабочем столе и в меню «Пуск» (рисунок 7.5).
Ярлыки следует переместить в User’s Desktop и User’s Programs Menu.
В процессе установки будет появляться несколько диалоговых окон, созданных по шаблону.
Устанавливаем режим Release и компилируем проект. В папке binRelease появится пакет установки приложения (рисунок 7.6).
Создаем файл автозапуска «Autorun» и файл «Readme» для предупреждения пользователя о процессе установки.
8. Руководство пользователя
8.1 Установка программного комплекса
Для установки пользователю необходимо вставить диск с программным комплексом в привод CD — ROM и дождаться, пока запуститься мастер установки, или же запустить его самому выбрав в каталоге диска установочную программу Setup.exe.
После начала процесса установки запустится мастер установки, который поэтапно установит приложение на компьютер.
На рисунке 8.1.1 представлено приветственное диалоговое окно мастера установки.
На рисунке 8.1.2 представлено диалоговое окно выбора папки для установки. А также выбор пользователей, для которых будет доступно это приложение.
На рисунке 8.1.3 представлено диалоговое окно подтверждения установки.
На рисунке 8.1.4 представлено диалоговое окно процесса установки.
После того, как мастер установки закончит установку приложения и компонентов на компьютер появится диалоговое окно, информирующее об окончании установки (рисунок 8.1.5).
После установки на рабочем столе и в меню «Пуск» появятся ярлыки для запуска приложения. Приложение установится в папку /DVGUPS/Gymnasium № 3 — Personal history pupil на компьютере пользователя, также в этой папке появятся папки для хранения фотографий и копий документов. На рисунке 8.1.6 представлено содержимое папки «Gymnasium № 3 — Personal history pupil» с распакованными файлами пакета установки.
8.2 Сценарий входа в приложение
Для того, чтобы начать работу с программным комплексом, необходимо найти свою фамилию в списке и ввести пароль. Если пароль введен верно, то появиться сообщение о том, что доступ разрешен. Если введен не верный пароль три раза, то программный комплекс будет автоматически закрыт, а пользователь не будет проинформирован о причинах выхода из приложения. Данная процедура входа в систему сделана с целью защиты от программ-взломщиков паролей, работающих на алгоритмах подбора правильной комбинации.
На рисунке 8.2.1 представлено меню входа в программный комплекс. Пользователь выбирает из списка свою фамилию, в полях отображаются имя и отчество.
После успешной регистрации появится приветственное сообщение (рисунок 8.2.2).
Пользователь покидает меню входа и попадает в основное меню приложения. Меню приложения состоит из четырех основных вкладок: «Просмотр», «Добавить», «Изменить» и «Пользователь» (рисунок 8.2.3).
Меню программного комплекса представлено в виде ленточного меню. Пользователь может наглядно получать информацию о меню, в котором находится.
8.3 Права доступа
После входа в систему в программном коде будет сформирован список доступных функций для пользователя. Все будет зависеть от прав доступа, и занимаемой должности.
Нажав в меню системную клавишу, и выбрав в меню «Личная информация» (рисунок 8.3.1 — 8.3.2) пользователь сможет убедиться, работает ли он под своим именем в системе, и за время его отсутствия или по другим причинам программный комплекс не был закрыт.
Права доступа разделены на три уровня и присваиваются пользователям в зависимости от должности, занимаемой в гимназии, и аспектах, связанных с выполняемыми им функциями: полный доступ, первый уровень доступа, второй уровень доступа.
Полным доступом ко всем ресурсам программного комплекса обладает только администратор. Он имеет право на все функции, включая добавление или удаление пользователей, добавление новых локаций в базу данных и т. п.
Первый уровень доступа предоставляет права на большинство функций, однако не может добавлять, удалять и редактировать данные по пользователям, добавлять в базу данных новые локации.
Второй уровень доступа предоставляет ограниченное количество функция. Полностью имеет право на просмотр всей информации, но добавлять, изменять информацию может лишь частично. Этот уровень самый низкий и рассчитан на педагогический персонал гимназии.
8.4 Меню «Просмотр»
В меню «Просмотр» (рисунок 8.4.1) собраны справочники программного комплекса.
В группе «Просмотр» (рисунок 8.4.2) собраны основные функции по просмотру существующих справочников системы.
Основным справочником является справочник по ученикам гимназии. Выбрав в меню пункт «Просмотр учеников» мы попадаем в меню поиска учеников (рисунок 8.4.3). Нам предоставлены три способа поиска: все, по параллели, по классу (рисунок 8.4.4). Выбрав пункт все, нам будет предоставлен список всех учеников гимназии, выбрав параллель, мы сможем получить список учеников только интересующей нас параллели, а выбрав поиск по классу, то мы сможем получить список учеников только выбранного нами класса.
Итак, мы выбираем поиск по классу, выбираем интересующий нас класс (11А) и нажимаем на кнопку «Поиск». На рисунке 8.4.5 представлен результат поиска учеников по классу. В результатах поиска отображаются ФИО учеников и класс, в котором ученик числиться.
Теперь получив список учеников можно посмотреть личную информацию об ученике, выбрав его в таблице (рисунок 8.4.6). В таблице находится список всех предметов с итоговыми годовыми оценками, которые за время обучения в гимназии получил ученик.
Код формирования таблицы с оценками представлен в листинге 8.4.1.
Листинг 8.4.1 — Получение таблицы с оценками
public DataTable MarkPupil (Connection con, int PupilID, string Table_MarkPupil, string Mark_ID, string MarkPupil_ID, string MarkClass_ID, string MarkSyn_ID)
{
SqlCommand com = new SqlCommand ();
com.Connection = con. Con;
DataTable table = new DataTable ();
int count;
com.CommandText ="SELECT COUNT (*) FROM «+Table_MarkPupil;
con.Open ();
count = (int)com.ExecuteScalar ();
con.Close ();
#region Получение списка уровней классов
int countLayerClass;
com.CommandText = «SELECT COUNT (*) FROM TABLE_LAYERCLASS» ;
con.Open ();
countLayerClass = (int)com.ExecuteScalar ();
con.Close ();
int[] LayerClassIDMas = new int[countLayerClass];
string[] LayerClassMas = new string[countLayerClass];
int k = 0;
com.CommandText = «SELECT LAYERCLASSID FROM TABLE_LAYERCLASS» ;
con.Open ();
SqlDataReader LayerClassIDReader = com. ExecuteReader (CommandBehavior.CloseConnection);
while (LayerClassIDReader.Read ())
{
LayerClassIDMas[k] = LayerClassIDReader. GetInt32(0);
k++;
}
LayerClassIDReader.Close ();
con.Close ();
k = 0;
com.CommandText = «SELECT LAYERCLASS FROM TABLE_LAYERCLASS» ;
con.Open ();
SqlDataReader LayerClassReader = com. ExecuteReader (CommandBehavior.CloseConnection);
while (LayerClassReader.Read ())
{
LayerClassMas[k] = LayerClassReader. GetString (0);
k++;
}
LayerClassReader.Close ();
con.Close ();
k = 0;
#endregion
#region Получение списка предметов
int countSyn;
com.CommandText = «SELECT COUNT (*) FROM TABLE_SYN» ;
con.Open ();
countSyn = (int)com.ExecuteScalar ();
con.Close ();
int[] SynMasID = new int[countSyn];
com.CommandText = «SELECT SYNID FROM TABLE_SYN» ;
con.Open ();
SqlDataReader SynIDReader = com. ExecuteReader (CommandBehavior.CloseConnection);
while (SynIDReader.Read ())
{
SynMasID[k] = SynIDReader. GetInt32(0);
k++;
}
SynIDReader.Close ();
con.Close ();
k = 0;
string[] SynMas = new string[countSyn];
com.CommandText = «SELECT SYN FROM TABLE_SYN» ;
con.Open ();
SqlDataReader SynReader = com. ExecuteReader (CommandBehavior.CloseConnection);
while (SynReader.Read ())
{
SynMas[k] = SynReader. GetString (0);
k++;
}
SynReader.Close ();
con.Close ();
k = 0;
#endregion
#region Получение списка оценок
int countMark;
com.CommandText = «SELECT COUNT (*) FROM TABLE_MARK» ;
con.Open ();
countMark = (int)com.ExecuteScalar ();
con.Close ();
int[] MarkMasID = new int[countMark];
com.CommandText = «SELECT MARKID FROM TABLE_MARK» ;
con.Open ();
SqlDataReader MarkIDReader = com. ExecuteReader (CommandBehavior.CloseConnection);
while (MarkIDReader.Read ())
{
MarkMasID[k] = MarkIDReader. GetInt32(0);
k++;
}
MarkIDReader.Close ();
con.Close ();
k = 0;
string[] MarkMas = new string[countMark];
com.CommandText = «SELECT MARK FROM TABLE_MARK» ;
con.Open ();
SqlDataReader MarkReader = com. ExecuteReader (CommandBehavior.CloseConnection);
while (MarkReader.Read ())
{
MarkMas[k] = MarkReader. GetString (0);
k++;
}
MarkReader.Close ();
con.Close ();
k = 0;
#endregion
table.Columns.Add («Предмет», typeof (string));
for (int j = 0; j < LayerClassIDMas. Length; j++)
{
table.Columns.Add (LayerClassMas[j], typeof (string));
}
for (int j = 0; j < countSyn; j++)
{
table.Rows.Add (new object[] { SynMas[j]});
table.AcceptChanges ();
}
string Mark, MarkID;
for (int i = 0; i < count; i++)
{
for (int j = 0; j < LayerClassIDMas. Length; j++)
{
for (int y = 0; y < SynMasID. Length; y++)
{
MarkID = «» ;
com.CommandText =String.Format («SELECT „+Mark_ID+“ FROM „+Table_MarkPupil+“ WHERE „+MarkPupil_ID+“ ='{0}' AND „+MarkClass_ID+“ ='{1}' AND „+MarkSyn_ID+“ ='{2}'» ,
PupilID, LayerClassIDMas[j], SynMasID[y]);
con.Open ();
MarkID = System.Convert.ToString (com.ExecuteScalar ());
con.Close ();
if (MarkID≠"")
{
com.CommandText = String. Format («SELECT MARK FROM TABLE_MARK WHERE MARKID='{0}'», MarkID);
con.Open ();
Mark = (string)com.ExecuteScalar ();
con.Close ();
table.Rows[y][LayerClassIDMas[j]] = Mark;
}
}
}
}
return table;
}
На рисунке 8.4.7 представлена личная информация об ученике, его ФИО, класс. Также можно посмотреть данные его паспорта и свидетельства о рождении (рисунок 8.4.9 — 8.4.10).
В случаи, если данные паспорта или свидетельства о рождении отсутствуют, то системой будет предложена возможность добавить их (рисунок 8.4.8).
Вводить данные необязательно, но желательно, так как информация об ученике будет не полной.
Нажав кнопку «Печать копии» мы откроем окно печати копии документа (рисунок 8.4.11). Печать документа необходима при составлении отчетной документации по ученикам или в случаи передачи личного дела в другое учебное заведение, связанное с его переводом.
Нажав на кнопку «Просмотр», откроется окно предварительного просмотра изображения (рисунок 8.4.12). Нажав на кнопку «Настройки», откроется окно параметров страницы (рисунок 8.4.13). А нажав на «Печать» откроется окно печати документа.
Выбрав предварительный просмотр, пользователь имеет возможность просмотреть, как на странице будет размещено изображение при печати.
Пользователь может настроить параметры страницы для печати, установить поля, ориентацию страницы и размер бумаги для печати (рисунок 8.4.14).
Код печати копии документа представлен в листинге 8.4.2.
Листинг 8.4.2 — Событие нажатие кнопки «Печать»
private void button1_Click (object sender, EventArgs e)
{
PrintDialog diag = new PrintDialog ();
diag.Document = printDocument1;
if (diag.ShowDialog () == DialogResult. OK)
{
printDocument1.Print ();
}
}
При печати откроется стандартное диалоговое окно печати документов. Пользователь может выбрать число копий, принтер.
Можно посмотреть все итоговые годовые оценки ученика по всем дисциплинам, полученные им за время его обучения в гимназии, и результаты единого государственного экзамена (рисунок 8.4.15).
Нажав на кнопку «Печать», откроется окно печати личного дела ученика (рисунок 8.4.16). На печать отправляется информация по ученику, ФИО, класс, и таблица с оценками. Печать личного дела необходима для формирования отчетной документации, а также в случаи запросов от министерства образования и других вышестоящих органов, а также в случаи перевода в другое общеобразовательное учреждение, или по запросу родителей.
При печати личного дела необходимо распечатать лист с оценками, код передачи таблицы с оценками представлен в листинге 8.4.3.
Листинг 8.4.3 — Передача таблицы с оценками на печать
System.Drawing.Bitmap bmp = new Bitmap (this.dataGridView1.Width, this. dataGridView1.Height);
this.dataGridView1.DrawToBitmap (bmp, new System.Drawing.Rectangle (new Point (0, 0), this. dataGridView1. Size));
if (File.Exists (Application.StartupPath + String. Format («//Bitmap1.bmp»)) == true)
{
File.Delete (Application.StartupPath + String. Format («//Bitmap1.bmp»));
bmp.Save (Application.StartupPath + String. Format («//Bitmap1.bmp»));
}
else
{
bmp.Save (Application.StartupPath + String. Format («//Bitmap1.bmp»));;
}
Таблица с оценками преобразуется в картинку и передается на страницу печати.
Выбрав в меню «Просмотр» — «Просмотр классов», мы откроем справочник (рисунок 8.4.17) по классам и их специализацией (общеобразовательный, гуманитарный, технический и т. п.). В списке находятся все существующие в базе данных профили классов, как действующие, так и временно отсутствующие виды классов.
Специализация класса влияет на учебный план. Например, если класс общеобразовательного характера, то часы по предметам будут разделены пропорционально в зависимости от требований учебного плана, но если класс специализированный, то упор будет сделан на предметы, которые относятся к специализации класса.
Выбрав в меню «Просмотр» «Просмотр предметов», мы откроем справочник (рисунок 8.4.18) по предметам, по которым обучают в гимназии.
Выбрав в меню пункт «Архив», мы откроем архив гимназии по выпушенным ученикам. В архиве хранятся итоговые годовые оценки, полученные учеником за время обучения в гимназии, а также результаты ЕГЭ. Окно архива полностью повторяет окно просмотра данных по действующему ученику.
8.5 Меню «Добавить»
В меню «Добавить» (рисунок 8.5.1) предоставлен доступ к основным функциям системы, позволяющим добавлять данные в базу данных. С помощью этого пункта меню будет пополняться и расширятся база справочной информации системы, а также пополнятся данные по ученикам, их успеваемость.
В группе «Добавить данные по ученикам» (рисунок 8.5.2) собраны функции по добавлению данных об учениках в базу данных.
Меню «Добавить ученика». Выбрав этот пункт меню, мы сможем добавить данные по новому ученику в базу данных.
Выбираем класс, вводим данные по ученику (ФИО, пол), загружаем фотографию ученика (рисунок 8.5.3). Загрузка фотографии ученика не обязательна, но для большой персонализации личного дела рекомендуется привязывать фотографию к личному делу. Фотографии хранятся в каталоге PhotoPupil.
Выбираем, будут ли введены данные по паспорту и свидетельству о рождении ученика.
Код добавления нового ученика в базу данных представлен в листинге 8.5.1.
Листинг 8.5.1 — Добавление нового ученика в базу данных
public int AddPupil (Connection con, string FamilyPupil, string NamePupil, string PatronymicPupil,
string LayerClass, string TypeClass, string SpeciesClass, string DateEnterShcool,
string PhonePupil, string SexPupil, int BirthdayCertificate_ID, int Passport_ID, string Image)