Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Эволюция структурных методовСодержание книги
Поиск на нашем сайте
В начале 70-х годов в связи с разработкой сложных программных систем наиболее известные специалисты-практики в области программотехники пришли к выводу о необходимости установления строгого и формального порядка в разработке программ. Уже в 1972 г. Дейкстра утверждал, что "программы должны с самого начала правильно составляться, а не просто отлаживаться до тех пор, пока они не станут правильными", Ситуация, получившая название кризиса в программировании, была обусловлена тем, что стало трудно проектировать, писать, тестировать и особенно понимать и сопровождать сложные программные комплексы. Для преодоления возникших осложнений необходимо было создать технологию разработки программ. В результате работ Вирта, Дейкстры, Иодана, Хоара и др. в 70-е годы постепенно сложилась методология, получившая название структурного программирования. Это понятие впервые ввел Дейкстра в 1970 г., и вначале оно касалось только формы программы и процесса ее кодирования. Был принят ряд соглашений, регламентировавших создание структурных программ: 1. Полное или частичное исключение операторов GO TO. 2. Программирование только с использованием трех базовых структур: последовательности, выбора и цикла. 3. Применение соглашений структурного кодирования при написании программ на конкретном языке программирования. Согласно этим правилам, любая программа может быть реализована в языке, имеющем только две управляющих конструкции, а для построения программ достаточно трех блоков: функционального, цикла и принятия решения. Каждый блок при этом имеет один вход и один выход. Функциональный блок может представлять собой либо отдельный оператор, либо последовательность вычислений с единственным входом и единственным выходом. Структурная теорема, сформулированная Бомом-Джакопини, гласит, что всякая программа, составленная из таких блоков, поддается последовательному преобразованию к единственному функциональному блоку. Эта последовательность преобразований может быть использована для организации процесса проектирования программы и для доказательства ее правильности. Обратная последовательность преобразований применима для процесса нисходящего проектирования программ, начиная с единственного функционального блока, отражающего общее содержание решаемой задачи, который затем последовательно раскрывается в сложную многоуровневую иерархическую структуру более мелких функциональных блоков. С идеей вложенности блоков связано понятие модульной программы. Программа, построенная путем применения указанной последовательности преобразований, является модульной в самом строгом смысле этого слова. Структурная теорема и работы, появившиеся в данной области в 70—80-е годы, расширили понимание структурного подхода. Если рассмотреть развитие структурных методов в программотехнике, то можно выделить несколько этапов. Вначале основное внимание уделялось проблемам программирования и повышению производительности труда программистов при разработке программ. Структурные методы на этом этапе позволили делать программы более понятными и более удобными для последующих модификаций. Ключевыми моментами здесь были идеи модульного программирования. Модульное программирование — это организация программы в виде совокупности небольших независимых блоков, называемых модулями, структура которых и взаимосвязи между ними определяются некоторой совокупностью правил. Стандартизация формы модульной программы, унификация самих модулей позволили систематизировать процесс разработки программ и повысить их качество. Однако вскоре стало очевидным, что при создании сложных программных изделий гораздо большую опасность представляют не программные ошибки, а ошибки, допущенные при проектировании. Если на первом этапе структурные методы применялись к уровню операторов программы, то на втором они стали применяться для стандартизации общей архитектуры программного изделия. Появились работы Джексона, Йодана, Уорнье, Орра и др., посвященные структурным методам проектирования программных изделий на основе потоков данных и структур данных. В конце 70-х годов было установлено, что большинство проблем при разработке программного обеспечения возникают из-за неточных и неполных исходных требований заказчика, а также из-за неправильного их понимания программистом-разработчиком. Для решения этих проблем была предложена структурная методология анализа потоков данных в создаваемой автоматизированной системе, на основе которой удалось более точно и полно описывать требования к программному изделию и более строго и формализовано описывать требования пользователя. Было разработано несколько подходов к анализу, наиболее известный из них представлен в работах Гейна и Сарсона. Одновременно начали развиваться структурные методы, связанные с использованием технологии баз данных, пришедшей на смену файловой технологии обработки данных. Структурные методы легли в основу моделирования структур баз данных; многие идеи были заложены в работах Кодда по нормализации реляционных баз данных. Начало 80-х годов ознаменовалось переходом к автоматизированным методам проектирования программ и появлением языков программирования непроцедурного типа (четвертого поколения). В конце 80-х годов появилось новое направление в информатике, получившее название CASE-технологии, т.е. автоматизированное проектирование систем. Постепенно отдельные разработки, обеспечивающие автоматизацию отдельных процессов в создании программного обеспечения, объединились в интегральную среду поддержки работы программиста. Широкое распространение персональных компьютеров позволило создать автоматизированное рабочее место программиста, оснащенное разнообразными CASE-средствами, предназначенными для реализации различных структурных методов. Одновременно с развитием структурной методологии изменялось содержание понятия структурное программирование. Если на начальных этапах оно рассматривалось как структурное кодирование, то в настоящее время структурное программирование — это методология, которая обеспечивает структуру и дисциплину (в процессе разработки программы, в форме программы, в процессах кодирования и тестирования программы), это методология программирования для создания иерархически упорядоченных модульных программ, использующих стандартные управляющие конструкции. Структурное кодирование есть конструирование программ в соответствии с совокупностью правил, требующих строгого стиля написания программы, использования стандартных управляющих структур и ограниченного набора логических конструкций. Структурные методы — совокупность методов и средств, нацеленных на построение высококачественных и дешевых программных изделий. Они включают методологии структурного анализа, проектирования, кодирования и тестирования, методы управления проектированием программных изделий и их документирования.
|
||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 156; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.45.223 (0.007 с.) |