
- •Введение
- •1Основная часть
- •1.1Теоретическая часть
- •1.1.1Управление проектами
- •1.1.2Стандарты проектного управления
- •1.1.3Специфика it-проектов
- •1.1.3.1Методологии управления it-проектами
- •1.1.3.2Каскадная модель (Waterfall)
- •1.1.3.3Спиральная модель
- •1.1.3.4Итеративная разработка
- •1.1.3.5Гибкая методология разработки
- •1.1.4SaaS-приложения
- •1.1.4.1Основные понятия электронно-вычислительных сетей
- •1.1.4.2Топология локальных сетей
- •1.1.4.3Типы локальных сетей
- •1.1.4.4Компьютерная сеть Интернет
- •1.1.4.5Основные системы и понятия сети Интернет
- •1.1.4.6Уровни сетевой модели osi
- •1.1.5SaaS-приложения для управления проектами
- •1.1.5.1Мегаплан
- •1.1.5.2Битрикс24
- •1.2Вычислительная часть
- •1.2.1Постановка проблемы
- •1.2.2Способ решения
- •1.2.3Электронный проектный офис как система поддержки принятия решений
- •1.2.4Применимость и целевая аудитория
- •1.2.4.1Учебные проекты
- •1.2.4.2Ориентация на распределенные команды
- •1.2.4.3Ориентация на малый бизнес и небольшие команды
- •1.2.5Основные функции сервиса
- •1.2.6Методология
- •1.2.7.1Построение Burndown диаграммы
- •1.2.7.2Советы и упражнения
- •1.2.7.3Массовое добавление задач
- •1.2.7.4Ежедневный сбор статистики от участников
- •1.2.8Диаграмма базы данных
- •1.2.9Макеты пользовательских интерфейсов
- •1.2.10Математическая модель
- •2Экономическая часть
- •2.1Общие положения
- •2.2Определение затрат на создание продукта
- •2.2.1Материальные затраты
- •2.2.2Расходы на оплату труда
- •2.2.3Отчисления на социальные нужды
- •2.2.4Амортизационные отчисления.
- •2.2.5Прочие расходы
- •2.3Затраты на создание продукта.
- •2.3.1Цена разработанного продукта.
- •2.3.2Оценка экономической эффективности использования продукта.
- •3Охрана труда и окружающей среды
- •3.1Введение
- •3.2Факторы, воздействующие на оператора пк
- •3.3Освещение
- •3.4Требование к монитору
- •3.4.1Визуальная эргономика
- •3.4.2Геометрические характеристики изображения
- •3.4.3Яркость изображения
- •3.4.4Контрастность изображения
- •3.4.5Цветопередача
- •3.5Эргономика рабочего места
- •3.6Заключение
- •4Заключение и выводы
- •5Список источников
- •6Приложения
- •6.1Приложение а
- •6.2Приложение б
1.1.3.4Итеративная разработка
Итеративный подход (англ. iteration, «повторение») в разработке программного обеспечения — это выполнение работ параллельно с непрерывным анализом полученных результатов и корректировкой предыдущих этапов работы. Проект при этом подходе в каждой фазе развития проходит повторяющийся цикл Деминга-Шухарта.
Преимущества итеративного подхода:
снижение воздействия серьёзных рисков на ранних стадиях проекта, что ведет к минимизации затрат на их устранение;
организация эффективной обратной связи проектной команды с потребителем (а также заказчиками, стейкхолдерами) и создание продукта, реально отвечающего его потребностям;
акцент усилий на наиболее важные и критичные направления проекта;
непрерывное итеративное тестирование, позволяющее оценить успешность всего проекта в целом;
раннее обнаружение конфликтов между требованиями, моделями и реализацией проекта;
более равномерная загрузка участников проекта;
эффективное использование накопленного опыта;
реальная оценка текущего состояния проекта и, как следствие, большая уверенность заказчиков и непосредственных участников в его успешном завершении.
затраты распределяются по всему проекту, а не группируются в его конце.
Рисунок 3. Итеративная модель разработки ПО.
Пример реализации итеративного подхода — Rational Unified Process.
1.1.3.5Гибкая методология разработки
Гибкая методология разработки (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки и динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. Существует несколько методик, относящихся к классу гибких методологий разработки, в частности, известны как гибкие методики экстремальное программирование, DSDM, Scrum.
Большинство гибких методологий нацелены на минимизацию рисков путём сведения разработки к серии коротких циклов, называемых итерациями, которые обычно длятся две-три недели. Каждая итерация сама по себе выглядит как программный проект в миниатюре и включает все задачи, необходимые для выдачи мини-прироста по функциональности: планирование, анализ требований, проектирование, кодирование, тестирование и документирование. Хотя отдельная итерация, как правило, недостаточна для выпуска новой версии продукта, подразумевается, что гибкий программный проект готов к выпуску в конце каждой итерации. По окончании каждой итерации команда выполняет переоценку приоритетов разработки.
Agile-методы делают упор на непосредственное общение лицом к лицу. Большинство agile-команд расположены в одном офисе, иногда называемом англ. bullpen. Как минимум, она включает и «заказчиков» (англ. product owner — заказчик или его полномочный представитель, определяющий требования к продукту; эту роль может выполнять менеджер проекта, бизнес-аналитик или клиент). Офис может также включать тестировщиков, дизайнеров интерфейса, технических писателей и менеджеров.
Основной метрикой agile-методов является рабочий продукт. Отдавая предпочтение непосредственному общению, agile-методы уменьшают объём письменной документации по сравнению с другими методами. Это привело к критике этих методов как недисциплинированных.
Agile — семейство процессов разработки, а не единственный подход в разработке программного обеспечения, и определяется Agile Manifesto[1]. Agile не включает практик, а определяет ценности и принципы, которыми руководствуются успешные команды.
Agile Manifesto разработан и принят 11-13 февраля 2001 года на лыжном курорте The Lodge at Snowbird в горах Юты. Манифест подписали представители следующих методологий Extreme programming, Scrum, DSDM, Adaptive software development, Crystal Clear, Feature-driven development, Pragmatic Programming. Agile Manifesto содержит 4 основные идеи и 12 принципов. Примечательно, что Agile Manifesto не содержит практических советов.
Основные идеи:
Личности и их взаимодействия важнее, чем процессы и инструменты;
Работающее программное обеспечение важнее, чем полная документация;
Сотрудничество с заказчиком важнее, чем контрактные обязательства;
Реакция на изменения важнее, чем следование плану.
Принципы, которые разъясняет Agile Manifesto[2]:
удовлетворение клиента за счёт ранней и бесперебойной поставки ценного программного обеспечения;
приветствие изменений требований даже в конце разработки (это может повысить конкурентоспособность полученного продукта);
частая поставка рабочего программного обеспечения (каждый месяц или неделю или ещё чаще);
тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта;
проектом занимаются мотивированные личности, которые обеспечены нужными условиями работы, поддержкой и доверием;
рекомендуемый метод передачи информации — личный разговор (лицом к лицу);
работающее программное обеспечение — лучший измеритель прогресса;
спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределённый срок;
постоянное внимание улучшению технического мастерства и удобному дизайну;
простота — искусство не делать лишней работы;
лучшие технические требования, дизайн и архитектура получаются у самоорганизованной команды;
постоянная адаптация к изменяющимся обстоятельствам.
Существуют методологии, которые придерживаются ценностей и принципов заявленных в Agile Manifesto, некоторые из них:
Agile Modeling (англ.) — набор понятий, принципов и приёмов (практик), позволяющих быстро и просто выполнять моделирование и документирование в проектах разработки программного обеспечения. Не включает в себя детальную инструкцию по проектированию, не содержит описаний, как строить диаграммы на UML. Основная цель: эффективное моделирование и документирование; но не охватывает программирование и тестирование, не включает вопросы управления проектом, развёртывания и сопровождения системы. Однако включает в себя проверку модели кодом[3].
Agile Unified Process (англ.) (AUP) упрощенная версия IBM Rational Unified Process (RUP), разработанная Скоттом Амблером, которая описывает простое и понятное приближение (модель) для создания программного обеспечения для бизнес-приложений.
Agile Data Method (англ.) — группа итеративных методов разработки программного обеспечения, в которых требования и решения достигаются в рамках сотрудничества разных кросс-функциональных команд.
DSDM основан на концепции быстрой разработки приложений (Rapid Application Development, RAD). Представляет собой итеративный и инкрементный подход, который придаёт особое значение продолжительному участию в процессе пользователя/потребителя.
Essential Unified Process (англ.) (EssUP).
Экстремальное программирование (англ. Extreme programming, XP).
Feature driven development (FDD) — функционально-ориентированная разработка. Используемое в FDD понятие функции или свойства (англ. feature) системы достаточно близко к понятию прецедента использования, используемому в RUP, существенное отличие — это дополнительное ограничение: «каждая функция должна допускать реализацию не более, чем за две недели». То есть если сценарий использования достаточно мал, его можно считать функцией. Если же велик, то его надо разбить на несколько относительно независимых функций.
Getting Real — итеративный подход без функциональных спецификаций, использующийся для веб-приложений. В данном методе сперва разрабатывается интерфейс программы, а потом её функциональная часть.
OpenUP — это итеративно-инкрементальный метод разработки программного обеспечения. Позиционируется как лёгкий и гибкий вариант RUP. OpenUP делит жизненный цикл проекта на четыре фазы: начальная фаза, фазы уточнения, конструирования и передачи. Жизненный цикл проекта обеспечивает предоставление заинтересованным лицам и членам коллектива точек ознакомления и принятия решений на протяжении всего проекта. Это позволяет эффективно контролировать ситуацию и вовремя принимать решения о приемлемости результатов. План проекта определяет жизненный цикл, а конечным результатом является окончательное приложение.
Scrum устанавливает правила управления процессом разработки и позволяет использовать уже существующие практики кодирования, корректируя требования или внося тактические изменения. Использование этой методологии дает возможность выявлять и устранять отклонения от желаемого результата на более ранних этапах разработки программного продукта.
Бережливая разработка программного обеспечения (англ. lean software development) использует подходы из концепции бережливого производства.