Содержание
- 2. План лекции 1. Стандарты программной инженерии – гарантия качества ПО 2. Стандарты, регламентирующие процессы жизненного цикла
- 3. 1. Стандарты программной инженерии – гарантия качества ПО Заключая контракт на разработку и поставку заказного ПО
- 4. Стандарты программной инженерии – гарантия качества ПО Среди всего многообразия стандартов принято выделять следующие основные их
- 5. Стандарты программной инженерии – гарантия качества ПО Организации - разработчики международных стандартов программной инженерии ISO -
- 6. 2. Стандарты, регламентирующие процессы жизненного цикла ПО ISO/IEC 12207 - Information Technology - Software Life Cycle
- 7. 3. Образовательные стандарты в области программной инженерии ACM / IEEE CC2001 - Computing Curricula 2001 –
- 8. SWEBOK - Свод знаний по программной инженерии (часть 1)
- 9. SWEBOK - Свод знаний по программной инженерии (часть 2)
- 10. Дисциплины учебного плана, обеспечивающие формирование основных профессиональных компетенций в области программирования и проектирования программных систем
- 11. 4. Профессиональные стандарты программной инженерии В июне 2007 года был опубликован первый сборник российских профессиональных стандартов
- 12. Уровни подготовки специалистов в области программной инженерии Полные тексты профессиональных стандартов опубликованы на официальном сайте АП
- 13. 5. Типовая ролевая модель команды программного проекта Ведущую роль в реализации программного проекта играет правильная организация
- 14. Типовая ролевая модель команды программного проекта Менеджер проекта - главное действующее лицо, обладающее знаниями и навыками,
- 15. Типовая ролевая модель команды программного проекта Проектировщик – занимается проектированием архитектуры высокого уровня и осуществляет контроль
- 16. Типовая ролевая модель команды программного проекта Разработчик – роль, ответственная за непосредственное создание конечного продукта. Помимо
- 17. Типовая ролевая модель команды программного проекта Тестировщик – роль, ответственная за удовлетворение требований к продукту (функциональных
- 18. Типовая ролевая модель команды программного проекта Инженер по качеству. Качество конечного продукта обеспечивается тестированием, входящим в
- 19. Типовая ролевая модель команды программного проекта Технический писатель - разработчик проектной, программной и эксплуатационной документации, как
- 20. Типовая ролевая модель команды программного проекта Технолог разработки ПО обеспечивает выполнение следующих функций: Поддержка модели жизненного
- 21. Типовая ролевая модель команды программного проекта Инженерный психолог и Инженер по маркетингу – эти роли присутствуют,
- 23. Скачать презентацию
План лекции
1. Стандарты программной инженерии – гарантия качества ПО
2. Стандарты, регламентирующие
План лекции
1. Стандарты программной инженерии – гарантия качества ПО
2. Стандарты, регламентирующие
3. Образовательные стандарты в области программной инженерии
4. Профессиональные стандарты программной инженерии
5. Типовая ролевая модель команды программного проекта
6. Контрольные вопросы и задания
1. Стандарты программной инженерии – гарантия качества ПО
Заключая контракт на разработку
1. Стандарты программной инженерии – гарантия качества ПО
Заключая контракт на разработку
Приобретая коробочный программный продукт, покупатель также должен быть уверен в его высоком качестве и соответствии продукта характеристикам, заявленным его производителем и поставщиком.
Что же является гарантией качества
программных продуктов?
В мировой практике промышленного производства гарантией качества являются стандарты на производство товаров и услуг и сертификация их производителей на соответствие этим стандартам.
Процесс стандартизации производства и сертификации производителей давно вошел и в программную инженерию, где он составляет основу промышленного производства программных продуктов.
Стандарты программной инженерии – гарантия качества ПО
Среди всего многообразия стандартов принято
Стандарты программной инженерии – гарантия качества ПО
Среди всего многообразия стандартов принято
следующие основные их типы :
Корпоративные стандарты - разрабатываются крупными фирмами (корпорациями) с целью повышения качества своей продукции. Такие стандарты разрабатываются на основе собственного опыта и с учетом требований мировых стандартов. Корпоративные стандарты не сертифицируются, но являются обязательными для применения внутри корпорации. В условиях рыночной конкуренции могут иметь закрытый характер.
Отраслевые стандарты (ОСТы) – действуют в пределах организаций некоторой отрасли (например, СНИП – строительные нормы и правила). Разрабатываются с учетом требований мирового опыта и специфики отрасли. Являются, как правило, обязательными для отрасли.
Государственные стандарты (ГОСТы) принимаются государственными органами, в некоторых случаях имеют силу закона. Разрабатываются с учетом мирового опыта или на основе отраслевых стандартов. Могут иметь как рекомендательный, так и обязательный характер (стандарты безопасности). Для сертификации создаются государственные или негосударственные лицензированные органы сертификации.
Международные стандарты. Разрабатываются, как правило, специальными международными организациями на основе мирового опыта и лучших корпоративных стандартов. Имеют сугубо рекомендательный характер. Право сертификации получают организации (государственные и частные), прошедшие лицензирование в международных организациях.
Стандарты программной инженерии – гарантия качества ПО
Организации - разработчики
международных стандартов
Стандарты программной инженерии – гарантия качества ПО
Организации - разработчики
международных стандартов
ISO - International Organization for Standardization – Международная организация по стандартизации. Наиболее представительная и влиятельная организация, разрабатывающая стандарты почти во всех областях деятельности, в том числе и в IT.
ACM - Association for Computing Machinery – Ассоциация по вычислительной технике. Всемирная научная и образовательная организация в области вычислительной технике. Известна также и разработкой образовательных стандартов.
SEI - Software Engineering Institute - Институт Программной Инженерии. Исследования в области программной инженерии с упором на разработку методов оценки и повышения качества ПО. Стандарты по качеству ПО и зрелости организаций, разрабатывающих ПО.
PMI - Project Management Institute - Международный Институт Проектного Менеджмента (Управления Проектами). Некоммерческая организация, целью которой является продвижение, пропаганда, развитие проектного менеджмента в разных странах. PMI разрабатывает стандарты проектного менеджмента, занимается повышением квалификации специалистов.
IEEE - Институт инженеров по электротехнике и электронике. Поддержка научных и практических разработок в области электроники и вычислительной техники. Большие вложения в разработку стандартов в этой области.
2. Стандарты, регламентирующие процессы жизненного цикла ПО
ISO/IEC 12207 - Information Technology
2. Стандарты, регламентирующие процессы жизненного цикла ПО
ISO/IEC 12207 - Information Technology
SEI CMM - Capability Maturity Model (for Software) - модель зрелости процессов разработки программного обеспечения. Стандарт отвечает на вопрос: "Какими признаками должна обладать профессиональная организация по разработке ПО?". Профессионализм организации определяется через зрелость процесса, применяемого этой организацией. Выделяются пять уровней зрелости процесса.
ISO/IEC 15504 - Software Process Assessment - Оценка и аттестация зрелости процессов создания и сопровождения ПО. Является развитием и уточнением ISO 12207 и SEI CMM. Содержит расширенное по отношению ISO 12207 количество процессов жизненного цикла и 6 уровней зрелости процессов. Дается подробное описание схемы аттестации процессов, на основе результатов которой может быть выполнена оценка зрелости процессов и даны рекомендации по их усовершенствованию.
Подробный обзор основных положений стандарта ISO/IEC 12207 (и его российского аналога ГОСТ Р ИСО МЭК 12207-99) будет сделан позднее во втором разделе лекционного курса нашей дисциплины.
Стандарты SEI CMM и ISO/IEC 15504 рассматриваются при изучении дисциплины "Тестирование и управление качеством ПО".
3. Образовательные стандарты в области программной инженерии
ACM / IEEE CC2001 -
3. Образовательные стандарты в области программной инженерии
ACM / IEEE CC2001 -
PMBOK - Project Management Body of Knowledge - Свод знаний по управлению проектами. Содержит описания состава знаний по 9 разделам (областям знаний) управления проектами.
SWEBOK - Software Engineering Body of Knowledge - Свод знаний по программной инженерии. Содержит описания состава знаний по 10 разделам (областям знаний) программной инженерии, схематично представленным на рисунках 1 и 2.
ФГОС ВПО (Российский Федеральный государственный образовательный стандарт высшего профессионального образования) по направлению подготовки 231000 – "Программная инженерия". В основном соответствует требованиям международного стандарта SWEBOK.
Стандарт определяет:
основные направления профессиональной деятельности выпускников ВУЗов РФ, обучающихся по данному направлению;
требования к профессиональным компетенциям бакалавров (4 года обучения) и магистров (4+2 года обучения);
требования к условиям реализации образовательной программы;
структуру базовой части учебного плана.
SWEBOK - Свод знаний по программной инженерии (часть 1)
SWEBOK - Свод знаний по программной инженерии (часть 1)
SWEBOK - Свод знаний по программной инженерии (часть 2)
SWEBOK - Свод знаний по программной инженерии (часть 2)
Дисциплины учебного плана, обеспечивающие формирование
основных профессиональных компетенций
в области программирования
Дисциплины учебного плана, обеспечивающие формирование основных профессиональных компетенций в области программирования
4. Профессиональные стандарты программной инженерии
В июне 2007 года был опубликован первый
4. Профессиональные стандарты программной инженерии
В июне 2007 года был опубликован первый
Разработка стандартов осуществлялась при поддержке Ассоциации Предприятий Компьютерных и Информационных Технологий (АП КИТ) и ведущих российских и международных компаний ИT-отрасли: «АйТи», группа компаний Verysell, IBM, группа компаний IBS, Intel, «Лаборатория Касперского», Microsoft, «Прогноз» , группа компаний R-Style, «Техносерв А/С», «Яндекс», «1С».
Профессиональные стандарты – это ориентир по профессиям, результат систематизации профессий, динамично формирующихся в ИТ-отрасли. При этом каждый профессиональный стандарт – это нормативный документ рекомендательного характера, отражающий минимально необходимые требования к профессии, должностные обязанности, профессиональные компетенции, требования к уровням образования, стажу работы и сертификации в соответствии с квалификационными уровнями.
Кому и для чего нужны профессиональные стандарты ?
Работодателям - дают внятно сформулированные требования к профессиональным компетенциям специалистов, применение которых позволит оценить и повысить уровень качества их работы. Каждая компания может использовать стандарты для разработки собственных корпоративных требований к соответствующим должностям.
Образовательным учреждениям - предоставляют информацию, необходимую для создания качественных образовательных программ высшего и среднего профессионального образования, программ повышения квалификации и профессиональной переподготовки специалистов, а также позволяют формировать систему оценки качества обучения в соответствии с требованиями работодателей.
Работникам - помогают лучше понять различия в выполнении функций на разных должностях и квалификационных уровнях, задают ориентиры профессионального роста и важны для управления собственной карьерой.
Государству - полезны при создании качественных образовательных стандартов и формировании политики в области занятости населения.
Уровни подготовки специалистов
в области программной инженерии
Полные тексты профессиональных стандартов опубликованы
Уровни подготовки специалистов в области программной инженерии Полные тексты профессиональных стандартов опубликованы
5. Типовая ролевая модель команды программного проекта
Ведущую роль в реализации
5. Типовая ролевая модель команды программного проекта
Ведущую роль в реализации
определение ролевой модели команды
подбор исполнителей на каждую "роль"
организация их взаимодействия в процессе выполнения проекта.
Состав команды определяется особенностями проекта, применяемыми технологиями и инструментальными средствами, опытом и уровнем профессиональной подготовки коллектива.
Классический вариант состава команды включает следующие роли:
Менеджер проекта
Проектировщик
Разработчик
Тестировщик
Инженер по качеству
Технический писатель
Технолог разработки ПО
Инженерный психолог
Инженер по маркетингу
Типовая ролевая модель команды программного проекта
Менеджер проекта - главное действующее
Типовая ролевая модель команды программного проекта
Менеджер проекта - главное действующее
Его основные функции:
подбор и управление кадрами;
подготовка и исполнение плана проекта;
руководство командой;
обеспечение связи между подразделениями;
обеспечение готовности продукта.
Типовая ролевая модель команды программного проекта
Проектировщик – занимается проектированием архитектуры высокого
Типовая ролевая модель команды программного проекта
Проектировщик – занимается проектированием архитектуры высокого
Основные функции проектировщика:
Анализ требований.
Разработка архитектуры и основных интерфейсов.
Участие в планировании проекта.
Контроль выполнения проекта.
Участие в подборе кадров.
В небольших командах функции проектировщика обычно распределяются между менеджером проекта и разработчиками, в больших проектах эти функции может исполнять отдельная группа или целый отдел.
Типовая ролевая модель команды программного проекта
Разработчик – роль, ответственная за непосредственное
Типовая ролевая модель команды программного проекта
Разработчик – роль, ответственная за непосредственное
Контроль архитектурных и технических спецификаций продукта.
Подбор технологических инструментов и стандартов.
Диагностика и разрешение всех технических проблем.
Контроль за работой тестировщиков, технологов, разработчиков документации.
Мониторинг состояния продукта (ведение списка обнаруженных ошибок).
Подбор и контроль использования стандартов и инструментов разработки.
Типовая ролевая модель команды программного проекта
Тестировщик – роль, ответственная за удовлетворение
Типовая ролевая модель команды программного проекта
Тестировщик – роль, ответственная за удовлетворение
В функции тестировщика входит:
Составление плана тестирования. План тестирования составляет один из элементов проекта и составляется до начала реализации проекта. Время, отводимое в плане на тестирование может быть сопоставимо с временем разработки.
Контроль выполнения плана тестирования. Важнейшая функция контроля – поддержка базы данных зарегистрированных ошибок. В этой базе регистрируется: кто, когда и где обнаружил, описание ошибки, описание состояния среды; статус ошибки: приоритет, кто разрешает; состояние ошибки: висит, в разработке, разрешена, проблемы. Эта база должна быть доступна всем, т.к. в тестировании принимают участие все члены команды.
Разработка тестов - самая трудоемкая часть в работе тестировщика. Тестирование должно обеспечить полную проверку функциональности при всех режимах работы продукта.
Автоматизация тестирования - включает автоматизацию составления тестов, автоматизацию процесса запуска тестов и автоматизацию обработки результатов тестирования. Ввиду важности задачи автоматизации тестирования, в крупных проектах может быть введен новый участник (роль) – инженер по автоматизации.
Выбор стандартов, метрик и инструментов для организации процесса тестирования.
Организация бета-тестирования - тестирования почти готового продукта внешними тестерами (пользователями, в случае разработки коробочного продукта).
Типовая ролевая модель команды программного проекта
Инженер по качеству.
Качество конечного продукта
Типовая ролевая модель команды программного проекта
Инженер по качеству.
Качество конечного продукта
В небольших проектах функции инженера по качеству возлагаются на тестировщика, однако функции инженера по качеству гораздо шире – он обеспечивает :
Качество процесса разработки – обеспечивается выполнением стандартов качества основных процессов жизненного цикла ПО;
Качество (уровень) организации - обеспечивается выполнением стандартов качества организационных процессов жизненного цикла ПО.
Основные функции инженера по качеству :
Составление плана качества. План качества имеет долговременный характер и включает все мероприятия по повышению качества (на всех уровнях). План тестирования – его оперативная составляющая.
Описание процессов. Описание процессов является их формализацией. При описании вводятся метрики процесса, влияющие на качество продукта.
Оценка процессов включает регистрацию хода выполнения процессов и оценку значений установленных метрик процессов. Выявление слабых мест и выработка рекомендаций по улучшению процессов.
Улучшение процессов - переопределение процесса, автоматизация части работ, обучение персонала. Повышение качества процессов требует участия всех действующих лиц. Принятое решение должно быть обосновано, всем понятно и всеми принято.
Типовая ролевая модель команды программного проекта
Технический писатель - разработчик проектной, программной
Типовая ролевая модель команды программного проекта
Технический писатель - разработчик проектной, программной
Функции технического писателя:
Разработка плана документирования, который включает состав, сроки подготовки и порядок тестирования документов.
Выбор и разработка стандартов и шаблонов подготовки документов.
Выбор средств автоматизации документирования.
Разработка документации.
Организация тестирования документации.
Участие в тестировании продукта.
Типовая ролевая модель команды программного проекта
Технолог разработки ПО обеспечивает выполнение следующих
Типовая ролевая модель команды программного проекта
Технолог разработки ПО обеспечивает выполнение следующих
Поддержка модели жизненного цикла программного продукта - создание служб и структур по поддержке работоспособности принятой модели ЖЦ ПО. В поддержке модели ЖЦ принимают участие все, но контроль возложен на технолога.
Создание и сопровождение среды сборки продукта. Функция особенно важна на завершающих этапах разработки или при использовании модели прототипирования, когда сборка проводится достаточно часто (в некоторых случаях - ежедневно). Среда сборки должна быть подготовлена заранее, сборка должна проводиться быстро и без сбоев.
Создание и сопровождение процедуры установки с тем, чтобы каждая сборка устанавливалась автоматически с учетом версии и конфигураций сред.
Управление исходными текстами - сопровождение и администрирование системы управления версиями исходных текстов.
Типовая ролевая модель команды программного проекта
Инженерный психолог и Инженер по маркетингу
Типовая ролевая модель команды программного проекта
Инженерный психолог и Инженер по маркетингу
В малых командах некоторые роли могут совмещаться, в больших – под все или некоторые роли могут выделяться целые группы или отделы: отдел проектирования, отдел тестирования, отдел контроля качества, отдел подготовки документации и т.д.
Ролевые модели команд, создаваемых в софтверных компаниях под конкретные программные проекты, могут быть самыми разнообразными и определяются масштабом проекта, используемой методологией и корпоративными стандартами разработки ПО.