新软件工程——原理、方法与应用(第二版) 肖孟强 电子教案 04
实用软件工程(第二版)1、2章
1.3 软件工程
• 1.3.1 软件工程的概念
– IEEE对软件工程的定义为:
• 1)将系统化、严格约束的、可量化的方法应用于软件的开发、运行 和维护,即将工程化应用于软件
• 2)对1)中所述方法的研究
– 具体说来,软件工程是以借鉴传统工程的原则、方法, 以提高质量,降低成本为目的指导计算机软件开发和维 护的工程学科。它是一种层次化的技术
特点: 1)具有抽象性 2)无明显的制造过程 3)存在退化问题 4)对计算机系统有着不同程度的依赖性 5)尚未完全摆脱人工的开发方式 6)软件本身是复杂的 7)成本相当昂贵 8)相当多的软件工作涉及社会因素
1.1 软件
• 1.1.2 软件的分类
1.2 软件危机
• 1.2.1 软件危机的表现与原因
• 过程定义了运用方法的顺序,应该交付的文档资料,为保证软件质量和协调 变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。 通常,使用生命周期模型简洁地描述软件过程。生命周期模型规定了把生命 周期划分为哪些阶段及各个阶段的执行顺序,因此也称为过程模型
2.2 软件生命周期
• 2.2.1 软件生命周期的概念
1.3 软件工程
• 1.3.4 软件工程知识体系
– IEEE在2014年发布的《软件工程知识体系指南》中将 软件工程知识体系划分为以下15个知识领域。
1.软件需求 2.软件设计 3.软件构建 4.软件测试 5.软件维护 6.软件配置管理 7.软件工程管理 8.软件工程过程
9.软件工程模型和方法 10.软件质量 11.软件工程职业实践 12.软件工程经济学 13.计算基础 14.数学基础 15.工程基础
– 软件工程要达到的基本目标包括:
软件工程(第二版)第十一章new
类名
属性 服务
类名 属性 服务
11.1 表示符号
11.2 面向对象建模——三模 型法求分析(对象模型)
11.2.2 表示结构的图形符号
1.归纳关系 一般化关系的形成,可以通过检查一组 概念和识别这组概念中的共同元素来实现。 小汽车、卡车和公共汽车可以蕴含在更一般 的汽车概念中。这个较一般化的抽象还可以 帮助定义其他比较特殊的抽象,如赛车、面 包车和牵引车。
11.3 面向对象建模——三模 2、标识消息传递 型需求分析(动态模型)
11.4 面向对象建模——三模 型需求分析(功能模型)
功能模型着重于系统内部数据的传送和处理。功能模 型定义“做什么”,通常,功能模型由一组数据流图 组成。功能模型表明整个的数据流动情况,从外部输 入,通过操作和内部存储,直到外部输出。功能模型 还包括了对象模型内部数据间的限制。
项目
活动
﹡
工作成果
﹡由„产生 “) 《
任务
﹡
消耗﹡
资源
系统
参与者
模型 文档
时间 设备
(2)对象之间的消息传递构成静态结构视点。
11.5 UML概述
在 UML 中可以将建模语言划分为三种构 造块,即三类词汇或基本元素:事物、关 系和图。其中事物是对模型中最具有代表 性的成分的抽象,可分为结构事物、行为 事物、分组事物和注释事物;关系能把事 物联系在一起,可分为依赖、关联、泛化 (归纳)、实现。
功能模型中所有的数据流图往往形成一个层次 结构。在这个层次结构中,一个数据流图中的过 程可以由下一层的数据流图做进一步的说明。— 般来讲,高层的过程相应于作用在组合对象上的 操作,而低层的过程则代表作用于一个简单对象 上的操作。
11.5 UML概述
软件工程-原理、方法及应用(史济民第三版)(课后习题答
软件工程-原理、方法及应用(史济民第三版)(课后习题答案)绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。
(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。
采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。
3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。
当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。
新方法在推行初期,总有人不愿接受和采用。
若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。
所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。
4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。
答:用C++开发一个软件,是校园一卡通的模块。
首先,要在编辑程序支持下在计算机中输入源程序。
然后编译程序,把源程序翻译成目标程序。
如果发现错误,就重新调入编辑程序对源程序进行修改。
编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。
编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。
离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。
《软件工程——原理、方法与应用(第二版)》 07
7.1 面向对象分析
返回目录
7.1.2 建立对象模型 2)筛选出正确的类和对象 (1)删除冗余的类和对象。 (2)删除无关类和对象。 (3)应把笼统和模糊的名词去掉。 (4)若某些对象其实是另一对象的属性,则可以把它归到属性中,从而省
去这个对象,若不能看成属性,则把它独立为一个对象。 (5)有些对象还可以看成是某个对象的操作,应根据它是适合作为对象还
返回目录
7.1.2 建立对象模型 (3)限定
限定用来对关联的含义做某种约束,利用限定词通常能有效地减少关 联的阶数。
教师 m
学生 n
毕业设计
教师
毕业设计
k 成绩
学生
成绩
(a)
图7-4 教师与学生的关联关系
(b)
9
7.1 面向对象分析
返回目录
7.1.2 建立对象模型 3. 确定主题 1)主题的选择
主题的选择应遵循以下两点: (1)为每个对象相应地增加一个主题。 (2)为每个结构也相应地增加一个主题。 2)划分精炼主题 (1)从问题域入手,使用整体-部分关系结构对问题域进行划分。 (2)利用高内聚、低耦合的原则,使主题间的依赖性和交互性达到最小。 (3)如果主题数超过7个,则应对主题进行精炼,抽象出更高层次的主题。
7.1.1 面向对象分析过程
1.基本过程概述
2.三个模型和五个层次
面向对象建模得到的模型即静态结构(对象模型)、交互次序(动态 模型)和数据变换(功能模型)。
复杂问题(大型系统)的对象模型通常由下述五个层次组成:主题层、
3
类与对象层、结构层、属性层和服务层。
7.1 面向对象分析
返回目录
综合上述,在概念上可以认为,面向对象分析大体上按照下列顺序进行: 寻找类与对象,识别结构,识别主题,定义属性,建立动态模型,建立 功能模型,定义服务。但分析不可能严格按预定顺序进行,大型、复杂 系统的模型需要反复构造多遍才能建成。通常,先构造出模型的子集, 然后逐渐扩充,直到完全、充分地理解了整个问题,才能最终把模型建 立起来。
精品课件-软件工程与开发技术(第二版)-第4章
第4章 软件设计
模块化是指将整个程序划分为若干个模块,每个模块用于实 现一个特定的功能。划分模块对于解决大型复杂的问题是非常必 要的,可以大大降低解决问题的难度。为了说明这一点,我们可 对问题复杂性、开发工作量和模块数之间的关系进行以下推理。
首先,我们设C(x)为问题x所对应的复杂度函数,E(x)为解决 问题x所需要的工作量函数。对于两个问题P1和P2,如果:
printf("x+y= %d",sum(x,y)); }/*主函数与sum函数之间即为数据耦合关系*/
…
第4章 软件设计
(2) 公共耦合。若两个或多个模块通过引用公共数据相互联 系,则称这种耦合为公共耦合。例如,在程序中定义了全局变量, 并在多个模块中对全局变量进行了引用,则引用全局变量的多个 模块间就具有了公共耦合关系。 FORTRAN语言中使用的common语 句也会在多个模块间建立公共耦合关系。公共耦合的复杂度随着 耦合的模块个数的增加而显著增加。在程序设计中,若两个模块 间需要交换的数据较多,仅通过参数传递难以实现时,可以考虑 采用公共耦合完成,但一定注意尽量降低公共耦合的程度。
第4章 软件设计
4. 模块独立性
1) 耦合性
耦合性是对一个软件结构内部不同模块间联系紧密程度的度 量指标。模块间的联系越紧密,耦合性就越高,模块的独立性也 就越低。由于模块间的联系是通过模块接口实现的,因此,模块 耦合性的高低主要取决于模块接口的复杂程度、调用模块的方式 以及通过模块接口的数据。模块间的耦合性主要可划分为如下几 种类型。
E(P1+P2)> E(P1)+E(P2) 即将复杂问题分解成若干个小问题,各个击破,所需要的工作量 小于直接解决复杂问题所需的工作量。
《软件工程二版》PPT课件
软件工程结构复杂,要涉及到用户组织内部与外部环境
(2)用户需求的多样性
软件开发失败最主要的原因是:用户对软件需求描述 不精确,可能有遗漏、有二义性、有错误。
(3)建设内容的复杂性
软件是逻辑部件:试制阶段难衡量;开发质量较难评 价,开发过程管理和控制较难。
(4)技术手段的复杂性
软件设计、实施、维护技术手段的复杂性 。
完整版ppt
5
1.1软件危机
软件包括了使计算机运行所需要的各种程 序及其有关的文档资料。其中,程序是计算机 任务的处理对象和处理规则的描述;文档是为 了理解程序所需的阐述性资料。
20世纪60至70年代,“软件危机”一词 在计算机界广为流传,其主要针对当时存在 的软件代价高和软件错误多的现象。
完整版ppt
2、软件规模庞大,有技术问题,也有管理方法问题。
3、早期开发的个体化;忽视需求分析;认为软件开发 写程序;轻视维护,对用户不了解,
4、对前期工作不能忽视,做好软件定义时期的工作, 这是降低成本,提高件质量的关键。
5、严重性:在软件开发的不同阶段修改付出代价(后 期是前期的2-3个数量级),软件维护是极端艰巨复杂的 工作,占55%~70%)
(5)建设所需资源的密集性
软件系统是资金、劳动、智力、知识密集型大型项目, 各类的信息交流不及时是完产整版生pp软t 件危机的主要原因。 12
关于软件危机的总结
1、软件是逻辑部件:试制阶段难衡量;开发质量较难
评价,开发过程管理和控制较难;运行过程才能暴露没 有检测出来的事故,相当于修改设计,软件维护困难;
在软件开发的不同阶段修改付出代价后期是前期的23个数量级软件维护是极端艰巨复杂的工作占5570完整版ppt14121121软件工程的定义与基本原理软件工程的定义与基本原理121121软件工程的定义与基本原理软件工程的定义与基本原理122122软件工程的目标软件工程的目标122122软件工程的目标软件工程的目标123123软件工程框架及原则软件工程框架及原则123123软件工程框架及原则软件工程框架及原则退出退出退出退出完整版ppt15什么是软件工程软件工程是指把系统的规范化的可以度量的方法运用于软件的开发运行和维护的过程
软件工程的原理与方法 ppt课件
的一次会议上首次提出的。它的中心思想是把软件当作一种工业产品,
而不是某种个体或小作坊的神秘技巧,要求“采用工程化的原理与方 法对软件进行计划、开发和维护”。
18
1.1 GIS软件工程
三 软件工程
软件工程是用科学知识和技术原理来定义,开发,维 护软的一门学科。即:将用户的需求转化成有效的软件 解决方案的一系列活动。
7
软件可重用性 差。
17
1.1 GIS软件工程
三 软件工程
程序是按既定算法,用某种计算机语言规定的指令或语句编写的指令
或语句的集合。 软件是程序再加上程序实现和维护程序时所必需的文档的总称。
是程序和程序设计发展到规模化和商品化后所逐渐形成的概 念。
工程是将理论和所学的知识应用于实践的科学。 “软件工程”一词是1968年北大西洋公约组织(NATO)在联邦德国召开
基本的文件管理、编辑和文档生成功能。 更完善的编辑和文档生成能力。 实现拼写和文法检查功能。 完成高级的页面布局功能。
33
Microsoft Windows 的版本包括: 1989年 11月 Word for Windows 1991年 Word 2 for Windows 1993年 Word 6 for Windows(由于要与当时的竞争对手DOS、 Macintosh和WordPerfect的版本编号看齐,视窗版本的Word更 改为Word6) 1995年 Word 95,亦称Word 7 1997年 Word 97,亦称Word 8 1999年 Word 2000,亦称Word 9 2001年 Word XP,亦称Word 2002或Word 10 2003年 Word 2003,亦称Word11,但官方称之为Microsoft Office Word 2003 2006年 Word 2007,亦称Word12,但官方称之为Microsoft Office Word 2007 …