Главная страница Библиотека (скачать книги) Скачать софт Введение в программирование Стандарты для C++ Уроки по C# Уроки по Python HTML Веб-дизайн Ассемблер в среде Windows ActiveX Javascript Общее о Линукс Линукс - подробно Линукс - новое Delphi Паскаль для начинающих Турбопаскаль Новости Партнеры Наши предложения Архив новостей |
Стили разработки проекта В силу того, что процесс разработки проекта очень сложен и разносторонен, сформулировано, обосновано и применяется на практике большое количество различных стилей (методов, подходов, парадигм, дисциплин), регламентирующих процесс разработки программ. Следование определенному стилю разработки особенно важно при коллективной работе над большими программными проектами. Однако при разработке даже небольших проектов соблюдение определенного стиля разработки позволяет существенно экономить время их создания, делает программы более качественными.
Широкое применение получили такие стили разработки программ, как модульный, структурный, надежный, причем они применяются, как правило, в совокупности, дополняя друг друга. Другим важным понятием разработки программных проектов является понятие "технологии разработки". Каждая технология базируется на некотором стиле, является его конкретным воплощением, использует определенные программные инструменты и ориентирована на создание программных средств определенного вида. Технология разработки проекта включает в себя:
Методики разработки проектов в одном и том же программном окружении могут быть различны - в зависимости от назначения разрабатываемого программного средства, класса задач, круга пользователей, их уровня знаний и других факторов. Предлагаемый учебный материал имеет целью изложение одной из таких методик, ориентированной на практическое обучение основам пользовательского программирования в среде программирования Турбо Паскаль для класса комбинаторных и типовых математических задач. Рассмотрим далее основные принципы и положения технологии разработки пользовательского проекта, которая поддерживает стили модульного, структурного и надежного программирования.
Модульное программирование Суть модульного программирования состоит в разбиении сложной задачи на некоторое число более простых подзадач и составлении программ для их решения достаточно независимо друг от друга. Модульность является одним из основных принципов построения программных проектов. В общем случае модуль - отдельная функционально законченная программная единица, некоторым образом идентифицируемая и объединяемая с другими, средство определения логически связанной совокупности объектов, средство их выделения и изоляции. Модуль является средством декомпозиции не только структур управления, но и структур данных. Этому в значительной мере способствовало развитие понятия "тип данных". Модуль является единицей компиляции, хранения, а также единицей проектирования и раздельной разработки программного проекта коллективом разработчиков. Таким образом, модуль понимается как средство определения логически связанной совокупности объектов, средство их выделения и изоляции.
Создание модулей и использование их объектов в программах является одним из приемов экономичного программирования что обусловливается следующими обстоятельствами. Так, например, в стандартном модуле Graph системы Турбо Паскаль определено несколько десятков графических функций и процедур, реализующих элементарные графические операции, и несколько десятков констант, обозначающих коды ошибок, цвет и вид линий и т.п. Во-вторых, и модули, и использующие их программы компилируются независимо (модуль должен быть откомпилирован раньше использующей его программы). Благодаря этому время компиляции большой программы использующей готовые модули, существенно сокращается, что важно при отладке программ, когда приходится их компилировать многократно. Третьим важным свойством модуля является то, что он скрывает, "инкапсулирует" представление и реализацию экспортируемых им объектов, так что их возможные изменения в модуле (при его настройке или адаптации к новым аппаратным возможностям) не требуют никаких переделок пользовательских программ. Все модули используют мнемонические имена для определяемых ими объектов (констант, переменных, типов и подпрограмм), что облегчает понимание их назначения и запоминание, удовлетворяет требованию наглядности текста программ.
Языки программирования, поддерживающие модульный подход, описывают модуль как программную единицу, состоящую из двух основных частей - спецификации (интерфейса) и реализации. В спецификации приводятся такие характеристики объектов модуля, которые необходимы и достаточны для использования этих объектов в других модулях и программах. Это позволяет использовать объекты модулей только на основе информации об их интерфейсе (не ожидая их полного описания). В реализационной части модуля описывается представление и алгоритмы обработки, связанные с теми или иными объектами модуля.
Модуль является одним из средств, облегчающих верификацию программ. Верификация программы - доказательство ее правильности путем проверки формальными методами некоторых ее свойств. Модуль, как средство создания абстракции, выделяет спецификацию и локализует сведения о реализации. Верификация программ складывается из двух этапов:
Модули служат также целям создания проблемно-ориентированного
Структурное программирование Стиль структурного программирования регламентирует выполнение этапов проектирования, кодирования и тестирования программ. В структурном программировании важны форма представления программы и дисциплина ее разработки. Оно нацелено на повышение продуктивности программирования за счет повышения надежности программ.
Структурный стиль особенно актуален при разработке крупных программных проектов большими коллективами разработчиков. Здесь мы лишь те его черты, которые остаются актуальными даже при разработке небольших пользовательских программ. Первое из них означает, что весь процесс разработки разбит на шаги, выполняемые последовательно. Восходящий метод подразумевает разработку программы снизу вверх:
Вторым важнейшим принципом структурного программирования является структурное кодирование (на языке программирования). Оно имеет два аспекта:
|
||
Библиотека программиста. 2009. |
|