Програмирование
Визуальные среды быстрой разработки межплатформенных объектно-ориентированных приложений
Рейтинг пользователей: / 3
ХудшийЛучший 

Кроссплатформенное (межплатформенное) программное обеспечение — программное обеспечение, работающее более чем на одной аппаратной платформе и/или операционной системе. Типичным примером является программное обеспечение, предназначенное для работы в операционных системах Linux и Windows одновременно.

Новый Visual J++ 6.0 позволит разработчикам создавать межплатформенные Java-приложения, которые, естественно, ориентированы в основном на Windows. Среди других особенностей J++ можно назвать наличие конструктора визуальных форм, возможность включения в код необходимых примечаний и компонентно-ориентированное программирование. При помощи Visual J++ 6.0 разработчики могут создавать компоненты COM, MTS (Microsoft Transaction Server) и MSMQ.

Кроссплатформенными можно назвать большинство современных высокоуровневых языков программирования. Например, C, С++, Free Pascal — кроссплатформенные языки на уровне компиляции, то есть для этих языков есть компиляторы под различные платформы.

Не менее важны для кроссплатформенности стандартизованные библиотеки времени выполнения. В частности, стандартом стала библиотека языка C. Из крупных кроссплатформенных библиотек — Qt, GTK+, FLTK, STL, Boost, OpenGL, SDL, OpenAL, OpenCL.

Qt — кросс-платформенный инструментарий разработки ПО на языке программирования C++. Есть также «привязки» ко многим другим языкам программирования: Python — PyQt, PySide; Ruby — QtRuby; Java — Qt Jambi; PHP — PHP-Qt и другие.

Позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. Включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных и XML. Qt является полностью объектно-ориентированным, легко расширяемым и поддерживающим технику компонентного программирования.

Среда визуальной разработки — среда разработки программного обеспечения, в которой наиболее распространенные блоки программного кода представлены в виде графических объектов. Применяются в основном для создания прикладных программ и разработки графического интерфейса пользователя .

Среды:

NetBeans

Одна из лучших IDE сред. Предназначена для работы с Java, с ее помощью можно разрабатывать не только кросс-платформенные Java программы, но и web-приложения, web-сервисы и клиентов для них, J2ME программы и т.п.

QT / KDevelop Designer

Еще одна мощная среда разработки на платформе KDE и Gnome. Кросс-платформенные C++ приложения выходят только в путь. Для некоммерческих программ Qt можно использовать бесплатно, существует практически для всех дистрибутивов.

Gambas

Клон Visual Basic, причем не только в оформлении, но и в конструкциях языка . Идеальное средство для VB программистов, желающих перейти на Linux. Простой и удобный интерфейс. Доступ ко всем главным базам данным - MySQL, PostgreSQL и т.д. Работает практически на всех дистрибутивах.


 
Управление многооконными диалогами: меню, акселераторы, курсоры и иконки, списки кнопок, переключатели и селекторы, индикаторы.

Меню— элемент интерфейса пользователя, позволяющий выбрать одну из нескольких перечисленных опций программы. В современных операционных системах меню является важнейшим элементом графического интерфейса пользователя.

Меню - один из самых распространнёных элементов. Не надо далеко ходить - в ворде 2003. ФАЙЛ ПРАВКА ФОРМАТ. Это и есть меню. Как вы понимаете, оно нужно для двух вещей. Во-первых, оно структурирует функции. Т.е. в подменю ФАЙЛ только то, что касается файла и так далее. Во-вторых, оно значительно освобождает место - это логично. в VS при создание проекта на Windows Forms есть специальный элемент - MenuStrip, который позволяет нам легко и удобно создавтаь подобные меню.

Значок, иконка — элемент графического интерфейса, небольшая картинка, представляющая приложение, файл, каталог, окно, компонент операционной системы, устройство и т. п. В ответ на щелчок, совершённый мышью или другим указательным устройством ввода на значке, обычно выполняется соответствующее действие (запуск приложения, открытие файла и т. д.).

Акселераторы позволяют существенно упростить пользователю работу с Вашей программой за счет быстрого доступа к ее элементам. Нажатием комбинации клавиш "Ctrl + O" в Microsoft Word Вы мгновенно попадаете в диалог открытия документа, минуя потери времени на перебирание пунктов меню. К счастью, чтобы использовать в программе акселераторы, не требуется почти никаких затрат, поскольку поддержка акселераторов встроена в операционную систему.

Переключатель (элемент интерфейса программ) — в программировании, элемент графического пользовательского интерфейса, который позволяет пользователю осуществлять возможность множественного выбора.

Контрольный переключатель (check box, флажок) может быть либо выбранным, либо нет. Если в диалоге есть несколько контрольных переключателей, то могут быть выбраны одновременно несколько из них.

Селекторная кнопка (radio button) – это, почти тоже, что и контрольный переключатель. Отличие состоит в том, что при наличии нескольких кнопок в группе может быть выбрана только одна.

Диалоги не создаются программно. При необходимости из ресурсов загружаются описания диалогов, и Windows по этому описанию формирует окно и размещает на нем все элементы управления. Диалоги редактируются визуально из ресурсного редактора. Диалог вместе со всеми элементами управления представляет собой один ресурс со своим идентификатором. Кроме того, каждый элемент управления имеет свой идентификатор, который может быть только числовым. Обычно идентификаторы имеют префикс в соответствии с названием данного элемента управления, хотя при желании можно использовать любые идентификаторы.

Индикатор выполнения (ProgressBar) отображает степень реализации (в процентах) конкретного процесса: шкала постепенно заполняется слева направо. Например, именно таким способом Microsoft Word for Windows иллюстрирует запись файла на диск. Индикатор выполнения часто используют программы установки для отображения хода процесса.

 
Классы и объекты

Взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому. Сообщение, полученное объектом, может потребовать выполнения определенных действий, например, изменения состояния объекта.

Объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий представляют собой класс однотипных объектов.

С точки зрения языка программирования класс объектов можно рассматривать как тип данного, а отдельный объект - как данное этого типа. Определение программистом собственных классов объектов для конкретного набора задач должно позволить описывать отдельные задачи в терминах самого класса задач (при соответствующем выборе имен типов и имен объектов, их параметров и выполняемых действий.

Таким образом, объектно-ориентированный подход предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.

Понятию “объект” сопоставляют ряд дополняющих друг друга определений.

Объект - это осязаемая реальность, характеризующаяся четко определяемым поведением.

Объект - особый опознаваемый предмет, блок или сущность (реальная или абстрактная), имеющая важное функциональное назначение в данной предметной области.

Объект может быть охарактеризован структурой, состоянием объекта, его поведением и индивидуальностью.

Состояние объекта определяется перечнем всех возможных (обычно статических) свойств и текущими значениями (обычно динамическими) каждого из этих свойств. Свойства объекта характеризуются значениями его параметров.

Поведение объекта описывает, как объект воздействует на другие объекты или как он подвергается воздействию со стороны других объектов с точки зрения изменения его собственного состояния и состояния других объектов. Говорят также, что поведение объекта определяется его действиями.

Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называют операцией. В объектно-ориентированных языках программирования операции называют методами.

 
Сущность объектно-ориентированного подхода
Рейтинг пользователей: / 1
ХудшийЛучший 

В основе того или иного языка программирования лежит некоторая руководящая идея, оказывающая существенное влияние на стиль соответствующих программ.

Исторически первой была идея процедурного структурирования программ, в соответствии с которой программист должен был решить, какие именно процедуры он будет использовать в своей программе, а затем выбрать наилучшие алгоритмы для реализации этих процедур. Появление этой идеи было следствием недостаточной изученности алгоритмической стороны вычислительных процессов, столь характерной для ранних программных разработок (сороковые - пятидесятые годы). Типичным примером процедурно-ориентированного языка является Фортран - первый и все еще один из наиболее популярных языков программирования. Последовательное использование идеи процедурного структурирования программ привело к созданию обширных библиотек программирования, содержащих множество сравнительно небольших процедур, из которых, как из кирпичиков, можно строить «здание» программы.

По мере прогресса в области вычислительной математики акцент в программировании стал смещаться с процедур в сторону организации данных. Оказалось, что эффективная разработка сложных программ нуждается в действенных способах контроля правильности использования данных. Контроль должен осуществляться как на стадии компиляции, так и при прогоне программ, в противном случае, как показала практика, резко возрастают трудности создания крупных программных проектов. Отчетливое осознание этой проблемы привело к созданию Алгола-60, а позже - Паскаля, Модулы-2, Си и множества других языков программирования, имеющих более или менее развитые структуры типов данных. Логическим следствием развития этого направления стал модульный подход к разработке программ, характеризующийся стремлением «спрятать» данные и процедуры внутри модуля.

Начиная с языка Симула-67, в программировании наметился новый подход, который получил название объектно-ориентированного программирования (ООП). Его руководящая идея заключается в стремлении связать данные с обрабатывающими эти данные процедурами в единое целое - объект. Характерной чертой объектов является инкапсуляция (объединение) данных и алгоритмов их обработки, в результате чего и данные, и процедуры во многом теряют самостоятельное значение. Фактически объектно-ориентированное программирование можно рассматривать как модульное программирование нового уровня, когда вместо во многом случайного, механического объединения процедур и данных акцент делается на их смысловую связь.

Какими мощными средствами располагает объектно-ориентированное программирование наглядно демонстрирует библиотека Turbo Vision, входящая в комплект поставки Турбо Паскаля и описываемая во второй части этой книги. В этой главе мы рассмотрим основные идеи ООП и способы их использования.

Следует заметить, что преимущества ООП в полной мере проявляются лишь при разработке достаточно сложных программ. Более того, инкапсуляция придает объектам совершенно особое свойство «самостоятельности», максимальной независимости от остальных частей программы. Правильно сконструированный объект располагает всеми необходимыми данными и процедурами их обработки, чтобы успешно реализовать требуемые от него действия. Попытки использовать ООП для программирования несложных алгоритмов, связанных, например, с расчетными вычислениями по готовым формулам, чаще всего выглядят искусственными нагромождениями ненужных языковых конструкций. Такие программы обычно не нуждаются в структуризации, расчленении алгоритма на ряд относительно независимых частей, их проще и естественнее разрабатывать традиционными способами Паскаля. При разработке сложных диалоговых программ программист вынужден структурировать программу, так как только в этом случае он может рассчитывать на успех: «критической массой» неструктурированных программ является объем в 1000-1200 строк исходного текста - отладка неструктурированных программ большего объема обычно сталкивается с чрезмерными трудностями. Структурирование программы ведет, фактически, к разработке собственной библиотеки программирования - вот в этот момент к Вам на помощь и приходят новые средства ООП.

 
CASE-системы

CASE — набор инструментов и методов программной инженерии для проектирования программного обеспечения, который помогает обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов (например, ERwin).

Представление о CASE - комплексах связано в нашем сознании с чем-то, не имеющим отношения к обычному программированию. В Америке из-за сильнейшей конкуренции CASE-средства используются подавляющим большинством фирм - разработчиков программного обеспечения.

Мощный толчок CASE-средства получили в пору внедрения объектно-ориентированной технологии разработки ПО, когда старого, проверенного временем метода проектирования "сверху вниз" стало явно недостаточно. К тому же появились технологии объектного моделирования Booch, OMT, UML, сами по себе весьма сложные для привязки к языкам программирования, чтобы оперировать ими вручную.

Сегодня лидирующей в мире CASE-системой считается Rational Rose корпорации Rational Software. Система Rational Rose нацелена на создание модулей с использованием языка Unified Modeling Language (UML). Кстати, UML стал стандартным языком объектно-ориентированной разработки не без подачи Rational Software, которая не только выпускает программные продукты, где используются UML, но и активно принимает участие в организации Object Management Group (OMG), занятой созданием и обновлением спецификаций языка UML, технологии распределенных вычислений CORBA и т.д.

В компании Rational работают три создателя и евангелиста объектно-ориентированной разработки и языка UML. Это Гради Буч, Айвар Джекобсон и Джим Рамбаух. Последняя версия CASE-системы компании Rational Software Rational Rose 98 успешно применяется для создания коммерческого ПО и поддерживает популярные языки программирования Java, Си++, Смолток, Ада, Visual Basic, Power Builder и Forte. Кроме того, пакет Rose 98 способен генерировать описания на языках Interface Definition Language (IDL) для приложений CORBA и Data Definition Language (DDL) для приложений доступа к базам данных, в том числе и Oracle 8. Разумеется, поддержка того или иного языка программирования зависит от того, о какой редакции пакета Rational Rose 98 идет речь.

К примеру, нельзя требовать многого от самого простого варианта пакета - Rose 98 Modeler Edition. Зато Rose 98 Enterprise Edition оснащен от души. Нельзя не отметить, что система Rose - признанный лидер среди средств визуального моделирования, и, используя ее, можно интерактивно разрабатывать архитектуру создаваемого приложения, генерировать его исходные тексты и параллельно работать над документированием разрабатываемой системы. С помощью Rational Rose можно создавать новые модели на базе обратного разбора двоичных com модулей или исходные тексты прикладных программ и библиотек классов.

Преимущества от применения Rational Rose 98 значительны:

  • Сокращение цикла разработки приложения.
  • Увеличение продуктивности работы программистов.
  • Улучшение потребительских качеств создаваемых программ за счет ориентации на пользователей и бизнес.
  • Способность вести большие проекты и группы проектов.
  • Возможность повторного использования уже созданного ПО за счет упора на разбор их архитектуры и компонентов.
  • Язык UML служит универсальным "мостиком" между разработчиками из разных отделов.
 
Объектно-ориентированное программирование

Объектно-ориентированное программирование (ООП) — это технология создания сложного программного обеспечения, которое основано на представлении программы в виде совокупности объектов.

Идея ООП заключается в стремлении связать данные с обрабатывающими эти данные процедурами в единое целое - объект. Объект (программирование) — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеет заданные значения свойств (атрибутов) и операций над ними (методов). ООП основано на трех важнейших принципах, придающих объектам новые свойства. Этими принципами являются инкапсуляция, наследование и полиморфизм.

Инкапсуляция - объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы - объектными методами.

Наследование - свойство объектов порождать своих «потомков». Объект - «потомок» автоматически наследует от «родителей» все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы «родителя» или дополнять их.

Полиморфизм - свойство родственных объектов (т.е. объектов, имеющих одного общего «родителя») решать схожие по смыслу проблемы разными способами.

 
Модульное программирование
Рейтинг пользователей: / 1
ХудшийЛучший 

Так же как и для структурной технологии программирования, концепцию модульного программирования можно сформулировать в виде нескольких понятий и положений: Функциональная декомпозиция задачи - разбиение большой задачи на ряд более мелких, функционально самостоятельных подзадач - модулей. Модули связаны между собой только по входным и выходным данным.

Модуль - основа концепции модульного программирования. Каждый модуль в функциональной декомпозиции представляет собой "черный ящик" с одним входом и одним выходом. Модульный подход позволяет безболезненно производить модернизацию программы в процессе ее эксплуатации и облегчает ее сопровождение. Дополнительно модульный подход позволяет разрабатывать части программ одного проекта на разных языках программирования, после чего с помощью компоновочных средств объединять их в единый загрузочный модуль.

Реализуемые решения должны быть простыми и ясными. Если назначение модуля непонятно, то это говорит о том, что декомпозиция начальной или промежуточной задачи была проведена недостаточно качественно. В этом случае необходимо еще раз проанализировать задачу и, возможно, провести дополнительное разбиение на подзадачи. При наличии сложных мест в проекте их нужно подробнее документировать с помощью продуманной системы комментариев. Этот процесс нужно продолжать до тех пор, пока действительно не удастся добиться ясного понимания назначения всех модулей задачи и их оптимального сочетания. Назначение всех переменных модуля должно быть описано с помощью комментариев по мере их определения.

 
Нисходящее программирование

Метод предполагает последовательное разложение функции обработки данных на простые функциональные элементы ("сверху вниз"). В результате строится иерархическая схема, которая отражает состав и взаимоподчиненность отдельных функций. Она носит название функциональная структура алгоритма (ФСА) приложения, в которой отражаются:

  • цели предметной области (цель-подцель);
  • состав приложений (задач обработки), обеспечивающих реализацию поставленных целей;
  • характер взаимосвязи приложений с их основными характеристиками;
  • функции обработки данных.

Подобная структура отражает состав и взаимосвязь функций обработки информации для реализации приложений, не раскрывая логику выполнения каждой отдельной функции. Разложение должно носить строго функциональный характер, т.е. отдельный элемент ФСА описывает законченную содержательную функцию обработки информации, которая предполагает определенный способ реализации на программном уровне. Функции ввода/вывода информации отделяют от функций вычислительной или логической обработки данных. Некоторые функции например Ф2, ФМ далее неразложимы на составляющие, они предполагают непосредственную программную реализацию. Другие функции Ф2... могут быть представлены в виде структурного объединения более простых функций, например ФИ, Ф12 .. Для всех функций-компонентов осуществляется самостоятельная программная реализация, составные функции типа Ф1, ФМ реализуются как программные модули, управляющие функциями - компонентами, например, в виде программ-меню. По частоте использования функции делятся на однократно выполняемые и повторяющиеся.

 
<< Первая < Предыдущая 1 2 Следующая > Последняя >>

Страница 1 из 2
Программируем на C#, интересные статьи, книги, музыка; Костя Карпов.