Процесс разработки программы и методология построения приложений для интернета
Разработчику поручено создать веб-сайт или другое программное решение. Он должен определить, что именно клиент хочет от своего сайта, а также убедить его в предоставлении необходимого количества времени и суммы денег для создания веб-сайта. Это позволит команде разработки создать именно тот сайт, который нужен клиенту. Трудность заключается в том, что клиент зачастую сам не знает, чего он хочет. Нередки случаи, когда он требует выполнения работы за очень короткий промежуток времени. Команда разработки не знает, что нужно клиенту, а разработчики не всегда знают, как достичь желаемого результата, даже если конечный результат известен.
Многие менеджеры и ведущие специалисты в области разработки ПО следуют схеме, называемой "унифицированным процессом". План унифицированного процесса разделен на этапы, выполняемые в любом цикле разработки. Целью процесса является снижение риска создания ПО, которое не отвечает требованиям владельца и клиента. Процесс направлен на выявление любых неизвестных, предположений или рисков, оценку усилий, необходимых для получения качественного программного решения наиболее эффективным способом.
Из унифицированного процесса взяли свое начало многие процессы, однако их применение может варьироваться. Компании разрабатывают программное обеспечение, поддерживающее частичное использование унифицированного процесса. В качестве примера приведем компанию Rational Software, работающую с версией унифицированного процесса Rational Unified Process.
Определения терминов
В данной лекции используется ряд специальных терминов, определения которых приводятся ниже.
Под владельцем подразумевается получатель веб-сайта. Термин клиент обозначает пользователя сервера. Данное разграничение предотвращает путаницу, возникающую при равнозначном использовании этих терминов. Владельцем является начальник, сотрудник отдела продаж или рекламный представитель. Несмотря на то, что мотивы каждого владельца различны, все они выступают в роли заменителей конечных пользователей. Владелец всегда требует от сайта выполнения определенной задачи с наименьшими затратами ресурсов.
Термин конечный пользователь обозначает лицо, потребляющее некоторое программное обеспечение. Это может быть человек, использующий браузер для просмотра веб-сайтов или получающий файл по электронной почте с сервера SMTP. Конечный пользователь взаимодействует с программным решением.
Термины программное решение, автоматизированное решение и решение являются взаимозаменяемыми. В данной лекции все они объединены в термин "решение". Решением называется комбинация программного и аппаратного обеспечения, необходимого для выполнения определенной работы.
Менеджером проекта является лицо, осуществляющее контроль над проектом с момента выделения владельцем средств на создание решения до получения клиентом готового продукта. Менеджер проекта выполняет работу по управлению требованиями клиента и отвечает за соблюдение временных рамок проекта. Если проект является долгосрочным, менеджер проекта выступает в роли ответственного за прибыль проекта.
Бизнес-аналитик является официальным адвокатом владельца и определяет, каким образом должно функционировать решение. Данное лицо, как правило, владеет функциональной спецификацией. Эту роль могут выполнять и другие лица, например, менеджеры проекта и разработчики.
Команда разработки – группа разработчиков, ведущих специалистов, менеджеров по разработке и системных архитекторов. В разных организациях должности и роли различаются. В общем случае команда разработчиков занимается написанием кода, но не осуществляет контроль над кодом и настройку оборудования.
Системные специалисты занимаются управлением оборудованием. Они отвечают за аппаратную часть, управляя, настраивая и поддерживая аппаратное обеспечение и операционную систему. Лица данной категории производят настройку решений, но не занимаются написанием кода.
Разработчик пользовательских интерфейсов занимается реализацией логики представления для конкретного программного решения. Разработчик объектов отвечает за создание кода бизнес-логики и логики данных.
UML – аббревиатура от Unified Modeling Language (Унифицированный язык моделирования). Этот язык применяется для документирования любых процессов. Для документирования программного обеспечения используются рисунки.
Use case – описание бизнес-события или процесса, осуществляемого программой.
QA – аббревиатура от Quality Assurance (Контроль качества). Обозначает членов команды разработки ПО, ответственных за тестирование программного обеспечения.