
- •Технология разработки программных систем (у10)
- •Алгоритм линейного поиска в одномерном массиве. Зависимость затрат на линейный поиск в среднем и в худшем случае от числа элементов массива. Улучшение линейного поиска: поиск с барьером.
- •Алгоритм двоичного поиска в одномерном отсортированноммассиве. Зависимость затрат на двоичный поиск в среднем и в худшем случае от числа элементов массива.
- •Последовательная и связанная память. Представление линейных списков в последовательной и связанной памяти. Достоинства и недостатки того и другого представления.
- •Операции, выполняемые со стеком, очередью и деком. Дек с ограниченным выходом и полный дек. Структуры данных, используемые для реализации стека, очереди, дека.
- •Понятие обхода дерева. Виды обходов двоичного дерева. Определение структуры двоичного дерева по двум заданным обходам. Рекурсивные алгоритмы обходов двоичных деревьев.
- •Деревья поиска. Алгоритм построения дерева поиска. Алгоритм поиска заданного значения в дереве поиска. Использование деревьев поиска для сортировки данных.
- •Деревья поиска. Алгоритм исключения узла из дерева поиска.
- •Понятие программного обеспечения, тенденции развития программного обеспечения
- •Стратегии разработки программного обеспечения
- •Основные принципы ооп
- •Принципы отладки программных систем
- •Обобщенные и элементарные критерии качества программного обеспечения.
- •Организация коллективов программистов и разработчиков.
- •Тестирование программного обеспечения. Автономное и комплексное тестирование.
- •Понятие класса и объекта. Конструкторы и деструкторы.
- •Статические и виртуальные методы.
Обобщенные и элементарные критерии качества программного обеспечения.
ПЛАН ОТВЕТА
Решение задач анализа существующего и синтеза нового высококачественного ПО.
Критерии качества Боэма (обобщенные >элементарные к.к.>показатели качества) и Мак-Колла (критерии> факторы > метрики).
Обобщенные критерии качества: мобильность, надежность, эффективность, понятность, модифицируемость, простота использования, полезность.
Элементарные критерии качества: завершенность, точность, согласованность, экономичность (рациональность), универсальность, коммуникативность, структурированность, информативность, лаконичность, открытость, расширяемость.
Организация коллективов программистов и разработчиков.
ПЛАН ОТВЕТА
Бригада главного программиста (главный программист, заместитель, программисты), бригада без персонализации функций, ОО бригада (архитектор ПС, проектировщик классов, программист): основные функции участников разработки.
Тестирование программного обеспечения. Автономное и комплексное тестирование.
См. распечатку "ГЭ_У_Тестирование"
См. также Орлов С.А.. Технологии разработки программного обеспечения. - СПб. «Питер», 2002, стр. 117-165 (выборочно!!!)
ПЛАН ОТВЕТА
Понятие тестирования. Тестовые наборы. Участники тестирования. Уровни тестирования.
Автономное и комплексное тестирование: сравнение подходов.
Методы (стратегии) тестирования: стратегия белого ящика (выполнение а) каждого оператора б) каждой линии передачи управления в) каждого возможного пути), стратегия черного ящика (метод эквивалентных разбиений, метод граничных условий)
Понятие класса и объекта. Конструкторы и деструкторы.
См. также распечатки Лекция_Примеры(Модули и классы), Лекция_Полиморфизм (Примеры).
ПЛАН ОТВЕТА
Особенности ОО подхода при разработке программ - разбиение системы по элементам-объектам. Абстрагирование. Индивидуальность, состояние и поведение объекта. Понятия интерфейса и реализации. Уровни интерфейса. Класс как совокупность объектов со схожим состоянием и поведением. Примеры.
Синтаксис объявления класса в Delphi. Объект как экземпляр класса. Двойственная природа объекта в Delphi.
Методы в классе: их классификация, определение и реализация. Неявный параметр self. Назначение и правила использования конструкторов и деструкторов. [Методы класса TObject: конструктор Create и метод Free.] Примеры.
Статические и виртуальные методы.
См. распечатки Лек_Полиморфизм, Лекция_Полиморфизм (Примеры).
ПЛАН ОТВЕТА
Расширяемость объектов и полиморфизм. Полиморфные объекты. Раннее и позднее связывание. Особенности использования статических, виртуальных (virtual) и динамических (dynamic) методов. Директива override. Таблицы виртуальных и динамических методов. Преимущества и недостатки использования методов различных типов. Примеры.