- •1. Технология разработки программного обеспечения. Определение. Основные этапы на примере классического жизненного цикла.
- •2. Два взгляда на по: научная разработка, программное изделие. Свободное по.
- •3. Парадигмы проектирования программных систем. Макетирование.
- •4.Парадигмы проектирования пс. Инкрементная модель.
- •5. Парадигмы проектирования программных систем. Быстрая разработка приложений.
- •6. Парадигмы проектирования программных систем. Спиральная модель.
- •7. Парадигмы проектирования программных систем. Компонентно-ориентированная модель.
- •8. Парадигмы проектирования программных систем. Унифицированный процесс. Rup.
- •1. Начало
- •2. Уточнение
- •3. Построение (Конструирование)
- •4. Внедрение
- •9. Парадигмы проектирования программных систем. Экстремальное программирование.
- •10. Спецификация требований. Виды требований.
- •1) Пользовательские требования
- •2) Системные требования
- •3) Проектная системная спецификация.
- •11. Функциональные требования.
- •12. Нефункциональные требования.
- •13. Требования предметной области.
- •14. Пользовательские требования.
- •15. Системные требования.
- •16. Описание технического задания по гост.
- •17. Прецеденты. Определение. Актеры. Сценарии.
- •18. Задачи и рамки прецедентов.
- •19. Степень формализации прецедентов. Сжатый, свободный и развёрнутый формат описания.
- •20. Пояснения к прецедентам. Предусловия и постусловия. Альтернативные сценарии.
- •22. Объектно-ориентированные анализ и проектирование программных систем. Основные определения.
- •23. Основные принципы объектно-ориентированной разработки программ.
- •24. Обязанности объектов. Разложение системы на объекты. Crc-карты.
- •25. Инкапсуляция. Связность внутри классов и зацепление между классами.
- •26. Композиция и наследование. Абстрактные классы. Интерфейс класса. Рекомендации.
- •27. Методы, операции, сообщения. Разделение команд и запросов.
- •28. Проектирование по контракту. Предусловия и постусловия в методах. Инварианты.
- •29. Паттерны проектирования. Определение. Формат описания.
- •30. Виды паттернов по уровню абстракции и по цели. Примеры.
- •36. Минимальное грубое тестирование
- •37. Автоматизированные тесты. Основные определения. XUnit
- •38. Разработка через тестирование
- •39. Особенности командной разработки по
- •40. Оценка стоимости по. Модели и методики. Модель cocomo
39. Особенности командной разработки по
Характеристики работы в одиночку: доверие к себе, навыки решения проблемы, принятие решений, минимальная дополнительная нагрузка на рабочий процесс.
Недостатки: объем работы, вся ответственность на себе
Преимущества работы в команде:
Путём объединения знаний и ресурсов может быть решено огромное разнообразие сложных вопросов
Решение проблем часто стребует большого разнообразия знаний, навыков и опытов
Повышается моральный дух и чувство сопричастности в принятии решений
Лучше возможности для создания связей между отдельными разработчиками
Рекомендации, исходящие от отдельных людей, будут реализованы с большей вероятностью
Работа в команде должна управляться стратегией, структурой и осуществляться продуманно и эффективно. При правильном подходе командная работа быстро и экономно улучшает процесс и результат путём свободного обмена идеями, информацией и данными. Командная работа развивает культуру взаимосвязей более, чем независимая
Командные роли:
Координатор – уточняет цели, определяет повестку дня, приоритеты, выделяет проблемы, подводит итоги. Имеет решающее значение, но не доминирует в дискуссии.
Формирователь – придаёт форму коллективным усилиям. Может давить на команду, если это даёт конкретный результат.
Мыслитель – источник оригинальных идей, пожеланий и предложений, которые радикальны и оригинальны
Оцениватель – измеряет и беспристрастно анализирует
Исполнитель – преобразует решение стратегии в определённые конкретные задачи
Коммуникатор – действует за пределами команды, принося идеи, информацию и события
Коллективист – сохраняет целостность команды. Предотвращает её распад
Специалист – имеет постоянное чувство сроков.
Не обязательно должно быть больше 8 человек, но все роли должны присутствовать. Несколько ролей могут исполняться одним человеком.
Развитие команды (4 этапа):
Формирование (осознание)
Штурм (конфликт)
Нормирование (кооперация)
Выполнение (продуктивная стадия)
Критерии сформировавшейся команды:
Определяет ясные цели
Открытость и свободное выражение противоположных мнений
Поддержка и доверие
Сотрудничество
Успешный процесс принятия решений
Весомые межгрупповые отношения
Возможность индивидуального развития
40. Оценка стоимости по. Модели и методики. Модель cocomo
Оценка стоимости ПО включает в себя оценку затрат денежных средств и других ресурсов, включая временные ресурсы. Менеджерам необходимо ответить на следующие вопросы:
Какие затраты необходимы для выполнения этапов?
Сколько времени это займет?
Какова стоимость выполнения данного этапа?
Расчеты оценки стоимости (этапы):
Предварительные расчеты на ранней стадии для утверждения бюджета.
Во время выполнения проекта расчеты должны корректироваться. Это помогает лучше планировать дальнейшую работу и расходы.
Цена продукта включает:
Издержки производства.
Предполагаемая прибыль.
Параметры при оценке проекта:
Стоимость аппаратных средств.
Расходы на командировки и обучение персонала.
Расходы на персонал.
Расходы на вспомогательный персонал.
Расходы на компьютерные сети и связь.
Централизованные услуги.
Социальное обеспечение и выплаты служащим (пенсии, страховки).
Факторы, влияющие на стоимость ПО:
Возможности рынка ПО.
Непредвиденные факторы.
Условия контракта.
Изменение требований.
Финансовая стабильность.
Оценка продукта основана на тех. показателях продукта. Показателей 2 вида:
Показатели размера (количество строк, LOC*чел./мес. и т.д.)
Функциональный показатель, зависит от возможностей продукта в целом (функциональные и объектные точки).
Проблема всех методов оценки стоимости ПО - низкая точность. Выделим методы:
Алгоритмическое моделирование себестоимости - анализ ранее произведенных проектов. Определяется зависимость от количественных показателей.
Оценки экспертов. Оценки заносят в протокол и открыто обсуждают.
Оценки по аналогии.
Закон Паркинсона:
Усилия, затраченные на работу распределяются равномерно по выделенному времени. Для повышения производительности необходимо уменьшить время разработки.
Назначение цены с целью выиграть контракт (price to win).
Оценка может выполняться двумя способами:
Нисходящий - рассматривается функциональность в целом и далее на низком уровне.
Восходящий - сначала оценивается системные компоненты а потом вся система.
Модель COCOMO использует простую форму регрессии с параметрами, собранными по статистике. Первая версия опубликована в 1981 году. В 1997 - вторая версия. Доработана и опубликована в 2000 году. Состоит из 3 последовательно детализуемых форм:
Базовая - на этапе выработки спецификации.
Расширенная - после определения требований к ПО.
Углубленная - после окончания проектирования ПО.
В общем виде уравнения имеют вид:
, где
E - затраты труда на проект в чел./мес.
S - размер кода (скорректированный)
EAF - фактор уточнения затрат. В базовой модели EAF = 1.
a, b - коэффициенты, зависящие от вида продукта.