《软件工程ppt.ppt》由会员分享,可在线阅读,更多相关《软件工程ppt.ppt(22页珍藏版)》请在第壹文秘上搜索。
1、基于UML的 OOA/OOD 软件开发过程软件开发过程 面向对象分析面向对象分析OOA 面向对象设计面向对象设计OOD 建立对象模型建立动态模型 建立功能模型及实例及实例软件开发过程顾客要2个馒头做馒头需要面粉和水,和好面后用蒸锅蒸原料:200克面粉,100毫升35度温水步骤: 将面粉和水搅拌均匀,用手将面揉成一个面团; 将面盆盖上,让面团滋润30分钟; 将滋润好的面团均匀分成两份,揉成圆锥体状; 将圆锥体状的面团放入蒸锅,开锅15分钟后取出按设计好的步骤做馒头需求需求分析分析设计设计实现实现软件开发过程需 求分 析设 计实 现做什么?做什么?明确做什么,初步设计明确做什么,初步设计详细设计系
2、统如何实现详细设计系统如何实现编码实现编码实现面向对象分析OOAOOAOOA:Object-Oriented AnalysisObject-Oriented Analysis,面向对象分析,面向对象分析 分析阶段所做的主要工作是理解问题和需求构模,将现实世界中的问题映射到问题域。 面向对象分析利用面向对象的概念和原则,来分析、认识和理解客观世界,将客观世界中的实体抽象为问题域中的对象, 分析客观世界中问题的结构,明确为完成系统功能,对象间应具有的联系和相互作用,最后形成概念模型(也叫域模型) 。 OOA阶段需要做的工作: 1)系统应有哪些对象构成? 2)每个对象应有哪些属性和服务? 3)对象间
3、应有怎样的联系?阶段主要输出物:阶段主要输出物:概念模型和初步的序列图 面向对象分析OOA查询查询查询1.客户客户插入银行卡2.系统提示客户输入密码3.客户输入密码4.系统验证客户密码5.系统提示客户选择功能6.客户选择查询7.系统显示客户的帐户帐户信息8.客户退出9.系统吐出银行卡并提示用户取卡:System用例图用例图用例文档用例文档序列图序列图CustomerCustomerUseridUsernameAddressPhoneMobileEmailIdtypeIDNumAccountAccountUseridAccountidBalanceCurrencyPasswordTypeInte
4、restRateLastModified1 1n n概念模型概念模型业务实体业务实体概念类概念类需求需求分析分析 OOA系统模型是概念模型,由一组相关的类组成。以模型描述为基本部分,再加上接口要求、性能限制等其它方面的要求说明 寻找类与对象识别结构识别主题定义属性建立动态模型建立功能模型定义服务面向对象分析OODOODOOD:Object-Oriented DesignObject-Oriented Design,面向对象设计,面向对象设计 设计阶段则主要是确定实现用户需求的方法,即怎样做才能满足用户需求,并构造出系统的实现蓝图。 面向对象设计引入了面向对象的概念和原则来指导设计工作。OOD首
5、先从OOA的结果开始,并将其从问题域映射到实现域,为满足实现的需要,还要增加一些类,并对原有类及属性进行调整。此外,还要完成应用控制、人机交互界面的设计等。 面向对象分析OOD 属性:有些属性在分析阶段有助于问题的理解,而到了设计阶段则可以由其他属性导出或根本没必要保留,而且必要时需增加一些属性。 服务:OOA只给出了服务的接口,其具体实现算法要在OOD阶段完成,同样对于不合理的部分应予以调整。 类及对象:在OOA阶段有助于问题理解的一些类在OOD阶段成为冗余,需要删除,而为了优化调整继承关系还要增加一些类。所有的类都确定以后还要明确哪些类的对象会引发哪些类创建新对象。 结构: 对类间结构进行
6、优化调整。 OOD设计一般过程 以可实现的方式描述每个子系统 对象设计 消息设计 复审设计模型并在需要时迭代分析分析系统设计系统设计对象设计对象设计OOD 系统设计过程 划分分析模型 并发性和子系统分配 任务管理构件 数据管理构件 资源管理构件 人机界面构件 子系统间通信面向对象分析OODOOAOOA与与OODOOD的区别的区别 1)OOA将现实世界中的实体抽象为问题对象,并构造问题域中的系统需求模型;OOD将问题对象转化为解域中的类并在解域中构造出问题的解。 2)OOA侧重于用户需求的分析和对问题域的理解, OOD则侧重于系统的实现,设计人员关心的是对象的行为及其实现。 3)OOA识别的对象
7、是对客观世界实体的抽象,标识对象的准则是:该对象的引入是否有助于对问题域的理解;OOD中构造类的准则是:该类的构造是否可行,是否有效地实现了抽象数据类型,是否有助于系统的实现和提高软件质量。 三个模型面向对象建立起来的模型包含系统的三个要素,即: 静态结构(对象模型) 交互次序(动态模型) 数据变换(功能模型) 解决的问题不同,这3个子模型的重要程度也不同: 几乎解决任何一个问题,都需要从客观世界实体及实体间相互关系抽象出极有价值的对象模型 当模型涉及交互作用和时序时,动态模型是重要的 解决运算量是很大的问题,则涉及重要的功能模型 动态模型和功能模型中都包含了对象模型中的操作(即服务)。面向对
8、象分析的基本过程三个模型面向对象分析的基本过程三个模型 对象模型描述了现实世界中的“类与对象”以及它们之间的关系,表示了目标系统的静态数据结构: 静态数据结构对应用细节依赖较少,比较容易确定 当用户的需求变化时,静态数据结构相对来说比较稳定 因此,用面向对象方法开发绝大多数软件时,都首先建立对象模型,然后再建立另外两个子模型。 建立对象模型是面向对象分析首要的工作 对象模型的主要信息来源:需求陈述、应用领域的专业知识以及关于客观世界的常识建立对象模型建立对象模型建立对象模型确定类与对象建立对象模型确定类与对象l例子例子 银行自动取款机银行自动取款机( ATM)系统系统l某银行拟开发一个自动取款
9、机系统,它是一个由自动取款机、中央计算机、分行计某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及柜员终端组成的网络系统算机及柜员终端组成的网络系统 建立动态模型的步骤:编写典型交互行为的脚本,虽然脚本中不可能包括每个偶然事件,但是,至少必须保证不遗漏常见的交互行为。从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象。排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们确定事件:与用户交互的所有信号、输入/出、中断、动作画事件跟踪图:事件序列以及事件与对象的关系画出状态图:描绘事件与状态的关系。对象接受事件后,它下个状
10、态取决于当前状态及所接受的事件。比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。审查动态模型:各个类状态图通过共享事件合并起来建立动态模型步骤建立动态模型步骤 例如 ATM系统非正常情况脚本: ATM请储户插卡;例如储户插一张信用卡 ATM接受卡并读取卡上分行代码及卡号 ATM要求用户输入密码;用户误输密码 ATM请求总行验证密码;总行通知ATM卡无效 ATM显示密码错误,请用户重新输入密码;用户输入正确密码 ATM要求用户选择事务类型(取款、转帐、查询、代理) ATM要求用户输入取款额;用户按“取消”键 ATM退出卡,请用户拿走卡,用户拿走卡 ATM请用户插卡建立动态模型编写脚本建立动态模型编写脚本总行类的状态图 建立动态模型状态图 建立功能模型通过数据流图和数据字典) 通常,功能模型由一组数据流或一组用例图组成。 其中的数据处理功能可以用IPO图(表)、PDL语言等多种方式进一步描述。 一般说来,应该在建立了对象模型和动态模型之后再建立功能模型。建立功能模型建立功能模型建立功能模型建立功能模型ATM系统的基本系统模型建立功能模型建立功能模型银行卡P1ATM系统储户卡号、分行代码密码事务类型、金额储户现金、账单出错信息0 0层层功功能能模模型型建立功能模型建立功能模型 谢谢欣赏