系列索引: 《软件工程与实践》第三版 软件工程课程知识梳理
目录
本章重难点:
● 掌握软件工程新技术的概念、特点及应用
● 掌握能力成熟度集成模型CMMI及评估方法
● 理解IBM Rational、微软MSF、敏捷等现代软件工程体系
● 了解形式化方法及其软件工程体系
> style="margin-left:0in;"> style="margin-left:0in;">
9.1 软件工程新技术
9.1.1 面向服务的计算
1.面向服务的计算概述
以Web服务为中心的新的计算模式则称为面向服务的计算,或简称服务计算,以服务为基本单元。
构件技术提供了构件级的复用,使软件的生产可以采用“搭积木”的方式进行,有效缩短了软件的开发周期、降低了开发成本。
服务计算主要用途:
①构建需要跨平台的异构软件;
②实现跨平台、异构软件间的互操作及快速集成;
③以服务组合的方式支持业务敏捷性。
2. 面向服务的架构和设计原则
软件架构 (Software Architecture) 是软件系统的蓝图,描述了构成软件系统的抽象构件及构件之间的关系。
面向服务的架构 (Service-Oriented Architecture, SOA) 即是采用面向服务计算模式进行软件开发的软件架构,代表了一种开放的、松耦合的、可组合的软件设计范型。
SOC软件开发包含两个方面:服务提供者进行Web服务开发并发布、服务请求者查找服务并发出Web服务请求。
Web服务开发包括3个阶段:开发、部署和发布
从调用方式看,服务调用可以分为两种:静态调用和动态调用。
从服务组装方式看,服务请求可以分为:
① 在程序中直接调用;
② 通过服务组合进行调用
服务组合是实现SOA的重要技术基础
9.1.2云计算技术
1. 云计算技术概述
云计算是一种计算模型,一种按使用量付费的弹性商业模式,一种一体化的共享服务平台
虚拟化技术是实现云计算最重要的技术基石,IT资源的逻辑抽象和统一表示的实现,使云计算平台可以提供弹性的虚拟化资源并可计量
并行计算和分布式计算技术让云计算具有在大规模机器群上实现快速的大数据处理的能力。
IaaS(基础设计及服务)共享应用平台和数据库,SaaS(软件及服务)过网络平台服务进行开发与托管,促进了云计算商业模式趋于成熟。
云计算的主要特点:
云计算基础架构层是云计算平台的基础,也是核心
B/C模式
C/S (Client/Server)模式,引入了服务器端和分层的思想,使系统可以分层管理,简化了软件开发、降低了维护成本并增强了可扩展性;而开发和管理工作向服务器端转移,使分布的数据处理成为可能。
随着互联网的发展及HTML的出现,Web发展为主流的信息交互方式,更多的信息获取与分享通过浏览器进行,即B/S (Browser/Server)模式。
B/S模式在互联网环境下,其处理速度和数据安全性不如C/S模式。
9.1.3 大数据技术
没有大数据,就不需要云计算?NO
大数据核心技术包括: 分布式存储和分布式并行计算
9.1.4 人工智能技术概述
核心特征是 获得知识的能力,以及有效处理不确定性和概率信息的能力。
其研究内容包括:如何用计算机去模拟、延伸和扩展人的智能;如何使计算机变得更加聪明、更加能干;如何设计和制造具有更高智能水平的计算机的理论、方法、技术及应用系统。
综合来讲主要研究: 1. 机器思维 2. 机器感知 3. 机器行为
人工智能技术的几个典型的研究和应用。
(1)自然语言理解。(2)数据库的智能检索。(3)专家系统。(4)机器博弈。
9.2 能力成熟度集成模型
9.2.1 CMMI概述
CMMI(Capacity Maturity Model Integrated,能力成熟度集成模型)是美国国防部规定的一种衡量软件企业或组织开发能力的度量标准。
CMMI有两种表示方法: (1) 连续模型。 (2) 阶段模型。
9.2.2 CMMI能力成熟度级别
9.3 软件工程新体系
9.3.1 IBM Rational软件工程体系、
RUP准则
IBM Rational将软件工程最佳实践概括为统一过程RUP,遵循6条准则:
(1) 重视架构。(2)迭代开发。 (3) 用例驱动。 (4) 图形建模。(5) 逐步求精。 (6) 控制变更。
Rational团队
每个角色都规定了具体的任务、业务范围和职责
软件架构视图与交付平台
RUP采用 4+1视图方法实现软件架构
Rational 软件交付平台下图所示,从软件工程的角度针对软件开发的各个方面提供全方位的支持。
9.3.2 微软软件工程体系
MSF过程模型
将瀑布模型中基于里程碑的规划优势与螺旋模型中增量迭代的长处结合在一起,形成构思、计划、开发 、稳定和发布5个阶段迭代改进、螺旋上升的流程
9.3.3 敏捷软件工程体系
敏捷宣言及原则
极限编程实践
极限编程是敏捷软件工程体系中最著名且最重要的一个方法。主要由以下一些互相依赖的简单实践组成,其实践构成了敏捷过程的主要方面:
(1) 团队组织。 (2) 计划策略 (3) 客户测试。 (4) 速度可持续。
*9.4 形式化方法及其软件工程体系
9.4.1 形式化方法
软件工程中的形式化方法是指将软件工程建立在数学概念和语言的基础上,以使语义准确、清晰且无歧义,并可用自动化或半自动化的工具对开发过程各阶段的成果进行检查和分析。
形式化开发过程
(1) 阶段1:获取抽象模型。 (2) 阶段2:获取具体模型。 (3) 阶段3:获取可执行代码。
9.4.2 净室软件工程体系
净室软件工程体系采用形式化方法,主要基于数学和统计学,面向工作组,追求以经济的方式生产高质量软件。
9.5 本章小结
评论记录:
回复评论: