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

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

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

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

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

  • анализ требований;
  • проектирование;
  • реализация;
  • тестирование;
  • внедрение и сопровождение.

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

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

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

В зависимости от решаемых задач, в наших решениях мы используем:
  • платформы – Windows, Linux, Unix;
  • языки программирования – Java, C++, C#, Visual С;
  • GUI и WEB пользовательский интерфейс;
  • СУБД – Oracle, Oracle lite, MS SQL, MSSQL CE.

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

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

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

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

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

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

 
 
     
Размещено в Digital Generation