- •Поняття технології конструювання програмного забезпечення.
- •Класичний життєвий цикл.
- •Макетування.
- •Характеристика стратегій конструювання пз.
- •Інкрементна модель.
- •Спіральна модель.
- •Важковагові та полегшені процеси. Xp – процес.
- •Швидка розробка додатків, rad.
- •Компонентно-орієнтована модель. Моделі якості процесів конструювання.
- •Сторони зацікавлені в продукції.
- •Користувачі. Покупці. Інвестори.
- •Вимоги до пз кожної з сторін.
- •Атрибути якості пз: практичність, відмовостійкість, надійність, ремонтопридатність.
- •Визначення архітектури пз.
- •Опис архітектури пз.
- •Універсальна мова моделювання (uml).
- •Інші базові засоби для створення архітектури.
- •Основні компоненти мови. Призначення мови. Термінологія uml.
- •Процес керування проектом. Планування.
- •Планування проектних задач.
- •Розмірно-орієнтовані метрики.
- •Функціонально-орієнтовані метрики.
- •Виконання оцінки проекту на основі loc- та fp-метрик.
- •Дослідження під моделей моделі cocomo, cocomo II.
- •Конструктивна модель вартості.
- •Модель композиції додатку.
- •Модель раннього етапу проектування.
- •Модель етапу пост архітектури.
- •Структурний аналіз.
- •Основи проектування програмних систем.
- •Класичні методи проектування.
- •Основні поняття та принципи тестування пз.
- •Особливості тестування «білого ящику».
- •Способи тестування базового шляху.
- •Способи тестування умов.
- •Спосіб тестування потоків даних.
- •Тестування циклів.
- •Особливості тестування «чорного ящику».
- •Спосіб розбиття по еквівалентності.
- •Спосіб аналізу граничних значень.
- •Спосіб діаграм причин-наслідків.
- •Дослідження способів структурного та функціонального тестування на прикладах.
- •Методика тестування програмних систем.
- •Тестування правильності.
- •Системне тестування .
- •Мистецтво налагоджування.
- •Основні принципи об’єктна-орієнтованої методології розробки програмної системи (оом пс).
- •Оо Аналіз.
- •Об’єкти та класи.
- •Діаграми в uml.
- •Механізми розширення в uml.
- •Діаграма варіантів використання.
- •Дослідження діаграми варіантів використання.
- •Діаграма класів.
- •2. Асоціації:
- •Дослідження діаграми класів.
- •Діаграма станів.
- •Дослідження діаграми станів.
- •Діаграма діяльності.
- •Дослідження діаграми діяльності.
- •Діаграма послідовності.
- •Дослідження діаграми послідовності.
- •Діаграма кооперації.
- •Дослідження діаграми кооперації.
- •Діаграма компонентів.
- •Дослідження діаграми компонентів.
- •Діаграма розгортування.
- •Дослідження діаграми розгортування.
- •Загальні відомості case-засобів.
- •Case-засоби. Класифікація case-засобів.
- •Порівняння життєвого циклу програмного забезпечення при традиційній розробці і розробці з використанням case-засобів.
- •Концептуальні основи case-технології.
- •Технологія впровадження –засобів.
- •Оцінка і вибір –засобів.
- •Засоби функціонального моделювання.
- •Характеристики case–засобів Silverrun.
- •Характеристики case–засобів jam.
- •Загальна характеристика case-системи Rational Rose.
- •Розробка діаграм у середовищі Rational Rose.
- •Початок роботи над проектом у середовищі Rational Rose.
Оо Аналіз.
Объектно-ориентированный анализ — это методология-, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.
Границы между стадиями анализа и проектирования размыты, но решаемые ими задачи определяются достаточно четко. В процессе анализа мы моделируем проблему, обнаруживая классы и объекты, которые составляют словарь проблемной области. При объектно-ориентированном проектировании мы изобретаем абстракции и механизмы, обеспечивающие поведение, требуемое моделью.
Классические подходы
На данный момент найдены различные источники классов и объектов, согласующихся с требованиями предметной области. Назовем эти подходы классическими, поскольку они опираются на классическую категоризацию. Кандидаты в классы и объекты:
Таблица 1.
Осязаемые предметы |
Автомобили, телеметрические данные, датчики давления |
Роли |
Мать, учитель, политик |
События |
Посадка, прерывание, запрос |
Взаимодействие |
Заем, встреча, пересечение |
Таблица 2
Люди |
Человеческие существа, выполняющие некоторые функции |
Места |
Области, связанные с людьми или предметами |
Предметы |
Осязаемый материальный объект или группа объектов |
Организации |
Формально организованная совокупность людей, ресурсов, оборудования, которая имеет определенную цель и существование которой в целом не зависит от индивидуумов |
Концепции |
Принципы и идеи, сами по себе неосязаемые, но предназначенные для организации деятельности и/или общения, или же для наблюдения за ними |
События |
Нечто случающееся с чем-то в заданное время или последовательно |
Таблица 3
Структуры |
Отношения «целое – часть» и «общее – частное» |
Другие системы |
Внешние системы, с которыми взаимодействуют приложения |
Устройства |
Устройства, с которыми взаимодействует приложение |
События |
Происшествия, которые должны быть запомнены |
Разыгрываемые роли |
Роли, которые выполняют пользователи, работающие с приложением |
Места |
Здания, офисы и другие места, существенные для работы приложения |
Организационные структуры |
Группы, к которым принадлежат пользователи. Единицы. |
ВЫПОЛНЕНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО АНАЛИЗА
Зная терминологию, можно поэтапно выполнить системный анализ для проекта фирмы торгующей пищевыми продуктами.
Шаги системного анализа:
Рассмотрим работу аналитика над нашим проектом. Перед началом работы он должен составить для себя список основных задач:
Составить список всех абстрактных существительных, применяемых для описания системы
Повторно рассмотреть составленный список, выделив в нем возможные классы
Там, где это возможно, выделить иерархию классов
Рассмотрим работу аналитика над нашим проектом. Перед началом работы он должен составить для себя список основных задач:
Составить список всех абстрактных существительных, применяемых для описания системы
Повторно рассмотреть составленный список, выделив в нем возможные классы
Там, где это возможно, выделить иерархию классов
Создание списка возможных классов
Программист-аналитик, работающий над нашим проектом, встречается со следующим списком предметов, характеризующих систему и являющихся кандидатами на роль классов:
Компания.
Центральный офис
Склад
Товар
Продавец
Служащий отдела доставки
Заказы
Клиенты
Поставщики
Работник
Начальник
Количество товара
Цена
Определение действительных классов и их иерархии
Приведенный выше список можно сократить по следующим причинам:
Склад и Центральный офис являются просто местами положения и поэтому не имеют отношения к классам.
Количество товара представляет собой число единиц товара и может быть использовано как одно из свойств Товара.
Аналогично, Цена является не более чем свойством Товара.
Начальник, возможно, будет использоваться как свойство Работника.
После устранения "лишних" классов можно начинать поиск различий между оставшимися. Сразу видны две группы: Работник и Корпорация. Продавец и Служащий отдела доставки относятся к Работникукак подклассы, удовлетворяя условию "является видом". Поставщик, Компания и Клиент являются по сути своей корпорациями. Пример иерархии класса Работник приведен ниже
Определение методов и свойств класса
После определения основных классов требуется более подробная информация о каждом из классов. Эта информация в объектно-ориентированных терминах описана ниже:
Отдельные классы характеризуются свойствами и методами.
Свойство является характеристикой класса. В предложении "У людей есть руки", "руки" являются свойством класса "люди".
Свойство, которое определяет объект в классе, называется определяющим свойством. У каждого человека есть свое имя, по которому его отличают от других.
Работник |
|
Продавец |
|
Служащий |
Имя Пароль |
|
Имя Регион продаж |
|
Имя |
Имеет разрешение на доступ к данным |
|
Принимает звонок клиента Записывает заказ Пересылает его в отдел доставки Устанавливает клиенту скидки |
|
Получает заказ Проверяет наличие товара Комплектует заказ |
|
|
|
|
|
Корпорация |
|
Перевозчик |
|
Поставщик |
Имя |
|
Имя |
|
Имя |
|
|
Получает заказ и доставляет клиенту |
|
Получает и выполняет заказы от компании |
|
|
|
|
|
Клиент |
|
Товар |
|
Заказ |
Имя Регион продаж Скидки Макс/мин заказ |
|
Имя поставщика Название товара Наличие Мин. Количество |
|
Клиент Дата Общая сумма |
Звонит в отдел продаж и делает заказ Получает заказ от перевозчика |
|
Количество, поддерживаемое на складе Сообщается перевозчику о необходимости пополнения |
|
Вводится продавцом Комплектуется в отделе продаж Сообщается продавцу об отсутствии товара |
Метод описывает действия класса. В предложении "люди работают", "работают" метод класса "люди".
Методология OSA (Object-Oriented System Analysis) обеспечивает объектно-ориентированный анализ программных систем и не содержит возможностей, связанных с поддержкой этапа разработки.
Методологии объектно-ориентированного анализа нередко критикуются за то, что они являются больше реализационно-ориентированными, чем проблемно-ориентированными, обеспечивая больше предварительную разработку, чем анализ требований к системе. Действительно, все рассмотренные методологии (такие, как OMT, SA/SD, JSD) поддерживают прежде всего предварительную разработку программных систем, а не анализ требований к ним.
Методология OSA сосредоточена только на проблемах анализа, предлагая ряд интересных соображений, связанных с объектно-ориентированным анализом систем и специально исключая из рассмотрения особенности, характерные для разработки. Предлагая удобные и тонкие методы анализа систем, методология OSA обеспечивает интерпретацию моделей на компьютере на самых ранних этапах анализа системы: OSA реализована в системе программирования C++ на рабочей станции Hewlett-Packard 700 под управлением ОС HP-UX 9.01.
Методология OSA, как и другие методологии, поддерживает три взаимно-ортогональных представления (модели) проектируемой системы:
модель зависимостей между объектами;
модель поведения объектов;
модель взаимодействия объектов.
