第12章(4)

2019-03-09 23:13

300 U ML与软件建模

class Aircraft { public: Aircraft( ); virtual ~Aircraft( ) = 0; virtual void takeoff( ) = 0; virtual void fly( ) = 0; virtual void land( ) = 0; ... };

// File: Airplane.h #include \...

class Airplane : virtual public Aircraft { public: void takeoff( ); void fly( ); void land( ); void bank(int degrees); ... };

//File: Pilot.h

#include \...

class Pilot { public: ...

private: Aircraft* myAircraft; };

12.7.4 实用工具类的映射

<>Math Math + random() : Double + sin(: Angle) : Double + land(: Angle) : Double图12-33 实用工具类Math

// File: Math.h ...

301 第12章 UML模型的C++实现

class Math { public: static double random( ); static double sin(const Angle&); static double cos(const Angle&); protected: private: Math( ); };

12.8 包的映射

User InterfaceBusiness LogicDatabase

图12-34 UML包示例

namespace Database { }

class Query {...}; class Table {...}; ...

namespace BusinessLogic { }

namespace UserInterface { using namespace BusinessLogic;

class DialogBox {...}; class Menu {...};

using namespace Database; class Transaction {...}; class Customer {...}; ...

302 U ML与软件建模

}

...

12.9 项目管理系统实例

添加项目分配资源 管理项目项目经理

更新项目项目经理释放资源删除项目

图12-35 项目管理系统的用案图(初始版) 图12-36 项目管理系统的用案图(详细版)

12.9.1 类图的映射

WorkEffortProject11..*Activity1..*1..*WorkProductResourceXSkill- YearsExpr : float11..*Task0..51Assigned toResource**Skill

图12-37 项目管理系统的类图

template

class CollectionByVal { ... };

303 第12章 UML模型的C++实现

template

class CollectionByRef { ... };

class WorkEffort; class Project; class Activity; class Task;

class WorkProduct; class Resource; class Skill;

class ResourceXSkill; class WorkEffort { ... };

class Project : public WorkEffort { private:

CollectionByVal theActivity; };

class Activity : public WorkEffort { private: Project *theProject;

CollectionByVal theTask;

CollectionByRef theWorkProduct;

};

class Task: public WorkEffort { private: Resource *theResource; };

class WorkProduct {

... };

class Resource { private: Task *theTask[6]; CollectionByRef theResourceXSkill; };

class Skill { private: CollectionByRef theResourceXSkill; };

class ResourceXSkill { private:

304 U ML与软件建模

Resource *theResource; Skill *theSkill;

float YearsExpr; };

Project Name : char * {private} ? Descr : char * ? StartDate : Date ? NumberOfProjects : int = 0 + <> Project(Name : char *) : Project + <> Project(void) : Project + <> ~Project(void) + getName(void) : char * + setName(theName: char *) : void setDescr(Descr : char *) : void {public} getDescr(void) : char * {public} + setStartDate(theStartDate : Date) : void getStartDate(void) : Date {public} # hasActivities(void) : bool + addActivity(theActivity : const Activity &) : void + getAllActivities(void) : CollectionByRef + getNumberOfProjects(void) : int + save(void) : void + load(Name : char *) : void 图12-38 项目管理系统中的Project类

template class CollectionByRef { ...

public: addToCollection(T *elementRef); };

class Date;

class Project;

class Activity;

class Date { ... };

removeFromCollection(char *criteria);


第12章(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:09生毕业论文(设计)工作的暂行规定

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: