Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт з практики констр_пезе.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
9.98 Mб
Скачать

1. Введення

1.1. Мета

У даному документі наведено проектування рольової відеоГри FinalFantasy.

1.2. Опис проекту

Цей проект являє собою прототип відеогри Final Fantasy, створюваний з навчальною метою, на якому ми продемонструємо прийоми розробки архітектури, детального проектування та складання документації. Передбачається використовувати вибрану архітектуру в якості основи для майбутніх більш досконалих версій. У цей опис не входять каркасні класи - їх розробка документується в розділі SDD під назвою «Каркас архітектури рольової гри».

1.3. Визначення, скорочення і терміни

Ні.

2. Посилання

Software Engineering: an Objected-Oriented Perspective. E. Braude, Wiley, 2000.

UML: The Unified Modeling Language User Guide. G. Booch, J. Rumbaugh, I.Jacobson, Addison-Wesley, 1998 [15].

Стандарт IEEE 1016-1987 (затверджений заново у 1993 році) встановлює основні напрямки розробки SDD.

3. Опис декомпозиції

Для опису архітектури FinalFantasy використовуються три моделі: варіантів використання, класів і переходів станів. Крім того, будуть показані також відносини між каркасними пакетами FinalFantasy, описані в розділі SDD «Каркас архітектури рольової гри».

3.1. Модульна декомпозиція

Пакети архітектури FinalFantasy показані на рис. 5.37. Ці три пакети: ГраFinalFantasy, ПерсонажіFinalFantasy і СередовищеFinalFantasy. Їм відповідають faсade-класи ГраFinalFantasy, РоліFinalFantasy і СередовищеFinalFantasy. Кожен з цих класів має рівно

один примірник і по суті є інтерфейсом для взаємодії з пакетом. Інші класи недоступні за межами пакету

Рис. 5.37

3.1.1. Пакет ГраFinalFantasy

Пакет ГраFinalFantasy складається з класів, керуючих розвитком гри в цілому. Цей пакет розробляється для того, щоб забезпечити реакцію на дії користувача (події).

3.1.2. Пакет ПерсонажіFinalFantasy

Пакет ПерсонажіFinalFantasy укладає в собі персонажі, які беруть участь у грі. Це і персонажі, що знаходяться під керуванням гравця, і зовнішні персонажі.

3.1.3. Пакет СередовищеFinalFantasy

Пакет СередовищеFinalFantasy описує схему гри FinalFantasy, а саме зони і з'єднання між ними. До цієї категорії не належать будь рухомі предмети.

3.2. Декомпозиція на паралельні процеси

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

3.3. Декомпозиція даних

Структури даних, якими обмінюються пакети, визначаються в класах Зона, ПерсонажFinalFantasy і З'єднанняЗониFinalFantasy.

3.4. Декомпозиція моделі переходів станів

Стан відеогри FinalFantasy показані на рис. 5.38.

Рис.5.38.

3.5. Декомпозиція моделі варіантів використання

У відеогрі FinalFantasy можна виділити три варіанти використання: «Ініціалізувати», «Перейти в сусідню зону» та «Вступити в контакт із зовнішнім персонажем» (рис. 5.39). Ці варіанти використання докладно описуються в розділі 2.2 SRS, а також у наступних розділах даного документа.

4. Опис залежностей

У цьому розділі дається опис залежностей між різними варіантами декомпозиції, перерахованими в розділі 3 даного документа.

4.1. Міжмодульні залежності (об'єктна модель)

Залежності між пакетними інтерфейсами ілюструє рис. 5.40. Пакет ГраFinalFantasy є залежним по відношенню до всіх пакетів FinalFantasy.

Рис. 5.40. Архітектура відеогри Final Fantasy

Пакет СередовищеFinalFantasy знаходиться в залежності від пакета Персонажі FinalFantasy. Це відбувається тому, що будь-яка взаємодія персонажа гри можливо тільки в контексті середовища. Зокрема, об'єкти класу Зона відповідають за виявлення одночасної присутності персонажа гравця разом із зовнішнім персонажем в одній і тій же зоні.

Зв'язку між класами, що не відносяться до інтерфейсу, пояснюються далі в цьому документі.

4.2. Міжпроцесорні залежності

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

4.3. Залежно всередині даних

Структури даних, якими обмінюються пакети, визначені в класах. Взаємодія класів описано в розділі 6 даного документа.

4.3.1. Діаграма переходів станів

4.4. Залежності між станами

Кожне стан залежить від тих станів, у які гра може перейти з нього.

4.5. Залежності між рівнями

Залежність додатка FinalFantasy від каркаса рольової гри показана на рис. 5.41. Кожним пакетом додатка використовується саме один каркасний пакет.

5. Опис інтерфейсу

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

5.1. Міжмодульні інтерфейси

5.1.1. Інтерфейс пакету Гра FinalFantasy

Інтерфейс пакету Гра FinalFantasy забезпечується об'єктом гра FinalFantasy класу Гра FinalFantasy. Перерахуємо його складу.

1. EncounterGame getTheEncounterGameO / / отримання єдиного примірника.

2. GameState getStateQ / / поточний стан екземпляра Гра FinalFantasy.

3. void setState О / / встановлює стан екземпляра Гра FinalFantasy.

4. // Будь-яка подія, що впливає на екземпляр Гра FinalFantasy: void hand! ЕЕvent (AWTEvent)