- •Сущность и актуальность дисциплины «Технологии программирования», основные понятия и определения дисциплины.
- •Жизненный цикл программного средства.
- •Модели жизненного цикла по.
- •Модель с промежуточным контролем
- •Спиральная модель
- •Спиральная или итерационная схема разработки программного обеспечения
- •Изменение жизненного цикла программного обеспечения при использовании case-технологий.
- •Качество программного обеспечения.
- •Модели качества по
- •Метрики качества программного обеспечения.
- •Измерение и оценка качества по, стандартный метод оценки значений показателей качества.
- •Управление качеством пс.
- •Требования стандарта к организации системы качества
- •Диалоговые программы, типы диалога, формы диалога.
- •Спецификация пс.
- •Определение требований к программному средству.
- •Спецификация качества программного средства.
- •Функциональная спецификация программного средства.
- •Методы контроля внешнего описания программного средства.
- •Способы записи алгоритмов.
- •Представление основных структур алгоритмов.
- •Псевдокоды.
- •Flow-формы.
- •Диаграммы Насси-Шнейдермана.
- •Классификация структур данных.
- •Файловые структуры, физическая организация файлов.
- •Логическая организация файлов.
- •Документирование файлов.
- •Модульные программы, модули и их свойства.
- •Сцепление и связность модулей.
- •Нисходящая и восходящая разработка программного обеспечения.
- •Программирование «с защитой от ошибок».
- •Основные подходы программирования, «стихийное» программирование.
- •Основные подходы программирования, структурный подход к программированию.
- •Основные подходы программирования, объектный подход к программированию.
- •Основные подходы программирования, компонентный подход и case-технологии.
- •36. Процедурное (императивное) программирование
- •37.Функциональное программирование.
- •38. Декларативное программирование
- •39. Объектно-ориентированное программирование
- •40.Объектно-ориентированные языки программирования.
- •41. Спецификация программного обеспечения при структурном подходе.
- •42.Диаграммы переходов состояний.
- •43. Функциональные диаграммы
- •44. Диаграмма потоков данных
- •45. Моделирование управляющих процессов с помощью диаграмм потоков данных
- •46. Структуры данных и диаграммы отношений компонентов данных
- •47. Диаграммы Джексона.
- •48. Скобочные диаграммы Орра
- •49. Сетевая модель данных
- •50. Проектирование программного обеспечения при структурном подходе
- •54. Метод пошаговой детализации для проектирования структуры по
- •55. Структурные карты Констайна.
- •56. Проектирование структур данных
- •57. Представление данных в оперативной памят
- •60. Проектирование программного обеспечения, основанное на декомпозиции данных Методикой Варнье-Орра
- •61. Case-технологии, основанные на структурных методологиях анализа и проектирования
- •63. Определение «вариантов использования»
- •64. Диаграммы вариантов использования
- •65. Построение концептуальной модели предметной области
- •69. Проектирование программного обеспечения при объектном подходе
- •70. Разработка структуры программного обеспечения при объектном подходе
- •Определение отношений между объектами.
- •Диаграммы последовательностей этапа проектирования.
- •Диаграммы кооперации.
- •Уточнение отношений классов.
- •Интерфейсы в uml.
- •Проектирование классов.
- •Проектирование методов класса.
- •Компоновка программных компонентов.
- •Проектирование размещения программных компонентов для распределенных программных систем.
- •Методы доказательства правильности программ.
- •Метод индуктивных утверждений Флойда.
- •Метод Хора доказательства правильности программ.
- •Виды контроля качества разрабатываемого программного обеспечения.
- •Формирование тестовых наборов, основные подходы.
- •Ручной контроль программного обеспечения, методы ручного контроля.
- •I. Контроль обращений к данным
- •2. Контроль вычислений
- •3. Контроль передачи управления
- •4. Контроль межмодульных интерфейсов
- •Структурное тестирование, критерии формирования тестовых наборов.
- •Функциональное тестирование, методы формирования тестовых наборов.
- •Тестирование модулей и комплексное тестирование.
- •Оценочное тестирование.
- •Отладка программного обеспечения.
- •Классификация ошибок программного обеспечения.
- •Методы отладки программного обеспечения.
- •Методы и средства получения дополнительной информации об ошибках.
- •Общая методика отладки программного обеспечения.
- •Документирование и стандартизация.
- •Виды программных документов.
- •Основные правила оформления программной документации.
- •Основные инженерные подходы к созданию программ.
- •Классификация технологических подходов к созданию программ.
- •Классификация технологических подходов к созданию программ, подходы со слабой формализацией.
- •Классификация технологических подходов к созданию программ, строгие каскадные подходы.
- •Классификация технологических подходов к созданию программ, строгие каркасные подходы.
- •Классификация технологических подходов к созданию программ, генетические подходы.
- •Классификация технологических подходов к созданию программ, подходы на основе формальных преобразований.
- •Классификация технологических подходов к созданию программ, ранние подходы быстрой разработки.
- •Классификация технологических подходов к созданию программ, адаптивные технологические подходы.
- •Классификация технологических подходов к созданию программ, подходы исследовательского программирования.
- •Особенности и компоненты case-средств.
- •Объектно-ориентированные case-средства анализа и проектирования.
- •Структурные case-средства анализа и проектирования.
- •Case-средства компании ibm Rational Software, средство визуального моделирования Rational Rose.
- •Системы автоматизированного проектирования и их место среди других автоматизированных систем.
- •Структура сапр.
- •Разновидности сапр.
- •Понятие о cals-технологиях.
Объектно-ориентированные case-средства анализа и проектирования.
Мировым лидером средств анализа и проектирования объектно-ориентированных систем является продукт Rational Rose фирмы IBM Rational Software (США). Это CASE-средство предназначено для автоматизации этапов анализа и проектирования.
Работа в Rational Rose заключается в проектировании определённого вида диаграмм, задавая при этом все свойства, отношения и взаимодействие элементов модели друг с другом.
При разработке любой системы возникает проблема взаимопонимания исполнителя и заказчика. Имея такой инструмент, как Rose, аналитик всегда может показать заказчику не абстрактное словесное описание процесса, а его конкретную модель (на экране персонального компьютера или в печатном виде – неважно). Значит, Rose позволит быстрее согласовать с заказчиком все детали планируемой системы. Результатом моделирования является файл с моделью, которую аналитик передаёт следующему звену сотрудников – программистам, которые дополняют полученную логическую модель системы моделями конкретных классов для конкретного языка программирования.
Для моделирования объектно-ориентированное средство Rose использует:
Унифицированный язык моделирования (Unified Modeling Language – UML).
Объектную модель программных компонентов (Component Object Model – COM).
Технику объектного моделирования (Object Modeling Technique – OMT).
Метод визуального моделирования Г. Буча' 93 (Booch'93).
Богатый набор возможностей Rose предоставляет разработчикам:
Проектирование систем с кодогенерацией. Позволяет модель преобразовать в описание на конкретном языке программирования. Поддерживаются языки: С++, Ada, Java, Basic, XML (eXtensible Markup Language), Oracle. Также к Rose сторонними компаниями разрабатываются специальные мосты к не входящим в стандартную поставку языкам, например, к Delphi.
Обратное проектирование (реинжиниринг), когда готовую систему (например, на C++) или базу данных (на Oracle) “закачивают” в Rose с целью получения наглядной визуальной (структурной) модели.
Возвратное проектирование (Round-trip engineering), которое сочетает возможности первых двух подходов, когда создаётся система, а по прохождении некоторого времени эволюционного периода (доработок) подвергается вновь реинжинирингу и вновь кодогенерации.
В данное время Rational Rose поставляется в следующих редакциях:
Rose DataModeler – позволяет проектировать системы и базы данных без возможности кодогенерации. Продукт направлен на архитекторов и аналитиков.
Rose RealTime – узкоспециализированная версия для систем реального времени, способная проводить 100% кодогенерацию и реинжиниринг только для языков С и C++. Имеет неполный набор диаграмм. Продукт направлен только на программистов.
Rose Enterprise – наиболее полная версия, включает в себя все вышеописанные возможности. Продукт направлен на архитекторов, аналитиков, программистов.
Структурные case-средства анализа и проектирования.
Сущность структурного подхода к разработке ПС заключается в её декомпозиции на автоматизируемые функции: система разбивается от функциональных подсистем до конкретных процедур.
Принципы объектно-ориентированного подхода: "разделяй и властвуй" (разбиение сложных проблем на множество лёгких для понимания задач) и иерархическое упорядочение (организация составных частей системы в древовидные структуры с добавлением новых деталей на каждом уровне) – сохраняются так же и при структурном подходе. Однако при этом подходе анализируются не объекты и их взаимодействие, а алгоритмы выполняемых системой функций и отношения между данными при выполнении этих функций.
Структурный подход чаще всего используется при анализе и проектировании баз данных.
Почти все CASE-средства структурного анализа и проектирования систем используют следующие модели:
Data Flow Diagrams (DFD) – диаграммы потоков данных совместно со словарями данных и спецификациями процессов.
Entity-Relationship Diagrams (ERD) – диаграммы “сущность-связь”.
State Transition Diagrams (STD) – диаграммы переходов состояний.
Логическая диаграмма потоков данных (DFD) показывает внешние по отношению к системе источники и приёмники данных. Структуры потоков данных и определения их компонентов хранятся в словаре данных.
Диаграмма “сущность-связь” (ERD) раскрывает модель хранилища данных и обеспечивает стандартный способ определения данных и отношений между ними. Здесь идентифицируются важные для данной предметной области сущности (объекты), свойства этих сущностей (атрибуты) и их отношения с другими сущностями (ассоциации).
Диаграмма переходов состояний (STD) является средством описания поведения системы, зависящего от реального времени. При этом учитывается начальное состояние (стартовая точка для системного перехода); переход (перемещение системы из одного состояния в другое); условие (событие или события, вызывающие переход); действие (операция, которая может иметь место при выполнении перехода).
Известным CASE-средством структурного анализа и проектирования является Silverrun – средство американской фирмы Silverrun Technologies Inc. Silverrun состоит из четырёх модулей, каждый из которых является самостоятельным продуктом и может использоваться без связи с остальными модулями:
Business Process Modeler (BPM) строит модели в виде диаграмм потоков данных.
Entity-Relationship eXpert (ERX) обеспечивает построение моделей данных “сущность-связь”.
Relational Data Modeler (RDM) позволяет создавать детализированные модели “сущность-связь”, предназначенные для реализации в реляционной базе данных.
Workgroup Repository Manager (WRM) применяется как словарь данных для хранения общей для всех моделей информации.
Для автоматической генерации схем баз данных у Silverrun существуют мосты к наиболее распространенным СУБД: Oracle, DB2, SQL Server, MS Access. Кроме того, имеются программные мосты к объектно-ориентированному CASE-средству Rational Rose, разработанные российской фирмой Аргуссофт.
В России многими разработчиками информационных систем используются CASE-средства BPWin и ERWin фирмы Platinum technology, которые предназначены для анализа, проектирования и кодогенерации. Фирма Platinum имеет программные мосты с Rational Rose для связывания модели данных с объектной моделью. В книжных магазинах есть книга: Маклаков С.В. BPWin и ERWin. CASE-средства разработки информационных систем. – М.: ДИАЛОГ-МИФИ, 1999. Книга содержит описание методов структурного анализа и проектирования моделей данных. Подробно на конкретных примерах рассмотрено применение CASE-технологий и CASE-средств для автоматизации этапов анализа, проектирования и кодогенерации информационных систем.