Студопедия

КАТЕГОРИИ:

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

Развитие методологии анализа и проектирования ПО




Процедурно-ориентированная методология - это подход к разработке программных систем, при котором система рассматривается как совокупность данных и обрабатывающих их алгоритмов (процедур). При проектировании систем широко использовалось представление алгоритмов в виде блок-схем.

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

Развитием этой методологии стала структурно-модульная методология, ориентированная на разработку сложных систем.

Блок-схемы- это представление алгоритма при помощи представленных здесь (Рисунок 3.1) и других аналогичных значков.

 

начало/конец процесса   линия процесса  
действие   ввод/вывод  
условие   соединение линий процесса    

Рисунок 3.1. Основные значки блок-схем.

Рассмотрим пример применения блок-схем (Рисунок 3.2) при проектировании алгоритма нахождения наименьшего общего делителя двух целых положительных чисел M и N. Согласно методу, предложенному древнегреческим математиком Евклидом, следует на каждом шаге большее из двух чисел заменять их разностью, а шаги эти циклически повторять до тех пор, пока оба числа не станут равными. Полученное число и есть наименьший общий делитель для исходной пары чисел.

Например, для пары чисел M=42 и N=24 имел бы место следующий пошаговый процесс:

 

Рисунок 3.2. Пример блок-схемы алгоритма

Шаг 1: для M=42 и N=24 берем новое M=42-24=18.

Шаг 2: для M=18 и N=24 берем новое N=24-18=6.

Шаг 3: для M=18 и N=6 берем новое M=18-6=12.

Шаг 4: для M=12 и N=6 берем новое M=12-6=6.

Процесс заканчивается при M=N=6, это и есть наименьший общий делитель для 42 и 24.

Структурно-модульная методология- это подход к разработке сложных программных систем, при котором разработка структур данных и обрабатывающих их алгоритмов подчиняется определенным принципам:

1. принцип разработки сверху вниз - разработка последовательно ведется путем постепенного возрастания степени детализации при переходе от более высокого уровня абстракции к более низкому, находясь на данном уровне абстракции разработчик должен удерживать себя от излишней детализации;

2. принцип модульности - сложная система должна состоять из небольшого числа (не более 10) частей - модулей, эти модули должны быть максимально независимы друг от друга, за счет этого максимально упрощаются внешние связи между модулями (вся "сложность" системы постепенно представляется внутримодульными связями, так как каждый модуль в свою очередь может состоять из некоторого числа внутренних модулей и т. д.), в результате разработка различных модулей может выполняться различными людьми, а стыковка модулей упрощается.

 

   

M

   
           
 

 

 

 

A

B

C

           

Рисунок 3.3. Алгоритмическая декомпозиция (уров. абстракции 1).

Необходимость разработки все более и более сложных систем постепенно привела к несостоятельности и эту методологию. Развитием структурно-модульной методологии стала объектно-ориентированная методология (см. "Объектно-ориентированный анализ").

Рассмотрим пример применения структурно-модульной методологии. Ее сущность состоит в алгоритмической декомпозиции (разложении на составляющие подпрограммы) алгоритма функционирования будущей системы. Декомпозиция происходит при движении по уровням абстракции с постепенным уточнением алгоритма функционирования каждого выявленного компонента. Для того, чтобы процесс проектирования был надежным, на каждом уровне абстракции в одной схеме не рекомендуется иметь более 10 компонентов.

 

   

A

   
           
 

 

 

 

A1

A2

A3

           

 

   

B

   
           
 

 

 

 

B1

B2

B3

           

 

   

C

   
           
 

 

 

 

C1

C2

C3

           

Рисунок 3.4. Алгоритмическая декомпозиция (уров. абстракции 2).

Пусть уровень абстракции 1 содержит единственную схему (Рисунок 3.3): Главный алгоритм M вызывает подпрограммы A, B, C. Следовательно, единственная схема на данном уровне абстракции содержит 4 компонента.

Пусть уровень абстракции 2 содержит три указанные ниже схемы (Рисунок 3.4):

Алгоритм A вызывает подпрограммы A1, A2, A3.

Алгоритм B вызывает подпрограммы B1, B2, B3.

Алгоритм C вызывает подпрограммы C1, C2, C3.

Далее рассматриваются уровни абстракции 3, 4, … Каждый алгоритм из вышеуказанного примера должен быть представлен в виде блок-схем.










Последнее изменение этой страницы: 2018-04-12; просмотров: 416.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...