Огляд сучасних інструментальних засобів проектування та їх використання у медицині

 

Під інструментальними системами мається на увазі категорія програмного забезпечення комп”ютерів, що використовується для створення нових програм. Для сучасних інструментальних систем використовуються тотожні назви: системи програмування, системи розробки. На сьогоднішній день нове програмне забезпечення розробляється при розв”язуванні задач вузьких предметних областей, які поки що не мають загальновизнаного комп”ютерного вирішення. Широке поле для застосування інструментальних систем пропонують задачі обробки медичної інформації, які розглядатимуться далі: задачі побудови мультимедіа-додатків в медицині, задачі моделювання перебігу захворювань та поведінки систем організму, розробка експертних систем медико-діагностичного призначення, задачі цифрової обробки графічної медичної інформації.

 

Основні етапи розвитку інструментальних систем.

Сучасні інструментальні системи є нащадками найдавнішого програмного забезпечення електронно-обчислювальних машин (ЕОМ). З цього приводу наведемо короткий історичний аналіз.

            Керування роботою перших ЕОМ здійснювалося за допомогою машинного коду. Це означає, що людина - висококваліфікований спеціаліст (найчастіше розробник ЕОМ) вводив за допомогою пристроїв вводу (далеких від теперішньої клавіатури та мишки) послідовності символів “0” та “1”. Кожна така послідовність позначала певну команду процесора. Програмування ЕОМ в машинному коді було виснажливою роботою.

            На початку 50-х років з”явилися перші транслятори (програми-перекладачі) мови програмування Ассемблер в машинний код. Мова Ассемблер по сьогоднішній день використовується спеціалістами в галузі системного програмування і зустрічається під назвами: машинно-орієнтована мова програмування, мова програмування низького рівня. Ідея мови Ассемблер полягає у заміні команд процесору (вже згаданих послідовностей з “0” та “1”) так званими мнемокодами (деякими їх символічними позначеннями). При програмуванні на Ассемблер вимагаються досконале володіння командами мікропроцесора, знання його структури та порядку роботи. До основних недаліків Ассемблер належить  його прив”язаність до конкретного типу мікропроцесору, що часто створює труднощі із розповсюдженням (перенесенням) готових програм на інші типи комп”ютерів. Сьогодні Асемблер рідко використовується для  написання повних програмних модулів. Його використовують програмісти-фахівці для оптимізуючих перетворень найбільш напружених ділянок програм. Про потрібність Ассемблеру свідчить той факт, що команди для його підтримки увійшли в найсучасніші інструментальні системи. Мова Ассемблер використовуюється у програмному забезпеченні для медичної апаратури [ ].

Приклад програмування на Ассемблері, що здійснює переміщення рядка символів з одного місця пам”яті в інше:

 

cld

Repeat:

lodsw

cmp ax, 0FFFFh

je Exit

stosw

jmp Repeat

Exit:

 

            У 1957 році відбулася важлива подія - поява першої мови програмування високого рівня Fortran (від англійського Formula Translation). Fortran містив команди, що значно спрощували виконання на ЕОМ математичних обчислень. Для програмування на Fortran-і не вимагалося глибокого знання внутрішньої будови комп”ютера.

            1960 рік пов”язаний з реалізацією мови програмування Algol-60. При розробці Algol-у вперше було приділено увагу методологічним принципам програмування, таким як структурний підхід та технологія розробки програми “зверху-вниз”, що передбачає поетапну її деталізацію.

            1967 рік. В Норвегії розроблено  мову програмування Simula-67, в якій реалізовано об”єктно-орієнтований підхід. Її призначення - моделювання поведінки реальних систем та явищ. В подальшому об”єктно-орієнтований підхід дав можливість створити операційну оболонку з графічним інтерфейсом Windows.

            На початку 70-х доступний синтаксис Algol-60 був використаний для мови програмування Pascal. У Pascal вдалося реалізувати  ряд важливих типів даних: множина, запис, порядкові типи даних споживача, дані з динамічною (змінною з часом) структурою. З Pascal пов”язано крилатий вираз одного із його розробників Ніклауса Вірта: “Алгоритми + структури даних = програми”.

            У той же час з”явилася мова програмування C (англійське “Сі”), що мала дуже дивний синтаксис. У ній вдалося одночасно втілити риси мови програмування високого рівня та машинно-орієнтованої мови. C була використана при створенні все ще популярної операційної системи UNIX. На сьогоднішній день C разом з мовою Ассемблер використовується при розробці найважливіших системних програм.

            70-ті та 80-ті роки пов”язані з розробкою перших популярних прикладних програм - текстовий редактор, табличний процесор, програми для роботи з графікою, системи управління базами даних. З”явилася можливість залучити до роботи із комп”ютером широке коло людей-непрофесіоналів комп”ютерної галузі. Слід мати на увазі, що всі ці програми вдалося створити, використовуючи розвинуті інструментальні засоби тодішніх мов програмування.

            У 80-ті роки здійснюється поширення об”єктно-орієнтованого підходу в мови програмування. Найповнішою мірою він був втілений в C++ (читається “Сі-плюс-плюс”) та Borland Pascal.

            90-ті роки пов”язані з візуалізацією засобів створення програм. Відтепер нащадки мов програмування стали називатися системами розробки (development system), а з мовою програмування перш за все пов”язують синтаксис команд інструментальних систем. Першим програмним продуктом з можливістю візуального проектування став Visual Basic фірми Microsoft. Та лише в системі Borland Delphi так званий механізм Two-way tools (передбачає можливість візуального створення програми з прототипів) було доведено до кінця. Усі сучасні інструментальні системи (Visual Basic, Visual C++, Delphi, C++Builder, Jbuilder та ін.) надають можливість візуального проектування та втілюють об”єктно-орієнтований підхід.

            І накінець останні події в галузі інструментальних засобів пов”язані з так званими мовами програмування Web-сторінок: JavaScript та VBScript та мовами побудови сценаріїв: PERL, REXX. Їх призначення - написання програм, які дозволяють “оживити” Web-сторінки Internet. Особливістю згаданих мов є можливість виконання їх команд на будь-якому комп”ютері, не використовуючи при цьому виконуваного файлу та не вимагаючи інсталяції у ньому відповідної інструментальної системи. Для роботи з медичною інформацією у США спеціально розроблено мову сценаріїв MERL (Medical Retrieval Language), що працює з інтерфейсом CGI (Common Cateway Interface - стандарт інтерфейсу для роботи в Internet). Багато програмістів-професіоналів пов”язує з мовами сценаріїв майбутнє розвитку інструментальних засобів.

 

Можливості сучасних інструментальних систем у розв”язанні  прикладних задач медицини.

Наведемо основні категорії додатків, що реалізуються інструментальними системами. У дужках вказані практичні задачі, для яких буде в подальшому запропоновано розв”язок.

1.     Додатки баз даних.

2.     Мультимедіа-додатки (програвач записів хірургічних операцій).

3.     Моделювання динамічних систем (перебіг інфекційного захворювання, моделювання серцево-судинної системи).

4.     Розробка експертних систем (експертна система медико-діагностичного призначення, експертна система захворювань органів черевної порожнини).

5.     Розробка додатків, що використовують технології обміну даними DDE, OLE.

6.     Розробка Internet-додатків.

7.     MDI-додатки.

8.     Додатки для роботи з графічною інформацією (переглядач медичних слайдів).

9.     Додатки для роботи з принтером.

 

Визначальні характеристики інструментальних систем (на прикладі Delphi).

Компілятор в машинний код, розроблений для Delphi, є одним з найпотужніших серед систем програмування. Віндозволяє обробляти 120 тисяч рядків вхідного коду в хвилину на процесорі 486DX33.

Об”єктно-орієнтована модель програмних компонент. В Delphi вперше повністю реалізовано об”єктно-орієнтовану модель компонент. У стандартну редакцію Delphi входять основні об”єкти, що утворюють ієрархію із 270 базових класів.

Швидка розробка додатку на основі прототипів. Дуже велике число додатків можна розробити, користуючись лише компонентами Delphi, розміщуючи їх у форму та змінюючи властивості.

Масштабовані засоби побудови баз даних. Один і той же додаток можна використати як для локального, так і для клієнт-серверного варіантів. У цьому проявляється гнучкість компонент Delphi для роботи з базами даних.

Існує два варіанти поставки Delhi:  Delphi Desktop  та Delphi Client-Server. У Delphi Desktop як і в Delphi Client-Server входять:

n     компілятор Object Pascal

n     генератор звітів Report Smith

n     середовище візуальної побудови додатків

n     бібліотека візуальних компонент VCL

n     локальний сервер Interbase

Delphi розроблена на Delphi. Най довершеністю будь-якої системи програмування є той факт, що її можна розробити, користуючись нею ж самою. Дана можливість була також перевірена на Delphi.

Відкрита компонентна  архітектура. На відміну від багатьох систем програмування компоненти Delphi є відкритими, тобто поставляються з вихідним кодом та реалізовані на самій же Delphi.

Two-way tools - однозначна відповідність між візуальним проектуванням і класичним написанням тексту програми. Ця можливість чи не найперше також була реалізована в Delphi.

Підтримка OLE, DDE  та VBX. Це новітні технології обміну даними між додатками.

Середовище розробки, яке налаштовується. Середовище розробки Delphi має багато можливостей на лаштування для більш зручної роботи розробника.

Інтелектуальний редактор текстів програм. Редактор текстів програм у Delphi має вмонтовану функцію підказування про типи параметрів функцій чи процедур, про властивості чи методи об”єктів.

Графічний відлагоджувач. Відлагоджувач Delphi дозволяє візуально розставляти точки зупинки, відображати в окремому вікні значення змінних, що досліджуються.

Інспектор об”єктів. Інспектор об”єктів в зручній формі дозволяє переглядати список властивостей та подій компонент, їх значення та змінювати ці значення.  

Менеджер проектів. Він дозволяє переглядати модулі проекту, додавати нові чи відключати колишні.

Навівгатор об”єктів.  Дозволяє переглядати список обєктів, включених у проект.

Дизайнер меню. Це спеціальна підпрограма, що дозволяє у візуальній формі проектувати команди меню.

Експерти. Під експертами маютьна увазі набір програм, що полегшують проектування та налаштування ваших додатків.

Компоненти доступу до баз даних. Вони роблять додатки для баз даних в Delphi масштабованими.

Відповідність між модулями та формами на основі методу розробки “Two-Way Tools”.

Делегування і події програмуються простіше. Делегування - це принцип, що дозволяє об”єкту  передавати повноваження іншому об”єкту відповідати на подію.

Посилання на класи під час виконання програми. Дуже часто у програмуванні подій виникає ситуація, коли наперед невідомо, який обєкт пошле запит на виконання обробника події. В Delphi таке уточнення можна зробити під час виконання програми.

Обробка виняткових ситуацій. Виняткові ситуації (наприклад, ділення на нуль) часто виникають під час виконання складних додатків. Delphi має зручні механізми для розв”язування такого роду проблем.