欢迎来到天天文库
浏览记录
ID:42719113
大小:461.06 KB
页数:44页
时间:2019-09-21
《软件工程0-1.软件工程介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《软件工程》第1章软件工程介绍1.1软件与软件的复杂度什么是软件?(站在软件工程的角度看)软件就是:一个或多个计算机程序,其执行时能提供所期望的功能和性能一个或多个数据结构,这些结构使得程序能够完全操纵信息一个或多个文档,这些文档描述了程序分析、设计、实现和维护的细节软件的定义:面向过程的程序=算法+数据结构面向对象的程序=对象+消息面向构件的程序=构件+构架50年代:软件=程序60年代:软件=程序+文档(分析、设计、测试、维护,但不包括管理文档)70年代:软件=程序+文档+数据(初始化数据、测试数据、研发数据、运行数据、维护数据、工程数据、项目管理数据等)1984年美国
2、开始认识到软件管理是一个过程管理,1991年出现CMM1.0,96年出现UML。“软件工作产品”——开发过程中产生的各种软件“软件产品”——最后交付的软件1.1软件与软件的复杂度IEEEStandardGlossaryofSoftwareEngineeringTerminology给出了有关软件的定义:软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。计算机程序是计算机设备可以接受的一系列指令和说明,为计算机执行提供所需的功能和性能。数据是事实、概念或指令的结构化表示,能够被计算机设备接收、理解或处理。文档是描述程序研制过程、方法及使用的图文材料。1.1软
3、件与软件的复杂度IEEEStandardGlossaryofSoftwareEngineeringTerminology给出了有关软件的定义(英文版):Software.Computerprograms,procedures,andpossiblyassociateddocumentationanddataperainingtotheoperationofacomputersystem.1.1软件与软件的复杂度软件的分类:(1)按功能分:系统软件、支撑软件、应用软件(2)按规模分:大型、中型、小型(3)按工作方式分:实时/分时、交互/批处理(4)按服务对象分:定制软件、产
4、品软件(或称为通用软件)(5)按销售方式分:定单软件、非定单软件1.1软件与软件的复杂度软件的特征软件是设计开发的,而不是传统意义上生产制造的软件不会磨损大多数软件仍然是定制的,而不是通过已有构件组装而成,虽然软件业内向着基于构件的构造模式发展从对比的角度理解这三点:软件是开发出来的,不是制造出来的软件可能被“废弃”,但不会“用坏”软件大部分是定制的,而不是装配的1.1软件与软件的复杂度软件的特征抽象性:逻辑实体,可记录,但看不到可复制性:与开发成本相比,复制成本很低1.1软件与软件的复杂度软件的复杂度更高的技术复杂性-嵌入式,实时的,分布式的,不可出错的-定制的,空前的
5、,可复用的-高性能的较低的技术复杂度-大部分是4GL,或基于组件技术的-应用反向工程-基于交互式的对性能要求不高较高管理复杂度-大范围-合同契约性-受很多人制约的-“项目”型的较低的管理复杂度-小范围-非正式的-简单的资金运作-“产品”型的防御MIS系统防御武器系统信息交换CASE工具国际空中运输控制系统企业IS(IS应用)商业编译器商业制表软件IS应用分布式对象小型科学模拟大型组织/实体仿真模拟一个比较中等的项目-5-10人-10-15个月的开发周期-3-5个外部界面-一些不可知的事情&风险嵌入式车用软件IS应用GUI/RDB计算机软件发展的四个阶段:1.早期时代(60
6、年代中期之前)程序设计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。计算机的主要应用为快速计算,出现了Algol、Fortran等编程语言。2.第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。计算机的应用开始涉及到各种以非数值计算的商业业务领域,交互技术、数据库、操作系统等得到发展,出现了Pascal、Cobol等编程语言和关系数据库管理系统为标志的结构化软件技术。瀑布模型得到普遍使用。3.第三代(70年代中期之后-80年代)软件工程阶段软件开发成为一门新兴的工程学科——软件工程。软件开发过程得到管理
7、、工程化了。出现了COCOMO模型、CMM等。以Smalltalk、C++为代表的面向对象技术崛起,传统的结构化技术受到严峻的考验1.1软件与软件的复杂度计算机软件发展的四个阶段:4.20世纪90年代——至今Internet技术的迅速发展使软件系统从封闭走向开放,异构环境下的分布式软件的开发成为一种主流需求,软件复用和构件技术成为技术热点,出现了J2EE、COM+、CORBA为代表的3个分支。现在网格计算、WebService、云计算、普适计算(PervasiveComputing)等技术发展迅速。1.1软件与软件的复杂度1.
此文档下载收益归作者所有