- •Общая характеристика технологии программных средств.
- •Принципиальная схема разработки программных средств. (Технология, процесс создания).
- •Способы описания алгоритмов.
- •Описание алгоритма с помощью таблиц решения.
- •Технология системного проектирования программных средств. Принципиальная схема разработки.
- •Современные методы и средства разработки прикладных программных средств.
- •Характеристики качества программного обеспечения.
- •Языки программирования.
- •Надёжность программного обеспечения.
- •Показатели надёжности.
- •Факторы, определяющие надёжность по.
- •Стандартизация. Дисциплина и творчество программирования.
- •Виды программ и программных документов.
- •Виды программных документов.
- •Эксплуатационные документы.
- •Классификация документов.
- •Работы, выполняемые на стадии «Эскизный проект».
- •Структурное программирование.
- •Терминология и обозначения.
- •Очевидно, что g и h являются простыми программами, иначе f была бы не простой.
- •Число управляющих линий в блоке h удовлетворяет соотношению:
- •Графическая иерархическая документация (гид).
- •Простейшие пути повышения качества программ.
- •Классификация ошибок.
- •Сквозной структурный контроль.
- •Стиль программирования и качества программ.
- •Case – технологии.
- •Моделирование данных.
- •Что дает применение case-средств?
- •Средства реализации case-технологий.
- •Общая характеристика case-средства
- •Особенности рабочего интерфейса
- •Начало работы с проектом в среде
- •Разработка диаграммы вариантов использования в среде Rational Rose.
- •Разработка диаграммы классов в среде
- •Диаграмма классов
- •Разработка диаграммы состояний в среде Rational Rose.
- •Разработка диаграммы последовательности в среде Rational Rose.
- •Разработка диаграммы кооперации в среде Rational Rose.
- •Разработка диаграммы компонентов в среде Rational Rose.
- •Разработка диаграммы развёртывания в среде Rational Rose.
- •Практические примеры диаграмм.
- •Актеры.
- •Диаграмма классов (основы)
- •Ассоциации
- •Заказ от одного клиента
- •Полезные советы по использованию диаграмм классов
- •Диаграмма взаимодействия
- •Диаграмма кооперации
- •Диаграмма кооперации
- •Диаграмма пакетов
- •Диаграмма состояний
- •Верификация программ.
- •Восходящее тестирование, нисходящее тестирование.
- •Методы тестирования компонентов.
- •Структура коллектива программистов.
- •Общая структура коллектива, работающего над крупным проектом.
- •Трудовые затраты по видам работ (человеко/месяц).
Технология системного проектирования программных средств. Принципиальная схема разработки.
Описание требований к системе и её отдельным компонентам.
Математическое описание.
Детальная спецификация на программные модули.
Логическое проектирование компонентов системы.
Кодирование и автономная отладка программы.
Комплексная отладка системы.
Приемо-сдаточные испытания. Опытная эксплуатация, промышленная эксплуатация.
Системный аналитик, исходя из общих целей назначения, технических характеристик, состава и описания требований пользователя к системе формирует общие формальные требования ПО системы.
Специалист системо-техник преобразует общие формальные требования в детальные спецификации на отдельные программы. Участвует в логическом проектирование компонентов системы, определяет общую структуру.
Прикладной программист преобразует спецификацию в логическую структуру программных модулей, а затем в программный код.
Системный программист обеспечивает сопряжение программных модулей с программной средой, в рамках которой предстоит функционировать программным средствам.
Современные методы и средства разработки прикладных программных средств.
На протяжении всей истории программирования решалась проблема определения методов и способов, разработку и последующее сопровождение программ, сокращающих количество ошибок при создании и модификации программ. Опыт разработки больших и сложных программных комплексов показал, что рациональный подход к решению этой проблемы опирается на метод, получивший разное название (метод нисходящего проектирования), заключающийся в определении спецификаций компонентов системы путём последовательного выделения в её составе отдельных слагаемых и их детализации до уровня, обеспечивающего однозначное понимание того, что и как необходимо разрабатывать и реализовывать.
Этот метод является незаменимым при проектировании сложных по характеру и больших по объёму программ когда к их разработке привлекается большое количество программистов, работающих параллельно. Для ускорения разработки программного комплекса часто вместо некоторых программ нижнего уровня, находящихся в процессе разработки, применяются специальные программы заглушки.
Суть их заключается в том, что при обращении к ним в соответствии с заданным набором исходных тестовых данных она не формирует, а выбирает результат решения из заранее подготовленного набора.
Реализация метода нисходящего проектирования тесно связана с другим понятием программирования модульным проектированием.
Модуль – последовательность логически взаимосвязанных фрагментов, оформленных как отдельная часть программы. При этом они должны обладать следующими свойствами:
На модуль можно ссылаться, т.е. обращаться к нему по имени, в том числе из других модулей.
По завершению работы модуль должен возвращение тому модулю, который его вызывал.
Модуль должен иметь один вход и выход.
Модуль должен иметь небольшой размер, обеспечивающий его обозримость.
Модульный принцип обладает следующими преимуществами:
Большую программу могут разрабатывать одновременно несколько исполнителей, – это позволяет сократить сроки её разработки.
Появилась возможность создавать и многократно использовать в дальнейшем библиотеки наиболее употребляемых программ.
Упрощается процедура загрузки больших программ в оперативную память, когда требуется её сегментация.
Возникает много контрольных точек для наблюдения за осуществлением хода разработки программ, а в последнее время для контроля за ходом использования программ.
Обеспечивается более эффективное тестирование программ, проще осуществляется проектирование и последующая отладка.
Актуальная для начала периода развития и использования ЭВМ проблема разработки программ, занимающих минимум основной памяти и выполняющихся за кротчайшее время, в последующем в связи с резки падением стоимости аппаратной части ЭВМ, с увеличением их быстродействия и объёмов памяти сменилось необходимостью разработки и применения принципиально новых индустриальных методов составления программ. Это нашло своё воплощение в разработке принципа структурного программирования на новом уровне.
Одной из целей структурного программирования было стремление разработку и отладку программных модулей, и главное, их последующее сопровождение и модификацию.
В настоящее время структурное программирование – это целая дисциплина, объединяющая несколько взаимосвязанных способов создания ясных, лёгких для понимания программ. Другое направления совершенствования процесса разработки программ – развитие программно-инструментальных средств программирования (СУБД, Excel).
За последние десятилетия в области средств автоматизации программирования сформировалось новое направление под общим названием Case-технология. Базируясь на классических методах разработки ПО Case-технология представляет собой совокупность средств системного анализа проектирования, разработки и сопровождения сложных программных систем, поддерживаемых комплексом взаимоувязанных инструментальных средств автоматизации всех этапов разработки программ.
Благодаря структурным методам на стадиях анализа и проектирования Case-технология обеспечивает разработчиков широкими возможностями для различного рода моделирования, а централизованное хранение всей необходимой для проектирования информации и контроль за целостностью данных гарантирует согласованность взаимодействия всех специалистов, занятых в разработке ПО.