
- •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. Особенности проектирования и разработки распределенных информационных систем.
25. Абстракция и абстрагирование. Фундаментальные свойства и принципы объектно-ориентированного представления программных систем.
Вызывая подпрограммы, мы абстрагируемся от логики их выполнения. Если удачно разбить программу на подпрограммы, мы сможем в каждой из них работать на одном уровне абстракции - скажем, подпрограмма перемножения матриц имеет дело только с элементами их. В головной же программе программист работает уже с матрицами, не опускаясь до уровня элементов, т.е. количество уровней абстракции уменьшается (точнее говоря, уменьшается не само количество этих уровней, а количество уровней, с которыми работает в данный момент программист). Именно в этом главное преимущество подпрограмм, но не все это понимают, и потому выделяют в подпрограмму обычно просто повторяющиеся действия, не связывая их с понятием абстракции. Я не спорю, что это тоже преимущество подпрограмм, но экономия сил в данном случае - не главный выигрыш. Если не выделен абстрактный объект, который "прячется" за подпрограммой, тот эту подпрограмму ждёт нелёгкое будущее - она либо не будет использоваться, либо будет бесконечно переделываться: история системы ДЕЛЬТА тому яркий пример. При разбитии системы на модули шли от логики, а не от объектов, и поэтому все общие модули постоянно переделываются.
Если же понимать подпрограмму, (или модуль, как сейчас принято говорить) с точки зрения абстрагирования, то мы неизбежно приходим к иерархическому построению программы, соответствующему последовательному раскрытию абстрактных объектов. Майерс приводит следующие свойства этих уровней:
1.На каждом уровне ничего не известно о свойствах и даже о существовании более высоких уровней.
2.На каждом уровне ничего не известно о внутреннем строении других уровней.
3.Каждый уровень представляет собой группу модулей.
4.Каждый уровень располагает определёнными ресурсами и либо скрывает их от доугих уровней, либо представляет другим уровням некоторые их абстракции.
5.Каждый уровень может обеспечивать некоторую абстракцию данных в системе.
6.Предположения, которые на каждом уровне делаются относительно других уровней, должны быть минимальны.
7. Связи между уровнями ограничены явными аргументами.
8.Каждый уровень должен иметь высокую прочность и слабое сцепление.
Основы объектно-ориентированного программирования, в наиболее простой форме основные черты объектно-ориентированного подхода к программированию: абстрагирование,инкапсуляция, наследование и полиморфизм. Без понимания этих четырех принципов невозможно писать эффективные программы на каком-либо объектно-ориентированном языке. Необходимо помнить, что Java – чистый объектно-ориентированный язык программирования, т.е. он позволяет использовать только объектно-ориентированную модель программирования, это означает, что без знания основ ООП (объектно-ориентированного программирования) практически невозможно писать серьезные программы на языке Java.
26. Понятие системы, системность, сложная система, системный эффект.
Под системой понимается любой объект, состоящий из множества взаимосвязанных частей и существующий как единое целое.
Состав системы — это множество входящих в нее частей. В качестве примера системы рассмотрим объект, с которым ученикам приходится иметь дело на уроках информатики, — персональный компьютер.
Систему, входящую в состав какой-то другой, более крупной системы, называют подсистемой.
Появление нового качества у системы называется системным эффектом. Это же свойство выражается фразой: "Целое больше суммы своих частей".
Модель "черного ящика". Всякая система — это нечто цельное и выделенное из окружающей среды. Система и среда взаимодействуют между собой. В системологии используются представления о входах и выходах системы. Вход системы — это воздействие, на систему со стороны внешней среды, а выход — это воздействие, оказываемое системой на окружающую среду. Такое представление о системе называется моделью "черного ящика" (см. рисунок).
Модель "черного ящика" используется в тех случаях, когда внутреннее устройство системы недоступно или не представляет интереса, но важно описать ее внешние взаимодействия. Например, в любой инструкции по использованию бытовой техники (телевизор, магнитофон, стиральная машина и пр.) дается описание работы с ней на уровне входов и выходов: как включить, как регулировать работу, что получим на выходе. Такого представления может быть вполне достаточно для пользователя данной техникой, но не достаточно для специалиста по ее ремонту.
Модель "черного ящика" отражает лишь взаимодействие системы с окружающей средой. Такой подход к сложным системам был введен в кибернетике. Казалось бы, это простейшая модель, которая не углубляется во внутреннее устройство системы. Однако и внешние взаимодействия реальной системы оказываются бесконечно сложными. Поэтому модель "черного ящика", как и любая другая, строится в соответствии с целью моделирования, учитывая лишь те входы и выходы системы, которые существенны с точки зрения цели моделирования, назначения создаваемой модели.