Дисциплина "Объектно-ориентированное программирование" Весенний семестр 2004/2005 уч.г. ТРЕБОВАНИЯ к выполнению лабораторной работы N 2 "ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ КЛАССОВ" 1. Основные этапы разработки 1.1. Формулирование основной идеи объектно-ориентированной модели проблемной задачи, которая определена индивидуальным заданием. 1.2. Построение системы объектов предметной области и соответствующих им классов. В процессе объектно-ориентированного анализа проблемной задачи: - четко формулируются и тщательно обосновываются основные проектные решения, определяющие выделяемые объекты, их отношения друг с другом, состав и свойства необходимых атрибутов и методов; - строятся и обосновываются информационные и математические модели объектов, действий и связей между ними; при этом должны быть обеспечены: - однозначная идентификация каждого объекта и - учет общего количества объектов класса, существующих в любой момент выполнения программы, использующей выделенные объекты; - формируются классы объектов и задаются отношения между классами, которые наглядно отображаются с помощью обозначений, принятых в языке UML. !!! Результаты выполнения этапов 1.1 и 1.2 ОБЯЗАТЕЛЬНО СОГЛАСОВЫВАЮТСЯ с преподавателем. 1.3. Проектирование классов объектов на языке С++ на основе контрактов. Для каждого класса: - формируется набор членов-данных; - определяются члены-данные, требющие защиты, и выбираются средства защиты; - формируется набор интерфейсных и внутренних членов- функций; - для каждой функции определяется необходимость и способы защиты ее параметров, а также необходимость и способ защиты членов-данных класса со стороны функции; - для каждой интерфейсной функции, включая конструкторы и деструктор, должны быть сформулированы пред- и постусловия; - формулируются инварианты; - разрабатывается контракт. 1.4. Проектирование конструкторов и деструкторов классов. Для каждого класса обосновывается количество требуемых конструкторов, назначение и необходимость каждого конструктора, основные способы его использования в программе. 1.5. Проектирование системы описаний классов как системы файлов на языке С++. 1.6. Разработка методики тестирования классов и тестовых наборов данных. 1.7. Разработка внешней спецификации тестирующей программы. Программа должна обеспечить тестирование классов как самостоятельных компонентов для применения в других разработках. 1.8. Разработка тестирующей программы на языке С++ 2. Подготовка отчета по лабораторной работе. Отчет должен быть выполнен в соответствии с требованиями раздела 4 "Общих требований к выполнению цикла лабораторных работ".