Концепция современного естествознания

Автор: Пользователь скрыл имя, 05 Декабря 2010 в 12:39, реферат

Краткое описание

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

Оглавление

1. Специфика разработки программных средств.
2. Специфика разработки программных средств.
3. Жизненный цикл программного средства.
4. Понятие качества программного средства.
5. Обеспечение надежности - основной мотив разработки программных средств.
6. Методы борьбы со сложностью.
7. Обеспечение точности перевода.
8. Преодоление барьера между пользователем и разработчиком.
9. Контроль принимаемых решений.

Файлы: 1 файл

ОБЩИЕ ПРИНЦИПЫ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ.doc

— 134.00 Кб (Скачать)
 

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

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

1.5. Методы борьбы со сложностью. 

     Мы  уже обсуждали в лекции 2 сущность вопроса борьбы со сложностью при  разработке ПС. Известны два общих  метода борьбы со сложностью систем:

  • обеспечения независимости компонент системы;
  • использование в системах иерархических структур.
 

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

1.6. Обеспечение точности перевода. 
 

     Обеспечение точности перевода направлено на достижение однозначности интерпретации документов различными разработчиками, а также пользователями ПС. Это требует придерживаться при переводе определенной дисциплины. Майерс предлагает использовать общую дисциплину решения задач, рассматривая перевод как решение задачи [3.11]. Лучшим руководством по решению задач он считает книгу Пойа "Как решать задачу" [3.12]. В соответствии с этим весь процесс перевода можно разбить на следующие этапы:

  • Поймите задачу;
  • Составьте план (включая цели и методы решения);
  • Выполните план (проверяя правильность каждого шага);
  • Проанализируйте полученное решение.
 
 
 
 
 
 

1.7. Преодоление барьера между пользователем и разработчиком. 
 

Как обеспечить, чтобы ПС выполняла то, что пользователю разумно ожидать от нее? Для этого  необходимо правильно понять, во-первых, чего хочет пользователь, и, во-вторых, его уровень подготовки и окружающую его обстановку. Поэтому следует - привлекать пользователя в процессы принятия решений при разработке ПС, - тщательно освоить особенности его работы (лучше всего - побывать в его "шкуре").  
 

1.8. Контроль принимаемых решений. 
 

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

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

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

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

Курс "Принципы разработки программного обеспечения  с использованием RUP, эффективных юзкейсов и программного обеспечения IBM Rational Suite" 

     Большое внимание в курсе обучения уделяется  вопросам Управления требованиями (Requirements management) и Управления изменениями (Change management), без удовлетворительного  решения которых невозможно построение качественного программного продукта.

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

     В курсе также рассматриваются  юзкейсы, поскольку все дисциплины RUP базируются на них (RUP декларирует  себя как «use-case driven» подход). Однако позиция автора курса состоит в том, что применение юзкейсов на основе RUP вызывает большие трудности. Эффективные юзкейсы Алистера Коберна (Alistair Cockburn) получили за последнее время широкое признание, поскольку они с успехом решают все проблемы, с которыми ранее приходилось сталкиваться. В ходе обучения даются рекомендации, показывающие, как правильно строить юзкейсы, для того, чтобы они стали практическим инструментом, который используется всеми, кто имеет отношение к проекту. Кроме того, демонстрируется возможность использования RequisitePro для работы с эффективными юзкейсами, рассматривается принципиальная возможность организации управления итеративной разработкой на основе их (т.е. эффективных юзкейсов и RequisitePro) совместного использования.

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

     В курсе показано, что инструменты, входящие в IBM Rational Suite должны быть настроены  для совместной работы в рамках единого, хорошо продуманного процесса. В частности, продемонстрировано, как организовать совместную работу Rational Rose и RequisitePro для управления требованиями; ClearQuest и RequisitePro для управления изменениями в требованиях; RequisitePro, MS Project и ClearQuest для организации групповой разработки. Аспекты использования ClearCase и различных инструментов тестирования рассматриваются в процессе обучения на концептуальном уровне.

     Курс  предназначен для всех тех, кто интересуется современными подходами к разработке программного обеспечения на основе методологии, технологий и инструментальных средств, предлагаемых компанией IBM Rational.

Программа курса 

Унифицированный процесс разработки программного обеспечения (Rational Unified Process) 

  • Современный взгляд на RUP как на совокупность базовых принципов, процесс разработки и фреймворк
  • Базовые принципы RUP
  • приверженность итеративной схеме разработки (iterative approach)
  • большое внимание к рискам (risk-driven, risk mitigation)
  • управление проектами на основе юзкейсов (use case driven)
  • сфокусированность на архитектуре (architecture-centric)
  • Сущность итеративной разработки. Сопоставление ее с последовательной («waterfall») моделью.
  • Риски в итеративной и последовательной моделях разработки
  • RUP как процесс разработки программного обеспечения
  • Два измерения RUP: статическая и динамическая составляющие
  • Элементы динамической структуры: итерации, фазы, вехи (milestones)
  • Фазы Inception, Elaboration, Construction, Transition. Предназначение каждой из них
  • Основные элементы статической структуры: роли, артефакты, активности и рабочие потоки (workflows). Дисциплины: основные и вспомогательные. Их роль и место в организации процесса разработки
  • Дополнительные элементы статической структуры. SPEM – профиль UML, используемый для построения статической структуры
  • RUP как процессный адаптируемый фреймворк
  • Набор лучших методов в контексте всех дисциплин
  • Средства доступа к этим методам: web-браузер и Extended Help (доступ из любого продукта, входящего в Rational Suite)
  • Инструменты конфигурирования процесса под конкретную роль. Понятие plug-in элемента, как средства расширения собственной конфигурации RUP Использование инструмента RUP Builder
  • RDN – сайт для обмена plug-in элементами, расширяющими RUP
  • Средства разработки для расширения RUP с использованием IBM Rational Rose в нотации профиля UML SPEM. Использование инструмента Rational Process Workbench
 
 

Введение в UML и IBM Rational Rose 

     UML. Структура языка: модельные элементы, диаграммы, средства расширения. Необходимость инструментальной  поддержки. 

Введение в IBM Rational Rose

Интерфейс с пользователем 

Демонстрация  основных приемов работы на примере  юзкейсных диаграмм.

Стереотипы. Различные приемы их использования.

Построение  новых моделей на основе фреймворков. Мастер – Framework Wizard Add-in.

Обеспечение переносимости моделей в Rational Rose с использованием Virtual Path Map.

Принципы  организации групповой разработки модели 

Моделирование бизнес-процессов 

Понятие бизнес-процесса. Реинжиниринг бизнес-процесса (BPR)

Моделирование бизнес-процессов c использованием Rational Rose

Диаграммы активностей (Activity diagram)

Использование бизнес-юзкейсов

Использование модели данных при построении Domain Model

Диаграммы состояний (Statechart diagram) 

Управление требованиями 

Общая схема работы с требованиями в RUP

     Классификация требований по схеме FURPS+. Требования функциональные и нефункциональные. Атрибуты качества (Quality attributes)

Понятие стейкхолдера (заинтересованное лицо). Запрос стейкхолдера (Stakeholder Request) и  рекомендации по его документальному оформлению в RUP. Роль системного аналитика в преобразовании запросов стейкхолдеров в унифицированный набор документов

     Основные  документы для работы с требованиями: Vision, Use cases, Supplementary Specification и Glossary. Принципы адаптации для конкретных проектов. Роль фич (features) при написании Vision

Использование юзкейсов при написании функциональных требований. Акцент на текстовую природу  юзкейса. Роль UML в Управление требованиями

     Эффективные юзкейсы А. Коберна. Сравнение с  классическими юзкейсами, определяемыми в RUP. Важнейшие характеристики эффективных юзкейсов: тип шаблона, бизнес/система, черный/прозрачный, уровень целей

Информация о работе Концепция современного естествознания