Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция01.docx
Скачиваний:
0
Добавлен:
23.12.2018
Размер:
147.25 Кб
Скачать

Классический алгоритм

1)анализ

2) проектирование

3) программирование

4) тестирование

5) внедрение

Это водопадная модель.

-непригодность для создания сложных систем, состоящих из большого числа модулей

-высокие затраты на организацию внесения изменений.

-несовместимость с современными методами разработки и непригодность в случае Объектно-ориентированной разработки.

-результаты доступны только в конце проекта

Разработка объектно-ориентированной программной системы – поступательный итеративный процесс постепенного улучшения программы, включающий следующие этапы: анализ, проектирование, эволюция, модификация.

1) Анализ.

Цель – полное последовательное доступное для понимания описание задачи. Разрабатывается структурная схема: основные объекты и сообщения между ними.

Результат анализа – полная (на данный момент времени) модель задачи, к решению которой приступают к этапу проектирования.

2)Проектирование.

Различают логическое и физическое.

Логическое – принятие концептуальных решений независимых от аппаратной и программной базы, выделение основных классов, их свойств и методов. При этом используются специальные методы: полиморфизм, перегрузка и т.д и инструментальные средства проектирование (case средства, Computer Aided Software Engineering).

В результате получается одна или несколько взаимосвязанных иерархий классов.

Физическое проектирование – детализация структур данных, разработка алгоритмов для методов классов, группировка классов в модули, спецификация способов взаимодействия с оборудованием, ПО, разработка вспомогательных классов и т.д.

3) Эволюция – процесс создания прототипов, которые в итоге образуют конечную реализацию программы. Начинается с создания основной программы, и каркас основных классов. Желательно в первой итерации получить работающий прототип, который отлаживается и тестируется, затем к системе подключается следующая группа классов и т.д.

4)Модификация. Добавление новых функциональных возможностей, учет дефектов и изменившихся требований, как правило касается реализации классов, но не их интерфейсов.

Новые концепции ООП в Object Pascal

В языке Object Pascal, использующимся в Delphi, произошли следующие изменения в объектной модели, по сравнению с последней версией Borland Pascal.

1. Изменение в синтаксисе объявления и использования объектов.

2. Введение указателей на методы.(function ………… of Object).

3. Введение методов классов. (class function ………. ).

4. Введение ссылок на классы.

5.Изменение в организации определений и вызовов методов.

6. Введение раздела объявления интерфейса разработчика объектного типа (protected).

7.Введение раздела объявления интерфейса времени проектирования (published).

8.Введение механизмов RTTI (информация о типах времени выполнения).

9.Введение поддержки процедурных полей.

10. Введение понятия свойств (property).

Класс – это определенный пользователем тип данных, который обладает состоянием (представление класса) и набором операций (поведение класса).

Класс имеет некоторые внутренние данные и некоторые наборы методов. Методы класса реализуются в форме процедур или функций. Данные и методы класса описывают универсальные характеристики и поведение некоторого набора похожих объектов.

Объект – это экземпляр класса или переменная принадлежащая типу данных, являющемуся классом. Любой объект – это фактически существующая в памяти запись, т.е. в процессе выполнения программы каждый объект требует для хранения своего внутреннего представления некоторый объем памяти.

В новой объектной модели программист работает только с динамическими экземплярами классов (т.е. с теми, которые расположены в heap области(кучи) ).

Пример:

Старая модель

Type

PmyObject=^TMyObject

TMyobject=object(Tobject)

Myfield:TMyType

Constructor Init;

End;

……………………………

Var MyObject:PMyObject;

Begin

MyObject:=New(PMyObject,Init );

MyObject^.MyField:=’123123123’;

……………………………………..

…………………………………….

Новая модель

Type TMyObject=class(Tobject)

myField:TMyType;

constructor Create;

end;

var MyObject:TMyObject;

begin

MyObject:=TMyObject.Create;

MyObject.MyField:=…………..;

………………………………..

………………………………