Similar presentations:
Управление программными проектами
1.
Управлениепрограммными проектами
К.т.н., доц. кафедры ПОУТС Коняева Ольга
Сергеевна
2.
ОБЩИЕПОНЯТИЯ,
СВЯЗАННЫЕ С
РАЗРАБОТКОЙ
ПРОГРАММНОГ
О
ОБЕСПЕЧЕНИЯ
3.
Программноеобеспечение
(ПО)
Программное обеспечение — это
совокупность программ, позволяющих
осуществить на компьютере
автоматизированную обработку
информации.
Программное обеспечение – это
взаимодействие каждой из частей
системы логической цепочки нулей и
единиц, работающих по определённому
алгоритму обработки и работы с
информацией, которые так же могут
являться программами.
4.
Программноеобеспечение
(ПО)
Все программное
обеспечение разделяется на
три группы:
• системное;
• прикладное;
• инструментальное.
5.
СистемноеЭто часть системы, которая помогает следить за аппаратной стороной ПК и
управлять ею. Сюда входят программы, контролирующие работу оперативной
памяти, центрального процессора, видеокарты, устройств ввода и вывода
информации, сетевые подпрограммы.
Таким ПО считается:
• Драйверы – утилиты небольшого размера, функционирование которых
заключается в обеспечении корректной работы остальных элементов
оборудования;
• Операционные системы (ОС);
• Дополнения – языковые пакеты или настройки расширения экрана.
Основное отличие системной разновидности считается то, что она не рассчитана на
выполнение конкретной поставленной задачи. Она необходима, чтобы обеспечивать
бесперебойную работу остальных частей компьютера. Ее можно назвать
6.
ПрикладноеНаиболее обширная доля классификации. Сюда относятся
графические и текстовые редакторы, браузеры, базы данных и
все, что люди используют в привычной работе за компьютером.
Здесь же находятся антивирусные пакеты, бухгалтерия и
различные архивы.
Смысл этой разновидности в выполнении четко поставленной
задачи: рисовать, учитывать, открывать сетевые страницы,
набирать текст. Если утилита нужна для конкретного выполнения
действия, то она является прикладным ПО.
7.
ИнструментальноеСпецифическое обеспечение любой компьютерной техники. Его можно было бы
отнести к прикладному, но из-за специфики применения его выделили в отдельный
вид. Основная функция – отладка, настройка, переписывание программного кода.
Сюда входят компиляторы, отладчики, переводчики высокого уровня, редакторы,
интерпретаторы и другие средства. Они необходимы, потому что техника не
понимает человеческих слов. Чтобы ей «объяснить», что надо сделать, требуется
специальный «машинный язык».
Постоянно пользоваться этим кодом базовым пользователям довольно сложно,
поэтому были разработаны системы, которые позволяют переводить обычную речь
в двоичную, привычную для ПК.
Разница между часто используемыми компиляторами и интерпретаторами
заключается в том, что первый генерирует готовый файл, который можно запускать.
А второй создает архив, который функционирует только с помощью самого сервиса.
8.
Разработкапрограммног
о
обеспечения
(ПО)
Процесс создания ПО – множество
различных видов деятельности,
методов, методик и шагов,
используемых для разработки
и эволюции ПО и связанных с ним
продуктов (проектных планов,
документации, программного кода,
тестов, пользовательской
документации и пр.).
9.
Процесс разработки ПО определяет действия иорганизационные процедуры, направленные на
усиление совместной работы в бригаде разработчиков
с целью поставки заказчикам высококачественных
программных продуктов. На модель процесса
возлагаются следующие функции:
Разработка
1. Установление порядка выполнения действий.
программног 2. Определение состава и времени поставки
артефактов, создаваемых в процессе разработки.
о
3. Закрепление действий и артефактов за
разработчиками.
обеспечения
4. Введение критериев отслеживания хода проекта,
измерение результатов и планирование будущих
(ПО)
проектов.
10.
Разработкапрограммног
о
обеспечения
(ПО)
Технология разработки программного
обеспечения (ПО) – это комплекс мер по
созданию программных продуктов (ПП).
Данная деятельность включает в себя
несколько этапов, с которыми так или
иначе придётся столкнуться при
разработке достаточно крупного ПО.
Ключевым понятием в технологии
разработки ПО является
понятие жизненного цикла
программного продукта. С его
рассмотрения мы и начнём.
11.
Заказчики – формируют требования к продукту,верхнеуровнево описывают задачу на языке бизнес
целей и выгоды.
Участники
разработки
ПО
Архитекторы – разрабатывают архитектурное
решение продукта, схему интеграций с другими
системами.
Аналитики – бизнес аналитики и системные
аналитики. Бизнес аналитики отвечают за
проработку бизнес задач и формирование основных
функциональных и нефункциональных (если они
критичны для заказчика) требований к ПО.
Системные аналитики детализируют и переводят в
техническую плоскость (на уровень таблиц,
функций, классов, интерфейсов и т.п.) бизнес
требования, формируют техническое задание для
команды разработки.
12.
Разработчики – разрабатывают и документируют код ПО,занимаются отладкой и исправлением ошибок, проверяют
код при помощи Unit-тестирования, собирают билды и
поставки, готовят инструкции по установке.
Участники
разработк
и ПО
Тестировщики (QA специалисты) – отвечают за качество
ПО, выполняя для этого анализ требований, разработку
планов и сценариев тестирования, выполняя
тестирование ПО и т.д.
Команда поддержки – занимаются выводом ПО в
эксплуатацию, установками и настройкой среды для
пользователей.
Пользователи – являются конечными потребителями
ПО, в рамках процесса разработки могут привлекаться к
приемочному тестированию.
13.
Жизненныйцикл
разработки
программного
обеспечения
Жизненный цикл разработки
программного обеспечения – это
многоступенчатый процесс,
который включает в себя
спецификацию требований,
анализ требований,
проектирование, внедрение,
тестирование, развертывание и
обслуживание.
14.
Анализ требованийЖизненный цикл разработки ПО начинается со стадии анализа, во время которого
участники процесса обсуждают требования, предъявляемые к конечному продукту.
Цель этой стадии – определение детальных требований к системе. Кроме этого,
необходимо убедиться в том, что все участники правильно поняли поставленные
задачи и то, как именно каждое требование будет реализовано на практике.
Зачастую, в обсуждении участвуют также и специалисты по тестированию, которые уже
на стадии разработки требований могут вносить собственные пожелания и, при
необходимости, корректировать процесс.
В зависимости от выбранной модели разработки, могут отличаться подходы к
определению момента перехода с одной стадии на другую.
Таким образом, этот этап предполагает сбор требований к разрабатываемому
программному обеспечению, их систематизацию, документирование, анализ, а
также выявление и разрешение противоречий.
15.
Анализ требованийСпецификация требований – это формальный процесс,
который направлен на понимание проблемы, которую будет
решать программное обеспечение, и подробного
документирования того, что должна делать система
программного обеспечения. Этот этап предполагает тесное
взаимодействие между пользователями и разработчиками.
Разработчики должны тесно сотрудничать со своими
клиентами (физическими лицами или организациями, которые
будут использовать программное обеспечение) и тщательно
изучать проблему, чтобы определить, что нужно делать.
16.
Анализ требованийСистемный анализ направлен на анализ потока данных и
идентификацию ввода и вывода системы. Когда проводится
анализ, это помогает начать с определения, каким должен
быть вывод, а затем выяснить, какие входные данные нужны
для получения результата.
17.
ПроектированиеНа стадии проектирования (называемой также стадией дизайна и
архитектуры) программисты и системные архитекторы,
руководствуясь требованиями, разрабатывают высокоуровневый
дизайн системы.
Разнообразные технические вопросы, возникающие в процессе
проектирования, обсуждаются со всеми заинтересованными
сторонами, включая заказчика. Определяются технологии, которые
будут использоваться в проекте, загрузка команды, ограничения,
временные рамки и бюджет. В соответствии с уточненными
требованиями выбираются наиболее подходящие проектные
решения.
18.
ПроектированиеУтвержденный дизайн системы определяет перечень разрабатываемых программных
компонентов, взаимодействие с третьими сторонами, функциональные характеристики
программы, используемые базы данных и многое другое. Дизайн, как правило,
закрепляется отдельным документом – дизайн-спецификацией
(Design Specification Document, DSD).
На этом этапе для упрощения визуализации процесса проектирования используются
так называемые нотации – схематическое выражение характеристик разрабатываемой
системы. Основные используемые нотации:
– Блок-схемы;
– ER-диаграммы;
– UML-диаграммы;
– Макеты – например, нарисованный в фотошопе прототип сайта.
19.
ПроектированиеСистемный дизайн – это разработка процесса получения
выходных данных из ввода. Эта фаза предполагает
использование множества уровней абстракции для разбивки
проблемы на управляемые компоненты и стратегии
разработки для реализации каждого компонента.
20.
Разработка и программированиеРеализация включает перевод дизайна системы в программы.
Отдельные программы записываются для каждого
компонента, а затем интегрируются для совместной работы.
На этом этапе требуется использование языка
программирования. Реализация включает в себя кодинг,
самотестирование и отладку (то есть поиск ошибок,
называемых багами, в коде).
21.
Разработка и программированиеПосле того как требования и дизайн продукта утверждены, происходит
переход к следующей стадии жизненного цикла – непосредственно
разработке. Здесь начинается написание программистами кода
программы в соответствии с ранее определенными требованиями.
Системные администраторы настраивают программное окружение, frontend программисты разрабатывают пользовательский интерфейс
программы и логику ее взаимодействия с сервером.
Кроме того, программисты пишут Unit-тесты для проверки правильности
работы кода каждого компонента системы, проводят ревью написанного
кода, создают билды и разворачивают готовое ПО в программной среде.
Этот цикл повторяется до тех пор, пока все требования не будут
реализованы.
22.
Разработка и программированиеПрограммирование предполагает четыре основных стадии:
1) Разработка алгоритмов – фактически, создание логики
работы программы;
2) Написание исходного кода;
3) Компиляция – преобразование в машинный код;
4) Тестирование и отладка – речь, главным образом, о юниттестировании.
23.
ТестированиеТестирование гарантирует, что код соответствует
требованиям спецификации, а ошибки искоренены.
Независимая команда разработчиков программного
обеспечения, не участвующая в разработке и внедрении
продукта, обычно проводит такое тестирование.
24.
ТестированиеТестировщики занимаются поиском дефектов в программном
обеспечении и сравнивают описанное в требованиях поведение
системы с реальным.
В фазе тестирования обнаруживаются пропущенные при разработке
баги. При обнаружении дефекта, тестировщик составляет отчет об
ошибке, который передается разработчикам. Последние его исправляют,
после чего тестирование повторяется – но на этот раз для того, чтобы
убедиться, что проблема была исправлена, и само исправление не
стало причиной появления новых дефектов в продукте.
Тестирование повторяется до тех пор, пока не будут
достигнуты критерии его окончания.
25.
ВнедрениеКогда программа протестирована и в ней больше не осталось
серьезных дефектов, приходит время релиза и передачи ее
конечным пользователям.
Развертывание делает программное обеспечение доступным
для использования. В зависимости от типа программного
обеспечения оно может быть установлено на компьютере
каждого пользователя или установлено на сервере,
доступном в Интернете.
26.
СопровождениеПосле выпуска новой версии программы в работу включается отдел
технической поддержки. Его сотрудники обеспечивают обратную связь с
пользователями, их консультирование и поддержку.
В случае обнаружения пользователями тех или иных пост-релизных
багов, информация о них передается в виде отчетов об ошибках
команде разработки, которая, в зависимости от серьезности проблемы,
либо немедленно выпускает исправление (т.н. hot-fix), либо откладывает
его до следующей версии программы.
Кроме того, команда технической поддержки помогает собирать и
систематизировать различные метрики – показатели работы программы
в реальных условиях.
27.
СопровождениеТехническое обслуживание связано с обновлением и
улучшением продукта. Программный продукт должен
продолжать работать и улучшаться в постоянно меняющейся
среде. Это требует периодических обновлений продукта для
исправления вновь обнаруженных ошибок и внесения
изменений.
28.
Жизненныйцикл
разработки
программного
обеспечения
чрез
тестирование
29.
Планирование – формируется бизнес идея и определяются функциональные требования к ПО.Проектирование – разрабатывается архитектурное решение системы и выполняется системный
анализ, готовится техническое задание для разработки.
Разработка – непосредственно написание программного продукта.
Тестирование – выполняется проверка и отладка ПО в соответствии с требованиями. Сюда же
относиться UAT (User Acceptance Testing) – пользовательское тестирование и прием ПО
заказчиком.
Внедрение – предварительная тестовая установка релиза – DryRun, подготовка всех необходимых
инструкций, настройка окружения и установка ПО.
Поддержка – консультирование пользователей, исправление ошибок, внедрение доработок.