软件工程PPT讲解

上传人:我** 文档编号:112803877 上传时间:2019-11-07 格式:PPT 页数:98 大小:459.50KB
返回 下载 相关 举报
软件工程PPT讲解_第1页
第1页 / 共98页
软件工程PPT讲解_第2页
第2页 / 共98页
软件工程PPT讲解_第3页
第3页 / 共98页
软件工程PPT讲解_第4页
第4页 / 共98页
软件工程PPT讲解_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《软件工程PPT讲解》由会员分享,可在线阅读,更多相关《软件工程PPT讲解(98页珍藏版)》请在金锄头文库上搜索。

1、软 件 工 程,信息科学与工程学院,观察与思考,为什么要学软件工程? 在软件工程中学什么? 应该怎么学软件工程?,【案例1】 2003年初冬,某市某软件公司的老总在西安出差,发现西安市的大中型餐厅基本上都有电子点菜系统,客人一点菜,信息马上出现在厨房大师傅眼前,大师傅马上炒菜,小姐很快上菜。以后一打听,这个点菜系统叫“餐饮系统”,是北京某软件公司开发的。于是这位老总又飞到北京,不但拜访“餐饮系统”的开发公司,而且到几家餐饮大店去吃饭,亲身体验“餐饮系统”的使用情况。返回驻地后,老总拍着脑袋决定马上立项,快速开发本公司的“餐饮系统”。,不到三个月,“餐饮系统”开发完毕,但是在后来的两年中,该系统

2、在该市市总共也只卖出两套,投入与产出比是五比一。,这是为什么?就是因为该市是中等城市,不像北京、西安是大城市,“餐饮系统”的客户群十分少。,可行性及需求 分析很重要,【案例2】 公元2005年2月,珠海一家软件公司(乙方)与珠海一家中药网站公司(甲方),签订了一个“中药网站开发合同”。该合同中的有关条款规定:“软件开发费用共计9万元人民币,开发工期总共为一个月,即2月至3月”。并且还规定:“乙方若不按期交付项目,每拖延一天,甲方扣除乙方的软件开发总费用的1%”。 请读者分析一下,该合同有什么问题? 后来的事实证明,该合同至少造成了如下几个问题:,开发工期太短,乙方肯定不能按时交付项目。开发费用

3、太低,乙方肯定不能获利。 至于“每拖延一天,甲方扣除乙方的软件开发总费用的1%”的约定,更是甲方悬在乙方头上的一把利箭。 由此可见,正确而合理地签订软件项目开发合同,对软件企业是何等地重要!,签订合同的方法,【案例3】 1963年,美国用于控制火星探测器的计算机软件中的一个“,”号被误写为“”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。 如果开发的软件隐含错误,可靠性得不到保证,那么在运行过程中很可能对整个系统造成十分严重的后果,轻则影响到系统的正常工作,重则导致整个系统的瘫痪,乃至造成无可挽回的恶性事故。 如,银行的存款可能被化为乌有,甚至弄成赤字;工厂的产品全部报废,导致工厂

4、破产。,软件测试的重要性,课程介绍:,课程概括 课程名称:软件工程(Software Engineering) 课程特点 是计算机专业的重要专业课之一,研究软件开发和软件管理的一门工程科学; 需要有关“程序设计语言”、“数据结构”、“人机交互”、“数据库原理”等课程的知识作为本课程的基础; 理论性较强,涉及的知识面广。,教学目标及要求: 通过本课程的学习,掌握软件工程的基本原理、成熟的软件工程方法和一定的项目管理与团队技能。培养知识的综合运用能力和问题的协同解决能力。 要求学生充分理解掌握课程中所讲授的各部分知识点的内容,独立并认真完成所布置的作业和实践内容,增强软件开发素质和规范的文档编制能

5、力。,课程介绍:,课程介绍:,教材及参考书: 教材: 赵池龙等编著,实用软件工程(第三版),电子工业出版社,十一五规划教材,2011。 参考书: 赵池龙等编著,软件工程实践教程,电子工业出版社,2011; Roger S. Pressman,Software Engineering:A Practitioners Approach,清华大学出版社 2001,课程内容安排 学时 考核评分:期末笔试70%,平时成绩30%。 作业 实验报告 课程设计(分组完成),课程介绍:,教学要求及建议:,课堂理论教学 平时成绩(考勤、作业、实验报告、课程设计) 实践教学 上机实践 Visio工具的使用 软件可行

6、性分析 软件需求分析 软件系统设计 系统测试 课程设计 3-4人为一项目组,自选项目(项目名称唯一),走完项目需求、设计、编程、测试、运行的全过程,要求文档齐全、程序正确、界面友好、使用方便。,1.1 软件的定义 1.2 软件工程的定义 1.3 软件工程在软件行业中的作用 1.4 软件工程方法论(*) 1.5 软件工程实践论(*) 1.6 软件支持过程 1.7 软件管理过程 1.8 实例分析某港口信息系统建设案例,第1章 软件工程的内容与方法,1.1 软件定义,软件定义,程序的定义 面向过程的程序 = 算法 + 数据结构。 面向对象的程序 = 对象 + 消息。 面向数据的程序 = 数据库表 +

7、 在表上的操作(如存贮过程、触发器或视图)。 面向构件的程序 = 构件 + 构架。 软件 = 程序 + 数据 + 文档 数据 = 初始化数据 + 测试数据 文档 = 开发文档 + 管理文档,文档在软件工程中特别重要,文档是否规范与齐全,是衡量软件企业是否成熟的重要标志之一。 软件文档分为开发文档和管理文档两大类。 开发文档主要由项目组书写,用于指导软件开发与维护; 管理文档主要由软件工程管理部门书写,用于指导软件管理和决策。 软件工程规定:文档必须指挥程序,而决不允许程序指挥文档;文档与程序必须保持高度一致,而决不允许程序脱离开文档。,文档的重要性,“越早开始写代码的人, 就是越迟完成代码的人

8、”。 Roger S.Pressman,开发文档本身具有严格的层次关系和依赖关系,这种关系反映在如下的覆盖关系之中,即有: (1)目标程序覆盖源程序; (2)源程序覆盖详细设计说明书; (3)详细设计说明书覆盖概要设计说明书; (4)概要设计说明书覆盖需求分析规格说明书; (5)需求分析规格说明书覆盖用户需求报告; (6)用户需求报告覆盖软件合同/软件任务书。,3文档的重要性,管理文档本身具有严格的时序关系,这种时序关系反映在如下的软件过程之中,而过程由一系列的时间序列所组成的: (1)需求分析过程管理文档; (2)软件策划过程管理文档; (3)软件设计过程管理文档; (4)软件实现过程管理文

9、档; (5)软件测试过程管理文档; (6)软件维护过程管理文档; (7)软件过程改进管理文档。,3文档的重要性,1.2 软件工程定义,1软件危机 软件工程来源于软件危机,即先有软件危机,后有软件工程。 二十世纪六十年代中期,在美国就出现了软件危机(Software Crisis),这种危机表现在研发大型软件时,软件开发的成本增大、进度延期、维护困难和质量得不到保障。 所谓软件危机,就是在软件开发和维护过程中所遇到一系列难以控制的问题。,典型案例:,软件危机的具体表现:,1)软件开发进度难以预测,拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。 以丹佛新国际机场为例 。

10、2)软件开发成本难以控制. 投资一再追加,令人难于置信。 3)用户对产品功能难以满足 4)软件产品质量无法保证 5)软件缺少适当的文档资料 文档资料是软件必不可少的重要组成部分。,2、软件工程的定义,(1)1993年,IEEE对软件工程的定义是:软件工程是将系统化的、严格约束的、可量化的方法,应用于软件开发、运行和维护中去。 (2)2001年,Roger S.Pressman 对软件工程的定义是:软件工程是一个过程、一组方法和一系列工具。,【定义】软件工程是研究软件开发和软件管理的一门工程学科。 这里,一是强调开发,二是强调管理,三是强调工程,四是强调学科。 开发和管理是一个问题的相辅相成的两

11、个方面。许多软件项目的失败,不是在开发技术上出了问题,而是在管理过程上出了问题。 要将软件的开发当作一项工程,既要按照工程的办法去开发,又要按照工程的办法去管理。 时至今日,软件工程不只是一门课程,而是一个学科体系,即软件工程知识体系。,2软件工程定义,软件工程作为一个学科体系,到本世纪初才初步形成。 2001年4月18日,美国发布了软件工程知识体系指南SWEBOK(Guide to the Software Engineering Body of Knowledge) 0.95版。 2004年,软件工程学科体系的内容才基本确立,就在这一年,美国ACM和IEEE-CS联合制订SWEBOK 20

12、04年版,它将软件工程学科体系的知识划分为如下10个知识域:,3软件工程学科体系,(1)软件需求(Software Requirements) 软件需求是真实世界问题而必须展示的特性。 软件需求知识域有七个子域:需求基础、需求过程、需求获取、需求分析、需求规格说明、需求确认和实践考虑。,3软件工程学科体系,(2)软件设计(Software Design)。 软件设计既是定义一个系统的体系结构、组件、接口和其他特征的过程,又是这个过程的结果。 软件设计知识域有六个子域:软件设计基础、软件设计关键问题、软件结构与体系结构、软件设计质量的分析与评价、软件设计符号、软件设计的策略与方法。,3软件工程学

13、科体系,(3) 软件构造( Software Construction)。 它指通过编码、验证、单元测试、集成测试和排错的组合,具体创建一个可以工作的、有意义的软件。 其知识域有三个子域:软件构造基础、管理构造、实际考虑。,3软件工程学科体系,(4) 软件测试(Software Testing)。 它是由在有限测试用例集合上,根据期望的行为,对程序的行为进行的动态验证组成, 测试用例是实际上无限的执行域中适当选择出来的。 软件测试域有五个子域:软件测试基础和测试级别、测试技术、需求分析、与测试相关的度量、测试过程。,3软件工程学科体系,(5) 软件维护(Software Maintenance

14、)。 软件一旦投入运行,就可能出现异常,运行环境可能发生改变,用户会提出新的需求。 生命周期软件维护,从软件交付时开始。软件维护的知识域有四个子域:软件维护基础、软件维护的关键问题、维护过程、维护技术。,3软件工程学科体系,(6)软件配置管理(Software Configuration Management)。 软件配置是为了系统地控制配置的变更和维护在整个系统生命周期中的完整性及可追踪性,而标志软件在时间上不同点的配置的学科。 软件配置管理域有六个子域:软件配置管理过程管理、软件配置标志、软件配置控制、软件配置状态统计、软件配置审核、软件发行管理和交付。,3软件工程学科体系,(7) 软件工

15、程管理(Software Engineering Management)。 处理软件工程的管理与度量,虽然度量是所有知识域的一个重要方面,但是这里涉及的是度量程序的专题。 软件工程管理域有六个子域:启动和范围定义、软件项目计划、软件项目实施、评审与评价、关闭、软件工程度量。前五个覆盖软件过程工程管理,第六个描述软件度量的程序。,3软件工程学科体系,(8)软件工程过程(Software Engineering Process)。 涉及软件工程过程本身的定义、实现、评定、度量、管理、变更和改进。 软件工程过程域有四个子域:过程实施与改变、过程定义、过程评定、过程和产品度量。 (9)软件工程工具和方

16、法(Software Engineering Tool and Method)。 有软件工程工具、软件工程方法两个子域。,3软件工程学科体系,(10)软件质量(Software Quality)。 处理跨越软件生命周期过程的软件质量的考虑,由于软件质量在软件工程中无处不在,其他知识域也涉及质量问题。 软件质量域有三个子域:软件质量基础、软件质量过程、实践考虑。,3软件工程学科体系,软件工程课程与软件工程学科体系是有区别的: 前者是一门课程,或是大学的软件工程教科书,后者是一个知识体系;前者是一个局部,后者是一个整体。 作为一门软件工程课程,它的研究的内容至今没有统一的说法。一般应该涵盖以下内容(如表1-4所示): 软件生命周期模型 软件开发方法 软件支持过程 软件管理过程,4软件工程课程研究的内容,4软件工程课程研究的内容,软件工程三要素 软件工程的方法(开发方法) 工具(支持方法的工具) 过程(管理过程) 美国著名的软件工程专家B.W

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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