




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第3部分设计篇 2 本篇内容 软件工程开发规划进销存系统设计计划管理系统设计 3 软件工程 4 主要内容 软件危机与软件工程面向对象技术UMLRUP软件最佳实践软件工程过程与CMM 5 1软件危机与软件工程 什么是软件危机 哪一年发生的 为什么会发生 你在开发软件中遇到什么困惑 什么是好的软件 如何开发复杂的 优质的软件 6 软件危机 随着计算机硬件性能的不断提高和价格的不断下降 其应用领域也在不断扩大 人们在越来越多的领域希望把更多 更难的问题交给计算机去解决 这使得计算机软件的规模和复杂性与日俱增 因而软件技术不断地受到新的挑战 20世纪60年代软件危机的出现就是因为系统的复杂性超出了人们在当时的技术条件下所能驾御的程度 此后在软件领域 从学术界到工业界 人们一直在为寻求更先进的软件方法与技术而奋斗 每当出现一种先进的方法与技术 都会使软件危机得到一定程度的缓和 然而这种进步又立刻促使人们把更多 更复杂的问题交给计算机去解决 于是又需要更先进的方法与技术 7 开发一个具有一定规模和复杂性的软件系统和编写一个简单的程序大不一样 其间的差别 借用GBooch的比喻 如同建造一座大厦和搭一个狗窝的差别 大型的 复杂的软件系统的开发是一项工程 必须按工程学的方法组织软件的生产与管理 必须经过分析 设计 实现 测试 维护等一系列的软件生命周期阶段 这是人们从软件危机中获得的最重要的教益 这一认识促使了软件工程学的诞生 8 软件工程 软件工程 IEEE IEE93 是 1 将系统化的 严格约束的 可量化的方法应用于软件的开发 运行和维护 即将工程化应用于软件 2 在 1 中所述方法的研究 软件工程有三个要素 方法 工具和过程 其中方法是指 如何做 工具是指软件支撑环境 即软件工具 软件工程的过程是把方法与工具结合起来以达到开发的目的 软件工程是一种层次化的技术 如图所示 任何工程方法 包括软件工程 必须以有组织的质量承诺为基础 全面的质量管理和类似的理念培养了不断的过程改进文化 正是这种文化导致了更成熟的软件工程方法的不断出现 支持软件工程的根基就在于对质量的关注 9 10 良好软件属性 良好软件的ISO9126属性 11 软件工程过程 人们所从事的大多数工作都可以以某种方式组织起来或使之规范化 并实施相应的管理 我们把对软件开发活动的组织 规范和管理称为软件过程 SoftwareProcess 关键过程区域构成了软件项目的管理控制的基础 并且建立了一个语境 其中规定了技术方法的采用 工程产品 模型 文档 数据 报告 表格等 的产生 里程碑的建立 质量的保证及变化的适当管理 12 软件工程的方法提供了建造软件在技术上需要 如何做 方法覆盖了一系列的任务 需求分析 设计 编程 测试和支持 软件工程方法依赖于一组基本原则 这些原则控制了每一个技术区域且包含建模活动和其他描述技术 13 软件工程的工具是对过程和方法提供了自动的或半自动的支持 当这些工具被集成起来使得一个工具产生的信息可被另外一个工具使用时 一个支持软件开发的系统就建立了 称为计算机辅助软件工程 CASE 14 一是从管理的角度 希望实现软件开发过程的工程化 瀑布式 生命周期模型 分析一设计一编码一测试一维护快速原型法 螺旋模型 喷泉模型等对 瀑布式 生命周期模型进行补充 统一软件开发过程 RUP 15 二是侧重于对软件开发过程中分析 设计方法的研究 诞生了许多程序设计范型 面向过程算法面向对象类和对象面向逻辑目标 通常以谓词演算表示面向规则if then规则面向约束不变量的关系 16 系统规划 根据用户的系统开发请求 对企业的环境 目标 现行系统的状况进行初步调查 明确问题 确定信息系统的发展战略 对建设新系统的需求做出分析和预测 分析建设新系统所受的各种约束 研究建设新系统的必要性和可能性 根据需要和可能 给出拟建系统的备选方案 从技术和经济角度对方案进行可行性分析 写出可行性报告 提交用户批准后 将系统建议方案及实施计划编写成系统开发任务书 进入系统分析阶段 系统分析 对现行系统进行详细调查 在此基础上进行组织机构功能分析 管理业务流程分析 数据与数据流程分析 功能与数据之间的关系分析 最后提出分析处理方式和新系统逻辑方案 形成综合性的系统分析报告 并提交用户审核 然后转入系统设计阶段 结构化方法的系统开发过程 17 系统设计 进行总体结构设计 代码设计 数据库 文件 设计 输入 输出设计 模块结构与功能设计 根据总体设计 配置与安装部分设备 进行试验 最终给出设计方案 系统实施 同时进行编程 由程序员执行 和人员培训 由系统分析设计人员培训业务人员和操作员 以及数据准备 由业务人员完成 然后投入试运行 系统运行与维护 进行系统的日常运行管理 评价 监理审计 修改 维护 局部调整 再出现不可调和的大问题时 进一步提出开发新系统的请求 老系统生命周期结束 新系统诞生 构成系统的一个生命周期 18 SSA D的优缺点 优点 严格区分开发阶段 系统的针对性强 整体性与全局性好 自顶向下观点 缺点 开发周期长 开发过程繁琐 复杂 开发工具落后 与用户交流不直观 系统的升级较困难 19 原型法 Prototyping 基本思想原型是一个可以实际运行 反复修改 可以不断完善的系统 20 原型法 Prototyping 原型法的工作流程 21 原型法 Prototyping 原型法的特点 遵循了人们认识事物的客观规律 易于掌握和接受将模拟的手段引入系统分析的初始阶段 沟通了人们 用户和开发人员 的思想 缩短了用户和系统分析人员之间的距离 解决了结构化方法中最难于解决的一环 强调用户参与 描述 运行 沟通 充分利用最新的软件工具 摆脱了传统的方法 使系统开发的时间 费用 大大地减少 效率 技术等方面都大大地提高 强调软件工具支持 22 原型法 Prototyping 使用范围 适合于 处理过程明确 简单系统 涉及面窄的小型系统 不适合于 大型 复杂系统 难以模拟 存在大量运算 逻辑性强的处理系统 管理基础工作不完善 处理过程不规范 大量批处理系统 23 原型法 Prototyping 优缺点 从原理到流程十分简单 最终总可以获得一个满意的MIS 无高深理论和技术 方法本身 用户与开发者思想易于沟通使用软件工具效率高 摆脱了传统方法要求管理基础工作完整 准确 一般只适用于小型系统 24 2面向对象技术 面向对象技术认为客观世界是由各种各样的对象组成 每种对象都有各自的内部状态和运动规律 不同对象间的相互作用和联系就构成了各种不同的系统 构成了客观世界 25 面向对象技术概述 面向对象技术提供了一种新的认知和表示世界的思想和方法 它对计算机工业的影响是深远的 计算机从业人士利用它提出了面向对象的分析方法 面向对象程序设计语言 面向对象的软件设计方法 面向对象的数据库等 同时面向对象技术为软件工业实现工程化提供了强有力的支持 正是面向对象技术造就了架构 统一建模语言 UML 框架 模式 组件 构件 中间件等概念 26 面向对象方法具有下述4个要点 面向对象的软件系统是由对象 Object 组成的 把所有对象都划分成各种对象类 简称为类 Class 每个对象类都定义了一组数据和方法 按照子类 派生类 与父类 基类 的关系 把若干个对象类组成一个层次结构的系统 这种现象称为继承 Inheritance 对象彼此之间仅能通过传递消息 message 互相联系 27 面向对象方法经历了这样的发展过程 它首先在编程领域兴起 作为一种崭新的程序设计范型引起世人瞩目 继Smalltalk 80之后 20世纪80年代又有一大批面向对象的编程语言问世 标志着面向对象方法走向成熟和实用 此时 面向对象方法开始向系统设计阶段延伸 出现了如Booch86 GOOD 通用面向对象的开发 HOOD 层次式面向对象的设计 OOSD 面向对象的结构设计 等一批OOD 面向对象的设计 或 面向对象的开发 的缩写 方法 但是这些早期的OOD方法不是以面向对象的分析 OOA 为基础的 而主要是基于结构化分析 28 到1989年之后 面向对象方法的研究重点开始转向软件生命周期的分析阶段 并将OOA和OOD密切地联系在一起 出现了一大批面向对象的分析与设计 OOA D 方法 如Booch方法 Coad Yourdon方法 Firesmith方法 Jacobson的OOSE Martin Odell方法 Rumbaugh的OMT Shlaer Mellor方法等等 29 截至1994年 公开发表并具有一定影响的00A D方法已迭50余种 这种繁荣的局面表明面向对象方法已经深入到分析与设计领域 并随着面向对象的测试 集成与演化技术的出现而发展为一套贯穿整个软件生命周期的方法体系 30 典型的方法 Booch方法Rumbaugh的OMT方法Coad Yourdon方法Jacobson方法RUP 31 支持3种基本的活动 识别对象和类描述对象和类之间的关系通过描述每个类的功能定义对象的行为 32 3UML 各种面向对象的分析与设计方法都为面向对象理论与技术的发展做出了贡献 这些方法各有自己的优点和缺点 同时在各自不同范围内拥有自己的用户群 各种方法的主导思想以及所采用的主要概念与原则大体上是一致的 但是也存在不少差异 这些差异所带来的问题是 不利于面向对象方法向一致的方向发展 也会给用户的选择带来一些困惑 33 为此 Rationa1公司的G B00ch和JRumbaugh决定将他们各自的方法结合起来成为一种方法 1995年10月发布了第1个版本 称作 统一方法 unifiedMethodO 8 此时OOSE的作者I Jacobson也加入了Rational公司 于是也加入了统一行动 1996年6月发布了第2个版本UML0 9 鉴于统一行动的产物只是一种建模语言 而不是一种建模方法 因为不包含过程指导 所以自0 9版本起 改称 统一建模语言 UnifiedModelingLanguage 34 UML的问世受到计算机软件界的广泛重视 因为它代表了一种积极的方向 多种方法相互借鉴 相互融合 趋于一致 走向标准化 UML不是一种可视化的程序设计语言 而是一种可视化的建模语言 UML是一种建模语言规格说明 是面向对象分析与设计的一种标准表示 UML不是过程 也不是方法 但允许任何一种过程和方法使用它 35 UML架构由视图 view 图 diagram 模型元素 Modelelement 和通用机制 generalmechanism 等几个部分组成 UML是用来描述模型的 用模型来描述系统的结构或静态特征 以及行为或动态特征 从不同的视角为系统的构架建模 形成系统的不同视图 view 36 UML视图 用例视图 USEcaseview 强调从用户的角度看到的或需要的系统功能 是被称为参与者的外部用户所能观察到的系统功能的模型图 逻辑视图 logicalview 展现系统的静态或结构组成及特征 也称为结构模型视图 structuralmodelview 或静态视图 staticview 并发视图 concurentview 体现了系统的动态或行为特征 也称为行为模型视图 behavioralmodelview 动态视图 dynamicview 组件视图 componentview 体现了系统实现的结构和行为特征 也称为实现模型视图 implementationmodelview 配置视图 delploymentview 体现了系统实现环境的结构和行为特征 也称为环境模型视图 enviromentmodelview 或物理视图 physicalview 37 图的功能 用例图 usecasediagram 描述系统功能 类图 classdiagram 描述系统的静态结构 对象图 objectdiagram 描述系统在某个时刻的静态结构 序列图 sequencediagrm 按时间顺序描述系统元素间的交互 协作图 collabrationdiagram 按照时间和空间顺序描述系统元素间的交互和它们之间的关系 状态图 statediagram 描述了系统元素的状态条件和响应 活动图 activitydiagram 描述了系统元素的活动 组件图 componentdiagram 描述了实现系统的元素的组织 配置图 deploymentdiagram 描述了环境元素的配置 并把实现系统的元素映射到配置上 38 一些常见的模型元素 39 一些关系的例子 40 图的分类 根据它们在不同架构视图的应用 可以把9种图分成以下几类 用户模型视图 用例图结构模型视图 类图 对象图行为模型视图 序列图 协作图 状态图 活动图 动态图 实现模型视图 组件图环境模型视图 配置图 41 UML工具 UML有良好的集成化支持工具 这方面的产品有Rational公司的ROSE2000和Platinum的ParadigmPlus PowerDesign Visio等 42 Rose 它可以提供可视化的集成支持环境 包括 提供UML可视化建模系统 支持从系统分析到系统设计直至实现 测试的系统开发各阶段的建模过程 提供UML模拟系统 支持对UML模型的功能模拟和性能模拟 支持代码自动生成 它将建模和编码过程有机地统一起来 可以生成C Java Delphi等编程语言 CORBAIDL构件描述语言及支持多种数据库的DBMS 如Oracle Sybase SQLServer等 支持逆向变换 即根据现有系统产生模型 保持对象模型和代码的一致 使系统的扩充 增删和维护工作顺利进行 43 4RUP Rational统一过程 我们主要对统一过程进行描述 因为它是由提出UML的3位方法学家Booch Jacbson以及Rational的Objectory为核心提出 在这个过程中使用UML是非常自然的 44 最佳实践之一 迭代式开发 最佳实践 迭代式开发需求管理使用构件构架可视化建模 UML 持续的质量保证配置管理 45 瀑布式开发面临的问题 滞后了关键风险的解决难以准确衡量项目的进度延迟并加重了集成与测试的工作无法满足尽早部署的要求往往导致未计划的迭代 设计 代码与单元测试 子系统集成 系统测试 需求分析 瀑布式开发 46 迭代式开发 每一个迭代将产生一个可执行程序 47 迭代式开发的优点 之一 适应变更不要指望一次成功 无论如何你都要这样环境在发生变化 用户的最初想法也在发生变化同已有的产品进行竞争允许技术变更降低风险许多方面得到了磨合与提高分散集成 每一部分要集成的元素都比过去少得多提高复用性确定和开发可重复使用的部分并非易事 48 迭代式开发的优点 之二 学习边做边学 各显其能同步作业迭代流程自身也可在进行过程中得到改进和精炼提高质量有机会在数次迭代中经历多次测试错误经过数次迭代已得到纠正 生成的构架将更强壮 49 最佳实践之二 需求管理 最佳实践 迭代式开发需求管理使用构件构架可视化建模 UML 持续的质量保证配置管理 50 为什么要进行需求管理 需求不总是显而易见的 而且它可来自各个方面 需求并不总是能容易用文字明白无误地表达 在不同的详细级别上 需求的种类也各种各样 如果不加以控制 需求的数量将难以管理 需求之间相互关联关系 而且需求也和软件工程流程中的其他可交付工件有关 需求有唯一的特征或特征值 例如 它们的重要性和容易满足的程度都各不相同 需求涉及众多相关方面 这意味着需求要由功能交叉的各组人员管理 需求会变更 51 需求管理的关键 捕获和组织需求捕获 以usecase作为沟通方式组织 启用RUP成熟的文档体系使用和维护需求使用 利用Attribute统筹任务维护 依据Traceability审慎接受变化 并对需求进行基线化 52 为什么使用构件构架 大规模复用的有效基础项目计划和人员配备可以根据主要构件的类别组织进行的对软件编程 每次一行程序 转移到组装软件 通过组装构件 测试首先围绕构件展开 然后才逐渐过渡到较大的集成构件集 53 最佳实践之三 使用构件构架 最佳实践 迭代式开发需求管理使用构件构架可视化建模 UML 持续的质量保证配置管理 54 最佳实践之四 可视化建模 最佳实践 迭代式开发需求管理使用构件构架可视化建模 UML 持续的质量保证配置管理 55 最佳实践之五 持续的质量保证 最佳实践 迭代式开发需求管理使用构件构架可视化建模 UML 持续的质量保证配置管理 56 最佳实践之六 配置管理 最佳实践 迭代式开发需求管理使用构件构架可视化建模 UML 持续的质量保证配置管理 57 RUP通过一个流程来实现 迭代化思想活动与工件的向导体系构架为中心用例驱动对系统进行抽象与建模 58 RUP的组织方式 RUP的组织时间轴阶段和迭代内容轴活动规则 59 RUP通过时间轴的组织 Time RUP有四个阶段先启 定义项目目标与范围精化 计划项目 指定特性 构造基线化构建 构建产品产品化 将产品发布到用户社区 60 RUP通过内容轴的组织 内容轴包含 业务建模需求开发分析设计实施测试部署配置与变更管理项目管理环境 61 迭代化方法 将两者结合在一起 叙述了所有的活动 每一个迭代都包含了所有的活动阶段 62 RUP软件开发流程 风险驱动基于usecase技术以架构为中心迭代化可配置的 63 RUP是 实现最佳经验的流程 64 65 5软件工程过程与CMM 简单地说 过程描述做什么 怎么做 什么时候做以及为什么要做 描述了一组以某种顺序完成的活动 过程的结果是一组有关系统的文档包括模型和其他一些描述 以及对最初问题的解决方案 因为建模语言需要工具的支持 所以过程也需要工具的支持 66 评价软件过程 软件成熟度建模 CMM CapabilityMuturityModeling CMM是由美国国防部资助 美国卡耐基梅隆大学的软件工程研究所提出的 它是大型复杂软件开发过程的框架 CMM定义了软件过程的5个成熟度等级 初始级 可重复级 已定义级 已管理级和优化级 如图1所示 表l是各等级的具体描述和特征 67 图1 68 69 70 软件开发文档 示例1 操作手册 GB8567 88 测试分析报告 GB8567 88 测试计划 GB8567 88 概要设计说明书 GB8567 88 开发进度月报 GB8567 88 可行性研究报告 GB8567 88 模块开发卷宗 GB8567 88 软件需求说明书 GB856T 88 数据库设计说明书 GB8567 88 数据要求说明书 GB856T 88 文件给制实施规定的实例 GB8567 88 详细设计说明书 GB8567 88 项目开发计划 GB856T 88 项目开发总结报告 GB8567 88 用户手册 GB8567 88 71 软件开发文档 示例2 项目建议书 或立项报告 项目计划需求分析报告及系统规格说明书数据库设计说明系统功能 总体 概要设计系统功能详细设计系统规格细节说明用户使用说明及二次开发说明 72 需求规格说明书内容 目录VII引言I编写目的 3II读者对象3III背景3IV名词术语定义4V参考资料4II任务概述4I目标4II用户的特点4III假定和约束4 73 III需求规定5I业务概述 5II业务流程 5III系统功能 7 1 库存盘点数据管理7 2 倒算产成品入库数量7 3 倒算生产领料数量7IV对性能的规定7精度7时间特性要求7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件模板比较
- 密度教学课件
- 花店开店课程培训
- 设计小书包课件
- 课件智能录音
- 课件显示教学课件
- 历年乐理考试题及答案
- 乐清保安考试题及答案
- 老舍考试题目及答案
- 课件显示乱码问题
- 年度优秀员工评选报告ppt
- 人教版八年级下Unit10 SectionB Hometown Feelings 课件
- 联通创新人才认证(物联网)考试题库(附答案)
- GB/T 5900.1-2008机床主轴端部与卡盘连接尺寸第1部分:圆锥连接
- GB/T 10294-2008绝热材料稳态热阻及有关特性的测定防护热板法
- 房屋验收记录表
- 星火英语六级词汇大全(带音标)
- 土地勘测定界技术方案
- 小学语文人教四年级上册第一单元《习作推荐一个好地方》
- 体育教学论-课件
- 人教版数学四年级上册教学计划
评论
0/150
提交评论