- •1. Понятие проекта в сфере разработки по.
- •2. «Железный треугольник».
- •3. Отличия разработки по от других отраслей.
- •4. Проект и организационная структура компании. Различия между функциональной и проектной структурой.
- •5. Матричная организация компании. «Слабая», «сбалансированная» и «жесткая» матрицы.
- •6. Модель зрелости процессов создания по (cmm – Capability Maturity Model).
- •7. Жизненный цикл проекта. Стадии жизненного цикла проекта.
- •8. Модель «Code & Fix».
- •9. Модель водопада. Стадии, преимущества, недостатки.
- •11. Итеративная модель. Стадии, преимущества, недостатки.
- •12. Основные отличия итеративного подхода от модели водопада.
- •13. Методология rup.
- •14. Спиральная модель.
- •15. Технология Microsoft Solutions Framework.
- •16. Понятие «экстремального программирования» (Extreme Programming - xp). Основные особенности хр.
- •17. Практики xp. Планирование
- •Тестирование
- •Парное программирование
- •Рефакторинги
- •Простой дизайн
- •18. Планирование и оценка проекта. Основные этапы/действия.
- •19. Метод Дельфи оценки проекта.
- •20. Экспертный метод оценки проекта. Отличия от метода Дельфи.
- •21. Модель оценки стоимости проекта сосомо. Уровни сосомо.
- •22. Модель сосомо II. Отличия от сосомо.
- •23. Использование сосомо/сосомо II для оценки многокомпонентного продукта.
- •24. Метод функциональных точек. Основные стадии.
- •25. Определение типа, области оценки, границ продукта и данных проекта по методу функциональных точек. Определение типа оценки
- •Определение области оценки и границ продукта
- •26. Методика подсчета функциональных точек, связанных с данными. Подсчет функциональных точек, связанных с данными
- •27. Методика подсчета функциональных точек, связанных с транзакциями. Подсчет функциональных точек, связанных с транзакциями
- •28. Методика расчета количества выровненных функциональных точек.
- •29. Оценка трудоемкости проекта по методике cocomo II. Факторы масштаба и множители трудоемкости cocomo II. Оценка длительности проекта по методике cocomo II.
- •30. Метод оценки проекта «по выполненному объему».
- •31. Структура управления рисками проекта.
- •32. Планирование управления рисками: входы, инструменты и методы, выходы.
17. Практики xp. Планирование
Это та стадия, на которой вы обсуждаете с заказчиком, чего он хочет. Как правило, заказчик знает это весьма смутно. Ваша задача – вытащить из него необходимую вам информацию.
Прежде всего, человек, с которым вы общаетесь, должен быть профессионалом, знающим область, для которой вы пишете продукт, равно как и всю операционную деятельность, для которой этот продукт предназначен. Человек должен разбираться в проблемах, стоящих перед ними, и в том, как они хотели бы их решить с помощью обсуждаемого ПО.
Обсуждение идет по принципу "от крупного к мелкому". Сначала обсуждается задача в общих чертах, потом она разбивается на подзадачи. И так далее.
Когда все требования таким образом сформированы – они фиксируются где-нибудь в письменном виде.
Затем заказчик определяет приоритеты.
После того, как приоритеты расставлены – производится временная оценка. Тут есть тонкость. Даже несколько.
Первое – оценивать задачу может лишь тот, кто будет ею непосредственно заниматься. По той простой причине, что разработчики не идентичны.
Второе. Разработчики работают в разных ситуациях.
Оценка работы при условии, что разработчик будет сконцентрирован исключительно на задаче, что его ничто не будет отвлекать, что он будет работать с максимальной продуктивностью – эта оценка называется идеальное время. Время, потраченное на разработку в действительности, называется реальным. Отношение этих времен, усредненное за определенный промежуток времени (например, за 8 циклов разработки, см. Частые выпуски версий), называется коэффициентом загрузки (load factor).
Тестирование
А точнее – написание тестов ПЕРЕД написанием кода.
Парное программирование
В прямом смысле этого слова. Парное – два разработчика за одним компьютером.
Что это дает? Прежде всего – мышление у людей не совпадает. В результате в каждой точке ветвления есть большая вероятность, что я и кто-то другой изберем разные направления движения. Т.е. родятся две идеи вместо одной. Соответственно, появляется возможность выбрать более оптимальную из них.
Далее. Написание кода вдвоем означает, что код досконально знает не один человек, а два. Таким образом, знания о работе кода сложнее потерять. При традиционном подходе – каждый сам за себя – это зачастую очень острая проблема. можно применять т.н. параллельное программирование. Отличается от парного оно исключительно тем, что у разработчиков не один компьютер, а два. И внешне ситуация гораздо приятнее для руководящего ока. Разработчики должны сидеть за соседними столами, так, чтобы быть максимально близко друг к другу.
Рефакторинги
Процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. В основе рефакторинга лежит последовательность небольших эквивалентных (то есть сохраняющих поведение) преобразований Цель рефакторинга — сделать код программы более легким для понимания; без этого рефакторинг нельзя считать успешным. Рефакторинг следует отличать от оптимизации производительности. Как и рефакторинг, оптимизация обычно не изменяет поведение программы, а только ускоряет ее работу. Но оптимизация часто затрудняет понимание кода, что противоположно рефакторингу. С другой стороны, нужно отличать рефакторинг от реинжиниринга, который осуществляется для расширения функциональности программного обеспечения.
В XP приняты т.н. постоянные рефакторинги. Зачем это делается?
Аналогия с капремонтом