Разработка программного обеспечения на заказ
Наша компания имеет большой опыт разработки специализированного программного обеспечения для различных направлений бизнеса.
Клиентами нашей компании являются предприятия розничной и оптовой торговли, дистрибуционные компании, банки и т.д.
Любой заказ на разработку мы рассматриваем, как отдельный проект и выполняем его в соответствии с принципами проектного управления.
Типовой проект по созданию программного обеспечения включает в себя следующие основные этапы:
- анализ требований;
- проектирование;
- реализация;
- тестирование;
- внедрение и сопровождение.
Анализ требований
На данном этапе эксперты нашей компании в тесном взаимодействии с сотрудниками Заказчика формулируют общие цели и задачи проекта, выделяют базовые сущности и взаимосвязи между ними. Таким образом,
уже на начальном этапе создается фундамент для дальнейшего проектирования системы.
В рамках данного этапа мы не только фиксируем требования клиента, но и принимаем активное участие в их формировании
помогаем нашим клиентам найти адекватное решение их проблем, определить необходимую степень автоматизации деятельности, выявить наиболее актуальные для автоматизации бизнес-процессы. Осуществляемый нами консалтинг позволяет в дальнейшем существенно сократить сроки разработки и более точно решить задачи, которые ставились перед системой.
В процессе анализа требований определяются сроки и стоимость разработки программного обеспечения. При этом мы всегда гибко подходим к ценообразованию.
По завершении этапа формируется и подписывается полное техническое задание на разработку программного обеспечения.
Проектирование
На основе результатов предыдущего этапа осуществляется объектно-ориентированное проектирование системы. Это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей системы.
Проектирование проходит в тесном взаимодействии с сотрудниками Заказчика. На этапе проектирования нами широко используется имеющийся опыт создания систем вырабатываются проектные решения, связанные с выбором платформы, на которой будет функционировать система, языка (или комбинации) языков реализации, определяются требования к пользовательскому интерфейсу, выбирается наиболее подходящая СУБД и т.д.
В зависимости от решаемых задач, в наших решениях мы используем:
- платформы Windows, Linux, Unix;
- языки программирования Java, C++, C#, Visual С;
- GUI и WEB пользовательский интерфейс;
- СУБД Oracle, Oracle lite, MS SQL, MSSQL CE.
На этапе проектирования уточняется функциональная спецификация системы: прорабатывается архитектура системы, определяются требования к аппаратному обеспечению. Также определяется набор организационных мероприятий, необходимых для внедрения системы, и перечень документов, регламентирующих ее использование. В дальнейшем на всех этапах реализации проекта происходит разработка указанных документов и утверждение их Заказчиком.
Реализация
Процесс реализации организован в соответствии с моделями эволюционного типа жизненного цикла программного обеспечения. На этапе разработки широко применяются экспериментирование и анализ, строятся прототипы всей системы или ее частей. Прототипы позволяют более глубоко проникнуть в проблему и на ранних стадиях принять адекватные проектные решения. Эти решения могут затрагивать различные части системы: внутреннюю организацию, разграничение доступа, пользовательский интерфейс и т.д. Использование прототипов позволяет активно привлекать к процессу разработки специалистов Заказчика. Необходимые коррективы вносятся в проект итерационно, по мере его разработки, а не как единовременное событие, что позволяет решить задачи проекта в заданные сроки и в соответствии с выделенным бюджетом.
Результатом этапа реализации является рабочая версия продукта.
Тестирование
Процесс тестирования тесно связан с этапами проектирования и реализации. В модель встраиваются специальные механизмы, которые позволяют проводить тестирование системы при разработке и опытной эксплуатации. Специалисты, входящие в группу проекта, на всех этапах создания системы следят за соблюдением требований функциональной спецификации.
Кроме группы проекта к процессу тестирования дополнительно привлекаются независимые эксперты, которые не подчиняются руководителю проекта. Все выявленные ошибки и несоответствия заносятся в базу данных проекта. Информация об ошибках содержит такие разделы, как описание ошибки, условия ее проявления, кто ее обнаружил, кто ответственен за исправление и в какие сроки. Данный подход позволяет оперативно отслеживать и контролировать процесс тестирования системы.
Результатом этапа тестирования является заключение группы независимых экспертов о качестве разработанной системы.
Внедрение и поддержка
Этап внедрения системы предусматривает следующие основные шаги:
- установка системы,
- обучение пользователей,
- опытная эксплуатация.
К каждой разработке прилагается полный комплект документации, включающий в себя полное описание системы, руководства пользователей, рекомендуемые алгоритмы работы. Данные документы составляются с учетом уровня компьютерной грамотности персонала Заказчика.
Поддержка функционирования системы осуществляется специальной группой технической поддержки. Специалисты этого подразделения обладают всей необходимой информацией о системе. Уже на ранних этапах ее жизненного цикла они получают всю документацию о принятых проектных решениях и ходе их реализации. Кроме того сотрудники группы технической поддержки часто включаются в состав команды, осуществляющей независимое тестирование, что позволяет дополнительно повысить качество программного обеспечения и облегчить его последующее сопровождение.
Технологию разработки программного обеспечения, принятую нашей компанией в качестве основы для реализации своих программных проектов можно охарактеризовать следующими принципиальными особенностями:
- неукоснительное следование стандартам проектного управления при организации работ по проекту;
- концептуальная целостность разрабатываемых систем, которая основывается на использовании принципов объектно-ориентированного подхода при анализе, проектировании и программировании;
- использование современных платформ и языков программирования, наиболее подходящих для решения конкретной задачи.