《应用软件系统分析与设计.ppt》由会员分享,可在线阅读,更多相关《应用软件系统分析与设计.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六讲第六讲 应用软件应用软件系统分析与设计系统分析与设计 3.0 概述3.1 面向对象的系统分析与设计3.2 结构化系统分析与设计3.0 概述l软件系统分析和设计是编码、实现之前的重要阶段。l系统分析系统分析:理解并详细说明系统应该做什么,即建立逻辑模型。(What to do)l系统设计系统设计:详细说明系统的物理模块如何组织和实施,即建立物理模型。(How to do)l谁来完成:系统分析员、系统设计师、项目经理等l一般方法自顶向下,由粗到精的逐层细化过程。l方法分类:面向对象的分析与设计 结构化分析与设计(面向过程)其它方法每种方法都涉及具体的理论、模型、技术和工具。3.0 概述3.0
2、 概述3.1 面向对象的系统分析与设计3.2 结构化系统分析与设计3.1面向对象的系统分析与设计 一、面向对象技术概述(一、面向对象技术概述(Object-Oriented)包括OO分析,OO设计,OO编程面向对象软件开发方法学 l自底向上的归纳(bottom-up)真实系统类体系l自顶向下的分解(top-down)具体(目标功能系统)抽象(对象模型)具体(软件逻辑结构、物理结构)3.1面向对象的系统分析与设计二、二、面向对象建模方法简介面向对象建模方法简介uOOSE(Object Oriented Software Engineering)uOMT方法(Object Modeling Tec
3、hnology)uBOOCH方法uUML(Unified Modeling Language)u易于使用的可视化建模语言;u为OO建模的核心提供扩充和细化机制;u使设计独立于特点的建模语言和开发过程;u一套标准和规范3.1面向对象的系统分析与设计三、对象模型三、对象模型对象技术的基本原理对象技术的基本原理l抽象(abstraction)l封装(encapsulation)l多态(polymorphism)l模块化(modularity)l层次性(hierarchy)l类型(typing)l并发性(concurrency)l持久性(persistence)3.1面向对象的系统分析与设计三、对象模
4、型三、对象模型两个基本概念两个基本概念l对象:封装了数据和操作的实体。(属性和行为)l类:共享一组公共结构和公共行为的一组对象组成的集合。二者关系:类是对象本质的一种抽象,对象是类中的一个实例。3.1面向对象的系统分析与设计三、对象模型三、对象模型对象基本表达方法对象基本表达方法l对象的表达:l类之间关系:关联(association)、继承、聚合和复合、依赖l对象间关系:连接(相互的操作)(对象的三种角色:执行器、服务器、代理)四、面向对象的开发过程四、面向对象的开发过程lTopDown 和Bottomup 综合的方法 lBooch:主流程-概念建立:核心需求的建立,验证,目标和预算微流程-
5、确定类和对象、确定类和对象语义、确定类和对象的关系、实施类和对象l统一过程(Unified Process):系统分析:建立系统行为模型系统设计:创建系统的结构系统实施:(渐进)运行维护3.1面向对象的系统分析与设计 五、面向对象设计工具五、面向对象设计工具Rational ROSEu模型:是否随时间变化,静态模型和动态模型。对应阶段:用例模型阶段、领域模型阶段、设计模型阶段和实现模型阶段。u功能:u逐层建模u正向工程u逆向工程u图:UML 图组织到各个模型中,包括用例图、静态结构图(概念图、类图)、包图、活动图、状态图、序列图、协作图、组件图、部署图3.1面向对象的系统分析与设计 用例模型阶
6、段用例模型阶段用例描述外部主角和系统之间的交互作用,同时帮助理解系统需求和领域专有的术语。在用例阶段中,需要创建用例图。领域模型阶段领域模型阶段侧重于让用户了解应用开发系统的领域。这是一个分析阶段,考虑现实世界中的对象和各对象间的关系,而并不涉及编程概念。需要创建概念静态结构图和序列图。设计模型阶段设计模型阶段(物理模型)将系统需求和功能的理解转化为实际的解决方案。使用协作图确定对象通信的方式;使用类静态结构图来确定要在软件中实现的类。要了解某个对象的生命周期,可以创建与特定类或用例相关的状态图或活动图。实现模型阶段实现模型阶段实现模型阶段侧重于开发环境的物理和组件结构。在实现阶段,您需要创建
7、组件图和部署图。3.0 概述3.1 面向对象的系统分析与设计3.2 结构化系统分析与设计3.2 结构化系统分析与设计一、结构化开发方法概述一、结构化开发方法概述l开发过程概括为“瀑布”式过程,前一步是后一步的需求,后一步是前一步的结果。l基本思想采用自顶向下、逐层分解、逐步求精的思想,将系统功能和结构按层次进行分解。吸收用户参与系统的分析与设计。采用图示工具附加语义说明的方法阐述系统的结构与功能,便于系统开发人员和用户之间的相互交流,对系统有一致的理解。l核心:功能与数据分离。l软件模块结构化设计的一般原则l高内聚l低耦合l结构化开发技术的主要方法有:l结构化分析/结构化设计方法(SA/SD)
8、l数据流程图法(DFD)lIDEF0方法3.2 结构化系统分析与设计二、二、IDEF0方法 Integration Definition for Function Modeling(IDEF0)l美国空军在1981年公布的一体化计算机辅助制造工程项目中应用的一种用于复杂系统分析与设计的方法。l特点:图形符号和自然语言相结合描述系统。自顶向下、逐层分解。明确“做什么”和“如何做”的区别。通过复查、审阅等控制建模的完整性与准确性。归档管理,提供完整、准确的文档资料。IDEF0图的模块图 3.2 结构化系统分析与设计三、IDEF0的基本组成的基本组成由环境图、父子图、节点图等图表组成。IDEF0图由
9、以下几部分基本要素组成:活动用方框表示;输入、输出、控制与机制用箭头表示;结点号用字母A加下标表示;模型名由基本名字和子名字组成。四、用IDEF0建立系统功能模型的基本步骤 确定系统的范围、建模的观点及目的。建立系统的内外关系图A-0图。建立顶层图A0。建立下一层次的图形。写文字说明。3.2 结构化系统分析与设计五、基于基于IDEF0图的设计方法图的设计方法 按照IDEF0图的分解层次,逐层将IDEF0图转化成软件结构图。遵循如下原则:l找出该层IDEF0图的父图,弄清父、子图之间的输入、输出、控制等关系。l以父图的活动为上层模块,子图的活动为下层模块,画出系统的单层结构图。l根据IDEF0图
10、中各活动的相关信息和数据项初步定义数据库结构,确定各模块之间的接口。l综合所有层次的结构图,得到初始软件结构。3.2 结构化系统分析与设计六、利用Microsoft Visio建立IDEF0图1、环境图、环境图模型中最顶端的图表(模型中最顶端的图表(A-0 图图)a.添加标题块以提供图表的节点名、标题和编号。b.向图表添加活动框(也称作功能框)。c.添加外部接口(或约束)箭头。d.添加目的和观点声明。2、创建、创建 IDEF0 父父/子图表子图表 a.添加标题块以提供图表的节点名、标题和编号。b.向图表添加活动框(也称作功能框)。c.添加约束箭头并根据需要修改它们。d.要添加连接线的描述性文本
11、,先选择该连接线,然后键入文本。3.2 结构化系统分析与设计3.2 结构化系统分析与设计七、结构化方法的不足之处七、结构化方法的不足之处u模块间层次关系复杂性不一u模块内部结构不同u难以满足可扩展性要求u功能变化导致维护的困难3.3 文档系统可行性报告、项目开发计划概念建立阶段需求分析说明书、数据字典、模型文档、用户手册、总体测试计划系统分析阶段数据字典、模型文档、结构版原型实现文档、结构版测试报告、产品发布计划、子系统测试计划、用户手册系统设计阶段数据字典、模型文档、实现文档、源程序模块清单、测试计划、测试报告、用户手册系统实施阶段软件问题报告、软件修改报告运行维护阶段参考文献l刘润东,UM
12、L对象设计与编程,北京希望电子出版社,2001.03l美John W.Satzinger,Robert B.Jackson,Stephen D.Burd著,系统分析与设计,机械工业出版社,2002.08l柴跃廷等,应用软件系统开发,清华大学出版社,1999.07复习与思考问答l软件系统设计的基本原理有哪些?l软件系统结构优化的原则有哪些?l结构化方法的基本原理和特点是什么?l面向对象技术的对象具有哪些特征?l面向对象技术的继承性、多态性、封装性的概念。l采用面向对象方法进行系统设计的一般过程?思考题l结构化设计方法和面向对象设计方法有何异同?l采用面向对象方法建立系统模型时有哪些阶段,每个阶段
13、的目标是什么?具体谈一谈这些阶段有何关联?在开发项目的初期,使用用例图可以描述现实世界中的活动和动机。使用序列图可以显示参与交互作用的主角或对象,以及它们所生成的按时间排序的事件。使用协作图协作图可以显示对象角色之间的关系,如为实现某个操作或达到某种结果而在对象间交换的一组消息。类静态结构图示例 使用静态结构图可以创建概念图,用来表示现实世界中的概念及它们之间的关系;或创建类图,用于将软件系统分解成各个部分。使用活动图可以描述某种方法的内部方式,并表示由内部生成的动作驱动的事件流。活动图对象的初始状态对象的初始状态 行为状态行为状态 转换转换 连接转换:指示必须先完成各个并行连接转换:指示必须先完成各个并行活动然后才发生下一个活动活动然后才发生下一个活动 最终状态:活动已结束最终状态:活动已结束 使用状态图可以显示某个对象在其生命周期中依次经历的各种状态。使用组件图可以将系统划分为内聚组件并显示代码自身的结构。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。