1) Основные понятия
Primary tabs
Forums:
Лекция читалась преподавателем ПиИТ ФКН ВГУ
Хлебостроевым Виктором Григорьевичем
---------------------
в сети факультета лекция доступна в виде презентации, но по-моему удобнее учить , когда перед глазами что-то больше, чем один слайд)))
Относительно слайдов фкн, имеются следующие дополнения :
- Определение служебного каталога.
- Комментарии и пояснение к схеме работы подели версионирования "блокирование-изменение-разблокирование"
- Log in to post comments
- 5985 reads
vedro-compota
Tue, 12/06/2011 - 19:28
Permalink
Основные понятия технологии
Основные понятия технологии программирования
Орлов С.А. Технологии разработки программного обеспечения: Учебник для вузов. 3-е изд. – СПб.: Питер, 2004. – 527 с.: ил.
Принципы проектирования и разработки программного обеспечения. Учебный курс MCSD.: Пер. с англ.: – М.: Издательско-торговый дом «Русская Редакция», 2000. – 608 с.: ил.
Лингер, Р. Теория и практика структурного программирования / Ричард Лингер, Хэрлан Миллс, Бернард Уитт.: Пер. с англ.: – М.: Мир, 1982. – 406 с.: ил.
Грис, Дэвид. Наука программирования.: Пер. с англ.: – М.: Мир, 1984. – 416 с.: ил.
Буч, Грейди. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. 2-е изд.: Пер. с англ.: – СПб.: Невский диалект, 1998. – 560 с.: ил.
Оберг, Роберт, Дж. Технология COM+. Основы и программирование.: Пер. с англ.: Уч. пос. – М.: Издательский дом «Вильямс», 2000. – 480 с.: ил.
Уоткинз, Д. Программирование на платформе .Net / Деймьен Уоткинз, Марк Хаммонд, Брэд Эйбрамз.
Delphi и технологияCOM. Мастер-класс / Н. Елманова, С. Трепалин, А. Тенцер. – СПб: Питер, 2003 – 698 с.: ил.
В. В. Кулямин. Технологии программирования. Компонентный подход. http://panda.ispras.ru/~kuliamin/sdt-cou...
==================
Основная тема данного курса —
методы разработки «больших» и сложных программ
Программы, решающие какие-либо узкие задачи, в большинстве случаев пишутся программистами «на коленках» без использования особых методов.
Пример: программа для вычисления значения синуса угла с некоторой наперед заданной точностью
Для «малых» программ можно указать следующие характерные особенности:
Большие» программы.
В данном курсе речь пойдет о «больших» программах и программных комплексах, которые создаются для решения сложных задач, связанных с практической деятельностью значительного числа людей.
Примерами таких программ являются=
Свойства «больших» программ
«Большая» программа обычно обладает следующими свойствами:
Программное обеспечение
Как правило, «большие» программы требуют для своего выполнения некоторого набора аппаратных средств, образуя программно-аппаратные системы.
Поэтому иногда мы будем пользоваться понятием «программное обеспечение» («ПО»), подразумевая под этим собственно программную «начинку» программно-аппаратных систем
Программная инженерия и технология программирования
Изучением организационных, инженерных и технических аспектов создания ПО занимается дисциплина, называемая программной инженерией
Результатом такого изучения является
Методы и средства ТП
Технология программирования состоит из средств и методов.
Методы ТП
определяют=Средства ТП
Средствами технологии программирования называются утилиты, обеспечивающие автоматизированную или автоматическую поддержку методов
Совместно используемые утилиты объединяются в системы автоматизированной разработки ПО
Такие системы принято называть CASE-средствами (Computer Aided Software Engineering)
Понятие «правильности» программы
Даже для «малых» программ обеспечение их правильности является чрезвычайно сложной задачей, а для «больших» программ оно становится практически бессмысленным
Это объясняется тем, что=
Понятие качества программного обеспечения
Критерии качества ПО
Основными критериями качества ПО (criteria of software quality) являются:
Теперь разберём эти понятия подробнее
1) Функциональность ПО =
Способность ПО выполнять набор функций (действий), удовлетворяющих заданным или подразумеваемым потребностям пользователей
Набор указанных функций определяется во внешнем описании ПО
2) Надежность программного обеспечения =
Надежность (reliability) ПО - это его способность с достаточно большой вероятностью безотказно выполнять определенные функции при заданных условиях и в течение заданного периода времени
3)Эффективность программного обеспечения =
Соотношение уровня услуг, предоставляемых ПО пользователю при заданных условиях, и объема используемых для этого ресурсов
К числу таких ресурсов могут относиться =
4) Эргономичность ПО =
Характеристики ПО, которые позволяют минимизировать усилия пользователя по подготовке исходных данных, применению ПО и оценке полученных результатов, а также вызывать положительные эмоции определенного или подразумеваемого пользователя
5) Модифицируемость программного обеспечения =
Характеристики ПО, которые позволяют минимизировать усилия по внесению изменений для устранения ошибок и по его модификации в соответствии с изменяющимися потребностями пользователей
Модифицируемость ПО существенно зависит от степени и качества его документированности
6) Мобильность ПО =
Способность ПО быть перенесенным из одной среды (окружения) в другую, в частности, с одной аппаратной платформы на другую
--------------------------------
Проблемы разработки программного обеспечения
Основные проблемы создания сложных программных систем связаны с нахождением разумного компромисса между затратами на разработку и качеством ее результата
-----
Жизненный цикл ПО
Жизненный цикл ПО состоит из=
причем две последние фазы близки или совпадают по времени (то есть параллельны в каком-то смысле)
---------
Артефакты
Жизненный цикл ПО связан с различными видами деятельности большого количества людей
При этом создаются и перерабатываются различного рода артефакты
Примерами артефактов являются:
Роли
На различных этапах в создание и эксплуатацию ПО вовлекаются люди, выполняющие различные роли
Примерами ролей являются:
--------------------------------
Модели процесса разработки
Наиболее интересной фазой жизненного цикла ПО с точки зрения технологии программирования является фаза разработки
Особенности применяемых методов разработки описываются с помощью моделей процесса разработки ПО
Стратегии разработки ПО
Отдельные модели соответствуют одной из стратегий разработки –
О них подробнее=
Линейная стратегия предполагает однократное прохождение всех этапов разработки ПО
Инкрементная стратегия предполагает, что в начале процесса определяются все пользовательские и системные требования. Разработка выполняется в виде последовательности версий с нарастающей функциональностью
Эволюционная стратегия также основана на выпуске последовательности версий ПО, но допускает возможность постепенного уточнения требований к нему в процессе разработки на основе анализа предыдущих версий
ВИДЫ МОДЕЛЕЙ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Каскадная модель
Наиболее широко известной и применяемой долгое время оставалась так называемая каскадная или водопадная (waterfall) модель жизненного цикла
Впервые четко сформулирована в 1970 году Уильямом Ройсом (W.W.Royce) и затем закреплена в стандартах Министерства обороны США/
Предполагает строго последовательное поэтапное выполнение различных видов деятельности с четким определением границ между этапами
Набор документов, созданный на предыдущем этапе, передается в качестве входных данных для следующего этапа
СТРУКТУРА =
Достоинства модели:
Недостатки модели:
----------
Инкрементная модель
Является классическим примером реализации инкрементной стратегии. Разработка ПО выполняется в виде последовательности инкрементов, каждый из которых представляет собой линейную последовательность этапов разработки
СТРУКТУРА =
Результатом выполнения каждого из инкрементов является очередная работающая версия ПО
Достоинством данной модели по сравнению с каскадной является возможность передать заказчику работающий прототип системы до полного завершения процесса разработки
Ее основной недостаток заключается в наличии риска увеличения срока разработки из-за подготовки большого числа версий
-----------
RAD-модель
Модель быстрой разработки приложений (Rapid Application Development) появилась в 80-х годах прошлого века и является еще одним примером реализации инкрементной стратегии
Предполагает выделение в системе нескольких основных бизнес-функций и разработку каждой из них отдельной группой разработчиков с последующей интеграцией в целую систему
Каждая группа делает следующее(для той части проекта , что разрабатывает) =
Применение данной модели оправдано в проектах, не требующих выполнения сложных алгоритмов, но при жестких ограничениях по сроками выполнения
Как правило RAD-модель используется при работе с мощными инструментальными средствами разработки – визуальными средами проектирования и программирования
Основным достоинством модели является уменьшение сроков разработки
Ее главный недостаток заключается в необходимости использования большого числа квалифицированных разработчиков, что может существенно повысить стоимость разработки
-------------------
Спиральная модель
Предложена в 1988 г. Барри Боэмом (Barry W. Boehm) и является классическим примером реализации эволюционной стратегии.
Модель определяет четыре действия:=
О них подробнее =
1) Планирование заключается в =
2) Анализ рисков – анализ вариантов решения и оценка связанных с ними рисков, т.е. возможностей получения неудовлетворительных результатов
3) Конструирование – это основное действие, заключающееся в создании следующей версии ПО
4) Оценивание – оценка заказчиком качества очередной версии ПО, внесение им предложений по модификации продукта, корректировка требований
Достоинства модели:
Недостатки модели:
-------------------------------
Прогнозирующие процессы
Все рассмотренные выше модели соответствуют так называемым прогнозирующим ( тяжеловесным ) процессам разработки ПС
Они предполагают планирование всего объема работ и, соответственно, достаточно большой объем документации
Основная цель таких процессов – отделить успешные практики разработки и сопровождения ПО от конкретных людей, умеющих их применять
Многочисленные вспомогательные действия [позволяют] выполнить успешную разработку с помощью имеющихся работников, не обязательно являющихся "суперпрофессионалами"
----------------
Адаптивные процессы
В настоящее время все большее распространение получают адаптивные или облегченные, «живые» (agile) процессы разработки
Они не требуют столь жесткой регламентации, допускают возможность частых и существенных изменений требований заказчиков
Адаптивные процессы делают упор на использовании хороших разработчиков, а не хорошо отлаженных процессов разработки
Они избегают фиксации четких схем действий, чтобы обеспечить большую гибкость в каждом конкретном проекте и не требуют разработки дополнительных промежуточных документов
------
Принципы «живой» разработки
Основные принципы «живой» разработки ПО зафиксированы в манифесте, появившемся в 2000 году:=
---------------
Экстремальное программирование
Наиболее часто используемой адаптивной моделью является модель экстремального программирования (eXtreme Programming, XP-процесс)
XP-процесс ориентирован на группы малого и среднего размера, разрабатывающих ПС в условиях неопределенных или быстро меняющихся требований
XP-процесс (экстремальное программирование)
Основная идея XP-процесса – устранить высокую стоимость внесения изменений. Это достигается путем резкого (до двух недель) сокращения длительности отдельных итераций.
Базовыми действиями xp являются:=
Принципы XP
Высокий динамизм разработки обеспечивается следующими принципами:=
Практики XP разработки
Реализация этих принципов достигается за счет использования следующих методов:=
схема XP разработки
изображение XP (схема XP разработки ):
------------[конец лекции]---------------------------
_____________
матфак вгу и остальная классика =)