Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КИТ_Часть 1 / конспект_КИТ-1_д-обуч.doc
Скачиваний:
419
Добавлен:
20.02.2016
Размер:
1.91 Mб
Скачать

3. Современные модели

К середине 1990-х годов индустрия ПО стала достаточно развитой, сложные проекты успешно реализовывались с помощью приобретающей популярность объектно-ориентированной методологии, а команды разработчиков стали применять подходы, основанные на использовании наиболее значимых преимуществ предыдущих моделей.

3.1. Объектно-ориентированная модель. Данная методология предполагает конструирование программного решения из готовых объектов, для которых определяются правила их взаимодействия, переводящие объекты из одного состояния в другое. Такая модель, предусматривающая полное соответствие процесса разработки положениям объектно-ориентированной методологии (объектно-ориентированный анализ, проектирование, программирование), эффективна в крупных проектах, а также там, где применяются так называемые средства быстрой разработки (RAD, Rapid Application Development), основанные на этих технологиях и содержащие готовые библиотеки классов.

Однако сами по себе RAD-системы не располагают к созданию объектно-ориентированных решений. Программисты, избалованные инструментарием, позволяющим в считанные часы создавать из готовых компонентов продукты, на которые ранее уходили дни и месяцы работы, считают лишним утруждать себя детальным изучением методологии и UML, а уж тем более не стремятся оформлять свои решения в виде классов, пригодных для повторного использования.

Таким образом, объектно-ориентированная модель применяется преимущественно в очень крупных проектах, где уделяется должное внимание этапам анализа и проектирования, а также жестко контролируется соблюдение разработчиками установленных правил.

3.2. Итеративная модель.Впервые предложенная Филиппом Крачтеном в 1995 г., данная модель объединяет главные преимущества спиральной, инкрементной, каскадной моделей, а также методов разработки на основе создания прототипов и объектно-ориентированного подхода (рис. 4). Она завоевала большую популярность и в том или ином виде используется во многих современных проектах.

Рис. 4. Итеративная модель предлагает использование итераций на всех этапах жизненного цикла

В соответствии с итеративной моделью имеются четыре основные фазы жизненного цикла разработки ПО (начало, исследование, построение и внедрение). На каждой фазе проект проходит множество итераций, приводящих к созданию работоспособных версий: на начальных создаются прототипы, уточняются требования, прорабатываются наиболее сложные проблемы; конечные приводят к созданию продукта, его совершенствованию и расширению функциональности.

Итеративная модель, помимо основных фаз, выделяет еще две группы процессов: рабочие (управление требованиями, анализ и проектирование, реализация, тестирование, развертывание) и вспомогательные (управление конфигурацией и изменениями, проектом и процессом). Количество и суть процессов варьируются в зависимости от потребностей разработчика, они также могут иметь свои циклы, которые не обязательно даже соответствуют основным фазам. Однако результатом рабочих процессов всегда является создание версий продукта.

Итеративная модель подобно спиральной дает возможность успешно справляться с рисками. Если во время работы над очередной версией будет установлено, что трудозатраты на реализацию необходимой функциональности слишком велики, то превышения бюджета и нарушения сроков можно будет избежать путем соотнесения приоритетов разработки и трудозатрат в начале каждой итерации. Таким образом, данная модель хорошо подходит для большинства типов программных проектов, но особенно ее преимущества заметны при работе над продуктами, предназначенными для выхода на свободный рынок, в силу изначальной ориентации на выпуск последовательных версий.

Филипп Крачтен долгое время работает в фирме Rational Software, которая сейчас принадлежит IBM. Именно по этой причине итеративная модель стала основой RUP (Rational Unified Process) – одного из наиболее распространенных методов комплексного управления процессом разработки ПО.На ее же основе разработан главный конкурент RUP со стороны Microsoft – MSF (Microsoft Solutions Framework), а также аналогичный подход компании Borland – ALM (Application Lifecycle Management).

3.3. Модели быстрой разработки. Множество ограничений в современных методологиях создания ПО привели к тому, что компании-разработчики во многом стали похожи на гигантские бюрократические системы. Наличие большого количества формальных процедур и правил существенно сужает свободу действий каждого конкретного программиста, превращает его в винтик в огромной и неповоротливой машине. Несмотря на то, что подобные машины способны вполне успешно справляться со стоящими перед ними задачами, обычно их КПД довольно низок и удельная производительность отдельного разработчика настолько мала, что нормальным может считаться написание программистом нескольких строк кода в день.

Бросить вызов подобным перегруженным формальностями подходам призваны модели быстрой разработки, такие, как, например, экстремальное программирование. Их суть заключается в отказе от всего лишнего, что не относится непосредственно к созданию качественного программного продукта, а за основу берутся лишь наиболее эффективные методы создания ПО. Особое внимание уделяется вопросам взаимодействия с заказчиком, организации продуктивной работы и тестированию. Многие идеи быстрой разработки не были чем-то новым, например юнит-тесты уже давно применялись во многих проектах, однако собранные вместе и ставшие обязательными для применения, они возымели положительный эффект. Об этих методах в последнее время стали говорить все чаще, а их элементы начали заимствоваться многими классическими моделями.

В современных условиях быстрая разработка – это очень модный подход, и ее используют все активнее. Основное преимущество состоит в том, что сравнительно небольшие группы разработчиков способны справляться с проектами за то же время, которое необходимо при применении более традиционных методов командами на порядок большей численности.

Однако здесь имеются и свои недостатки, в частности быстрая разработка плохо подходит для крупных проектов и ориентирована в основном на небольшие и средние, кроме того, ее эффективное использование возможно только при условии, что создатели ПО обладают весьма высокой квалификацией и значительным опытом.

3.4. Адаптированные и комбинированные модели. На самом деле в процессе эволюции моделей жизненного цикла разработки ПО новые идеи не заменяли старые целиком и полностью. Более правильно считать, что каждая из них имеет собственную сферу применения. Кроме того, в каждом конкретном случае может оказаться, что не существует методики, которая идеально подходит для решения данной задачи. В этом случае менеджерам программных проектов следует рассмотреть варианты адаптации моделей под конкретные потребности либо применять комбинированные методы, включающие элементы различных подходов. Например, успех быстрой разработки привел к тому, что более консервативные модели переняли самые эффективные ее приемы и стали использовать их уже в рамках своих процессов.

Способы распространения ПО, виды лицензий на ПО

Типы лицензий:

Freeware (от англ. "свободный").

Lite version (от англ. "легкий").

Demo (от англ. "демонстрация").

Donate(от англ. "дарить", "жертвовать").

Open Source Software (от англ. "открытые программные средства").

Spyware (от англ. spy "шпион")

Adware (от англ. "реклама", "объявление")

Shareware (от англ. "делиться")

Trialware (от англ. "испытание", "проба")

Warez (от англ. wares "товар")

Crack included (от англ. сленг. crack "совершить кражу со взломом")

Pirates compiled (от англ. "пиратская компиляция")

Musicware.

Различия.

lite и demo.Lite-продукт, в отличие от demo-версий, содержит полный набор необходимых для работы функций, просто наиболее продвинутые из них недоступны. В demo же версиях функций по минимуму, а рекламы по максимуму.

Spyware- и adware-лицензии. Здесь имеет место переход adware-программы в разряд spyware. Происходит это в том случае, если продукт пытается без ведома пользователя загрузить из Сети новую рекламу для демонстрации. Под фразой "без ведома пользователя" подразумевается, что этот момент не оговаривается в лицензионном соглашении или сама программа не выдает сообщение во время первого запуска или до начала скачивания о том, что в ней есть такая функция.

Shareware и trialware.Ключевое отличие между двумя этими лицензиями в том, что shareware-программы имеют функциональные ограничения и могут иметь временное. Trial же программы имеют только временное ограничение, в остальном – это полнофункциональные продукты.

Warez и crack included.То, что предлагают владельцы большинства варез-порталов – это, по сути, обыкновенный crack included или же просто нормальный продукт плюс ссылка на крек. Стопроцентный варез обычно распространяется на сайтах хакерских групп, которые "ломают" продукты. Warez может перейти в раздел pirates compiled, если его начинают продавать (изначально варез являлся бесплатным), чем сейчас и занимаются некоторые варез- и крек-порталы.

В раздел pirates compiledпопадают любые продукты, которые распространяются на пиратских дисках. При этом не играет роли, какой тип лицензии у программы был изначально.