- Пользовательский (клиентский) уровень, который реализуется в виде автоматизированных рабочих мест (АРМ) пользователей и содержит презентационную часть приложения, ввода и редактирования данных и связанную с ним бизнес-логику, такую как проверку полноты, непротиворечивости и правильности заполнения форм данных.
- Серверный уровень (обработки данных), который содержит основную бизнес-логику и логику доступа и хранения данных, реализованный на основе системы управления базами данных.
|
|
|
Инструментальные средства
Базовыми инструментальными средствами разработки большинства программных продуктов компании являются:
|
o Объектно-ориентированная визуальная система программирования Borland Delphi.
o Инструментарий быстрой разработки АРМ приложений ИнфоСиб Quilt.
o Современная мощная сетевая реляционная СУБД Oracle.
o Средство разработки серверной части PL/SQL Developer.
o Средство моделирования бизнес-процессов, описания структуры разрабатываемой программы и структуры баз данных Power Designer версии 9.
- Для анализа предметной области и проектирования приложений:
o Средства UML моделирования систем.
- Для управления проектами:
o Система управления проектами InfoSib Project, разработанная на основе свободно-распространяемой системы DotProject.
Для автоматизации разработки клиентской части приложений фирмой создан оригинальный инструментарий Quilt, облегчающий и ускоряющий процесс разработки АРМ. Данный инструментарий представляет собой исполняемый модуль и набор библиотек (bpl) и хранимых процедур Oracle. Все настройки хранятся в специальных таблицах базы данных . Существуют 2 версии инструментария – для СУБД Oracle (основная) и Interbase.
Инструментарий Quilt содержит следующие средства:
- инструментарий для построения экранных и отчетных форм со встроенным языком описания форм;
- интерпретатор, позволяющий по описаниям динамически создавать экранные формы;
- инструментарий для разработки АРМов,
- инструментарий для санкционирования прав доступа пользователей.
Разработка большинства экранных форм выполняется на базе языка Quilt и только формы и модули, требующие нестандартной логики, разрабатываются непосредственно с помощью других инструментальных средств (обычно – Delphi).
В разработках компании используется также усеченный вариант инструментария, разработанный на Java (без средств построения отчетных форм и некоторыми другими ограничениями). В ряде проектов также проводились разработки, позволяющие отображать настроенные с помощью ядра формы одновременно как в клиент-серверной модели, так и при работе через InternetExplorer..
Для освоения инструментария Quilt используется учебник «Курс молодого бойца» (оглавление учебника) и справочник языка Quilt.
|
|
Описание процесса разработки
Процесс программной разработки компании ИнфоСиб представляет собой некоторое сочетание подходов, методов, моделей и процедур методологий MSF (Microsoft Solutions Framework), RUP (Rational Unified Process) и XP (ExtremeProgramming), является пошаговым итеративный процессом выпуска версий продукта и состоит из следующих фаз разработки:
|
I. Исследование предметной области и постановка задачи.
II. Проектирование, подразделяемое на концептуальное, логическое и физическое проектирование.
III. Программирование, включающее низкоуровневое проектирование, кодирование и модульное тестирование.
IV. Стабилизация, включающее комплексное и системное тестирование, документирование и выпуск версии продукта.
|
|
Исследование предметной области и постановка задачи
Процесс исследования предметной области и постановки задачи зависит от вида проекта и подразделяется на:
|
- Постановку задачи для заказного проекта.
- Постановку задачи для «коробочного» проекта.
- Постановка задачи для внутренних проектов, включающих работы по развитию инструментально-технологической оснастки среды, процесса и инфраструктуры разработки компании и управления проектами.
При постановке задачи под заказ обязательно разрабатывается техническое задание (ТЗ) в соответствии с ГОСТ 34.602-89 "Техническое задание на создание автоматизированной системы" и внутренним стандартом фирмы, которое согласовывается с заказчиком (оглавление технического задания).
При постановке задачи для «коробочного» проекта проводится обобщение и выделение инварианта из выполненных заказных проектов и составляется:
- Спецификация продукта ( титульный лист и оглавление спецификации), включающая в частности контекстную диаграмму, архитектурную диаграмму и диаграммы деятельности.
- Описание технологических процессов, автоматизируемых в проекте.
- Бизнес-модель процессов с помощью PowerDesigner
В любом случае, по ТЗ, спецификации и/или по описаниям проектировщик составляет с помощью Power Designer и Visio диаграммы (Use Case Diagrams, Activity diagrams, ER diagrams и др.) моделей разрабатываемой системы. Данные диаграммы являются для разработчиков основным инструментом постановки задачи (пример диаграммы и описания вариантов использования).
|
|
Проектирование
Концептуальное проектирование состоит в анализе и полной детализации требований и вариантов использования разрабатываемой системы (пример описания вариантов и диаграмм использования).
|
Логическое проектирование состоит в разработке структуры базы данных (концептуальная и физическая модель) выполняется с помощью Power Designer, схема базы данных создается по сгенерированным скриптам (фрагмент концептуальной модели). Все изменения в структуре базы данных вначале фиксируются в модели.
Физическое проектирование состоит в разработке ключевой логики работы программ и функциональных спецификаций модулей, пакетов, процедур, триггеров и т.п. Основная логика работы программ обычно реализуется на сервере, в пакетах Oracle.
|
|
Программирование
Процессы низкоуровневого проектирования, кодирования, оформления и тестирования модулей и программ регламентируются внутренним корпоративным стандартом (оглавление корпоративного стандарта), который постоянно развивается по мере необходимости.
|
Стандартом определены также соглашения по оформлению пакетов Oracle, чтобы они представляли собой самодокументированный объект. Разработано средство, позволяющее автоматически сгенерировать описание пакетов и реализуемых в них функций.
Определены правила структурирования, хранения и управления изменениями кода готовых и рабочих версий модулей.
Модульное тестирование осуществляют разработчики модулей по следующему алгоритму:
- Разработчик при разработке модуля составляет методику испытаний (согласно корпоративному стандарту и требованиям к модулю, описанным в UseCaseDiagram);
- Разработчик подготавливает тестовые данные;
- Методика испытаний проверяется постановщиком.
- Модуль на тестирование передается другому разработчику
|
|
Стабилизация
Комплексное и системное тестирование систем выполняется на основе разрабатываемого документа «Программа и методика испытаний (оглавление документа) в основном ведущим разработчиком и менеджером проекта, независимое и бета тестирование выполняется только в особых случаях..
|
Для выпускаемых систем обычно разрабатывается следующая пользовательская документация в следующем составе:
|
- Общее описание программы.
- Руководство администратора.
- Руководство пользователя.
- Руководство по внедрению.
- Программа и методика испытаний.
- Деморолики и реклама для коробочных продуктов.
Для разработки документации пользователя разработан инструментарий, позволяющий генерировать шаблон документации и содержащий образцы экранных форм, используемые команды и т.п. Документация создается с помощью XML, на основании которого генерируются pdf-файлы.
В качестве рабочей документации для программистов обычно выступают:
- UseCaseDiagram (и отчет по модели) системы, в которую могут быть добавлены по мере необходимости диаграммы контекстов, классов, деятельности и другие;
- Модель физической базы данных (и отчет по модели), получаемая с помощью PoewrDesigner;
- Описание экранных форм, пакетов и триггеров, генерируемые автоматически специально разработанным инструментарием.
|
|
Управление проектами
Для планирования, управления и контроля хода проектов компания использует систему управления проектами и заданиями InfoSibProject, построенную на основе свободно-распространяемой системы DotProject.
|
Менеджер проекта создает и по мере продвижения проекта детализирует проектный план разработки, указывает планируемые сроки и оценки трудоемкости, из которых автоматически строятся календарные планы работ. На основе пунктов плана выдаются задания разработчикам, по которым он ежедневно отчитывается. Менеджер проекта отслеживает ход работ и вносит в план и задания необходимые коррективы. Кроме того, система позволяет учитывать табельное время сотрудников и просматривать отчеты об отработанном времени и выполненных заданиях.
Ежедневно в начале рабочего дня директор проектов компании проводит также «стоячие собрания» по методике экстремального XP-программирования. Это позволяет не только руководству, но и всем сотрудникам, быть в курсе всех дел всех сотрудников и обмениваться информацией.
|
|
Сопровождение
Все внедренные программные продукты обеспечиваются бесплатным гарантийным сопровождением в течение 12 месяцев со дня приемки-сдачи и по договорам сопровождения в дальнейшем. Компания обеспечивает следующие режимы сопровождения:
|
- По электронной почте.
- По телефону.
- С выездом разработчика к заказчику.
|
|
Обучение сотрудников
Для каждого сотрудника составлен перечень навыков и умений, которыми он должен обладать и которые он должен приобрести в течение года
Для повышения квалификации на фирме еженедельно проводятся семинары, на которых делаются доклады по различным областям (обычно в месяц проводятся два семинара по предметной области и два семинара – по инструментальным средствам).
|
Для информирования сотрудников создан внутренний сайт, содержащий нормативно-справочную информацию по используемым инструментальным средствам и по предметной области
|