《uml系统建模与分析设计--1系统建模与分析设计技术的演变》由会员分享,可在线阅读,更多相关《uml系统建模与分析设计--1系统建模与分析设计技术的演变(41页珍藏版)》请在金锄头文库上搜索。
1、UML系统建模与分析设计课件Date1软件工程方法第一章 系统建模与分析设计技术的演变 本章目的:理解软件的基本概念和特点了解软件的发展过程及软件开发过程了解软件开发的方法掌握面向对象技术的基本概念及开发过程了解几种典型的面向对象方法Date2软件工程方法1.1 软件的概念、特点和分类1现代软件的概念和特点(1)软件规模大。(2)软件开发规范并趋于标准化。(3)软件开发方法多,有大量的软件工具持。(4)注重软件开发的管理。(5)软件维护相对过去容易得多。Date3软件工程方法2软件的分类 (1)按软件的功能划分系统软件。支撑软件。应用软件。 (2)按软件的规模划分微型软件。小型软件。中型软件。
2、大型甚至超大型软件。 (3)按软件工作方式划分实时处理软件。分时软件。交互式软件。批处理软件。Date4软件工程方法(4)按软件服务对象的范围划分项目软件。 产品软件。 (5)按使用的频度划分 一次性使用软件。 使用频度较高的软件。 (6)按软件失效的影响程度划分 一般性软件。 关键性软件。Date5软件工程方法1.2 软件的发展与软件工程软件工程的指导性原则:变动的软件需求。 稳妥的设计方法。 高效的软件开发支持技术。 有效的过程管理。软件工程具有里程碑意义的进展:结构化软件开发方法的工具。 计算机辅助软件工程(CASE)。 面向对象语言和方法成为主流的软件开发技术。Date6软件工程方法1
3、.3 软件开发模型的演变和生存周期1.3.1 软件开发过程与模型的演变1. 瀑布模型(waterfall model) (1)慎重使用瀑布模型的情况:不能充分理解客户需求或客户需求有可能迅速发生化;系统太大太复杂,不能一次做完所有的事;事先拟采用的技术迅速发生变化;提供的资源有限;无法利用各开发阶段的某一中间产品。Date7软件工程方法(2)使用瀑布模型的情况:系统所有的功能、性能要求客户可以一次性准确交付 时;必须是首次开发的新系统并且淘汰全部老系统时。2. 渐增模型(incremental model) (1)慎重考虑使用渐增模型的情况:不能充分理解客户需求或客户需求有可能迅速发生变 化;
4、事先拟采用的技术迅速发生变化;客户突然提出一些新的功能需求;长时期内仅有有限的资源保证(开发人员和资金)。Date8软件工程方法使用渐增模型的情况:需要在尽短的时间内得到系统基本功能的演示或使用;各版本都有中间阶段产品可提供使用;系统可以被自然地分割成渐增的模式;开发人员与资金可以逐步增加。Date9软件工程方法3. 演化模型(evolutionary model)演化模型也称为原型(prototype)法模型。使用演化模型时应注意:演化模型也是通过系统各个可执行的中间版本 以渐增的形式来开发系统的,但是客户需求可 以分步逐渐了解,不用在初始时就确定。在模型中,可以预先定义一部分客户需求,然
5、后在每个后继的中间版本中再逐步增加需求, 一点点完善。在开发每个中间版本时,开发过程中的活动和 任务可以顺序地或部分重叠平行地被加入到这 些中间版本中。Date10软件工程方法Date11软件工程方法4. 螺旋模型(spiral model) 螺旋模型的四类活动:制定计划。风险分析。实施开发。客户评估。Date12软件工程方法5 . 智能模型(intelligent model)Date13软件工程方法1.3.2 软件开发模型的选择要综合考虑以下几个因素: (1)软件规模(2)软件类型 l系统软件的开发。l实时软件的开发。l商业应用软件的开发。l嵌入式软件的开发。l人工智能软件的开发。Date
6、14软件工程方法(3)软件质量要求 (4)交付工期 (5)客户需求明确度 (6)投资 (7)可复用性 (8)开发者掌握的资源Date15软件工程方法1.3.3 软件生存周期Date16软件工程方法软件定义 (1)软件系统的可行性研究 1)经济可行性研究。 2)技术可行性研究。 3)法律可行性研究。 4)方案的选择。 (2)需求分析 1)任务。 软件功能需求: 软件性能需求: 软件系统运行环境: 2)按需求建模。 3)软件需求规格说明(Software Requirements Specification,简称SRS)。Date17软件工程方法软件开发 (1)概要设计 建立系统总体结构和各模块之
7、间的关系; 定义各个功能摸块的接口; 设计全局数据库或数据结构; 规定设计约束; 制定组装测试计划。 (2)详细设计 对概要设计进行细化; 建立文档资料。Date18软件工程方法(3)实现 选择合适的编程语言; 制定测试案例; 保存文档资料。 (4)组装测试 (5)确认测试 3软件使用、维护和更新换代 (1)软件使用 (2)系统维护 (3)系统更新换代Date19软件工程方法1.4 软件开发方法简介1. 结构化程序设计方法 其控制结构仅由顺序、选择与重复等有限的基 本控制结构表示。 2. 模块化程序设计方法 模块之间的接口应尽可能简明清晰:单独模块的修改不影响其它模块的功能;模块化应具有可修改
8、性、易读性和可验证性。 3. 面向对象程序设计方法Date20软件工程方法1.4.1 结构化软件开发方法1结构化分析的步骤构造数据流模型。 构建控制流模型。 生成数据字典(DD)。 生成可选方案,建立需求规约。Date21软件工程方法2结构化设计步骤首先研究、分析和审查数据流图。从软件的需 求规格说明中弄清数据流加工的过程。然后根据数据流图决定问题的类型。由数据流图推导出系统的初始结构图。优化软件结构。描述模块接口。修改和补充数据词典。制定测试计划。Date22软件工程方法1.4.2 模块化软件开发方法(1)模块可分解性。 (2)模块可组装性。 (3)模块可理解性。 (4)模块连续性。 (5)
9、模块保护。Date23软件工程方法1.4.3 面向数据结构软件开发方法 1建立JSD的系统进程模型 2JSD方法的步骤 (1)JSD需求分析步骤 标识系统中的实体与相应动作; 生成实体结构图; 初建系统模型。 (2)JSD系统设计步骤 扩充功能过程。 系统定时。 系统实现。Date24软件工程方法面向数据结构的开发方法的特点:将分析结果作为设计基础,无明显分界;都必须标识关键实体和动作;信息具有层次性;提供一组将层次化的数据结构映射到程序结构 的步骤;数据结构由顺序、选择和重复3种构造成分表 示。Date25软件工程方法1.4.4 面向对象软件开发方法 面向对象方法的意义: (1)一种新的思考
10、方式。 (2)将数据和行为结合成为对象。 (3)核心是封装。 (4)面向对象方法建立的基础是:l软件工程概念;l计算机科学概念;l工程管理;l数据库信息模型;l传统软件开发方法。Date26软件工程方法面向对象方法有几十种,综合起来, 其基本观点如下:现实客观世界由对象组成。相同的对象归并为类。类可以继承。对象之间通过消息进行联系。面向对象 = 对象 + 类 + 继承 + 通信Date27软件工程方法1.4.5 软件开发方法的评价与选择综合考虑以下几方面因素: 人员素质。 时间进度。 掌握资源。 可行性。 领域知识。从四个方面评价: 技术特征。 使用特征。 管理特征。 经济特征。Date28软
11、件工程方法1.5 面向对象软件开发方法简介特点: (1)使人们更好地认识客观世界 (2)能很好地适应需求变化 (3)容易实现软件复用 (4)系统易于维护和修改Date29软件工程方法1.5.1 面向对象的基本概念封装性、继承性和多态性。 1. 对象 客观世界中的实体抽象为问题空间中的对象。 2. 对象的抽象类 把具有相同特征和行为的对象归在一起就形成 了类(Class)。Date30软件工程方法Date31软件工程方法3. 信息隐蔽和局部化封装 4. 继承与派生Date32软件工程方法5. 对象之间的联系纽带消息Date33软件工程方法6. 多态性 多态性(Polymorphism)是指同一个
12、消息为不同 的对象接收时,可产生不同的动作或执行结果。Date34软件工程方法1.5.2 面向对象系统开发过程Date35软件工程方法(1)需求分析阶段。 (2)系统分析阶段。 (3)系统设计阶段。 (4)系统实现、测试、使用、维护阶段。Date36软件工程方法1.5.3 几种典型的面向对象方法简介1Booch面向对象方法 (1)Booch 方法的基本开发模型 开发模型包括逻辑模型、物理模型、静态模型 和动态模型。 (2)Booch方法的一般过程 开发过程分为技术层和管理层开发。 1)系统技术层开发步骤 发现类与对象。 确定类和对象的语义。 标识类和对象间的关系。Date37软件工程方法2)系
13、统管理层开发步骤 强调团队技术管理。 明确用户关键需求。 建立系统分析模型。 完善设计系统结构。 系统实现。 软件交付。 2Jacobson的面向对象方法 (1)建立面向对象分析模型的过程 1)建造用户需求模型。 2)建造系统分析模型。Date38软件工程方法(2)建立面向对象设计模型的过程 1)创建模块作为主要的设计对象。 2)创建一个显示激励如何在模块间传送的交互图。 3)把模块组织成子系统。 4)复审设计工作。3Coad-Yourdon的面向对象方法论 (1)面向对象分析(OOA)步骤 类及对象层。 结构层。 主题层。 属性层。 服务层。(2)面向对象设计(OOD)步骤Date39软件工程方法4James Rumbaugh的面向对象方法 (1)对象模型。 (2)动态模型。 (3)功能模型。Date40软件工程方法1.6 本章小结软件的基本概念和特点软件的发展过程及软件开发过程软件开发的方法面向对象技术的基本概念及开发过程几种典型的面向对象方法Date41软件工程方法