
- •Динамическая память и указатели. Типы указателей. Описание указателей.
- •Операции над указателями. Выделение динамической памяти для типизированных и нетипизированных указателей. Проблема утечки памяти.
- •Стеки и очереди.
- •Модули.
- •Классы, объекты. Объявление класса, принципы ооп.
- •Инкапсуляция и разграничение доступа к членам класса.
- •Методы (виды методов), конструктор и деструктор.
- •Перекрытие методов, перекрытие конструктора, inherited
- •Поля, Свойства. События
- •Полиморфизм is, as.
- •Дерево классов delphi. Класс tObject. Класс tPersistent. Класс tСomponent.
- •Класс tСontrol.
- •Свойства и методы для обеспечения отношения родительский-дочерний
- •Свойства позиционирования и выравнивания
- •Свойства, определяющие внешний вид элементов управления. Property Color Cursor:Tcursor; Enabled:Boolean; Font, Hint, ShowHint
- •События при нажатии мышью на левую кнопку. Общие события, возникающие при манипулировании мышью.
- •События, предназначенные для поддержки перетаскивания.
- •Свойства и методы, поддерживающие связь родительский-дочерний.
- •События клавиатуры TwinControl. События активизации оконного элемента и потери фокуса.
- •Класс tGraphicControl. Метка Tlabel. Компонент Timer.
- •Interval: cardinal; - интервал в милисекундах после которого начинается событие OnTimer.
- •Класс tCustomEdit. Строка ввода Edit.
- •Класс tStrings. Текстовый редактор Memo.
- •Кнопки.Button, BitBtn, SpeedButton
- •Список ListBox.
- •Комбинированная строка ввода ComboBox.
- •Items:tString;-содержит список названий переключателей.
- •Классы и компоненты, предназначенные для создания изображений. Класс tCanvas. Класс tFont. Класс tPen. Класс Tbrush.
- •Компонент Image. Компонент Shape. Компонент PaintBox.
- •Диалоговые окна. OpenDialog SaveDialog
- •Этапы развития технологии программирования.
- •Первый этап - «стихийное» программирование (50-60-е годы).
- •Второй этап - структурный подход к программированию
- •Третий этап -объектный подход к программированию(с середины 80-х до конца 90-х годов XX )
- •Четвертый этап – компонентный подход и case-технологии (с середины 90-х годов до нашего времени).
- •Проблемы разработки сложных программных систем.
- •Блочно-иерархический подход к созданию сложных систем.
- •Жизненный цикл по и этапы его разработки. Гост 19.102-77 «Стадии разработки»
- •Постановка задачи. Анализ требований и определение спецификаций. Проектирование. Реализация. Сопровождение.
- •Эволюция моделей жизненного цикла по.
- •Жизненный цикл по при использовании case-технологий. Технология rad
- •Оценка качества процессов создания по.
- •5. Оптимизирующий уровень (optimizing level)
- •Понятие технологичности программного обеспечения. Нисходящая и восходящая разработка по
- •Последовательность проектирования и реализации (Иерархический , Операционный , Комбинированный)
- •Модульное программирование. Модули и их свойства. Сцепление модулей. Связность модулей.
- •Предпроектные исследования предметной области
- •Разработка технического задания. Последовательность разработки тз.
- •Принципиальные решения начальных этапов проектирования: Выбор архитектуры программного обеспечения. Выбор типа пользовательского интерфейса. Выбор подхода к разработке.
- •Стадии тестирования. Принципы тестирования. Формирование тестовых наборов ст иФн.
- •Ручной контроль по: инспекция исходного текста, сквозные просмотры, проверка за столом.
- •Структурное тестирование.
- •Функциональное тестирование.
- •Тестирования модулей и комплексное тестирование.
- •Критерии завершения тестирования и отладки. Оценочное тестирование
Второй этап - структурный подход к программированию
Структурный подход (60-70-е годы) охватывает все этапы разработки ПО. Он требует представления задачи в виде иерархии («часть-целое») подзадач более простой структуры вплоть до небольших подпрограмм (40-50 операторов). Разработка осуществляется «сверху-вниз», подразумевая детализацию общей идеи.
Поддержка принципов структурного программирования была заложена в основу процедурных языков программирования PL/1, ALGOL-68, Pascal, С, включающих «структурные» операторы, подпрограммы, локализацию данных.
Структурный подход также потребовал структурирования данных. Появляются пользовательские типы данных. Разграничивается доступ к глобальным данным программы, чтобы уменьшить количество ошибок.
В результате появилась технология модульного программирования, предполагающая выделение групп подпрограмм, использующих одни и те же глобальные данные в модули (отдельно компилируемые библиотеки). Связи между модулями осуществляются через интерфейс, а доступ к телам подпрограмм и «внутренним» переменным запрещен.
Модульное программирование упростило разработку ПО несколькими программистами, каждый из них может разрабатывать свои модули независимо от других, взаимодействие модулей обеспечивается через специально оговоренные межмодульные интерфейсы. Кроме того, модули в дальнейшем без изменений можно было использовать в других разработках, что повысило производительность труда программистов.
Но структурный подход позволяет создавать надежные программы размером до 100.000 операторов. Причины: ошибка в интерфейсе выявляется при выполнении программы. При росте программы растает сложность межмо-дульных интерфейсов, и предусмотреть взаимовлияние отдельных частей программы становится практически невозможно.
Для разработки ПО большого объема был предложен объектный подход.
Третий этап -объектный подход к программированию(с середины 80-х до конца 90-х годов XX )
Программа представляется в виде ряда объектов.
Объекты объединяют в себе данные и подпрограммы, обрабатывающие эти данные.
Каждый объект является экземпляром класса (типа), а классы образуют иерархию с наследованием («простое-сложное).
Взаимодействие объектов осуществляется путем передачи сообщений.
Основным достоинством объектно-ориентированного программирования (ООП) по сравнению со структурным является «более естественная» декомпозиция задачи, которая существенно облегчает его разработку.
Это приводит к более полной локализации данных и интегрированию их с подпрограммами обработки, что позволяет вести практически независимую разработку отдельных частей (объектов) программы.
Кроме этого, объектный подход предлагает новые способы организации программ, основанные на механизмах инкапсуляции, наследования, полиморфизма, что позволяет конструировать сложные объекты из сравнительно простых. В результате существенно увеличивается повторяемость кода.
Недостатки реализации ООП в PASCALе и С++.
• компоновка объектов, полученных разными компиляторами затруднена, что приводит к необходимости разработки ПО в рамках одного компилятора и одной ОС;
• изменение реализации одного объекта, связано с перекомпиляцией всего модуля.
Связи модулей нельзя разорвать, но можно попробовать стандартизировать их взаимодействие, на чем и основан компонентный подход к программированию.