软件工程综述
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择合理的范型,对问题进行合理的分割
范型包括模型、方法和规范,结合实际 问题,针对问题特点选择合适范型,进 行合理的分割,不同的分割可能对应不 同的体系结构。
人员的组织和调度
根据人员的技术特长也安排人,根据问 题的技术要求来选拔人,根据问题和用 户的总要求来组织人。
开发过程中及时编写文档
在开发过程中会碰到各种各样的问题和 困难,当然还有各种各样的创意和新的 思路。应该把这些东西都记录下来并进 行及时整理, 便于交流和实现。
它首先用结构化分析(SA)对软件进行需求 分析,然后用结构化设计(SD)方法进行总体设 计,最后是结构化编程(SP)。它给出了两类典 型的软件结构(变换型和事务型)使软件开发的 成功率大大提高。
面向数据结构的软件开发方法
Jackson方法是最典型的面向数据结构的软件 开发方法,Jackson方法把问题分解为可由三 种基本结构形式表示的各部分的层次结构。三 种基本的结构形式就是顺序、选择和重复。
模型
瀑布模型 演化模型 螺旋模型 增量模型 喷泉模型 智能模型 RUP模型
瀑布模型
各项活动按自上而下,相互衔接的 固定次序,如同瀑布逐级下落.每项活动 均处于一个质量环(输入-处理-输出-评 审)中。
演化模型
先开发一个“原型”软件,完成部 分主要功能,展示给用户并征求意见,然 后逐步完善,最终获得满意的软件产品。
第六条原理
开发小组的人员应少而精
高素质开发人员的效率比低素质开发人员的效率 要高几倍到几十倍,开发工作中犯的错误也要少 的多。 通讯信道随着人数N的增大而增大,通讯开销也将 急剧增大。
第七条原理 承认不断改进软件工程实践的必要性
根据这条原理,不仅要积极采纳新的软 件开发技术,还要注意不断总结经验, 收集进度和消耗等数据,进行出错类型 和问题报告统计。
要注重共性提取
面向对象的软件开发方法
OMT:随着OOP(面向对象编程)向OOD(面向对象设计) 和OOA(面向对象分析)的发展,最终形成面向对象的软 件开发方法OMT (Object Modeling Technique)。这是一 种自底向上和自顶向下相结合的方法,而且它以对象建模 为基础,从而不仅考虑了输入、输出数据结构,实际上也 包含了所有对象的数据结构。
面向问题的分析法
PAM(Problem Analysis Method)是80年代末由日立公 司提出的一种软件开发方法。 具体步骤是:从输入、输出数据结构导出基本处理框;分 析这些处理框之间的先后关系;按先后关系逐步综合处理 框,直到画出整个系统的PAD图。
原型化方法
开发原型化系统一般由以下几个阶段: (1) 确定用户需求 (2) 开发原始模型 (3) 征求用户对初始原型的改进意见 (4) 修改原型。
RUP统一过程
(1)Inception phase(开始阶段) 定义出项目目标和范围,建立系统业务案例 (2)Elabration phase(细化阶段) 制定计划、定义项目基线、确定系统的体系架构 (3)construction phase(开发(构造)阶段) 主要是编码、单元测试工作,是人工最密集的阶段。 这个时候,虽然允许有小的需求加入进来,但是应该尽量避 免大的需求变动。各个部分可以并行开发。 (4)Transition phase(发布(转换)阶段) 将产品提交给用户适用。包括相关的培训等内容
软件工程概念
软件工程框架 软件工程基本原理 软件工程常用模型与方法 如何培养软件工程的思维方法
软件工程常用模型与方法
高质量的软件和高效率的软件过程:模 型和方法是关键
质量第一 效率第二
质量直接体现在软件的每段程序中,高 质量自然是开发人员的技术追求,也是 职业道德的要求。 高质量对所有的用户都有价值,而高生 产率只对开发方有意义。 如果一开始就追求高生产率,容易使人 急功近利,留下隐患。宁可进度慢些, 也要保证每个环节的质量,以图长远利 益。
第二条原理 坚持进行阶段评审
》统计结果显示: 大部分错误是在编 码之前造成的,大约占63%。 》错误发现的越晚,改正它要付出的代 价就越大。 》因此,软件的质量保证工作不能等到 编码结束之后再进行,应坚持进行严格 的阶段评审,以便尽早发现错误。
第三条原理
实行严格的产品控制
》开发人员最痛恨的事情之一就是改动需求。但 是实践告诉我们,需求的改动往往是不可避免的。 》这就要求我们要采用科学的产品控制技术来顺 应这种要求。也就是要采用变动控制,又叫基准 配臵管理。当需求变动时,其它各个阶段的文档 或代码随之相应变动,以保证软件的一致性。
螺旋模型
螺旋模型将瀑布模型与演化模型结 合起来,并且加入两种模型均忽略了的 风险分析。螺旋模型沿着螺线旋转,自 内向外每旋转一圈便开发出更完善的一 个新版本。
增量模型
把软件产品分解成一系列的增量构 件,在增量开发迭代中逐步加入。每个 构件由多个相互作用的模块构成,并且 能够完成特定的功能。
喷泉模型
第一条原理 用分阶段的生命周期计划严格管理
这条原理意味着,应该把软件生命周期分成若干阶 段,并相应制定出切实可行的计划,然后严格按照 计划对软件的开发和维护进行管理。 Boehm 认为,在整个软件生命周期中应指定并严 格执行6类计划: 项目概要计划、里程碑计划、项目控制计划、产品 控制计划、验证计划、运行维护计划。
软件工程概念
软件工程框架 软件工程基本原理 软件工程常用模型与方法 如何培养软件工程的思维方法
软件工程基本原理
自从1968年提出“软件工程”这一术语以来,研 究软件工程的专家学者们陆续 提出了100多条关 于软件工程的准则或信条。 美国著名的软件工程 专家 Boehm 综合这些专家的意见,并总结了 TRW公司多年的开发软件的经验,于1983年提 出了软件工程的七条基本原理。 Boehm 认为,这七条原理是确保软件产品 质量和开发效率的原理的最小集合。 它们是相互独立的,是缺一不可的最小集合; 同时,它们又是相当完备的。
软件工程综述
软件工程概念
软件工程框架 软件工程基本原理 软件工程常用模型与方法 如何培养软件工程的思维方法
软件工程基本概念
软件工程(Software Engineering,简称为SE) 是一门研究用工程化方法构建和维护有效、实用和 高质量软件的学科。(1968年提出)
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设
计模式等方面。
软件工程概念
软件工程框架 软件工程基本原理 软件工程常用模型与方法 如何培养软件工程的思维方法
软件工程框架
框架可概括为:
目标
过程
原则
目标
软件工程目标: 生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。 可用性指软件基本结构、实现及文档为用户可用的程度。 开销合宜是指软件开发、运行的整个开销满足用户要求的 程度。
常用方法
结构化方法 面向数据结构的软件开发方法 面向问题的分析法 原型化方法 面向对象的软件开发方法 可视化开发方法 基于构件的开发方法 基于Agent开发方法
结构化方法
结构化开发方法是由E.Yourdon 和 L.L.Constantine 提出的,即所谓的SASD 方 法, 也可称为面向功能的软件开发方法或面向数据流 的软件开发方法。
基于构件的开发方法
以构件为核心实施构件的分布生产(开发)和构件的有 组织组装,从而实现软件的工业化生产。这个过程是模 拟物理产品的生产过程。 这是软件可重用性的具体体现。 支持这种方法的单元:构件(基本)、模式、框架等。
基于Agent开发方法
》以面向对象为基础,以Agent为核心,开发 分布式智能软件的方法。 》Agent是求解问题的智能单元,对一个复杂 问题的求解是多Agent联合求解的过程。 》该方法包容了面向对象方法的所有特性。 (基于Agent软件工程)
RUP:基于UML的RUP方法 UML=Booch+OMT+OOSE Grady Booch, Ivar Jacobson, Jin Rumbaugh
可视化开发(工具)方法
》其实可视化开发并不能单独的作为一种开发方法,更 加贴切的说可以认为它是一种辅助工具,当然,不可否 认的是,你只是在编程这个环节上用了可视化,而不是 在系统分析和系统设计这个高层次上用了可视化的方法。 》实际上,建立系统分析和系统设计的可视化工具是一 个很好的卖点,国外有很多工具都致力于这方面产品的 设计。 》CASE方法可视化工具集。
第四条原理
采纳现代程序设计技术
采用先进的技术即可以提高软件开发的 效率,又可以减少软件维护的成本。
第五条原理
结果应能清楚地审查
》软件是一种看不见、摸不着的逻辑产品。 》软件开发小组的工作进展情况可见性差, 难于评价和管理。 》为更好地进行管理,应根据软件开发的 总目标及完成期限, 尽量明确地规定开发 小组的责任和产品标准,从而使所得到的 标准能清楚地审查。
考虑整个项目或者产品的市场前景
作为一个真正的系统分析人员,不仅要 从技术的角度来考虑问题,而且还要从 市场的角度去考虑问题。
从用户的角度来考虑问题
从用户的角度考虑,也就是说用户认可 的才是好的,并不是开发人员觉的好才 好。
从技术的角度考虑问题
虽然技术绝对不是唯一重要的,但是技 术一定是非常重要的,是成功的必要环 节。在产品设计的时候,必须考虑采用 先进的技术和先进的体系结工程基本原理 软件工程常用模型与方法 如何培养软件工程的思维方法
如何培养软件工程的思维方法
》软件工程理论方法和实际相结合,紧 密结合的产物将是“行业软件工程”。 》行业软件工程将是软件工程方法的主 要体现形式。 》所以,软件工程要面对实际问题。
来自实际中的经验
过程
软件工程过程:生产一个最终能满足需求且达到工程目标 的软件产品所需要的步骤。 软件工程过程主要包括开发过程、运作过程、维护过程。 它们覆盖了需求、设计、实现、确认以及维护等活动。 需求活动包括问题分析和需求分析。问题分析获取需求定 义,又称软件需求规约。需求分析生成功能规约。 设计活动一般包括概要设计和详细设计。 实现活动把设计结果转换为可执行的程序代码。 确认活动贯穿于整个开发过程,实现完成后的确认,保证 最终产品满足用户的要求。 维护活动包括使用过程中的扩充、修改与完善。伴随以上 过程,还有管理过程、支持过程、培训过程等。
原则
软件工程的原则:
是指围绕工程设计、工程支持以及工程管理 在软件开发过程中必须遵循的原则。
四条基本原则
选取适宜开发范型。 采用合适的设计方法。 提供高质量的工程支持。
重视开发过程的管理。
根据软件工程这一框架,软件工程学科 的研究内容主要包括: 软件开发范型、软件开发方法、软件过 程、软件工具、软件开发环境、计算机 辅助软件工程(CASE) 及软件经济学等。
充分考虑实施时可能遇到的问题
开发是一回事情,用户真正能够使用好 它又是另外一回事情。 特别需要关注 技术问题和需求的变更。
可视化工具的使用
国外很多项目的开发都是基于一些图形化的 东西来做的,他们的目的是尽量少写代码甚至不 写代码。 代码能够通过图形化的方式自动生成,这样 的一个好处就是如果用户的需求变化或者业务逻 辑发生变化,我们需要做的就是对图形表示的调 整,然后重新自动生成代码,这也就是国外开发 很注重对项目的概念和逻辑分析的原因。 他们的重点是把业务规则和需求用图形化的 方式表现出来 。
体现了迭代和无间隙的特性。系统 某个部分常常重复工作多次,相关对象 在每次迭代中随之加入演进的软件成分 中。无间隙是指在各项开发活动,即分 析,设计和编码之间不存在明显的边界。 喷泉模型是对象驱动的过程。
智能模型
智能模型是基于知识的软件开发模型,它把 瀑布模型和专家系统综合在一起。 该模型在各个开发阶段都利用了相应的专家系统 来帮助软件人员完成开发工作。 为此,建立了各个阶段的知识库,以软件工程知 识为基础的生成规则构成的专家系统与包含应用 领域知识规则的其他专家系统相结合,构成该应 用领域的开发系统。