Translate
вторник, 8 мая 2012 г.
понедельник, 7 мая 2012 г.
Web 2.0
Web 2.0
Сьогодні Всесвітня павутина (World Wide Web) найбільше всесвітнє багатомовне сховище інформації в електронному вигляді: десятки мільйонів пов'язаних між собою документів, що розташовані на комп'ютерах, розміщених на всій земній кулі. Вважається найпопулярнішою і найцікавішою службою мережі Інтернет, яка дозволяє отримувати доступ до інформації незалежно від місця її розташування. Кількість користувачів Інтернету є надзвичайно великою (близько
мільярда) і продовжує невпинно зростати.
Впродовж останніх років у розвитку Інтернету можна виділити ряд тенденцій, які стали визначальними. Їх підгрунтям є нові технології та підходи до розробки, підтримки, використання Веб-ресурсів, обміну інформацією між ними тощо. Ці підходи і технології отримали спільну назву “Веб 2.0” і позиціонуються багатьма дослідниками Вебу як новий якісний крок у розвитку Інтернету.
Впродовж останніх років у розвитку Інтернету можна виділити ряд тенденцій, які стали визначальними. Їх підгрунтям є нові технології та підходи до розробки, підтримки, використання Веб-ресурсів, обміну інформацією між ними тощо. Ці підходи і технології отримали спільну назву “Веб 2.0” і позиціонуються багатьма дослідниками Вебу як новий якісний крок у розвитку Інтернету.
Розрізняють три
етапи розвитку Веб.
v Web 1.0 є ретронімом
поняття, яке відноситься до статусу WWW і будь-якого стилю дизайну веб-сайту,
що використовується перед появою терміна Web 2.0. Це - загальний термін, який
був створений, щоб описати Мережа перед явищем вибух міхура «. Com» в 2001,
який і був помічений багатьма як поворотний момент для Інтернету. Найпростішою
формулюванням сенсу Web 1.0 швидше за все слід вважати «той Web, який був до
Web 2.0». Це звичайна практика - порівняння сайтів за типом використовуваної
технології.
v Web 2.0 – це мережне програмне забезпечення, що підтримує групові взаємодії та
діяльність – блоги, Вікі, мультимедійні сервіси, геосервіси, соціальні
закладки. Сучасний Веб еволюціонував у платформу, яка об’єднує
всі сполучені пристрої. Клієнтом Веб 2.0 – додатку може бути: звичайний
браузер; програма, що працює у фоновому режимі; feed-агрегатор; додатки,
встановлені на мобільні пристрої тощо.
Веб 2.0 може розглядатися як платформа для розробників програмного забезпечення (використання API Веб-додатків для створення нових програмних продуктів тощо).
Веб 2.0 – це також і платформа для користувача, яка дозволяє йому здійснювати різноманітну діяльність on-line, використовуючи лише браузер: працювати з текстом, електронними таблицями, e-mail, зображеннями, звуком та відео; зберігати файли; працювати спільно з іншими користувачами; отримувати новини тощо.
Веб 2.0 може розглядатися як платформа для розробників програмного забезпечення (використання API Веб-додатків для створення нових програмних продуктів тощо).
Веб 2.0 – це також і платформа для користувача, яка дозволяє йому здійснювати різноманітну діяльність on-line, використовуючи лише браузер: працювати з текстом, електронними таблицями, e-mail, зображеннями, звуком та відео; зберігати файли; працювати спільно з іншими користувачами; отримувати новини тощо.
v Web 3.0 - нова
потужна технологія створення веб-застосунків, розроблена першочергово для
максимальної зручності і комфорту користувачів, і як наслідок, значно спрощує
розробку самих застосунків на відміну від Web 1.0 та Web 2.0.


Сервіси Веб2.зручно
використовувати у навчанні учнів та студентів. Яскравим прикладом є дистанційне
навчання, яке здійснюеться за допомогою текстів в електронному форматі, мультимедійними
та відео ресурсами , сервісами для
колективного використання та спілкування як в онлайн так і в офлан режимах на
зразок Вікі, форумів, блогів, вебінарів, підкатів тощо. Вебінар
- технологія, яка дозволяє в повній мірі відтворити умови
колоборативної (спільної) форми організації навчання, а саме семінарського,
лабораторного занять, лекцій, використовуючи засоби аудіо- , -відео обміну
даними та спільної роботи з різноманітними об'єктами, незважаючи на те, що його
учасники можуть фізично знаходитися в різних місцях. Таким чином
створюється віртуальна «аудиторія», що об'єднує всіх учасників вебінару.
Вебінаром можна вважати віртуальний семінар, організований за допомогою
Інтернет-технологій. Вебінар має головну ознаку семінару – інтерактивність, яка
може бути забезпечена за допомогою моделі: доповідач – слухачі, які ставлять
питання та обговорюють їх, причому в ролі доповідача може бути як викладач так
і студент, залежно від ролі, яку він має виконувати за сценарієм проведення
такого семінару.
На мою
думку використання Web 2.0 у навчані є дуже ефективним. Адже перед
нами розкривається багато методів опрацювання та отримання даних.
Приклади
Веб 2.0 проектів
Вікіпедія — Вільна багатомовна енциклопедія
Google Earth — Google-карти
Flickr — онлайн-фотоальбом
Netvibes — Персональний робочий стіл
Digg.com — Ресурс новин
uCoz — Веб хостинг
Існує думка що епоха Web 2.0 вже закінчується – наступає час Web 3.0. Так, якщо концепція ВЕБ 2.0 була побудована
на активних користувачах в таких ресурсах як соціальні мережі, блоги тощо, то
під ВЕБ 3.0 розуміють персоналізацію мереж. Іншими словами, соціальні
сервіси новго покоління обробляють данні про користувача і підстроюються
відповідного до його уподобань. Наприклад, на запит користувача “Покупка
спінінгу” система дасть відомості про найближчі магазини снастей для риболовлі.Вікіпедія — Вільна багатомовна енциклопедія
Google Earth — Google-карти
Flickr — онлайн-фотоальбом
Netvibes — Персональний робочий стіл
Digg.com — Ресурс новин
uCoz — Веб хостинг
Розвиток Інтернету відбувається циклічно: на кожен цикл приходиться приблизно 3 роки. Виходячи з цього можна сказати, що підходить до кінця період ВЕБ 2.0 і починається новий період “індивідуального” Інтернету. Згадаємо трохи історії. На самому початку розвитку Інтернету для пошуку необхідної інформації в мережі достатньо було скористатися каталогами (хоча б rambler-ом). Мережа розросталася, контент почали упорядковувати пошукові машини, зараз вже і вони не справляються з цим завданням. Зараз при запиті ми отримуємо не ту інформацію, яка нам потрібна, а списки сайтів де зустрічається даний текст. користувачу необхідно самостійно шукати серед цих списків інформацію, яка йому потрібна. Такми чином виникає потреба в зміні алгоритмів пошуку та представлення інформації.
З розвитком ВЕБ 2.0 в мережі з”явилося багато персоналізованих даних. Ми спілкуємося в соціальних мережах, ведемо блоги, публікуємо фотографії на Flickr, відеофайли на YouTube тощо. Всі ці дані містять індивідуальну інформацію про кожного з нас. Навіть якщо користувач не публікує нічого в мережі він переглядає сайти, і аналіз того що він переглядає дає інформацію про самого користувача.
Якщо якимось чином акумулювати всі ці дані, то є можливість скласти соціальний портрет користувача мережі. І мережа відповідно до цього портрету може підстроюватися.
Поки що це лише в теорії, тому що є багато нюансів. Наприклад ця теорія має підґрунтя якщо в кожного користувача персональний комп”ютер з якого він працює.
Ще однією з ознак ВЕБ 3.0 є персоналізація речей. Поясню ці ідею на прикладі. Скажімо ви бажаєте приготувати піцу, автоматично холодильник аналізує ті продукти які в ньому є, якщо чогось не вистачає він автоматично заходить на інтернет магазин і купує їх.

Структурний підхід до побудови алгоритмів
Структурний підхід до побудови алгоритмів
Правильна алгоритмічна конструкція
Під алгоритмом
розуміють деяку послідовність кроків, яка дозволяє отримати визначений результат. Існує три основні способи опису
алгоритмів: текстовий, графічний і використання навчальної
алгоритмічної мови. Графічний спосіб
являє собою використання для створення алгоритму набору
геометричних
фігур (блоків), що моделюють основні елементи цього алгоритму, а також стрілок,
що поєднують ці фігури. Алгоритм створений графічним способом називають блок-схема.
Основні блоки алгоритму:
Лінійний
алгоритм —
це алгоритмічна конструкція, при якій команди виконуються
Розгалуження — це алгоритмічна конструкція, що
дозволяє виконувати ту чи іншу
команду в
залежності від виконання деякої умови. Розрізняють повне і часткове
розгалуження.
Повторення
(цикли) — це алгоритмічні конструкції, що
дозволяють виконувати одну і ту послідовність
дій певну кількість разів. Цикли поділяють на основні три типи: з
передумовою, з
після умовою і безумовні (з параметром).
Принцип роботи
циклу з передумовою полягає в тому, що спочатку перевіряється умова циклу, якщо
умова виконується, то виконується команда або серія команд циклу, інакше,
відбувається вихід з тіла циклу і управління передається наступній команді
команді програми. Принцип роботи циклу з після умовою полягає в тому, що
спочатку виконуються команди в тілі циклу і тільки після цього відбувається
перевірка умови, якщо вона виконується, то знову виконуються оператори циклу,
інакше відбувається вихід з циклу.
Цикл з
параметром працює по наступному принципу: спочатку присвоюється деяке
стартове
значення визначеному параметру. Потім робиться перевірка умови, що вимагається
від параметра і якщо вона є істинною, то команди циклу знову виконуються,
інакше відбувається вихід з циклу. Використовуючи вище перелічені алгоритмічні
структури можна створювати алгоритм рішення будь-якої задачі, яка може бути
вирішена алгоритмічним шляхом.
Складання
алгоритму шляхом заміни його команд на базові структури називається вкладенням структур. Комбінації
правильних алгоритмів, складених з використання трьох перелічених базових
структур, також є правильними алгоритмами.
Теорема
про структурування
В основі
технологічних принципів структурного програмування лежить твердження про те, що
логічна структура програми може бути виражена комбінацією трьох базових
структур: послідовності,
вибору і повторення. (це зміст
теореми Бема-Якопіні).
Метою
структурування є перетворення неструктурованої програми на еквівалентну їй
структуровану, тобто таку, що складається з обмеженого набору керуючих
алгоритмічних структур. Методи структурування ґрунтуються на поняттях
функціонального вузла, а також на поняттях простої, елементарної і складеної
програми.
Функціональним вузлом називається частина
алгоритму, що має один вхід та один вихід. Прикладом функціонального вузла є
окремий оператор - присвоєння, виклик процедури тощо.
Програма називається простою, якщо вона має
один вхід, один вихід і через кожен її функціональний вузол проходить деякий
шлях від входу до виходу. Проста програма може містити прості підпрограми. Вся
проста програма може розглядатись як один функціональний вузол.
Елементарна програма — це проста програма, що
не містить підпрограм, які складаються більше ніж з одного вузла. Зазначимо, що
існує лише обмежена кількість елементарних програм, з яких основними є три
програми, які зображені на рис. 6.1.
Рис. 6.1. Основні елементарні програми: послідовність
(а), вибір (б), цикл із передумовою (в)
Якщо функціональний вузол елементарної
програми замінити елементарною програмою, утвориться складена програма. Якщо
вузол складеної програми замінити елементарною програмою, знов утвориться
складена програма. В такий спосіб із будь-якої множини елементарних програм
утворюється певний клас складених програм. Так, множина {послідовність,
if...then...else} формує клас програм без циклів, а множина {if...then...else.
while...do} приводить до утворення класу програм, які містять цикли. Отже,
будь-яка підмножина множини елементарних програм є базисною множиною для
певного класу складених програм. Складена програма, побудована з певної множини
елементарних програм, називається структурованою.
Суть проектування алгоритмів «Зверху вниз»
Проектування
алгоритму згори донизу подібне написанню твору
згори до низу. Спочатку, як і в творі, ві маєте записати на природній мові
те, що ви хочете зробити в алгоритмі. Якщо ви не зможете цього зробити, то очевидно,
що ви не зможете скласти алгоритм для даниї задачі. Чим більше обсяг
проектування, тим ретельнішої деталізації він потребує.
Таке проектування
передбачає спочатку визначення алгоритму
розв’язання задачі в загальних рисах, а потім поступове уточнення його
структури і змісту шляхом розбивання
кожного кроку на малі за обсягом під задачі до найпростішого вигляду. Тоді
кожній під задачі буде відповідати один модуль алгоритму.
Наступні дії з
проектування згори донизу полягають у перевірці правильності складеного
алгоритму. Оскільки алгоритм виконується формально, то, уявивши себе на місці
виконавця, під час перевірки ви зможете легко виявити помилку.
Для успішного
використання переваг структурного підходу до складання алгоритму його слід
подати у вигляді модулів.
Модульне
складання алгоритму – це процес поділу алгоритму на логічно завершені частини,
які називають модулями, і подальшої алгоритмізації кожної з них.
Якщо проведено
проектування алгоритму зверху донизу, то він, звичайно, розкладається на
сукупність під задач для можливих модулів. Кожен модуль має своє призначення,
відмінне від інших модулів. Так, кожен крок алгоритму можна розглядати як
окремий модуль, який є незалежним від інших. Він може бути представлений
послідовністю більш простих команд.
Для кожного
модуля, як і для будь-якого алгоритму, повинні бути визначені:
1) Алгоритм
розв’язання задачі;
2) Область
допустимих значень вихідних даних;
3) Область
можливих вихідних даних;
4) Можливі
хибні ситуації.
Найбільш зручним
розміром модуля є розмір, який дорівнює кількості рядків на сторінці (від 40 до
60). У цьому випадку алгоритм легко сприймається й охоплюється як єдине ціле.
Слід намагатися
не просто скласти алгоритм із кількох частин, а робити це розбиванням алгоритму
на модулі, яке б відповідало отриманому на стадії проектування згори донизу.
Мета структурної алгоритмізації – забезпечити
складання алгоритму від початку до кінця відповідно до його логіки.
Алгоритм
і програма
Програмування є
процесом складання програми на основі розробленого алгоритму. Програма являє
собою алгоритм дій для ПЕОМ, записаний зрозумілою для машини мовою
програмування у визначеній формі.
Мова
програмування – це мова, якою записується алгоритм для виконання на ПЕОМ.
Класифікація
мов програмування
Всі існуючи мови програмування можна поділити на дві групи:
- мови низького рівня;
- мови високого рівня.
До мов низького рівня належать мови асемблера (від англ. to assemble -
складати, компонувати). У мові асемблера використовуються символьні позначення
команд, які легко зрозуміти і запам'ятати. Замість послідовностей двійкових
кодів команд записуються їх символьні позначення, а замість двійкових адрес
даних, які використовуються під час виконання програми, - символьні імена цих
даних. Іноді мову асемблера називають мнемокодом або автокодом.
Більшість програмістів при складанні програм користуються деякою мовою
високого рівня. Для описування алгоритмів такою мовою використовується певний
набір символів - алфавіт мови. З цих символів складаються так звані службові
слова мови, кожне з яких має певне призначення. Службові слова зв'язуються одне
з одним в речення за певними синтаксичними правилами мови і визначають деяку
послідовність дій, які мусить виконати комп'ютер.
Використання мов високого рівня надає можливість описувати програми для
комп'ютера, використовуючи загальноприйняті позначення операцій і функцій. Та
програми, що написані на мовах програмування високого рівня (алгоритмічних
мовах програмування), комп'ютер "не розуміє". Для того, щоб він міг
виконати програму, її потрібно перекласти на машинну мову. Для такого перекладу
використовують спеціальні програми, що мають назву - транслятори.
Транслятор - це програма, що призначена для перекладу тексту програми з
однієї мови програмування на іншу. Процес перекладання називається трансляцією.
Розрізняють два типи трансляторів:
- компілятори
- інтерпретатори
Компілятор - це програма, призначена для перекладу в машинні коди програми, що
написана мовою високого рівня.
Процес такого перекладання називається компіляцією.Кінцевим результатом
роботи компілятора є програма в машинних кодах, яка потім виконується ЕОМ.
Скомпільований варіант програми можна зберігати на дискові. Для повторного
виконання програми компілятор вже не потрібен. Досить завантажити з диска в
пам'ять комп'ютера скомпільований перед цим варіант і виконати його. Існує
інший спосіб поєднання процесів трансляції та виконання програм. Він
називається інтерпретацією.
Інтерпретатор - це програма, що призначена для трансляції та виконання вихідної програми
по командах (на відміну від транслятора, який цей процес виконує в цілому).
Такий процес називається інтерпретацією.
У процесі трансляції відбувається перевірка програми на відповідність до
правил її написання. Якщо в програмі знайдені помилки, транслятор виводить
повідомлення про них на екран монітора. Інтерпретатор повідомляє про знайдені
помилки після трансляції кожної команди програми, а компілятор - після завершення
компіляції всієї програми. Знайти та виправити в цьому випадку помилки значно
складніше, ніж при інтерпретації. Через це програми-інтерпретатори розраховані,
в основному, на мови, що призначені для навчання програмуванню, і
використовуються програмістами-початківцями.
Парадигма
програмування
Парадигма програмування — це спосіб
мислення розробника програми.
Існують різні парадигми програмування,
тобто різні принципи, за якими будуються програми.
- Процедурне програмування;
- Модульне програмування;
- Об'єктно-орієнтоване програмування;
- Функційне програмування;
- Імперативне програмування;
- Декларативне програмування;
- Прототипне програмування;
- Аспектно-орієнтоване програмування;
- Предметно-орієнтоване програмування;
- Функціонально-орієнтоване програмування.
Але
основними виділяють чотири парадигми програмування:
1.Процедурне
програмування. Концепція процедурного програмування є історично першою та
найбільш близькою до класичного визначення програми. В основі програми,
побудованої за процедурними принципами, лежить послідовна зміна вхідних даних,
поки не буде отриманий результат, причому кожна операція розписується в явному
вигляді. Дані, з якими оперує програма, зберігаються в іменованих ділянках
оперативної пам'яті, які називаються змінними. Найбільш відомими процедурними
мовами є Паскаль і Сі в їх авторських варіантах.
2. Функціональне програмування. Виконання програми розглядається як виклик деякої функції, яка, в свою чергу, може викликати інші функції. Найбільш відомим представником цієї парадигми є Лісп.
3. Логічне програмування. В основі виконання програми лежить механізм автоматичного доведення теорем на основі логічного виведення. Найбільш відомий представник - Пролог.
4. Об'єктно-орієнтоване програмування. Ця парадигма є на сьогодні найбільш популярною і стрімко розвивається. Об'єктна програма розглядається як сукупність паралельно існуючих сутностей (об'єктів), які взаємодіють між собою. Кожний об'єкт вміє виконувати певні операції та характеризується певною поведінкою. Історично першою об'єктною мовою вважається Smalltalk. Найбільш відомими представниками цієї парадигми є C++; Object Pascal, що лежить в основі системи візуального програмування Delphi; Java.
2. Функціональне програмування. Виконання програми розглядається як виклик деякої функції, яка, в свою чергу, може викликати інші функції. Найбільш відомим представником цієї парадигми є Лісп.
3. Логічне програмування. В основі виконання програми лежить механізм автоматичного доведення теорем на основі логічного виведення. Найбільш відомий представник - Пролог.
4. Об'єктно-орієнтоване програмування. Ця парадигма є на сьогодні найбільш популярною і стрімко розвивається. Об'єктна програма розглядається як сукупність паралельно існуючих сутностей (об'єктів), які взаємодіють між собою. Кожний об'єкт вміє виконувати певні операції та характеризується певною поведінкою. Історично першою об'єктною мовою вважається Smalltalk. Найбільш відомими представниками цієї парадигми є C++; Object Pascal, що лежить в основі системи візуального програмування Delphi; Java.
Сучасні технології програмування
базуються на принципах об’єктно-орієнтованого програмування, завдяки якому
складні програмні ладні програмні проекти реалізуються у вигляді сукупності
об’єктів певної ієрархії. Їх взаємодія встановлюється шляхом передачі
повідомлень між об’єктами. На підтримку нової технології програмування були
створені нові мови,
наприклад C++, Java, Modula.
Організація програм на засадах інкапсуляції, успадкування, поліморфізму
дозволила значно підвищити рівень програмних проектів.
Важливий
напрям в розвитку технологій склали розробки інтегрованих інструментальних
засобів, які базуються на концепціях життєвого циклу і управління якістю
автоматизованих інформаційних технологій і систем, які являють собою комплексні
технології, орієнтовані на створення складних автоматизованих управлінських
систем і підтримку їх повного життєвого циклу або ряду його основних етапів.
Подальший розвиток робіт в цьому напрямку привело до створення ряду
концептуально цілісних, оснащених високошвидкісними засобами проектування і
реалізації варіантів, доведених по якості і легкості тиражування до рівня програмних
продуктів технологічних систем, які отримали назву CASE-систем або CASE-технологій
(Computer-Aided Software/System Engeneering).
На даний час не існує загальноприйнятого визначення CASE-технологій. Зміст
цього поняття здебільшого визначається переліком завдань, які вирішуються з
допомогою CASE-технологій, а також сукупністю методів і засобів, які при цьому
застосовуються. CASE-технологія охоплює сукупність методів аналізу,
проектування, розробки і супроводження автоматизованої інформаційної системи, підтриманої
комплексом взаємозв'язаних засобів автоматизації. CASE-технології - це
інструментарій для системних аналітиків, розробників і програмістів, який
дозволяє автоматизувати процес проектування і розробки автоматизованих
інформаційних систем і який міцно ввійшов в практику їх створення і супроводу.
При цьому CASE-технології використовуються не тільки, як комплексні
технологічні конвеєри для виробництва автоматизованих інформаційних систем, але
і, як потужний інструмент вирішення дослідницьких і проектних задач, таких, як
структурний аналіз предметної області, специфікація проектів засобами мов
програмування четвертого покоління, випуск проектної документації, тестування
реалізацій проектів, планування і контроль розробок, моделювання ділових
прикладних пакетів з метою розв'язку задач оперативного і стратегічного
планування і управління ресурсами та інших. Основна мета CASE-технології
полягає в тому, щоб відділити проектування автоматизованих інформаційних систем
від її кодування і наступних етапів розробки, а також максимально
автоматизувати процеси розробки і функціонування систем.
Переваги CASE-технологій.
З самого початку метою розвитку
CASE-технологій було подолання обмежень при використанні структурних
методологій проектування 1960 - 1970-х рр. (складності розуміння, великої
трудомісткості і вартості використання, складності внесення змін в проектні
специфікації і т.д.) за рахунок їх автоматизації і інтерпретації підтримуючих
засобів. Таким чином, CASE-технології не можуть вважатися самостійними методологіями,
вони тільки розвивають структурні методології і роблять ефективнішим їх
застосування за рахунок автоматизації.
Крім автоматизації структурних методологій і,
як наслідок, можливості застосування сучасних методів системної і програмної
інженерії, CASE-технологіям притаманні такі переваги:
1.
покращують якість
створюваних автоматизованих інформаційних систем за рахунок засобів
автоматичного контролю (перш за все, контролю проекту);
2.
дозволяють за
короткий час створювати прототип майбутньої автоматизованої інформаційної
системи, що дає можливість на ранніх етапах оцінити очікуваний результат;
3.
прискорюють
процес проектування і розробки системи;
4.
звільняють
розробника від рутинної роботи, дозволяючи йому цілком зосередитися на творчій
частині розробки;
5.
підтримують
розвиток і супроводження розробки автоматизованої інформаційної системи;
На даний час CASE-технологія оформилася в
самостійний наукомісткий напрям, що призвело до створення потужної
CASE-індустрії, яка об'єднує сотні фірм і компаній різноманітної орієнтації.
Серед них виділяються компанії - розробники засобів аналізу і проектування
автоматизованих інформаційних систем з широкою мережею дистриб'юторських і
дилерських фірм; фірми - розробники спеціальних засобів з орієнтацією на вузькі
предметні ділянки або на окремі етапи життєвого циклу автоматизованої
інформаційної системи; навчаючі фірми, які організовують семінари і курси
підготовки спеціалістів; консалтингові фірми, які надають практичну допомогу
при використанні CASE-пакетів для розробки конкретних автоматизованих
інформаційних систем; фірми, що спеціалізуються на видавництві періодичних
журналів і бюлетенів по CASE-технологіях. Практично жоден серйозний зарубіжний
проект автоматизованої інформаційної системи не здійснюється в даний час без використання
CASE-засобів.
Подписаться на:
Сообщения (Atom)