GRASP对象设计示例:IntellAgile实战与操作流程
需积分: 9 151 浏览量
更新于2024-08-01
收藏 736KB PPT 举报
GRASP(Growing Object-Oriented Software Applications)是一种面向对象的设计原则集合,由C.A. Begg提出,用于指导软件系统的设计和开发。本示例展示了如何在实际应用中使用GRASP原则来构建一个简单的对象设计模型。首先,我们关注于"IntellAgile"这个主题,主讲人姜春艳分享了来自craiglarman.com的版权内容,强调了GRASP在设计中的核心作用。
在这个例子中,主要涉及以下几个关键知识点:
1. **GRASP原则**:包括5个核心原则,如Replace Abstract Classes with Concretions(替换抽象类)、Refactor to Increase Cohesion (高内聚性)、Generalize and Specialize (概括与具体化)、Prefer Composition over Inheritance (组合优于继承)和Program to an Interface, not an Implementation (编程到接口,而非实现)。这些原则旨在确保设计的灵活性、可扩展性和可维护性。
2. **对象设计示例**:以一个"Sales"系统为例,包括两个主要类:`Sale`和`LineItem`。`Sale`类可能包含`date`属性,表示销售日期,而`LineItem`类则代表订单中的商品,具有`quantity`属性和关联的产品描述。这体现了Replace Abstract Classes with Concretions原则,通过具体的类来替代抽象概念。
3. **Use Case Model**:展示了系统的用例模型,如`Register`用例,其中包含了`enterItem`操作。这个操作接收`itemID`和`quantity`作为参数,从`ProductCatalog`获取产品描述,并添加到`Sale`中。这体现了Generalize and Specialize原则,将业务逻辑分解到各个具体操作中。
4. **DesignModel**:包括系统序列图,如`ProcessSale`,展示了交互流程,如顾客到达、现金出纳员输入商品标识等。这是对业务流程的可视化,有助于理解各个角色和操作之间的关系。
5. **Requirements and Business Modeling**:需求驱动设计,通过分析功能需求和业务模型,为对象设计提供灵感。这包括识别出与软件对象相关的功能性需求,以及设计的详细后置条件。
6. **Object-Oriented Design Elements**:如命名规范(如`Cashier`、`Cashier`类名来源于现实场景),反映了命名的直观性和启发性,有助于代码理解和维护。
7. **Supplementary Specification** 和 `Glossary`:补充规格说明和术语定义,确保设计文档的完整性和一致性。
通过这个示例,我们可以看到GRASP原则如何应用于实际的软件设计中,帮助开发者创建出清晰、灵活和易于维护的系统结构。设计时,不仅要考虑对象的职责和关系,还要确保遵循GRASP的原则,以提高设计质量。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2009-06-06 上传
2011-05-31 上传
2021-02-04 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
daoyingkuku
- 粉丝: 1
- 资源: 2
最新资源
- 2007QQ 2007QQ
- 电子商务支付安全探讨
- java程序员必去网站集合
- JFreeChart制作图形报表
- jfreechart实现柱状图排序
- java制作报表整合
- 弦信号发生器的设计思路
- Apple公司Darwin流式服务器源代码分析
- 西安交大管理学2008考研试卷
- Matlab 常用命令简介
- MATLAB 编程风格指南 中文版
- ARM devlopment
- struts2+hibernate+spring整合实例+步骤
- Cross-platform GUI programming with wxWidgets.pdf
- 软件设计师考试考点分析与真题详解
- uclunix在lpc2994上的移植.pdf