项目分析与设计_第1页
项目分析与设计_第2页
项目分析与设计_第3页
项目分析与设计_第4页
项目分析与设计_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目分析与设计项目分析与设计 课程实践教学课程实践教学 班级 姓名 学号 20 一 软件工程定义 一 软件工程定义 软件工程是研究和应用如何以系统性的 规范化的 可定量的过程化方法去开发和维 护软件 以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方 法结合起来 软件工程的目标是 软件工程的目标是 在给定成本 进度的前提下 开发出具有可修改性 有效性 可靠性 可理解性 可维护性 可重用性 可适应性 可移植性 可追踪性和可互操作性并且满足 用户需求的软件产品 追求这些目标有助于提高软件产品的质量和开发效率 减少维护的 困难 可修改性 容许对系统进行修改而不增加原系统的复杂性 它支持软件的调试与维护 是一个难以达到的目标 有效性 软件系统能最有效地利用计算机的时间资源和空间资源 各种计算机软件无不将 系统的时 空开销作为衡量软件质量的一项重要技术指标 很多场合 在追求时间有效性和 空间有效性方面会发生矛盾 这时不得不牺牲时间效率换取空间有效性或牺牲空间效率换 取时间有效性 时 空折衷是经常出现的 有经验的软件设计人员会巧妙地利用折衷概念 在具体的物理环境中实现用户的需求和自己的设计 可靠性 能防止因概念 设计和结构等方面的不完善造成的软件系统失效 具有挽回因操 作不当造成软件系统失效的能力 对于实时嵌入式计算机系统 可靠性是一个非常重要的 目标 因为软件要实时地控制一个物理过程 如宇宙飞船的导航 核电站的运行 等等 如果可靠性得不到保证 一旦出现问题可能是灾难性的 后果将不堪设想 因此在软件开 发 编码和测试过程中 必须将可靠性放在重要地位 可理解性 系统具有清晰的结构 能直接反映问题的需求 可理解性有助于控制软件系统 的复杂性 并支持软件的维护 移植或重用 可维护性 软件产品交付用户使用后 能够对它进行修改 以便改正潜伏的错误 改进性 能和其他属性 使软件产品适应环境的变化 等等 由于软件是逻辑产品 只要用户需要 它可以无限期的使用下去 因此软件维护是不可避免的 软件维护费用在软件开发费用中 占有很大的比重 可维护性是软件工程中一项十分重要的目标 软件的可理解性和可修改 性有利于软件的可维护性 可重用性 概念或功能相对独立的一个或一组相关模块定义为一个软部件 软部件可以在 多种场合应用的程度称为部件的可重用性 可重用的软部件有的可以不加修改直接使用 有的需要修改后再用 可重用软部件应具有清晰的结构和注解 应具有正确的编码和较低 的时 空开销 各种可重用软部件还可以按照某种规则存放在软部件库中 供软件工程师选 用 可重用性有助于提高软件产品的质量和开发效率 有助于降低软件的开发和维护费用 从更广泛的意义上理解 软件工程的可重用性还应该包括 应用项目的重用 规格说明 也称为规约 的重用 设计的重用 概念和方法的重用 等等 一般来说 重用的层次 越高 带来的效益也就越大 可适应性 软件在不同的系统约束条件下 使用户需求得到满足的难易程度 适应性强的 软件应采用广为流行的程序设计语言编码 在广为流行的操作系统环境中运行 采用标准 的术语和格式书写文档 适应性强的软件较容易推广使用 可移植性 软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度 为了 获得比较高的可移植性 在软件设计过程中通常采用通用的程序设计语言和运行环境支撑 对依赖于计算机系统的低级 物理 特征部分 如编译系统的目标代码生成 应相对独立 集中 这样 与处理机无关的部分就可以移植到其他系统上使用 可移植性支持软件的可 重用性和可适应性 可追踪性 根据软件需求对软件设计 程序进行正向追踪 或根据程序 软件设计对软件 需求进行逆向追踪的能力 软件可追踪性依赖于软件开发各个阶段文档和程序的完整性 一致性和可理解性 降低系统的复杂性会提高软件的可追踪性 软件在测试或维护过程中 或程序在执行期间出现问题时 应记录程序事件或有关模块中的全部或部分指令现场 以 便分析 追踪产生问题的因果关系 可互操作性 多个软件元素相互通信并协同完成任务的能力 为了实现可互操作性 软件 开发通常要遵循某种标准 支持折衷标准的环境将为软件元素之间的可互操作提供便利 可互操作性在分布计算环境下尤为重要 二 软件件工程环境概念 二 软件件工程环境概念 软件工程环境 SoftWare Engineering Environment 简称 SEE 是指以软件工程为依据 支持典型软件生产的系统 通过环境信息库和消息通信机制实现工具的集成 从而为软件 生命周期中某些过程的自动化提供了更有效的支持 不同的过程模型导致不同类型的软件 开发环境 包括系统集成和软件产品的制作与生产 软件过程中各个过程和活动如何按照 各条路径并行完成 管理 支持 获取 供应等过程贯穿于整个生存周期 软件生产走向 工业化需要建立相应的工业标准 开发要求 软件开发项目分为多个迭代周期 每个周期实现部分软件功能 在每个周期都进行提出需 求 设计软件架构 编码 测试 发布得软件开发的全过程 每个周期都进行充分的测试 和集成 这样的好处是可以不断的从客户方面得到反馈 更逼近实际的软件需求 通过频 繁的重新编码的过程 可以非常适应功能更改的需求 同时增加软件的易维护性 在不断 的迭代中 避免架构设计的重大失误造成的软件不能如期交工 避免了软件设计的风险 在软件设计中 强调简单性 就是坚决不作用不到的通用功能 同时 也不刻意避免 重新编码 只有不断得重新编码才能保证软件得合理性 不害怕对整个软件推倒重做 认 为重新编码是很正常得现象 每次得重新编码都会大大减少软件中得熵值 在专业分工中 提出在开发团队中要有全职的客户人员的参与 同时在软件团队中也 要有自己的领域专家 这样 可以和客户充分交流 彻底了解应用需求 这种软件需求的 提出不是一次性的 而是不断的交流 也有专门的软件架构的设计师 首先进行软件整体架构的设计 这种设计一般使用 UML 语言 在软件开发的顺序上 和传统方法完全相反 传统方法是按照整体设计 编写代码 进行测试 交付客户的方法 而 XP 是按照交付客户 测试 编码 设计的顺序来开发 首先将要交付客户的软件的界面作出来 先让客户对软件有实际体验 这样 可以获得客 户的更多的反馈 使需求可以在开发前确定 在编码前就先把测试程序做好 这样 编码 完成后就可以马上进行测试 通过不断的测试来保证软件的质量 在进行软件架构设计之 前就进行编码 可以使问题更早暴露 可以使最后的软件设计更体现编码的特点 更符合 实际 更容易实现 也保证了设计的合理 保证了软件设计的大量决定的正确性 在项目计划的实现上 每次的计划都是技术人员对客户提出时间表 由最后的开发人 员对项目经理提出编码的时间表 这种计划都是从下而上的 不是从上到下的 更容易保 证计划的按时完成 同时 多个迭代周期也使工期的估计越来越精确 在分工上 强调角色轮换 项目的集体负责 分工的自愿性 分工的自愿性就是每个 人的工作内容不是由项目经理分派 而是由每个人自愿领取 这样保证了每个人可以发挥 自己的特长 适应自己的情况 当然 在每个问题上都要有唯一的决策人 同时 也要经 过充分的交流和沟通 角色轮换就是在项目中 一个人在不同的周期中担任不同的角色 可以保证每个人对项目的整体把握 方便项目中的沟通和理解 项目的集体负责 就是每 个人不是完成自己的工作就可以了 要对整个项目的完成负责 任何人都可以对工作的任 何部分提出自己的建议 任何人都可以从事任何工作 任何人都要对整个项目熟悉 这样 做的优点是可以充分的锻炼人 可以发挥每个人的积极性 可以使项目不依赖于某个特定 的人 方便今后的软件的维护 通过工作内容的变换可以提高人工作的兴趣 通过角色轮 换还可以使每个人都劳逸结合 方便相互理解 避免由于不理解而造成的各种配合问题 提出了成对编程的思路 就是每个模块的编码都是两个人一起干 共用一台电脑 这 样 一个人编码时 令一个人就可以检查代码 或对编码的思路进行思考 写文档等 不 再有另外的测试人员 两个人同时完成代码的测试 并且使先写测试程序然后再编程 这 样避免了编程人员和测试人员的矛盾 也解决了一个人自己检查的局限性 两个人共同检 查可以避免大多数的错误 在共同编程中还可以进行经验的交流和传授 也避免了将一个 工作一直干下去的无聊 交流增加了情趣 并且两个人共同工作也增加了工作量的弹性 使项目计划的瓶颈工作能尽快解决 根据成对编程的思路 开发小组也可以分为两个小组 一个小组进行开发 另一个小组作改进和 bug 修正等工作 也有同样的效果 在人员的分工上要灵活 要保证软件开发中的角色的齐全 但每个角色可以由几个人 共同担任 也可以一个人担任几个角色 并且在项目的不同时期 不同角色的人员数量会 不断变化 每天或隔天 开一个站立会议来解决工作时间不一致和相互打扰工作的情况 在每个 迭代周期也有一个计划和分工等的全体大会 三 三 查询现有主流的软件工程工具及其功能 通途 特点及适用范查询现有主流的软件工程工具及其功能 通途 特点及适用范 围 围 Rational Rose Sybase PowerDesigner Microsoft Visio Microsoft Project Enterprise Architect MetaCase Rational Rose Rational Rose 是基于 UML 的可视化建模工具 Rational Rose 的两个受欢迎的特征是它的提供反复式发展和来回旅程工程的能力 Rational Rose 允许设计师利用反复发展 有时也叫进化式发展 因为在各个进程中新的应用能够 被创建 通过把一个反复的输出变成下一个反复的输入 然后 当开发者开始理解组件之间 是如何相互作用和在设计中进行调整时 Rational Rose 能够通过回溯和更新模型的其余部分 来保证代码的一致性 从而展现出被称为 来回旅程工程 的能力 Rational Rose 是可扩展 的 可以使用可下载附加项和第三方应用软件 它支持 COM DCOM ActiveX JavaBeans 和 Corba 组件标准 Sybase powerDesign PowerDesigner 灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库或数 据仓库 而不要求严格遵循一个特定的方法学 PowerDesigner 提供了直观的符号表示使数 据库的创建更加容易 并使项目组内的交流和通讯标准化 同时能更加简单地向非技术人 员展示数据库和应用的设计 PowerDesigner 不仅加速了开发的过程 也向最终用户提供了管理和访问项目的信息的 一个有效的结构 它允许设计人员不仅创建和管理数据的结构 而且开发和利用数据的结 构针对领先的开发工具环境快速地生成应用对象和数据敏感的组件 开发人员可以使用同 样的物理数据模型查看数据库的结构和整理文档 以及生成应用对象和在开发过程中使用 的组件 应用对象生成有助于在整个开发生命周期提供更多的控制和更高的生产率 PowerDesigner 是一个功能强大而使用简单工具集 提供了一个复杂的交互环境 支持 开发生命周期的所有阶段 从处理流程建模到对象和组件的生成 PowerDesigner 产生的模 型和应用可以不断地增长 适应并随着你的组织的变化而变化 PowerDesigner 包含六个紧密集成的模块 允许个人和开发组的成员以合算的方式最好地满 足他们的需要 这六个模块是 PowerDesigner ProcessAnalyst 用于数据发现 PowerDesigner DataArchitect 用于双层 交互式的数据库设计和构造 PowerDesigner AppModeler 用于物理建模和应用对象及数据敏感组件的生成 PowerDesigner MetaWorks 用于高级的团队开发 信息的共享和模型的管理 PowerDesigner WarehouseArchitect 用于数据仓库的设计和实现 PowerDesigner Viewer 用于以只读的 图形化方式访问整个企业的模型信息 下面详细介绍 PowerDesigner 的六个模块 PowerDesigner ProcessAnalyst 用于数据分析或 数据发现 ProcessAnalyst 模型易于建立和维护 并可用在应用开发 周期中确保所有参与人员之间顺畅的通讯 这个工具使用户能够描述复杂的处理模型以反 映他们的数据库模型 通过表示这些在系统中的处理和描述它们交换的数据 使用 ProcessAnalyst 可以以一种更加自然的方式描述数据项 PowerDesigner DataArchitect 用于两层的即概念层和物理层数据库设计和数据库构造 DataArchitect 提供概念数据 模型设计 自动的物理数据模型生成 非规范化的物理设计 针对多种数据库管理系统 DBMS 的数据库生成 开发工具的支持和高质量的文档特性 使用其逆向工程能力 设计人员可以得到一个数据库结构的 蓝图 可用于文档和维护数据库或移植到一个不同的 DBMS PowerDesigner AppModeler 用于物理数据库的设计和应用对象及数据敏感组件的生成 通过提供完整的物理建模 能力和利用那些模型进行开发的能力 AppModeler 允许开发人员针对领先的开发环境 包 括 PowerBuilder Visual Basic Delphi2 0 和 Power 快速地生成对象和组件 此外 AppModeler 还可以生成用于创建数据驱动的 Web 站点的组件 使开发人员和设计人员同 样可以从一个 DBMS 发布 动态 的数据 另外 AppModeler 提供了针对超过 30 个 DBMS 和桌面数据库的物理数据库生成 维护和文档生成 PowerDesigner MetaWorks 通过模型的共享支持高级的团队工作的能力 这个模块提供了所有模型对象的一个全 局的层次结构的浏览视图 以确保贯穿整个开发周期的一致性和稳定性 MetaWorks 提供 了用户和组的说明定义以及访问权限的管理 包括模型锁定安全机制 它还包含 MetaBrowser 一个灵活的字典浏览器 用以浏览 创建和更新跨项目的所有模型信息和 Powersoft ObjectCycle 一个版本控制系统 PowerDesigner WarehouseArchitect 用于数据仓库和数据集市的建模和实现 WarehouseArchitect 提供了对传统的 DBMS 和数据仓库特定的 DBMS 平台的支持 同时支持维建模特性和高性能索引模式 WarehouseArchitect 允许用户从众多的运行数据库引入 逆向工程 源信息 WarehouseArchitect 维护源和目标信息之间的链接追踪 用于第三方数据抽取和查询及分析 工具 WarehouseArchitect 提供了针对所有主要传统 DBMS 诸如 Sybase Oracle Informix DB2 以及数据仓库特定的 DBMS 如 Red Brick Warehouse 和 ASIQ 的完全的仓库处理支持 PowerDesigner Viewer 用于以只读的 图形化的方式访问建模和元数据信息 Viewer 提供了对 PowerDesigner 所有模型信息的只读访问 包括处理 概念 物理和仓库模型 此外 它还 提供了一个图形化的查看模型信息的视图 Viewer 提供了完全的跨所有模型的报表和文档 功能 PowerDesigner 是最具集成特性的设计工具集 用于创建高度优化和功能强大的数据库 数据仓库和数据敏感的组件 Microsoft Visio 是 Windows 操作系统下运行的流程图和矢量绘图软件 Microsoft Project 是项目管理软件程序 软件设计目的在于协助项目经理发展计划 为任务 分配资源 跟踪进度 管理预算和分析工作量 归纳 归纳 ROSE 是直接从 UML 发展而诞生的设计工具 它的出现就是为了对 UML 建模的支持 ROSE 一开始没有对数据库端建模的支持 但是在现在的版本中已经加入数据库建模的功 能 ROSE 主要是在开发过程中的各种语义 模块 对象以及流程 状态等描述比较好 主要体现在能够从各个方面和角度来分析和设计 使软件的开发蓝图更清晰 内部结构更 加明朗 但是它的结构仅仅对那些对掌握 UML 的开发人员 也就是说对客户了解系统的 功能和流程等并不一定很有效 对系统的代码框架生成有很好的支持 但对数据库的开发 管理和数据库端的迭代不是很好 PowerDesigner 原来是对数据库建模而发展起来的一种数据库建模工具 直到 7 0 版才开 始对面向对象的开发的支持 后来又引入了对 UML 的支持 但是由于 PowerDesigner 侧重 不一样 所以它对数据库建模的支持很好 支持了能够看到的 90 左右的数据库 对 UML 的建模使用到的各种图的支持比较滞后 但是在最近得到加强 所以使用它来进行 UML 开发的并不多 很多人都是用它来作为数据库的建模 如果使用 UML 分析 它的优 点是生成代码时对 Sybase 的产品 PowerBuilder 的支持很好 其它 UML 建模工具则没有或 者需要一定的插件 其他面向对象语言如 C Java VB C 等支持也不错 但是它好像 继承了 Sybase 公司的一贯传统 对中国的市场不是很看看好 所以对中文的支持总是有这 样或那样的问题 VISIO 原来仅仅是一种画图工具 能够用来描述各种图形 从电路图到房屋结构图 也是到 VISIO2000 才开始引进软件分析设计功能到代码生成的全部功能 它可以说是目前 最能够用图形方式来表达各种商业图形用途的工具 对软件开发中的 UML 支持仅仅是其 中很少的一部分 它跟微软的 office 产品的能够很好兼容 能够把图形直接复制或者内嵌

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论