Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Техн. прогр. - Конспект лекций.doc
Скачиваний:
31
Добавлен:
15.03.2016
Размер:
877.06 Кб
Скачать

Модели жц.

  1. Каскадная (водопадная) модель.

Постановка задачи, анализ требований, проектирование, кодирование, тестирование, модификация.

  1. КМ с промежуточным контролем.

  2. Спиральная модель.

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

  1. RAD – технология.

RAD (от англ. rapid application development — быстрая разработка приложений) — концепция создания средств разработки программных продуктов, уделяющая особое внимание быстроте и удобству программирования, созданию технологического процесса, позволяющего программисту максимально быстро создавать компьютерные программы. С конца XX века RAD получила широкое распространение и одобрение. Концепцию RAD также часто связывают с концепцией визуального программирования.

  • Инструментарий должен быть нацелен на минимизацию времени разработки.

  • Создание прототипа для уточнения требований заказчика.

  • Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком.

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

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

  • Управление проектом должно минимизировать длительность цикла разработки.

5. Экстремальное программирование.

Экстремальное программирование

1. Короткий цикл обратной связи (Fine scale feedback)

– Разработка через тестирование (Test driven development) – техника программирования, при которой модульные тесты для программы или её фрагмента пишутся до самой программы (англ. test-first development) и, по существу, управляют её разработкой. Является одной из основных практик экстремального программирования;

– Игра в планирование (Planning game)

– Заказчик всегда рядом (Whole team, Onsite customer)

– Парное программирование (Pair programming)

2. Непрерывный, а не пакетный процесс

– Непрерывная интеграция (Continuous Integration) – это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем;

– Рефакторинг (Design Improvement, Refactor) – процесс полного или частичного преобразования внутренней структуры программы при сохранении её внешнего поведения.

– Частые небольшие релизы (Small Releases)

3. Понимание, разделяемое всеми

– Простота (Simple design)

– Метафора системы (System metaphor)

– Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership) – каждый член команды несёт ответственность за весь исходный код, каждый вправе вносить изменения в любой участок программы

– Стандарт кодирования (Coding standard or Coding conventions) – набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования

4. Социальная защищенность программиста (Programmer welfare):

– 40-часовая рабочая неделя (Sustainable pace, Forty hour week)

Оценка качества процессов создания программного обеспечения.

  1. Стандарты ISO 9000-9004. Необходимые условия для достижения минимального уровня организации процесса ППО.

  2. CMM (Capability Maturity Model) – модель зрелости процессов создания ПО. Включает 5 уровней: начальный, повторяемый, определённый, управляемый, оптимизирующий.

  3. SPICE (Software Process Improvement and Capability dEtermination) (ISO/IES 15504) – определение возможностей и улучшение процесса создания программного обеспечения.

Проектирование надёжного ПС.

Майерс: «В программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать». Ошибки в ПО не являются внутренним его свойством. Наличие ошибок зависит как от самого программного обеспечения, так и от ожиданий пользователя.

Надёжность программного обеспечения есть вероятность его работы без отказов в течение определённого периода времени, рассчитанная с учётом стоимости для пользователя каждого отказа.

Почему техника надёжнее программ?

1. Большее разнообразие входных данных.

2. Отношение к возможным применениям.

3. Различная природа компонент.

Макромодель перевода. проектирование программного обеспечения состоит из ряда этапов.

На каждом из этапов возможны ошибки по взаимодействию исполнителей.

Микромодель перевода.

Чтение  Запоминание  анализ  распространение

Причины ошибок:

- чтение между строк  всё, что непонятно, надо уточнять у автора документа;

- непонимание;

- нечёткое выражение мыслей.

Четыре подхода к надёжности.

1. Предупреждение ошибок.

2. Обнаружение ошибок.

3. Исправление ошибок.

4. Устойчивость к ошибкам.

- динамическая избыточность (неприменимо);

- отступление (обработка исключений try – throw – catch);

- изоляция ошибок (задача ОС).

Борьба со сложностью.

Сложность – основная причина ошибок перевода, и, следовательно, одна из главных причин ненадёжности.

Концепции:

- независимость – компоненты должны быть максимально независимы;

- иерархическая структура.

Проектирование.

- вовлечение пользователя в процесс принятия решений;

- понимание культуры пользователя;

- умение правильно ставить и решать задачи.