softengineering2.ppt

softengineering2

UML Unified Modeling Language Grady Booch Ivar Jacobson Jin Rumbaugh 中文网站 http://www. UML的视图 用例视图(use case view) 逻辑视图(logical view ) 构件视图(component view) 并发视图(concurrent view) 部署视图(deployment view) UML静态图 用例图(Use Case Diagram) 类图(Class Diagram) 对象图(Object Diagram) 构件图(Component Diagram) 部署图(Deployment Diagram) UML动态图 状态图(State Diagram) 时序图(Sequence Diagram) 协作图(Collaboration Diagram) 活动图(Activity Diagram) Use Case图 用例:系统和外部角色的交互 符号表示: Use Case图例子 类图Class Diagram 对象图Object Diagram 对象间关系 关联关系 (Association) 聚集关系(Aggregation) 泛化关系(Generalization) 依赖关系(Dependency) 细化关系 (Refinement) 状态图State Diagram 时序图(Sequence Diagram) 协作图(Collaboration Diagram) 活动图Activity Diagram 结构化分析方法SA SA的基本步骤 自顶向下功能分解,画分层DFD 定义系统的数据和加工,编制DD和PSPEC 分析系统行为,编制CFD、CSPEC(optional) 编制SRS 面向对象分析方法OOA OOA的基本步骤 定义系统的用例 在领域分析的基础上建立问题域的类-对象模型 建立对象-关系和对象-行为模型 编写SRS 定义用例 回答问题—发现角色 使用系统主要功能的人是谁? 需要借助于系统完成日常工作的人是谁? 谁来维护、管理系统,保证系统正常工作? 系统控制的硬件设备有哪些? 系统需要和哪些其它系统接口? 对系统产生的结果感兴趣的人和事是哪些? 定义用例 回答问题—发现用例 角色需要从系统中获得哪种功能?需要角色做什么? 角色需要读取、产生、删除、修改或存储系统中的某种信息吗? 系统中发生的事件需要通知角色吗?角色需要通知系统某件事吗?这些事件能干什么? 系统需要输入/输出的是什么信息?这些输入/输出信息从哪儿来 ?到哪儿去? 系统当前的实现要解决的问题是什么? 领域分析 目的 发现或创建可广泛应用的类,以便复用 分析特定的应用领域 形式 公共对象、类、子集合和框架等 类对象建模(一) 确定分析模型中的类对象 考察系统用例 汇总名词、名词短语 得到候选对象 确定类对象 必要的信息、需求、服务 多个属性、公共操作 类对象建模(二) 定义类结构与层次 一般----特殊 整体----部分 定义主题和子系统 高层抽象 例子 建立对象—关系模型 步骤 复审需求描述和用例陈述 找出表示关系的动词或动词短语 用线连接起来,箭头表示方向 给连接命名,标上基数 建立对象行为模型 活动图 状态图 协作图 时序图 第五章 软件设计概述 软件设计的任务 软件设计的基本概念 模块化设计 设计需要处理的问题 设计文档及其复审 软件设计的任务 分析模型 设计模型 设计文档 回答How to do? 可以分为概要设计、详细设计 软件设计包括 数据设计 体系结构设计 接口设计 过程设计 软件设计的任务 数据设计 信息模型 软件数据结构 体系结构设计 定义软件部件间的关系 接口设计 软件内部、外部及与人之间的通信 过程设计 软件组件的过程性描述 结构化设计 面向对象设计 软件设计的基本概念 模块(module)与构件(component) 模块:定义输入、输出和特性的程序实体 构件:可重复使用的软件组件 抽象(abstract)与细化(refinement) 抽象:分层次考虑和处理问题(数据和过程) 细化:从高到低的逐步分解过程 信息隐藏 对其它模块隐藏模块内部的数据和过程 软件复用 Design with reuse, design for reuse 模块化设计(modular design) 分解(decomposition) 模块独立性(module independence) 自顶向下(top—down design) 自底向上(bottom—up design) 分解(decomposition) C (P1+P2)C (

文档评论(0)

1亿VIP精品文档

相关文档