- •Глава 1. Организация процесса конструирования
- •Определение технологии конструирования программного обеспечения
- •Классический жизненный цикл
- •Макетирование
- •Стратегии конструирования по
- •Инкрементная модель
- •Быстрая разработка приложений
- •Спиральная модель
- •Компонентно-ориентированная модель
- •Тяжеловесные и облегченные процессы
- •Модели качества процессов конструирования
- •Контрольные вопросы
- •Глава 2. Руководство программным проектом
- •Процесс руководства проектом
- •Начало проекта
- •Измерения, меры и метрики
- •Процесс оценки
- •Анализ риска
- •Планирование
- •Трассировка и контроль
- •Планирование проектных задач
- •Размерно-ориентированные метрики
- •Функционально-ориентированные метрики
- •Выполнение оценки в ходе руководства проектом
- •Выполнение оценки проекта на основе loc- иFp-метрик
- •Конструктивная модель стоимости
- •Модель композиции приложения
- •Модель раннего этапа проектирования
- •Модель этапа постархитектуры
- •Предварительная оценка программного проекта
- •Анализ чувствительности программного проекта
- •Сценарий понижения зарплаты
- •Сценарий наращивания памяти
- •Сценарий использования нового микропроцессора
- •Сценарий уменьшения средств на завершение проекта
- •Контрольные вопросы
- •Глава 3. Основы проектирования программных систем
- •Особенности процесса синтеза программных систем
- •Особенности этапа проектирования
- •Структурирование системы
- •Моделирование управления
- •Декомпозиция подсистем на модули
- •Модульность
- •Информационная закрытость
- •Связность модуля
- •Функциональная связность
- •Информационная связность
- •Коммуникативная связность
- •Процедурная связность
- •Временная связность
- •Логическая связность
- •Связность по совпадению
- •Определение связности модуля
- •Сцепление модулей
- •Сложность программной системы
- •Характеристики иерархической структуры программной системы
- •Контрольные вопросы
- •Метрики объектно-ориентированных программных систем
- •Метрические особенности объектно-ориентированных программных систем
- •Локализация
- •Инкапсуляция
- •Информационная закрытость
- •Наследование
- •Абстракция
- •Эволюция мер связи для объектно-ориентированных программных систем
- •Связность объектов
- •Метрики связности по данным
- •Метрики связности по методам
- •Сцепление объектов
- •Зависимость изменения между классами
- •Локальность данных
- •Набор метрик Чидамбера и Кемерера
- •Метрика 1: Взвешенные методы на класс wmc (Weighted Methods Per Class)
- •Метрика 2: Высота дерева наследования dit (Depth of Inheritance Tree)
- •Метрика 3: Количество детей noc (Number of children)
- •Метрика 4: Сцепление между классами объектов сво (Coupling between object classes)
- •Метрика 5: Отклик для класса rfc (Response For a Class)
- •Метрики Лоренца и Кидда
- •Метрики, ориентированные на классы
- •Метрика 1: Размер класса cs (Class Size)
- •Метрика 2: Количество операций, переопределяемых подклассом, noo
- •Метрика 3: Количество операций, добавленных подклассом, noa
- •Метрика 4: Индекс специализации si (Specialization Index)
- •Операционно-ориентированные метрики
- •Метрика 5: Средний размер операции osavg (Average Operation Size)
- •Метрика 6: Сложность операции ос (Operation Complexity
- •Метрика 7: Среднее количество параметров на операцию npavg
- •Метрики для оо-проектов
- •Метрика 8: Количество описаний сценариев nss (Number of Scenario Scripts)
- •Метрика 9: Количество ключевых классов nkc (Number of Key Classes)
- •Метрика 10: Количество подсистем nsub (NumberofSuBsystem)
- •Набор метрик Фернандо Абреу
- •Метрика 1: Фактор закрытости метода mhf (Method Hiding Factor)
- •Метрика 2: Фактор закрытости свойства ahf (Attribute Hiding Factor)
- •Метрика 3: Фактор наследования метода mif (Method Inheritance Factor)
- •Метрика 4: Фактор наследования свойства aif (Attribute Inheritance Factor)
- •Метрика 5: Фактор полиморфизма pof (Polymorphism Factor)
- •Метрика 6: Фактор сцепления cof (Coupling Factor)
- •9. Тестирование программных продуктов
- •9.1. Виды контроля качества разрабатываемого программного обеспечения
- •9.2. Ручной контроль программного обеспечения
- •2. Контроль вычислений
- •3. Контроль передачи управления
- •4. Контроль межмодульных интерфейсов
- •9.3. Структурное тестирование
- •9.4. Функциональное тестирование
- •Глава 8. Организация процесса тестирования программного обеспечения
- •Методика тестирования программных систем
- •Тестирование элементов
- •Тестирование интеграции
- •Нисходящее тестирование интеграции
- •Восходящее тестирование интеграции
- •Сравнение нисходящего и восходящего тестирования интеграции
- •Тестирование правильности
- •Системное тестирование
- •Тестирование восстановления
- •Тестирование безопасности
- •Стрессовое тестирование
- •Тестирование производительности
- •Искусство отладки
- •Контрольные вопросы
- •2.Использование буфера обмена
- •3.Технология "перетяни и оставь"
- •4. Технология ole
- •5. Динамический обмен данными (dde)
- •6. Эволюция архитектуры «клиент-сервер»
- •6.1 Определение и назначение промежуточного по
- •6.2 Функции middleware
- •6.3 Виды промежуточного по
- •Промежуточное по межпрограммного взаимодействия
- •6.4 Промежуточное по доступа к базам данных
- •9. Основы компонентной объектной модели
- •Организация интерфейса сом
- •Идентификация интерфейса
- •Описание интерфейса
- •Реализация интерфейса
- •Unknown — базовый интерфейс com
- •Серверы сом-объектов
- •Преимущества com
- •Работа с сом-объектами
- •Создание сом-объектов
- •IClassFactory :: Createlnstance (iid a); 2 — фабрика класса создает сом-объект и получает
- •Повторное использование сом-объектов
- •Маршалинг
- •12. Введение в .Net Framework
2.Использование буфера обмена
Буфер обмена (clipboard) или "карман" представляет собой специальное средство Windows для обмена произвольными данными между прикладными программами. Приложения, которые поддерживают работу с буфером обмена, как правило, в своем главном меню содержат пункт Edit со стандартным набором команд.
Работа с буфером происходит по следующей схеме [10]. Сначала одно приложение копирует в него данные. Это действие обычно выполняется при выборе опции меню Edit/Copy. При этом в буфере обмена создается полная копия выделенных данных. После этого другое приложение может скопировать себе данные из буфера обмена. Эта операция обычно связана с выбором опции меню Edit/Paste. Таким образом, буфер выступает в качестве посредника, с помощью которого приложения могут обмениваться данными, даже не "зная" друг о друге.
Буфер обмена - это не файл и не раз и навсегда выделенная область оперативной памяти. Каждое окно, помещающее информацию в буфер, резервирует для размещения данных область динамической памяти (глобальной кучи) и передает ядру Windows дескриптор зарезервированного участка. Это дает возможность использовать в качестве буфера любую доступную в данный момент часть оперативной памяти. Окно-получатель информации определяет дескриптор буфера обмена и использует его для чтения информации.
Очистку буфера осуществляет окно-передатчик перед тем, как поместить в буфер новые данные.
Для просмотра содержимого буфера в Windows существует служебная программа Clipboard Viewer, доступная из менеджера программ.
3.Технология "перетяни и оставь"
В Windows реализован специальный механизм присоединения файлов к той или иной программе, получивший название "перетяни и оставь" (drag-and-drop) [10]. Он позволяет, находясь в окне Диспетчера файлов (File Manager), "схватить" мышью отмеченный файл или группу файлов. При этом курсор изменится и станет похож на лист или стопку бумаг. Удерживая кнопку мыши нажатой можно "перетащить" файлы до пиктограммы или окна другой программы и там "оставить" их, отпустив кнопку мыши. Если программа поддерживает технологию "перетяни и оставь", она получит доступ к перетянутым файлам и сможет обработать их.
4. Технология ole
Windows поддерживает сложный, но чрезвычайно перспективный механизм взаимодействия программ, который называется OLE (Object Linking and Embedding - связывание и внедрение объектов). Этот механизм широко используется во многих программных продуктах корпорации Microsoft, в том числе в текстовом редакторе WinWord и таблице Excel. В результате, в документ, подготовленный с помощью WinWord, можно внедрить график, сделанный в Excel. Если в процессе работы над документом возникнет необходимость в редактировании графика, достаточно дважды щелкнуть на нем мышью. - Windows откроет Excel и передаст ему данные, позволяющие изменить график. После завершения работы Excel измененный график будет переписан в исходный документ.
Без технологии OLE пользователь вынужден разрабатывать конечный документ по частям: рисунки изготавливаются с помощью одних программ, текст - с помощью других, верстка - с помощью третьих. При этом все программы никак не связаны друг с другом, и пользователь должен самостоятельно решать проблемы совместимости форматов данных. Применение технологии OLE позволяет рассматривать документ в виде единого стержня, на который "нанизаны" программы-обработчики.
Рассмотрим основные понятия технологии OLE.
Под объектом понимается любой вид данных, который может быть вставлен в документ. Этими данными могут быть текст, рисунки, звук, видеоинформация и др. При этом совсем не обязательно, чтобы программа, которая принимает объект, понимала его назначение и могла его редактировать. Для редактирования объекта автоматически (после двойного щелчка мыши над объектом) запускается та программа, которая умеет его редактировать.
Программа, которая принимает объекты в свои документы, является клиентом, а программа, которая создает и редактирует объект - сервером. Сервер активизируется по командам клиента. Так, WinWord является клиентом, который может запрашивать услуги у редактора формул, электронной таблицы и др. программ, выступающих в этом случае серверами.
Объект может быть связан с основным документом или внедрен в него. Для связанного объекта в документе сохраняется лишь минимально необходимая информация: как правило, в документ копируются данные и имя файла, из которого эти данные берутся. При открытии документа для редактирования проверяются все связанные с ним объекты. Если для какого-либо объекта существуют различия между данными в файле и данными в документе, то данные автоматически обновляются из файла. Таким образом, объект может меняться вне всякой связи с документом, однако в документе всегда будут отображаться все изменения в объекте.
Внедренный объект содержит все данные, необходимые для его редактирования. Объект не нуждается в связи с оригинальным файлом и может быть полностью автономен. Для редактирования объекта всегда автоматически запускается та программа, которая может это делать.