57. Представление данных в оперативной памят
Различают две базовые структуры организации данных в оперативной памяти: векторную и списковую. Векторная структура представляет собой последовательность байт памяти, которые используются для размещения полей данных (рис. 12.14). Последовательное размещение организованных структур данных позволяет осуществлять прямой доступ к элементам: по индексу (совокупности индексов) – в массивах или строках или по имени поля – в записях или объектах.
Однако выполнение операций добавления и удаления элементов при использовании векторных структур для размещения элементов массивов может потребовать осуществления многократных сдвигов элементов.
Структуры данных в векторном представлении можно размещать как в статической, так и в динамической памяти. Расположение векторных представлений в динамической памяти иногда позволяет существенно увеличить эффективность использования оперативной памяти. Желательно размещать в динамической памяти временные структуры, хранящие промежуточные результаты, и структуры, размер которых сильно зависит от вводимых исходных данных.
Списковые структуры строят из специальных элементов, включающих помимо информационной части еще и один или несколько указателей-адресов элементов или вложенных структур, связанных с данным элементом. Размещая подобные элементы в динамической памяти можно организовывать различные внутренние структуры.
Однако при использовании списковых структур следует помнить, что: для хранения указателей необходима дополнительная память; поиск информации в линейных списках осуществляется последовательно, а потому требует больше времени; построение списков и выполнение операций над элементами данных, хранящимися в списках, требует более высокой квалификации программистов, более трудоемко, а соответствующие подпрограммы содержат больше ошибок и, следовательно, требуют более тщательного тестирования.
Обычно векторное представление используют для хранения статических множеств, таблиц (одномерных и многомерных), например, матриц, строк, записей, а также графов, представленных матрицей смежности, матрицей инцидентности или аналитически. Списковое представление удобно для хранения динамических (изменяемых) структур и структур со сложными связями.
58. Представление данных во внешней памяти
Современные операционные системы поддерживают два способа организации данных во внешней памяти: последовательный и с прямым доступом.
При последовательном доступе к данным возможно выполнение только последовательного чтения элементов данных или последовательная их запись. Такой вариант предполагается при работе с логическими устройствами типа клавиатуры или дисплея, при обработке текстовых файлов или файлов, формат записей которых меняется в процессе работы.
Прямой доступ возможен только для дисковых файлов, обмен информацией с которыми осуществляется записями фиксированной длины (двоичные файлы С или типизированные файлы Pascal). Адрес записи такого файла можно определить по ее номеру, что и позволяет напрямую обращаться к нужной записи.
При выборе типа памяти для размещения структур данных следует иметь в виду, что:
в оперативной памяти размещают данные, к которым необходим быстрый доступ как для чтения, так и для их изменения;
во внешней – данные, которые должны сохраняться после завершения программы.
Возможно, что во время работы данные целесообразно хранить в оперативной памяти для ускорения доступа к ним, а при ее завершении – переписывать во внешнюю память для длительного хранения. Именно этот способ используют большинство текстовых редакторов: во время работы с текстом он весь или его часть размещается в оперативной памяти, откуда по мере надобности переписывается во внешнюю память. В подобных случаях разрабатывают два представления данных: в оперативной и во внешней памяти.
Правильный выбор структур во многом определяет эффективность разрабатываемого программного обеспечения и его технологические качества, поэтому данному вопросу должно уделяться достаточное внимание независимо от используемого подхода.
59. Проектирование программного обеспечения, основанное на декомпозиции данных Методикой Джексона
При создании своей методики М. Джексон исходил из того, что структуры исходных данных и результатов определяют структуру программы.
Методика основана на поиске соответствий структур исходных данных и результатов. Однако при ее применении возможны ситуации, когда на каких-то уровнях соответствия отсутствуют. Например, записи исходного файла сортированы не в том порядке, в котором соответствующие строки должны появляться в отчете. Такие ситуации были названы «столкновениями». Выделяют несколько типов столкновений, которые разрешают по-разному. При различной последовательности записей их просто сортируют до обработки.
Разработка структуры программы в соответствии с методикой выполняется следующим образом:
строят изображение структур входных и выходных данных;
выполняют идентификацию связей обработки (соответствия) между этими данными;
формируют структуру программы на основании структур данных и обнаруженных соответствий;
добавляют блоки обработки элементов, для которых не обнаружены соответствия;
анализируют и обрабатывают несоответствия, т.е. разрешают «столкновения»;
добавляют необходимые операции (ввод, вывод, открытие/закрытие файлов и т. п.);
записывают программу в структурной нотации (псевдокоде).
- Сущность и актуальность дисциплины «Технологии программирования», основные понятия и определения дисциплины.
- Жизненный цикл программного средства.
- Модели жизненного цикла по.
- Модель с промежуточным контролем
- Спиральная модель
- Спиральная или итерационная схема разработки программного обеспечения
- Изменение жизненного цикла программного обеспечения при использовании case-технологий.
- Качество программного обеспечения.
- Модели качества по
- Метрики качества программного обеспечения.
- Измерение и оценка качества по, стандартный метод оценки значений показателей качества.
- Управление качеством пс.
- Требования стандарта к организации системы качества
- Диалоговые программы, типы диалога, формы диалога.
- Спецификация пс.
- Определение требований к программному средству.
- Спецификация качества программного средства.
- Функциональная спецификация программного средства.
- Методы контроля внешнего описания программного средства.
- Способы записи алгоритмов.
- Представление основных структур алгоритмов.
- Псевдокоды.
- Flow-формы.
- Диаграммы Насси-Шнейдермана.
- Классификация структур данных.
- Файловые структуры, физическая организация файлов.
- Логическая организация файлов.
- Документирование файлов.
- Модульные программы, модули и их свойства.
- Сцепление и связность модулей.
- Нисходящая и восходящая разработка программного обеспечения.
- Программирование «с защитой от ошибок».
- Основные подходы программирования, «стихийное» программирование.
- Основные подходы программирования, структурный подход к программированию.
- Основные подходы программирования, объектный подход к программированию.
- Основные подходы программирования, компонентный подход и case-технологии.
- 36. Процедурное (императивное) программирование
- 37.Функциональное программирование.
- 38. Декларативное программирование
- 39. Объектно-ориентированное программирование
- 40.Объектно-ориентированные языки программирования.
- 41. Спецификация программного обеспечения при структурном подходе.
- 42.Диаграммы переходов состояний.
- 43. Функциональные диаграммы
- 44. Диаграмма потоков данных
- 45. Моделирование управляющих процессов с помощью диаграмм потоков данных
- 46. Структуры данных и диаграммы отношений компонентов данных
- 47. Диаграммы Джексона.
- 48. Скобочные диаграммы Орра
- 49. Сетевая модель данных
- 50. Проектирование программного обеспечения при структурном подходе
- 54. Метод пошаговой детализации для проектирования структуры по
- 55. Структурные карты Констайна.
- 56. Проектирование структур данных
- 57. Представление данных в оперативной памят
- 60. Проектирование программного обеспечения, основанное на декомпозиции данных Методикой Варнье-Орра
- 61. Case-технологии, основанные на структурных методологиях анализа и проектирования
- 63. Определение «вариантов использования»
- 64. Диаграммы вариантов использования
- 65. Построение концептуальной модели предметной области
- 69. Проектирование программного обеспечения при объектном подходе
- 70. Разработка структуры программного обеспечения при объектном подходе
- Определение отношений между объектами.
- Диаграммы последовательностей этапа проектирования.
- Диаграммы кооперации.
- Уточнение отношений классов.
- Интерфейсы в uml.
- Проектирование классов.
- Проектирование методов класса.
- Компоновка программных компонентов.
- Проектирование размещения программных компонентов для распределенных программных систем.
- Методы доказательства правильности программ.
- Метод индуктивных утверждений Флойда.
- Метод Хора доказательства правильности программ.
- Виды контроля качества разрабатываемого программного обеспечения.
- Формирование тестовых наборов, основные подходы.
- Ручной контроль программного обеспечения, методы ручного контроля.
- I. Контроль обращений к данным
- 2. Контроль вычислений
- 3. Контроль передачи управления
- 4. Контроль межмодульных интерфейсов
- Структурное тестирование, критерии формирования тестовых наборов.
- Функциональное тестирование, методы формирования тестовых наборов.
- Тестирование модулей и комплексное тестирование.
- Оценочное тестирование.
- Отладка программного обеспечения.
- Классификация ошибок программного обеспечения.
- Методы отладки программного обеспечения.
- Методы и средства получения дополнительной информации об ошибках.
- Общая методика отладки программного обеспечения.
- Документирование и стандартизация.
- Виды программных документов.
- Основные правила оформления программной документации.
- Основные инженерные подходы к созданию программ.
- Классификация технологических подходов к созданию программ.
- Классификация технологических подходов к созданию программ, подходы со слабой формализацией.
- Классификация технологических подходов к созданию программ, строгие каскадные подходы.
- Классификация технологических подходов к созданию программ, строгие каркасные подходы.
- Классификация технологических подходов к созданию программ, генетические подходы.
- Классификация технологических подходов к созданию программ, подходы на основе формальных преобразований.
- Классификация технологических подходов к созданию программ, ранние подходы быстрой разработки.
- Классификация технологических подходов к созданию программ, адаптивные технологические подходы.
- Классификация технологических подходов к созданию программ, подходы исследовательского программирования.
- Особенности и компоненты case-средств.
- Объектно-ориентированные case-средства анализа и проектирования.
- Структурные case-средства анализа и проектирования.
- Case-средства компании ibm Rational Software, средство визуального моделирования Rational Rose.
- Системы автоматизированного проектирования и их место среди других автоматизированных систем.
- Структура сапр.
- Разновидности сапр.
- Понятие о cals-технологиях.