软件工程实践.ppt
《软件工程实践.ppt》由会员分享,可在线阅读,更多相关《软件工程实践.ppt(153页珍藏版)》请在麦多课文档分享上搜索。
1、软件工程实践,软件工程理念、方法与工具在项目中的应用,日程,关于一个项目的探讨 软件工程概述 案例分析:在项目中实践软件工程 规范软件开发,系统分析,分析需求用例建模及分析 定义需求需求文档 需求评审需求基线 问题跟踪过程 需求管理 建立需求 需求跟踪 需求度量 计划迭代,系统分析建模,帮助开发团队理解系统任务 尽早澄清系统及软件需求 建立与技术无关的需求模型,帮助开发人员理解需求 系统维护,尽早控制项目规模 减少需求变更,统一建模语言UML简介,UML是一种图形化的语言,用于对软件系统的产品进行 描述 可视化 构造 文档化,UML的发展历程,UML的来源,对UML做出贡献的公司,Aonix
2、Colorado State University Computer Associates Concept Five Data Access EDS Enea Data Hewlett-Packard IBM I-Logix InLine Software Intellicorp Kabira Technologies Klasse Objecten Lockheed Martin,Microsoft ObjecTime Oracle Ptech OAO Technology Solutions Rational Software Reich SAP Softeam Sterling Soft
3、ware Sun Taskon Telelogic Unisys ,UML的特点(1),语义丰富的可视化建模语言 统一了Booch、OMT等许多对象建模语言 经过实践检验 解决当前的软件开发问题 系统分布、并发、系统扩展等 可灵活地应用于任何软件开发过程 良好的可扩展性,UML的特点(2),定义了从分析到设计到实现的无缝映射 定义了丰富的和一致的符号 便于交流 辅助发现遗漏和冲突 支持各种规模的分析和设计 与过程无关 与实现语言无关,UML图与模型,静态应用结构: 类图:Class Diagram 对象图:Object Diagram 构件图:Component Diagram 部署图:Dep
4、loyment Diagram 动态应用行为: 用例图:Use Case Diagram 时序图:Sequence Diagram 活动图:Activity Diagram 协作图:Collaboration Diagram 状态图:Statechart Diagram 应用组织和管理: 包:Package 子系统:Subsystem 模型:Model,用例建模系统需求定义,从需求到用例,用例的来源 系统说明/问题陈述文档 问题域相关的文献 与问题域专家的会谈纪录 关于问题域的知识 现有系统 ,从IDEF0到Use Case,用例模型,用例模型用于描述相关系统功能及其环境的模型。 用例模型用于
5、用户和开发团队之间的交流。 用例模型用于需求、分析、设计、实现和测试中。 用例模型组成: 描述 Use Case 包 Actor和Use Case 关系 Use Case图,一个Use Case是系统所执 行的并向特定的Actor产生 可观察的结果的一系列动作。,Actor表示与系统发生交互的任何事物。,概念:Actor和Use Case,Actor,Use-Case,Actor,Actor处于系统的外部,代表系统用户扮演的角色。 Actor可以主动地与系统交换信息。 Actor也可以被动地接收信息。 Actor可以是一个人、硬件设备或另外的系统。,寻找Actors:有用的问题,谁对特定的需求
6、感兴趣? 系统将在企业的哪个部分被使用? 谁将向系统提供信息,使用信息,删除信息? 谁将使用这个功能? 谁将负责支持或维护系统? 系统是否使用外部资源? 用例需要哪些Actors? 一个Actor是否扮演多个角色? 是否有几个Actor扮演共同的角色?,Actors的实例,U,s,e,-,C,a,s,e,M,o,d,e,l,Actor,Use Case,一个用户作为多个Actors,系统边界,Use Case,Use Case表示Actor与系统之间的对话。 一个用例由一个Actor启动以调用系统的特定的功能。 一个用例是完整的有意义的事件流。 所有用例一起构成了可能的使用系统的方式。,寻找U
7、se Cases:有用的问题,这个Actor的任务是什么? 这个Actor将创建、存储、修改、删除或读取系统中的信息吗? 什么Use Case将创建、存储、修改、删除或读取这些信息? 对于突发的、外部的变化,Actor需要通知系统吗? 当系统中发生某些事件时,需要通知Actor吗? 系统是否为某项业务提供了正确的行为? 什么Use Case被用来支持和维护系统? 所有的功能需求都能够被这些Use Case执行吗?,用例建模示例及产品演示,用例描述,用例文档 类型: Brief:简单描述 Casual:随意的 Fully dressed:完整的 概念: 事件流 场景 扩展,Use Case文档模
8、板,用例文档示例及产品演示,用例驱动的软件开发,用例模型,测试,设计,项目估算,项目计划,风险管理,开发,测试需求 测试计划 测试用例 ,从需求到实现,Use Case 模型,Class 模型,行为 模型,构件 模型,业务 模型,Class 模型,行为 模型,部署 模型,用户需求,系统需求,分析模型,设计模型,实现模型,用例分析:系统的结构和行为,Use Case 模型,Class 模型,行为 模型,用例分析,找类MVC,系统行为对象交互,职责分配,描述,描述,描述,实现 模型,找类,什么是对象?,非正式的定义:一个对象代表了一个现实的或虚构的实体 物理实体 概念实体 软件实体,化学过程,较正
9、式的定义,对象是应用中具有明显边界和含义的概念、抽象或事物 对象有三个重要的属性: 状态 行为 标识,对象有状态,对象的状态是对象当前存在的可能条件 对象的状态会随时变化 对象的状态通常由其一系列的特性(属性)、属性的值及对象与其它对象之间的连接实现,对象有行为,行为确定对象行动和反应 行为定义对象对其它对象请求的反应 对象可见行为由一套它能够进行反应的(对象能够执行)消息来规定,对象有标识,每个对象都有唯一的标识,即使其状态有可能与其它对象一样,什么是类?,在很多领域中都有很多对象 类是对一组对象的描述。这些对象具有共同的属性、共同的行为(操作)、与其它对象的共同的联系(关联和聚合),以及共
10、同的语义 对象是类的实例 类是一种抽象,在其中: 强调相似的特征 忽略其它的特征 抽象的手段可以帮助我们处理事物的复杂性,对象,类,类和对象之间的联系,类是对象的抽象定义 在类中定义了每个对象的结构和行为 它提供了创建对象的模板 对象能被集合在类中,是类的实例,代数 101 艺术史 化学 西班牙语 101,发现类的指南,类应当捕捉一个且仅仅一个关键的抽象 不好的抽象:学生类(学生信息和本学期学生的课程表) 好的抽象:将学生和学生课程表分为两个类,命名类,类的命名最好使用单个名词来表现其抽象 命名困难往往暗示着抽象定义不当 该名称应该能从本领域的专业词汇表中直接获得,命名类的风格指导,风格指导应
11、该规定类的命名约定 风格指导举例 类命名使用单个名词 类命名开始以大写字母开头 不使用下划线 当名字由多个单词聚合而成时,每个单词的开头字母大写 例如:Student、Professor、BillingSystem,注意 “什么” 而忽略 “怎样”,定义类语义,类命名之后,必须为类加一个简要描述 主要描述类的目的而不是实施 类命名和描述是模型字典的基础,a + b = 10,类的表示法,类被表示为分为若干部分的长方形,什么是属性?,属性是类实例的数据定义 属性没有行为它们不是对象 属性名称是简单的名词或名词短语 在类中其命名是唯一的 每个属性必须有一个清楚简练的定义,操作应该执行简单、连贯的功
12、能,什么是操作?,类体现了一系列责任,它们决定了类中对象的行为 类通过其操作完成这些责任 操作是可以由对象或有效操作请求执行的服务,类从何而来?,我创建了Use Case模型,可是怎样从Use Case中找到类呢?,应用MVC模式 分析问题域,创建概念模型 应用类责任协作卡,应用MVC模式,MVC模式: “modelviewcontroller” 候选类 实体类 边界类 控制类,Movie_Copy,Store,Customer,Movie,实体类,描述持久的信息和行为: 反映现实现象 系统完成内部任务所需的信息 通常由Actor提供属性值 行为独立于环境,边界类,描述系统环境和内部工作之间的
13、通信 典型的边界类: 窗口(用户界面) 通信协议 (系统间接口) 设备接口,控制类,描述一个或多个Use Case的控制行为 控制行为: 创建、初始化或删除受控对象 控制受控对象活动的顺序和协作 控制受控对象的并发行为 通常是无形的对象的实现,构造型Stereotypes,构造型: 建模元素的一种新的类型, 用于扩展元模型语义 基于元模型中现存的类或类型 每个类最多有一个构造型 常用的构造型 Boundary class Entity class Control class,分析问题域,概念模型:表示现实世界中的事物 IDEF1x:数据建模方法 逻辑模型 IDEF1x建模过程: ERD:Ent
14、ity-Relationship Diagram KB:Key-Based FA:Fully-Attributes,从数据模型到概念模型,数据模型和术语表: 实体 属性 关系,类、属性、关系,概念模型,UML,类责任协作卡,Class-Responsibility-Collaboration (CRC) cards Ward Cunningham and Kent Beck ,at OOPSLA ,in 1989 CRC卡: 类名称和描述 类的责任 类的内部知识 类提供的服务 责任的协作者(类),CRC卡,类名,责任,协作者,CRC卡实例,CRC模型,Use Case 模型,UI 原型,CRC
15、 模型,Class 模型,CRC 建模步骤,Put together the CRC modeling team. Organize the modeling room. Do some brainstorming. Explain the CRC modeling technique. Iteratively perform the step of CRC modeling. Perform use-case scenario testing.,CRC 建模团队,问题域专家 Business Domain Experts(BDEs) 召集人 记录员 观察员,Organize the room
16、,头脑风暴Brainstorm,CRC 建模,解释CRC建模技术 迭代的CRC建模步骤: 寻找类 寻找责任 定义协作者 定义Use Case,CRC建模寻找类,与系统交互的任何事物Actors 客户? 系统生成的报表报表类 系统用户界面界面类 创建CRC卡 简要描述类 类名为单数名词,CRC建模寻找责任,类应当知道什么? 类应当做什么? 如果已经定义可了责任,应当将其分配给哪个类?(GRASP模式) 类之间应当相互协作。,CRC建模定义协作者,当一个类需要它没有的信息。 当一个类要修改它没有的信息。 一个协作通常总有一个发起者。 增加新的协作者。,CRC建模,定义Use Case 摆放CRC卡
17、 有协作的类靠近 “busy”类放在中央 发现类之间的关联,Use Case场景测试,CRC卡方法的优缺点,优点: 问题域专家进行分析 增强用户参与 打破沟通障碍 简单,直截了当 低成本,方便 与原型相结合 直接导出类图,缺点: 开发者的问题 用户的问题 CRC卡的限制,CRC建模技巧,提前制定日程 显著地显示CRC的定义 使用问题域中的术语 低技术含量 结合原型 时间 管理层的支持 将CRC建模纳入系统开发生命周期中 只由一线人员参与,系统行为分析,系统行为:对系统动作的描述。 系统行为分析: 系统行为:系统时序图 用于显示Use Case的一个特定的场景 外部Actor生成的事件 事件的顺
18、序 系统之间的事件 对象交互:时序图 用于显示Use Case的一个特定的场景 外部Actor生成的事件 事件的顺序 对象之间的交互,对象交互,交互图,交互图: 时序图 协作图,概念:时序图,按时间顺序显示对象之间的交互。 交互图显示: 对象 交换消息的顺序 时序图中包含: 对象和“生命线” 消息 控制交点(Activation),时序图中命名对象,对象被画成长方形,在名称上有下划线 对象“生命线”通过下拉虚线来表示,Course,:Course,c1:Course,类,实例 (匿名对象),实例 (命名对象),时序图,时序图,时序图示例及产品演示,系统逻辑结构建模,关系,整个系统包含很多类和对
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 实践 PPT
