《软件工程PPT.ppt》由会员分享,可在线阅读,更多相关《软件工程PPT.ppt(98页珍藏版)》请在优知文库上搜索。
1、软 件 工 程信息科学与工程学院观察与思考 为什么要学软件工程? 在软件工程中学什么? 应该怎么学软件工程? 【案例【案例1 1】 2003 2003年初冬,某市某软件公司的老总在西安年初冬,某市某软件公司的老总在西安出差,发现西安市的大中型餐厅基本上都有电子点菜系统,出差,发现西安市的大中型餐厅基本上都有电子点菜系统,客人一点菜,信息马上出现在厨房大师傅眼前,大师傅马客人一点菜,信息马上出现在厨房大师傅眼前,大师傅马上炒菜,小姐很快上菜。以后一打听,这个点菜系统叫上炒菜,小姐很快上菜。以后一打听,这个点菜系统叫“餐饮系统餐饮系统”,是北京某软件公司开发的。于是这位老总,是北京某软件公司开发的
2、。于是这位老总又飞到北京,不但拜访又飞到北京,不但拜访“餐饮系统餐饮系统”的开发公司,而且到的开发公司,而且到几家餐饮大店去吃饭,亲身体验几家餐饮大店去吃饭,亲身体验“餐饮系统餐饮系统”的使用情况。的使用情况。返回驻地后,老总拍着脑袋决定马上立项,快速开发本公返回驻地后,老总拍着脑袋决定马上立项,快速开发本公司的司的“餐饮系统餐饮系统”。 不到三个月,不到三个月,“餐饮系统餐饮系统”开发完毕,但是在后来开发完毕,但是在后来的两年中,该系统在该市市总共也只卖出两套,投入的两年中,该系统在该市市总共也只卖出两套,投入与产出比是五比一。与产出比是五比一。【案例案例2 2】 公元公元20052005年
3、年2 2月,珠海一家软件公司月,珠海一家软件公司( (乙方乙方) )与珠海一家中药网站公司与珠海一家中药网站公司( (甲方甲方) ),签订,签订了一个了一个“中药网站开发合同中药网站开发合同”。该合同中的有。该合同中的有关条款规定:关条款规定:“软件开发费用共计软件开发费用共计9 9万元人民万元人民币,开发工期总共为一个月,即币,开发工期总共为一个月,即2 2月至月至3 3月月”。并且还规定:并且还规定:“乙方若不按期交付项目,每拖乙方若不按期交付项目,每拖延一天,甲方扣除乙方的软件开发总费用的延一天,甲方扣除乙方的软件开发总费用的1%”1%”。请读者分析一下,该合同有什么问题?请读者分析一下
4、,该合同有什么问题?后来的事实证明,该合同至少造成了如下几个后来的事实证明,该合同至少造成了如下几个问题:问题: 1.1. 开发工期太短,乙方肯定不能按时交付项目。开发工期太短,乙方肯定不能按时交付项目。开发费用太低,乙方肯定不能获利。开发费用太低,乙方肯定不能获利。2.2. 至于至于“每拖延一天,甲方扣除乙方的软件开发每拖延一天,甲方扣除乙方的软件开发总费用的总费用的1%”1%”的约定,更是甲方悬在乙方头上的约定,更是甲方悬在乙方头上的一把利箭。的一把利箭。 】 课程介绍: 课程概括课程概括课程名称:软件工程课程名称:软件工程(Software Software EngineeringEng
5、ineering)课程特点课程特点 是计算机专业的重要专业课之一是计算机专业的重要专业课之一, ,研究软件开研究软件开发和软件管理的一门工程科学;发和软件管理的一门工程科学; 需要有关需要有关“程序设计语言程序设计语言”、“数据结构数据结构”、“人机交互人机交互”、“数据库原理数据库原理”等课程的知识等课程的知识作为本课程的基础;作为本课程的基础; 理论性较强,涉及的知识面广。理论性较强,涉及的知识面广。 教学目标及要求:教学目标及要求: 通过本课程的学习,掌握软件工程的基本原理、通过本课程的学习,掌握软件工程的基本原理、成熟的软件工程方法和一定的项目管理与团队技成熟的软件工程方法和一定的项目
6、管理与团队技能。培养知识的综合运用能力和问题的协同解决能。培养知识的综合运用能力和问题的协同解决能力。能力。 要求学生充分理解掌握课程中所讲授的各部分知要求学生充分理解掌握课程中所讲授的各部分知识点的内容,独立并认真完成所布置的作业和实识点的内容,独立并认真完成所布置的作业和实践内容,增强软件开发素质和规范的文档编制能践内容,增强软件开发素质和规范的文档编制能力。力。课程介绍课程介绍: :课程介绍课程介绍: : 教材及参考书教材及参考书: :教材:教材: 赵池龙等编著,实用软件工程赵池龙等编著,实用软件工程( (第三版第三版) ),电子工,电子工业出版社,十一五规划教材,业出版社,十一五规划教
7、材,20112011。参考书:参考书: 赵池龙等编著,软件工程实践教程,电子工业出赵池龙等编著,软件工程实践教程,电子工业出版社,版社,20112011; Roger S. Pressman,Software Engineering:A Roger S. Pressman,Software Engineering:A Practitioners Approach,Practitioners Approach,清华大学出版社清华大学出版社 2001 2001 课程内容安排课程内容安排 学时学时 考核评分:考核评分:期末笔试期末笔试70%70%,平时成绩,平时成绩30%30%。 作业作业 实验报告
8、实验报告 课程设计课程设计( (分组完成分组完成) )课程介绍课程介绍:教学要求及建议教学要求及建议: : 课堂理论教学课堂理论教学平时成绩(考勤、作业、实验报告、课程设计)平时成绩(考勤、作业、实验报告、课程设计) 实践教学实践教学上机实践上机实践 VisioVisio工具的使用工具的使用 软件可行性分析软件可行性分析 软件需求分析软件需求分析 软件系统设计软件系统设计 系统测试系统测试课程设计课程设计 3-43-4人为一项目组,自选项目(项目名称唯一),走完项目需人为一项目组,自选项目(项目名称唯一),走完项目需求、设计、编程、测试、运行的全过程,要求文档齐全、程求、设计、编程、测试、运行
9、的全过程,要求文档齐全、程序正确、界面友好、使用方便。序正确、界面友好、使用方便。 1.1 1.1 软件的定义软件的定义 1.2 1.2 软件工程的定义软件工程的定义 1.3 1.3 软件工程在软件行业中的作用软件工程在软件行业中的作用 1.4 1.4 软件工程方法论软件工程方法论( (* *) ) 1.5 1.5 软件工程实践论软件工程实践论( (* *) ) 1.6 1.6 软件支持过程软件支持过程 1.7 1.7 软件管理过程软件管理过程 1.8 1.8 实例分析实例分析某港口信息系统建设案例某港口信息系统建设案例第1章 软件工程的内容与方法 1.1 软件定义 v 软件定义 程序的定义程
10、序的定义 面向过程的程序面向过程的程序 = = 算法算法 + + 数据结构。数据结构。 面向对象的程序面向对象的程序 = = 对象对象 + + 消息。消息。 面向数据的程序面向数据的程序 = = 数据库表数据库表 + + 在表上的操作在表上的操作( (如存贮过程、触发器或视图如存贮过程、触发器或视图) )。 面向构件的程序面向构件的程序 = = 构件构件 + + 构架。构架。软件软件 = = 程序程序 + + 数据数据 + + 文档文档 数据数据 = = 初始化数据初始化数据 + + 测试数据测试数据 文档文档 = = 开发文档开发文档 + + 管理文档管理文档 文档在软件工程中特别重要,文档
11、是否规范与齐全,文档在软件工程中特别重要,文档是否规范与齐全,是衡量软件企业是否成熟的重要标志之一。是衡量软件企业是否成熟的重要标志之一。 软件文档分为软件文档分为开发文档开发文档和和管理文档管理文档两大类。两大类。开发文档主要由项目组书写,用于指导软件开发与维护;开发文档主要由项目组书写,用于指导软件开发与维护;管理文档主要由软件工程管理部门书写,用于指导软件管理文档主要由软件工程管理部门书写,用于指导软件管理和决策。管理和决策。 软件工程规定:软件工程规定:文档必须指挥程序文档必须指挥程序,而决不允许程,而决不允许程序指挥文档;文档与程序必须保持高度一致,而决序指挥文档;文档与程序必须保持
12、高度一致,而决不允许程序脱离开文档。不允许程序脱离开文档。 v 文档的重要性文档的重要性 “越早开始写代码的人,越早开始写代码的人,就是越迟完成代码的人就是越迟完成代码的人”。Roger S.Pressman 开发文档本身具有严格的开发文档本身具有严格的层次关系层次关系和和依赖关系依赖关系,这种关系反映在如下的这种关系反映在如下的覆盖关系覆盖关系之中,即有:之中,即有:(1 1)目标程序覆盖源程序;)目标程序覆盖源程序;(2 2)源程序覆盖详细设计说明书;)源程序覆盖详细设计说明书;(3 3)详细设计说明书覆盖概要设计说明书;)详细设计说明书覆盖概要设计说明书;(4 4)概要设计说明书覆盖需求
13、分析规格说明书;)概要设计说明书覆盖需求分析规格说明书;(5 5)需求分析规格说明书覆盖用户需求报告;)需求分析规格说明书覆盖用户需求报告;(6 6)用户需求报告覆盖软件合同)用户需求报告覆盖软件合同/ /软件任务软件任务书。书。 3 3文档的重要性文档的重要性 管理文档本身具有严格的管理文档本身具有严格的时序关系时序关系,这种时序关,这种时序关系反映在如下的软件过程之中,而过程由一系列系反映在如下的软件过程之中,而过程由一系列的时间序列所组成的:的时间序列所组成的:(1 1)需求分析过程管理文档;)需求分析过程管理文档;(2 2)软件策划过程管理文档;)软件策划过程管理文档;(3 3)软件设
14、计过程管理文档;)软件设计过程管理文档;(4 4)软件实现过程管理文档;)软件实现过程管理文档;(5 5)软件测试过程管理文档;)软件测试过程管理文档;(6 6)软件维护过程管理文档;)软件维护过程管理文档;(7 7)软件过程改进管理文档。)软件过程改进管理文档。 3 3文档的重要性文档的重要性1.2 软件工程定义 1 1软件危机软件危机 软件工程来源于软件危机,即先有软件危机,后软件工程来源于软件危机,即先有软件危机,后有软件工程。有软件工程。 二十世纪六十年代中期,在美国就出现了软件危二十世纪六十年代中期,在美国就出现了软件危机(机(Software CrisisSoftware Cris
15、is),这种危机表现在研发),这种危机表现在研发大型软件时,软件开发的成本增大、进度延期、大型软件时,软件开发的成本增大、进度延期、维护困难和质量得不到保障。维护困难和质量得不到保障。 所谓软件危机,就是在软件开发和维护过程中所所谓软件危机,就是在软件开发和维护过程中所遇到一系列难以控制的问题。遇到一系列难以控制的问题。 典型案例:软件危机的具体表现:软件危机的具体表现: 1) 1)软件开发进度难以预测,拖延工期几个月甚至软件开发进度难以预测,拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发几年的现象并不罕见,这种现象降低了软件开发组织的信誉。组织的信誉。以丹佛新国际机场为例以丹佛
16、新国际机场为例 。 2) 2)软件开发成本难以控制软件开发成本难以控制. .投资一再追加,令人难于置信。投资一再追加,令人难于置信。 3) 3)用户对产品功能难以满足用户对产品功能难以满足 4) 4)软件产品质量无法保证软件产品质量无法保证 5) 5)软件缺少适当的文档资料软件缺少适当的文档资料文档资料是软件必不可少的重要组成部分。文档资料是软件必不可少的重要组成部分。 2 2、软件工程的定义(1)1993(1)1993年,年,IEEEIEEE对软件工程的定义是:软对软件工程的定义是:软件工程是将系统化的、严格约束的、可量件工程是将系统化的、严格约束的、可量化的方法,应用于软件开发、运行和维护化的方法,应用于软件开发、运行和维护中去。中去。(2)2001(2)2001年,年,Roger S.Roger S.PressmanPressman 对软件工程对软件工程的定义是:软件工程是一个过程、一组方的定义是:软件工程是一个过程、一组方法和一系列工具。法和一系列工具。 【定义】软件工程是研究软件开发和软件管理的【定义】软件工程是研究软件开发和软件管理的一门工程学科。一门工程学科。这里,一是强