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

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

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






Структурний підхід до програмування в тому вигляді, в якому він був сформульований в 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; просмотров: 2086. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

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

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

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