
- •3. Проектирование сложных объектов основные принципы проектирования.
- •4. Аспекты и стадии проектирования
- •5. Нисходящее и восходящее проектирование и программирование
- •6. Развитие парадигмы программирования (Операциональное программирование, нисходящая технология конструирования программ. Структурное, модульное, объектное и объектно-ориентированное программирование)
- •7. Суть и метод структурного анализа. Основные этапы структурного анализа.
- •8. Программные системы и их жизненный цикл.
- •Процессы жизненного цикла по
- •9. Анализ целевых и разработка требований к программным системам.
- •10. Функциональное моделирование. Стандарты idef0, idef3.
- •11. Информационное моделирование. Стандарты idef1, idef1x
- •12. Методы, модели, современные технологические и инструментальные средства структурного анализа, достоинства и недостатки. Разработка функциональных и информационных моделей.
- •13. Понятие и метод объектно-ориентированного анализа.
- •15. Стадии объектно-ориентированного анализа и определение основных абстракций и механизмов.
- •16. Методы и средства представления. Нотации представления результатов анализа.
- •17. Основы проектирования программных систем, принципы аспекты проектирования. Понятие проекта, методологии проектирования.
- •18. Автоматизация и системы автоматизации проектирования. Процессы разработки проектных решений и проектных процедур.
- •19. Классические методы проектирования и модели представления проектных решений.
- •20. Методы структурного проектирования. Этапы проектирования программных систем.
- •21. Жизненный цикл и этапы проектирования программного обеспечения.
- •Этапы жизненного цикла по:
- •Основные:
- •Модели жизненного цикла по: Водопадная (каскадная, последовательная) модель
- •Итерационная модель
- •Спиральная модель
- •22. Классические технологии разработки программного обеспечения.
- •23. Нисходящее и восходящее проектирование.
- •24. Структурное программирование. Модульное программирование
- •25. Абстракция и абстрагирование. Фундаментальные свойства и принципы объектно-ориентированного представления программных систем.
- •26. Понятие системы, системность, сложная система, системный эффект.
- •Классы, объекты, общая характеристика и отношения между классами и объектами в объектно-ориентированном проектировании.
- •Объектно-ориентированные методы проектирования. Нотации и процессы объектно-ориентированного проектирования
- •Языки визуального моделирования. Язык uml (Unified Modeling Language). Базовые отношения, термины и понятия.
- •Ключевые абстракции и механизмы. Отношения, общие механизмы и диаграммы. Типичные приемы моделирования Общие механизмы языка uml:
- •31. Средства и элементы статических и динамических моделей объектно-ориентированных систем (статические и динамические диаграммы uml).
- •32. Методы и приемы разработки моделей объектно-ориентированных программных систем.
- •33. Основные диаграммы uml (в вопросе по 2-е из 12 основных диаграмм). Представление, сущность, использование.
- •34. Элементы и разработка поведенческих моделей объектно-ориентированных систем. Модели реализации объектно-ориентированных программных систем.
- •35. Паттерны (образцы) проектирования: виды шаблонов и их классификация, распределение «обязанностей» между шаблонами.
- •40. Факторы качества написания программного кода:
- •41. Методы и средства конструирования высококачественного кода.
- •42 Совместная разработка: методы и средства.
- •Методы и средства тестирования и отладки программных приложений.
- •Широкое использование проверенных внешних библиотек.
- •Рефакторинг и оптимизация программного кода.
- •45. Сборка, внедрение и поставка по
- •Выбираем инсталлятор, описываем в нем процесс установки/удаления программы и настраиваем сборку дистрибутива
- •Технологии и средства развертывания, наладки и обслуживания проектов.
- •Язык xml: средства, назначения и особенности использования. Xml и dtd.
- •Методы и средства обработки xml документов с использованием моделей dom и sax, преимущества и недостатки.
- •Языки Extensible Markup Language(xsl) и xsl Transformations (xslt): назначение и особенности использования.
- •Процесс выполнения xslt-преобразования
- •51. Язык xPath и его применение для доступа к элементам xml.
- •52. Унифицированный процесс разработки (rup): общее понятие и терминология.
- •53. Фазы, итерации и циклы разработки. Рабочие процессы, модели и артефакты.
- •54. Модели разработки объектно-ориентированных программных систем и управление рисками.
- •55. Особенности проектирования и разработки распределенных информационных систем.
Процесс выполнения xslt-преобразования
В процессе выполнения XSLT-преобразования задействованы:
один или несколько входных XML-документов;
одна или несколько таблиц cтилей XSLT;
XSLT-процессор;
один или несколько выходных документов.
В простейшем случае XSLT-процессор получает на входе два документа — входной XML-документ и таблицу стилей XSLT — и создает на их основе выходной документ.
Язык XSLT является декларативным, а не процедурным. Вместо определения последовательности исполняемых операторов, этот язык определяет правила, которые будут применяться во время преобразования. Само преобразование ведется по фиксированному алгоритму.
51. Язык xPath и его применение для доступа к элементам xml.
XPath (XML Path Language) — язык запросов к элементам XML-документа. Разработан для организации доступа к частям документа XML в файлах трансформации XSLT и является стандартом консорциума W3C. XPath призван реализовать навигацию по DOM в XML.
<html>
<body>
<div>Первый слой
<span>блок текста в первом слое</span>
</div>
<div>Второй слой</div>
<div>Третий слой
<span class="text">первый блок в третьем слое</span>
<span class="text">второй блок в третьем слое</span>
<span>третий блок в третьем слое</span>
</div>
<img />
</body>
</html>
XPath-путь /html/body/*/span[@class] (полный синтаксис имеет вид /child::html/child::body/child::*/child::span[attribute::class]) будет соответствовать в нём двум элементам исходного документа - <span class="text">первый блок в третьем слое</span> и <span class="text">второй блок в третьем слое</span>.
Путь делится на шаги адресации, которые разделяются символом "косая черта" / . Каждый шаг адресации состоит из трех частей:
ось (в данном примере child::), это обязательная часть;
условие проверки узлов (в данном примере это имена элементов документа html, body, span, а символ * означает элемент с любым именем), также обязательная часть;
предикат (в данном примере attribute::class), необязательная часть, заключаемая в квадратные скобки, в которой могут содержаться оси, условия проверки, функции, операторы (+, -, <, > и пр.).
Анализ ведется слева направо. Если первый символ это / , то путь адресации считается абсолютным (т.е. от корня документа). При этом за узел контекста на первом шаге берется корневой элемент (html). Контекст — это некая точка отсчета, относительно которой рассчитывается следующий шаг адресации. Поэтому на каждом шаге адресации мы получаем новый набор узлов документа, и этот набор становится контекстом для следующего шага адресации.
На втором шаге адресации (child::body) контекстом становится html элемент. Ось child:: говорит о том, что необходимо найти все непосредственные потомки элемента html, а условие проверки body говорит о том, что в формируемый набор элементов нужно включить все узлы с именем body. Третий шаг адресации: child::* . Ось child:: собирает все непосредственные потомки элемента body, а условие проверки * говорит о том, что в формируемый набор нужно включить элементы основного типа с любым именем. В ходе этого шага получаем набор узлов, состоящий из трех элементов div и одного элемента img. Четвёртый шаг адресации: child::span . Теперь контекстом является набор из четырёх элементов. И следующий набор узлов создается в четыре прохода (за четыре итерации). При первой итерации узлом контекста становится первый div. Согласно заданной оси child:: и правилу проверки span, в набор включаются непосредственные потомки div-а, имя которых равно span. При второй итерации в набор ничего добавлено не будет, так как у второго div нет потомков. Третья итерация добавит в набор сразу три элемента span, а четвёртая ничего не добавит, так как у элемента img нет потомков. Итак, в ходе проверки получен набор узлов, состоящий из четырёх элементов span. Это и будет контекстом для последующей обработки.
Следующего шага нет, поэтому будет производиться фильтрация отобранного набора. В этом и состоит отличие предикатов от шагов адресации. На каждом шаге адресации получаем новый набор, отталкиваясь от контекста, полученного на предыдущем шаге. В ходе же обработки предиката новый набор получается из текущего методом фильтрации, когда из набора исключаются узлы, не прошедшие условие проверки. В данном случае ось attribute:: говорит о необходимости проверить, если ли у узлов контекста атрибуты, а условие class требует оставить лишь те узлы, у которых задан атрибут с именем class. Фильтрация происходит за четыре итерации, но в окончательный набор попадают только два элемента span.
Оси это база языка XPath.
ancestor:: — Возвращает множество предков. attribute:: — Возвращает множество атрибутов текущего элемента. child:: — Возвращает множество потомков на один уровень ниже. descendant:: — Возвращает полное множество потомков. parent:: — Возвращает предка на один уровень назад. self:: — Возвращает текущий элемент. И др.