Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Використання методу покрокової деталізації для проектування структури програмного забезпечення





Структурний підхід до програмування в тому вигляді, в якому він був сформульований в 70-х роках XX ст., пропонував здійснювати декомпозицію програм методом покрокової деталізації. Метод був спочатку запропонований Е.Дейкстрою [2], а потім доповнений Н.Віртом. Результатом декомпозиції є структурна схема програми, яка являє собою багаторівневу ієрархічну схему взаємодії підпрограм по керуванню. Мінімально така схема відображає два рівні ієрархії, тобто показує загальну структуру програми. Проте цей же метод дозволяє отримати структурні схеми з великою кількістю рівнів. Метод покрокової деталізації реалізує низхідний підхід і базується на основних конструкціях структурного програмування. Він припускає покрокову розробку алгоритму. Кожен крок при цьому включає розкладання функції на підфункції. Так на першому етапі описують рішення поставленої задачі, виділяючи загальні підзадачі, на наступному аналогічно описують вирішення підзадач, формулюючи при цьому підзадачі наступного рівня. Таким чином, на кожному кроці відбувається уточнення функцій майбутнього програмного забезпечення. Процес продовжують, поки не доходять до під задач алгоритми вирішення яких очевидні. При декомпозиції програми методом покрокової деталізації, слід дотримуватися основного правила структурної декомпозиції, який слідує з принципу вертикального керування: в першу чергу деталізувати керуючі процеси самого компонента декомпозиції, залишаючи уточнення операцій з даними наприкінці. Це пов'язано з тим, що пріоритетна деталізація керуючих процесів істотно спрощує структуру компонентів всіх рівнів ієрархії і дозволяє не відокремлювати процес ухвалення рішення від його виконання: так визначивши умову вибору деякої альтернативи, зразу ж викликають модуль, що її реалізовує.

Деталізація операцій із структурами в останню чергу дозволить відкласти уточнення їх специфікацій і забезпечить можливість щодо безболісної модифікації цих структур за рахунок скорочення кількості модулів, залежних від цих даних.

Окрім цього, доцільно дотримуватися наступних рекомендацій:

• не відокремлювати операції ініціалізації і завершення від відповідної обробки, оскільки модулі ініціалізації і завершення мають погану зв’язаність (тимчасову) і сильне зчеплення (по управлінню);

• не проектувати дуже спеціалізованих або дуже універсальних модулів, так як проектування надмірно спеціальних модулів збільшує їх кількість, а проектування надмірно універсальних модулів підвищує їх складність;

• уникати дублювання дій в різних модулях, оскільки при їх зміні виправлення доведеться вносити до всіх фрагментів програми, де вони виконуються - в цьому випадку доцільно просто реалізувати ці дії в окремому модулі;

• групувати повідомлення про помилки в один модуль за типом бібліотеки ресурсів, тоді легше узгоджувати формулювання, уникнути дублювання повідомлень, а також перевести повідомлення на іншу мову.

При цьому, описуючи рішення кожної задачі, бажано використовувати не більш 1—2-х структурних керуючих конструкцій, таких, як цикл-доки або розгалуження, що дозволяє чітко уявити собі структуру обчислювального процесу.

Розробку алгоритму можна виконати, використовуючи для запису псевдокод. Псевдокод включає набори фраз для написання таких груп операторів: послідовність, вибір, ітерація, - доповнюваних текстом на звичайній мові. Псевдокод не має строгого визначення, тому Ви завжди можете сконструювати свій власний псевдокод, використовуючи, наприклад, конструкції шкільної алгоритмічної мови: якщо, поки, для, вибір, а також коментарі, формули і словесний опис дій і процесів.

У опис процесів можуть входити оператори конкретної мови програмування, організуюче введення і вивід, а також оператор привласнення, але не оператори переходу або інші засоби передачі управління, застосування яких повинне обмежуватися реалізацією трьох вказаних вище типів структур на завершальному етапі процесу проектування.

Концепцію псевдокоду найлегше з'ясувати на прикладі. Хай потрібно визначити найбільше значення в деякому наборі даних і вивести ці дані, поділені на найбільше значення. Скажімо, якщо дані є послідовністю чисел: 4., 2.51, 10, -5, 7.5.

Вивід повинен виглядати таким чином: 0.4, 0.251, 1, -0.5, 0.75.

Рівень 1:

1. ввести дані;

2. знайти максимум введених даних;

3. вивести результати.

Деталізація 1.1. Введення даних можна деталізувати на псевдокоді таким чином:

1. визначити кількість чисел;

2. поки не всі елементи введені, прочитати і запам'ятати значення елементу;

3. кінець циклу.

Деталізація 1.2. Відшукання максимуму можна деталізувати таким чином:

1. вибрати як максимум перший елемент даних;

2. пробігти всі введені значення, замінюючи поточний максимум

3. на чергове значення, якщо воно не перевищило його.

Деталізація 1.3. Виведення результатів можна деталізувати таким чином:

1. поки не всі результати виведені;

2. виведення значення чергового елементу, поділене на максимум;

3. кінець циклу.

Рівень 2. Він включає три деталізовані вище частини, з яких тільки деталізація 1.2 вимагає додаткової уваги. Її можна деталізувати на псевдокоді таким чином:

1. покласти М, рівне першому елементу даних;

2. поки не всі елементи проглянуто;

3. якщо М < поточний елемент, то M = поточний елемент;

4. кінець циклу.

Оскільки приведені вище модулі використовуються тільки по одному разу і дуже прості, то можна не робити з них підпрограми, а об'єднати їх разом в одну програму.

При рішенні реальної задачі може потрібно написати на псевдокоді багато рівнів, щоб довести всі модулі до такого стану, при якому вони виявляться готовими для програмування.

Для аналізу технологічності отриманої ієрархії модулів доцільно використовувати структурні карти Константайна, призначені для опису відносин між модулями, або Джексона, призначені для опису внутрішньої структури модулів.







Дата добавления: 2014-12-06; просмотров: 2130. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия