Компонентами для создания компьютерной программы являются
ИНФОРМАТИКА- НАУКА, ИЗУЧАЮЩАЯ СПОСОБЫ АВТОМАТИЗИРОВАННОГО СОЗДАНИЯ, ХРАНЕНИЯ, ОБРАБОТКИ, ИСПОЛЬЗОВАНИЯ, ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ.
ИНФОРМАЦИЯ – ЭТО НАБОР СИМВОЛОВ, ГРАФИЧЕСКИХ ОБРАЗОВ ИЛИ ЗВУКОВЫХ СИГНАЛОВ, НЕСУЩИХ ОПРЕДЕЛЕННУЮ СМЫСЛОВУЮ НАГРУЗКУ.
ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНАЯ МАШИНА (ЭВМ) ИЛИ КОМПЬЮТЕР (англ. computer- -вычислитель)-УСТРОЙСТВО ДЛЯ АВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ ИНФОРМАЦИИ. Принципиальное отличие использования ЭВМ от всех других способов обработки информации заключается в способности выполнения определенных операций без непосредственного участия человека, но по заранее составленной им программе. Информация в современном мире приравнивается по своему значению для развития общества или страны к важнейшим ресурсам наряду с сырьем и энергией. Еще в 1971 году президент Академии наук США Ф.Хандлер говорил: "Наша экономика основана не на естественных ресурсах, а на умах и применении научного знания".
В развитых странах большинство работающих заняты не в сфере производства, а в той или иной степени занимаются обработкой информации. Поэтому философы называют нашу эпоху постиндустриальной. В 1983 году американский сенатор Г.Харт охарактеризовал этот процесс так: "Мы переходим от экономики, основанной на тяжелой промышленности, к экономике, которая все больше ориентируется на информацию, новейшую технику и технологию, средства связи и услуги.."
2. КРАТКАЯ ИСТОРИЯ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.
Вся история развития человеческого общества связана с накоплением и обменом информацией (наскальная живопись, письменность, библиотеки, почта, телефон, радио, счеты и механические арифмометры и др.). Коренной перелом в области технологии обработки информации начался после второй мировой войны.
В вычислительных машинах первого поколения основными элементами были электронные лампы. Эти машины занимали громадные залы, весили сотни тонн и расходовали сотни киловатт электроэнергии. Их быстродействие и надежность были низкими, а стоимость достигала 500-700 тысяч долларов.
Появление более мощных и дешевых ЭВМ второго поколения стало возможным благодаря изобретению в 1948 году полупроводниковых устройств- транзисторов. Главный недостаток машин первого и второго поколений заключался в том, что они собирались из большого числа компонент, соединяемых между собой. Точки соединения (пайки) являются самыми ненадежными местами в электронной технике, поэтому эти ЭВМ часто выходили из строя.
В ЭВМ третьего поколения (с середины 60-х годов ХХ века) стали использоваться интегральные микросхемы (чипы)- устройства, содержащие в себе тысячи транзисторов и других элементов, но изготовляемые как единое целое, без сварных или паяных соединений этих элементов между собой. Это привело не только к резкому увеличению надежности ЭВМ, но и к снижению размеров, энергопотребления и стоимости (до 50 тысяч долларов).
История ЭВМ четвертого поколения началась в 1970 году, когда ранее никому не известная американская фирма INTEL создала большую интегральную схему (БИС), содержащую в себе практически всю основную электронику компьютера. Цена одной такой схемы (микропроцессора) составляла всего несколько десятков долларов, что в итоге и привело к снижению цен на ЭВМ до уровня доступных широкому кругу пользователей.
СОВРЕМЕННЫЕ КОМПЬТЕРЫ- ЭТО ЭВМ ЧЕТВЕРТОГО ПОКОЛЕНИЯ, В КОТОРЫХ ИСПОЛЬЗУЮТСЯ БОЛЬШИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ.
90-ые годы ХХ-го века ознаменовались бурным развитием компьютерных сетей, охватывающих весь мир. Именно к началу 90-ых количество подключенных к ним компьютеров достигло такого большого значения, что объем ресурсов доступных пользователям сетей привел к переходу ЭВМ в новое качество. Компьютеры стали инструментом для принципиально нового способа общения людей через сети, обеспечивающего практически неограниченный доступ к информации, находящейся на огромном множестве компьюторов во всем мире - "глобальной информационной среде обитания".
6.ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В КОМПЬЮТЕРЕ И ЕЕ ОБЪЕМ.
ЭТО СВЯЗАНО С ТЕМ, ЧТО ИНФОРМАЦИЮ, ПРЕДСТАВЛЕННУЮ В ТАКОМ ВИДЕ, ЛЕГКО ТЕХНИЧЕСКИ СМОДЕЛИРОВАТЬ, НАПРИМЕР, В ВИДЕ ЭЛЕКТРИЧЕСКИХ СИГНАЛОВ. Если в какой-то момент времени по проводнику идет ток, то по нему передается единица, если тока нет- ноль. Аналогично, если направление магнитного поля на каком-то участке поверхности магнитного диска одно- на этом участке записан ноль, другое- единица. Если определенный участок поверхности оптического диска отражает лазерный луч- на нем записан ноль, не отражает- единица.
ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО ИЗ ДВУХ СИМВОЛОВ-0 ИЛИ 1, НАЗЫВАЕТСЯ 1 БИТ (англ. binary digit- двоичная единица). 1 бит- минимально возможный объем информации. Он соответствует промежутку времени, в течение которого по проводнику передается или не передается электрический сигнал, участку поверхности магнитного диска, частицы которого намагничены в том или другом направлении, участку поверхности оптического диска, который отражает или не отражает лазерный луч, одному триггеру, находящемуся в одном из двух возможных состояний.
Итак, если у нас есть один бит, то с его помощью мы можем закодировать один из двух символов- либо 0, либо 1.
Если же есть 2 бита, то из них можно составить один из четырех вариантов кодов: 00 , 01 , 10 , 11 .
Если есть 3 бита- один из восьми: 000 , 001 , 010 , 100 , 110 , 101 , 011 , 111 .
1 бит- 2 варианта,
2 бита- 4 варианта,
3 бита- 8 вариантов;
Продолжая дальше, получим:
4 бита- 16 вариантов,
5 бит- 32 варианта,
6 бит- 64 варианта,
7 бит- 128 вариантов,
8 бит- 256 вариантов,
9 бит- 512 вариантов,
10 бит- 1024 варианта,
N бит - 2 в степени N вариантов.
В обычной жизни нам достаточно 150-160 стандартных символов (больших и маленьких русских и латинских букв, цифр, знаков препинания, арифметических действий и т.п.). Если каждому из них будет соответствовать свой код из нулей и единиц, то 7 бит для этого будет недостаточно (7 бит позволят закодировать только 128 различных символов), поэтому используют 8 бит.
ДЛЯ КОДИРОВАНИЯ ОДНОГО ПРИВЫЧНОГО ЧЕЛОВЕКУ СИМВОЛА В КОМПЬЮТЕРЕ ИСПОЛЬЗУЕТСЯ 8 БИТ, ЧТО ПОЗВОЛЯЕТ ЗАКОДИРОВАТЬ 256 РАЗЛИЧНЫХ СИМВОЛОВ.
СТАНДАРТНЫЙ НАБОР ИЗ 256 СИМВОЛОВ НАЗЫВАЕТСЯ ASCII ( произносится "аски", означает "Американский Стандартный Код для Обмена Информацией"- англ. American Standart Code for Information Interchange).
ОН ВКЛЮЧАЕТ В СЕБЯ БОЛЬШИЕ И МАЛЕНЬКИЕ РУССКИЕ И ЛАТИНСКИЕ БУКВЫ, ЦИФРЫ, ЗНАКИ ПРЕПИНАНИЯ И АРИФМЕТИЧЕСКИХ ДЕЙСТВИЙ И Т.П.
A - 01000001, B - 01000010, C - 01000011, D - 01000100, и т.д.
Таким образом, если человек создает текстовый файл и записывает его на диск, то на самом деле каждый введенный человеком символ хранится в памяти компьютера в виде набора из восьми нулей и единиц. При выводе этого текста на экран или на бумагу специальные схемы - знакогенераторы видеоадаптера (устройства, управляющего работой дисплея) или принтера образуют в соответствии с этими кодами изображения соответствующих символов.
Набор ASCII был разработан в США Американским Национальным Институтом Стандартов (ANSI), но может быть использован и в других странах, поскольку вторая половина из 256 стандартных символов, т.е. 128 символов, могут быть с помощью специальных программ заменены на другие, в частности на символы национального алфавита, в нашем случае - буквы кириллицы. Поэтому, например, передавать по электронной почте за границу тексты, содержащие русские буквы, бессмысленно. В англоязычных странах на экране дисплея вместо русской буквы Ь будет высвечиваться символ английского фунта стерлинга, вместо буквы р - греческая буква альфа, вместо буквы л - одна вторая и т.д.
ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО СИМВОЛА ASCII НАЗЫВАЕТСЯ 1 БАЙТ.
Очевидно что, поскольку под один стандартный ASCII-символ отводится 8 бит,
Остальные единицы объема информации являются производными от байта:
1 КИЛОБАЙТ = 1024 БАЙТА И СООТВЕТСТВУЕТ ПРИМЕРНО ПОЛОВИНЕ СТРАНИЦЫ ТЕКСТА,
1 МЕГАБАЙТ = 1024 КИЛОБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 500 СТРАНИЦАМ ТЕКСТА,
1 ГИГАБАЙТ = 1024 МЕГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ,
1 ТЕРАБАЙТ = 1024 ГИГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2000 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ.
Обратите внимание, что в информатике смысл приставок кило- , мега- и других в общепринятом смысле выполняется не точно, а приближенно, поскольку соответствует увеличению не в 1000, а в 1024 раза.
СКОРОСТЬ ПЕРЕДАЧИ ИНФОРМАЦИИ ПО ЛИНИЯМ СВЯЗИ ИЗМЕРЯЕТСЯ В БОДАХ.
1 БОД = 1 БИТ/СЕК.
В частности, если говорят, что пропускная способность какого-то устройства составляет 28 Килобод, то это значит, что с его помощью можно передать по линии связи около 28 тысяч нулей и единиц за одну секунду.
7. СЖАТИЕ ИНФОРМАЦИИ НА ДИСКЕ
ИНФОРМАЦИЮ НА ДИСКЕ МОЖНО ОБРАБОТАТЬ С ПОМОЩЬЮ СПЕЦИАЛЬНЫХ ПРОГРАММ ТАКИМ ОБРАЗОМ, ЧТОБЫ ОНА ЗАНИМАЛА МЕНЬШИЙ ОБЪЕМ.
Существуют различные методы сжатия информации. Некоторые из них ориентированы на сжатие текстовых файлов, другие - графических, и т.д. Однако во всех них используется общая идея, заключающаяся в замене повторяющихся последовательностей бит более короткими кодами. Например, в романе Л.Н.Толстого "Война и мир" несколько миллионов слов, но большинство из них повторяется не один раз, а некоторые- до нескольких тысяч раз. Если все слова пронумеровать, текст можно хранить в виде последовательности чисел - по одному на слово, причем если повторяются слова, то повторяются и числа. Поэтому, такой текст (особенно очень большой, поскольку в нем чаще будут повторяться одни и те же слова) будет занимать меньше места.
Сжатие информации используют, если объем носителя информации недостаточен для хранения требуемого объема информации или информацию надо послать по электронной почте
Программы, используемые при сжатии отдельных файлов называются архиваторами. Эти программы часто позволяют достичь степени сжатия информации в несколько раз.
Среды программирования (или как их еще называют, среды разработки) - это программы, в которых программисты пишут свои программы. Иными словами, среда программирования служит для разработки ( написания) программ и обычно ориентируется на конкретный язык или несколько языков программирования (в этом случае языки, обычно, принадлежат одной языковой группе, например, Си-подобные). Интегрированная среда программирования содержит в себе все необходимое для разработки программ:
- редактор с подсветкой синтаксиса конкретного языка программирования. В нем программист пишет текст программы, так называемый программный код;
- компилятор. Он, как мы уже с вами знаем, транслирует программу, написанную на высокоуровневом языке программирования в машинный язык (машинный код), непосредственно понятный компьютеру. Язык С++ относится к компилируемым языкам, поэтому для обработки текстов его программ служит компилятор, иногда вместо компилятора (либо вместе с ним) используется интерпретатор, для программ, написанных на интерпретируемых языках программирования;
- отладчик. Служит для отладки программ. Как мы все знаем, ошибки в программах допускают абсолютно все: и новички, и профессионалы - они могут быть синтаксическими (обычно они выявляются еще на стадии компиляции) и логическими. Для тестирования программы и выявления в ней логических ошибок служит отладчик.
Мы рассмотрели базовую комплектацию среды программирования, но иногда в них присутствуют еще и такие компоненты, как система управления версиями, различные инструменты для конструирования графического интерфейса программы, браузер классов, инспектор объектов и другие.
Общее описание работы среды программирования
Давайте сейчас подробно рассмотрим процесс разработки программы в среде программирования, от момента начала написания кода программы до получения скомпилированного экзешника (файла с расширением .exe), который уже можно непосредственно запускать вне среды разработки. Как правило, для того, чтобы выполнить программу на С++, надо пройти шесть этапов:
- Первый этап - редактирование;
- Второй этап - предварительная (препроцессорная) обработка;
- Третий этап - компиляция;
- Четвертый этап - компоновка;
- Пятый этап - загрузка;
- Шестой этап - выполнение.
Мы остановимся на системе С++, ориентированной на UNIX, чтобы лучше понять этот процесс. В Windows некоторые из этих этапов будут проходить автоматически без участия программиста.
Редактирование. Это первый этап разработки программы в среде программирования и представляет он собой редактирование файла (исходного файла, который в последствии будет содержать код программы). Он выполняется с помощью редактора программ, который напоминает нам обычный текстовый редактор, такой как блокнот, word и т.д. Программист набирает в этом редакторе свою программу на С++ и, если это необходимо, вносит в нее различные изменения или исправления. Одним словом, работает с кодом программы как с обычным текстом. Имена файлов программ на С++ часто оканчиваются расширением .с или .срр. (это вы сами сможете пронаблюдать, когда загляните в папку с проектом).
Компиляция. На этом этапе компилятором проверяется текст программы на наличие синтаксических ошибок и затем, если все хорошо, текст программы с подстановками, сделанными на предыдущем этапе, преобразуется в машинный код (код на языке, уже непосредственно понятный компьютеру). Иногда его еще называют объектным. На этом этапе создается файл с расширением .obj. Также в вашей программе могут использоваться кусочки уже готового машинного кода, расположенного в иных библиотеках (например, в файлах с расширением .lib). На этапе компиляции эти библиотеки еще не будут подключены к только что созданному машинному коду. Они подключаются на следующем этапе.
Компоновка. Следующий этап называется компоновка. Программы на С++ обычно содержат ссылки на функции, определенные где-либо вне самой программы, например, в стандартных библиотеках или в личных библиотеках групп программистов, работающих над данным проектом. Объектный код, созданный компилятором, обычно содержит «дыры» из-за этих отсутствующих частей. Компоновщик связывает объектный код с кодами отсутствующих функций, чтобы создать исполняемый загрузочный модуль (без пропущенных частей). Получаем в итоге файл с расширением .exe (для Windows), либо .out (для Linux).
Загрузка. Следующий этап называется загрузка. Перед выполнением программа должна быть размещена в оперативной памяти компьютера. Это делается с помощью загрузчика, который забирает исполняемый загрузочный модуль с диска (наш файл с расширением .exe) и перемещает его в оперативную память.
Выполнение. И наконец, рассмотрим самый последний этап - выполнение. С этого момента компьютер под управлением своего ЦПУ (центральное процессорное устройство) начинает последовательно выполнять в каждый момент времени по одной команде программы. Эти моменты времени носят название такт, каждый процессор имеет свою тактовую частоту, которую задает его внутренний тактовый генератор. Чем более высокая частота работы вашего процессора, тем, соответственно, лучше и тем быстрее выполняются ваши программы. На маленьких программах это, конечно же, не очень ощутимо, но когда запускаете какую-нибудь новомодную игрушку, то все очень даже заметно.
Среда CodeBlocks
Для разработки своих программ лично я использую среду программирования CodeBlocks. Вам, как начинающим советую использовать именно ее, т.к. она проста в использовании и, соответственно, лучше приемлема для начинающего программиста. В этой среде есть минимально необходимый комплект (редактор, компилятор и отладчик) для разработки программ. А сейчас займемся установкой (скачать CodeBlocks можно в разделе "В помощь программисту"):
- Распаковываем скачанный архив и запускаем инсталляционный файл, соглашаемся с лицензией. В окошке выбора компонентов для установки выбираем либо standart, либо full (принципиальной разницы нет).
- Выбираем путь установки, либо оставляем по умолчанию, ставим.
- Процесс установки благополучно завершен.
C р е д а п р о г р ам м и р о ван и я п р е д став л я ет с о б о й н а б о р и н ст р у ме н т о в, и с п о л ь- з у ем ы х для п р е о б р а зова н и я с и мво л о в в вы п о лн и м ы е в ы ч и с л е ни я.
С р е д у п р о г р амм и ро ван и я м о ж н о с о ст а вить и з о т д ел ь н ы х ин с т р у ме н та л ь- н ы х с р е д ст в ; к р о м е т о г о , м н о г и е п о ст а вщи к и п р е д л агают ин те г р и р о в а н н ы е с р е- д ы п р о г р ам м и ро в а ни я, к о т о ры е п р е д став л яют с о б о й с и сте м ы , с о д е р ж а щ и е бо ль ш у ю часть или все п е р е ч и сле н н ы е д алее и н с т р у ме н та ль ны е с р е д ства.
Р ед а к т о р – это, ин ст р у ме н та льн о е с р е д ство д л я с о з д а н и я и и зме н е н и я и с- х од н ы х ф а й л о в, к о т о р ы е яв л яются с и м вол ь ны м и фа й л а ми, с о д е р жа щ и м и н а п и- са н н у ю на язы к е п р о г р ам м и р о в а ни я пр о г р амм у .
Компил я т о р т р а н с л ир у ет с и мволы и з и с х о д н о го ф а й л а в об ъ ек т н о й м о- д у ль , к о т ор ы й с о д е р ж и т к о м а н д ы в ма ш и н н о м к о д е д л я к о н к р е т н о го к о м ью т е р а .
И н т е р п р е т а т о р н е п о с р е д ст в е н н о в ы п о л н я ет и с хо д н ы й к о д п р о г р ам м ы в
о т л и ч и е о т к о м п и л я т о р а, п е р ев о д я ще г о исх о д н ы й фа й л в о бъ ект н ы й .
Би б ли о т е к ар ь под д е р ж и в ает с о во к у п но с т и об ъ ек т н ы х ф а й л о в, н азыв а е- мые б и б ли о тек а ми.
Комп о н о в щ и к , и л и р е д ак т о р связ е й , с о би р ает о б ъ е кт н ы е фа й л ы о т д е л ь- н ы х к о м п о н е н т о в п ро г р а ммы и р аз р е ш аетвне ш н и е сс ы л к и о т о д н о г о к о м п он е н та к д р у г о м у , ф ор м и р у я и с п о лн яе м ы й фа йл .
За г р у з ч ик к о п ир у ет и с по л н яе м ы й ф а й л с д и ска в п амять и и н и ц и али з и -
р у ет ком п ью т е р п е р ед вы по л н е ни ем пр о г р ам м ы .
О т л а д ч ик – э т о и н ст р у ме н та льн о е с р е д ст в о , к о т о р о е д ае т воз м о ж н о сть п р о г р ам м и сту у пр а в л ять вы по л н е ни е м п р о г р ам м ы н а у р о вне о т д ел ь ны х о п е р а- т о р о в д л я д и аг н о с т и ки о ш и б о к.
С р е д ства т е ст и р о в а ни я авт о мати з и р у ю т п ро ц есс т ест ир о в а н и я пр о г р амм, с о з д авая и в ы п о лн я я тесты и ана л и з и р у я р ез у ль таты тест и р о ва н и я.
С р е д ства к о н ф и г у ри р о в а ни я авт о мати з ир у ю т с о зд а н и е пр о г р амм и п р о- слеживают и зме н е н и я д о у ро в н я и сх о дн ы х фа й л о в.
И н тег ри ро в а н н ая с р е д а п р о г р а мм и р о в а н и я ( I D E – I n t e g r a t ed D e v e l o p m e n t
E n v i r o n m e nt ) это к о м п л ек с н о е с р е д ст в о , вк лю чаю щ е е все н е о б хо д и м о е п р о г р ам м и сту для соз д а н и я п р о г р ам м н о го о б е с п еч е н и я .
В за в и с и м о с т и о т т о г о , д л я к ак и х п л а т форм м о ж н о п и сать п р о г р а ммы и н а каких п л а т ф ор м ах р а бо т а ет сама I DE , с р е д ы р а з р а б о т к и р азделяю т ся н а к р о с с - п л ат ф ор м е н н ы е ( п о дд е р ж и ва ю т р а б о ту с р аз н ы м и п л ат ф о р ма м и ) и л и п л а т ф о р- ме н н о -за в и с и м ы е ( т е, к о т о р ы е р а б о та ю т т о ль ко с о д н о й пл а тф о р м ой ).
Расс м о т р и м н е к о т о ры е п ри м е р ы I DE .
N etBe a n s . И н т е г р и р о ва н н ая с р е д а р азр а бо т ки п ри л о ж е н и й , б е с п л атн а я I D E с о т к р ы тым и с х о д н ы м к о до м. О н а пр е д н аз н ач е н а дл я п р о ф ес с и о н ал ь но й р аз р а б о т к и д еск т о п п ри л о ж е н и й , w e b - п р и ло же ни й , к о р по р ати в н ы х с и ст е м, п р о г р амм д л я м об и ль н ы х у ст ро й ств.
A pt a na S t ud i o . Бе с п л атн а я I DE , п р о ф е сс и он ал ь н ая с р е д а р аз р а б о т к и W eb
2 .0 п р и ло же ни й и с п о ль з у ется д л я с о з д а ни я w e b - п р и ло же ни й с п о д д е р ж к о й вс е х с о в р ем е н н ы х т е х н ол о г и й – HT M L 5 , C S S 3 , J a v aS c r i pt , R u b y , Rails , PH P и P y t h on .
Ec l i p s e . Бе с п л атн а я п р о г р ам м н ая п л а т ф ор м а с о т к р ы т ы м и с х од ны м к о д о м,
к о н т р о ли р у ется о р г а ни з а ц и ей E c l ip s e F o un d a ti on . Н а пи с а н а н а яз ы ке пр о г р а м - миров а н и я J a v a и о с но в н о й ц ел ь ю ее с о з д а н и я яв л яется п о в ы ш е н и е п ро д у кт и вн о с т и п р о ц е с са р а з р а б о т к и п ро г р а м м н о г о о б ес п еч е ни я. E c l ips e яв л яется п л а т фо р м о й д л я р а з р а б о т к и лю б ы х и н тег р и р о в а н н ы х с р е д п р о г р ам м и р о в а н и я и п р ак т и че с ки л ю бо г о кли е н т ск о г о п ро г р а м м н о г о о б ес п еч е ни я.
D e v - C + +. И н тег ри ро в а н н ая с р е д а р азр а бо т ки н а C и C ++, по л н о -
ф у н к ц и он ал ь н ая C + + I D E .
Sp y der . S p y d er ( р а н ее P y d ee ) – c в о б о дн а я и к р о сс п л а т ф ор м е н н ая и н т е р - акт и в н ая I D E д л я н а у ч ны х р ас ч ет о в н а язы к е P y th o n , о б е с п е ч и ва ю щая п ро с т о ту и с п о ль зов а н и я ф у н к ц ио н ал ь н ы х в о з м о ж н о ст е й и л е г к о в е с н о сть п р о г р а мм н о й част и .
В контексте архитектуры программного обеспечения компонент - это часть программного обеспечения, которая может взаимодействовать с другими частями программного обеспечения в соответствии с правилами модели компонентов .
Содержание
определение
Слово «компонент» происходит от латинского componere ( соединять ). Однако в программной инженерии термин «компонент» используется по-разному с точки зрения содержания. Его часто ошибочно используют для обозначения программного модуля , что демонстрирует сходство обоих терминов (см. Главу « Интерфейсы компонентов» ).
В 1996 году на Европейской конференции по объектно-ориентированному программированию (ECOOP) программный компонент был определен следующим образом:
«Программный компонент - это единица композиции с интерфейсами, указанными в контракте, и только с явными зависимостями контекста. Программный компонент может быть развернут независимо и может быть составлен третьими сторонами ».
«Программный компонент - это элемент сборки с определенными в контракте интерфейсами и только явными контекстными зависимостями. Программный компонент может поставляться независимо и является строительным блоком для третьих сторон ».
В более общем плане и в связи с новой концепцией разработки на основе компонентов компонент определяется следующим образом, например:
«Программный компонент - это программный элемент, который соответствует компонентной модели и может быть связан и выполнен с другими компонентами без изменений в соответствии со стандартом композиции ».
Компонент характеризуется тем фактом, что он представляет собой элемент компонентного приложения и имеет определенные интерфейсы для подключения к другим компонентам. Точная форма компонента зависит от конкретной модели компонента .
Компонентные интерфейсы
Интерфейс компонента является связующим интерфейсом ( интерфейсом ) с остальной частью программного обеспечения. Таким образом, интерфейс можно сравнить с контрактом между компонентом и остальной частью программного обеспечения . Явное определение зависимостей контекста проясняет, насколько компонент фактически независим от своей среды.
Интерфейсы и четко определенные условия контекста позволяют повторно использовать компонент. Чем ниже контекстные зависимости компонента, тем меньше требований должно быть выполнено для использования компонента. Отсюда следует, что чем меньше зависимостей, тем проще повторно использовать. В то же время, низкие зависимости позволяют поддерживать и развивать компоненты независимо. С другой стороны, независимость компонентов означает, что они содержат избыточность. Поэтому разработчик компонента должен найти компромисс.
Интерфейс можно сравнить с контрактом между компонентом и остальной частью программного обеспечения. Таким образом, интерфейс определяет, как компонент может быть повторно использован. В то же время он определяет, как другие компоненты могут взаимодействовать с этим компонентом.
Компоненты , которые расширяют программное обеспечение иногда называют надстройки , модулями или подключаемыми модулями. Следует отметить, что обратное не обязательно. Например, можно назвать набор различных математических функций модулем. Модуль может быть независимым по своим функциям. Однако, если у него нет общего интерфейса привязки, модуль не соответствует требованиям компонента.
Интерфейсы можно разделить на разные типы. Примеры различных типов интерфейсов:
- Графический интерфейс пользователя (GUI), также называемый человеко-машинным интерфейсом (HMI): позволяет компоненту взаимодействовать с пользователем через графический интерфейс пользователя. Управляется, например, с помощью мыши или экрана.
- Командная строка (CLI): представляет особый интерес, когда компоненты должны вызываться системой без необходимости что-либо делать пользователю, например, для обработки повторяющихся задач через определенные промежутки времени. К такому интерфейсу обращаются путем ввода команд в командной строке.
- Интерфейсы данных : позволяют считывать и выводить данные из компонента. Доступ к этому интерфейсу осуществляется внутри программы.
- Программный интерфейс (API): этот интерфейс позволяет программисту и другим компонентам обращаться к функциям и услугам, предлагаемым компонентом, с помощью программных команд. Если не указано иное, термин «интерфейс» в дальнейшем всегда означает API.
Компонент может иметь разные интерфейсы одного типа. Это может быть необходимо, например, для интеграции одного и того же компонента в разные системы. Это увеличивает возможности повторного использования.
Преимущество и выгода
Разработка компонентов направлена на снижение затрат и повышение гибкости в разработке продукта. Затраты на разработку компонентов амортизируются за счет их повторного использования . И наоборот, разработка программного обеспечения ускоряется за счет использования компонентов, поскольку в идеальном случае она состоит только из сборки и параметризации компонентов (см. Также модульность ).
Компоненты могут быть неисправными. Это приводит к дополнительному требованию: независимость компонента также означает, что компонент обрабатывает свои возможные ошибки самостоятельно. Это делает его закрытым. В случае ошибки это упрощает локализацию ошибки. Исключение из этого правила может быть сделано только в том случае, если такое поведение является частью интерфейсного контракта. Это означает, что ошибка в компоненте не приводит к неправильному поведению всех компонентов, поскольку они ведут себя в соответствии с условиями контракта. Это также снижает затраты на разработку.
Формы повторного использования
Исходя из формы повторного использования компонента, его можно условно разделить на следующее:
черный ящик Компонент включается в систему, которая разрабатывается как самостоятельный модуль. Этот компонент нельзя изменить. Также нельзя делать никаких заявлений об их внутренней структуре и функциональности. Компонент используется исключительно на основе определенных интерфейсов и спецификаций компонента. белая коробка Компонент повторно используется как открытый модуль. Слово «открытое» означает, что единство изменчиво. Его можно адаптировать к новым требованиям. Кроме того, можно просмотреть и проанализировать их внутреннюю структуру. Таким образом, компонент рассматривается как фрагмент программного обеспечения. Компоненты используются не только на основе определенных интерфейсов, но также путем анализа текущей реализации этих компонентов. серый ящик Промежуточные формы черного и белого ящика.
Компоненты во время разработки
Компоненты могут быть интегрированы, например, в среду разработки . Затем они проявляют свои характеристики и поведение уже на стадии разработки. Это большое преимущество для программиста: он может видеть, как компонент будет выглядеть или работать во время программирования.
Пример палитры компонентов
Быстрая разработка приложений возможна только с использованием готовых компонентов .
Реализации
Стандарты
В программном обеспечении компонентная технология, по мнению многих, станет краеугольным камнем разработки программного обеспечения в ближайшие несколько лет. Сосуществуют разные стандарты. Помимо CORBA , эти стандарты обычно зависят от языка программирования, приложения или платформы. Они образуют так называемые составные миры или рынки. Примеры таких миров:
Инструменты разработки
Существуют специальные среды разработки и языки программирования для компонентной разработки , такие как:
Читайте также: