版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目分析与设计课程实践教学班级:姓名:学号:20一、软件工程定义:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程的目标是: 在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。 追求这些目标有助于提高软件产品的质量和开发效率, 减少维护的困难。可修改性: 容许对系统进行修改而不增加原系统的复杂性。它支持软件的调试与维护,是一个难以达到的目标。有效性: 软件系统能最
2、有效地利用计算机的时间资源和空间资源。各种计算机软件无不将系统的时 /空开销作为衡量软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性方面会发生矛盾, 这时不得不牺牲时间效率换取空间有效性或牺牲空间效率换取时间有效性。时 /空折衷是经常出现的。有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现用户的需求和自己的设计。可靠性: 能防止因概念、 设计和结构等方面的不完善造成的软件系统失效, 具有挽回因操作不当造成软件系统失效的能力。 对于实时嵌入式计算机系统, 可靠性是一个非常重要的目标。因为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站的运行, 等等。 如果
3、可靠性得不到保证, 一旦出现问题可能是灾难性的,后果将不堪设想。 因此在软件开发、编码和测试过程中,必须将可靠性放在重要地位。可理解性: 系统具有清晰的结构,能直接反映问题的需求。复杂性,并支持软件的维护、移植或重用。可理解性有助于控制软件系统的可维护性: 软件产品交付用户使用后,能够对它进行修改,以便改正潜伏的错误,改进性能和其他属性,使软件产品适应环境的变化,等等。由于软件是逻辑产品,只要用户需要,它可以无限期的使用下去, 因此软件维护是不可避免的。软件维护费用在软件开发费用中占有很大的比重。 可维护性是软件工程中一项十分重要的目标。软件的可理解性和可修改性有利于软件的可维护性。可重用性:
4、 概念或功能相对独立的一个或一组相关模块定义为一个软部件。软部件可以在多种场合应用的程度称为部件的可重用性。可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。可重用软部件应具有清晰的结构和注解,应具有正确的编码和较低的时/空开销。 各种可重用软部件还可以按照某种规则存放在软部件库中,供软件工程师选用。 可重用性有助于提高软件产品的质量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用,规格说明(也称为规约)的重用,设计的重用,概念和方法的重用,等等。一般来说,重用的层次越高,带来的效益也就越大。可适应性: 软件在不同的系统约
5、束条件下,使用户需求得到满足的难易程度。适应性强的软件应采用广为流行的程序设计语言编码,在广为流行的操作系统环境中运行,采用标准的术语和格式书写文档。适应性强的软件较容易推广使用。可移植性: 软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。为了获得比较高的可移植性, 在软件设计过程中通常采用通用的程序设计语言和运行环境支撑。对依赖于计算机系统的低级(物理)特征部分,如编译系统的目标代码生成,应相对独立、集中。这样, 与处理机无关的部分就可以移植到其他系统上使用。可移植性支持软件的可重用性和可适应性。可追踪性: 根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件
6、需求进行逆向追踪的能力。 软件可追踪性依赖于软件开发各个阶段文档和程序的完整性、一致性和可理解性。 降低系统的复杂性会提高软件的可追踪性。软件在测试或维护过程中或程序在执行期间出现问题时,应记录程序事件或有关模块中的全部或部分指令现场,以便分析、追踪产生问题的因果关系。可互操作性: 多个软件元素相互通信并协同完成任务的能力。为了实现可互操作性,软件开发通常要遵循某种标准, 支持折衷标准的环境将为软件元素之间的可互操作提供便利。可互操作性在分布计算环境下尤为重要。二、软件件工程环境概念:软件工程环境(SoftWare Engineering Environment,简称 SEE)是指以软件工程为
7、依据,支持典型软件生产的系统。通过环境信息库和消息通信机制实现工具的集成,从而为软件生命周期中某些过程的自动化提供了更有效的支持。不同的过程模型导致不同类型的软件开发环境。包括系统集成和软件产品的制作与生产。 软件过程中各个过程和活动如何按照各条路径并行完成。管理、支持、获取、供应等过程贯穿于整个生存周期。软件生产走向工业化需要建立相应的工业标准。开发要求:软件开发项目分为多个迭代周期,每个周期实现部分软件功能。在每个周期都进行提出需求、设计软件架构、 编码、测试、发布得软件开发的全过程。每个周期都进行充分的测试和集成。这样的好处是可以不断的从客户方面得到反馈,更逼近实际的软件需求。通过频繁的
8、重新编码的过程, 可以非常适应功能更改的需求,同时增加软件的易维护性。在不断的迭代中,避免架构设计的重大失误造成的软件不能如期交工,避免了软件设计的风险。在软件设计中,强调简单性,就是坚决不作用不到的通用功能。同时,也不刻意避免重新编码, 只有不断得重新编码才能保证软件得合理性。不害怕对整个软件推倒重做。认为重新编码是很正常得现象。每次得重新编码都会大大减少软件中得熵值。在专业分工中, 提出在开发团队中要有全职的客户人员的参与,同时在软件团队中也要有自己的领域专家。这样,可以和客户充分交流,彻底了解应用需求。这种软件需求的提出不是一次性的,而是不断的交流。也有专门的软件架构的设计师,首先进行软
9、件整体架构的设计。这种设计一般使用UML语言。在软件开发的顺序上,和传统方法完全相反。 传统方法是按照整体设计、编写代码、进行测试、交付客户的方法。而 XP 是按照交付客户、测试、编码、设计的顺序来开发。首先将要交付客户的软件的界面作出来,先让客户对软件有实际体验,这样, 可以获得客户的更多的反馈, 使需求可以在开发前确定。在编码前就先把测试程序做好,这样,编码完成后就可以马上进行测试。 通过不断的测试来保证软件的质量。在进行软件架构设计之前就进行编码,可以使问题更早暴露,可以使最后的软件设计更体现编码的特点,更符合实际,更容易实现,也保证了设计的合理,保证了软件设计的大量决定的正确性。在项目
10、计划的实现上,每次的计划都是技术人员对客户提出时间表,由最后的开发人员对项目经理提出编码的时间表。这种计划都是从下而上的,不是从上到下的, 更容易保证计划的按时完成。同时,多个迭代周期也使工期的估计越来越精确。在分工上, 强调角色轮换, 项目的集体负责, 分工的自愿性。 分工的自愿性就是每个人的工作内容不是由项目经理分派,而是由每个人自愿领取,这样保证了每个人可以发挥自己的特长,适应自己的情况。当然,在每个问题上都要有唯一的决策人,同时,也要经过充分的交流和沟通。 角色轮换就是在项目中,一个人在不同的周期中担任不同的角色,可以保证每个人对项目的整体把握,方便项目中的沟通和理解。项目的集体负责,
11、 就是每个人不是完成自己的工作就可以了, 要对整个项目的完成负责,任何人都可以对工作的任何部分提出自己的建议。 任何人都可以从事任何工作。任何人都要对整个项目熟悉。这样做的优点是可以充分的锻炼人、 可以发挥每个人的积极性、可以使项目不依赖于某个特定的人,方便今后的软件的维护, 通过工作内容的变换可以提高人工作的兴趣。通过角色轮换还可以使每个人都劳逸结合,方便相互理解,避免由于不理解而造成的各种配合问题。提出了成对编程的思路,就是每个模块的编码都是两个人一起干,共用一台电脑。 这样,一个人编码时, 令一个人就可以检查代码,或对编码的思路进行思考,写文档等。 不再有另外的测试人员, 两个人同时完成
12、代码的测试, 并且使先写测试程序然后再编程。这样避免了编程人员和测试人员的矛盾。也解决了一个人自己检查的局限性。两个人共同检查可以避免大多数的错误。 在共同编程中还可以进行经验的交流和传授。也避免了将一个工作一直干下去的无聊, 交流增加了情趣。 并且两个人共同工作也增加了工作量的弹性,使项目计划的瓶颈工作能尽快解决。 根据成对编程的思路,开发小组也可以分为两个小组,一个小组进行开发,另一个小组作改进和bug 修正等工作。也有同样的效果。在人员的分工上要灵活,要保证软件开发中的角色的齐全,但每个角色可以由几个人共同担任, 也可以一个人担任几个角色, 并且在项目的不同时期,不同角色的人员数量会不断
13、变化。每天或隔天, 开一个站立会议来解决工作时间不一致和相互打扰工作的情况。在每个迭代周期也有一个计划和分工等的全体大会。三、查询现有主流的软件工程工具及其功能、通途、特点及适用范围。Rational Rose 、 Sybase PowerDesigner、 Microsoft Visio 、 Microsoft Project 、 Enterprise Architect 、 MetaCaseRational RoseRational Rose 是基于 UML 的可视化建模工具。Rational Rose 的两个受欢迎的特征是它的提供反复式发展和来回旅程工程的能力。RationalRose
14、允许设计师利用反复发展(有时也叫进化式发展),因为在各个进程中新的应用能够被创建,通过把一个反复的输出变成下一个反复的输入。然后,当开发者开始理解组件之间是如何相互作用和在设计中进行调整时,Rational Rose 能够通过回溯和更新模型的其余部分来保证代码的一致性,从而展现出被称为"来回旅程工程 " 的能力, Rational Rose 是可扩展的,可以使用可下载附加项和第三方应用软件,它支持COM/DCOM(ActiveX) , JavaBeans 和Corba 组件标准Sybase powerDesignPowerDesigner 灵活的分析和设计特性允许使用一种结
15、构化的方法有效地创建数据库或数据仓库,而不要求严格遵循一个特定的方法学。PowerDesigner 提供了直观的符号表示使数据库的创建更加容易,并使项目组内的交流和通讯标准化,同时能更加简单地向非技术人员展示数据库和应用的设计。PowerDesigner 不仅加速了开发的过程,也向最终用户提供了管理和访问项目的信息的一个有效的结构。 它允许设计人员不仅创建和管理数据的结构,而且开发和利用数据的结构针对领先的开发工具环境快速地生成应用对象和数据敏感的组件。开发人员可以使用同样的物理数据模型查看数据库的结构和整理文档,以及生成应用对象和在开发过程中使用的组件。应用对象生成有助于在整个开发生命周期提
16、供更多的控制和更高的生产率。PowerDesigner 是一个功能强大而使用简单工具集,提供了一个复杂的交互环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。 PowerDesigner 产生的模型和应用可以不断地增长,适应并随着你的组织的变化而变化。PowerDesigner 包含六个紧密集成的模块,允许个人和开发组的成员以合算的方式最好地满足他们的需要。这六个模块是:PowerDesigner ProcessAnalyst ,用于数据发现。PowerDesigner DataArchitect ,用于双层,交互式的数据库设计和构造。PowerDesigner AppMod
17、eler ,用于物理建模和应用对象及数据敏感组件的生成。PowerDesigner MetaWorks ,用于高级的团队开发,信息的共享和模型的管理。PowerDesigner WarehouseArchitect ,用于数据仓库的设计和实现。PowerDesigner Viewer ,用于以只读的、图形化方式访问整个企业的模型信息。下面详细介绍PowerDesigner 的六个模块:PowerDesigner ProcessAnalyst用于数据分析或 "数据发现 " 。ProcessAnalyst 模型易于建立和维护,并可用在应用开发周期中确保所有参与人员之间顺畅的通讯
18、。 这个工具使用户能够描述复杂的处理模型以反映他们的数据库模型。通过表示这些在系统中的处理和描述它们交换的数据,使用 ProcessAnalyst 可以以一种更加自然的方式描述数据项。PowerDesigner DataArchitect用于两层的即概念层和物理层数据库设计和数据库构造。 DataArchitect 提供概念数据模型设计,自动的物理数据模型生成, 非规范化的物理设计, 针对多种数据库管理系统 ( DBMS )的数据库生成, 开发工具的支持和高质量的文档特性。 使用其逆向工程能力, 设计人员可以得到一个数据库结构的 " 蓝图 "可用于文档和维护数据库或移植到一
19、个不同的 DBMS 。PowerDesigner AppModeler用于物理数据库的设计和应用对象及数据敏感组件的生成。通过提供完整的物理建模能力和利用那些模型进行开发的能力,AppModeler允许开发人员针对领先的开发环境,包括PowerBuilder ,Visual Basic ,Delphi2.0 和 Power+ ,快速地生成对象和组件。此外,AppModeler还可以生成用于创建数据驱动的 Web 站点的组件,使开发人员和设计人员同样可以从一个 DBMS 发布 " 动态 "的数据。另外, AppModeler 提供了针对超过 30 个 DBMS 和桌面数据库的
20、物理数据库生成,维护和文档生成。PowerDesigner MetaWorks通过模型的共享支持高级的团队工作的能力。这个模块提供了所有模型对象的一个全局的层次结构的浏览视图,以确保贯穿整个开发周期的一致性和稳定性。MetaWorks 提供了用户和组的说明定义以及访问权限的管理,包括模型锁定安全机制。它还包含MetaBrowser ,一个灵活的字典浏览器,用以浏览,创建和更新跨项目的所有模型信息和PowersoftObjectCycle ,一个版本控制系统。PowerDesigner WarehouseArchitect用于数据仓库和数据集市的建模和实现。 WarehouseArchitect
21、 提供了对传统的 DBMS 和数据仓库特定的 DBMS 平台的支持,同时支持维建模特性和高性能索引模式 。 WarehouseArchitect 允 许 用 户 从 众 多 的 运 行 数 据 库 引 入 ( 逆 向 工 程 ) 源 信 息 。 WarehouseArchitect 维护源和目标信息之间的链接追踪,用于第三方数据抽取和查询及分析工具。 WarehouseArchitect 提供了针对所有主要传统 DBMS ,诸如 Sybase,Oracle,Informix , DB2 ,以及数据仓库特定的 DBMS 如 Red Brick Warehouse 和 ASIQ 的完全的仓库处理支
22、持。PowerDesigner Viewer用于以只读的、图形化的方式访问建模和元数据信息。 Viewer 提供了对 PowerDesigner 所有模型信息的只读访问,包括处理、概念,物理和仓库模型。此外,它还提供了一个图形化的查看模型信息的视图, Viewer 提供了完全的跨所有模型的报表和文档功能。PowerDesigner 是最具集成特性的设计工具集, 用于创建高度优化和功能强大的数据库,数据仓库和数据敏感的组件。Microsoft Visio是 Windows 操作系统下运行的流程图和矢量绘图软件Microsoft Project 是项目管理软件程序。软件设计目的在于协助项目经理发展
23、计划、为任务分配资源、跟踪进度、管理预算和分析工作量。归纳:ROSE 是直接从UML 发展而诞生的设计工具,它的出现就是为了对UML 建模的支持,ROSE 一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。 ROSE 主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握 UML 的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效) ,对系统的代码框架生成有很好的支持。但对数据库的开发管理和数据库端的迭代不是很好。PowerDes
24、igner 原来是对数据库建模而发展起来的一种数据库建模工具。直到 7.0 版才开始对面向对象的开发的支持,后来又引入了对UML 的支持。但是由于PowerDesigner 侧重不一样,所以它对数据库建模的支持很好,支持了能够看到的90%左右的数据库,对UML的建模使用到的各种图的支持比较滞后。但是在最近得到加强。所以使用它来进行UML 开发的并不多,很多人都是用它来作为数据库的建模。如果使用UML 分析,它的优点是生成代码时对Sybase 的产品PowerBuilder 的支持很好(其它UML 建模工具则没有或者需要一定的插件),其他面向对象语言如 C+ ,Java,VB,C# 等支持也不错
25、。 但是它好像继承了 Sybase 公司的一贯传统, 对中国的市场不是很看看好, 所以对中文的支持总是有这样或那样的问题。VISIO 原来仅仅是一种画图工具, 能够用来描述各种图形 (从电路图到房屋结构图) ,也是到 VISIO2000 才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具(对软件开发中的UML 支持仅仅是其中很少的一部分) 。它跟微软的office产品的能够很好兼容。能够把图形直接复制或者内嵌到WORD 的文档中。但是对于代码的生成更多是支持微软的产品如VB,VC+,MS SQL Server等,所以它可以说用于图形语义的
26、描述比较方便,但是用于软件开发过程的迭代开发则有点牵强。三种产品各有侧重点,各有优缺点,主要是看你的选择和你的开发方式和环境。四、软件定义:软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据。 为了方便用户, 为了使计算机系统具有较高的总体效用, 在设计计算机系统时,必须全局考虑软件与硬件的结合,以及用户的要求和软件的要求。1运行时,能够提供所要求功能和性能的指令或计算机程序集合。2程序能够满意地处理信息的数据结构。3描述程序功能需求以及程序如何操作和使用所要求的文档。以开发语言作为描述语言,可以认为:软件 =程序 +数据 +文档。五、软件生存周期: 又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,直到失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义) 、开发、运行(维护)三个时期,每一个时期又划分为若干阶段。 每个阶段有明确的任务, 这样使规模大、 结构复杂和管理复杂的软件开发变得容易控制和管理。6. 由于工作对象和范围的不同以及经验的不同,对软件生存周期过程中各阶段的划分也不尽相同。但是,这些不同划分中有许多相同之处。相关的软件工程国家标准把软件生存周期划分为8 个阶段,这 8 个阶段是:1、系统定义2、可行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销售合同模板文档
- 2023年资阳市消防救援支队社会招聘消防文员笔试真题
- 2023年宣城市旌德县中医院招聘笔试真题
- 2024版婚礼车队包车租赁协议书5篇
- 远程培训服务合同范例
- 购车库定金合同范例
- 2024年度版权许可使用合同:音乐作品授权与分成3篇
- 2024版房产出售附带产权车位买卖合同3篇
- 2024版城乡实体地域划分与城乡信息化基础设施建设合同3篇
- 北京墓地销售合同范例
- 福建百校2025届高三12月联考历史试卷(含答案解析)
- 2023年益阳市安化县招聘乡镇卫生院护理人员笔试真题
- 人音版音乐七年级上册《父亲的草原母亲的河》课件
- 2024年度短视频内容创作服务合同3篇
- 2024年度拼多多店铺托管经营合同2篇
- 2023年北京肿瘤医院(含社会人员)招聘笔试真题
- 能源管理总结报告
- 2024年时事政治试题库
- 2024-2025学年统编版五年级语文上册第七单元达标检测卷(原卷+答案)
- 【初中数学】基本平面图形单元测试 2024-2025学年北师大版数学七年级上册
- 旅行社分店加盟协议书(2篇)
评论
0/150
提交评论