створений. Об'єкти можуть безпечно мати доступ до їх власних даних, але глобальні дані повинні захищатися, використовуючи критичні ділянки процесу або деяку іншу форму видання випусками. Місцеві змінні нитки надійні через багаторазові виклики. Об'єкти можуть одержати виклики на будь-якому числі ниток в будь-який час. Об'єкти повинні захистити глобальні дані, використовуючи критичні ділянки процесу або деяку іншу форму видання випусками. Нитка місцеві змінні не надійні через багаторазові виклики. Це є так само, як вільно-нанизана модель за винятком того, що витрата викликів (наприклад, відгуки) гарантовані для виконання в тій же нитці. Максимальна робота і гнучкість. Не вимагає, щоб додаток забезпечив підтримку нитки параметрів, що поставляються витраті викликів. Багаторазові клієнти можуть відвідати об'єкт різні нитки в той же час, але COM гарантує, що ніякі два виклики не конфліктують. Виклики повинні остерігатися конфлікти нитки, що залучають глобальні дані і будь-які дані прикладу, які доступні багаторазовим методам. Цієї моделі не потрібно використовувати з об'єктами, які мають модель. Цей інтерфейс (візуальні засоби контролю) користувача, тільки доступний під COM+. Під COM, це проектується як коміркова модель.
Змінні (крім тих що у відгуках) завжди захищені, не дивлячись на модель нанизування. Це є, тому що місцеві змінні запам'ятали на стеку і кожна нитка має його власний стек. Місцеві змінні не можуть бути захищені у відгуках при використовуванні нанизування моделі, яку ви вибираєте в списку, визначає, як об'єкт стає на облік в реєстрі системи. Ви повинні переконатися, що ваше об'єктне виконання дотримується моделі нанизування, яку ви вибрали. Для загальної інформації щодо написання рентабельного коду, подивіться написання багатопотокових додатків.
Більше деталей на написанні об'єктів, щоб підтримувати різні моделі нанизування, бачити об'єкт, який підтримує вільне нанизування, моделюють об'єкт, який підтримує нанизування кімнати, моделюють об'єкт, який підтримує нейтральні сервери зразкового включеного процесу нанизування, вставляючи модель нанизування чарівник вставляє зразковий ключ нанизування вхід реєстратури CLSID.-of-process сервери стають на облік, як EXE, і Delphi ініціює COM для найвищий багатопотокової необхідної моделі. Наприклад, якщо EXE включає багатопотоковий об'єкт, це ініційовано вільне нанизування, яке означає, що це може забезпечити очікувану підтримку будь-яких багатопотокової або нанизаних в комірці об'єктів, що містяться в EXE. Щоб вручну відкинути нанизування поведінки в EXE, використовуйте змінну CoInitFlags.
Об'єкт, який підтримує вільно нанизуючим, моделюють вільно нанизуючу (або обидва) модель а не кімнатне нанизування кожного разу, коли об'єктна необхідність бути доступним від більше одна нитка. Загальний приклад – це додаток клієнта, сполучений з об'єктом на видаленій машині. Коли видалений клієнт відвідує метод той об'єкт, сервер одержує виклик на нитці від динамічної області нитки на машині серверу. Ця нитка отримання робить виклик у визначеному місці до фактичного об'єкту; і, тому що об'єктна підтримка вільно нанизуюча модель, нитка може робити прямий виклик в об'єкт.
Об'єкт підтримував комірку, що нанизує модель натомість, виклик довелося б перемістити в нитку, на якій об'єкт був створений, і результат довелося б перенести назад в нитку отримання перед поверненням до клієнта. Цей підхід вимагає додаткового розміщення. підтримуйте вільне нанизування, ви повинні вважати, як дані прикладу можуть бути доступні для кожного методу. Якщо метод пише до даних прикладу, ви повинні використовувати критичні ділянки процесу або деяку іншу форму видання випусками, щоб захистити дані прикладу. ймовірно, нагорі видання випусками критичних викликів є менш ніж виконання COM розміщення коду.
Розробка структури програми та написання програмних модулів
Складену програму „Визначення кредитоспроможності підприємств“ розроблено за допомогою середовища візуального програмування Microsoft Visual Studio 2005. Програма розроблена в інтерфейсі MFC (Microsoft Foundation Class) – проект для створення додатку, який використовує Бібліотеку Microsoft Фундаментальних Класів
Дана програма організована таким способом, щоб користувачу було зручно працювати з нею. В програмі є головне меню, котре включає пункти які відповідають за занесення та обробку даних, що стосуються кожної логічно окремої частини розробленої бази даних. Також до пункту головного меню входить підсистема настройки програми для конкретної банківської установи, визначення рейтингової оцінки підприємств.
Структура програми складається з шести вузлів, що зв’язані з головним вузлом програми – головною підпрограмою, з якої і викликаються вказані вузли програми. Структурна схема програми приведена на рисунку 3.7.
Програмний код нараховує чотирнадцять програмних модулів, що відповідають за обробку конкретних записів бази даних.
Модуль KredPrognoz відповідає за програмний код головної програми, тобто головного її вікна, де знаходиться головне меню, з якого можна запускати зображені на рисунку 3.7 системи розробленої програми.
Приведемо перелік модулів із зазначенням їх застосування:
модуль forma використовується для введення даних про підприємства, їх перегляд і модифікацію;
модулі balanc, Fin_rez, firma, Koef призначенні для створення динамічного звязку з базою даних та відвідними таблицями. Вони обробляють беспосередній доступ до бази, зчитування і редагування окремих записів;
Normativ призначений для роботи з вхідними даними про банківську установу і нормативними значеннями показників фінансового стану підприємств, встановлені НБУ;
Rejting виконує формування матриці узагальнених оцінок і знаходження рейтингу підприємств;
VuvRejting служить для виведення списку рейтингів підприємств-позичальників;
MatrixOc виконує виведення матриці рейтингової оцінки;
HyperLink – додатковий модуль призначений для роботи з гіперпосиланнями.
Розроблена програма містить достатню кількість модулів та систем для повно функціонального занесення та обробки інформації про кредитоспроможність підприємств.
Модулі для роботи з БД
Для роботи з базою даних створено чотири модуля balanc, Fin_rez, firma, Koef. В даних модулях створено відповідні класи разом з методами для під’єднання і обробки відповідних таблиць „Коефіцієнти“, „Підприємства-позичальники“, „Баланси підприємств“, „Звіти по фінансових