Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Краткие теоретические аспекты курса «технология разработки программного обеспечения»

ВВЕДЕНИЕ

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

Технология разработки программного обеспечения (ТРПО) – это совокупность процессов и методов создания программного продукта.

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

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

Технология разработки программного обеспечения – это система инженерных принципов для создания экономичного ПО с заданными характеристиками качества.

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

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ КУРСА «ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»

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

Так, по данным американских исследователей, в 80-е только 14% проектов по созданию ПО завершались успешно. Но и сегодня - после нескольких десятилетий эволюции языков программирования, инструментальных средств разработки, при практически неограниченном (по сравнению с 70-ми и 80-ми) машинном времени - процент успешно завершенных проектов составляет всего 26%. В СССР достижения в области производства ПО были значительно лучшими. Тому способствовали следующие объективные предпосылки:

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

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

1.1. Технологии

Термин «технология» – он подчеркивает аналогию между созданием программного продукта и промышленным производством. Он отражает современную тенденцию к вводу дисциплины, организации и инструментирования в такой творческий процесс, как программирование. Слово фиксирует ту точку зрения, что программирование, несмотря на интеллектуальность и творческий характер этой деятельности, нуждается в организации и регламентировании, наборе соглашений и правил, не говоря уже об инструментальном обеспечении. Сейчас это кажется тривиальным, но в 60-е годы такую точку приходилось отстаивать. Да и сейчас порой возникают трения на почве регламентирования деятельности разработчиков.

Сам русский термин «технология программирования» был введен русским академиком Андреем Петровичем Ершовым. Он трактовал термин «программирование» в обобщенном виде и подразумевал все виды деятельности, выполняемые в ходе создания программных систем.

Сейчас обобщённый термин, применимый к созданию программных средств, обозначают как «разработка» или «конструирование».

Справедлива формула:

разработка = анализ + проектирование + программирование (кодирование) + тестирование + отладка

Иногда сюда также включают “сопровождение”. Чтобы подчеркнуть промышленно-производственный аспект, говорят о “технологии разработки” или “технологии конструирования”.

 

 

1.2. Методы проектирования

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

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

Сегодня существует огромное количество различных процессов для создания ПО. Тем не менее, именно технологий, рассматривающих полный жизненный цикл проекта разработки ПО, сочетающих в себе научный подход, серьезную базу исследований и имеющих историю реального использования и адаптации, относительно немного. Из методологий и технологий, получивших определенное признание на данный момент, можно назвать следующие: Datarun, CMM, Microsoft Solution Framework (MSF), Oracle Method, Rational Unified Process (RUP), SADT (IDEFx). Особое место в этом списке занимает технология компании Rational Software. В ее методологии применен наиболее современный процессноориентированный подход: так как разработка ПО является производством, то, как и на всяком производстве, при выявлении проблем в продукции (симптомов) необходимо корректировать процесс (устранять причины). Особенностью этой технологии является то, что в ее создании участвуют ведущие методисты в области разработки ПО, такие как Г. Буч (ООАП), Дж. Рамбо (ОМТ), А. Джекобсон (Objectory), внесшие весомый вклад в теорию и практику разработки современного ПО. Кроме того, следует заметить, что эта технология развивалась и проходила проверку с участием военного ведомства США.

1.4. Этапы и элементы процесса разработки

В 80-е и 90-е в области разработки ПО преобладали две тенденции. Одна – это быстрый рост приложений, в том числе создаваемых для Web. Другая – расцвет инструментальных средств и парадигм (подходов к проектированию). Несмотря на появление новых тенденций, основные этапы разработки ПО остались неизменными:

- Определение процесса разработки ПО

- Управление проектом разработки

- Описание целевого программного продукта

- Проектирование продукта

- Разработка продукта

- Тестирование частей

- Интеграция частей и тестирование продукта в целом

-Сопровождение продукта.

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

Система разработки ПО включает в себя 4 “П” (Персонал, процесс, проект, продукт).

Персонал – те, кем это делается.

Команда разработчиков наилучшим образом работает, если каждый участник знает, что он должен делать, и имеет определенные обязанности. Другая сторона аспекта персонала – это заинтересованные в проекте лица: заказчиками, пользователи и инвесторы.

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

Процесс – способ, которым это делается.

Выделяют: водопадный процесс, итеративный процесс,. Индивидуальный процесс разработки (Personal Software Process), командный процесс разработки (Team Software Process). Модель зрелости возможностей (Capability Maturity Model) для оценки возможностей команды разработчиков.

Проект – совокупность действий, необходимая для создания артефакта.

Проект включает контакт с заказчиком, написание документации, проектирование, написание кода и тестирование продукта.

Продукт – это не только программное обеспечение, но и все составляющие его артефакты.

Под артефактами понимается объектные модули, исходный код, документация, результаты тестов и измерений продуктивности.

Качество – приложения должны удовлетворять заранее определенному уровню качества.

Для достижения требуемого уровня качества применяются следующие методы:

- инспектирование (процесс проверки качества, ориентированный на команды разработчиков. Он применяется на всех этапах разработки);

- формальные методы (доказательство правильности – математическое или логическое);

-тестирование; -

методы управления проектом

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...