电子科技大学软件工程---01软件工程(改)_第1页
电子科技大学软件工程---01软件工程(改)_第2页
电子科技大学软件工程---01软件工程(改)_第3页
电子科技大学软件工程---01软件工程(改)_第4页
电子科技大学软件工程---01软件工程(改)_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、授课教师:授课教师: 蓝蓝 天天联系电话:联系电话: 1348892972313488929723电子邮箱:电子邮箱: 先修课:先修课: ( (也可同时进行也可同时进行) ) o 程序设计语言程序设计语言o 数据结构数据结构o 数据库数据库o 算法设计算法设计 1. 1. Software EngineeringSoftware Engineering(第(第8 8版),版),Ian SommervilleIan Sommerville,机械工业出版社,机械工业出版社 2. 2. 软件工程(第软件工程(第4 4版),弗里格,人民版),弗里格,人民邮电出版社邮电出版社 3. 3. 软件工程:共同

2、演进的方法介绍,田文洪软件工程:共同演进的方法介绍,田文洪等编著,机械工业出版社,等编著,机械工业出版社,20112011 第第1 1章章 概述概述 第第2 2章章 过程模型过程模型 第第3 3章章 需求分析需求分析 第第4 4章章 系统设计系统设计 第第5 5章章 程序实现程序实现 第第6 6章章 质量保证质量保证 第第7 7章章 软件维护软件维护 第第8 8章章 项目管理项目管理 考核方式:闭卷考试考核方式:闭卷考试 成绩构成比例:成绩构成比例:o期末考试(期末考试(50%50%)+ + 期中考试(期中考试(20%20%)+ +实验成绩(实验成绩(20%20%)+ +平时成绩(平时成绩(1

3、0%10%) 学生有下列情形之一者,取消考试资格:学生有下列情形之一者,取消考试资格:o平时作业有平时作业有20%20%以上未按时完成;以上未按时完成;o实验课缺课学时达到总学时的实验课缺课学时达到总学时的20%20%以上;以上;o无正当事由或未经学院同意,课堂缺课学时达到课程总学时的无正当事由或未经学院同意,课堂缺课学时达到课程总学时的40%40%以上。以上。 大作业:大作业:o分组完成一个软件系统分组完成一个软件系统o选择一种适合的软件工程过程模型选择一种适合的软件工程过程模型o提交:提交: 必须:相应实验报告必须:相应实验报告 可选:程序(源码、可执行程序)、文档(需求、设计、测试等开发

4、文档)可选:程序(源码、可执行程序)、文档(需求、设计、测试等开发文档)软件的相关知识介绍软件的相关知识介绍1软件工程的原则软件工程的原则4软件工程的相关课题软件工程的相关课题5软件工程的概念软件工程的概念3软件危机软件危机2小结小结6v软件定义:软件定义: 软件软件=程序程序+数据数据+文档文档程序:按事先设计的功能和性能需求执行的指令序列程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料文档:与程序开发、维护和使用有关的图文材料 软件是开发的或者是工程化的,并不是制造的软件是开发的

5、或者是工程化的,并不是制造的 软件开发环境对产品影响较大软件开发环境对产品影响较大 软件开发时间和工作量难以估计软件开发时间和工作量难以估计 软件会多次修改软件会多次修改 软件的开发进度几乎没有客观衡量标准软件的开发进度几乎没有客观衡量标准 软件测试非常困难软件测试非常困难 软件不会磨损和老化软件不会磨损和老化 软件维护易产生新的问题软件维护易产生新的问题 软件生产是简单的拷贝软件生产是简单的拷贝 一方面是一种产品一方面是一种产品o 提供计算能力提供计算能力o 产生、管理、获取、修改、显示或传输信息产生、管理、获取、修改、显示或传输信息 另一方面是开发其他软件产品的工具另一方面是开发其他软件产

6、品的工具o 支持或直接提供系统所需的功能支持或直接提供系统所需的功能o 控制其他程序(如操作系统)控制其他程序(如操作系统)o 改善通信(如网络软件)改善通信(如网络软件)o 帮助开发其它软件(如软件开发工具)帮助开发其它软件(如软件开发工具)o 其它功能其它功能 按软件的功能进行划分:按软件的功能进行划分:o 系统软件系统软件 操作系统操作系统 数据库管理系统数据库管理系统 设备驱动程序设备驱动程序 通信处理程序等通信处理程序等o 支撑软件支撑软件 文本编辑程序文本编辑程序 文件格式化程序文件格式化程序 磁盘向磁带向数据传输的程序磁盘向磁带向数据传输的程序 程序库系统程序库系统 支持需求分析

7、、设计、实现、测试和支持管理的软支持需求分析、设计、实现、测试和支持管理的软件件o 应用软件应用软件 商业数据处理软件商业数据处理软件 工程与科学计算软件工程与科学计算软件 计算机辅助设计制造软件计算机辅助设计制造软件 系统仿真软件系统仿真软件 智能产品嵌入软件智能产品嵌入软件 医疗、制药软件医疗、制药软件 事务管理、办公自动化软件事务管理、办公自动化软件 计算机辅助教学软件计算机辅助教学软件 按软件规模进行划分:按软件规模进行划分:o 类别类别 参加人员数参加人员数 研制期限研制期限 源程序行数源程序行数 o 微型微型 1 1 1 14 4周周 0.5k 0.5k o 小型小型 1 1 1

8、16 6月月 1k1k2k2ko 中型中型 2 25 5 1 12 2年年 5k5k50k50ko 大型大型 5 52020 2 23 3年年 50k50k100k100ko 甚大型甚大型 1001001000 41000 45 5年年 1M(=1000k)1M(=1000k)o 极大型极大型 200020005000 55000 51010年年 1M1M10M10M 按软件服务对象的范围划分按软件服务对象的范围划分o 项目软件项目软件o 产品软件产品软件 某年某年Obfuscated C ContestObfuscated C Contest佳作佳作 #include #include lo

9、ng a=10000, b, c=2800, d, e, f2801, g;long a=10000, b, c=2800, d, e, f2801, g;main()main()for(;b-c;)fb+=a/5;for(;b-c;)fb+=a/5;for(;d=0,g=cfor(;d=0,g=c* *2;c-=14,printf(%.4d,e+d/a),e=d%a)2;c-=14,printf(%.4d,e+d/a),e=d%a)for(b=c;d+=fbfor(b=c;d+=fb* *a,fb=d%-g,d/=g-,-b;da,fb=d%-g,d/=g-,-b;d* *=b);=b);

10、难懂的难懂的C C代码:代码: 计算需求:软件必须适应新的计算环境或技术;计算需求:软件必须适应新的计算环境或技术; 业务要求:软件必须改善,以实现新的业务需求;业务要求:软件必须改善,以实现新的业务需求; 嵌入式需求:软件必须扩展,以满足和新一代系嵌入式需求:软件必须扩展,以满足和新一代系统或数据库之间的互操作性;统或数据库之间的互操作性; 架构需求:软件必须重新设计,使其在新的网络架构需求:软件必须重新设计,使其在新的网络环境是可用的。环境是可用的。v 项目超出预算项目超出预算v 项目超过计划完成时间项

11、目超过计划完成时间v 软件运行效率很低软件运行效率很低v 软件质量差软件质量差v 软件通常不符合要求软件通常不符合要求v 项目难以管理并且代码难以维护项目难以管理并且代码难以维护v 软件不能交付软件不能交付 客观:软件本身特点客观:软件本身特点o 逻辑部件逻辑部件o 规模庞大规模庞大 主观:不正确的开发方法主观:不正确的开发方法o 忽视需求分析忽视需求分析o 错误认为:软件开发错误认为:软件开发= =程序编写程序编写o 轻视软件维护轻视软件维护 缓解软件危机? 软件工程!软件工程! 对计算机软件有一个正确的认识:对计算机软件有一个正确的认识: ( (软件软件 程序)程序) 必须充分认识到软件开

12、发不是某种个体劳动的神必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。类人员协同配合、共同完成的工程项目。 推广使用在实践中总结出来的开发软件的成功技推广使用在实践中总结出来的开发软件的成功技术和方法。开发和使用更好的软件工具。术和方法。开发和使用更好的软件工具。软件工程的目标是在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应力强、可移动、可重用的软件IEEE计算机协会将软件工程定义为:(1)应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即,

13、将工程应用到软件。(2)对(1)中各种方法的研究。过程贯穿软件开发的各个环节,在各环节之间建立里程碑; 管理者在软件工程过程中对软件开发的质量、进度、成本进行评估、管理和控制; 技术人员采用相应的方法和工具生成软件工程产品(模型、文档、数据、报告、表格等)。软件工程方法是完成软件工程项目的技术手段。它支持项目计划和估算、系统和软件需求分析、设计、编程、测试和维护。软件工程方法依赖一组原则,它贯穿软件工程的各个环节。软件工程方法分两类:结构化方法和面向对象方法。它为软件工程的过程和方法提供自动化或半自动化的工具支持。 将若干工具集成起来,与软件工程数据库和计算机系统构成一个支持软件开发的系统称“

14、计算机辅助软件工程(CASE)”,系统中某一工具的信息加工结果可以作为另一工具的输入。 集成的软件工程工具再加上人的因素构成了软件工程环境。 B. W. Boehm B. W. Boehm于于19831983年总结了开发软件的经验,提出了软件工程的年总结了开发软件的经验,提出了软件工程的7 7条基本原则。这条基本原则。这7 7条原则被认为是确保软件产品质量和开发效率的原条原则被认为是确保软件产品质量和开发效率的原则的最小集合,又是相互独立、缺一不可、相当完备的最小集合。则的最小集合,又是相互独立、缺一不可、相当完备的最小集合。 使用阶段性生命周期计划的管理使用阶段性生命周期计划的管理 进行连续

15、的验证进行连续的验证 保证严格的产品控制保证严格的产品控制 使用现代编程工具使用现代编程工具/ /工程实践工程实践 保持清晰的责任分配保持清晰的责任分配 用更好更少的人用更好更少的人1.1.保持过程改进保持过程改进 计算机工程计算机工程 计算机科学计算机科学 管理学管理学 数学数学 项目管理项目管理 质量科学质量科学 软件工程学软件工程学 系统工程系统工程 。软件工程软件工程计算机科学计算机科学目标目标在时间、资源、人员这在时间、资源、人员这3 3个主要限制条件下构个主要限制条件下构建满足用户需求的软件系统建满足用户需求的软件系统探索正确的计算和建模方法,探索正确的计算和建模方法,从而改进计算

16、方法本身从而改进计算方法本身产品产品软件(比如办公包和编译器)软件(比如办公包和编译器)算法(比如希尔排序法)和抽算法(比如希尔排序法)和抽象的问题(比如哲学家进餐问象的问题(比如哲学家进餐问题)题)进度与时间表进度与时间表软件项目都有特定的进度与时间表软件项目都有特定的进度与时间表研究项目一般不具有设置的进研究项目一般不具有设置的进度与时间表度与时间表关注点关注点软件工程关注如何为用户实现价值软件工程关注如何为用户实现价值软件理论关注的是软件本身运软件理论关注的是软件本身运行的原理,比如时间复杂度,行的原理,比如时间复杂度,空间复杂度,和算法的正确性空间复杂度,和算法的正确性变化程度变化程度

17、随着技术和用户需求的不断变化,软件开发随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的人员必须时刻调整自己的开发以适应当前的需求。同时软件工程本身也处于不断的发展需求。同时软件工程本身也处于不断的发展中中对于某一种特定问题的正确解对于某一种特定问题的正确解决方法将永远不会改变决方法将永远不会改变需要的其他知需要的其他知识识相关领域的知识相关领域的知识数学数学 M M 代表误解,代表误解,R R 代表现实。代表现实。 管理方面的误解管理方面的误解: :o M1: M1: 我们已经有一本关于软件生产的标准和过程的书,这还不能让我们我们已经有一本关于软件生产的标准和过程的

18、书,这还不能让我们学习到需要的知识吗?学习到需要的知识吗?o R1: R1: 相比最新的大型主机,工作站和相比最新的大型主机,工作站和PCPC,这会使我们在做高质量软件开,这会使我们在做高质量软件开发时花费更多时间。发时花费更多时间。o M2: M2: 如果我们项目进度落后了,可以加入更多的程序员来赶进度。如果我们项目进度落后了,可以加入更多的程序员来赶进度。o R2: R2: 软件开发的机制和手工作业不一样。在一个延迟了的软件项目中加入软件开发的机制和手工作业不一样。在一个延迟了的软件项目中加入新的开发人员只会让它延迟更多。新的开发人员只会让它延迟更多。o M3: M3: 如果我们将软件项目

19、外包给第三方,我们就轻松了,让那个公司去如果我们将软件项目外包给第三方,我们就轻松了,让那个公司去完成它吧。完成它吧。o R3: R3: 如果组织管理方不懂得如何从内部管理和控制软件项目,即使将项目如果组织管理方不懂得如何从内部管理和控制软件项目,即使将项目外包也无济于事。外包也无济于事。 客户客户: : 由于用户不正确的期望,最后导由于用户不正确的期望,最后导致对开发人员的不满。致对开发人员的不满。o M1: M1: 对目标的一般陈述就足以开始编程,我们可以今对目标的一般陈述就足以开始编程,我们可以今后再补充细节。后再补充细节。o R1: R1: 前期糟糕的项目需求定义,是导致软件失败的主要

20、前期糟糕的项目需求定义,是导致软件失败的主要原因。原因。o R2: R2: 项目需求的确在不断变化,但变化所产生的影响是项目需求的确在不断变化,但变化所产生的影响是根据变化提出的时间不同而不同的。根据变化提出的时间不同而不同的。 实践者实践者: : 软件从业者积累了软件从业者积累了50 50 年的编程文年的编程文化。在早期的软件开发中,编程被视为一化。在早期的软件开发中,编程被视为一种艺术形式。种艺术形式。o M1: M1: 一旦我们编程完毕并成功运行,我们的工作就结束了。一旦我们编程完毕并成功运行,我们的工作就结束了。o R1: “R1: “越早开始写代码,我们就会花费越长的时间去完成它越早

21、开始写代码,我们就会花费越长的时间去完成它”。工。工业数据显示,软件开发业数据显示,软件开发60%-80%60%-80%的精力将耗费在软件首次提交给的精力将耗费在软件首次提交给用户以后。用户以后。o M2: M2: 当我的程序运行之前,我没有办法评估它的质量。当我的程序运行之前,我没有办法评估它的质量。o R2: R2: 一个最有效的软件质量保证机制应当在项目的正式开始启动一个最有效的软件质量保证机制应当在项目的正式开始启动时时可以通过技术报告体现。可以通过技术报告体现。o M3: M3: 唯一可交付的工作成果是一个成功运行的项目程序。唯一可交付的工作成果是一个成功运行的项目程序。o R3: R3: 一个可运行的程序只是软件结构的一部分,它还包含了许多一个可运行的程序只是软件结构的一部分,它还包含了许多其它因素。其它因素。o M4: M4: 软件工程将会让我们去创建大量不必要的文档,并且总是使软件工程将会让我们去创建大量不必要的文档,并且总是使我们的进度放慢。软件工程仅仅是文档而已。我们的进度放慢。软件工程仅仅是文档而已。o R4: R4: 软件工程并不是创建文档,而是创建质量。更好的质量减少软件工程并不是创建文档,而是创建质量。更好的质量减少返工的概率。更少返工会让项目更早交付。所有的文档都是提高返工的概率。更少返工

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论