
- •1. Жизненный цикл программной системы.
- •2. Классический подход к созданию программных систем.
- •3. Понятия связности модулей и сцепления модулей.
- •4. Структурное программирование.
- •Структурное тестирование программного обеспечения
- •1. Связь процессов тестирования и процессов проектирования.
- •2. Уровни тестирования и виды тестирования.
- •3. Стратегия тестирования.
- •4. Тестирование программного модуля.
- •5. Восходящее и нисходящее тестирование.
- •6. Методы тестирования: модифицированный нисходящий, монолитный, сандвич, модифицированный сандвич.
- •7. Системное тестирование: метод функциональных диаграмм.
- •Объектно-ориентированный подход к разработке по
- •1. Абстрагирование и инкапсуляция
- •2. Модульность программных систем
- •3. Виды иерархий в программных системах.
- •4. Понятие объекта. Состояние, поведение и индивидуальность объекта.
- •5. Отношение между объектами: использование, включение.
- •6. Отношение простого наследования классов.
- •7. Добавление, замещение и уточнение методов класса при наследовании.
- •8. Отношение ассоциации между классами, включая агрегацию.
- •9. Отношение зависимости между классами, отношение реализации.
- •Шаблоны проектирования
- •1. Шаблон «Одиночка» Singleton
- •2. Шаблон «Абстрактная фабрика» Abstract Factory
- •3. Шаблон «Декоратор» Decorator
- •4. Шаблон «Стратегии» Strategy
- •5. Компоновщик.
- •6. Шаблон «Наблюдатель» Observer
- •7. Архитектурные шаблоны. Унифицированный процесс разработки по (rup)
- •1. Основные черты. Фазы и основные потоки работ.
- •2. Документ «Видения». Модель и словарь предметной области.
- •3. Функциональные и нефункциональные требования к системе. Варианты использования системы.
- •4. Прецеденты и отношения между прецедентами.
- •5. Модель анализа и классы анализа.
- •6. Архитектурное представление.
3. Функциональные и нефункциональные требования к системе. Варианты использования системы.
4. Прецеденты и отношения между прецедентами.
Прецеденты (уровни описания):
- идеальный прецедент верхнего уровня (нет подробного описания);
- идеальный развернутый прецедент (содержит последовательность действий актанта и откликов системы без указания проектных решений) - составляет специалист предметной области;
- реальный прецедент (последовательность действий актанта с указанием реакции системы в терминах проектных решений)
- развернутый. Развернутый прецедент - в описании прецедента м.б. базовый поток действий и альтернативный поток.
Альтернативный поток - последовательность действий, приводящих к такому же результату, либо не приводящий ни к какому результату.
Функциональные требования - совокупность всех прецедентов.
Пример. Прецедент – занести учетный материал
Основной поток событий:
прецедент начинается с того, что пользователю предоставляются все разделы дисциплины;
пользователь выбирает нужный раздел;
система (актант) отображает имеющийся материал;
пользователь добавляет учебный материал;
система сохраняет изменения;
пользователь добавляет вопросы по добавленному материалу и составляет варианты ответа с пометкой правильного ответа;
система сохраняет вопрос.
Альтернативный поток:
если нужный раздел дисциплины отсутствует, то пользователь создает новый раздел;
система сохраняет изменения, контролируя уникальность названия раздела.
Классификация прецедентов:
по степени использования проектных решений - от идеального до реального;
детальность описания – от краткого до развернутого;
степень законченности прецедентов: варьирование от конкретного прецедента к абстрактному.
Конкретный прецедент – известно кем и когда он инициируется и всегда полностью выполняется. Абстрактный прецедент, как правило, часть конкретного прецедента.
Отношения между прецедентами:
Обобщение, расширение, включение.
Для организации прецедентов их группируют в пакеты, так же как и классы. Кроме того, прецеденты можно организовать, определив между ними отношения обобщения, включения и расширения. Эти отношения применяют, чтобы выделить некоторое общее поведение, извлекая его из других прецедентов, которые его включают, или, наоборот, вариации, поместив такое поведение в другие прецеденты, которые его расширяют.
Отношение обобщения между прецедентами аналогично отношению обобщения между классами. Это означает, что прецедент-потомок наследует поведение и семантику своего родителя, может замещать его или дополнять его поведение, а кроме того, может быть подставлен всюду, где появляется его родитель, кроме того, как родитель, так и потомок могут иметь конкретные экземпляры. Отношение обобщения между прецедентами изображаются точно так же, как и обобщения между классами - в виде линии с незакрашенной стрелкой.
Отношение включения между прецедентами означает, что в некоторой точке базового прецедента инкорпорировано поведение другого прецедента. Включаемый прецедент никогда не существует автономно, а инстанцируется только как часть объемлющего прецедента. Можно считать, что базовый прецедент заимствует поведение включаемых.
Благодаря наличию отношения включения удается избежать многократного описания одного и того же потока событий, поскольку общее поведение можно описать в виде самостоятельного поведения, включаемого в базовые. Отношение включения является примером делегирования, при котором ряд обязанностей системы описывается в одном месте - во включаемом прецеденте, а остальные прецеденты, когда необходимо включают эти обязанности в свой набор.
Отношения включения изображаются в виде зависимости со стереотипом include. Чтобы специфицировать место в потоке событий, где базовый прецедент включает поведение другого, вы просто пишите слово include, за которым следует имя включаемого прецедента.
Отношение расширения применяют для моделирования таких частей прецедента, которые пользователь воспринимает как необязательное поведение системы. Тем самым можно разделить обязательное и необязательное поведение. Отношение расширения используется также для моделирования отдельных субпотоков, выполняемых только при определенных обстоятельствах. Наконец, их применяют для моделирования нескольких потоков, которые могут включиться в некоторой точке сценария в результате явного взаимодействия с актером.
Отношение расширения изображают в виде зависимости со стереотипом extend. Точки расширения базового сценария перечисляют в дополнительном разделе. Они являются просто метками, которые могут появиться в потоке базового прецедента. Прецедент может содержать несколько точек расширения, причем каждую по несколько раз, идентифицируемых по именам. Если определено несколько точек расширения, то расширяющие прецеденты будут последовательно выполняться в собственных потоках.
Организация прецедентов путем выделения общего поведения (отношение включения) и различных вариаций (отношение расширения) является важной составной частью процесса разработки простого сбалансированного и понятного набора прецедентов системы.
Немного о других возможностях. Прецеденты являются классификаторами и могут иметь атрибуты и операции, которые изображаются так же, как для классов. Атрибуты можно считать объектами внутри прецедента, которые требуется для описания его внешнего поведения, а операции - действиями системы, необходимыми для описания потока событий. Эти объекты и операции разрешается включать в диаграммы взаимодействия, чтобы специфицировать поведение прецедента. Как и ко всем остальным классификаторам, к прецедентам можно присоединять автоматы. Позволительно расценивать их как еще один способ описания прецедента.