软件工程基础培训-V1.01

上传人:飞*** 文档编号:46248264 上传时间:2018-06-24 格式:PPTX 页数:51 大小:1.03MB
返回 下载 相关 举报
软件工程基础培训-V1.01_第1页
第1页 / 共51页
软件工程基础培训-V1.01_第2页
第2页 / 共51页
软件工程基础培训-V1.01_第3页
第3页 / 共51页
软件工程基础培训-V1.01_第4页
第4页 / 共51页
软件工程基础培训-V1.01_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《软件工程基础培训-V1.01》由会员分享,可在线阅读,更多相关《软件工程基础培训-V1.01(51页珍藏版)》请在金锄头文库上搜索。

1、软件工程基础云测科技 胡海斌 前言大道至简软件工程实践者的思想 - 周爱民 在大学时代、在课桌上令人昏昏欲睡的软件工程才是 软件开发中的髓质与灵魂 选择什么语言、如何重构、有没有或应不应该采用某种模 式,都是软件开发的细微末节 我们常常陷于行动而没有思想,思想与行为脱节。常常知 道做什么,但不知道为什么要这样做2“停下来,思考才是进进步的本质质!”主题软件工程的定义 软件工程的研究内容 软件工程的基本原理 软件工程的作用 软件开发的4种常用方法 软件工程的5个面向理论 软件的支持过程 软件的管理过程 软件生存周期及开发模型3Roger SPressman软件过程改善和软件工程技 术方面国际知名

2、的权威。 30多年来,他作为软件工程 师、管理人员、教授、作者 及咨询顾问 始终投身于软件 工程领域。计算机工程的定义计算机由硬件和软件组成 计算机工程由硬件工程和软件工程组成 硬件工程:研究硬件生产和硬件管理的工程学科,包括 计算机及网络硬件的分析、设计、生产、采购、验收、 安装、培训、维护等。 软件工程:研究软件生产和软件管理的工程学科,包括 市场调研、正式立项、项目策划、需求分析、概要设 计、详细设计、编程、测试、试运行、产品发布、用户 培训、产品复制、销售、实施、系统维护、版本升级 等。 系统集成工程:有时也称网络工程,介于硬件工程和软 件工程之间的系统工程(如:规划设计安装一个校园网

3、 ) 4程序与软件定义程序的定义 面向过程的程序=算法+数据结构 面向对象的程序=对象+消息 面向构件的程序=构件+构架软件的定义 软件=程序+数据+文档5“人生就是一段程序,这段程序是用特殊代码写成 的,只是算法极其复杂而已。”软件程序越早开始写代码的人,就是越迟完成代码的人!6年代对软对软 件定义义的认识认识20世纪50年代软件就等于程序,软件系统就是程序系统20世纪60年代软件等于程序加文档,这里的文档仅指开发文档,即软件开发过 程中的分析、设计、实现、测试、维护文档,还不包括管理文档20世纪70年代软件等于程序加文档和数据,这里的文档指开发文档和管理文档 ,这里的数据不仅包括初始化数据

4、、测试数据、而且包括研发数 据、运行数据、维护数据,也包括软件企业积累的项目工程数据 和项目管理数据中的大量决策原始记录数据软件工程的定义1993年,权威组织IEEE对软件工程定义为:软件工程 是将系统化的、严格约束的、可量化的方法,应用于 软件开发、运行和维护中去。 2001年,Roger S.Pressman 对软件工程的定义是:软 件工程是一个过程、一组方法和一系列工具。 现在的定义,软件工程是研究软件开发和软件管理的 一门工程科学。7软件工程的定义是与时俱进的软件工程研究的内容8研究方面具体内容软件开发模型瀑布模型、增量模型、迭代模型、原型模型软件开发方法面向过程的方法、面向数据的方法

5、、面向对象的方法软件支持工具建模工具、开发工具、测试工具、文档工具、 配置工具、安装工具软件管理过程ISO9000、CMM/CMMI、 微软企业文化(MSF)、IBM企业文化、敏捷文化现象(XP).软件工程三要素:方法、工具、过程软件工程的8个基本原理用分阶段的生命周期计划,严格管理软件开 发。 坚持进行阶段评审。 实行严格的产品版本控制。 采用现代程序设计技术。 结果应能清楚地审查。文档要有严格要求。 开发小组的成员要少而精。 要不断地改进软件工程实践的经验和技术。 牢记二八定律 9软件工程中的二八定律对软件项目进度和工作量的估计:一般人主观上认为已经完成了80%,但实际上只完成了20% 对

6、程序中存在问题的估计:80%的问题存在于20% 的程序之中 对模块功能的估计:20%的模块,实现了80%的功 能 对人力资源的估计:20%的人,解决了软件中80% 的问题 对投入资金的估计:企业信息系统中80%的问题 ,可以用20%的资金来解决。10这条原理特别重要,项目经理与高层经理,要特别牢记!软件工程的作用从软件项目团队来讲,解决在规定的时间内,按照规 定的成本,完成预期质量目标(软件的功能、性能和 接口达到需求报告标准)的软件。 从软件企业本身来讲,解决持续地规范软件开发过程 和软件管理过程,不断地优化软件组织的个人素质和 集体素质,从而逐渐增强软件企业的市场竞争实力。 从软件发展进程

7、来讲,克服软件危机,控制软件进度 ,节约开发成本,提高软件质量。 从院校来讲,以前它只是作为一门课或一本书。现在 它成为一个学科,一个体系,一个计算机学位,即软 件工程硕士学位和软件工程博士学位。11软件工程中的4个开发方法面向过程的方法 面向对象的方法 面向数据的方法 形式化方法(*)12面向过程的方法内容:面向过程需求分析、面向过程设计、面 向过程编程、面向过程测试、面向过程维护、 面向过程管理。面向过程的方法,又称为面向 功能的方法,或称为结构化方法。 特点:程序的执行过程,不由用户控制,完全 由程序员控制。 优点:简单实用。 缺点:企图用有穷的方法(枚举法)来描述无穷 的(随机的)信息

8、世界,所以不能完全描述信息 世界;维护困难。 13面向对象的方法内容:面向对象需求分析、面向对象设计、面向对象编 程、面向对象测试、面向对象维护、面向对象管理。在 分析、设计、实现中用到“对象、类、继承、消息通信” 这四个基本概念,就是面向对象的方法。今天用UML来 开发软件,就是面向对象的方法。 特点: (1).程序的执行过程,不由程序员控制,完全由用户控制。 (2).分析设计时面向类,编程时面向对象。 优点:用无穷的方法来描述无穷的(随机的)信息世界, 所以能完全描述信息世界;易于维护。 缺点:较难掌握 。14面向数据的方法内容:是建设信息系统数据库和数据仓库的基本 方法。 1) 数据位于

9、信息系统的中心。 2) 由元数据构成的数据模型是稳定的。 3) 对元数据的处理方法是可变的。 4) 企业信息系统的核心是数据模型。 5) 系统的实现方法主要是面向对象。 6) 用户始终参与信息系统的开发。 特点:程序的执行过程,有时由程序员控制,有 时由用户控制 。 优点:适合数据层设计与实现。 缺点:实现窗口界面较困难。15形式化方法软件工程的形式化方法是建立在严格数学基础上、以逻 辑推理为出发点、并且具有精确数学语义的开发方法。 作为一种以数学逻辑为基础的方法,形式化方法以其严 密性越来越受到众多领域的重视,尤其是在安全性和可 靠性作为关键问题的系统,如核电站、航空航天、铁路 运输系统中得

10、到了较为广泛的应用。但是对于形式化方 法在工业领域的实际应用问题,在软件工程界,尤其是 在系统开发人员当中,还存在着相当多的疑问。 软件工程中的形式化方法是软件工程研究的领域之一,其内容包括:有限状态机、State charts、Petri网、通信 顺序进程、通信系统演算、一阶逻辑、程序正确性证明、净室软件工程、时态逻辑、模型检验、Z形式规约 语言、B语言和方法、VDM系统、Larch等。 16四种开发方法的比较17方 法 名 称优 点缺 点适合的场合面向过程的方法简单好学不适应窗口界面, 维护困难大型工程计算,实时数 据跟踪处理,各种自动 化控制系统,以及系统 软件实现等领域面向对象的方法功

11、能强大,易于维护 不易掌握 互联网络时代,完全由 用户交互控制程序执行 过程的应用软件和系统 软件的开发面向数据的方法通俗易懂不适应窗口界面 以关系数据库管理系统 为支撑环境的信息系统 建设形式化方法准确、严谨难于上手和应用对安全性要求极高,不 容许出错的软件系统, 如军事、医药、交通等 领域软件工程中的5个面向原则面向流程分析。 面向数据设计 面向对象实现 面向功能测试 面向过程管理18面向流程分析面向流程分析,就是面向流程需求分析。 在需求分析时,系统分析员要面向业务流、资 金流、信息流进行分析。只有将这“三个流”分 析透了,才建立好系统的业务模型和功能模 型。因为计算机网络在本质上只认识

12、数据及数 据流(严格地讲,它只认识二进制数和二进制数 据的流动),而且这“三个流”,可以用“数据流” 这一个流程来代替,或者说“三个流”是“数据流 ”在三个不同方向的投影。 19面向数据的设计面向数据设计,就是面向元数据进行概要设计。 在系统设计时,系统设计师要采用面向数据的方法进行概要设计。面向数据就是面向“元数据”( Metadata)。概要设计的主要任务是建立系统的 数据模型,包括概念数据模型CDM和物理数据模 型PDM,以及体现业务规则的存储过程和触发器 ,然后以数据模型为支撑,去实现系统的业务模型和功能模型(包括性能模型和接口模型)。为此, 要对元数据进行分析,只有将元数据分析透了,

13、 才能建立好由元数据所构成的数据模型。 这里讲的面向数据设计,主要表现在数据库服务 器上的关系数据库设计。20面向对象的实现面向对象实现,就是面向对象进行详细设计和编程实 现。 在两层结构(C/S)的客户层上,在三层结构(B/A/S)的表示 层和业务逻辑层上,进行详细设计和编程实现时,要采 用面向对象的方法。当然,在数据服务层上的设计和编 程实现,仍然要采用面向数据的方法,因为主要是设计 和编写存储过程,它们是面向数据的,不是面向对象 的。详细设计和编程实现,实质上是用构件加上程序来 实现系统的业务模型和功能模型。只有对系统的三个模 型思想(业务模型、功能模型、数据模型)吃透了,才能 设计和编

14、写出合格的程序。 面向对象实现,实质上是面向类实现,因为实例化的类 称为对象。21面向功能的测试面向功能测试,就是面向功能进行单元测试、集 成测试、Alpha测试和Beta测试(或系统测试和验收 测试)。在进行测试时,测试人员要采用面向功能的方 法。这里讲的功能,包括系统的功能、性能和接 口三部分内容。面向功能测试的方法就是黑盒子 测试方法,随着第四代程序设计语言和构件技术 的发展,该测试方法会越来越广泛。今后采用白 盒子测试方法(面向程序执行路径测试)的人,只有 从事软件构件生产和核心代码编程的极少数人 员。 22面向过程的管理面向过程管理,就是面向过程对软件生命周期各 个阶段进行管理和控制

15、。 因为软件产品质量的提高与改进,完全取决于软件企业生产过程的改善。无论是CMM/CMMI、 ISO9000、微软企业文化,都是站在软件生命周期 过程的观念上去提高软件企业的素质。 那种认为“只要有几个优秀的程序员就能办好软件 企业,就能生产出高质量的软件产品”的观点,在 上世纪80年代理直气壮,在90年代还能解决温饱 问题,在本世纪就站不住脚了,混不下去了,因 为他们是手工作坊式的开发方法,忽视了软件中 的面向过程管理。 23软件的支持过程软件工程中的过程,是指软件生命周期(Life Cycle) 中的时间序列。过程作为一个时间序列,它自然 有起始点和终止点。 例如,可以将一个软件的生命周期划分为市场调 研、立项、策划、需求分析、概要设计、详细设 计、编程、单元测试、集成测试、运行、维护这 几个过程,前一过程的终止点就是后一过程的起 始点。 过程与阶段(Phase)相对应,阶段与里程碑 (Milestone)相对应。某些重要的里程碑的产出物 又称为基线(baseline)。w

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号