SlideShare a Scribd company logo
1 of 30
1
Visual C
2
1.1. Эволюция систем
программирования
Средства разработки приложений для ЭВМ
как основной инструмент программиста
должны обеспечивать возможность
написания эффективного кода с точки
зрения современных технологий и при
этом предоставлять комфортные условия
для работы программиста, позволяя ему
сосредоточиться на решении стоящих
перед ним задач./
3
Основные этапы эволюции СП на
основе языка С
Первой ступенью эволюции систем программирования
стало появление языка программирования C++ и
библиотек классов C++, которые заключали в себе сотни
строк кода, необходимых даже для простейшего
отображения окна на экране, однако обращение к этим
классам занимало в программе на C++ всего несколько
строк. Этот этап эволюции характеризуется наличием
раздельных элементов системы программирования –
текстового редактора, компилятора, линковщика,
отладчика, справочника по функциям языка С. Процесс
разработки приложения здесь заключается в
последовательном вызове этих элементов из командной
строки операционной системы. Это, очевидно, сильно
замедляет процесс программирования.
4
Вторым поколением средств разработки для
Windows стало появление средств
интегрированной среды разработки (Integrated
Development Environment, IDE). Эти средства
позволяют программисту редактировать,
компилировать, компоновать, отлаживать
программы непосредственно в одном
приложении. Интегрированные средства
отладки появились чуть позже и были быстро
взяты на вооружение программистами.
Практически все современные ИСП строятся
по принципу IDE.
5
Следующий шаг эволюции средств
разработки стал результатом развития
концепции каркасов (framework).
Каркас — это основа, скелет вашего
приложения, на основе которого
разрабатывается как структура программы,
так и детали ее пользовательского
интерфейса.
6
Каркасы представляют собой библиотеки
классов, которые предлагаются
разработчику как строительные блоки для
создания его приложения. Каждый класс
такой библиотеки представляет собой уже
готовый к использованию элемент
программного или пользовательского
интерфейса приложения (окно, меню,
таймер). При этом каркасные приложения
имеют стандартную структуру,
реализующую типовой алгоритм
функционирования программы.
7
Достоинства такого подхода очевидны –
типовые элементы приложения
предоставляются программисту в готовом
виде, и вместо многих десятков строк кода,
создающих, например, обычное окно, он
может воспользоваться классом «Окно»,
который содержит в себе все необходимые
для работы окна методы и данные. В
качестве примера каркасов можно назвать
библиотеки MFC (Microsoft Foundation
Class), OWL (Object Windows Library).
8
Настоящей проблемой технологии каркасов являются
их ограничения. Несмотря на то, что каркасы
действительно ускоряют разработку приложений,
предоставляя в распоряжение разработчика многие
из основных функций нормального Windows-
приложения, они сразу же встают на пути
приложения, которое не укладывается в привычные
рамки, требует нестандартного решения, не
предусмотренного разработчиками каркаса. Еще одно
неудобство каркасных технологий – плохая
визуализация процесса сборки приложения из
классов, когда и внешний вид элемента
пользовательского интерфейса, и связи между
отдельными элементами становятся видны
разработчику только на этапе работы программы.
9
Развитием концепции каркасов
стало появление компонентной
модели ИСП, применяемой в
таких системах, как Delphi,
C++ Builder. В основу
программирования здесь также
положена библиотека, но это
уже библиотека компонент
(VCL, Visual Component
Library).
10
Компоненты не диктуют строгую структуру
программы, они могут использоваться
программистом по его усмотрению для
достижения поставленной цели. Благодаря
своей многофункциональной внутренней
архитектуре, основанной на использовании
свойств и событий, компоненты можно
гораздо гибче адаптировать к требованиям
той или иной задачи.
11
Помимо использования компонентной модели,
многие современные ИСП строятся по
технологии RAD (Rapid Application Development),
характеризующейся наличием визуальной среды
проектирования, представляющей еще на этапе
проектирования приложения весь его
графический интерфейс в виде, аналогичном
тому, каким он будет на этапе работы программы.
Также на этапе проектирования в визуальной
форме (в инспекторе объектов) задаются
основные свойства компонент, связи компонент
друг с другом.
12
1.2. Основные достоинства системы
программирования C++ Builder
Система объектно-ориентированного
программирования C++Builder
производства корпорации Borland
предназначена для операционных систем
платформы Win32. С++Builder –это
законченный, гибкий инструмент RAD,
сочетающий мощь современного
компилятора языка С++, удобство
средств визуальной разработки
приложений, достоинства компонентного
подхода к проектированию с открытыми
возможностями пополнения имеющихся в
распоряжении разработчика компонент
13
Интегрированная среда
разработки объединяет редактор
форм, инспектор объектов, палитру
компонент, администратор проекта и
полностью интегрированные редактор
кода и отладчик - инструменты
быстрой разработки программных
приложений, обеспечивающие полный
контроль над кодом и ресурсами.
14
Профессиональные средства
языка C++ интегрированы в
визуальную среду разработки.
C++Builder предоставляет
быстродействующий компилятор
языка Borland C++,
соответствующий стандарту
ANSI.
15
Для повышения скорости работы в системе
используется эффективный инкрементальный
загрузчик и гибкие средства отладки как
на уровне исходных инструкций, так и на
уровне ассемблерных команд.
Компилятор системы С++Builder поддерживает
технологии шаблонов (templates),
именованных областей видимости
(namespaces), обработки исключительных
ситуаций (exception handling), библиотеки
стандартных шаблонов STL (Standard
Template Library), информации о типах
времени выполнения RTTI (Run Time Type
Information).
16
Инкрементальный компилятор
и линковщик системы
обрабатывают при повторной
сборке проекта только те
его строки, которые
изменялись с момента
предыдущей компиляции, тем
самым экономя время сборки
приложения.
17
Конструирование по способу "drag-and-
drop"
позволяет создавать приложение простым
перетаскиванием захваченных мышью
визуальных компонент из палитры
компонент на форму приложения.
Инспектор объектов предоставляет
возможность оперировать со свойствами и
событиями компонент уже на этапе
разработки приложения, автоматически
задавая значения свойств компонент,
создавая заготовки функций обработки
событий, которые необходимо наполнять
кодом.
18
Механизмы двунаправленной
разработки (two-way-tools)
позволяют синхронизировать процесс
визуального проектирования форм и
генерацию исходного кода, когда
манипулирование с визуальными
средствами редактора форм или
инспектора объектов приводит к
автоматическим изменениям
структуры программы, объявлений
объектов программы.
19
Библиотека Визуальных Компонент
VCL.
Компоненты библиотеки VCL
составляют основу программного
инструментария программиста на С+
+Builder.
Компонент – это объект, который
своими свойствами, методами и
событиями описывает поведение
некоторого элемента
пользовательского (кнопка, список
строк в окне, меню) или
программного (соединение с базой
данных, сокет, таймер) интерфейса
программы.
20
Так как каждый компонент является
законченным программным объектом,
то, конструируя свое приложение как
совокупность взаимодействующих
компонент, программист избавляется
от необходимости писать большие
фрагменты кода – они уже реализованы
разработчиками компонент.
Находясь в среде объектно-
ориентированного программирования C+
+Builder, компоненты можно
использовать непосредственно, менять
их свойства, облик и поведение или
порождать производные элементы,
обладающие нужными отличительными
характеристиками.
21
Использование модели “свойства-
методы-события” PEM ,
реализованное в С++ Builder как
расширение языка С++, определяет
внутреннюю структуру компонент,
превращая их в удобный инструмент
визуального проектирования.
22
Компонент в этой модели является расширением
понятия «класс» стандартного языка С++ с
добавлением понятий «свойство» и «событие».
Свойство является расширением понятия
«компонентные данные класса», оно
устанавливает способ получения и сохранения
значений характеристик компонент при
манипулировании ими как на этапе
проектирования, так и в процессе работы
программы. Событие определяет способ реакции
компонента на внешние «раздражители»,
которыми могут стать сообщения, приходящие от
пользователя, других компонент, операционной
системы.
23
Доступ к функциям API позволяет
расширять функциональность
разрабатываемых приложений за
счет возможностей,
предусмотренных операционной
системой, которые, возможно, не
реализованы компонентами VCL, но
которые, таким образом, не
выпадают из арсенала
программиста.
24
Хранилище объектов является
инструментом новой методики хранения и
повторного использования модулей данных,
объектов, форм и программной бизнес-
логики. Поскольку построение нового
приложения на существующем фундаменте
значительно экономит временные затраты,
хранилище объектов предоставляет для
повторного использования готовые
структуры: формы и законченные
программные модули.
25
Используя хранилище объектов,
программист может начинать
новый проект на твердой
платформе предшествующих
разработок, лишь добавляя в них
фрагменты, характерные для
стоящей перед ним задачи.
26
Поддержка промышленных
стандартов ActiveX, OLE, СОМ,
MAPI, Windows Sockets TCP/IP, ISAPI,
NSAPI, ODBC, Unicode и MBCS
существенно повышает
функциональную мощь системы
программирования, превращает ее в
универсальное средство разработки
приложений различной практической
направленности.
27
Возможности работы с базами
данных. С++Builder содержит полный
набор компонент для работы с базами
данных, которые вообще не требуют
программирования. Разработка по
способу "drag-and-drop" многократно
упрощает и ускоряет обычно
трудоемкий процесс
программирования СУБД в
архитектуре клиент/сервер.
28
Широкий выбор компонент управления
визуализацией и редактированием позволяет
легко изменять вид отображаемой
информации и поведение программы.
Механизм BDE (Borland Database Engine)
поддерживает высокопроизводительный 32-
разрядный доступ к базам данных dBASE,
Paradox, Sybase, Oracle, DB2, Microsoft SQL
Server, Informix, InterBase, MySQL. C++Builder
использует контроллер ODBC (Open Database
Connectivity) производства Microsoft для связи
с серверами баз данных Excel, Access,
FoxPro.
29
Начиная с версии 6 поддерживается
технология SOAP для многоуровневых
приложений баз данных, добавлен
независимый от архитектуры BDE
набор компонентов dbExress,
позволяющий создавать приложения
клиент/сервер, работающие с базами
данных различных форматов,
поддерживается технология доступа к
базам данных ADO.
30
Вывод
Система программирования С++Builder является
современным средством разработки приложений,
поддерживающим компонентный подход и
построенный по принципу визуального
проектирования.
Удобные встроенные средства проектирования и
поддержка большинства современных технологий
в области разработки баз данных, сетевых
приложений, мультимедийных приложений
превращают С++Builder в универсальный
инструмент программиста любой специализации.

More Related Content

What's hot

Что должен уметь Linux программист
Что должен уметь Linux программистЧто должен уметь Linux программист
Что должен уметь Linux программистru_Parallels
 
Software Engineering Knowledge Matrix
Software Engineering Knowledge MatrixSoftware Engineering Knowledge Matrix
Software Engineering Knowledge MatrixOlena Syrota
 
Технология разработки программного обеспечения
Технология разработки программного обеспеченияТехнология разработки программного обеспечения
Технология разработки программного обеспеченияRauan Ibraikhan
 
Технология разработки программного обеспечения
Технология разработки программного обеспеченияТехнология разработки программного обеспечения
Технология разработки программного обеспеченияRauan Ibraikhan
 
Лабораторные практические работы
Лабораторные практические работыЛабораторные практические работы
Лабораторные практические работыRauan Ibraikhan
 
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...DEVTYPE
 
C# Desktop. Занятие 08.
C# Desktop. Занятие 08.C# Desktop. Занятие 08.
C# Desktop. Занятие 08.Igor Shkulipa
 
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Andrey Karpov
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиковWOX APP
 
внедрении Wpf в сложных системах
внедрении Wpf в сложных системахвнедрении Wpf в сложных системах
внедрении Wpf в сложных системахWhiteMbIXA
 
архитектура приложений mfc
архитектура приложений mfcархитектура приложений mfc
архитектура приложений mfcmcroitor
 
Приступаем к разработке Android приложений
Приступаем к разработке Android приложенийПриступаем к разработке Android приложений
Приступаем к разработке Android приложенийmetaform
 
Лекции и задания по рнр
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнрRauan Ibraikhan
 
Рабочая учебная программа
Рабочая учебная программаРабочая учебная программа
Рабочая учебная программаRauan Ibraikhan
 
МАПО Лекция 22 Проект
МАПО Лекция 22 ПроектМАПО Лекция 22 Проект
МАПО Лекция 22 ПроектОлег Гудаев
 

What's hot (20)

Что должен уметь Linux программист
Что должен уметь Linux программистЧто должен уметь Linux программист
Что должен уметь Linux программист
 
Software Engineering Knowledge Matrix
Software Engineering Knowledge MatrixSoftware Engineering Knowledge Matrix
Software Engineering Knowledge Matrix
 
Технология разработки программного обеспечения
Технология разработки программного обеспеченияТехнология разработки программного обеспечения
Технология разработки программного обеспечения
 
Лекция 1. Введение в Android.
Лекция 1. Введение в Android.Лекция 1. Введение в Android.
Лекция 1. Введение в Android.
 
Технология разработки программного обеспечения
Технология разработки программного обеспеченияТехнология разработки программного обеспечения
Технология разработки программного обеспечения
 
Лабораторные практические работы
Лабораторные практические работыЛабораторные практические работы
Лабораторные практические работы
 
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
 
C# Desktop. Занятие 08.
C# Desktop. Занятие 08.C# Desktop. Занятие 08.
C# Desktop. Занятие 08.
 
лек13 6
лек13 6лек13 6
лек13 6
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
 
WinRT
WinRTWinRT
WinRT
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиков
 
внедрении Wpf в сложных системах
внедрении Wpf в сложных системахвнедрении Wpf в сложных системах
внедрении Wpf в сложных системах
 
архитектура приложений mfc
архитектура приложений mfcархитектура приложений mfc
архитектура приложений mfc
 
Приступаем к разработке Android приложений
Приступаем к разработке Android приложенийПриступаем к разработке Android приложений
Приступаем к разработке Android приложений
 
Лекции и задания по рнр
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнр
 
Part
PartPart
Part
 
Рабочая учебная программа
Рабочая учебная программаРабочая учебная программа
Рабочая учебная программа
 
МАПО Лекция 22 Проект
МАПО Лекция 22 ПроектМАПО Лекция 22 Проект
МАПО Лекция 22 Проект
 

Similar to Lecture 11 1

презетация Visual basic
презетация Visual basicпрезетация Visual basic
презетация Visual basickseniya_kristina
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологийОтшельник
 
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...Ontico
 
методология Rad (46)
методология Rad (46)методология Rad (46)
методология Rad (46)romachka_pole
 
вопросы к зачетупп
вопросы к зачетуппвопросы к зачетупп
вопросы к зачетуппAnastasia Snegina
 
вопросы к зачетупп
вопросы к зачетуппвопросы к зачетупп
вопросы к зачетуппAnastasia Snegina
 
4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных системKewpaN
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
C++ осень 2012 лекция 12
C++ осень 2012 лекция 12C++ осень 2012 лекция 12
C++ осень 2012 лекция 12Technopark
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими рукамиRoman Dvornov
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 
#2 Введение в Android Studio Основные аспекты.pdf
#2  Введение в Android Studio Основные аспекты.pdf#2  Введение в Android Studio Основные аспекты.pdf
#2 Введение в Android Studio Основные аспекты.pdfSergeyAn2
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковCodeFest
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPmikhailshurgulaya
 

Similar to Lecture 11 1 (20)

презетация Visual basic
презетация Visual basicпрезетация Visual basic
презетация Visual basic
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологий
 
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
 
методология Rad (46)
методология Rad (46)методология Rad (46)
методология Rad (46)
 
вопросы к зачетупп
вопросы к зачетуппвопросы к зачетупп
вопросы к зачетупп
 
вопросы к зачетупп
вопросы к зачетуппвопросы к зачетупп
вопросы к зачетупп
 
4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем
 
Net framework
Net frameworkNet framework
Net framework
 
Разработка БД и TFS
Разработка БД и TFSРазработка БД и TFS
Разработка БД и TFS
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Artsofte for b2 b
Artsofte for b2 b Artsofte for b2 b
Artsofte for b2 b
 
C++ осень 2012 лекция 12
C++ осень 2012 лекция 12C++ осень 2012 лекция 12
C++ осень 2012 лекция 12
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими руками
 
Lec 9
Lec 9Lec 9
Lec 9
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
#2 Введение в Android Studio Основные аспекты.pdf
#2  Введение в Android Studio Основные аспекты.pdf#2  Введение в Android Studio Основные аспекты.pdf
#2 Введение в Android Studio Основные аспекты.pdf
 
2IDE~1.PPT
2IDE~1.PPT2IDE~1.PPT
2IDE~1.PPT
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
 

More from Anastasia Snegina

птп по ппп 2013 2014
птп по ппп 2013 2014 птп по ппп 2013 2014
птп по ппп 2013 2014 Anastasia Snegina
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14Anastasia Snegina
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошинаAnastasia Snegina
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошинаAnastasia Snegina
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике вAnastasia Snegina
 
рп по пр практике в
рп по пр практике врп по пр практике в
рп по пр практике вAnastasia Snegina
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике вAnastasia Snegina
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике втAnastasia Snegina
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике втAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике втAnastasia Snegina
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике втAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 

More from Anastasia Snegina (20)

птп по ппп 2013 2014
птп по ппп 2013 2014 птп по ппп 2013 2014
птп по ппп 2013 2014
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14
 
я.прогр птп
я.прогр птпя.прогр птп
я.прогр птп
 
пп кос вт
пп кос втпп кос вт
пп кос вт
 
пп кос в
пп кос впп кос в
пп кос в
 
пп кос в
пп кос впп кос в
пп кос в
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
 
пп кос вт
пп кос втпп кос вт
пп кос вт
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике в
 
рп по пр практике в
рп по пр практике врп по пр практике в
рп по пр практике в
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике в
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
лр18
лр18лр18
лр18
 
лр15
лр15лр15
лр15
 

Lecture 11 1

  • 2. 2 1.1. Эволюция систем программирования Средства разработки приложений для ЭВМ как основной инструмент программиста должны обеспечивать возможность написания эффективного кода с точки зрения современных технологий и при этом предоставлять комфортные условия для работы программиста, позволяя ему сосредоточиться на решении стоящих перед ним задач./
  • 3. 3 Основные этапы эволюции СП на основе языка С Первой ступенью эволюции систем программирования стало появление языка программирования C++ и библиотек классов C++, которые заключали в себе сотни строк кода, необходимых даже для простейшего отображения окна на экране, однако обращение к этим классам занимало в программе на C++ всего несколько строк. Этот этап эволюции характеризуется наличием раздельных элементов системы программирования – текстового редактора, компилятора, линковщика, отладчика, справочника по функциям языка С. Процесс разработки приложения здесь заключается в последовательном вызове этих элементов из командной строки операционной системы. Это, очевидно, сильно замедляет процесс программирования.
  • 4. 4 Вторым поколением средств разработки для Windows стало появление средств интегрированной среды разработки (Integrated Development Environment, IDE). Эти средства позволяют программисту редактировать, компилировать, компоновать, отлаживать программы непосредственно в одном приложении. Интегрированные средства отладки появились чуть позже и были быстро взяты на вооружение программистами. Практически все современные ИСП строятся по принципу IDE.
  • 5. 5 Следующий шаг эволюции средств разработки стал результатом развития концепции каркасов (framework). Каркас — это основа, скелет вашего приложения, на основе которого разрабатывается как структура программы, так и детали ее пользовательского интерфейса.
  • 6. 6 Каркасы представляют собой библиотеки классов, которые предлагаются разработчику как строительные блоки для создания его приложения. Каждый класс такой библиотеки представляет собой уже готовый к использованию элемент программного или пользовательского интерфейса приложения (окно, меню, таймер). При этом каркасные приложения имеют стандартную структуру, реализующую типовой алгоритм функционирования программы.
  • 7. 7 Достоинства такого подхода очевидны – типовые элементы приложения предоставляются программисту в готовом виде, и вместо многих десятков строк кода, создающих, например, обычное окно, он может воспользоваться классом «Окно», который содержит в себе все необходимые для работы окна методы и данные. В качестве примера каркасов можно назвать библиотеки MFC (Microsoft Foundation Class), OWL (Object Windows Library).
  • 8. 8 Настоящей проблемой технологии каркасов являются их ограничения. Несмотря на то, что каркасы действительно ускоряют разработку приложений, предоставляя в распоряжение разработчика многие из основных функций нормального Windows- приложения, они сразу же встают на пути приложения, которое не укладывается в привычные рамки, требует нестандартного решения, не предусмотренного разработчиками каркаса. Еще одно неудобство каркасных технологий – плохая визуализация процесса сборки приложения из классов, когда и внешний вид элемента пользовательского интерфейса, и связи между отдельными элементами становятся видны разработчику только на этапе работы программы.
  • 9. 9 Развитием концепции каркасов стало появление компонентной модели ИСП, применяемой в таких системах, как Delphi, C++ Builder. В основу программирования здесь также положена библиотека, но это уже библиотека компонент (VCL, Visual Component Library).
  • 10. 10 Компоненты не диктуют строгую структуру программы, они могут использоваться программистом по его усмотрению для достижения поставленной цели. Благодаря своей многофункциональной внутренней архитектуре, основанной на использовании свойств и событий, компоненты можно гораздо гибче адаптировать к требованиям той или иной задачи.
  • 11. 11 Помимо использования компонентной модели, многие современные ИСП строятся по технологии RAD (Rapid Application Development), характеризующейся наличием визуальной среды проектирования, представляющей еще на этапе проектирования приложения весь его графический интерфейс в виде, аналогичном тому, каким он будет на этапе работы программы. Также на этапе проектирования в визуальной форме (в инспекторе объектов) задаются основные свойства компонент, связи компонент друг с другом.
  • 12. 12 1.2. Основные достоинства системы программирования C++ Builder Система объектно-ориентированного программирования C++Builder производства корпорации Borland предназначена для операционных систем платформы Win32. С++Builder –это законченный, гибкий инструмент RAD, сочетающий мощь современного компилятора языка С++, удобство средств визуальной разработки приложений, достоинства компонентного подхода к проектированию с открытыми возможностями пополнения имеющихся в распоряжении разработчика компонент
  • 13. 13 Интегрированная среда разработки объединяет редактор форм, инспектор объектов, палитру компонент, администратор проекта и полностью интегрированные редактор кода и отладчик - инструменты быстрой разработки программных приложений, обеспечивающие полный контроль над кодом и ресурсами.
  • 14. 14 Профессиональные средства языка C++ интегрированы в визуальную среду разработки. C++Builder предоставляет быстродействующий компилятор языка Borland C++, соответствующий стандарту ANSI.
  • 15. 15 Для повышения скорости работы в системе используется эффективный инкрементальный загрузчик и гибкие средства отладки как на уровне исходных инструкций, так и на уровне ассемблерных команд. Компилятор системы С++Builder поддерживает технологии шаблонов (templates), именованных областей видимости (namespaces), обработки исключительных ситуаций (exception handling), библиотеки стандартных шаблонов STL (Standard Template Library), информации о типах времени выполнения RTTI (Run Time Type Information).
  • 16. 16 Инкрементальный компилятор и линковщик системы обрабатывают при повторной сборке проекта только те его строки, которые изменялись с момента предыдущей компиляции, тем самым экономя время сборки приложения.
  • 17. 17 Конструирование по способу "drag-and- drop" позволяет создавать приложение простым перетаскиванием захваченных мышью визуальных компонент из палитры компонент на форму приложения. Инспектор объектов предоставляет возможность оперировать со свойствами и событиями компонент уже на этапе разработки приложения, автоматически задавая значения свойств компонент, создавая заготовки функций обработки событий, которые необходимо наполнять кодом.
  • 18. 18 Механизмы двунаправленной разработки (two-way-tools) позволяют синхронизировать процесс визуального проектирования форм и генерацию исходного кода, когда манипулирование с визуальными средствами редактора форм или инспектора объектов приводит к автоматическим изменениям структуры программы, объявлений объектов программы.
  • 19. 19 Библиотека Визуальных Компонент VCL. Компоненты библиотеки VCL составляют основу программного инструментария программиста на С+ +Builder. Компонент – это объект, который своими свойствами, методами и событиями описывает поведение некоторого элемента пользовательского (кнопка, список строк в окне, меню) или программного (соединение с базой данных, сокет, таймер) интерфейса программы.
  • 20. 20 Так как каждый компонент является законченным программным объектом, то, конструируя свое приложение как совокупность взаимодействующих компонент, программист избавляется от необходимости писать большие фрагменты кода – они уже реализованы разработчиками компонент. Находясь в среде объектно- ориентированного программирования C+ +Builder, компоненты можно использовать непосредственно, менять их свойства, облик и поведение или порождать производные элементы, обладающие нужными отличительными характеристиками.
  • 21. 21 Использование модели “свойства- методы-события” PEM , реализованное в С++ Builder как расширение языка С++, определяет внутреннюю структуру компонент, превращая их в удобный инструмент визуального проектирования.
  • 22. 22 Компонент в этой модели является расширением понятия «класс» стандартного языка С++ с добавлением понятий «свойство» и «событие». Свойство является расширением понятия «компонентные данные класса», оно устанавливает способ получения и сохранения значений характеристик компонент при манипулировании ими как на этапе проектирования, так и в процессе работы программы. Событие определяет способ реакции компонента на внешние «раздражители», которыми могут стать сообщения, приходящие от пользователя, других компонент, операционной системы.
  • 23. 23 Доступ к функциям API позволяет расширять функциональность разрабатываемых приложений за счет возможностей, предусмотренных операционной системой, которые, возможно, не реализованы компонентами VCL, но которые, таким образом, не выпадают из арсенала программиста.
  • 24. 24 Хранилище объектов является инструментом новой методики хранения и повторного использования модулей данных, объектов, форм и программной бизнес- логики. Поскольку построение нового приложения на существующем фундаменте значительно экономит временные затраты, хранилище объектов предоставляет для повторного использования готовые структуры: формы и законченные программные модули.
  • 25. 25 Используя хранилище объектов, программист может начинать новый проект на твердой платформе предшествующих разработок, лишь добавляя в них фрагменты, характерные для стоящей перед ним задачи.
  • 26. 26 Поддержка промышленных стандартов ActiveX, OLE, СОМ, MAPI, Windows Sockets TCP/IP, ISAPI, NSAPI, ODBC, Unicode и MBCS существенно повышает функциональную мощь системы программирования, превращает ее в универсальное средство разработки приложений различной практической направленности.
  • 27. 27 Возможности работы с базами данных. С++Builder содержит полный набор компонент для работы с базами данных, которые вообще не требуют программирования. Разработка по способу "drag-and-drop" многократно упрощает и ускоряет обычно трудоемкий процесс программирования СУБД в архитектуре клиент/сервер.
  • 28. 28 Широкий выбор компонент управления визуализацией и редактированием позволяет легко изменять вид отображаемой информации и поведение программы. Механизм BDE (Borland Database Engine) поддерживает высокопроизводительный 32- разрядный доступ к базам данных dBASE, Paradox, Sybase, Oracle, DB2, Microsoft SQL Server, Informix, InterBase, MySQL. C++Builder использует контроллер ODBC (Open Database Connectivity) производства Microsoft для связи с серверами баз данных Excel, Access, FoxPro.
  • 29. 29 Начиная с версии 6 поддерживается технология SOAP для многоуровневых приложений баз данных, добавлен независимый от архитектуры BDE набор компонентов dbExress, позволяющий создавать приложения клиент/сервер, работающие с базами данных различных форматов, поддерживается технология доступа к базам данных ADO.
  • 30. 30 Вывод Система программирования С++Builder является современным средством разработки приложений, поддерживающим компонентный подход и построенный по принципу визуального проектирования. Удобные встроенные средства проектирования и поддержка большинства современных технологий в области разработки баз данных, сетевых приложений, мультимедийных приложений превращают С++Builder в универсальный инструмент программиста любой специализации.