软件技术发展简介_第1页
软件技术发展简介_第2页
软件技术发展简介_第3页
软件技术发展简介_第4页
软件技术发展简介_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、软件开发技术发展进程与案例软件开发技术发展进程与案例 小组成员:蔡海飞 陈飞 崔松松 李岩 王喆 目录 软件开发技术发展史软件开发技术发展史 软件危机软件危机 软件工程软件工程 结构化设计方法结构化设计方法 面向对象的方法面向对象的方法 框架式设计方法框架式设计方法 大数据大数据 软件开发技术发展史软件开发技术发展史社会应用需求的驱动是推进软件发展进程的主线: 从软件发展早期的按个人意愿编写代码,到按软件工程的理论生产大型应用系统; 从手工作坊式的封闭性制作到按标准制式、大工业生产的开放系统; 从注重个人精雕细琢地编写代码的技巧到注重工程项目的管理和开发团队的协作; 从为特定应用定制设计到以复

2、用为目标的组件式开发; 从由少数软件天才的编程艺术到由广大用户直接参与的应用开发。 软件危机软件危机 20 世纪60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机(Software Crisis)开始爆发。 主要表现1)软件开发费用和进度失控。2)软件的可靠性差。3)生产出来的软件难以维护。

3、4)用户对软件功能难以满足。5)软件通常缺少适当的文档资料。6)生产率提高的速度不能满足社会需要。7)软件产品质量无法保证。 爆发原因产生软件危机有两个方面的原因:产生软件危机有两个方面的原因:1) 与软件本身的特点有关;是内在因素、客观的存在,只能因势利导加以解决。2)与软件开发和维护的技术方法有关;是外在因素,可以完善、提高。 解决软件危机的途径采用现代化、社会化的组织管理方式采用现代化、社会化的组织管理方式使用成功技术和方法(面向过程、面向对象等)使用成功技术和方法(面向过程、面向对象等)使用更好的软件开发工具(汇编、使用更好的软件开发工具(汇编、C C、VCVC、JAVAJAVA等)等

4、) 软件工程诞生软件工程诞生 软件工程 1968 年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,第一次讨论软件危机问题,并正式提出“软件工程(Software Engineering)”一词,从此一门新兴的工程学科软件工程学为研究和克服软件危机应运而生。 软件工程的定义著名软件工程专家著名软件工程专家BoehmBoehm定义定义运用现代科学技术知识来运用现代科学技术知识来设计并且构造设计并且构造计算机程序以及为开发、运行和维计算机程序以及为开发、运行和维护这些程序所必需的相关文件资料。护这些程序所必需的相关文件资料。IEEEIEEE给出的定义给出的定义以优质、高效、低成本为目标,研究

5、开发、运行和维护软件以及使之退以优质、高效、低成本为目标,研究开发、运行和维护软件以及使之退役的系统方法。役的系统方法。 软件工程的目标 开发生产尽可能多的软件产品 提高软件的生产效率 满足应用的功能需要和具有较好的软件性能 能按时、按质完成软件开发任务 降低软件开发成本 软件开发方法一、结构化方法二、面向对象方法三、框架式开发四、大数据开发 结构化方法(SASD)结构化方法的基本要点是: 1)自顶向下 2)逐步求精 3)模块化设计 4)结构化编码按软件生命周期划分: 1)有结构化分析(SA) 2)结构化设计(SD) 3)结构化实现(SP) 1978年,EYourdon和LLConstanti

6、ne提出了结构化方法,即SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。1979年TomDeMarco对此方法作了进一步的完善。 结构化分析(SA)分析当前的情况,做出反映当前物理模型的DFD;推导出等价的逻辑模型的DFD;设计新的逻辑系统,生成数据字典和基元描述;建立人机接口,提出可供选择的目标系统物理模型的DFD;确定各种方案的成本和风险等级,据此对各种方案进行分析;选择一种方案;建立完整的需求规约。 结构化设计(SD)评审和细化数据流图;确定数据流图的类型;把数据流图映射到软件模块结构,设计出模块结构的层;基于数据流图逐步分解高层模块,设计中下层模块;对模块结构进

7、行优化,得到更为合理的软件结构;描述模块接口。设计原则(1)使每个模块尽量只执行一个功能(坚持功能性内聚);(2)每个模块用过程语句(或函数方式等)调用其他模块;(3)模块间传送的参数作数据用;(4)模块间共用的信息(如参数等)尽量少。 结构化设计方法图 面向对象方法(oo) 随着随着OOPOOP(面向对象编程)向(面向对象编程)向OODOOD(面向对象设计)和(面向对象设计)和OOAOOA(面(面向对象分析)的发展,最终形成面向对象的软件开发方法向对象分析)的发展,最终形成面向对象的软件开发方法OMT(Object OMT(Object Modelling TechniqueModellin

8、g Technique)。这是一种自底向上和自顶向下相结合的方法,而)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以也包含了所有对象的数据结构。所以OMTOMT彻底实现了彻底实现了PAMPAM没有完全实现没有完全实现的目标。不仅如此,的目标。不仅如此,OOOO技术在需求分析、可维护性和可靠性这三个软技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了实质性的突破,彻底地解决了在这件开发的关键环节和质量指标上有了实质性的突破

9、,彻底地解决了在这些方面存在的严重问题,从而宣告了软件危机末日的来临。些方面存在的严重问题,从而宣告了软件危机末日的来临。 基本特征1)抽象性 抽象性是对事物的抽象概括描述,实现了客观世界向计算机世界的转化。2)封装性 封装(Encapsulation)就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。3)继承性 继承(Inheritance)是一种联结类与类的层次模型。继承性是指特殊类的对象拥有其一般类的属性和行为。4)多态性 多态性(Polymorphism)是指类中同一函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。优点

10、:(1)是一种全新的系统分析设计方法(对象、类、结构属性、方法)。(2)适用于各类信息系统的开发。(3)实现了对客观世界描述到软件结构的直接转换,大大减少后续软件开发量。(4)开发工作的重用性、继承性高,降低重复工作量。(5)缩短了开发周期。缺点:(1)需要一定的软件支持环境。(2)不太适宜大型的MIS开发,若缺乏整体系统设计划分, 易造成系统结构不合理、各部分关系失调等问题。(3)只能在现有业务基础上进行分类整理,不能从科学管理角度进行理顺和优化。(4)初学者不易接受、难学。 图书馆管理系统类图 框架式设计方法框架式设计方法 软件框架(Software framework),通常指的是为了实

11、现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。 框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应用可以在支持同一种框架的软件系统中运行。 简而言之,框架就是制定一套规范或者规则(思想),程序员在该规范或者规则(思想)下工作。或者说就是使用别人搭好的舞台,你来做表演。产生原因: 随着软件规模的扩大、应用的广泛和软件复用技术的发展,以子程序或类(Class)为单位的软件复用有许多不足:(1)子程序库日趋其庞大以致于使

12、用人员难以掌握;(2)大多数类粒度很小,且其自身往往不能完成有用的功能。 这一问题迫使人们在复用中将一组类(或模块)及其交互作为一个整体来考虑,由此出现了软件框架。 组成部分(1)一系列完成计算的模块,成为构件;(2)构件之间的关系及交互机制;(3)一系列可变点(热点、或者称为调整点);(4)可变点的行为调整机制。 开发人员通过软件框架行为调整机制,将领域中具体应用中所特有的软件模块绑定到该软件框架的可变点上,从而得到了最终的应用系统,这个过程称为软件软件框架的例化,软件框架的存在使得开发人员将主要的精力放在系统所特有的模块的开发上,从而提高软件的生产率和质量。行为调节机制:(1) 模板参数化

13、。软件框架提供代码自动生成工具,该工具根据用户设置的参数自动生成所需的代码。(2) 继承和多态。通过面向对象中的子类继承和重载,在子类中加入新的功能或改变父类的行为。(3) 动态绑定。在运行时刻动态绑定所需的对象服务,可通过软件模式技术实现。(4) 构件替换。通过替换框架中可插拔的构件来加入业务特定的功能。 框架分类 白盒框架 基于继承的框架被称为白盒框架(White-Box)。所谓白盒即具备可视性,被继承的父类的内部实现细节对子类而言都是可知的。利用白盒框架的应用开发者通过衍生子类或重写父类的成员方法来开发系统。子类的实现很大程度上依赖于父类的实现,这种依赖性限制了重用的灵活性和完全性。但解

14、决这种局限性的方法可以是只继承抽象父类,因为抽象类基本上不提供具体的实现。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上的附属品。 黑盒框架 基于对象构件组装的框架就是黑盒框架(Black -Box)。应用开发者通过整理、组装对象来获得系统的实现。用户只须了解构件的外部接口,无须了解内部的具体实现。另外,组装比继承更为灵活,它能动态地改变,继承只是一个静态编译时的概念。 在理想情况下,任何所需的功能都可通过组装已有的构件得到,事实上可获得的构件远远不能满足需求,有时通过继承获得新的构件比利用已有构件组装新构件更容易,因此白盒和黑盒将同时应用于系统的开发中。不过白盒框架趋向于向黑盒框架发

15、展,黑盒框架也是系统开发希望达到的理想目标。(1) 涉及软件开发的全过程。(2) 反向控制( Inversion of Control) ( 常被称为好莱坞原则( Hollywood Principle) : Dont call us , well call you) 。(3)它是一个模板。(4)框架通常建立在众多类库的基础之上。(5)框架封装了处理流程的控制逻辑。特点: 软件框架图 大数据 大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。(在维克托迈尔-舍恩伯格及肯

16、尼斯库克耶编写的大数据时代中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据的方法2)。大数据的4V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)。4V特点:1)Volume(大量)2)Velocity(高速)3)Variety(多样)4)Value(价值)大数据开发方法:1)关联分析2)聚类分析3)分类4)偏差分析5)演变分析大数据开发步骤:1、分析原始数据 一般从原始数据中找出所有相关度高的数据集合L。相关度高的意思是指某一数据集合出现的频率高于其他数据集合,并且达到某一设定值!。数据集合出现的频率称为支持度(support),

17、若支持度大于等于所设定的最小支持度(min Support)时则L称为相关度高的数据集合。一个满足最小支持度的 k则称为高频 k-集合组L,k算法从L,k的集合组中再产生L,k+1直到无法再找到更大的相关度高的数据集合为止。2、产生关联规则 从相关度高的数据集合中找出关联规则, 是利用前一步骤的高频 k-集合组L,k来产生规则,在最小信赖度(min confidence)的条件下,若某一规则所求得的信赖度满足最小信赖度,则称此规则为关联规则。框架Smal1talk一80用户界面框架,它开发于20世纪70年代后期,被称为Model/view/Controller(MvC)。MvC框架展示了面向对象编程非常适合于实现图形用户界面。成功的框架促进了其它框架的发展,框架可以用于软件开发的任何领域,从大规模集成路由算法,到多媒体系统、图形编辑器、操作系统和网络协议软件等各种不同领域。 MVC把构造一个用户接口所需要的构件划分为3种对象进而确保将其明确分离。这3种类型的对象分别是:)模型(Model)数据对象。)视图(View)对象。)控制器(Controller)对象。每种构件类型都有一个明确的责任。1)模型不含有视图特定的代码;2)视图不含有控制代码或数据访问代码,只 集中精力显示数据;3)控制器创建并更新模

温馨提示

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

评论

0/150

提交评论