ИГА. Понятие базы данных
Скачать 0.77 Mb.
|
Объектно-ориентированное проектированиеСтруктурное проектирования работает хорошо, потому что оно позволяет нам одновременно сосредотачиваться на меньшем количестве деталей. Это логичная методика, которая поощряет организованную доводку системы и уменьшает уровень сложности (степени интеграции) на каждой из последующих стадий проекта. По очевидным причинам, нисходящее (структурное) проектирование подходит лучше всего тогда, когда применяется к проблемам, которые имеют ясно выраженный иерархический характер. К сожалению, многие из реальных проблем не иерархические. Проект, основанный на построении сверху вниз, имеет также и другие ограничения, которые станут очевидными при разработке и сопровождении больших программных систем. - Функциональную точку зрения трудно развивать. - Реальные системы трудно охарактеризовать функционально. - Фокусирование на функциональности теряет из виду данные. - Функциональная ориентация производит код, менее пригодный для многократного использования. Методы структурного проектирования помогают упростить процесс разработки сложных систем за счет использования алгоритмов как готовых строительных блоков. Аналогично, методы объектно-ориентированного проектирования созданы, чтобы помочь разработчикам применять мощные выразительные средства объектного и объектно-ориентированного программирования, использующего в качестве блоков классы и объекты. Структурное проектирование характеризуется перемещением от общей формулировки того, что программа делает к все более детализированным формулировкам этого относительно каждой специфической задачи. Структурное проектирование не подходит для разработки больших программных систем, потому что оно выторговывает краткосрочное удобство в обмен на отсутствие гибкости при длительном сопровождении. Существует незаконная привилегия одной функции над другими, теряются из виду данные, оставаясь на заднем плане задачи. Затрудняется возможность многократного использования. Объектно-ориентированное проектирование - конструирование программных систем как структурных коллекций, реализующих абстрактные типы данных. Объектно-ориентированное проектирование и объектно-ориентированное программирование улучшают возможности нисходящего проектирования, концентрируя больше внимание на данных системы, а не на том, что система делает. Это подход позволяет создавать системы, которые легче сопровождать, они более гибкие, более устойчивые и более приспособлены к многократному использованию, чем создаваемые при нисходящем структурном подходе. Объектно-ориентированные методы лучше потому что: - Они работают на более высоком уровне абстракции. - Нет "прыжков" между фазами. - Они поддерживают данные, которые имеют тенденцию, к большей стабильности, чем функции. - Они поощряют и поддерживают классические достоинства хорошего программирования и проектирования. - Они сопровождаются инструментами, обеспечивающими поддержку повторного использование кода. Объектно-ориентированный подход имеет два аспекта: - объектно-ориентированная разработка программного обеспечения; - объектно-ориентированная реализация программного обеспечения. Объектно-ориентированная разработка программ Объектно-ориентированная разработка программного обеспечения связана с применением объектно-ориентированных моделей при разработке программных систем и их компонентов. Говоря об объектно-ориентированной разработке, имеются в виду: - объектно-ориентированные технологии разработки программных систем; - инструментальные средства, поддерживающие эти технологии. Объектно-ориентированная разработка может начаться на самом первом этапе жизненного цикла; она не связана с языком программирования, на котором предполагается реализовать разрабатываемую программную систему: этот язык может и не быть объектно-ориентированным. Объектно-ориентированная разработка программного обеспечения связана с применением объектно-ориентированных технологий. Обычно эти объектно-ориентированные методологии поддерживаются инструментальными программными средствами, но и без таких средств они полезны, так как позволяют хорошо понять различные аспекты и свойства разрабатываемой программной системы, что в последующем существенно облегчает ее реализацию, тестирование, сопровождение, разработку новых версий и более существенную модификацию. Различные объектно-ориентированные методологии разработки программного обеспечения: - RUP (Rational Unified Process) - OMT (Object Modeling Technique) - SA/SD (Structured Analysis/Structured Design); - JSD (Jackson Structured Development); - OSA (Object-Oriented System Analysis) 19. Проектирование ИС на основе объектно-ориентированного подхода. Объектно-ориентированная разработка программ. Объектно-ориентированные языки программирования. Объектно-ориентированные методологии разработки программных систем. CASE - средства разработки ПО. Объектно-ориентированная разработка программного обеспечения связана с применением объектно-ориентированных моделей при разработке программных систем и их компонентов. Говоря об объектно-ориентированной разработке, имеются в виду: - объектно-ориентированные технологии разработки программных систем; - инструментальные средства, поддерживающие эти технологии. Объектно-ориентированная разработка может начаться на самом первом этапе жизненного цикла; она не связана с языком программирования, на котором предполагается реализовать разрабатываемую программную систему: этот язык может и не быть объектно-ориентированным. Объектно-ориентированная разработка программного обеспечения связана с применением объектно-ориентированных технологий. Обычно эти объектно-ориентированные методологии поддерживаются инструментальными программными средствами, но и без таких средств они полезны, так как позволяют хорошо понять различные аспекты и свойства разрабатываемой программной системы, что в последующем существенно облегчает ее реализацию, тестирование, сопровождение, разработку новых версий и более существенную модификацию. Различные объектно-ориентированные методологии разработки программного обеспечения: - RUP (Rational Unified Process) - OMT (Object Modeling Technique) - SA/SD (Structured Analysis/Structured Design); - JSD (Jackson Structured Development); - OSA (Object-Oriented System Analysis) Объектно-ориентированные языки программирования Реализация программного обеспечения связана с использованием одного из языков программирования. Наиболее удобными для реализации программных систем, разработанных в рамках объектно-ориентированного подхода, являются объектно-ориентированные языки программирования, хотя возможна реализация и на обычных (не объектно-ориентированных) языках (например, на языке C и на языке Fortran). Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения. Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ. Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Eiffel и др. Наиболее распространенным объектно-ориентированным языком программирования безусловно является C++. Разработка новых объектно-ориентированных языков программирования продолжается. С 1995 года широко распространен новый объектно-ориентированный язык программирования Java, ориентированный на сети компьютеров и, прежде всего, на Internet. Язык UML.Для визуального представления результатов анализа и проектирования требуется специальное средство, которое было бы одновременно кратким и емким. Для этого был разработан язык UML. UML (Unified Modeling Language – «унифицированный язык моделирования») давно стал стандартом для визуального представления моделей программ. UML был разработан для определения, визуализации, проектирования и документирования, в основном, программных систем [20]. Одной из основных диаграмм UML является диаграмма классов, описывающая классы и отражающая отношения, существующие между ними. Модели программ – это графическое представление связей между объектами в программном коде. Класс изображается как прямоугольник, который разбит на три части. Имя класса в верхней части. Список атрибутов в средней части. В нижней части записывается список методов. Имя абстрактного класса, также как и имена виртуальных функций, выделяется курсивом. Перед именем атрибута или метода может указываться спецификатор доступа с помощью одного из трех символов: + для publiс, - для private, # для protected. Для статических элементов класса после спецификатора доступа идет символ $. На рис. 1 приведен пример класса. Важно заметить, что во второй и третьей частях могут указываться не все элементы класса, а только представляющие интерес на данном уровне абстракции. Если обе эти части пусты, они могут быть пропущены [20]. В настоящее время язык UML получил широкое распространение в силу открытости своего стандарта и широкого профиля применимости. 1 У замкнутого списка логический последний элемент указывает на первый 2 Некоторые типы списка не реализуют полный набор этих операций. В соответствующих главах будут рассмотрены ограничения 3 Для устойчивой реализации 4 Проверка выполняется только для устойчивой реализации |