se01软件工程学概述_第1页
se01软件工程学概述_第2页
se01软件工程学概述_第3页
se01软件工程学概述_第4页
se01软件工程学概述_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

1、 教材:软件工程(第教材:软件工程(第3版)版) 张海藩编著,人民邮电出版社张海藩编著,人民邮电出版社 学学 时:时: 32 机机 时:时: 授授 课:课: 肖宁肖宁 2011,9 2011,10 Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有2主要参考书目软件工程导论(第四版)软件工程导论(第四版)张海藩编张海藩编著,清华大学出版社,著,清华大学出版社,2003

2、年年12月,月,曾荣获全国普通高等学校工科电子类专曾荣获全国普通高等学校工科电子类专业优秀教材二等奖、一等奖业优秀教材二等奖、一等奖软件工程软件工程杨文龙,姚淑珍等编著,杨文龙,姚淑珍等编著,电子工业出版社(高等学校规划教材)电子工业出版社(高等学校规划教材)(以上为曾用教材)(以上为曾用教材)Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有3软件工程软件工程(原书第(原书第6版)版)(英)(英)Ian Sommerville著,程一剑等译,机械工业出著,程一剑等译,机械工业出版社,版社,2005年年9

3、月月 清华、北理工等多所院校采用清华、北理工等多所院校采用 英文版被加利福尼亚大学伯克利分校、南加州大英文版被加利福尼亚大学伯克利分校、南加州大学学 、台湾大学等多所世界大学采用、台湾大学等多所世界大学采用 较为经典的世界名著,内容结构较新,内容较为较为经典的世界名著,内容结构较新,内容较为详实详实软件工程软件工程(英)(英)Ian Sommerville著,机著,机械工业出版社械工业出版社 已出至第已出至第8版(核心内容第版(核心内容第6版已包括版已包括实用软件工程实用软件工程郑人杰,殷人昆等,清华郑人杰,殷人昆等,清华大学出版社大学出版社 比较经典的传统教材比较经典的传统教材Copyrig

4、ht 2007 by 肖宁, Shanxi University of Finance & Economics版权所有4软件工程实践者之路(第软件工程实践者之路(第6版)版)(英文(英文影印)(美)影印)(美)Roger S.Pressman(普雷斯曼)(普雷斯曼),清华大学出版社,清华大学出版社,2006年年6月月软件工程:实际者的研究方法(原书第软件工程:实际者的研究方法(原书第6版)版)(美)(美)Roger S.Pressman,郑人杰,郑人杰等译,机械工业出版社,等译,机械工业出版社,2007年年1月月 较为经典的世界名著,注重方法,有较新的较为经典的世界名著,注重方法,有较

5、新的Web工程开发方法、较新的项目管理方法等,内容较工程开发方法、较新的项目管理方法等,内容较新且详实新且详实 清华、浙大等众多院校采用清华、浙大等众多院校采用 Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有5软件工程应用实践教程软件工程应用实践教程吴洁明,袁吴洁明,袁山龙编著,清华大学出版社,山龙编著,清华大学出版社,2003 有一些具体案例贯穿有一些具体案例贯穿实用软件工程实用软件工程(澳)(澳)Leszek A.Machizszek等著,胡长军等译,机等著,胡长军等译,机械工业出版社,械工业出版

6、社,2007年年1月月 注重实用和案例注重实用和案例Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有6面向对象与传统软件工程:统一过程面向对象与传统软件工程:统一过程的理论与实践(原书第的理论与实践(原书第6版)版) 美美Stephen R. Schach著韩松等译,机著韩松等译,机械工业出版社,械工业出版社,2006 从全新的面向对象角度书写,抛开了传统的从全新的面向对象角度书写,抛开了传统的一些方法一些方法UML基础与基础与Rose建模案例建模案例吴建等编吴建等编著,人民邮电出版社,著,人民邮电出版

7、社,2004UML基础、案例与应用(第三版)基础、案例与应用(第三版)(美)(美)Joseph Schmuller著,李虎等译,著,李虎等译,人民邮电出版社,人民邮电出版社,2004Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有7人月神话人月神话Frederick P. Brooks,Jr.中、英文版非技术,有关人员管理,用人方法等世界经典名著(至今有人奉为圣经)人件人件非技术,有关人员管理,用人方法等Copyright 2007 by 肖宁, Shanxi University of Finance

8、 & Economics版权所有8Software Craftsmanship(即软件工艺(英文版)(美)Pete McBreen ,人民邮电出版社 软件工艺软件工艺(美)麦克布林 著,熊节 译 ,人民邮电出版社,2004年5月 另一角度,注重“软件编写者的能力” ,对软件工程的另一种思考Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有9主要教学内容软件生命周期各阶段的任务、过程、结构化方法和工具;面向对象方法学、面向对象分析、设计和实现;软件项目管理;软件工程使用的管理技术,UML及Rose建

9、模工具。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有10学习方法看书实践跟前辈学习Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有11成绩评定作业考勤期中、期末考试12第一章第一章 软件工程学概述软件工程学概述什么是软件什么是软件软件危机软件危机软件工程软件工程软件生命周期软件生命周期软件过程软件过程软件开发方法简述软件开发方法简述软件工程最新发展动向软件工程最新发展动向软件工程相关的技术规范和标准软件工程相

10、关的技术规范和标准我国软件业的现状我国软件业的现状国外软件开发模式介绍国外软件开发模式介绍Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有13 计算机软件已经成为一种驱动力。它是进行商业决策的引擎;它是现代科学研究和工程问题寻求解答的基础;它也是鉴别现代产品和服务的关键因素。它被嵌入在各种类型的系统中:交通、医疗、电信、军事、工业生产过程、娱乐、办公、难以穷举。软件在现代社会中确实是必不可少的。而且我们进入21世纪,软件将成为从基础教育到基因工程的所有领域新进展的驱动器。Copyright 2007 b

11、y 肖宁, Shanxi University of Finance & Economics版权所有14Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有151983年IEEE为软件下的定义: 计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。(方法和规则通常在文档中说明并在程序中实现)Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有16Copyright 2007 by 肖宁,

12、Shanxi University of Finance & Economics版权所有17Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有18Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有19Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有20软件的分类Copyright 2007 by 肖宁, Shanxi

13、University of Finance & Economics版权所有21软件的分类Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有22软件的分类Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有23软件的分类 1 14周 0.5k 1 16月 1k2k 数值计算或数据处理,通常没有与其它程序的接口。需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。 25 12年 5k5

14、0k 软件人员之间、与用户之间的联系、协调的配合关系。因而计划、资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。系统的软件工程方法是完全必要的。软件的分类 520 23年年 50k100k 编译程序、小型分时系统、实时控制系统等。二级编译程序、小型分时系统、实时控制系统等。二级管理,若干小组,每组管理,若干小组,每组5人以下。人员调整往往不可人以下。人员调整往往不可避免,新手的培训。采用统一的标准,实行严格的避免,新手的培训。采用统一的标准,实行严格的审查是绝对必要的。审查是绝对必要的。 1001000 45年年 1M(=1000k) 若干个子项目,每一个子项目都是一个大型软件。若

15、干个子项目,每一个子项目都是一个大型软件。子项目之间具有复杂的接口。如远程通信系统、多子项目之间具有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类军事指挥系统通常现有这样的规模。很显然,这类问题没有软件工问题没有软件工程方法的支持,它的开发工作是不程方法的支持,它的开发工作是不可想象的。可想象的。 20005000 510年年 1M10M 军事指挥、弹道导弹防御系统。军事指挥、弹道导弹防御系统。 只是对软件工程技术依赖的程度不同而已。只是对软件工程技术依赖的程度不同而已。Copy

16、right 2007 by 肖宁, Shanxi University of Finance & Economics版权所有25软件的分类Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有26软件的分类 软件的发展历史软件的发展历史 早期早期 第二阶段第二阶段 第三阶段第三阶段 第四第四阶段阶段面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌面系统强大的桌面系统有限的分布有限的分布 实时实时 嵌入嵌入“智能智能” ” 面向对象技面向对象技术术自定义软件自定义软件 数据库数据库 低

17、成本硬件低成本硬件 专家系专家系统 软件产品软件产品 消费者的影响 人工神经网络人工神经网络 并行计算并行计算 网络计算机网络计算机195019601970198019902000Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有28软件的角色软件在社会上扮演了双重角色 它本身是一种产品将计算机硬件的计算能力发挥出来同时,它也是一种传递产品的工具 软件传递了我们这个时代最重要的产品: 信息Copyright 2007 by 肖宁, Shanxi University of Finance & Ec

18、onomics版权所有29软件危机软件危机 软件业发展困难重重,同时也在飞速发展。发展快的东西问题就最多。软件危机是指在计算机软件的开发和维护的过程中所遇到的一系列严重问题。软件危机包含的问题: 如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有的软件。几个小故事: 0.00美元帐单 海湾战争中的飞毛腿导弹Software Crisis !Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有30软件危机 美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5

19、000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。.这个项目的负责人这个项目的负责人F. D. BrooksF. D. Brooks事后总结了他在组织开事后总结了他在组织开发过程中的沉痛教训时说:发过程中的沉痛教训时说:“.“.正像一只逃亡的野正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。后无法逃脱灭顶的灾难。.程序设计工作正像这样程序设计工作正像这样一个泥潭,一个泥潭,.一批批程序员被迫

20、在泥潭中拼命挣一批批程序员被迫在泥潭中拼命挣扎,扎,.谁也没有料到问题竟会陷入这样的困谁也没有料到问题竟会陷入这样的困境境.”.”。IBM360IBM360操作系统的历史教训成为软件开发操作系统的历史教训成为软件开发项目的典型事例为人们所记取。项目的典型事例为人们所记取。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有31例例: :Windows9595有有10001000万行代码万行代码 Windows20002000有有50005000万行代码万行代码Exchange2000和和 Windows20

21、002000开发人员结构开发人员结构Exchange2000Windows20002000项目经理项目经理25人人约约250人人开发人员开发人员140人人约约1700人人测试人员测试人员350人人约约3200人人改正一个问题需付出的代价需求分析结构设计详细设计编码集成测试系统测试现场改正一个问题的估计费用改正一个问题估计的工作量20200200010005.02.50.050.5(美元)(人天)Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有33软件危机 项目没有被很好地理解;计划不周,最终导致进度拖延

22、。例例 在在20世纪世纪60年代后期,一位热情的年青工程师受命为一个自年代后期,一位热情的年青工程师受命为一个自动化制造应用项目动化制造应用项目“编写编写”计算机程序。选择他的理由非常简计算机程序。选择他的理由非常简单,因为在整个技术小组中他是唯一参加过计算机编程培训的人。单,因为在整个技术小组中他是唯一参加过计算机编程培训的人。这位工程师对汇编语言的这位工程师对汇编语言的IN和和OUT指令以及指令以及Fortran语言有所了解,语言有所了解,但是却根本不懂软件工程,更不要说项目进度安排和跟踪了。但是却根本不懂软件工程,更不要说项目进度安排和跟踪了。他的老板给了他一大堆相关的手册,以及需要做些

23、什么的口头描他的老板给了他一大堆相关的手册,以及需要做些什么的口头描述。年轻人被告知该项目必须在两个月之内完成。述。年轻人被告知该项目必须在两个月之内完成。他阅读了这些手册,想好了解决方法,就开始编写代码。两周后,他阅读了这些手册,想好了解决方法,就开始编写代码。两周后,老板将他叫到办公室询问项目进展情况。老板将他叫到办公室询问项目进展情况。问题出在哪里?问题出在哪里?Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有34软件危机“非常好”工程师以年轻人的热情回答道,“这个项目远比我想像的简单。我差不多已

24、经完成了75%的任务。老板笑了,说道:“真是太棒了”然后他嘱咐年轻人继续努力工作,准备好一周后再汇报一次工作进度。一周后老板将年轻人叫到办公室,问他说:“现在进度如何?”“一切顺利”年轻人回答说,“但是我遇到了一些小麻烦。我会排除这些困难,很快就可以回到正轨上来。”“你觉得在最后期限之前能否完成?”老板问道。“没有问题”工程师答道。“我差不多已经完成了90%”如果读者在软件领域中工作过几年,你一定可以将这个故事写完。毫不奇怪,年轻工程师在整个项目工期内始终停留在90%的进度上,(在别人的帮助下)直到交付期限之后一个月才做完。Copyright 2007 by 肖宁, Shanxi Univer

25、sity of Finance & Economics版权所有35软件危机人与人的人与人的交流交流比写程序困难得多。比写程序困难得多。Managers evaluate, track progress, .Programmers communicate to each otherMaintainers 没有充分的文档资料(documentation) Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有36软件危机 软件可靠性(reliability)缺少度量的标准,质量无法保证。 如何保证软件产品

26、的质量,是非常复杂困难如何保证软件产品的质量,是非常复杂困难的问题。特别对于规模庞大的软件,如:的问题。特别对于规模庞大的软件,如:The software supporting the American space shuttle consists of 3 million lines of code, including computers on the ground controlling the launch and the flight; there were one hundred thousand lines of code in the shuttle itself in 19

27、85.President Reagans proposed Strategic Defense Initiative (SDI) is estimated to require 10 to 100 million lines of code. Many computer scientists and software engineers continue to believe there is no way to write and test the software to guarantee adequate reliability.Copyright 2007 by 肖宁, Shanxi

28、University of Finance & Economics版权所有37软件危机Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有38软件神话管理神话负责软件的管理者像大多数其他行业的管理者一样,都有巨大的压力,要维持预算、保持进度,还要提高质量。就像溺水者抓住一根救命稻草,软件管理者常常抓住软件神话不放,这些神话能够缓解其压力的话(哪怕是暂时的)。神话神话1:我们已经有了关于建造软件的标准和规程的书籍,难道它们不能给人们提供所有它们需要知道的信息吗?现实:现实:不错,关于标准的书籍已经存在

29、,但真正使用它们了吗?软件实践者知道它们的存在吗?它们是否反映了现代软件工程实践?它们完备吗?它们对在保持关注质量的情况下改善交付时间是简便有效的吗?很多情况下,这些问题的答案是否定的。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有39软件神话管理神话神话神话2:我们已经有了很多很好的软件开发工具,而且,我们为它们配备了最新的计算机。现实:现实:计算机辅助软件工程(CASE)工具与硬件相对而言对于获得高质量和高生产率更为重要。神话神话3:如果我们已经落后于计划,可以增加更多的程序员赶上进度。现实:现实

30、:给一个已经延迟的软件项目增加人手只会使其更加延迟。神话神话4:如果我决定向第三方外包软件项目,我可以放松并让承包公司去建造它。现实:现实:如果一个机构不了解如何在内部管理和控制软件项目,当它外包软件项目时将总是处于挣扎的境地。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有40软件神话客户神话在许多情况下,客户相信关于软件的神话,因为负责软件开发的管理者和开发人员很少去纠正客户的错误理解。导致客户过高的期望值,并最终引起对开发人员的不满意。神话神话1:有了对目标的一般性描述就足以开始写程序了,我们可以

31、以后再补充细节。现实:现实:糟糕的系统定义是软件项目失败的主要原因。关于信息领域、功能、行为、性能、接口、设计约束及确认标准的形式化的、详细的描述是必要的。这些内容只有通过客户和开发者之间彻底地交流后才能确定。神话神话2:软件需求确实是经常变更的,但这些变更能够很容易地满足,因为软件是灵活的。现实:现实:软件需求确实是变更的,但这些变更产生的影响会随着其被引入的时间而不同的。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有41软件神话实践者神话在软件的早期阶段,程序设计被看成是一门艺术。神话神话1:一旦

32、我们写出了程序并使其正常运行,我们的工作就结束了。现实:现实:越早开始写代码,就要花越长的时间才能完成它。研究表明在一鼐软件上所投入的60%到80%的工作量是花费在软件第一次交付客户之后。神话神话2:在程序真正运行之前,没有办法评估其质量。现实:现实:从项目一开始就可以应用的最有效的软件质量保证机制之一是正式的技术评审。神话神话3:一个成功项目唯一应该提交的就是运行程序。现实:现实:运行程序仅是软件配置的一部分,软件配置包括很多东西。神话神话4:软件工程将使我们创建大量的、不必要的文档,并总是延缓我们的进度。现实:现实:软件工程并不是为创建文档,而是为了创建质量。Copyright 2007

33、by 肖宁, Shanxi University of Finance & Economics版权所有42软件工程软件工程人们对软件生产提出了许多疑问: 为什么需要那么长的时间才能完成软件开发。 为什么开发成本如此高 为什么我们不能在把软件提交客户之前就发现所有的错误 为什么在软件开发过程总是难以度量其进展造成以上问题的原因主要是: 软件行业发展的速度太快,对经验总结不足 人们对自身处理能力的认识不清解决的方法: 多实践,积累成功和失败的案例 总结、思考、提取经验 建立软件的模型和模式Copyright 2007 by 肖宁, Shanxi University of Finance

34、& Economics版权所有43软件工程解决问题的想法:解决问题的想法: Better management Different team organizations Better languages & tools Uniform coding conventions 必须意识到:必须意识到:“软件软件” 编程,它有自己编程,它有自己的的生命周期生命周期 (life cycle)。大型软件系统的开发大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。船等的开发是同理的。Copyright 2007 by 肖宁,

35、Shanxi University of Finance & Economics版权所有44软件工程定义“软件工程软件工程”(Software Engineering)NATO Conference , Garmisch , Germany , 1968.1968年由年由NATO (北大西洋公约组织北大西洋公约组织)在德国在德国Garmish召开的学术召开的学术会议上,会议上,Feitz Bauer首先提出了首先提出了“软件工程软件工程”概念。概念。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所

36、有45软件工程定义Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有46软件工程定义Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有47软件工程要素Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有48软件工程 一种层次化技术一种层次化技术工具工具方法方法过程过程质量焦点质量焦点Software engineering lay

37、ersCopyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有49软件工程原理软件工程原理(P7) 用分阶段的生命周期计划严格管理 项目概要计划项目概要计划 里程碑计划里程碑计划 项目控制计划项目控制计划 产品产品控制计划控制计划 验证计划验证计划 运行维护计划运行维护计划 坚持进行阶段评审 实行严格的产品控制基准配置管理(Baseline configuration management) 采用现代程序设计技术 结果应能清楚地审查 set standards 开发小组的成员应该少而精1+1 2 承认不断改进软

38、件工程实践的必要性Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有50软件工程是一门交叉学科软件工程是一门交叉学科软件工程的主要研究内容u软件开发技术软件开发技术: :软件开发方法学软件开发方法学 软件开发过程软件开发过程 软件工具和软件工程环境软件工具和软件工程环境 u软件工程管理软件工程管理: :软件管理学软件管理学 软件经济学软件经济学 软件心理学软件心理学 软件工程所包含的内容不是一成不变的,软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。随着人们对软件系统的研制开

39、发和生产的理解。应用发展的眼光看待它。应用发展的眼光看待它。软件工程框架可可用用性性性性性性确确正正合合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工程的管理重视软件工程的管理基基本本过过程程原则原则 目标目标 过过 程程支支持持过过程程组组织织过过程程Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有52软件工程与一般工程的差异软件工程与一般工程的差异u软件是逻辑产品而不是实物产品软件是逻辑产品而不是实物产品u软件的功能依赖

40、于硬件和软件的运行环软件的功能依赖于硬件和软件的运行环境以及人们对它的操作境以及人们对它的操作u软件设计的复杂性软件设计的复杂性u软件特征:软件特征: 功能的多样性功能的多样性 实现的多样性实现的多样性 能见度低能见度低 软件结构合理性差软件结构合理性差u智力密集及知识产权保护智力密集及知识产权保护Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有53软件工程知识结构软件工程知识结构Copyright 2007 by 肖宁, Shanxi University of Finance & Econo

41、mics版权所有54软件工程知识结构软件工程知识结构Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有55“软件工程软件工程”课程课程 Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有56“软件工程”课程教学与实践的目标u转变对软件的认识:转变对软件的认识: 上升上升 程序程序 u 转变思维定式:转变思维定式: 上升上升 程序员程序员 工程化训练工程化训练系统系统系统工程师系统工程师(系统分析员系统分析员)Copy

42、right 2007 by 肖宁, Shanxi University of Finance & Economics版权所有57用户用户分析员分析员程序员程序员系统分析员的地位Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有58“一个好的工业,应有一套良好的标准来配套”软件的工业化生产过程应具备的特点:软件的工业化生产过程应具备的特点:明确的工作步骤明确的工作步骤详细具体的规范化文档详细具体的规范化文档明确的质量评价标准明确的质量评价标准Copyright 2007 by 肖宁, Shanxi

43、University of Finance & Economics版权所有59软件产品的标准化软件产品的标准化软件开发过程的标准化软件开发过程的标准化Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有60软件工程技术的两个明显特点:u 强调规范化强调规范化u 强调文档化强调文档化Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有61Copyright 2007 by 肖宁, Shanxi University

44、 of Finance & Economics版权所有62Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有63我国国家标准我国国家标准计算机软件开发规范计算机软件开发规范(GB8566-88)也把软件生命周期分为)也把软件生命周期分为8个阶段:个阶段:可行性研究与计划可行性研究与计划,概要设概要设计计,详细设计详细设计,实现实现,组装测试组装测试,确认确认测试测试,使用使用和和维护维护。Copyright 2007 by 肖宁, Shanxi University of Finance &

45、; Economics版权所有64软件工程的传统途径瀑布模型Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有65Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有66Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有67Copyright 2007 by 肖宁, Shanxi University of Finance &am

46、p; Economics版权所有68Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有69Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有70Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有71技术审查和管理审查任务:发现技术方面的错误,监督项目任务:发现技术方面的错误,监督项目进度、经费开支、投资回收的前景等。进度、经费开

47、支、投资回收的前景等。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有72阶段阶段关键问题关键问题结束标准结束标准问题定问题定义义问 题 是 什 么问 题 是 什 么?关于规模和目标的报关于规模和目标的报告书告书可行性可行性研究研究有 可 行 的 解有 可 行 的 解吗?吗?系统的高层逻辑模型系统的高层逻辑模型(系统系统流程图)流程图)数据流图数据流图成本成本/效益分析效益分析需求分需求分析析系 统 必 须 做系 统 必 须 做什么?什么?系统的逻辑模型系统的逻辑模型数据流图数据流图数据字典数据字典算法

48、描述算法描述 Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有73阶段阶段关键问题关键问题结束标准结束标准总体设计总体设计概括地说,应该概括地说,应该如何解决这个问如何解决这个问题?题?可能的解法:可能的解法: 系统流程图系统流程图 成本成本/效益分析效益分析推荐的系统结构;推荐的系统结构; 层次图或结构图层次图或结构图详细设计详细设计怎样具体地实现怎样具体地实现这个系统?这个系统?编码规格说明:编码规格说明: HIPO图或图或PDL编码和单编码和单元测试元测试正确的程序模块正确的程序模块源程序清单;单

49、元测试方源程序清单;单元测试方案和结果案和结果综合测试综合测试符合要求的软件符合要求的软件综合测试方案和结果;完综合测试方案和结果;完整一致的软件配置整一致的软件配置维护维护持久地满足用户持久地满足用户需要的软件需要的软件完整准确的维护记录完整准确的维护记录Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有74软件生存期模型Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有75传统瀑布模型(课本P16图2.1)Cop

50、yright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有76瀑布模型的特点 顺序性、依赖性顺序性、依赖性 推迟程序的物理实现推迟程序的物理实现 质量保证的观点质量保证的观点 阶段文档与阶段文档与评审的要求,利于尽早发现错误。评审的要求,利于尽早发现错误。易于组织,易于管理易于组织,易于管理缺点?缺点?需求变化后引起的代价将很高需求变化后引起的代价将很高Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有77实际的瀑布模型是带“反馈

51、环”的,如右图所示(图中实线箭头表示开发过程,虚线箭头表示维护过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面阶段的任务。图图 实际的瀑布模型实际的瀑布模型Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有78Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有79Copyright 2007 by 肖宁, Shanxi University of

52、 Finance & Economics版权所有80快速原型模型快速原型模型 所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。 快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。 通常,用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用。 一旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件可以满足用户的真实需求。Copyright 2007 by 肖宁,

53、 Shanxi University of Finance & Economics版权所有81原型模型(快速成型模型)(快速成型模型)建造建造/ /修改修改 原型原型用户测试用户测试运行原型运行原型 听取用听取用 户意见户意见 原型范型原型范型采用原型模型的软件生存周期分析定义分析定义系统需求系统需求生成生成原型原型系统系统设计设计程序程序设计设计编码编码测试测试运运 行行和维护和维护原型化原型化含原型化的含原型化的软件生存期软件生存期Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有83课本18

54、页图2.3Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有84 快速原型的本质是快速原型的本质是“快速快速”。开发人员应该尽。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃。需求,一旦需求确定了,原型将被抛弃。Copyright 2007 by 肖宁, Shanxi University of Finance & Eco

55、nomics版权所有85增量模型(递增模型) 先完成一个系统子集的开先完成一个系统子集的开发,再按同样的开发步骤增加发,再按同样的开发步骤增加功能功能 ( (系统子集系统子集),),如此递增下如此递增下去直至满足全部系统需求。去直至满足全部系统需求。 系统的总体设计在初始子集设系统的总体设计在初始子集设计阶段就应作出设想。计阶段就应作出设想。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有86图2.4增量模型风险更大的增量模型分析分析 设计设计 编码编码测试测试 分析分析 设计设计 编码编码测试测试 分

56、析分析 设计设计 编码编码测试测试 分析分析 设计设计 编码编码测试测试 增量增量1 1增量增量2 2增量增量3 3增量增量n n 增量增量1 1交付客户交付客户 增量增量2 2交付客户交付客户 增量增量3 3交付客户交付客户 增量增量n n交付客户交付客户日历时间日历时间.Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有88 软件开发几乎总要冒一定风险,因此,在软件开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的危害。 螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这

57、种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型,如图2.6所示。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有89图2.6 简化的螺旋模型Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有90Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有91Copyright 2007 by 肖宁, S

58、hanxi University of Finance & Economics版权所有92喷泉模型喷泉模型 迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化范型中更常见。图2.8所示的喷泉模型是典型的面向对象生命周期模型。 “喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有93喷泉模型主要用于支持面向对象开发过程体现了软主要用于支持面向对象开发过程

59、体现了软件创建所固有的迭代和无间隙的特征件创建所固有的迭代和无间隙的特征Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有94进一步开发进一步开发实现和集成阶段实现和集成阶段运行状态运行状态实现阶段实现阶段面向对象设计阶段面向对象设计阶段计划阶段计划阶段面向对象分析阶段面向对象分析阶段需求阶段需求阶段维护期维护期图2.8喷泉模型Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有95为避免使用喷泉模型开发软件时开发过程

60、过分无序,应该把一个线性过程(例如,快速原型模型或图2.8中的中心垂线)作为总目标。但是,同时也应该记住,面向对象范型本身要求经常对开发活动进行迭代或求精。Copyright 2007 by 肖宁, Shanxi University of Finance & Economics版权所有96可重用部件组装模型可重用部件组装模型使用重用技术的软件工程模型使用重用技术的软件工程模型构件构件(components):可重用的软可重用的软件成份件成份可复用性可复用性(Reusability) (可重用性)可重用性)集成化软件开发环境集成化软件开发环境(ISEE)Copyright 2007 b

61、y 肖宁, Shanxi University of Finance & Economics版权所有97可重用部件组装模型系统系统A A的的软件构成软件构成系统系统C C的的软件构成软件构成系统系统B B的的软件构成软件构成可重用可重用部部 件件 可重用可重用 部部 件件软件生产线应用构件应用构件提取车间提取车间 应用应用构件库构件库构件生构件生产车间产车间 构件库构件库组装组装车间车间领域领域 1 1领域领域 2 2应用应用系统系统 . .1 12 23 34 41 1基础构件,基础构件,2 2功能构件功能构件 3 3接口构件,接口构件,4 4用户界面构件用户界面构件 Copyright 2007 by 肖宁, Shanxi University of Finance & Eco

温馨提示

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

评论

0/150

提交评论