软件工程及实践[窦万峰]第6章 面向对象与统一软件开发过程.pptVIP

软件工程及实践[窦万峰]第6章 面向对象与统一软件开发过程.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(1)为每个可选的服务确定一个服务包。 (2)为每个可能成为可选的服务确定一个服务包。 图6-26所示为“卖主账单管理”包括“自动发送提醒通知”和“人工发送提醒通知”服务包。 图6-27确定了“账户管理”包包含几个由其他包中的类所使用的类,即“买主账户管理”和“卖主账户管理”都使用“账户管理”包的“账户”类。 在分析阶段,从多个不同的分析类中抽取共享和公用的行为时应该使用泛化。例如,“账单”和“订单”类有相似的职责。二者都是针对一般对象,如“贸易”类的泛化,如图6-28所示。 分析一个包的目的在于确定该分析包的独立性、确保分析包实现用况和描述包依赖。例如,“卖主账单管理”包中包括“账单处理”类与“账户管理”包中的“账户”类的相互关联,如图6-29所示。 设计工作集中在细化阶段的末期到构造阶段的初期,它将产生合理且稳定的构架并创建实现模型的蓝图,设计的焦点如图6-30所示。 1.设计模型 例如,“账单(Invoice)”设计类,在分析阶段提出的“账户”属性已经转化成与一个“账户(Account)”类的关联,如图6-31所示。 2.用况实现-设计 用况实现-设计包括的内容如下。 (1)文字性的事件流描述。 (2)描述参与的设计类的类图。 (3)描述设计对象之间的交互。 (4)子系统和接口。 3.工作活动与应用 (1)构架设计。 例如,“买主账单管理”包和“账户管理”包用于识别设计模型中相应的子系统,如图6-32所示。 在实施时,“买主账单管理”子系统需要分布到多个不同的节点中。可以将其进一步分解为“买主用户界面”、“支付请求管理”和“账单管理”,这3个子系统可分别实施到“买主客户端”、“买主服务器”和“卖主服务器”的节点上,如图6-33所示。 例如,Java抽象窗口调试工具(AWT)、进程消息请求(RMI),以及Applet包。这些Java包可表示成一些子系统,如图6-34所示。将这些Java服务组织到中间件层的子系统中、每个子系统包含一些类,将它们设计成相互协作地提供一定的服务。 例如,“账户”服务包中有“转账”分析类。“账户”服务包由其他包引用,可识别出“转账”接口。“转账”接口由设计模型中相应的“账户”服务子系统提供,如图6-35所示。 “账户管理”子系统提供“转账”接口用于实现账户间资金的转移,“支付调度接收”接口用于从卖主接收新的账单。当一个新账单给买主时,“给买主开单”用况就使用该接口,如图6-36所示。 例如,“交易”对象(可看做“订单”或“账单”的共性对象)由另一个参与者创建并传递给另一个参与者,如图6-37所示。 (2)用况设计。 识别设计类应从用况实现-分析中的分析类开始,研究其中的特殊需求,并识别所需要的类。例如,“支付账单”用况实现的类,图6-38给出了该用况的类图。 当构建了设计类及其类图之后,接下来就通过交互图描述设计对象间的交互,例如,“支付账单”用况的顺序图如图6-39所示。 例如,参与“支付账单”用况实现的子系统和接口包含子系统、接口及其之间的依赖关系,如图6-40所示。 (3)类设计。 例如,“账单”类参与多个用况的实现,如“支付账单”、“发送提示通知单”、“给买主开账单”等用况。每一个这样的用况实现都读取或改为账单对象的状态。从通用的角度考虑,定义一个交易对象(TradeObject),而账单(Invoice)是其一个子类型,如图6-41所示。 方法用于详细描述操作如何实现,如用于说明实现一个操作的算法。设计的状态描述当对象接收到消息时的响应行为。图6-42所示为一个状态图,描述了“账单”类的状态。 (4)子系统设计。 设计子系统的目的如下。 ? 确保子系统独立于其他子系统和接口。 ? 提供正确的接口。 ? 定义操作的正确实现。例如,“买主账单管理”子系统提供“账单”接口,可以通过“账单”类实现这个接口。 1.实现活动 它可跟踪到设计类的构件,一个构件实现多个元素。实现模型可跟踪到设计模型的接口,如图6-43所示。 构件之间存在依赖,如接口依赖、编译依赖和扩展依赖等。如图6-44所示为构件间的编译依赖,AccountTransfers.java(文件)构件编译成一个AccountTransfers.class(可执行体)的构件。 实现接口的构件必须按正确的方式实现该接口所定义的全部操作,如“Account Management”的实现子系统,提供“Transfers”接口,如图6-45所示。 其中,给出Transfers接口如下表示: package AccountManagement: public interface Transfers { public AccountCreate(Customer owner, money bala

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档