
- •Введення в розробку програмного забезпечення
- •1. Складність інформаційних систем
- •2. Розробка програмного забезпечення
- •Криза програмного забезпечення
- •4.Концептуальне моделювання
- •Життєві цикли програмного забезпечення
- •Модель водоспаду
- •2. Модель водоспаду із зворотнім зв'язком
- •Документоване виконання
- •Прототипування
- •Покрокова розробка
- •7.Модель спіралі
- •III. Етапи розробки програмного забезпечення
- •1. Стратегічний етап
- •Етап визначення вимог
- •2.2. Нефункціональні вимоги
- •4. Етап проектування
- •5. Етап реалізації
- •6. Етап тестування
- •7. Етап установки
- •8. Етап підтримки
- •IV. Стратегічний етап
- •1. Дії на стратегічному етапі
- •2. Співпраця з клієнтом
- •3. Область дії і контекст проекту
- •4. Стратегічні рішення
- •5. Оцінка різних варіантів рішеннь
- •6. Оцінка вартості рішень
- •7. Чинники успіху
- •8. Результати стратегічного етапу
- •9. Короткий звіт
- •V. Розпізнавання вимог і документація
- •1. Складнощі у формулюванні вимог
- •2. Методи ідентифікації вимог
- •3. Методи опису вимог
- •4. Типи вимог
- •5. Перевірка вимог
- •6. Документ з вимогами
- •2. Аналітична модель
- •3. Дії на етапі аналізу
- •4. Функціональна декомпозиція
- •5. Методологія, що використовується в створенні аналітичної моделі
- •6. Документація вимог
- •7. Аналіз чинників успіху
- •8. Короткий звіт
- •VII. Етап проектування
- •1. Цілі проектування
- •Малюнок 7.2.1. Етап проектування.
- •2. Специфікація результатів аналізу
- •3. Дизайн інтерфейсу
- •4. Структуровані схеми/діаграми
- •5. Складова організації даних
- •6. Оптимізація проекту
- •7. Фізична структура системи
- •8. Правильність і якість проекту
- •9. Нефункціональні вимоги на етапі проектування
- •10. Результати етапу проектування
- •11. Детальний документ проекту
- •2. Стандарти, правила і порядок здійснення дій проекту:
- •12. Короткий звіт
- •VIII. Розробка інтернет-програм
- •1. Специфікація інтернет-програми
- •2. Методи розробки інтернет-програм
- •3. Об'єктно-орієнтована гіперсередовищна модель розробки (oohdm)
- •4. Метод розробки веб-сторінок (wsdm)
- •5. Мова веб-моделювання (WebMl)
- •Формулювання вимог
- •Проект структури даних
- •Гіпертекстовий проект
- •IX. Бдб і бдс системи
- •1. Електронний бізнес
- •2. Інтернет-бізнес і електронний ринок.
- •3. Інтернет-магазин
- •4. Модель електронного бізнесу
- •1.Модель брокера
- •2.Модель, яка задовольняє індивідуальним потребам
- •3.Модель контактів
- •5. Платежі
- •6. Безпека
- •8. Моделювання систем бдб і бдс
- •9. Багатошарова архітектура програм
- •9. Cервіс-орієнтована архітектура (соа)
- •10. Короткий звіт
- •X. Реалізація
- •1. Характеристики етапу реалізації
- •2. Надійність програмного забезпечення
- •3. Похибка
- •4. Транзакції
- •5. Середовище реалізації
- •6. Чинники успіху і результати етапу реалізації
- •7. Короткий звіт
- •XI. Тестування
- •1. Етап тестування
- •2. Перевірка
- •Малюнок 11.3.1. Модель V-тестування.
- •3. Перегляди
- •4. Аудит
- •5. Інспекції
- •6. Види тестів
- •7. Процес тестування
- •8. Тестування надійності
- •9. Типи тестів на знаходження помилок
- •10. Програми-інструменти
- •11. Статичні тести
- •12. Підрахунок кількості помилок
- •13. Чинники успіху, успіх тестування
- •14. Короткий звіт
- •XII. Оцінка програмного забезпечення
- •1. Простановка розмірів проекту
- •2. Оцінка складності в проектах
- •3. Ефекти масштабування
- •4. Оцінка вартості програмного забезпечення
- •5. Конструктивна вартісна модель (cocomo)
- •6. Балова функціональна оцінка
- •7. Метод випадкового використання
- •8. Короткий звіт
- •XIII. Управління конфігурацією пз і версіями
- •1. Управління конфігурацією пз
- •2. Елементи конфігурації пз
- •3. Угода позначень
- •4. Зберігання елементів конфігурації
- •5. Перегляди
- •7. План управління конфігурації пз
- •I Вступ
- •II Управління
- •III Визначення конфігурації
- •IV Управління конфігурацією
- •4. Модель якості iso-9126
- •5. Управління якістю
- •6. Стандарти якості
- •7. Незрілість і зрілість виробництва
- •8. План гарантії якості пз (sqap)
- •9. Короткий звіт
- •XV. Управління проектом програмного забезпечення
- •1. Завдання управління проектом
- •2. Працівники виробництва програмного забезпечення
- •3. Характеристика хорошого розробника програмного забезпечення
- •4. Робота в команді
- •5. Управління підприємством по виробництву програмного забезпечення
- •6. Розвиток компанії по розробці програмного забезпечення
- •7. Документація проекту
- •8. Визначення продуктивності
- •9. Складання графіків проекту
- •10. Завдання управління проектом
- •11. Інтерфейс проекту
- •12. Планування проекту
- •13. Управління ризиком
- •14. Вимірювання процесів і продуктів
- •15. Короткий звіт
8. Моделювання систем бдб і бдс
Бізнес-програми не обмежуються однією компанією; вони повинні мати вихід в інтернет. Це вимагає розробка особливого ПЗ. Програма грунтується на гнучкій архітектурі, яка може бути модифікована. Моделювання - найважливіша частина. Вона дозволяє зрозуміти систему і дає можливість її спростити.
Що таке модель? Це спрощення реальності; дає різні проекції і може бути загальною або дуже точною. Рівень абстракції визначає деталі, що відображаються. Розуміння системи можливе лише у разі створення багатьох моделей, які дають відображення різних аспектів реальності.
9. Багатошарова архітектура програм
При розробці програм для сервера слід враховувати безліч чинників, в основному, в багатозадачному середовищі:
надійність;
безпека;
продуктивність.
Клієнтами таких систем є банки, страхові компанії, служби інформаційного обслуговування і т.д. Область дії таких систем робить розробку програм дуже складною, якщо враховувати всі чинники.
У хорошій програмі код повинен бути логічно розкладений на складові частини. Всі шари містять один або декілька програмних елементів. Розкладання ефективне, оскільки функціональність шарів може розроблятися незалежно.
Три шари коду:
1. Шар представлення : містить компоненти, що відповідають за зображення. Мережеве представлення складається з веб-сайтів, які використовують таку техніку, як JSP, ASP, PHP, аплети в Java.
2. Логічний шар : містить елементи, що вирішують конкретні програмні проблеми. У таких випадках вимоги жорсткіші. Реалізується на таких мовах, як Java або C++.
3. Шар даних : використовується, як логічний шар для зберігання даних. Звичайно це - база даних.
Ділення програми зазвичай відбувається зі зменшенням взаємозв'язків. У інтернет-бізнесі дуже важливо мати таке розділення.
За логічним розкладанням слідує фізична пргограма з багатошаровою архітектурою.
Є два головні підходи в створенні такого застосування:
дволанковий метод,
N-ланковий метод.
Межі визначаються межами процесів, машинами, корпораціями. Важлива технологія, а не тип фізичного походження.
Двошарова архітектура
Дві програми розрізняються між собою. Перша сполучає логічний шар і шар представлення, а в другому деякі елементи логічного шару перенесені в шар даних.
Об'єднання логічного шару і шару представлення.
У цьому рішенні логічний шар відокремлений від шару даних. Шари є одними цілими. На цьому етапі головна частина системи (два об'єднаних шара) знаходяться на стороні клієнта. Тому клієнта називають "товстим", а сервер - "худим". Малюнок 9.9.1 відображає рішення:
Малюнок 9.9.1 Двошарова архітектура товстого клієнта.
Архітектура має декілька небажаних властивостей:
висока вартість установки - кожен комп'ютер-клієнт повинен мати драйвер бази даних;
висока вартість оновлення - заміна драйвера бази даних вимагає таку ж заміну у всіх комп'ютерах;
висока вартість зміни схеми бази даних - клієнти використовують безпосередньо саму базу даних;
висока вартість зміни структури бази даних;
висока вартість заміни логічного шару на кожному комп'ютері;
зменшення продуктивності із-за великого трафіку - кожен запит повинен оброблятися.
Об'єднання логічного шару і шару даних
Рішення дозволяє позбавитися від недоліків попереднього рішення.
Головна перевага - переміщення частини логічного шару в шар даних, що зменшує завантаженість мережі. Операції, що зберігаються в шарі даних дозволяють обробляти відповіді на велику кількість питань і повертати результат у формі запису. Це підвищує продуктивність.
Збільшується розширність установки програми.
На жаль, деякі проблеми з установкою логічного шару на стороні клієнта все ще існують. Малюнок 9.9.2 показує реалізацію цієї архітектури.
Малюнок 9.9.2. Двошарова архітектура, об'єднання логічного шару і шару даних.
Багатошарова архітектура
Зараз найефективнішим рішенням вважається фізичне розділення логічних шарів. Тришарове рішення - установка тільки інтерфейсу на стороні клієнта, що робить його "худим". Логічний шар і шар даних залишаються на стороні сервера. Приклад такої архітектури показаний на малюнку 9.9.2.
Малюнок 9.9.3. Тришарова архітектура з худим клієнтом.
Переваги розробки тришарових програм
Зменшення установки - драйвери бази даних і ядро встановлюються на сторону сервера. Це зменшує робоче навантаження.
Спрощено оновлення бази даних і логічний шар системи. Клієнт не користується базою даних безпосередньо, що полегшує переміщення і зміну бази даних без зміни інтерфейсу клієнта.
Безпека забезпечується установкою брандмауерів. Це дозволяє обмежити доступ до захищених даних.
Ресурси сервера доступні у вигляді так званої сукупність ресурсів, що прискорює доступ.
Застосування архітектури до бази даних зменшує з'єднання і кількість необхідних ліцензій.
Кожен шар може мінятися без звернення до інших.
Моніторинг вельми простий. Помилки і вразливі місця легко виявляються. Перевантаження одного шару не впливає на інше.
Недоліки тришарових програм
Велике перевантаження зв'язку. Фізичне розкладання вимагає додаткових зв'язків. Мережа переповнюється надлишком інформації, переданої між комп'ютерами.
Збільшена вартість підтримки програм.
Великий код.
Останній недолік - реалізація взаємозв'язку шарів.
Всі завдання вимагають великих витрат і робочого навантаження. Реалізація таких програм складна, тому створюються серверні програми.
Серверні програми - завдання і ролі
Серверне застосування дозволяє програмістам думати про програми в цілому, а не про конкретних. Сервер - платформа, обслуговуюча системи, зокрема - програми інтернет-бізнесу. Платформа зберігає бізнес-логіку, всю модель, надає послуги шаруючи представлення і методи доступу до бази даних. Мета полягає і в забезпеченні механізмом інтеграції.
Головними ролями серверних програм є:
забезпечення стандартами безпеки;
забезпечення мережевими ресурсами;
багатозадачність;
обслуговування розподілених систем.
Вони є невід'ємною частиною багатошарової архітектури. Вони підтримують технологію технологій, створених з компонентів. Сервер - контейнер для компонентів.
Таблиця 9.9.4. представляє декілька серверних програм:
Таблиця 9.9.4. Серверні програми.