1、软件工程贵州大学软贵州大学软 件件 学学 院院2007年 9月主讲人:黄顺强主讲人:黄顺强Tel: 0851-7927121, 1398513816313312266323 QQ:287986791E-mail:1写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯把需求变换为软件产品把需求变换为软件产品由谁由谁 产生产生?实现法则实现法则?表现法则表现法则?2写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯把需求变换为软件产品把需求变换为软件产品由谁由谁 产生产生?实现法则实现法则?表现法则表现法则?3写在前面的话写在前面的话 软件工程与我们的
2、职业生软件工程与我们的职业生涯涯职场需求一职场需求一 :软件设计师软件设计师从事从事 :软件开发软件开发 需求工程需求工程 -需求分析需求分析 -设计设计-编码实现等编码实现等职位预测职位预测 :40W/W/ 全国全国4写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯职场需求二职场需求二 : 软件测试工程师软件测试工程师从事从事 :软件测试软件测试 分析需求分析需求 /流程流程 -测试用例测试用例设计设计 -测试报告分析及评价等测试报告分析及评价等职位预测职位预测 :20W/W/ 全国全国5写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯职场
3、需求三职场需求三 : 软件项目管理工程师软件项目管理工程师从事从事 :软件开发项目管理软件开发项目管理项目启动项目启动 -整体整体 -范围范围 -进度进度 -成本成本-风险风险 -质量质量 -人员人员 -沟通管理等沟通管理等职位预测职位预测 :10W/W/ 全国全国6写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯职场需求四职场需求四 : 信息系统管理工程师信息系统管理工程师从事从事 :信息系统运营规划与管理信息系统运营规划与管理信息系统全面规划、设计、监信息系统全面规划、设计、监控、管理、实施与评估评价。控、管理、实施与评估评价。职位预测职位预测 :5W/W/ 全国
4、全国 7写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯学习建议学习建议 :A类类 :从事专业方面发展从事专业方面发展严格要求自己,根据自身情况严格要求自己,根据自身情况选择四个方向之一去打造,认选择四个方向之一去打造,认真完成学习任务和项目实践。真完成学习任务和项目实践。8写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯学习建议学习建议 : B类类 :改行规划改行规划 (公务员公务员 /导游导游 /文员文员 )尽力要求自己,认真完成学习任尽力要求自己,认真完成学习任务,尽量参与项目实践,期考成务,尽量参与项目实践,期考成绩达绩达 70分以上
5、。分以上。9写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯学习建议学习建议 :C类类 :不知所云或基础较差不知所云或基础较差尽力要求自己不要缺课尽力要求自己不要缺课 3次以上次以上,尽力参加课堂学习任务,期,尽力参加课堂学习任务,期考成绩达考成绩达 60分以上。分以上。10写在前面的话写在前面的话 软件工程与我们的职业生软件工程与我们的职业生涯涯学习建议学习建议 :D类类 :其他其他? 江湖评价江湖评价11前言 1. 软件工程软件工程 :总:总 学时:学时: 90,其中:教学,其中:教学 72学时(学时( 4学分),专题实验学分),专题实验 18学时(学时( 1学分
6、)学分) . 2. 主教材:主教材: 等编著,等编著, 实用软件工程实用软件工程 (第二版第二版 ) ,电子工业出版社,十一,电子工业出版社,十一五规划教材,五规划教材, 2006。 韩万江编著,软件工程案例教程,机械工业出版社,国家韩万江编著,软件工程案例教程,机械工业出版社,国家示范性软件学院系列教材,示范性软件学院系列教材, 2007。 3. 参考教材:参考教材: 等编著,等编著, 软件工程实践教程软件工程实践教程 ,电子工业出版社,电子工业出版社, 2006 韩万江等编著,软件项目管理案例教程,机械工业出版社韩万江等编著,软件项目管理案例教程,机械工业出版社,国家示范性软件学院系列教材
7、,国家示范性软件学院系列教材, 2007。 赵斌编著,软件测试技术经典教程,科学出版社,高级软赵斌编著,软件测试技术经典教程,科学出版社,高级软件测试工程师专用教材,件测试工程师专用教材, 2007。12前言 罗叶明编著,第八个管理罗叶明编著,第八个管理 -怎样敢超印度、美国怎样敢超印度、美国软件,清华大学出版社,软件,清华大学出版社, 2006 周爱民编著,大道至简周爱民编著,大道至简 -软件工程实践者的思考软件工程实践者的思考,电子工业出版社,电子工业出版社, 2007。 张逸编著,软件设计精要与模式,电子工业出版张逸编著,软件设计精要与模式,电子工业出版社,社, 2007。 林锐编著,软
8、件工程与项目管理解析,电子工业林锐编著,软件工程与项目管理解析,电子工业出版社,出版社, 2003。13前言 4.考试评分:期末笔试考试评分:期末笔试 70%,专题实验,专题实验 20%,平,平时表现时表现 10%。 5.思考题与期末总复习题就是期末考试题的范思考题与期末总复习题就是期末考试题的范围。围。 6.大作业题目(专题实验)就是平时的表现:大作业题目(专题实验)就是平时的表现: XXXXXXXXX信息系统信息系统 。 要求:需求、设计、编程、测试、运行。要求:需求、设计、编程、测试、运行。14第 1章 软件工程的内容与方法引子引子 21世纪,什么技术将影响人类的生活?什么产世纪,什么技
9、术将影响人类的生活?什么产业将决定国家的势力?可以毫不夸张地说,信业将决定国家的势力?可以毫不夸张地说,信息技术与信息产业是首选的答案之一。息技术与信息产业是首选的答案之一。 信息技术与信息产业的核心是软件技术与软件信息技术与信息产业的核心是软件技术与软件产业,软件工程是软件及其产品开发、生产、产业,软件工程是软件及其产品开发、生产、服务和管理的科学。服务和管理的科学。 由此可见,学习软件工程的重要性和紧迫性非由此可见,学习软件工程的重要性和紧迫性非同小可。同小可。 15学习要求要求了解要求了解 1)微软的企业文化)微软的企业文化 2) CMM/CMMI的由来及其实质的由来及其实质 3) 敏捷
10、文化现象的由来及其实质敏捷文化现象的由来及其实质 4)软件工程与信息系统工程的关系)软件工程与信息系统工程的关系 5)信息系统工程的内容)信息系统工程的内容 6)信息系统的建设方法)信息系统的建设方法 7)信息系统建设的成功案例)信息系统建设的成功案例16学习要求学习要求要求了解要求了解 8)生存周期的概念)生存周期的概念9)开发模型的概念)开发模型的概念10) 生存周期模型裁剪指南生存周期模型裁剪指南11) “ 订单软件订单软件 ” 的概念的概念12) “ 非订单软件非订单软件 ” 的概念的概念13)招标、投标、讲标和中标的概念)招标、投标、讲标和中标的概念 14)任务书的概念及编写方法)任
11、务书的概念及编写方法17学习要求要求关注并掌握要求关注并掌握 1)软件工程中常用的三种开发方法:)软件工程中常用的三种开发方法: “面向面向过程的方法、面向数据的方法、面向对象的过程的方法、面向数据的方法、面向对象的方法方法 ” 2) 软件工程中的形式化方法软件工程中的形式化方法 3)软件工程的五个面向实施理论:)软件工程的五个面向实施理论: “面向流面向流程分析、面向数据设计、面向对象实现、面程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理向功能测试、面向过程管理 ” 18学习要求要求关注并掌握要求关注并掌握4)瀑布模型的本意、特点、选用条件)瀑布模型的本意、特点、选用条件5)
12、 增量模型的本意、特点、选用条件增量模型的本意、特点、选用条件6) 原型模型的本意、特点、选用条件原型模型的本意、特点、选用条件7)立项建议书的编写方法)立项建议书的编写方法8)软件项目投标书的编写方法)软件项目投标书的编写方法 191.1 软件工程的定义 Computer: 由硬件和软件组成。 硬件: 是看得見、摸得着的电子机械设备块。 软件: 是依附在硬件上面的程序、数据和文档的集合,是指挥控制计算机系统 (包括硬件和软件 )工作的神经思维中枢。 如果将硬件比作人的身体素质,那么软件就相当于人的神经中枢和知识才能。 软件开发: 既非常艰苦 (因为软件设计思想与开发工具不断更新 ),又无限快
13、乐 (因为软件成果是人类智慧与艺术的结晶 )。20软件怎样分类 按功能分:(1) 系统软件 ; (2) 支撑软件; (3) 应用软件。 按规模分:(1) 小型软件 (1-5人年 );(2) 中型软件 (5-50人年 )(3) 大型软件 (50人年以上 )。 按工作方式分:(1) 实时软件; (2) 分时软件; (3) 交互式软件;(4) 批处理软件; (5) 嵌入式软件。 按服务对象分:(1) 项目软件; (2) 产品软件。 按销售方式:(1) 订单软件; (2) 非订单软件。21什么是计算机工程什么是计算机工程 计算机工程计算机工程 (Computer Engineering)包括:包括:
14、(1). 硬件工程硬件工程 (Hardware Engineering) :计算机及网络硬件的分析、设计、生产、采购、验收计算机及网络硬件的分析、设计、生产、采购、验收、安装、培训、维护。、安装、培训、维护。 (2). 网络工程网络工程 (Network Engineering) :网络的设计、安装网络的设计、安装 (硬件安装和系统软件安装硬件安装和系统软件安装 )、调试、调试、维护、升级。、维护、升级。 (3). 软件工程软件工程 (Software Engineering) :市场调研、正式立项、需求分析、项目策划、概要设市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测
15、试、试运行、产品发布、用计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升户培训、产品复制、销售、实施、系统维护、版本升级。级。 22 【 例 1-1】 请规划、设计、安装一个校园网。这是一个 硬件工程 ,其中要完成的工作内容包括:制定设计方案,网络设备的选型、配置、采购、验货、布线、安装、调试、运行和交付。 在安装和调试中,又要安装和调试许多软件,如网络操作系统、数据库管理系统、教学软件系统、办公自动化系统、防火墙及杀毒软件等。 由于有这么多软件也需要选型、配置、采购、安装、调试,所以在今天,除了生产硬件的厂商之外,纯粹的 “ 硬件工程 ” 几乎不存
16、在,大多数硬件工程都与软件有关,于是就出现了一个新名词 “ 网络工程 ” ,它是介于硬件工程和软件工程之间的系统工程,人们称它为 “ 系统集成工程 ” 。 23软件怎样定义 1.软件 = 程序 + 数据 + 文档。 数据 = 初始化数据 + 测试数据文档 = 开发文档 + 管理文档。今天仍然有人认为:软件等于程序。这些人一上来就写程序。 Roger S.Pressman说: “ 越早开始写代码的人,就是越迟完成代码的人 ” 。 对管理文档的全面认识,那就更晚了。 1974年,美国人认识到软件需要管理。 1984年,美国人认识到软件管理是一个过程管理,或是一个管理过程。 1991年,出现了软件过
17、程能力成熟度模型 CMM (Capability Maturity Model)版。24软件的最新定义 软件 = 知识 +程序 +数据 +文档 对这一定义的讨论:正方:因为软件是知识在网络上的体现,所以这个定义非常好。反方:程序、数据、文档本身就是知识的表现,所以这个定义是画蛇添足。25软件怎样定义 2.开发文档具有严格的 层次 关系: (1) 目标程序 覆盖 源程序 ; (2) 源程序 覆盖 详细设计说明书 ; (3) 详细设计说明书 覆盖 概要设计说明书 ; (4) 概要设计说明书 覆盖 需求规格说明书 ; (5) 需求规格说明书 覆盖 用户需求报告 ; (6) 用户需求报告 覆盖 软件合
18、同 。 3.管理文档具有严格的 时序 关系:因为管理是一个过程。26程序怎样定义 (1).面向过程的程序 = 算法 + 数据结构。 (2).面向对象的程序 = 对象 + 消息。 (3).面向数据的程序 = 数据库表 + 在表上的操作 (如存贮过程、触发器或视图 )。 (4).面向构件的程序 = 构件 + 构架。 优秀的程序 (或模块 ),必须满足 “ 高内聚、低耦合 ” 的性质。所谓高内聚,就是程序 (或模块)内部结构紧凑,凝聚力和向心力强。所谓低耦合,就是程序 (或模块 )之间彼此依赖关系很低。 有人说: “ 人生就是一段程序,这段程序是用特殊代码写成的,只是算法极其复杂而已。 ”27软件工
19、程怎样定义 (1).1993年, IEEE对软件工程的定义是:软件工程是将系统化的、严格约束的、可量化的方法,应用于软件开发、运行和维护中去。 2001年, Roger S.Pressman 对软件工程的定义是:软件工程是一个过程、一组方法和一系列工具。 (3).现在,我们对软件工程的定义是:软件工程是研究软件开发和软件管理的一门工程科学。 可见:软件工程的定义是与时俱进的。28软件工程研究的内容 现代软件工程研究的内容,概括为: (1). 软件开发模型 ,如:瀑布模型、增量模型、原型模型、螺旋模型、迭代模型等。 (2). 软件开发方法 ,如:面向过程的方法、面向数据的方法、面向对象的方法 (
20、包括面向业务基础平台的方法、面向工作流方法、面向主体的方法、面向方面的方法、面向代理的方法等等 ),以及形式化方法。 (3). 软件支持过程 ,如: CASE工具 Rose、 北大青鸟系统、 Power Designer、 ERWin, 以及配置管理工具等。 (4). 软件管理过程 ,如: ISO9000、 CMM/CMMI、 软件企业文化 (微软企业文件、敏捷文化现象、 IBM企业文化 )。29【 例 1-2】 请开发一个 “图书馆信息系统”,即图书馆 MIS。 这是一项 软件工程 ,为了完成这项任务,首先要选择软件开发模型,确定开发方法,准备开发工具,设计开发环境和运行环境,然后进行需求分析、概要设计、详细设计、编程、测试、试运行、正式运行、验收和交付,最后是系统维护或系统升级换代。这样,就按照所选择的开发模型,走完了软件的一个生存周期。这一系列的软件开发过程和管理过程,就是软件工程。 30
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1