Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
1. Модульное программирование – процесс разбиения программы на отдельные программные модули (базовые классы, процедуры, функции, ActiveX – элементы, COM/DCOM–компоненты и др.).
Свойства модуля: возникает в результате отдельной компиляции; вызывается по имени; возвращает управление тому, кто его вызывал; может обращаться к другим модулям, непосредственно нижестоящим в схеме иерархии; должен быть небольшого размера; должен иметь один вход и один выход; не должен сохранять историю вызовов для управления своим функционированием; обладает единственной функцией; должен быть независимым от других модулей; должен содержать тесно связанные элементы; должен проверять аргументы; при возникновении в модуле ошибок управление должно возвращаться обратно; должен быть замкнутым.
2. Проектирование и кодирование (программирование) сверху вниз. Если проект большой, то он разбивается на части, представляющие собой древовидную структуру (схема иерархии). Сначала задача описывается на естественном языке, в дальнейшем проект постепенно уточняется, и на каждом шаге выявляются детальные функции. Таким образом, задача разбивается на подзадачи до тех пор, пока они не станут настолько простыми, что каждой из них будет соответствовать один программный модуль.
Достоинства: хорошая комплексная отладка; заказчик участвует в проектировании; промежуточные результаты можно показать заказчику. Недостатки: слабая автономная отладка модулей; наличие программ–заглушек, которые имитируют работу несуществующих программ нижнего уровня.
Обычно для больших проектов применяется метод «сэндвича». Для одних частей используется метод нисходящего, а для других – метод восходящего проектирования.
3. Защитное программирование - стиль написания программ, при котором появляющиеся ошибки легко обнаруживаются и идентифицируются программистом. Средства защитного программирования: все входные данные или действия пользователя подлежат обязательной проверке (принцип «всеобщего недоверия»); немедленное обнаружение ошибок; изолирование и минимизация последствий ошибок. Для предотвращения ошибок в программе рекомендуется не применять непроверенные способы программирования. Не рекомендуется: использовать принцип умолчания значений (когда при отсутствии параметра программа принимает его определенное значение), так как они могут изменяться в новых версиях; допускать зависимости программ от недостоверности данных; Необходимо: минимизировать число обращений к пользователю.
Тестирование – процесс обнаружения ошибок программы. Тестовые примеры разрабатываются постановщиком на этапе разработки алгоритма (обычно готовится целая серия тестов). Рекомендуется проводить тестирование сверху вниз. Первый тест должен быть простым, так как он показывает работу программы вообще. Следующие тесты, предназначенные для проверки общей организации программы, обеспечивают обнаружение грубых ошибок. Необходимо повторно тестировать исправленный код, а также вести журнал обнаруженных ошибок и изменений программы.
Этапы тестирования:
· Проверка в нормальных условиях для характерной совокупности допустимых значений.
· Проверка в экстремальных условиях в приграничных областях допустимых значений (граничные допустимые значения, нулевые данные, пустые циклы, массивы, файлы).
· Проверка в исключительных ситуациях в областях недопустимых значений.
4. Наглядность исходных текстов программ - Стиль программирования, который позволяет получать удобные для применения и легко читаемые программы.
Рекомендации. Вводный комментарий объясняет назначение и условия применения. Пояснительные комментарии сопровождают те части программы, которые трудно понять. Дополнительные пробелы указываются повсюду, где это приводит к улучшению читабельности программы. Переменные следует явно объявлять и комментировать. Имена должны отображать смысл содержания. Допускается префиксная нотация (перед именем объекта), которая отражает тип объекта (cmdVixod – имя командной кнопки «Выход»). Составные имена следует писать через знак подчеркивания или начинать с прописных букв. Используйте общепринятые имена, которые описывают действия.
В сокращения наименований полей, переменных и других программных объектов всегда должны входить начальные буквы. Согласные важнее гласных. Начало слова важнее его конца. Списки имен в командах объявления упорядочиваются по алфавиту. Используйте общепринятые сокращения. При записи операторов и для указания связи между ними делаются одинаковые отступы от начала строки в размере трех позиций, т.е. отступами выделяются структуры вложенности отдельных фрагментов программы.
5. Гибкость и эффективность программ. Выносите изменяемые константы, адреса и имена файлов, баз данных в отдельные файлы настройки. Оптимизируйте программу после ее отладки. Используйте именованные константы вместо обычных. Минимизируйте применение глобальных переменных, вложенных структур и команд перехода Goto. Ограничивайте действия над параметрами подпрограмм (например, для Visual Basic – ByVal, ByRef; для Pascal – Optional, Var, Out, Const). Рекомендации: тексты программ должны быть легко читаемыми и понятными. Используйте вводные комментарии. Располагайте комментарии в программе таким образом, чтобы это не делало ее менее наглядной. Одного оператора в строке достаточно. Для выделения структуры используйте отступы (начало и конец структуры сдвинуты на три позиции влево относительно тела структуры). Фиксируйте соответствие букв кириллицы и латинского алфавита (например, Щ (H), И (I), B (V)). Стремитесь к простоте и универсальности (например, программа имеет средства настройки на форматы и значения данных). Унифицируйте форматы ввода и вывода информации. Обеспечивайте максимально удобный интерфейс пользователю. Интересуйтесь, как эксплуатируется программа (поработайте со своей программой в качестве пользователя). Устанавливайте более скромные цели (работающие программы гораздо полезнее и важнее незаконченных громадных проектов). Общая схема упрощения – разбиение программы на модули и оформление каждого из них в виде процедуры, функции, класса, ActiveX–элемента, компонента. Рекомендуется заменять циклы или вложенные конструкции на функции.
Сущность структурного подхода к проектированию программных и информационных систем, основные понятия, принципы и модели.
Сущность структурного подхода к проектированию ИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции (бизнес–процессы): система разбивается на функциональные подсистемы, которые, в свою очередь, делятся на подфункции, а они – на задачи, и так до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы «снизу вверх» от отдельных задач ко всей системе целостность теряется, возникают проблемы при информационной стыковке отдельных компонентов.
Базовыми принципами структурного подхода являются:
· принцип «разделяй и властвуй» – принцип решения сложных проблем путем их разбиения на множество меньших независимых задач, легких для понимания и решения;
· принцип иерархического упорядочения – принцип организации составных частей проблемы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне;
· принцип абстрагирования – выделение существенных аспектов системы и отвлечение от несущественных;
· принцип формализации – необходимость строгого методического подхода к решению проблемы;
· принцип непротиворечивости – обоснованность и согласованность элементов;
· принцип структурирования данных, т.е. данные должны быть структурированы и иерархически организованы.
В структурном анализе используются в основном две группы средств, иллюстрирующих функции, выполняемые системой, и отношения между данными. Каждой группе средств соответствуют определенные виды моделей (диаграмм), наиболее распространенными, среди которых являются:
1) DFD (Data Flow Diagrams) – диаграммы потоков данных (процессов);
В основе данной методологии лежит построение модели анализируемой ИС – проектируемой или реально существующей. В соответствии с методологией модель системы определяется как иерархия диаграмм потоков данных, описывающих асинхронный процесс преобразования информации от ее ввода в систему до выдачи пользователю. Используются для описания документооборота и обработки информации: функции обработки информации (работы), документы, потоки данных (стрелки), внешние ссылки на объекты вне границ модели (External References), хранилища данных (Data Store). Работы в этой модели не поддерживают управление и механизмы. Стрелки могут входить и выходить из любых сторон прямоугольника работы и быть двунаправленными для описания диалогов типа «команда–ответ».
2) SADT (Structured Analysis and Design Technique) – модели и соответствующие функциональные диаграммы;
Методология SADT (IDEF0) представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта предметной области. Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия (бизнес–процессы) и связи между ними. Моделирование начинается с определения контекста – описания системы в целом (субъекта, целей и точки зрения на модель), т.е. области моделирования (Scope). Под широтой области моделирования понимается граница: что будет рассматриваться внутри системы, а что снаружи. Глубина модели определяет уровень детализации модели.
3) ERD (Entity–Relationship Diagrams) – диаграммы «сущность–связь».
Сущность (Entity) – реальный либо воображаемый объект, имеющий существенное значение для рассматриваемой предметной области. Каждая сущность должна обладать уникальным идентификатором. Каждый экземпляр сущности должен однозначно идентифицироваться и отличаться от всех других экземпляров данного типа сущности.
Каждая сущность должна обладать некоторыми свойствами:
§ иметь уникальное имя (к одному и тому же имени должна всегда применяться одна и та же интерпретация; одна и та же интерпретация не может применяться к различным именам, если только они не являются псевдонимами);
§ обладать одним или несколькими атрибутами, которые либо принадлежат сущности, либо наследуются через связь;
§ обладать одним или несколькими атрибутами, которые однозначно идентифицируют каждый экземпляр сущности;
§ может обладать любым количеством связей с другими сущностями модели.
Связь (Relationship) – поименованная ассоциация между сущностями, при которой каждый экземпляр одной сущности ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности, и наоборот.
Атрибут – любая характеристика сущности, значимая для рассматриваемой предметной области и предназначенная для квалификации, идентификации, классификации, количественной характеристики или выражения состояния сущности, представляет собой тип характеристик или свойств, ассоциированных с множеством реальных или абстрактных объектов (людей, мест, событий, состояний, идей, предметов и т.д.).
Экземпляр атрибута – это определенная характеристика отдельного элемента множества, определяется типом характеристики и ее значением, называемым «значение атрибута». В ER–модели атрибуты ассоциируются с конкретными сущностями. Таким образом, экземпляр сущности должен обладать единственным определенным значением для ассоциированного атрибута.
Дата публикования: 2014-12-11; Прочитано: 1717 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!