
- •Oop и типы данных. Основные особенности ооп.
- •Инкапсуляция. Классы и структуры.
- •9.Подходы к выделению объектов, их свойств и методов оперирования.
- •10. Уточнение характеристик объектов и редактирование их определений.
- •11. Образцы и типовые проекты при ооп.
- •12. Именование объектов и методов. Коллекции отлаженных заготовок.
- •14. Компоненты: объекты, субъекты, аспекты.
- •15. Подходы к декомпозиции программ и накоплению компонент программ
- •16. Контекст исполнения многократно используемых компонент.
- •17. Проблема версифицирования программы в процессе разработки
- •18. Перенос компонент в разные системы //возможно предыдущее подойдет
- •19. Факторизация программ и программных компонент
- •20. Жизненный цикл программ (жцп). Фазы, этапы и стадии разработки программ
- •Сопровождение
- •Классические схемы жцп. Последовательная модель жцп
- •Каскадная модель жцп. Условия завершения фаз жцп
- •Табличная модель Хантера совмещения фаз жцп.
- •Uml. Диаграммы объектов и диаграммы размещения
- •Термины и понятия
- •Общие свойства
- •Содержание
- •Uml. Временные диаграммы
- •Технологичные последовательности и техника самодокументирования.
- •Основные идеи экстремального программирования
- •Многократность и рефакторинг при разработке программ. Многократность
- •Рефакторинг
- •«Парный» эффект и обе5спечение устойчивости разработки.
- •Коллективное владение
- •2. Ссылки, указатели и переменные – отличия при использовании
- •4. Зачем нужны описатели public и private?
- •5. Перегрузка операций. Пример.
- •6. Роль ссылок в борьбе за эффективность. Пример.
- •7. Инициализация объектов. Варианты конструкторов. Пример
- •8. Указатели и вектора. Сравнение стиля доступа к компонентам
- •9. Что дает использование inline?
- •10. Производные классы. Наследование.
- •11. Деструкторы. Зачем они нужны?
- •12. Друзья
- •13. Левосторонние значения (lvalue)
- •14. Описатель const. Его влияние на присваивание значений. Пример
- •15. Объединение типов данных. Пример полезного применения
- •16. Управление видимостью членов класса и доступам к элементам объекта.
- •17. Ссылка на себя //this
- •18. Освобождение памяти от лишних объектов
- •19. Порядок выполнения конструкторов и деструкторов
Табличная модель Хантера совмещения фаз жцп.
Табличная модель
иногда возникает проблема неравномерной загрузки... на разных этапах
хантер пытался сделать так, чтобы было как можно больше сквозных функций в разных фазах
для этого фазы исследуются, анализируется осуществляемость, проходит контруирование.
фазы:
*исследование
*
*конструирование
*программирование
*оценка
*использование
большое влияние на эту модель имеют ... задачи
по этому ... задачи можно разделить на:
*несколько нерешенные
*существует частичное решение задачи
*несколько решений и хорошо изучена (клас. модель)
*практические решения есть, но хорошего обоснования нет(каскадная модель)
(программа может работать хоть и на большом, но на ограниченном интервале данных)
Итерационные эффекты в развитии программы.
Полный жизненный цикл программ (ПЖЦП). Подходы к прогнозированию трудоемкости программ.
если работа увеличивается в 2^n раз то количество человек, нужное для этого, увеличивается в 3^n раз.
для лучшего изучения задачи нужно сделать несколько попыток её решения.
1 попытка: попытка решить задачи
2 попытка: оценка границ, на которых задача решается
3 попытка: реализация ... программы
Остальные попытки нужны для выполнения каких-либо других условий.
Обоснование постановок задач и достоверность отчетов.
Уровень изученности решаемой задачи и технологичность.
Многократно используемые системы и компоненты программ.
Тестирование. Методы «черного» и «белого» ящика.
Конструирование систем тестов. Критерии полноты тестирования.
UML. Методы разработки программ и ИС в рамках OOP-технологий на базе стандартных языков программирования. Общая классификация.
UML. Основные виды диаграмм на уровне постановки задачи
Диаграмма - это просто графическая проекция элементов, составляющих систему. Например, в проекте корпоративной системы управления человеческими ресурсами может быть несколько сотен классов. Вы никогда не сможете понять структуру и поведение этой системы, глядя на одну гигантскую диаграмму, где изображены все классы и их отношения. Вместо этого разумно создать несколько диаграмм, каждая из которых заостряет внимание на одном аспекте. Например, одна из диаграмм классов будет содержать описание классов Работник, Отдел и Офис, используемых при конструировании схемы базы данных. Некоторые из этих классов (наряду с другими) могут войти в состав интерфейса прикладного программирования, применяемого в клиентских приложениях. Частично они могут присутствовать еще и в диаграмме взаимодействия, которая определяет семантику транзакции, состоящей в переводе Работника в другой Отдел.
Как видно из примера, та или иная сущность в системе (например, класс Работник) может многократно повторяться на одной или даже нескольких диаграммах. Тем не менее во всех случаях речь идет об одной и той же сущности. Каждая диаграмма дает одно из возможных представлений элементов системы.
При моделировании реальных систем, независимо от предметной области, вы будете создавать все те же типы диаграмм, поскольку они соответствуют наиболее часто встречающимся представлениям модели. Как правило, при рассмотрении статических частей системы используются следующие четыре типа:
диаграммы классов;
диаграммы объектов;
диаграммы компонентов;
диаграммы развертывания.
Для работы с динамическими частями системы применяются пять типов, перечисленные ниже:
диаграммы прецедентов;
диаграммы последовательности;
диаграммы кооперации;
диаграммы состояний;
диаграммы деятельности.
Всего в языке UML определено девять типов диаграмм.
В большинстве случаев создаваемые вами диаграммы можно будет отнести к одному из этих типов, и только изредка потребуются новые, специфические для вашего проекта или организации. У каждой диаграммы должно быть уникальное в объемлющем контексте имя, с помощью которого можно ссылаться на нее и отличать от остальных. При работе над сколько-нибудь сложной системой вам придется объединять диаграммы в пакеты.
На Названия структурных диаграмм UML соответствуют названиям основных групп сущностей, используемых при моделировании системы:
диаграммы классов - классам, интерфейсам и кооперациям;
диаграммы объектов - объектам;
диаграммы компонентов - компонентам;
диаграммы развертывания - узлам.
Диаграммы поведения
Пять основных диаграмм поведения в UML используются для визуализации, специфицирования, конструирования и документирования динамических аспектов системы. Можно считать, что динамические аспекты системы представляют собой ее изменяющиеся части. Например, динамические аспекты жилого дома -это перемещение потоков воздуха и людей по комнатам. Динамические аспекты программной системы охватывают такие ее элементы, как поток сообщений во времени и физическое перемещение компонентов по сети.
Диаграммы поведения в UML условно разделяются на пять типов в соответствии с основными способами моделирования динамики системы:
диаграммы прецедентов описывают организацию поведения системы; D диаграммы последовательностей акцентируют внимание на временной упорядоченности сообщений;
диаграммы кооперации сфокусированы на структурной организации объектов, посылающих и получающих сообщения;
диаграммы состояний описывают изменение состояния системы в ответ на события;
диаграммы деятельности демонстрируют передачу управления от одной деятельности к другой.