- •Жизненный цикл по
- •Основные
- •Организационные
- •Модели жизненного цикла
- •Классические процессы жизненного цикла
- •Проектирование
- •Стадии разработки, регламентированные гост 19.102 «Стадии разработки»
- •4. Управление идеей
- •5. Формирование требований к программному продукту.
- •4. Определение требований к пс.
- •Проектирование (разработка архитектуры пс)
- •Основные классы архитектур.
- •Методы разработки структуры программы
- •I. Метод восходящей разработки:
- •II. Метод нисходящей разработки:
- •III. Конструктивный подход
- •IV. Архитектурный подход
- •Объектный подход.
- •Компонентный подход и развитие case-технологий.
- •Методологии программирования
- •Методология императивного программирования.
- •Методология функционального программирования.
- •Методология структурного императивного программирования.
- •Каскадный подход с перекрывающимися процессами.
- •Генетические технологические подходы.
- •Конкретизирующее программирование.
- •Подходы на основе формальных преобразований.
- •Подходы быстрой разработки (прототипирование).
- •Подходы исследовательского программирования.
- •Языки программирования
- •Основные характеристики языков программирования
- •Классификация языков программирования (19.09.2006)
- •Инструментальные средства
- •12.Способы описания алгоритмов
- •13. Стиль программирования
- •14.Архитектурная платформа
- •Стековая
- •Структура ос
- •16.Тестирование и отладка.
- •Отладка.
- •Виды ошибок.
- •Методы и виды тестирования.
- •Комплексное тестирование.
- •17.Стандартные технологические процессы
- •18. Документирование
- •19. Спецификация качества пс
- •24. Коллективная разработка
- •2.2. Группы разработки
Основные характеристики языков программирования
Уровень языка
Характеризуется сложностью задач, решаемых с помощью этого языка. Языки специализированных областей. Чем более точно, тем выше уровень.
Мощность языка
Характеризуется количеством и многообразием задач, алгоритм решения которых позволяет записать язык.
Концептуальная целостность.
Характеризуется свойствами совокупности понятий, служащих для описания этого языка (единообразие понятий, экономия понятий и др.)
Другими характеристиками языка программирования являются:
Надежность (обеспечение минимума ошибок);
Удобочитаемость;
Полнота (способность описать класс задач некоторой предметной области);
Гибкость и др.
Классификация языков программирования (19.09.2006)
По поколениям
Машинные (0 и 1);
Ассемблеры (компактные программы, легко переводить в машинный код);
Процедурные;
Языки поддержки сложных структур данных;
Языки искусственного интеллекта (Prolog). Позволяют делать логические выводы на знаниях.
Языки нейронных сетей (самообучающиеся).
По поддерживаемым методологиям
Языки императивного программирования;
Языки ООП;
Языки функционального программирования;
Языки логического программирования;
Языки программирования в ограничениях;
По принадлежности к семейству
Семейство универсальных языков;
Семейство уникальных языков (APL);
Семейство языков параллельного программирования;
C-семейство (версии);
Pascal-семейство;
Prolog-семейство;
По ориентации на предметную область
Языки форматирования текстов;
Языки разметки;
Языки скриптов и т.д.
По степени абстракции от машины
ЯНУ (прямой доступ к регистрам);
ЯВУ;
Языки сверхвысокого уровня;
Язык моделирования – это набор правил, определяющих построение модели, включающей их визуализацию в определенные структуры и описывающей их поведение.
Основные элементы:
Фундаментальные модели и их семантика;
Нотации;
Руководство по использованию;
Два поколения:
языки структурного системного анализа и проектирования;
объектно-ориентированные языки моделирования;
По назначения языки моделирования делятся на:
Языки описания архитектур;
Языки проектирования модулей;
Языки спецификаций;
языки моделирования данных;
Языки моделирования знаний.
К языкам моделирования относятся: диаграммы потоков данных, диаграммы функционального моделирования, диаграммы сущность-связь, КОК-карты, UML, диаграммы вариантов использования, диаграммы состояний, диаграммы последовательностей, компонентов и др.
Инструментальные средства
Системы программирования – часть базового ПО, поддерживающая процесс программирования и представляет собой единство средств статической (инструментальной) и динамической (исполнительной) поддержки.
Состав систем программирования:
Редактор;
Транслятор;
Отладчик;
Библиотеки период трансляции и период выполнения;
Средства управления компиляцией и построением проекта и др.
Классификация (производится по ряду признаков):
По ориентированию на конкретный язык программирования;
По специализированности (ориентация на предметную область);
По комплексности (поддерживает ли среда все процессы или только часть);
По ориентированности на конкретную технологию программирования;
По ориентированности на коллективную разработку;
По интегрированности (интегрирована, если взаимодействие пользователя с инструментом подчиняется единообразным правилам, а инструменты действуют по заранее заданной информационной схеме, связаны по управлению или имеют общие части).
3 вида интегрирования:
По пользовательскому интерфейсу;
По данным;
По управлению.
По ориентации на технологические процессы:
Процесс-ориентированный инструментарий;
Универсальный;
Универсальный инструментарий. Программа представляет собой текст.
Группы:
Инструменты работы с текстом (редакторы, средства поиска).
Средства, базирующиеся на регулярных выражениях.
Для поиска участков текста по некоторым конкретным шаблонам.
Средства поиска различий (для обнаружений разницы между фрагментами)
diff, GNUdiff.
Средства поиска на основе шаблона.
На входе – исходный код и запрос на языке шаблонов. На выходе – информация о том, какие строки исходного кода соответствуют спецификации шаблона.
Обозреватели БД программ.
Генерируют БД программы, куда в качестве сущностей включают имена файлов, функций, переменные и другие сущности программы с хорошо определенными отношениями между ними.
Omega, CLA
Средства обнаружения плагиата;
Базируются на метриках Холстеда или на статистических деревьях исполнения.
Текстовые редакторы;
Синтаксически-ориентированные редакторы
Учитывают синтаксис текстовых структур. Возможности: редактирование текста на уровне смысловых конструкций языка, ускорение ввода программы за счет подстановки языковых конструкций целиком, непрерывный контроль правильности (синтаксис и семантика, автоматическое форматирование текстов)
EMACS, MENTOR, ALOE
Гипертекстовые средства.
Системы документирования
Основаны на различных принципах сбора информации по исходным текстам программ.
Java Doc, Toolbook.
Системы разработки интерфейсов.
В настоящее время часто входят в CASE-средства.
СУБД
Реляционные;
Логические;
Объектные.
Системы управления базами знаний и экспертные системы.
Системы AI;
Механизмы вывода на знаниях (логический вывод; метод, реализующий обратный вывод Маркова; продукционный вывод);
Механизмы неточного вывода на знаниях (присоединенный механизм и специально ориентированный).