软件工程综述.ppt_第1页
软件工程综述.ppt_第2页
软件工程综述.ppt_第3页
软件工程综述.ppt_第4页
软件工程综述.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程概述、软件工程的概念、软件工程的框架、软件工程的基本原理以及软件工程的常用模型和方法。软件工程是软件工程的基本概念,是用工程方法研究有效、实用和高质量软件的构建和维护的学科。它涉及编程语言、数据库、软件开发工具、系统平台、标准、设计模式等。软件工程概念软件工程框架软件工程基本原则软件工程通用模型和方法如何培养软件工程的思维方法软件工程框架,可概括为:目标过程原则,目标,软件工程目标:生产出具有正确性,可用性和适当费用的产品。准确性是指软件产品实现预期功能的程度。可用性是指软件的基本结构、实现和文档对用户可用的程度。适度支出是指软件开发和运行的全部支出满足用户需求的程度。软件工程过程:生

2、产最终能够满足需求并实现工程目标的软件产品所需的步骤。软件工程过程主要包括开发过程、运行过程和维护过程。它们涵盖需求、设计、实施、验证和维护活动。需求活动包括问题分析和需求分析。问题分析获得需求定义,也称为软件需求规范。需求分析产生功能规范。设计活动通常包括概要设计和详细设计。实施活动将设计结果转化为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,确保最终产品满足用户的要求。维护活动包括使用过程中的扩展、修改和改进。除了上述过程,还有管理过程、支持过程、培训过程等等。软件工程原则:软件开发过程中围绕工程设计、工程支持和工程管理必须遵循的原则。四项基本原则,选择合适的发展范式。采

3、用适当的设计方法。提供高质量的工程支持。重视开发过程的管理。按照软件工程的框架,软件工程的研究内容主要包括:软件开发范式、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程和软件经济学等。软件工程概念软件工程框架软件工程基本原理软件工程通用模型和方法如何培养软件工程的思维方法和基本原理自1968年“软件工程”一词提出以来,研究软件工程的专家学者们先后提出了100多条关于软件工程的规则或信条。美国著名软件工程专家鲍姆综合了这些专家的意见,总结了TRW多年的软件开发经验,并于1983年提出了软件工程的七条基本原则。根据Boehm的观点,这七个原则是保证软件产品质量和开发效率的最低原

4、则。它们相互独立,是不可缺少的最小集。同时,它们是相当完整的。第一个原则是分阶段生命周期计划的严格管理,即把软件生命周期分成几个阶段,并据此制定一个可行的计划,然后严格按照计划来管理软件的开发和维护。Boehm认为,在整个软件生命周期中,有六种类型的计划应该被指定并严格执行:项目大纲计划、里程碑计划、项目控制计划、产品控制计划、验证计划以及运行和维护计划。根据第二个原则,坚持阶段评价。统计结果表明,大多数错误是在编码前造成的,约占63%。发现错误越晚,改正错误的成本就越大。因此,软件质量保证工作不能等到编码完成,应该进行严格的阶段评审,尽快发现错误。第三个原则也就是说,应该采用变更控制,也称为

5、基准配置管理。当需求改变时,其他阶段的文档或代码也相应地改变,以确保软件的一致性。第四条原则采用现代编程技术,采用先进技术,可以提高软件开发效率,降低软件维护成本。第五个原则的结果应该被清楚地检查。软件是一种无形的逻辑产品。软件开发团队工作进度的可见性很差,这使得评估和管理很困难。为了更好的管理,应该根据软件开发的总体目标和完成期限,尽可能明确地规定开发团队的职责和产品标准,以便可以清楚地检查所获得的标准。原则6开发团队的人员应该少而精,高质量的开发人员的效率应该比低质量的开发人员高几倍到几十倍,开发工作中犯的错误应该少得多。随着人数n的增加,通信信道增加,通信开销也将急剧增加。第七个原则认识

6、到持续改进软件工程实践的必要性。根据这一原则,我们不仅要积极采用新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,统计错误类型和问题报告。软件工程概念软件工程框架软件工程基本原理软件工程通用模型和方法如何培养思维方法软件工程通用模型和方法高质量软件和高效率软件过程:模型和方法是关键,质量第一,效率第二,质量直接反映在软件的每个程序中,高质量自然是开发者的技术追求和职业道德的要求。高质量对所有用户都是有价值的,而高生产率只对开发者有意义。如果你从一开始就追求高生产率,就很容易让人变得又富又快,留下隐患。为了长远利益,最好是放慢进度,保证每个环节的质量。模型,瀑布模型,进化模型,螺旋模

7、型,增量模型,喷泉模型,智能模型,RUP模型,瀑布模型,所有的活动都是按照固定的顺序从上到下连接的,就像瀑布一步一步落下一样。每项活动都处于质量循环中(输入-处理-输出-评审)。进化模型,首先开发一个“原型”软件,完成一些主要功能,向用户展示并征求意见,然后逐步完善它,最后得到满意的软件产品。螺旋模型,螺旋模型结合了瀑布模型和进化模型,并增加了两种模型都忽略的风险分析。螺旋模型沿着螺旋旋转,每次它从内向外旋转时,都会开发出一个新版本。增量模型,软件产品被分解成一系列的增量组件,这些组件在增量开发迭代中逐渐增加。每个组件由多个交互模块组成,并且可以执行特定的功能。喷泉模型,体现了迭代和无间隙的特

8、点。系统的某些部分经常重复工作,并且在每次迭代中相关的对象被添加到进化的软件组件中。无间隙意味着各种开发活动之间没有明显的界限,即分析、设计和编码。喷泉模型是一个对象驱动的过程。智能模型是一种基于知识的软件开发模型,它将瀑布模型与专家系统相结合。在每个开发阶段,模型使用相应的专家系统来帮助软件人员完成开发工作。因此,建立了各个阶段的知识库,将基于软件工程知识的生成规则组成的专家系统与其他包含应用领域知识规则的专家系统相结合,形成应用领域的开发系统。在RUP统一过程中,(1)启动阶段定义项目目标和范围,并建立系统业务案例;(2)评估阶段制定计划,定义项目基线,并确定系统架构;(3)构建阶段主要是

9、编码和单元测试工作,这是最劳动密集型的阶段。在这个时候,虽然允许小的需求加入,大的需求应该包括相关的培训、通用方法、结构化方法、面向数据结构的软件开发方法、面向问题的分析方法、原型方法、面向对象的软件开发方法、可视化开发方法、基于组件的开发方法、基于代理的开发方法、结构化开发方法,这些都是由E.Yourdon和L.L.Constantine提出的,即所谓的SASD方法,也可以称为面向功能的软件开发方法或面向数据流的软件开发方法。首先用结构分析来分析软件的需求,然后用结构化设计来对软件进行整体设计,最后用结构化程序设计。它给出了两种典型的软件结构(转换型和事务型),大大提高了软件开发的成功率。杰

10、克逊方法是最典型的面向数据结构的软件开发方法,它将问题分解成每个部分的层次结构,可以用三种基本的结构形式来表示。三种基本的结构形式是顺序、选择和重复。PAM(问题分析方法)是日立在20世纪80年代末提出的一种软件开发方法。具体步骤如下:从输入输出数据结构中导出基本处理框架;分析这些处理块之间的顺序关系;根据顺序关系,处理框架逐渐整合,直至绘制出整个系统的PAD图。开发原型系统一般包括以下几个阶段:(1)确定用户需求(2)开发原始模型(3)征求用户对初始原型的改进意见(4)修改原型。OMT:随着面向对象程序设计向面向对象设计和面向对象分析的发展,面向对象软件开发方法OMT(对象建模技术)最终形成

11、。这种方法是自底向上和自顶向下的结合,它基于对象建模,不仅考虑输入和输出数据结构,而且包含所有对象的数据结构。RUP:基于UML的RUP方法。事实上,视觉开发不能仅仅被视为一种开发方法,而是可以被视为一种辅助工具。当然,不可否认的是,您只在编程过程中使用可视化,而不是在高级系统分析和系统设计中。事实上,为系统分析和系统设计建立一个可视化工具是一个很好的卖点,很多国外的工具都致力于这个领域的产品设计。案例方法可视化工具集。基于构件开发方法,以构件为核心,实现构件的分布式生产(开发)和组织装配,从而实现软件的工业化生产。这个过程模拟物理产品的生产过程。这是软件可重用性的具体体现。支持这种方法的单元

12、:组件(基础)、模式、框架等。基于Agent的开发方法,面向对象,以Agent为核心,开发分布式智能软件的方法。智能体是解决问题的智能单元,解决复杂问题是多智能体联合求解的过程。这种方法包含了面向对象方法的所有特征。(基于Agent的软件工程),软件工程概念,软件工程框架,软件工程的基本原理,常用模型和方法,如何培养软件工程的思维方法,软件工程理论与实践的结合,紧密结合的产物将是“行业软件工程”。工业软件工程将是软件工程方法的主要体现。因此,软件工程必须面对现实问题。从实践经验来看,作为一个真正的系统分析师,我们不仅要从技术角度考虑问题,还要从市场角度考虑问题。考虑整个项目或产品的市场前景,从

13、用户的角度考虑问题,从用户的角度考虑问题,也就是说,用户认可的是好的,而不是开发商认为的好的。从技术的角度来看,虽然技术肯定不是唯一重要的,但它必须非常重要,是成功的必要环节。在设计产品时,我们必须考虑采用先进的技术和先进的架构。技术可行性分析非常重要。选择一个合理的范式,合理地划分问题。范例包括模型、方法和规范。结合实际问题,选择合适的范式,并根据问题的特点合理划分。不同的部门可能对应不同的架构。组织和调度人员,根据人员的技术专长也安排人,根据问题的技术要求选择人,根据问题和用户的一般要求组织人。在开发过程中及时编写文档,在开发过程中会遇到各种问题和困难。当然,有各种各样的想法和新想法。所有

14、这些都应及时记录和整理,以便沟通和实现。充分考虑实施过程中可能遇到的问题。开发是一回事,对于用户来说,真正很好地使用它是另一回事。应特别注意技术问题和要求的变化。可视化工具的使用,很多国外项目的开发都是基于一些图形化的东西,他们的目的是尽可能少的写代码甚至不写代码。代码可以以图形方式自动生成。这样做的一个优点是,如果用户的需求改变或者业务逻辑改变,我们需要做的是调整图形表示,然后自动再次生成代码,这就是为什么国外的开发非常重视项目的概念和逻辑分析。他们的重点是以图形化的方式表达业务规则和需求。为了关注通用性提取,我们公司的很多人员都在忙于编写与特定业务流程相关的代码,而国外很多国家都在关注不同

15、应用和行业的建模和通用性提取。因此,他们所做的是相对灵活的、可扩展的和可重用的,我们是需要稍微改变代码甚至体系结构的用户。协作和个人英雄主义现代软件开发需要技术创新和深入细致的工作。随着软件规模的增加和技术要求的提高,开发需要团队精神和集体力量来避免个人英雄主义。国内软件研发过程中,个人色彩相对较强。过分依赖个人是不可能形成工业规模的,没有规模就谈不上工业化。严格区分专用软件和通用软件,专用软件应与行业规范相结合,并有必要走行业软件工程之路,面向行业用户;通用软件需要结合市场需求和平台需求面向所有用户。始终树立重用的观念,避免实用,除了在做手头的事情时满足问题的需要之外,一定要考虑这件工作将来

16、有什么用处,以及将来如何做才可能有用。强化软件工程理念,提高团队素质,软件开发无序和重复低效劳动。缺乏创新能力,缺乏软件工程的概念,系统开发早期的需求分析和设计做得不好或不够好。中国的软件开发商绝对可以被认为是优秀的,但是想想我们软件行业有多少领先企业拥有技术创新和专利技术。建立软件工程意识比学习几种开发语言和编程技巧要重要得多。软件工程的发展方向,“敏捷开发”被认为是软件工程的重要发展。它强调软件开发应该能够充分应对未来可能的变化和不确定性。这是一种以人为中心、迭代和渐进的开发方法。在敏捷开发中,软件项目的构建分为几个子项目,每个子项目的结果都经过测试,具有集成性和可操作性的特点。简而言之,一个大项目被分成几个相互关联但独立运行的小项目,这些小项目分别完成。在这个过程中,软件总是可用的。敏捷开发被认为是“理轻量级方式中最

温馨提示

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

评论

0/150

提交评论