Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:teach:oop:lab3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

etc:teach:oop:lab3 [2008/02/19 15:45] – создано kkvetc:teach:oop:lab3 [2008/02/19 16:01] (current) kkv
Line 2: Line 2:
  
 <file> <file>
 +     Дисциплина "Объектно-ориентированное программирование"
 +                 Весенний семестр 2004/2005 уч.г.
  
 +                           ТРЕБОВАНИЯ
 +              к выполнению лабораторной работы N 3
 +
 +        "ПОСТРОЕНИЕ КЛАССОВ С ИСПОЛЬЗОВАНИЕМ ПРОСТОГО И
 +                  МНОЖЕСТВЕННОГО НАСЛЕДОВАНИЯ"
 +
 +      1. Условия выполнения разработкм
 +
 +      1.1. В лабораторной работе N 3 развиваются проблемные модели
 +           и классы, разработанные и прошедшие тестирование при
 +           выполнении лабораторной работы N 2.
 +
 +      1.2. Задание на лабораторную работу N 3 формулируется
 +           ИНДИВИДУАЛЬНО для каждого студента и требует построения
 +           новых проблемных моделей и классов путем модификации
 +           ранее разработанных за счет применения простого и
 +           множественного наследования.
 +
 +      2. Основные этапы разработки
 +
 +      2.1. Формулирование способов построения новых проблемных
 +           моделей и новых классов, представляющих эти модели,
 +           путем применения простого и множественного наследования.
 +
 +      2.2. Построение системы НОВЫХ объектов предметной области,
 +           порожденных применением наследования, и соответствующих
 +           им классов.
 +               В процессе объектно-ориентированного анализа НОВОЙ
 +               проблемной задачи:
 +                 - определяются и обосновываются информационные
 +                   и математические модели НОВЫХ объектов, действий
 +                   и связей между ними; при этом должны быть
 +                   обеспечены однозначная идентификация каждого
 +                   НОВОГО объекта и учет общего количества объектов
 +                   класса, существующих в любой момент выполнения
 +                   программы, использующей объекты;
 +                 - формируются НОВЫЕ (по отношению к набору классов,
 +                   используемых в лабораторной работе 2) классы
 +                   объектов и задаются отношения между классами,
 +                   которые наглядно отображаются с помощью
 +                   обозначений, принятых в языке UML;
 +                 - выбираются и обосновываются сценарии наследования
 +                   для построения НОВЫХ моделей и классов;
 +                 - определяется и обосновывается состав и структура
 +                   набора виртуальных функций, включая виртуальный
 +                   деструктор;
 +                 - проектируются конструкторы производных классов;
 +                   при этом обосновываются:
 +                     - необходимость в конструкторах,
 +                     - их конкретные функции и
 +                     - организация инициализации членов базовых
 +                       классов.
 +      2.3. Проектирование НОВЫХ классов объектов на языке С++ на основе
 +           контрактов.
 +             Для каждого НОВОГО класса:
 +               - формируется набор членов-данных;
 +               - определяются члены-данные, требющие защиты, и
 +                 выбираются средства защиты;
 +               - формируется набор интерфейсных и внутренних членов-
 +                 функций;
 +               - для каждой функции определяется необходимость и
 +                 способы защиты ее параметров, а также необходимость
 +                 и способ защиты членов-данных класса со стороны
 +                 функции;
 +               - для каждой интерфейсной функции, включая конструкторы
 +                 и деструктор, должны быть сформулированы пред- и
 +                 постусловия;
 +               - формулируются инварианты;
 +               - разрабатывается контракт.
 +
 +      2.4. Проектирование системы описаний классов как системы
 +           файлов на языке С++.
 +
 +      2.5. Разработка методики тестирования классов и тестовых
 +           наборов данных.
 +
 +      2.6. Разработка внешней спецификации тестирующей программы.
 +               Программа должна обеспечить тестирование классов
 +               как самостоятельных компонентов для применения в
 +               других разработках.
 +
 +      2.7. Разработка тестирующей программы на языке С++.
 +
 +      2.8. Определение количественных характеристик разработки,
 +           обусловленных применением наследования:
 +             - количество и максимальное число уровней в иерархиях
 +               наследования;
 +             - количество НОВЫХ классов, построенных в выполняемой
 +               работе;
 +             - количество использованных ранее разработанных классов
 +               и количество тех из них, для которых потребовавалось
 +               внесение изменений;
 +             - размер (в строках текста на С++)  НОВЫХ программных
 +               компонентов:
 +                 - суммарный размер НОВЫХ классов,
 +                 - размер НОВОЙ тестирующей программы.
 +
 +      3. Подготовка отчета по лабораторной работе
 +           Отчет должен быть выполнен в соответствии с требованиями
 +           раздела 4 "Общих требований к выполнению цикла
 +           лабораторных работ".
 </file> </file>
etc/teach/oop/lab3.1203425136.txt.gz · Last modified: 2008/02/19 15:45 by kkv