В реальных условиях проектирование - это поиск способа, который удовлетворяет требованиям функциональности системы средствами имеющихся технологий с учетом заданных ограничений.
Системный подход - любая система представляет собой совокупность взаимосвязанных элементов, функционирующих совместно для достижения общей цели.
Метод проектирования - огранизационная совокупность процессов создания ряда моделей, которые описывают различные аспекты создаваемой системы с использованием четко определенной нотации.
Технология проектирования - совокупность технологических операций в их последовательности и взаимосвязи, приводящая к разработке проектной системы.
Информационное обеспечение - совокупность единой классификации и кодирования информации, унифицированных документов и вспомогательных информационных массивов (обычно - классификаторы, таблицы кодирования и пр.)
Техническое обеспечение - комплекс технических средств (gg, тут переключили слайд)
Математическое обеспечение - совокупность математических методов, моделей и алгоритмов, использующихся для управления системой и реализации прикладных задач.
Лингвистическое обеспечение - множество языков, использующихся при разработке и эксплуатации ИС (языки программирования, языки общения, набор словарей)
Правовое обеспечение - совокупность правовых норм, определяющих создание, юридических статус и функционирование информационных систем, регламентирующих порядок получения, преобразования и использования информации.
Метод "снизу - вверх" ("лоскутная автоматизация")
Метод "сверху - вниз"
Метод многокомпонентности
Технология проектирования DATARUN
Технология проектирования RUP
Инструментальное программное обеспечение – это программное обеспечение, предназначенное для использования в ходе проектирования, разработки и сопровождения программ.
Инструментальные средства можно разбить на 4 группы:
Необходимые инструментальные средства
Редакторы текста, компиляторы и ассемблеры (компьютерные программы, осуществляющие преобразование программы в форме исходного текста на языке ассемблера в машинные команды в виде объектного кода), компоновщики (программы, которые принимают на код один или несколько объектных модулей и собирают по ним исполняют модуль) или редакторы связи
Частоиспользуемые инструментальные средства
Это средства, использование которых в процессе разработки весьма облегчает и ускоряет процесс разработки. Например, утилиты автоматической сборки проекта, отладчики, программа создания файлов помощи
Специализированные инструментальные средства используются в исключительных случаях и решают специфические задачи
Интегрированные среды разработки содержат большую часть из приведенных выше программ и позволяет упростить процесс создания приложений
Компиляторы и интерпретаторы преобразуют исходный текст, написанный на языке программирования, в машинный код (более точнее в объектный код).
Компилятор преобразует сразу весь исходный текст, на выходе получается один или несколько файлов объектного кода, а в некоторых языках программирования процесс компиляции может управляться так называемыми директивами компиляции (это специальные указания о том, как компилировать отдельные блоки текста).
Этапы компиляции:
Лексический анализ. На этом этапе весь текст исходного файла преобразуется в последовательность лексе
Синтаксический анализ. На данном этапе последовательности лексин преобразуется в дерево разбора
Семантический анализ. На данном этапе осуществляется проверка по смыслу. Дерево разбора для установления его смысла
Оптимизация. На этом этапе выполняется удаление лишних конструкций и упрощение кода с сохранением его смысла
Генерация кода. На данном этапе из промежуточного представления порождается код на целевом языке В результате компиляции получаем объектный код.
Интерпретатор преобразует текст на языке высокого уровня, но делает это построчно. Например, любой интернет-браузер, который преобразует HTML и CSS «на лету».
Основными достоинствами интерпретаторов являются:
Большая переносимость интерпретируемых программ
Более совершенные и наглядные средства диагностики
Упрощение отладки исходного кода
Меньшие размеры кода по сравнению с машинным кодом
Основными недостатками интерпретаторов являются:
Интерпретируемая программа не может выполняться отдельно без программы-интерпретатора
Интерпретируемая программа выполняется медленно
Практически отсутствует оптимизация
Компоновщики (linker) занимается созданием готового исполняемого файла из кусочков объектного кода. Чаще всего компоновщик включается в компилятор (они идут парами). Для связывания модулей компоновщик использует таблицы имен, созданную компилятором в каждом из объектных модулей. Такие имена могут быть двух типов: определенные (экспортируемые) и неопределенные (импортируемые). Работа компоновщика заключается в том, что определить и связать ссылки на неопределенные имена в каждом модуле. Обычно компоновщик не выполняет проверку типов и количество параметров процедур и функций.
CASE-инструменты классифицируются по типам и категориям.
Классификация по типам отражает функциональную ориентацию средств на те или иные процессы жизненного цикла разработки программного обеспечения:
Средства анализа
Средства проектирования баз данных
Средства разработки приложений
Средства реинжиниринга процессов
Средства планирования и управления проектами
Средства тестирования
Средства документирования
Классификация по категориям определяет степень интегрированности по выполняемым функциям:
Инструменты управления конфигурацией
Инструменты моделирования данных
Инструменты анализа и проектирования
Инструменты преобразования моделей
Инструменты редактирования программного кода
Инструменты рефакторинга (изменения внутреннего кода программ) кода
Генераторы кода
Инструменты для построения UML диаграмм
Это методология быстрой разработки, которая включает в себя 3 компонента:
Небольшая команда программистов (2-10 человек)
Короткий, но тщательно проработанный производственный график
Повторяющийся цикл, при котором разработчики, по мере того, как приложение начинает обретать форму, запрашивают и реализуют в продукте требования полученные через взаимодействие с заказчиком
Жизненный цикл ПО по методологии RAD состоит из четырех фаз:
Фаза анализа и планирования требований
Фаза проектирования
Фаза построения
Фаза внедрения
С использованием CASE-средств проект распределяется между различными командами, результатом данной фазы должны быть:
Общая информационная модель системы
Функциональные модели систем в целом и подсистем, реализуемых отдельными командами разработчиков
Точно определенные с помощью CASE-средства интерфейсы между автономно разрабатываемыми подсистемами
Построенные прототипы экранов, отчетов и диалогов
Завершается физическое проектирование системы:
Определяется необходимость распределения данных
Производится анализ использования данных
Производится физическое проектирование базы данных
Определяются требования к аппаратным ресурсам
Определяются способы увеличения производительности
Завершается разработка документации проекта
Результатом фазы проектирования является готовая система, удовлетворяющая всем согласованным требованиям.
Оценка размера приложений производится на основе так называемых «функциональных элементов» и принимается решение о разделении ИС на подсистемы, поддающиеся реализации одной командой разработчиков. Подобная метрика не зависит от языка программирования. На каждые 4 тыс. требуется своя команда разработчиков (меньше 1000 – 1 человек, от 1000 до 4000 – команда разработки).
Основные принципы методологии RAD:
Разработка приложений итерациями
Необязательность полного завершения работ на каждом из этапов жизненного цикла
Обязательное вовлечение пользователей в процесс разработки ИС
Необходимое применение CASE-средств, обеспечивающих целостность проекта
Применение средств управления конфигурацией, облегчающих внесение изменений в проект и сопровождение готовой системы
Необходимое использование генераторов кода
Использование прототипирования, позволяющее полнее выяснить и удовлетворить потребности конечного пользователя
Тестирование и развитие проекта, осуществляемые одновременно с разработкой
Ведение разработки немногочисленной хорошо управляемой командой профессионалов
Грамотное руководство разработкой системы, четкое планирование и контроль выполнения работ
Особенности языка UML 2.0
Каждый язык программирования предусматривает свою интегрированную среду разработки, которая включает в себя компиляторы, интерпретаторы и компоновщики.
Интегрированные среды разработки были сделаны для того, чтобы максимизировать производительность программиста благодаря тесно связанным компонентам с простым пользовательским интерфейсом.
Цель среды разработки заключается в том, чтобы абстрагировать конфигурацию и объединить утилиты командной строки в одном модуле, который позволяет уменьшить время на изучение языка и повысить производительность разработчика.
Интегрированные среды разработки также часто поддерживают пометки в комментариях к исходному тексту программ, отмечающие места, требующие дальнейшего внимания или предполагающие внесение изменений. Использование таких комментариев является стандартом оформления на ObjectPascal, Delphi, Microsoft VS. Бывают следующие пометки: TODO – добавление новых функций известных проблем, которые нужно устранить; HACK – предполагаем к реализации классов; UNDONE – напоминание о необходимости обработки участка кода.
Обычно, интегрированная среда разработки – это совокупность программных средств, поддерживающая все этапы разработки программного обеспечения, от написания исходного кода до компиляции и отладки. В данных системах отладка представляет собой часть среды разработки (RAD-среды).
При традиционном подходе начальный этап написания программы строится следующим образом:
Написание исходного текста при помощи какого-либо текстового редактора
По завершению набора, работа с текстовым редактором превращается и запускается кросс-компилятор
Как правило, вновь написанная программа содержит синтаксические ошибки и компилятор сообщает о них на консоль оператора
Вновь запускается текстовый редактор
Данный цикл повторяется многократно. Если программа имеет достаточно большой объем (собирается из различных частей), то даже этот начальный этап может потребовать много сил и времени.
После этого наступает этап отладки программы и к редактору с компилятором добавляется эмулятор или симулятор.
CASE – это программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки, кодирования, отладки и сопровождения сложных программных систем. Основной целью CASE-технологий является разграничение процессов проектирования программных продуктов от процессов кодирования и последующих этапов разработки, тем самым максимально автоматизировать процесс разработки.
Основные достоинства CASE-технологий это поддержка коллективной работы над проектом. Как правило, CASE-системы поддерживают автоматическую кодогенерацию программ, т.е. создание каркаса программы систем и создание полного продукта системной документации.
Для выполнения поставленной цели CASE-технологии используют два принципиально разных подхода к проектированию: структурный и объектно-ориентированный.
Структурный подход предполагает декомпозицию поставленной задачи на функции, которые необходимо автоматизировать. Структурный подход подразумевает использование определенных общепринятых методологий при проектировании информационных систем, таких как SADT (например, диаграммы IDEF), DFD (моделирование движения потоков информации), ERD (построение структуры базы данных).
Существует 3 основные модели использования при структурном подходе: функциональная, информационная и структурная.
Основным инструментом объектно-ориентированного подхода является язык UML 2.0 (унифицированный язык программирования, который предназначен для визуализации и документирования объектно-ориентированных систем). Данный язык включает в себя систему различных диаграмм, на основании которых может быть построено представление об проектируемых системах.
Модификатор атрибута представляет собой текстовое выражение, которое придает дополнительную семантику
Значения модификатора атрибута
readOnly – атрибут является только для «чтения»
Кратность является спецификацией допустимой мощности множества при инстанцировании соответствующего элемента модели.
Операция класса служит для представления отдельной характеристики поведения, которая является общей для всех объектов данного класса.
Параметр операции является спецификацией аргумента, который используется при выполнении операции или при вызове характеристики поведения.










































