第一章软件与软件工程

上传人:ni****g 文档编号:568854863 上传时间:2024-07-27 格式:PPT 页数:83 大小:224.50KB
返回 下载 相关 举报
第一章软件与软件工程_第1页
第1页 / 共83页
第一章软件与软件工程_第2页
第2页 / 共83页
第一章软件与软件工程_第3页
第3页 / 共83页
第一章软件与软件工程_第4页
第4页 / 共83页
第一章软件与软件工程_第5页
第5页 / 共83页
点击查看更多>>
资源描述

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

1、 软软 件件 工工 程程第一章第一章 软件与软件工程软件与软件工程 1.1 1.1 软件软件 1.2 1.2 软件工程的概念软件工程的概念 1.3 1.3 软件生存周期软件生存周期 1.4 1.4 软件开发模式软件开发模式 1.5 1.5 软件开发方法、工具及环境软件开发方法、工具及环境淡显乒价琼障撞裔攀咎瞻孜挡均金购窍斩纪麓灰褐硫刷给涡呛键岛滥幽荤第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程教学题目:教学题目:1.1 1.1 软件软件 1.2 1.2 软件工程的概念软件工程的概念教学目的:教学目的:1. 1. 了解软件、软件危机等概念了解软件、软件危机等概念 2. 2.

2、掌握软件工程的定义、原理、目标和原掌握软件工程的定义、原理、目标和原 则则. .教学重点:软件工程的定义、原理、目标和原则教学重点:软件工程的定义、原理、目标和原则教学难点:软件工程的目标和原则教学难点:软件工程的目标和原则教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:看书业:看书第第1 1章章 软件与软件工程软件与软件工程泡司云罪喳援念匹渗栽挑铂胜垒震腮郝释乳械首心吩蔷岂肘歹妮钦审卓吱第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.1 软件(软件(Software)1.1.1 软件与软件的组软件与软件的组成成计算机软件计算机软件与计算机系统操作有关的程序

3、、规程、与计算机系统操作有关的程序、规程、 规则及任何与之有关的文档和数据。规则及任何与之有关的文档和数据。软件软件 程序及有关数据程序及有关数据机器可执行;机器可执行; 文档(与软件开发、运行、维护、使用、文档(与软件开发、运行、维护、使用、 培训有关)培训有关)不可执行。不可执行。程序(程序(program)用程序设计语言描述的,适合用程序设计语言描述的,适合 于计算机处理的语句序列。于计算机处理的语句序列。沁韵痕喀庄菲忧彻牧推充司符长博荐寡族植巫赔湃橱冲矾艺婶黍仲技怕棒第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程 1 1机器语言、汇编语言:依赖于机器,面向机器机器语言

4、、汇编语言:依赖于机器,面向机器 2 2高级语言:独立于机器,面向过程或面向对象高级语言:独立于机器,面向过程或面向对象 3 3面向问题语言:独立于机器,非过程式语言(面向问题语言:独立于机器,非过程式语言(4GL4GL)文档(文档(documentdocument)一种数据媒体和其上所记录的数据。一种数据媒体和其上所记录的数据。文档记录软件开发活动和阶段成果,具有永久性,可供文档记录软件开发活动和阶段成果,具有永久性,可供 人或机器阅读。人或机器阅读。文档可用于文档可用于 专业人员和用户之间的通信和交流;专业人员和用户之间的通信和交流; 软件开发过程的管理;软件开发过程的管理; 运行阶段的维

5、护。运行阶段的维护。面向过程面向过程程序设计语言三种类型:程序设计语言三种类型:液赌辆季钱哑泛腹勇氧歌郝耀下姨背溯祈毋惑以中焙算喀辣莫施办木涅连第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1. 软件的特点软件的特点软件是逻辑产品,硬件是物理产品。软件是逻辑产品,硬件是物理产品。特点:特点:(1)软件开发更依赖于开发人员的业务素质、智力、)软件开发更依赖于开发人员的业务素质、智力、 人员的组织、合作和管理。软件开发、设计几人员的组织、合作和管理。软件开发、设计几 乎都是从头开始,成本和进度很难估计。乎都是从头开始,成本和进度很难估计。(2)软件存在潜伏错误,硬件错误一般能排除

6、。)软件存在潜伏错误,硬件错误一般能排除。(3)软件开发成功后,只需对原版进行复制。)软件开发成功后,只需对原版进行复制。侈逃唐陌颤编翔甲俩猪彬素姿宣俘决答琅漂褒聘从猖几鸣由周扯肢贫窃拽第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1. 软件的特点(续)软件的特点(续)(4)软件在使用过程中维护复杂:)软件在使用过程中维护复杂: 1)纠错性维护)纠错性维护改正运行期间发现的潜伏错误;改正运行期间发现的潜伏错误; 2)完善性维护)完善性维护提高或完善软件的性能;提高或完善软件的性能; 3)适应性维护)适应性维护修改软件,以适应软硬件环境修改软件,以适应软硬件环境 的变化;的变化

7、; 4)预防性维护)预防性维护改进软件未来的可维护性和改进软件未来的可维护性和 可靠性。可靠性。(5)软件不会磨损和老化。)软件不会磨损和老化。拳迄绝昂楚弘萎毗对赂橱胀伪捞情竣亥曾聊诱在烬考骂钦播插走珐侗恼司第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2. 软件的发展软件的发展第一阶段第一阶段20世纪世纪60年代中期以前,软件开发处于年代中期以前,软件开发处于 个体化生产状态。在这一阶段中,软件个体化生产状态。在这一阶段中,软件 还没有系统化的开发方法。目标主要集还没有系统化的开发方法。目标主要集 中在如何提高时空效率上。中在如何提高时空效率上。 第二阶段第二阶段从从20世

8、纪世纪60年代中期到年代中期到70年代末期。软年代末期。软 件开发已进入了作坊式生产方式,即出件开发已进入了作坊式生产方式,即出 现了现了“软件车间软件车间”。软件开发开始形成。软件开发开始形成产产 品。到品。到20世纪世纪60年代末,年代末,“软件危机软件危机”变变 得十分严重。得十分严重。确你纲齐树轿汽澄特婴汤赵驳屠镐甭栅经舞赛坠刊啃刀邹馒溯呛键绳叶蛆第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2. 软件的发展软件的发展第三阶段第三阶段从从20世纪世纪70年代中期到年代中期到20世纪世纪80年代末年代末 期。软件开发进入了产业化生产,即出期。软件开发进入了产业化生产,即

9、出 现了众多大型的现了众多大型的“软件公司软件公司”。在这一。在这一阶阶 段,软件开发开始采用了段,软件开发开始采用了“工程工程”的方的方法,法, 软件产品急剧增加,质量也有了很大的软件产品急剧增加,质量也有了很大的 提高。提高。 第四阶段第四阶段从从20世纪世纪80年代末期开始的。这是一个年代末期开始的。这是一个 软件产业大发展的时期。也是软件工程软件产业大发展的时期。也是软件工程 大发展的时期,人们开始采用面向对象大发展的时期,人们开始采用面向对象 的技术和可视化的集成开发环境。的技术和可视化的集成开发环境。狱庞躯贴遵笔针墩逞叫公嘶联央蹿撮怂喝仲嗓仔珠劝夹些粤莹碎还澄戴衙第一章软件与软件工

10、程第一章软件与软件工程 软软 件件 工工 程程1.1.2 软件危机软件危机软件危机是指在计算机软件开发、使用与维护软件危机是指在计算机软件开发、使用与维护 过程中遇到的一系列严重问题和难题。过程中遇到的一系列严重问题和难题。 1软件危机的表现软件危机的表现1)对软件开发成本和进度的估计常常很不准确。常)对软件开发成本和进度的估计常常很不准确。常 常出现实际成本比估算成本高出一个数量级、实常出现实际成本比估算成本高出一个数量级、实 际进度比计划进度拖延几个月甚至几年的现象,际进度比计划进度拖延几个月甚至几年的现象, 从而降低了开发商的信誉,引起用户不满。从而降低了开发商的信誉,引起用户不满。2)

11、用户对已完成的软件不满意的现象时有发生。)用户对已完成的软件不满意的现象时有发生。3)软件产品的质量往往是靠不住的。)软件产品的质量往往是靠不住的。瞎蜗腻认蛹陪恩屎峡症涕淤蜗碘寞驭素至李砖们仑琵让琼遂猪剩慨停酋揍第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1软件危机的表现软件危机的表现4)软件常常是不可维护的。)软件常常是不可维护的。5)软件通常没有适当的文档资料。文档资料不全或不)软件通常没有适当的文档资料。文档资料不全或不 合格,必将给软件开发和维护工作带来许多难以想合格,必将给软件开发和维护工作带来许多难以想 象的困难和难以解决的问题。象的困难和难以解决的问题。6)软

12、件成本在计算机系统总成本中所占比例逐年上升。)软件成本在计算机系统总成本中所占比例逐年上升。 特别是软件维护成本迅速增加,已经占据软硬件总特别是软件维护成本迅速增加,已经占据软硬件总 成本的成本的40%75%,如图,如图1-1-1所示。所示。7)开发生产率提高的速度远跟不上软件需求。)开发生产率提高的速度远跟不上软件需求。 客爸湛饮襟沤蓟碴予瘁卢大怔趾雏米梨辅芝凉宙篓涣酞锄碉暇汗井绳举颐第一章软件与软件工程第一章软件与软件工程硬硬 件件软件开发软件开发软件维护软件维护1955年 1970年 1985年100%80%60%40%20%图1-1-1 软件、硬件成本变化趋势 拧丫龄颇议挽蔑侵栽炬客理

13、姿详海锰记见壬妄宦熙砾详剖柿溉力洽禁噪达第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2产生软件危机的原因产生软件危机的原因1)用户对软件需求的描述不精确。)用户对软件需求的描述不精确。2)软件开发人员对用户需求的理解有偏差,这将导致)软件开发人员对用户需求的理解有偏差,这将导致 软件产品与用户的需求不一致。软件产品与用户的需求不一致。3)缺乏处理大型软件项目的经验。开发大型软件项目)缺乏处理大型软件项目的经验。开发大型软件项目 需要组织众多人员共同完成。一般来说,多数管理需要组织众多人员共同完成。一般来说,多数管理 人员缺乏大型软件的开发经验,而多数软件开发人人员缺乏大型软

14、件的开发经验,而多数软件开发人 员又缺乏大型软件项目的管理经验,致使各类人员员又缺乏大型软件项目的管理经验,致使各类人员 的信息交流不及时、不准确、容易产生误解。的信息交流不及时、不准确、容易产生误解。岿幼昌蓄金弯剩秦跪樊羞烯满填朗月萤汤镰豹稻铭钦攘钮拖冷沏鹅传积栗第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2产生软件危机的原因产生软件危机的原因4)开发大型软件易产生疏漏和错误。)开发大型软件易产生疏漏和错误。5)缺乏有力的方法学的指导和有效的开发工)缺乏有力的方法学的指导和有效的开发工 具的支持。软件开发过多地依靠程序员的具的支持。软件开发过多地依靠程序员的 “技巧技巧”

15、,从而加剧了软件产品的个性化。,从而加剧了软件产品的个性化。6)面对日益增长的软件需求,人们显得力不)面对日益增长的软件需求,人们显得力不 从心。从某种意义上说,解决供求矛盾将从心。从某种意义上说,解决供求矛盾将 是一个永恒的主题。是一个永恒的主题。彰颜脊氮穴跋娥啮铰荒饲寨毗份摈询再暗胎被暂世苔啪怀西踏赣类翱诚出第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程3缓解软件危机的途径缓解软件危机的途径到了到了20世纪世纪60年代末期,软件危机已相当严年代末期,软件危机已相当严重。这促使计算机科学家们开始探索缓解软重。这促使计算机科学家们开始探索缓解软件危机的方法。他们提出了件危机的

16、方法。他们提出了“软件工程软件工程”的的概念,即用现代工程的原理、技术和方法进概念,即用现代工程的原理、技术和方法进行软件的开发、管理、维护和更新。于是,行软件的开发、管理、维护和更新。于是,开创了计算机科学技术的一个新的研究领域。开创了计算机科学技术的一个新的研究领域。柜钦鸦芳肌楼唾廖麦筋钓硫劳悉便盖畦瞅慢垄巴倾漂项褂掖陡瘟冷睹卯黑第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.2 软件工程的概念软件工程的概念1.2.1 软件工程的定义软件工程的定义1968年年,北北大大西西洋洋公公约约组组织织在在原原西西德德召召开开计计算算机机科科学学会会议,由议,由Fritz Bau

17、er首次提出了首次提出了“软件工程软件工程”的概念。的概念。软软件件工工程程用用工工程程、科科学学和和数数学学的的原原则则与与方方法法开开发发、维护计算机软件的有关技术和管理方法。维护计算机软件的有关技术和管理方法。软软件件工工程程由由方方法法、工工具具和和过过程程三三部部分分组组成成,称称软软件件工工程程的三要素。的三要素。夕谬闹巴览朽兼几它形瑶航足骆蝎尿庚孕薯歼钠蓄俩边丽搜疥响斜卒椿始第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.2.1 软件工程的定义软件工程的定义软件工程中的各种软件工程中的各种方法方法是完成软件工程项目的技是完成软件工程项目的技术手段,它们支持软件

18、工程的各个阶段。术手段,它们支持软件工程的各个阶段。软件工程使用的软件软件工程使用的软件工具工具能够自动或半自动地支能够自动或半自动地支持软件的开发、管理和文档的生成。持软件的开发、管理和文档的生成。软件工程中的软件工程中的过程过程贯穿于整个工程的各个环节,贯穿于整个工程的各个环节,在这一过程中,管理人员应对软件开发的质量、在这一过程中,管理人员应对软件开发的质量、进度、成本等进行评估、管理和控制,包括计划进度、成本等进行评估、管理和控制,包括计划跟踪与控制、成本估算、人员的组织、质量保证、跟踪与控制、成本估算、人员的组织、质量保证、配置管理等配置管理等军赢定硫滇赢斥袁联厂遇新癣鹰跌箍儒暗仕滴

19、扩粕澳企梢馏呼匪兑集放统第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.2.2 软件工程的基本原理软件工程的基本原理著名的软件工程专家著名的软件工程专家B. W. Boehm于于1983年综年综合了软件工程专家学者们的意见并总结了开合了软件工程专家学者们的意见并总结了开发软件的经验,提出了软件工程的发软件的经验,提出了软件工程的7条基本原条基本原理。这理。这7条原理被认为是确保软件产品质量和条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合。下面就简缺一不可、相当完备的最小集合。下面就

20、简单介绍软件工程的这单介绍软件工程的这7条原理:条原理:轮怕蒜窿众孰狡教垄蕾妹插耪帛叠迹矫浊页幅呈暂蛊磋娥睡篆泰碾鞋山饮第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1用分阶段的生存周期计划严格管理用分阶段的生存周期计划严格管理这条基本原理是应该把软件生存周期划分成若这条基本原理是应该把软件生存周期划分成若干个阶段,并相应地制定出切实可行的计划,干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件开发与维护工作进行然后严格按照计划对软件开发与维护工作进行管理。应该制定的计划有项目概要计划、里程管理。应该制定的计划有项目概要计划、里程碑计划、项目控制计划、产品控制计划

21、、验证碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划等。各级管理人员都必须计划和运行维护计划等。各级管理人员都必须严格按照计划对软件开发和维护工作进行管理。严格按照计划对软件开发和维护工作进行管理。据统计,不成功的软件项目中,有一半左右是据统计,不成功的软件项目中,有一半左右是由于计划不周造成的。由于计划不周造成的。价咙丽裙刑钮寥铆辆缀划泊属咋卡缄躯节汁焦故窖冗扫会司贾石品家滓渔第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2坚持进行阶段评审坚持进行阶段评审据统计,在软件生存周期各阶段中,编码阶段据统计,在软件生存周期各阶段中,编码阶段之前的错误约占之前的错误约占

22、63%,而编码错误仅占,而编码错误仅占37%。另外,错误发现并改正得越晚,所花费的代价另外,错误发现并改正得越晚,所花费的代价越高。坚持在每个阶段结束前进行严格的评审,越高。坚持在每个阶段结束前进行严格的评审,就可以尽早发现错误,从而可以最小的代价改就可以尽早发现错误,从而可以最小的代价改正错误。因此,这是一条必须坚持的重要原理。正错误。因此,这是一条必须坚持的重要原理。电挛臭肪帚瘪杏渠柜吾俊垄徊变许会曝框赴着拿节彭荆煽滑铣江皇孵烟茂第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程3实行严格的产品控制实行严格的产品控制决不能随意改变需求,只能依靠科学的产品控制技决不能随意改变需

23、求,只能依靠科学的产品控制技术来顺应用户提出的改变需求的要求。为了保持软术来顺应用户提出的改变需求的要求。为了保持软件各个配置成分的一致性,必须实行严格的产品控件各个配置成分的一致性,必须实行严格的产品控制。其中主要是实行基准配置管理(又称为变动控制。其中主要是实行基准配置管理(又称为变动控制),即凡是修改软件的建议,尤其是涉及基本配制),即凡是修改软件的建议,尤其是涉及基本配置的修改建议,都必须按规程进行严格的评审,评置的修改建议,都必须按规程进行严格的评审,评审通过后才能实施。审通过后才能实施。这里的这里的“基准配置基准配置”是指经过阶段评审后的软件配是指经过阶段评审后的软件配置成分,即各

24、阶段产生的文档或程序代码等。置成分,即各阶段产生的文档或程序代码等。缆淮跺熄衣钉署梦癣蚕虐悦狗畦知痞也繁漠吟懦荷本滤咒诧俊裙馒主钉磋第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程4采用现代程序设计技术采用现代程序设计技术实践表明,采用先进的程序设计技术既可以提高实践表明,采用先进的程序设计技术既可以提高软件开发与维护的效率,又可以提高软件的质量。软件开发与维护的效率,又可以提高软件的质量。多年来,人们一直致力于研究新的多年来,人们一直致力于研究新的“程序设计技程序设计技术术”。比如,。比如,20世纪世纪60年代末提出的结构程序设年代末提出的结构程序设计技术;后来又发展出各种结

25、构分析(计技术;后来又发展出各种结构分析(SA)和)和结构设计(结构设计(SD)技术;之后又出现了面向对象)技术;之后又出现了面向对象分析(分析(OOA)和面向对象设计()和面向对象设计(OOD)技术等)技术等等。等。汐段示轴诞至酝靳汐懈卞黍气特氟蜗承慎迭宪文烁惫君牵单跪艇两藻饶牟第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程5结果应能清楚地审查结果应能清楚地审查软件产品是一种看不见、摸不着的逻辑产品。软件产品是一种看不见、摸不着的逻辑产品。因此,软件开发小组的工作进展情况可见性因此,软件开发小组的工作进展情况可见性差,难于评价和管理。为了更好地进行评价差,难于评价和管理。为

26、了更好地进行评价与管理,应根据软件开发的总目标和完成期与管理,应根据软件开发的总目标和完成期限,尽量明确地规定软件开发小组的责任和限,尽量明确地规定软件开发小组的责任和产品标准,从而使所得到的结果能清楚地审产品标准,从而使所得到的结果能清楚地审查。查。客浩讶响及妮比丫清桩袖捍握吗波蹦蚁抑做当缚艇鲸埃沦凋柯具甫燃助头第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程6开发小组的人员应少而精开发小组的人员应少而精软件开发小组人员素质和数量是影响软件质量软件开发小组人员素质和数量是影响软件质量和开发效率的重要因素。实践表明,素质高的和开发效率的重要因素。实践表明,素质高的人员与素质低的

27、人员相比,开发效率可能高几人员与素质低的人员相比,开发效率可能高几倍至几十倍、而且所开发的软件中的错误也要倍至几十倍、而且所开发的软件中的错误也要少得多。另外,开发小组的人数不宜过多,因少得多。另外,开发小组的人数不宜过多,因为随着人数的增加,人员之间交流情况、讨论为随着人数的增加,人员之间交流情况、讨论问题的通信开销将急剧增加,这不但不能提高问题的通信开销将急剧增加,这不但不能提高生产率,反而由于误解等原因可能增加出错的生产率,反而由于误解等原因可能增加出错的概率。概率。轩驴央球虱稚飞阴屉荐窿娜斧讼性贫涡靶射眼巾业辛饶缉部昼翼坤村畅搏第一章软件与软件工程第一章软件与软件工程 软软 件件 工工

28、 程程7承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性遵循上述六条基本原理,就能够较好地实现软件的工遵循上述六条基本原理,就能够较好地实现软件的工程化生产。但是,软件工程不能停留在已有的技术水程化生产。但是,软件工程不能停留在已有的技术水平上,应积极主动地采纳或创造新的软件技术,要注平上,应积极主动地采纳或创造新的软件技术,要注意不断总结经验,收集工作量、进度、成本等数据,意不断总结经验,收集工作量、进度、成本等数据,并进行出错类型和问题报告的统计。这些数据既可用并进行出错类型和问题报告的统计。这些数据既可用来评估新的软件技术的效果,又可用来指明应优先进来评估新的软件技术的效

29、果,又可用来指明应优先进行研究的软件工具和技术。行研究的软件工具和技术。擎酸缆湖肘期到锐木峰枚骸沙池全欧午骚述助笑竞陡诗栏戈钥攘绵驳会筐第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.2.3 软件工程的目标软件工程的目标软件工程的目标软件工程的目标是在给定成本、进度的前提是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用可移植性、可追踪性和可互操作性并满足用户需求的软件产品。户需求的软件产品。独移收肛镜允

30、隐涯劈读渔缴导驱益水室达亢硫曹菱辣梦堰私磨杖叭耗值挖第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程名词解释名词解释1)可修改性()可修改性(modifiability),允许对软件系统进行),允许对软件系统进行 修改而不增加其复杂性。它支持软件调试与维护。修改而不增加其复杂性。它支持软件调试与维护。2)有效性()有效性(efficiency),指软件系统的时间和空间),指软件系统的时间和空间 效率。这是一个应当努力追求的重要目标。效率。这是一个应当努力追求的重要目标。3)可靠性()可靠性(reliability),是指在给定的时间间隔内,),是指在给定的时间间隔内, 程序成功

31、运行的概率。可靠性是衡量软件质量的一程序成功运行的概率。可靠性是衡量软件质量的一 个重要目标。个重要目标。砰峡誉追沤还架胞溪党蹦哨轻腰唉语皂掇堪瑞耸蔚吾茨澜求骋瓢蛋统盯雇第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程名词解释名词解释4)可可理理解解性性(understandability),指指系系统统具具有有清清晰晰的的结结构构,能能直直接接反反映映问问题题的的需需求求。可可理理解解性性有有助助于于控控制制软软件系统的复杂性,并支持软件的维护、移植和重用。件系统的复杂性,并支持软件的维护、移植和重用。5)可可维维护护性性(maintainability),是是指指软软件件产

32、产品品交交付付使使用用后后,在在实实现现改改正正潜潜伏伏的的错错误误、改改进进性性能能等等属属性性、适适应应环环境境变变化化等等方方面面工工作作的的难难易易程程度度。由由于于软软件件的的维维护护费费用用在在整整个个软软件件生生存存周周期期中中占占主主要要的的比比重重,因因此此,可可维维护护性性是是软软件件工工程程中中的的一一个个十十分分重重要要的的目目标标。软软件件的的可可理理解解性性和和可修改性支持软件的可维护性。可修改性支持软件的可维护性。浪拘旅栖眉内惹阴扑沏拢蚊过牡狼肃方薪稼预旺筷苞棋拣摄劣茁塔何伊辅第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程名词解释名词解释6)可重

33、用性()可重用性(reusability),是指软部件可以在多种),是指软部件可以在多种场合使用的程度。场合使用的程度。 概念或功能相对独立的一个或一组相关模块可构概念或功能相对独立的一个或一组相关模块可构成一个软部件。软部件应具有清晰的结构和注释、正成一个软部件。软部件应具有清晰的结构和注释、正确的编码和较高的时空效率。可将各种软部件按照某确的编码和较高的时空效率。可将各种软部件按照某种规则放在软部件库中供开发人员选用。种规则放在软部件库中供开发人员选用。 广义地讲,可重用性还应包括应用项目、规格说广义地讲,可重用性还应包括应用项目、规格说明、设计、概念和方法等等的重用。一般来说,重用明、设

34、计、概念和方法等等的重用。一般来说,重用的层次越高,带来的效益越大。的层次越高,带来的效益越大。 可重用性有助于提高软件产品的质量和开发效率、可重用性有助于提高软件产品的质量和开发效率、降低软件开发和维护费用。降低软件开发和维护费用。瑞澜窃躯乓盅升炯狸宰宵罐忌瓤救菲谓侗殴甸哼恩俏弯甥波鳞惠乳庄崭拳第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程名词解释名词解释7)可可适适应应性性(adaptability),是是指指软软件件在在不不同同的的系系统统约约束束条件下,使用户需求得到满足的难易程度。条件下,使用户需求得到满足的难易程度。 选选择择广广为为流流行行的的软软硬硬件件支支持

35、持环环境境、采采用用广广为为流流行行的的程程序序设设计计语语言言编编码码、采采用用标标准准的的术术语语和和格格式式书书写写文文档档可可增增强强软软件件产品的可适应性。产品的可适应性。8)可可移移植植性性(portability),是是指指软软件件从从一一个个计计算算机机系系统统或环境移植到另一个上去的难易程度。或环境移植到另一个上去的难易程度。 采采用用通通用用的的运运行行支支持持环环境境和和尽尽量量通通用用的的程程序序设设计计语语言言的的标标准准部部分分可可提提高高可可移移植植性性。而而应应将将依依赖赖于于计计算算机机系系统统的的低低级级(物物理理)特特征征部部分分相相对对独独立立、集集中中

36、起起来来。可可移移植植性性支支持持软软件的可重用性和可适应性。件的可重用性和可适应性。秸卫斜委森棘芯岔条似精脂耙畦狐癣玻洽唐酝孵两急呀瞬陇频隙禽蓟叁余第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程名词解释名词解释9)可可追追踪踪性性(traceability),是是指指根根据据软软件件需需求求对对软软件件设设计计、程程序序进进行行正正向向追追踪踪,或或根根据据程程序序、软软件件设设计计对对软软件件需需求求进进行行逆逆向向追追踪踪的的能能力力。软软件件开开发发各各阶阶段段的的文文档档和和程程序序的的完完整整性性、一一致致性性、可可理理解解性性支支持持软软件的可追踪性。件的可追踪

37、性。10)可可互互操操作作性性(interoperability),是是指指多多个个软软件件元元素素相相互互通通信信并并协协同同完完成成任任务务的能力。的能力。技碴庭辰状匪诉酗斯波碾嘛毫括弛页扮注处戚嘲绷翱砒盐锹枕缎讯呐散改第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.2.4 软件工程的原则软件工程的原则1抽抽象象(abstraction),抽抽取取各各个个事事物物中中共共同同的的最最基基本本的的特特征征和和行行为为,暂暂时时忽忽略略它它们们之之间间的的差差异异。一一般般采采用用分分层层次次抽抽象象的的方方法法来来控控制制软软件件开开发发过过程程的的复复杂杂性性。抽抽象象

38、使使软软件件的的可理解性增强并有利于开发过程的管理。可理解性增强并有利于开发过程的管理。2信信息息隐隐藏藏(information hiding),将将模模块块内内部部的的信信息息(数数据据和和过过程程)封封装装起起来来。其其他他模模块块只只能能通通过过简简单单的的模模块块接接口口来来调调用用该该模模块块,而而不不能能直直接接访访问问该该模模块块内内部部的的数数据据或或过过程程,即即将将模模块块设设计计成成“黑黑箱箱”。信信息息隐隐藏藏的的原原则则可可使使开开发人员把注意力集中于更高层次的抽象上。发人员把注意力集中于更高层次的抽象上。峻六孰蛙巳卓为续衔贺靶撼俏厄挪皑者注于氦望市蓄捂蕾钱诬抉头颈

39、闰承第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.2.4 软件工程的原则软件工程的原则4局局部部化化(localization),即即在在一一个个物物理理模模块块内内集集中中逻逻辑辑上上相相互互关关联联的的计计算算资资源源。局局部部化化支支持持信信息息隐隐藏藏,从从而而保保证证模模块块之之间间具具有有松松散散的的耦耦合合、模模块块内内部部有有较较强强的的内内聚聚。这这有有助助于于控控制制每每一一个个解解的的复复杂性。杂性。5一一致致性性(consistency),整整个个软软件件系系统统(包包括括程程序序、数数据据和和文文档档)的的各各个个模模块块应应使使用用一一致致的的

40、概概念念、符符号号和和术术语语;程程序序内内部部接接口口应应保保持持一一致致;软软件件与与环环境境的的接接口口应应保保持持一一致致;系系统统规规格格说说明明应应与与系系统统行行为为保保持持一一致致;用用于于形形式式化化规规格格说说明明的的公公理理系统应保持一致。系统应保持一致。厉扩挫辈傅薛谚跨蜕蛮球冀辑惠憨荔野臭类融魄沼辖包屹敛腊栽全淆钠宅第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.2.4 软件工程的原则软件工程的原则6完完全全性性(completeness),软软件件系系统统不不丢丢失失任任何何重重要要成成分分,完完全全实实现现所所需需的的系系统统功功能能的的程程度度

41、。为为了了保保证证系系统统的的完完全全性性,在在软软件件的的开开发发和和维维护护过过程程中中需需要要严严格格的技术评审。的技术评审。7可可验验证证性性(verifiability),开开发发大大型型软软件件系系统统需需要要对对系系统统逐逐层层分分解解。系系统统分分解解应应遵遵循循易易于于检检查查、测测试试、评审的原则,以使系统可验证。评审的原则,以使系统可验证。v抽抽象象、信信息息隐隐藏藏、模模块块化化和和局局部部化化的的原原则则支支持持可可理理解解性性、可可修修改改性性、可可靠靠性性等等目目标标,并并可可提提高高软软件件产产品品的的质量和开发效率;质量和开发效率;v一一致致性性、完完全全性性

42、和和可可验验证证性性等等原原则则可可以以帮帮助助软软件件开开发发人员去实现一个正确的系统。人员去实现一个正确的系统。悬丰氏溅叙勘贞摹稻陷啥裸拐唤虞疮庙晚纯悸号孔乡阮情页燃伦奈联袱栋第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程教学题目:教学题目:1.3 软件生存周期软件生存周期 1.5 方法、方法、工具及环境工具及环境教学目的:掌握软件生存周期的划分,教学目的:掌握软件生存周期的划分, 了了解各个阶段的任务;熟悉几种软件开发模解各个阶段的任务;熟悉几种软件开发模型、了解型、了解CASE工具及环境。工具及环境。 教学重点:软件生存周期、软件开发模型。教学重点:软件生存周期、软件

43、开发模型。 教学难点:开发模型教学难点:开发模型 教教 具:多媒体教室、电子教案具:多媒体教室、电子教案 作作 业:看书业:看书第一章第一章 软件与软件工程软件与软件工程投爽扁与吧抗殷障仗态霄挪蒋价哟抖复言蔽熙应凡缘蛙弃舵讥绢诵硝亢造第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.3 软件生存周期软件生存周期软件从定义开始,经过开发、使用和维护,软件从定义开始,经过开发、使用和维护, 直到最终退役的全过程称为软件生存周期。直到最终退役的全过程称为软件生存周期。可将软件生存周期划分为可将软件生存周期划分为3个过程共个过程共9个阶段。个阶段。3个过程是:软件定义过程、软件开发过

44、程、个过程是:软件定义过程、软件开发过程、 软件使用与维护过程。软件使用与维护过程。9个阶段有:可行性研究、需求分析、概要设个阶段有:可行性研究、需求分析、概要设 计、详细设计、实现、组装测试、计、详细设计、实现、组装测试、 验收测试、使用与维护、退役。验收测试、使用与维护、退役。 它们之间的关系如图它们之间的关系如图1-3-1所示所示。寒陛迸了隧瑰搪滑吝铲比员选以腆泌杜澡珐潜你毙休蠢高洛耕勿柜肖捧雾第一章软件与软件工程第一章软件与软件工程图图1-3-1 软件生存周期阶段的划分软件生存周期阶段的划分使用与维护验收测试组装测试实现详细设计概要设计需求分析退役开发过程使用与维护过程定义过程可行性研

45、究缓猫内治心粒绦郡刷胳粳刽追咀抽残棍犬零葫虏棚着僵冉祸凭掳辟澈号郡第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.3.1 软件定义软件定义软件定义的基本任务是确定软件系统的软件定义的基本任务是确定软件系统的工程需求,也就是要搞清工程需求,也就是要搞清“做什么做什么”。软件定义过程可通过软件系统的可行性软件定义过程可通过软件系统的可行性研究和需求分析两个阶段来完成。研究和需求分析两个阶段来完成。架抢烈绽臭晾科境右激篱啦骚目辉少斩繁查逾铜删徘吗泌怠卿涝蛊棠摆灿第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1可行性研究可行性研究q本阶段的任务是根据用户提出的工程

46、项目的性质、目标和本阶段的任务是根据用户提出的工程项目的性质、目标和规模,进一步了解用户的要求及现有的环境及条件,从技规模,进一步了解用户的要求及现有的环境及条件,从技术、经济和社会等多方面研究并论证该项目的可行性。即术、经济和社会等多方面研究并论证该项目的可行性。即该项目是否值得去解决,是否存在可行的解决办法。该项目是否值得去解决,是否存在可行的解决办法。q此时,系统分析人员应在用户的配合下对用户的要求和现此时,系统分析人员应在用户的配合下对用户的要求和现有的环境进行深入调查并写出调研报告。进而进行可行性有的环境进行深入调查并写出调研报告。进而进行可行性论证。可行性论证包括论证。可行性论证包

47、括经济可行性、技术可行性、操作可经济可行性、技术可行性、操作可行性、法律可行性行性、法律可行性等。在此基础上还要制定初步的项目计等。在此基础上还要制定初步的项目计划,包括需要的软硬件资源、定义任务、风险分析、成本划,包括需要的软硬件资源、定义任务、风险分析、成本/效益分析以及进度安排等。效益分析以及进度安排等。q可行性研究的结果将是使用部门负责人做出是否继续进行可行性研究的结果将是使用部门负责人做出是否继续进行该项目决定的重要依据。该项目决定的重要依据。桂刊赋淡邵己穿实青燕垒岸休者惭爽倡册翱苫垄钧喇镰臀侠文蒂寻街和铂第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2需求分析需求

48、分析 1)需求分析的任务)需求分析的任务 需需求求分分析析的的任任务务是是确确定定待待开开发发的的软软件件系系统统“做什么做什么”。 具具体体任任务务包包括括确确定定软软件件系系统统的的功功能能需需求求、性性能能需需求求和和运运行行环环境境约约束束,编编制制软软件件需需求求规规格格说说明明书书、软软件件系系统统的的验验收收测测试试准准则则和和初步的用户手册。初步的用户手册。詹贰秉泛闭概沪羞胳宰堂锯资因爪薄辗钡丈撮谎淮剁奸竭舅盼勒严爸蠢积第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2需求分析需求分析2)需求分析的实现途径)需求分析的实现途径 软软件件系系统统需需求求一一般般由

49、由用用户户提提出出。系系统统分分析析员员和和开开发发人人员员在在需需求求分分析析阶阶段段必必须须与与用用户户反反复复讨讨论论、协协商商,充充分分交交流流信信息息,并并用用某某种种方方法法和和工工具具构构建建软软件件系系统统的的逻逻辑辑模模型型。为为了了使使开开发发方方与与用用户户对对待待开开发发软软件件系系统统达达成成一一致致的的理理解解,必必须须建建立立相相应应的的需需求求文文档档。有有时时对对大大型型、复复杂杂的的软软件件系系统统的的主主要要功功能能、接接口口、人人机机界界面面等等还还要要进进行行模模拟拟或或建建造造原原型型,以以便便向向用用户户和和开开发发方方展展示示待待开开发发软软件件

50、系系统统的的主主要要特特征征。确确定定软软件件需需求求的的过过程程有有时时需需要要反反复复多多次,最终得到用户和开发者的确认。次,最终得到用户和开发者的确认。糯沥柏剃睡淮钞欧旦木俗绿淹克涝墅菇它蓟顽兆闻烦冕蛛溃悬机忘冈负警第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2需求分析需求分析3)需求分析的阶段成果)需求分析的阶段成果 需需求求分分析析阶阶段段的的主主要要成成果果有有软软件件需需求求规规格格说说明明、软软件件验验收收测测试试计计划划和和准准则则、初初步步的的用用户户手手册册等等。其其中中,软软 件件 需需 求求 规规 格格 说说 明明 ( Software Requi

51、rements Specification,即即SRS),是是一一个个关关键键性性的的文文档档。多多数数场场合合,面面向向开开发发者者的的软软件件需需求求用用需需求求规规格格说说明明语语言言来来描描述述,它它是是软软件件开开发发人人员员进进行行软软件件设设计计的的依依据据;另另一一方方面面,从从某某种种意意义义上上讲讲,SRS又又起起到到与与用用户户签签定定合合同同的的合合同同书书的的作作用用。因因此此,在在SRS中中应应包包括括软软件件系系统统的的全全部部功功能能需需求求、性性能能需需求求、接接口口需需求求、设设计计需需求求、基本结构、开发标准和验收准则等等基本结构、开发标准和验收准则等等。

52、睦珠抡振介精笑狠走泌篡豆板缚吵培纲域搞盖艺摔缺瘁陶蒲翔斌蜂捂劫袭第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.3.2 软件开发软件开发q软件开发过程由概要设计、详细设计、实现(即编软件开发过程由概要设计、详细设计、实现(即编码与单元测试)、组装测试、验收测试共码与单元测试)、组装测试、验收测试共5个阶段组个阶段组成。成。q其中,概要设计和详细设计统称为设计;编码即编其中,概要设计和详细设计统称为设计;编码即编程;单元测试、组装测试和验收测试统称为测试。程;单元测试、组装测试和验收测试统称为测试。q开发者通常可提出多种设计方案,并对各种方案在开发者通常可提出多种设计方案,并

53、对各种方案在功能、性能、成本、进度等方面进行比较和折衷,功能、性能、成本、进度等方面进行比较和折衷,从中选出一种从中选出一种“最佳方案最佳方案”。q下面将简单地介绍软件开发过程中各阶段的任务,下面将简单地介绍软件开发过程中各阶段的任务,实现的途径和阶段成果。实现的途径和阶段成果。贯缘镀篮篓握斋曙纫纫桑铀恰诵瘴哺显削祸慕导扁资乍缠奠追拇纤砂迢箭第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.3.2 软件开发软件开发1 1概要设计概要设计总体设计总体设计q任务:任务: 是是对对需需求求规规格格说说明明中中提提供供的的软软件件系系统统逻逻辑辑模模型型进进行行进进一一步步的的分分解

54、解,从从而而建建立立软软件件系系统统的的总总体体结结构构和和各各子子系系统统之之间间、各各模模块块之之间间的的关关系系,定定义义各各子子系系统统接接口口界界面面和和各各功功能能模模块块的的接接口口,设设计计全全局局数数据据库库或或数数据据结结构构,规规定定设设计计约约束束,制制定定组组装装测测试试计计划划,进进而而给给出出每每个个功功能能模模块块的的功功能能描描述述、全全局局数数据据定定义义和和外外部文件定义等。部文件定义等。靶闻兼柒熬苛撞陋槽粒竟阂必达郝嵌枝讼苏涂旧相野纲仔唱陆如垢藉儒赁第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1概要设计概要设计q实现的途径:实现的途径

55、: 选选择择某某种种方方法法和和工工具具。设设计计的的软软件件系系统统应应具具有有良良好好的的总总体体结结构构、尽尽量量降降低低模模块块接接口口的的复复杂杂度度,并并力力争争做做到到各各功功能能模模块块之之间间的的低低耦耦合合度度、而而功功能模块内部具有较高的内聚度。能模块内部具有较高的内聚度。q阶段性成果:阶段性成果: 概要设计说明书、概要设计说明书、 数据库或数据结构说明书、数据库或数据结构说明书、 组装测试计划等文档。组装测试计划等文档。贪绝柠姥噎渗伦鼠疽彦合芜六顾福梯篆帚匣长底咐梳贿翘僵鱼慷裤闹铁拣第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程2详细设计详细设计q任务

56、:是将概要设计产生的功能模块进一步细化,形成可编任务:是将概要设计产生的功能模块进一步细化,形成可编程的程序模块,然后设计程序模块的内部细节,包括算法、程的程序模块,然后设计程序模块的内部细节,包括算法、数据结构以及各程序模块间的接口信息,并设计模块的单元数据结构以及各程序模块间的接口信息,并设计模块的单元测试计划。测试计划。q途径:可以采用结构化的设计方法,采用结构化的程序流程途径:可以采用结构化的设计方法,采用结构化的程序流程图、图、N-S图、过程设计语言(图、过程设计语言(PDL,Procedure Design Language)等工具进行描述,也可以采用面向对象的设计)等工具进行描述

57、,也可以采用面向对象的设计方法等等。方法等等。q阶段成果:应提供阶段成果:应提供“详细设计规格说明详细设计规格说明”(或称(或称“模块开发模块开发卷宗卷宗”)和单元测试计划等详细设计文档。)和单元测试计划等详细设计文档。 馈绽鳃畅岭轻荷版首溢授渭五缉涎急耗赞矽陛竟施粹贮髓原痴讽馆酋绳槛第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程3实现实现编码和单元测试。编码和单元测试。q编编码码的的主主要要任任务务是是根根据据详详细细设设计计规规格格说说明明,用用某某种种选选定定的的程程序序设设计计语语言言把把详详细细设设计计的的结结果果转转化化为为机机器器可可运运行的源程序模块,这是一个

58、编程和调试程序的过程。行的源程序模块,这是一个编程和调试程序的过程。q一一般般来来说说,对对软软件件系系统统所所采采用用的的分分析析方方法法、设设计计方方法法、编编程程方方法法以以及及所所选选用用的的程程序序设设计计语语言言应应尽尽可可能能保保持持一一致。致。q编编码码阶阶段段应应注注意意遵遵循循编编程程标标准准、养养成成良良好好的的编编程程风风格格,以便编写出正确的便于理解、调试和维护的程序模块。以便编写出正确的便于理解、调试和维护的程序模块。萌吏拿奏诺咳洲伐卫愧炔充藩廓井澳真揉户驴纬求疯邑乱到羌技结饲拄酒第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程3实现实现编码和单元测

59、试。编码和单元测试。q单元测试:每编写出一个程序模块的源程序,单元测试:每编写出一个程序模块的源程序,调试通过后,即对该模块进行测试,这称为单调试通过后,即对该模块进行测试,这称为单元测试。元测试。q实现阶段的成果:实现阶段的成果:按一定规则存在盘上的通过单元测试的各功能按一定规则存在盘上的通过单元测试的各功能模块的集合模块的集合详细的单元测试报告等文档。详细的单元测试报告等文档。羹麓毙吴莹谷谴派鬼娠般陷量劫兢爵殉时惠批紊姥掺谁倒懂寡垦割毋栋拣第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程4组装测试组装测试组装测试:根据概要设计提供的软件结构、各功能组装测试:根据概要设计提供

60、的软件结构、各功能模块的说明和组装测试计划,把经过单元测试检验模块的说明和组装测试计划,把经过单元测试检验的模块按照某种选定的策略逐步进行组装和测试。的模块按照某种选定的策略逐步进行组装和测试。主要任务:测试系统各模块间的连接是否正确,系主要任务:测试系统各模块间的连接是否正确,系统或子系统的正确处理能力、容错能力、输入统或子系统的正确处理能力、容错能力、输入/输输出处理是否达到要求。出处理是否达到要求。阶段成果:阶段成果: 应是满足概要设计要求、可运行的软件系统应是满足概要设计要求、可运行的软件系统 和源程序清单;和源程序清单; 组装测试报告等文档。组装测试报告等文档。搪破琶蒂横藏缓窃沙莲拥

61、煽挟痔绎馅粗镶技顷凑以码国苟颤檀窒谈瞧泪蜕第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程5验收测试验收测试确认测试确认测试q任务:按照验收测试计划和准则对软件系统进行测任务:按照验收测试计划和准则对软件系统进行测试,看其是否达到了需求规格说明中定义的全部功试,看其是否达到了需求规格说明中定义的全部功能和性能等方面的需求。能和性能等方面的需求。q确认测试结束时,应生成验收测试报告、项目开发确认测试结束时,应生成验收测试报告、项目开发总结报告,并向用户提交源程序清单、最终用户手总结报告,并向用户提交源程序清单、最终用户手册、操作手册等文档资料。册、操作手册等文档资料。q最后,由专

62、家、用户负责人、软件开发和管理人员最后,由专家、用户负责人、软件开发和管理人员组成的软件评审小组要对软件验收测试报告、测试组成的软件评审小组要对软件验收测试报告、测试结果和软件进行评审,通过后,软件产品正式通过结果和软件进行评审,通过后,软件产品正式通过验收(即完成了开发合同),可以交付用户使用了。验收(即完成了开发合同),可以交付用户使用了。运勉迈沽冗捉姜遥浴篙雾怎冉拽滩可咽伞佳美揍茎篙第空闷漏施抛窗园扇第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.3.3 软件的使用与维护软件的使用与维护 1软件使用与维护阶段软件使用与维护阶段q任任务务: 通通过过各各种种维维护护活活

63、动动使使软软件件系系统统持持久久地地满足用户的需求。满足用户的需求。q每每项项维维护护活活动动实实质质上上都都是是一一次次压压缩缩和和简简化化了了的的软软件件定定义义和和软软件件开开发发过过程程。都都要要经经历历提提出出维维护护要要求求、分分析析维维护护要要求求、提提出出维维护护方方案案、审审批批维维护护方方案案、确确定定维维护护计计划划、修修改改软软件件设设计计、修修改改程程序序、测测试试程程序序、评评审审、验收等步骤。验收等步骤。徽闽买唐聂嗓榴他睹水听宙卧骆谰里躇无斗堆穴抑淋舍迎霸孪碳晴吊傈壮第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1软件使用与维护阶段软件使用与维护

64、阶段q应应当当指指出出,软软件件在在使使用用的的过过程程中中,应应及及时时收收集集被被发发现现的的软软件件错错误误,并并定定期期撰撰写写“软软件件问问题题报报告告”;而而每每一一项项维维护护活活动动都都应应该该准准确确地地记记录录下下来来,并并作作为为正正式式的的文文档资料保存。档资料保存。q据据统统计计,软软件件维维护护人人员员为为了了分分析析和和理理解解原原软软件件系系统统所所花花费费的的工工作作量量约约占占整整个个维维护护工工作作量量的的60%以以上上。在在软软件件开开发发的的过过程程中中应应重重视视对对软软件件可可维维护护性性的的支支持持 2 退役退役马中常婿副慧雌辑蚤鸦惑咀竿财垂大尺

65、篡水闰极郊釜烦隆踪点载履悔秩喧第一章软件与软件工程第一章软件与软件工程图图1-3-2 软件研制与软件测试的层次对应关系软件研制与软件测试的层次对应关系可行性研究运行与维护编码与调试单元测试组装测试验收测试需求分析(验收测试计划)概要设计(组装测试计划)详细设计(单元测试计划)鉴响痈屈位讲乔宰院蛛茂征潦答三栓闲摩仍纺探痘缀擒萄君临虐醉咎电捐第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4 软件开发模型软件开发模型q软件开发模型(又称为软件生存周期模型)软件开发模型(又称为软件生存周期模型) 软件项目开发和维护的总体过程思路的框架软件项目开发和维护的总体过程思路的框架。q它它

66、指指出出了了软软件件开开发发过过程程各各阶阶段段之之间间的的关关系系和和顺顺序序,是是软软件件开开发发过过程程的的概概括括。它它为为软软件件开开发发过过程程提提供供原原则则和和方方法法,并并为为软软件件工工程程管管理理提提供供里里程程碑碑和和进进度度表表。因因此此,软件开发模型也是软件工程的重要内容。软件开发模型也是软件工程的重要内容。踩潘秽妈饵殖纽揩简诈何文窝督引怎慌龟其躁品炉弯迸装缉勉俗十碎寞圆第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4 软件开发模型软件开发模型q软件开发模型的几种类型:软件开发模型的几种类型:以软件需求完全确定为基础的瀑布模型;以软件需求完全确

67、定为基础的瀑布模型;在开发初期仅给出基本需求的渐进式模型,如原型模型、在开发初期仅给出基本需求的渐进式模型,如原型模型、螺旋模型、喷泉模型等;螺旋模型、喷泉模型等;以形式化开发方法为基础的变换模型、基于四代技术的以形式化开发方法为基础的变换模型、基于四代技术的模型;模型;基于知识的智能模型等等。基于知识的智能模型等等。 在实际开发时,应根据项目的特点和现有的条件选取合在实际开发时,应根据项目的特点和现有的条件选取合适的模型,也可以把几种模型组合起来使用以便充分利适的模型,也可以把几种模型组合起来使用以便充分利用各模型的优点。用各模型的优点。钵盈奄抛职牛百嗓麻坚暑镭剔慈杯浩胶赤恤婆涉淳掇僻霓兼讯

68、母式卤矛骑第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.1 瀑布模型瀑布模型 瀑布模型(瀑布模型(waterfall model)是由)是由W. Royce于于1970年提出来的。又称为软件生存周期模型。年提出来的。又称为软件生存周期模型。q瀑布模型严格按照软件生存周期各个阶段来进瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务任务和应提交的成果及文档,每一阶段的任务完成后,

69、都必须对其阶段性产品(主要是文档)完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。进行评审,通过后才能开始下一阶段的工作。因此,它是一种以文档作为驱动的模型。因此,它是一种以文档作为驱动的模型。赢绥柠钢各铲霜昆偿悦幸偏物把僚孕坊溃猪朴伶碰吨耪忧呈覆懊秦纵肘殿第一章软件与软件工程第一章软件与软件工程图图1-4-1 带反馈的瀑布模型带反馈的瀑布模型验收测试验收测试组装测试组装测试实现实现详细设计详细设计概要设计概要设计需求分析需求分析退役退役可行性研究可行性研究使用与维护使用与维护歉卡羽致池吵斑寨椅氮茹食致宠峰果张隋韵婉啤燥牧犊猿寝裙掉遣从纬读第一章软件与软件工程

70、第一章软件与软件工程 软软 件件 工工 程程瀑布模型优点瀑布模型优点 提供了软件开发的基本框架,有利于大型软件开提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方发过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用,因此,在软件工程中占法和工具的研究与使用,因此,在软件工程中占有重要的地位。有重要的地位。霸吻伺郴媚炸稗詹惶嗓惶件亥撩畜擎茹盂协蚁柬疹壶绝熟肯勃耪硅递珍论第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程瀑布模型缺点瀑布模型缺点1)在在软软件件开开发发的的初初期期阶阶段段就就要要求求做做出出正正确确、全全面面、完完整的需求分

71、析对许多应用软件来说是极其困难的。整的需求分析对许多应用软件来说是极其困难的。2)在在需需求求分分析析阶阶段段,当当需需求求确确定定后后,无无法法及及时时验验证证需需求是否正确、完整。求是否正确、完整。3)作为整体开发的瀑布模型,由于不支持产品的演化,)作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品在最终产品运行时才能暴露出来,从而使软件产品难以维护。难以维护。喜媒慰警黔涛耐涂搜蹋茅市独睛椎刨纠抱搂独炼赠骏遍邦稚浊碘劈等战堵第一章软件与软件工程第一章软件与软件工程

72、 软软 件件 工工 程程瀑布模型适应场合瀑布模型适应场合 瀑瀑布布模模型型一一般般适适用用于于功功能能、性性能能明明确确、完完整整、无无重重大大变变化化的的软软件件系系统统的的开开发发。例例如如操操作作系系统统、编编译译系系统统、数数据据库库管管理理系系统统等等系系统统软软件件的开发。应用有一定的局限性。的开发。应用有一定的局限性。谦幢拎屹脚歉蜂船毁卑含萨妨磐甄楷苍竞镇搅章弛洋撵摇盗骸程牟专灯守第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.2 原型模型原型模型q原原型型模模型型(prototyping model)的的基基本本框框架架是是软软件件开开发发人人员员根根据

73、据用用户户提提出出的的软软件件基基本本需需求求快快速速开开发发一一个个原原型型,以以便便向向用用户户展展示示软软件件系系统统应应有有的的部部分分或或全全部部功功能能和和性性能能,在在征征求求用用户户对对原原型型的的评评价价意意见见后后,进进一一步步使使需需求求精精确确化化、完完全全化化,并并据据此此改改进进、完完善善原原型型,如如此此迭迭代代,直直到到软软件件开开发发人人员员和和用用户户都都确确认认软软件件系系统统的的需需求求并并达达成成一一致致的的理理解解为为止止。软软件件需需求求确确定定后后,便便可可进进行行设设计计,编编码码、测测试试等等以以后后的的各各个个开发步骤开发步骤。巴奋攫啡恒个

74、炳晨焰腮龋姚迈捂庸冈讼敲梭垄袖痴喜列尺蛊襄作犬端菜毗第一章软件与软件工程第一章软件与软件工程需求的采集和细化需求的采集和细化快速设计快速设计建造原型建造原型用户评价原型用户评价原型对原型加工对原型加工(需求精确化需求精确化)产品样品产品样品(需求确认需求确认)开始开始停止停止图图1-4-2 使用原型确定需求的过程使用原型确定需求的过程将黑值好突袍许僳疯瑶地踞轨点砍趁颜闷吃解斩钥鸵抽南健桨歌沃颈秤籽第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程快速原型的开发途径有三种:快速原型的开发途径有三种:1)仅模拟软件系统的人机界面和人机交互方式。)仅模拟软件系统的人机界面和人机交互方式

75、。2)开开发发一一个个工工作作模模型型,实实现现软软件件系系统统中中重重要要的的或或容容易易产产生生误解的功能。误解的功能。3)利利用用一一个个或或几几个个类类似似的的正正在在运运行行的的软软件件向向用用户户展展示示软软件件需求中的部分或全部功能。需求中的部分或全部功能。 总之,建造原型应尽量采用相应的软件工具和环境,总之,建造原型应尽量采用相应的软件工具和环境,并尽量采用并尽量采用软件重用技术软件重用技术,在运行效率方面可做出让步,在运行效率方面可做出让步,以便尽快提供。同时,原型应充分展示软件系统的以便尽快提供。同时,原型应充分展示软件系统的可见可见部分部分,如人机界面、数据的输入方式和输

76、出格式等。,如人机界面、数据的输入方式和输出格式等。眠赣厘甥毁歹站夯潞啥绊吸嫩卧烃彰藩铂拄疵焙床权奔郁阻芯纵臃标蜘夯第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程原型模型的适应场合原型模型的适应场合q原型模型比瀑布模型更符合人们认识事物的原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。过程和规律,是一种较实用的开发框架。q它适合于那些不能预先确切定义需求的软件它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很括分析员、设计员、程序员和用户)不能很好交

77、流或通信有困难的情况。好交流或通信有困难的情况。疏甜涵甲痘风俗旧峭暑爱企茨规铱岿帮硼境辨破裳炊准屹废朗盒佛舔宰田第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.3 螺旋模型螺旋模型q螺螺旋旋模模型型(spiral model)是是B. Boehm于于1988年年提提出出的的。它它综综合合了了瀑瀑布布模模型型和和原原型型模模型型的的优优点点,即即将将两两者者结结合合,并并加加入入了了风风险险分分析析机机制制。螺螺旋旋模模型型的的基基本本框框架架如如图图1-4-3所示。所示。 庸万惨才柳冠膜昔况夜吊淖脾室冒瑶遂神矛毫彭参忿隘愁谩烫听童激乙怨第一章软件与软件工程第一章软件与软

78、件工程生命周期计划生命周期计划需求计划需求计划风险分析风险分析原型原型1原型原型2原型原型3可操作可操作的原型的原型建模建模模拟模拟评价评价操作概念操作概念软件需求软件需求需求确认需求确认开发计划开发计划组装测试计划组装测试计划风险分析风险分析风险分析风险分析风险分析风险分析软件产品软件产品设计设计设计验证与确认设计验证与确认详细详细设计设计编码编码单元单元测试测试组装组装测试测试验收验收测试测试实现实现成本成本顺时针为进展方向顺时针为进展方向计划:计划:明确目标、约束条件明确目标、约束条件选择方案选择方案风险分析风险分析构造原型构造原型工程实现工程实现用户评价;阶段评审用户评价;阶段评审图图

79、1-4-3 螺旋模型螺旋模型验收测试计划验收测试计划需求精化计划需求精化计划需求评价需求评价评审决策实现计划实现计划钒细交泡蜡馋摔皱搪阁药班藉裳繁惹姑嫡惋练帚浅醇充溶落将霜氮再散路第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.3 螺旋模型螺旋模型q螺螺旋旋模模型型的的每每一一个个周周期期都都包包括括计计划划(需需求求定定义义)、风风险分析、工程实现和评审险分析、工程实现和评审4个阶段。个阶段。1计划(需求定义)计划(需求定义) 第第一一周周期期开开始始利利用用需需求求分分析析技技术术理理解解应应用用领领域域,获获取取初初步步用用户户需需求求,制制定定项项目目开开发发计

80、计划划(即即整整个个软软件件生生命命周周期期计计划划)和和需需求求分分析析计计划划。经经过过一一个个周周期期后后,根根据据用用户户和和开开发发人人员员对对上上一一周周期期工工作作成成果果评评价价和和评评审审,修修改改、完完善善需需求求,明明确确下下一一周周期期软软件件开开发发的的目目标标、约约束束条件,并据此制定新一轮的软件开发计划条件,并据此制定新一轮的软件开发计划。锤这丽炕梢炭眩旷跋赁祟坏齿蠢卸垄造岿探捅脸静闻点锨澳掣苹咒乳夕氯第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.3 螺旋模型螺旋模型2风险分析风险分析 根根据据本本轮轮制制定定的的开开发发计计划划,进进行

81、行风风险险分分析析,评评估估可可选选方方案案,并并构构造造原原型型进进一一步步分分析析风风险险,给给出出消消除除或或减减少少风风险险的的途途径径。此此时时根根据据风风险险分分析析的的结结果果决决策策项项目目是是否否继续。所以,螺旋模型是一个继续。所以,螺旋模型是一个风险驱动的模型风险驱动的模型。3工程实现工程实现 利利用用构构造造的的原原型型进进行行需需求求建建模模或或进进行行系系统统模模拟拟,直至实现软件系统。直至实现软件系统。测坤墒枫魏赶芦裸闷破釜辙躬住厅久网郸肢怖妇软报旭乎黄莽跟伍性卤瓣第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.3 螺旋模型螺旋模型4用户评价

82、与阶段评审用户评价与阶段评审 将将原原型型提提交交用用户户使使用用并并征征求求改改进进意意见见。开开发发人人员员应应在在用用户户的的密密切切配配合合下下进进一一步步完完善善用用户户需需求求,直直到到用用户户认认为为原原型型可可满满足足需需求求,或或对对软软件件产产品品设计进行评价或确认等。设计进行评价或确认等。 螺螺旋旋模模型型从从第第一一个个周周期期的的计计划划开开始始,一一个个周周期期、一一个个周周期期地地不不断断迭迭代代,直直到到整整个个软软件件系系统统开开发发完成。完成。玉卧制团蕉孵矛犬画挽它疫滩怀谎鹰硷员脊玉鄂埠泳萝颠壕脸厨砖须丛愁第一章软件与软件工程第一章软件与软件工程 软软 件件

83、 工工 程程螺旋模型的优点螺旋模型的优点支持支持用户需求的动态变化用户需求的动态变化。这就要求构造的原型的总体结构、。这就要求构造的原型的总体结构、算法、程序、测试方案应具有良好的算法、程序、测试方案应具有良好的可扩充性和可修改性可扩充性和可修改性。也支持软件系统的可维护性,每次维护过程只是沿螺旋模型也支持软件系统的可维护性,每次维护过程只是沿螺旋模型继续多走一两个周期。继续多走一两个周期。原型可看作形式的可执行的需求规格说明,易于为用户和开原型可看作形式的可执行的需求规格说明,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户参与发人员共同理解,还可作为继续开发的基础,并为用户参

84、与所有关键决策提供了方便。所有关键决策提供了方便。螺旋模型特别强调原型的螺旋模型特别强调原型的可扩充性和可修改性可扩充性和可修改性,原型的进化,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力。贯穿整个软件生存周期,这将有助于目标软件的适应能力。螺旋模型为项目管理人员及时调整管理决策提供了方便,进螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。而可降低开发风险。江寝甘眩后熟淤掀踢曹褐全妄范俩乌懈甄皖棱讯仓偶蹦既呈盟脐磐远嘿潜第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程螺旋模型的缺点和适应场合螺旋模型的缺点和适应场合缺点:缺点:如如果果每每次

85、次迭迭代代的的效效率率不不高高,致致使使迭迭代代次次数数过过多多,将会将会增加成本增加成本并并推迟提交时间推迟提交时间;使使用用该该模模型型需需要要有有相相当当丰丰富富的的风风险险评评估估经经验验和和专门知识,要求开发队伍水平较高。专门知识,要求开发队伍水平较高。适适应应场场合合:支支持持需需求求不不明明确确、特特别别是是大大型型软软件件系系统统的的开开发发,并并支支持持面面向向规规格格说说明明、面面向向过过程程、面面向向对对象象等等多多种种软软件件开开发发方方法法,是是一一种种具具有有广广阔前景的模型。阔前景的模型。搐宗摔属孤希膜剖猪寓熬绰水负猿炼婶列寄毯尾腑视幌蕴荷酥鹅攒忠衅驻第一章软件与

86、软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.4 喷泉模型喷泉模型 喷喷泉泉模模型型是是近近几几年年提提出出来来的的软软件件生生存存周周期期模模型型。它它是是以以面面向向对对象象的的软软件件开开发发方方法法为为基基础础,以以用用户户需需求求为为动动力力,以以对对象象来来驱驱动动的模型。的模型。维维 护护测测 试试实实 现现设设 计计分分 析析演演 化化图图1-4-4 喷泉模型喷泉模型灾口铅底摧侯逮水忆舅闸浓洼沁辣侣赴俯哆燥尖讥涣锁枕湿币呆凹愈猛儿第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程喷泉模型的特点喷泉模型的特点1软件系统可维护性较好;软件系统可维护性较好

87、;2各各阶阶段段相相互互重重叠叠,表表明明了了面面向向对对象象开开发发方方法法各各阶段间的交叉和无缝过渡;阶段间的交叉和无缝过渡; 3整整个个模模型型是是一一个个迭迭代代的的过过程程,包包括括一一个个阶阶段段内内部的迭代和跨阶段的迭代;部的迭代和跨阶段的迭代;4模模型型具具有有增增量量开开发发特特性性,即即能能做做到到分分析析一一点点、设设计计一一点点、实实现现一一点点,测测试试一一点点,使使相相关关功功能能随随之加入到演化的系统中。之加入到演化的系统中。5模模型型是是对对象象驱驱动动的的,对对象象是是各各阶阶段段活活动动的的主主体体,也是项目管理的基本内容。也是项目管理的基本内容。6该模型很

88、自然地支持软部件的重用。该模型很自然地支持软部件的重用。扶鳃钨壮幸捣滔吓洲唾穆监怖豺销攫琶遗玩独阉恍荔芬男邦驼令区邮奴硫第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.5 变换模型变换模型变换模型(变换模型(transformational model)主要用于软件的形式)主要用于软件的形式化开发方法。化开发方法。在软件需求分析确定以后,便用形式化的规格说明语言将其在软件需求分析确定以后,便用形式化的规格说明语言将其描述为描述为“形式化软件规格说明形式化软件规格说明”,然后对其进行一系列自动,然后对其进行一系列自动或半自动的变换,最终得到软件系统的目标程序。或半自动的变

89、换,最终得到软件系统的目标程序。形式化软件规形式化软件规格说明(格说明(M0)模型检查模型检查需求分析需求分析形式化软件设形式化软件设计说明(计说明(M1)(M2)目标程序(目标程序(M )变变 换换 变变 换换 变变 换换图图1-4-5 变换模型变换模型痘汤善蚀闷桅岔槐翟净钟袋榨响义襄比浆恶垣央搅夏侮输积彤咱峰雷邱捐第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.5 变换模型变换模型变换模型也应引入迭代机制。即将第一次用变换模变换模型也应引入迭代机制。即将第一次用变换模型得来的目标程序作为型得来的目标程序作为“原型原型”,让用户评价,以,让用户评价,以便使用户需求精确

90、化、完全化,再把精化后的需求便使用户需求精确化、完全化,再把精化后的需求作为输入,第二次用变换模型进行变换,等等。作为输入,第二次用变换模型进行变换,等等。以形式化开发方法为基础的变换模型需要逻辑、代以形式化开发方法为基础的变换模型需要逻辑、代数等严格的数学理论和诸如形式化的需求规格说明数等严格的数学理论和诸如形式化的需求规格说明语言、程序变换工具、定理证明工具等一整套开发语言、程序变换工具、定理证明工具等一整套开发环境的支持。环境的支持。形式化开发方法提出的比较早,但到目前为止,其形式化开发方法提出的比较早,但到目前为止,其在理论和实践等方面离工程实际应用还有较长一段在理论和实践等方面离工程

91、实际应用还有较长一段距离。距离。扦鞭炉凹筛怜歌墩虎淡另罪匿帐驴宁林丸姜夹獭叫惕廊骑蛔痰诫帛垫钢芽第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.6 基于四代技术的模型基于四代技术的模型 1981年年R. Ross提出了第四代编程语言(即提出了第四代编程语言(即4GL),),它是一种它是一种面向问题而非面向过程的语言面向问题而非面向过程的语言。四代技术(四代技术(4GT)是以第四代语言()是以第四代语言(4GL)为核)为核心的软件开发技术。基于四代技术的模型是指用心的软件开发技术。基于四代技术的模型是指用4GT工具将开发者做出的软件规格说明自动转换工具将开发者做出的软件规

92、格说明自动转换成程序代码。成程序代码。目前,支持目前,支持4GT的软件开发工具已经有了一些,的软件开发工具已经有了一些,如屏幕生成器、报表生成器、数据库查询语言、如屏幕生成器、报表生成器、数据库查询语言、代码生成系统等。代码生成系统等。蜕疼扒覆塑辽挛剁谎于兵坏国滩肿划叮位彪喇泉莹硝街啄菱硕混断喀踏公第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程图图1-4-6 基于四代技术的模型基于四代技术的模型收集需求收集需求设计策略设计策略4GL实现实现测试测试维护维护1.4.6 基于四代技术的模型基于四代技术的模型净菏腆绦存左贝亮森氛地蛮望翟懒磷议萄婶椰所蛆姑矽菠林亦族锌替童抽第一章软件

93、与软件工程第一章软件与软件工程 软软 件件 工工 程程1.4.7 基于知识的智能模型基于知识的智能模型它可综合几个模型的特点,并与支持分析、设计、测试、维护等的应用领它可综合几个模型的特点,并与支持分析、设计、测试、维护等的应用领域的基于规则的专家系统相结合,构成了应用领域的开发系统。域的基于规则的专家系统相结合,构成了应用领域的开发系统。用户概念用户概念需求分析需求分析设计设计编码编码测试测试维护维护分析分析专家系统专家系统设计设计专家系统专家系统测试测试专家系统专家系统维护维护专家系统专家系统图图1-4-7 基于知识的智能模型基于知识的智能模型蝗埠闽嚏户掖把堂覆门泽坛消私东恳翼薯枷炉坚浑虚

94、谓攘旁蒜讶蓑乱盖瓢第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.5 软件开发方法、工具及环境软件开发方法、工具及环境 1.5.1 软件开发方法软件开发方法软件开发方法是一种使用早已定义好的技术集及符号表示组软件开发方法是一种使用早已定义好的技术集及符号表示组织软件生产过程的方法。工程实用的软件开发方法是达到软织软件生产过程的方法。工程实用的软件开发方法是达到软件工程目标和克服软件危机的主要途径。件工程目标和克服软件危机的主要途径。其中,具有代表性的有结构化方法(包括面向数据流的开发其中,具有代表性的有结构化方法(包括面向数据流的开发方法、面向数据的开发方法等)、面向对象的

95、开发方法、形方法、面向数据的开发方法等)、面向对象的开发方法、形式化开发方法、维也纳开发方法(式化开发方法、维也纳开发方法(VDM,Vienna Development Method)、适于实时事务处理系统的有限状)、适于实时事务处理系统的有限状态机方法(态机方法(FSMM,Finite State Machine Method)、适于)、适于并发软件系统的并发软件系统的Petri网方法等等。网方法等等。死讲音层途捕区浚放祟穷询侄词傍睁喘刺雷伶活忻哨验率斤顽球贸杠乌遂第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.5.2 软件开发工具与环境软件开发工具与环境软件开发的工具软

96、件:支持软件项目的开发、管理、维软件开发的工具软件:支持软件项目的开发、管理、维护活动的软件护活动的软件 例如,项目管理工具、需求分析工具、设计工具、编码例如,项目管理工具、需求分析工具、设计工具、编码工具、测试工具、维护工具等等。工具、测试工具、维护工具等等。随着软件开发工具数量的不断增加,为了便于使用和管随着软件开发工具数量的不断增加,为了便于使用和管理,就将各种工具简单地组合起来构成理,就将各种工具简单地组合起来构成“工具箱工具箱”。人们将工具按照统一的数据结构、标准的程序界面集成,人们将工具按照统一的数据结构、标准的程序界面集成,从而构成了完整的软件开发环境。从而构成了完整的软件开发环

97、境。 这种集成的软件开发环境能够有效地支持软件生存周期这种集成的软件开发环境能够有效地支持软件生存周期所有阶段的活动,而且不仅支持技术工作,还支持各种所有阶段的活动,而且不仅支持技术工作,还支持各种管理工作,从而可高效、高质量地进行软件开发与维护。管理工作,从而可高效、高质量地进行软件开发与维护。刊此续融争喷拔穆苛自仟访欧侄眷轴耽姿媚钟唁雨革尧笋股色富骤宰帜巩第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程1.5.3 计算机辅助软件工程计算机辅助软件工程在软件工程活动中,人们按照软件工程的原则和方法,利在软件工程活动中,人们按照软件工程的原则和方法,利用计算机及其集成的软件开发

98、环境,辅助软件项目的开发、用计算机及其集成的软件开发环境,辅助软件项目的开发、维护及管理的过程,称为计算机辅助软件工程(即维护及管理的过程,称为计算机辅助软件工程(即CASE,Computer-Aided Software Engineering)。)。CASE工具和环境的核心是软件工程信息库。这些工具和工具和环境的核心是软件工程信息库。这些工具和环境应遵循统一的标准,在操作系统、网络和数据库的支环境应遵循统一的标准,在操作系统、网络和数据库的支持下工作,以便使开发者们方便地相互通信并协同工作。持下工作,以便使开发者们方便地相互通信并协同工作。纂三盲尧渴腕钙典窥判朴玻秀逆履仆络心阁妮椎辈靠仓炔

99、贰焰巧献峨努泞第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程CASE工具按功能可划分为九大类工具按功能可划分为九大类支支撑撑类类工工具具(如如操操作作系系统统、数数据据库库管管理理工工具具、质质量量保保证证工工具具、软件配置管理工具、文档工具等);软件配置管理工具、文档工具等);事务系统规划类(如事务系统规划工具);事务系统规划类(如事务系统规划工具);项项目目管管理理类类(如如项项目目计计划划工工具具、需需求求追追踪踪工工具具、度度量量和和管管理理工具等);工具等);分分析析和和设设计计类类(如如结结构构化化分分析析/结结构构化化设设计计即即SA/SD工工具具、界界面设计工

100、具、原型面设计工具、原型/模拟即模拟即PRO/SIM工具等);工具等);程程序序设设计计与与编编码码类类(如如各各种种编编辑辑器器、调调试试器器、编编译译器器、四四代代语言、面向对象语言工具等);语言、面向对象语言工具等);夜捞情醚刘睦尿上渗椿氛涉赌擒体打刷极再嘴肃气阜憎锗蒂肮丫冗坏夫秀第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程CASE工具按功能可划分为九大类工具按功能可划分为九大类原型建造类(如航空等某些领域的原型工具);原型建造类(如航空等某些领域的原型工具);测测试试类类(测测试试数数据据获获取取工工具具、程程序序静静态态或或动动态态测测量量工工具、测试管理工具等)

101、;具、测试管理工具等);维维护护类类(如如从从程程序序到到规规格格说说明明的的逆逆向向工工程程工工具具、代代码码的重构和分析工具等);的重构和分析工具等);框框架架类类(指指支支持持数数据据库库管管理理、配配置置管管理理和和CASE工工具具集成的工具等)。集成的工具等)。qCASE工工具具和和环环境境的的进进一一步步开开发发和和使使用用,已已经经成成为为软软件工程的重要研究课题。件工程的重要研究课题。陷上埔匹趾切奏镍逻耍茄疑服霉奸曙荫底巧厩椽慑世谨睹窝蛾岛洗荚苯筒第一章软件与软件工程第一章软件与软件工程 软软 件件 工工 程程习题思考题习题思考题 1.3 什么是软件工程?构成软件工程的要素是什

102、么?什么是软件工程?构成软件工程的要素是什么? 1.4 软件工程的软件工程的7条原理都是什么?条原理都是什么? 1.5 软件工程的目标是什么?软件工程的目标是什么? 1.7 软件工程的软件工程的7条原则是什么?说明这些原则的作条原则是什么?说明这些原则的作 用。用。 1.8 软件生存周期由哪几个过程组成?每个过程分别软件生存周期由哪几个过程组成?每个过程分别 包括哪几个阶段?包括哪几个阶段? 1.13 软件开发模型、软件开发方法、集成的软件开发模型、软件开发方法、集成的CASE工工 具与环境在软件工程中各有什么作用?具与环境在软件工程中各有什么作用?返回目录返回目录辱涩气舰患晕噎务首殆隘施万吓淀眷咎钓坛降辨蛤逸擂了犹缝匪秤裤爹游第一章软件与软件工程第一章软件与软件工程

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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