Semestrální práce z PT (speciální zadání)
Vypracovala: Fedchenko Kateryna
Zadání 1. Navrhnout xml schéma pro definici zboží a továren. a) Zboží jako je voda, vzduch, železo, plazma, atd. Jeho velikost, váha, atd. b) Továrny typu A, B, C, D, viz obr. 1.
Obr. 1: Diagram příkladu vzájemných zásobovacích vztahů továren. Implementovat načtení schématu pro zboží. Implementovat načtení schématu pro továrny. Implementovat továrny. Implementovat základní funkci skladu. Sklad uchovává suroviny pro chod továren a vytvořené produkty. 6. Uložení stavu skladu do DB. 7. Implementovat přesun zboží ze skladu do továrny a z továrny do skladu. 8. Testování funkčnosti. 2. 3. 4. 5.
Popis navržené XML K projektu jsou připojte 2 XML soubory: Goods.xml popisuje zboží, které je ve hře a Factories.xml popisuje továrny. Každé zboží má schéma: <product productID="Battery">
Battery Energy 1 1 <price>15 <description>
Kde productID je jednoznačný identifikátor pro zboží, name je jméno zboží, classOfGoods je jeho typ, rankToBuy je úroveň na nákup, volume ukazuje kolik prostoru je třeba pro jednotku zboží, price je cena zboží, description je pro popis zboží pro hráče. Každá továrna má schéma:
Soil Factory 1 <price>10000 <description> Factory - Soil factoty <product>Ore 5 <product>Battery 50 <Manufacturing> <product>Soil 90 15
Kde
je obecná informace pro továru, jako name – jméno továrny, rankToBuy – minimalni úroveň na nákup, price – cena továrny, description je pro popis továrny pro hráče.
– část, která popisuje zboží, nutné pro fungování továrny. Schéma pro zdrojevé zboží:
<product>Silicon 20
má název zboží a jeho množství pro provoz zařízení v jednom cyklu(quantityByCycle). <Manufacturing> – čast, ktera popisuje zboží, produkované továrnou. Schéma pro produkované zboží má název výrobku(product), čas, potřebný pro vyrábění výrobku ve vteřinách (cycle-time) a množství výrabeneho zboží v jednom cyklu(quantityByCycle).
Závislosti zboží a továren Závislosti mezi zboží a továrnami popisuje následující obrázek, kde nahoře je název továrny,červené označené produkty potřebné pro prace továrny, zelené zvýrazněné produkty vyrobené továrnou. Každá továrna pro svou prace potřebuje produkt Battery, proto vazby s obchodem v kterem ten product kupujou a továrnou, která jeho vyrobí nejsou ukazany.
Popis vygenerovaných tříd 1. public static class GoodsLoader namespace SpaceTraffic.Data Třída se používá k načtení zboží z XML souboru.
2. public static class FactoriesLoader namespace SpaceTraffic.Data Třída se používá k načtení tovaren z XML souboru.
3. public class Goods namespace SpaceTraffic.Entities Definice třídy Goods. Třída obsahuje všechny produkty.
4. public class Factories namespace SpaceTraffic.Entities Definice třídy Factories. Třída obsahuje všechny továrny.
5. public class StorehouseProduct namespace SpaceTraffic.Entities Třída se používá k ukládání DB dat pro zboží ve skladě.
6. public class Storehouse namespace SpaceTraffic.Entities Třída se používá k ukládání DB dat pro sklad.
7. public class Storehouse namespace SpaceTraffic.Game Definuje objekty, používané pro funkčnost skladu.
8. class GoodsTransferStorehouseToFactory namespace SpaceTraffic.Game.Actions Akce pro přesun zboží z skladu do továrny.
9. class GoodsTransferFactoryToStorehouse
namespace SpaceTraffic.Game.Actions Akce pro přesun zboží z továrny do skladu.
10. public interface IStorehouseDAO namespace SpaceTraffic.Dao Rozhraní popisuje povinné metody pro třídu StorehouseDAO.
11. public class StorehouseDAO namespace SpaceTraffic.Dao Třída se používá k výběru (aktualizaci) dat z (do) DB pro sklad.
12. public interface IStorehouseProductDAO namespace SpaceTraffic.Dao rozhraní popisuje povinné metody pro třídu StorehouseProductDAO.
13. public class StorehouseProductDAO namespace SpaceTraffic.Dao Třída se používá k výběru (aktualizaci) dat z (do) DB pro zboží ve skladě.
14. public class PlayerFactory namespace SpaceTraffic.Entities Třída se používá k ukládání DB dat pro továrnu hráče.
15. public class PlayerFactory namespace SpaceTraffic.Game Definuje objekty používané pro funkčnost továrny hráče. 16. class ProduceGoods namespace SpaceTraffic.Game.Actions Akce pro vytváření produktů.
Závěr Práce na projektu přinesla seznámení s systémem pro správu a verzování zdrojových kódů Subversion – TortoiseSVN a se svobodným softwarem pro řízení projektů Redmine. Nejsložitější části bylo pochopení struktury kolektivního kodu a jeho používání v prace nad svým zadáním. Zejména těžko se daly testy pro akce. Podaril se rozvoj XML souborů a serializace jich do programového kodu. V celku prace na projektu byla dobrou praxe a dala dovednosti v prace s "živým projektem".