- •1 Этапы разработки по.
- •2 Проблемы разработки по
- •3 Технологии организации разработки по. 4 и 5.
- •6. Модельные техники.
- •8. Как моделируются данные и их движение?
- •9. Откуда берутся спецификации.
- •10. Откуда берутся требования.
- •11. Как управлять проектом.
- •Сопутствующие процессы при управлении проектом
- •Планирование, отслеживание и контроль за проектом
- •12. Какие (драйвера) движущие силы проекта.
- •13. Как можно разделить различные подходы к управлению проектами. ГосТы
- •14. Что такое требования и как с ними работать.
- •Проверка требований
- •Анализ требований
- •Документирование требований
- •15. Роли и обязанности участников проекта. Менеджер проекта
- •16. Риски проекта.
- •18. Use case, отличие от историй пользователя.
- •20/19. Диаграммы uml
- •21. Чего не хватает в umi.
- •Скорость загрузки
- •Управление файлами
- •22. Как структурировать программу?
- •23. Что такое компонента и компонентная разработка?
- •Языки программирования
- •Отличия от ооп
- •25. Основные принципы ооп.
- •26. Чем класс отличается от объекта и от интерфейса.
- •Классы и объекты, понятие экземпляра класса, понятие членов класса
- •Интерфейс и реализация, наследование реализации
- •27. Что такое программирование по контракту и как выразить контракт класса.
- •Описание
- •28. Unit test. Автоматическое тестирование.
- •29. Паттерны проектирования их применение.
- •30. Архитектура, типы.
- •31. Сервис ориентированная архитектура web сервисы и как тут работает xml.
- •Достоинства
- •Недостатки
- •32. Примеры основных диаграмм uml.
- •33. Чем отличается требования спецификации тех проект и проект разработки по?
- •34. Возможно ли тестирование на разных этапах проекта на ранних или поздних чем оно отличается? см 1
23. Что такое компонента и компонентная разработка?
Компонентно-ориентированное программирование (англ. component-oriented programming, COP, далее КОП) — парадигма программирования, ключевой фигурой которой является компонент.
Компонент — в программировании, множество классов и языковых конструкций, объединенных по общему признаку. В большинстве языков программирования нет языковых конструкций прямо отражающих понятие компонента. Компоненты реализуются с помощью стандартных конструкций, таких как классы[1].
Языки программирования
Оберон (ограниченно)
Компонентный Паскаль
.NET Framework
PHP
Отличия от ооп
Компонент — «независимый модуль программного кода, предназначенный для повторного использования и развертывания».
Может содержать «множественные классы».
Как правило, независим от конкретного языка.
24. IDL.
IDL, или язык описания интерфейсов (англ. Interface Description Language или Interface Definition Language) — язык спецификаций для описания интерфейсов, синтаксически похожий на описание классов в языке C++.
Реализации
CORBA IDL — язык описания интерфейсов распределённых объектов, разработанный рабочей группой OMG. Создан в рамках обобщённой архитектуры CORBA.
IDL DCE, язык описания интерфейсов спецификации межплатформенного взаимодействия служб, которую разработал консорциум Open Software Foundation (теперь The Open Group)[1]
MIDL (Microsoft Interface Definition Language) — язык описания интерфейсов для платформы Win32 определяет интерфейс между клиентом и сервером. Предложенная от Microsoft технология использует реестр Windows и используется для создания файлов и файлов конфигурации приложений (ACF), необходимых для дистанционного вызова процедуры интерфейсов (RPC) и COM/DCOM интерфейсов.[2]
COM IDL — язык описания интерфейсов между модулями COM. Является преемником языка IDL в технологии DCE (англ. среда распределённых вычислений) — спецификации межплатформенного взаимодействия служб, которую разработал консорциум Open Software Foundation (теперь The Open Group)[1]
25. Основные принципы ооп.
Основными принципами ООП являются наследование, инкапсуляция и полиморфизм. Принцип, в соответствии с которым знание о более общей категории разрешается применять для более узкой категории, называется наследованием. Наследование тесно связано с иерархией классов, которая определяет, какие классы следует считать наиболее абстрактными и общими по отношению к другим классам. При этом, если некоторый более общий или родительский класс (предок) обладает фиксированным набором свойств и поведением, то производный от него класс (потомок) должен содержать этот же набор свойств и поведение, а также дополнительные, которые будут характеризовать уникальность полученного таким образом класса. В этом случае говорят, что производный класс наследует свойства и поведение родительского класса. Инкапсуля́ция — свойство языка программирования, позволяющее пользователю не задумываться о сложности реализации используемого программного компонента (то, что у него внутри), а взаимодействовать с ним посредством предоставляемого интерфейса (публичных членов — методов, данных etc.), а также объединить и защитить жизненно важные для компонента данные. При этом пользователю предоставляется только интерфейс — спецификация объекта.
Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: public.
Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: private, protected, internal. Инкапсуляция — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, полиморфизмом и наследованием).
Сокрытие реализации целесообразно применять в следующих случаях:
предельная локализация изменений при необходимости таких изменений,
прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.
Полиморфизм (polymorphism) (от греческого polymorphos) - это свойство, которое позволяет одно и то же имя использовать для решения двух или более схожих, но технически разных задач. Целью полиморфизма, применительно к объектно-ориентированному программированию, является использование одного имени для задания общих для класса действий. Выполнение каждого конкретного действия будет определяться типом данных. Например для языка Си, в котором полиморфизм поддерживается недостаточно, нахождение абсолютной величины числа требует трёх различных функций: abs(), labs() и fabs(). Эти функции подсчитывают и возвращают абсолютную величину целых, длинных целых и чисел с плавающей точкой соответственно. В С++ каждая из этих функций может быть названа abs(). Тип данных, который используется при вызове функции, определяет, какая конкретная версия функции действительно выполняется. В С++ можно использовать одно имя функции для множества различных действий. Это называется перегрузкой функций (function overloading).