
- •Основные этапы развития технологии создания ис.
- •Проблемы разработки сложных программныхсистем.
- •Блочно иерархический подход к созданию сложных систем.
- •Приемы обеспечения технологичности программных продуктов. Понятие технологичности программного обеспечения.
- •Модули и их свойства. Сцепление модулей. Связность модулей. Библиотека ресурсов.
- •Нисходящая и восходящая разработка программного обеспечения.
- •Средства описания структурных алгоритмов. Псевдокоды. Необязательно: ( Flow-формы, Диаграммы Несси-Шнейдермана.)
- •Программирование «с защитой от ошибок». Сайт.
- •Классификация программных продуктов по функциональному признаку.
- •Основные эксплуатационные требования к программным продуктам. Предпроектные исследования предметной области. Разработка технического задания.
- •Анализ требований и определенной спецификаций программного обеспечения ис при структурном подходе. Определение понятия «спецификация».
- •Создание формальной модели разрабатываемого по ис.
- •Классификация моделей разрабатываемого программного обеспечения, используемых на этапе определения спецификаций.
Блочно иерархический подход к созданию сложных систем.
Сайт. Сайт2.
В природе существуют иерархии “целое-часть”, “простое-сложное”(иерархия развития систем в процессе эволюции). В этой иерархии любая функционирующая система является результатом развития более простой системы. Именно данный вид иерархии реализуется механизмом наследования объектно-ориентированного программирования. Будучи в значительной степени отражением природных и технических систем, программные системы обычно являются иерархическими, т.е. обладают описанными выше свойствами. На этих свойствах иерархических систем строится блочно-иерархический подход. Этот подход предполагает сначала создание частей таких объектов, а затем “сборку” из них самого объекта.
Жизненный цикл и этапы разработки программного обеспечения.
Сайт и Сайт2.
Водопадная (каскадная, последовательная) модель:
моделью:
Формирование требований;
Проектирование;
Реализация;
Тестирование;
Внедрение;
Эксплуатация и сопровождение.
Итерационная модель
Альтернативой последовательной модели является так называемая модель итеративной и инкрементальной разработки (англ. iterative and incremental development, IID), получившей также от Т. Гилба в 70-е гг. название эволюционной модели. Также эту модель называют итеративной моделью и инкрементальной моделью.
Модель IID предполагает разбиение жизненного цикла проекта на последовательность итераций, каждая из которых напоминает «мини-проект», включая все процессы разработки в применении к созданию меньших фрагментов функциональности, по сравнению с проектом в целом. Цель каждой итерации — получение работающей версии программной системы, включающей функциональность, определённую интегрированным содержанием всех предыдущих и текущей итерации. Результат финальной итерации содержит всю требуемую функциональность продукта. Таким образом, с завершением каждой итерации продукт получает приращение — инкремент— к его возможностям, которые, следовательно, развиваются эволюционно. Итеративность, инкрементальность и эволюционность в данном случае есть выражение одного и то же смысла разными словами со слегка разных точек зрения.
Спиральная модель
При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования
Каждая итерация соответствует созданию фрагмента или версии ПО, на ней уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируются работы следующей итерации.
На каждой итерации оцениваются:
риск превышения сроков и стоимости проекта;
необходимость выполнения ещё одной итерации;
степень полноты и точности понимания требований к системе;
целесообразность прекращения проекта.
Стандарт ГОСТ 34.601-90 предусматривает следующие стадии и этапы создания автоматизированной системы:
Формирование требований к АС
Разработка концепции АС
Техническое задание
Эскизный проект
Технический проект
Рабочая документация
Ввод в действие
Сопровождение АС.
Эскизный, технический проекты и рабочая документация — это последовательное построение все более точных проектных решений. Допускается исключать стадию «Эскизный проект» и отдельные этапы работ на всех стадиях, объединять стадии «Технический проект» и «Рабочая документация» в «Технорабочий проект», параллельно выполнять различные этапы и работы, включать дополнительные.
Данный стандарт не вполне подходит для проведения разработок в настоящее время: многие процессы отражены недостаточно, а некоторые положения устарели.
Модели жизненного цикла программных систем.
Водопадная (каскадная, последовательная) модель, Итерационная модель, Спиральная модель. См. предыдущий вопрос.
Ускоренная разработка программного обеспечения. Технология RAD.
Сайт и Сайт2.
RAD (от англ. rapid application development — быстрая разработка приложений) — концепция создания средств разработкипрограммных продуктов, уделяющая особое внимание быстроте и удобству программирования, созданию технологического процесса, позволяющего программисту максимально быстро создавать компьютерные программы. Практическое определение: RAD — это жизненный цикл процесса проектирования, созданный для достижения более высокой скорости разработки и качества ПО, чем это возможно при традиционном подходе к проектированию. С конца XX века RAD получила широкое распространение и одобрение. Концепцию RAD также часто связывают с концепцией визуального программирования.
Технологию RAD целесообразно применять, когда четко определены некоторые приоритетные направления разработки проекта.
Сравнение RAD и Каскадного метода
Необходимо выполнение проекта в сжатые сроки. Быстрое выполнение проекта позволяет создать систему, отвечающую требованиям сегодняшнего дня. Если система проектируется долго, то весьма высока вероятность, что за это время существенно изменятся фундаментальные положения, регламентирующие деятельность организации, то есть, система морально устареет ещё до завершения её проектирования.
Нечетко определены требования к ПО. В большинстве случаев заказчик весьма приблизительно представляет себе работу будущего программного продукта и не может четко сформулировать все требования к ПО. Требования могут быть вообще не определены к началу проекта либо могут изменяться по ходу его выполнения.
Проект выполняется в условиях ограниченности бюджета. Разработка ведется небольшими RAD-группами в короткие сроки, что обеспечивает минимум трудозатрат и позволяет вписаться в бюджетные ограничения.
Интерфейс пользователя (GUI) есть главный фактор. Нет смысла заставлять пользователя рисовать картинки. RAD-технология дает возможность продемонстрировать интерфейс в прототипе, причем достаточно скоро после начала проекта.
Возможно разбиение проекта на функциональные компоненты. Если предполагаемая система велика, необходимо, чтобы её можно было разбить на мелкие части, каждая из которых обладает четкой функциональностью. Они могут выпускаться последовательно или параллельно (в последнем случае привлекается несколько RAD-групп).
Низкая вычислительная сложность ПО.
Принципы RAD технологии направлены на обеспечение трех основных её преимуществ — высокой скорости разработки, низкой стоимости и высокого качества. Достигнуть высокого качества программного продукта весьма непросто и одна из главных причин возникающих трудностей заключается в том, что разработчик и заказчик видят предмет разработки (ПО) по-разному.
Инструментарий должен быть нацелен на минимизацию времени разработки.
Создание прототипа для уточнения требований заказчика.
Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком.
Минимизация времени разработки версии, за счёт переноса уже готовых модулей и добавления функциональности в новую версию.
Команда разработчиков должна тесно сотрудничать, каждый участник должен быть готов выполнять несколько обязанностей.
Управление проектом должно минимизировать длительность цикла разработки.
Принципы RAD применяются не только при реализации, но и распространяются на все этапы жизненного цикла, в частности на этап обследования организации, построения требований, анализ и дизайн и перепихивания.
Фазы разработки:
планирование — совокупность требований, полученных при системном планировании и анализе процедуры разработки жизненного цикла (SDLC).
Пользовательское проектирование
Конструирование
Переключение
Технология быстрой разработки приложений (RAD) позволяет обеспечить:
быстроту продвижения программного продукта на рынок;
интерфейс, устраивающий пользователя;
легкую адаптируемость проекта к изменяющимся требованиям;
простоту развития функциональности системы.
Оценка качества процессов создания программного обеспечения.
Сайт и Сайт2. Вики.
Для определения групп потребительских свойств могут быть использованы как отечественные, так и
международные нормативные документы. Например, российские стандарты предлагают использовать
следующие группы и комплексные показатели качества:
– показатели надежности ПС (устойчивость функционирования, работоспособность);
– показатели сопровождения (структурность, простота конструкции, наглядность, повторяемость);
– показатели удобства применения (легкость освоения, доступность эксплуатационных программных
документов, удобство эксплуатации и обслуживания);
– показатели эффективности (уровень автоматизации, временная эффективность, ресурсоемкость);
– показатели универсальности (гибкость, мобильность, модифицируемость);
– показатели корректности (полнота реализации, согласованность, логическая корректность,
проверенность).
Согласно ГОСТ Р ИСО 9126 следует обеспечивать следующие качественные характеристики
программных средств:
– функциональные возможности;
– функциональную пригодность;
– правильность (корректность);
– способность к взаимодействию;
– защищенность;
– надежность;
– эффективность;
– практичность (применимость);
– сопровождаемость;
– мобильность.