
- •Динамическая память и указатели. Типы указателей. Описание указателей.
- •Операции над указателями. Выделение динамической памяти для типизированных и нетипизированных указателей. Проблема утечки памяти.
- •Стеки и очереди.
- •Модули.
- •Классы, объекты. Объявление класса, принципы ооп.
- •Инкапсуляция и разграничение доступа к членам класса.
- •Методы (виды методов), конструктор и деструктор.
- •Перекрытие методов, перекрытие конструктора, 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)
- •Понятие технологичности программного обеспечения. Нисходящая и восходящая разработка по
- •Последовательность проектирования и реализации (Иерархический , Операционный , Комбинированный)
- •Модульное программирование. Модули и их свойства. Сцепление модулей. Связность модулей.
- •Предпроектные исследования предметной области
- •Разработка технического задания. Последовательность разработки тз.
- •Принципиальные решения начальных этапов проектирования: Выбор архитектуры программного обеспечения. Выбор типа пользовательского интерфейса. Выбор подхода к разработке.
- •Стадии тестирования. Принципы тестирования. Формирование тестовых наборов ст иФн.
- •Ручной контроль по: инспекция исходного текста, сквозные просмотры, проверка за столом.
- •Структурное тестирование.
- •Функциональное тестирование.
- •Тестирования модулей и комплексное тестирование.
- •Критерии завершения тестирования и отладки. Оценочное тестирование
Оценка качества процессов создания по.
Существует несколько стандартов оценки качества процессов, которое обеспечивает организация-разработчик:
ISO 9000 - ISO 9004 - сформулированы необходимые условия для достижения некоторого минимального уровня организации процесса, но не дается никаких рекомендаций по дальнейшему совершенствованию процессов.
СММ – Capability Maturity Model – модель зрелости (совершенствования) процессов создания программного обеспечения, представляет собой совокупность критериев оценки зрелости организации-разработчика и рецептов улучшения существующих процессов.
SPICE – Software Process Improvement and Capability dEtermination – определение возможностей и улучшение процесса создания программного обеспечения.
СММ определяет пять уровней зрелости организаций-разработчиков.
1. Начальный уровень (initial level) – на предприятии такого уровня организации не существует стабильных условий для создания качественного ПО. Результат зависит от личных качеств менеджера и опыта программистов.
2. Повторяемый уровень (repeatable level) – на предприятии внедрены технологии управления проектами.
Существуют стандарты процессов разработки ПО. В критических условиях процесс может скатываться на начальный уровень.
3. Определенный уровень (defined level)
Процесс создания и сопровождения ПО полностью документирован и стандартизован, создана специальная группа создания и поддержания стандартов предприятия. В процессе стандартизации происходит переход на наиболее эффективные практики и технологии. Осуществляется постоянное повышение квалификации сотрудников.
Начиная с этого уровня, организация перестает зависеть от качеств конкретных разработчиков, и процесс не имеет тенденции скатываться на уровень ниже в стрессовых ситуациях.
4. Управляемый уровень (managed level)
В организации устанавливаются количественные показатели качества ПО и процессов разработки. Управляющая роль числа.
5. Оптимизирующий уровень (optimizing level)
Постоянно улучшаются существующие процессы. Мероприятия по улучшению качества применяются и к существующим процессам и к новым. Улучшение процессов помогает предупреждать возможные ошибки. Ведутся работы по уменьшению стоимости разработки ПО, (например повторное использование компонентов).
Понятие технологичности программного обеспечения. Нисходящая и восходящая разработка по
Под технологичностью понимают качество ПО , от которого зависят трудовые и материальные затраты на его создание и последующие модификации.
Хороший проект быстро и легко кодируется, тестируется, отлаживается и модифицируется.
Технологичность ПО определяется - проработанностью его моделей; - уровнем независимости модулей; - стилем программирования; - степенью повторного использования кодов.
Для обеспечения необходимой технологичности применяют специальные приемы и методики, включающие в себя методы и правила: декомпозиции, проектирования, программирования, контроля качества, которые под общим названием «структурный подход к программированию» были сформулированы еще в 60-х годах XX в.
В его основу были положены следующие основные концепции:
• нисходящая разработка «сверху вниз»;
• модульное программирование;
• структурный стиль программирования;
• сквозной структурный контроль.
Нисходящая и восходящая разработка ПО
При проектировании, реализации и тестировании компонентов структурной иерархии, полученной при декомпозиции, применяют следующие подходы:
восходящий;
нисходящий;
расширяющегося ядра.
Восходящая разработка ПО
Сначала проектируют и реализуют компоненты нижнего уровня, затем предыдущего и т.д. По мере завершения тестирования и отладки компонентов осуществляют их сборку. Для тестирования и отладки компонентов проектируют и реализуют специальные тестирующие программы.
Подход имеет следующие недостатки:
• увеличение вероятности несогласованности компонентов вследствие неполноты спецификаций;
• позднее проектирование интерфейса, а соответственно невозможность продемонстрировать его заказчику для уточнения спецификаций и т.д.
Нисходящий подход к разработке ПО
Нисходящий подход предполагает, что проектирование и последующая реализация компонентов выполняется «сверху-вниз», т.е. вначале проектируют (затем и реализуют) компоненты верхних уровней иерархии, затем следующих и так далее до самых нижних уровней. При этом в процессе программирования компоненты нижних, еще не реализованных уровней заменяют специально разработанными отладочными модулями – «заглушками», что позволяет тестировать и отлаживать уже реализованную часть.
Преимущества нисходящего подхода:
максимально полное определение спецификаций проектируемого компонента и согласованность компонентов между собой;
раннее определение интерфейса пользователя, демонстрация которого заказчику позволяет уточнить требования к создаваемому программному обеспечению;
возможность нисходящего тестирования и комплексной отладки.