




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
12六月2023软件工程概述本章内容1.1计算机软件1.2软件的发展和软件危机1.3软件工程1.4通信软件工程1.5软件工程知识体系1.1计算机软件本节内容1.1.1软件的定义1.1.2软件的特点1.1.3软件的分类1.1.1软件的定义软件是程序的完善和发展,是经过严格的正确性检验和实际试用,并具有相对稳定的文本和完整的文档资料的程序。Wirth中指出:在结构化程序设计:程序=算法+数据结构在软件工程中:软件=程序+文档。IEEE定义:软件是计算机程序、规程以及运行计算机系统所需要的文档和数据。1.1.1软件的定义另一种对软件的公认解释是:软件是包括程序、数据及其相关文档的完整集合。程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。1.1.2软件的特点(1)软件是一种逻辑实体,具有抽象性。(2)软件的开发过程中没有明显的制造过程。(3)软件在运行和使用期间,没有硬件那样的机械磨损和老化问题,但存在软件退化问题。(4)软件的开发和运行常常受到计算机系统的约束和限制,不同程度地依赖计算机硬件。(5)软件的开发至今未完全摆脱手工艺的开发方式,大部分软件还是定制的,很难通过组装方式完成软件开发。1.1.2软件的特点(6)软件是复杂的。实际需求的复杂性程序逻辑的复杂性(7)软件研制成本相当高,在计算机系统中软件成本比例逐步增加。(8)软件投入运行时还涉及到许多社会因素。1.1.3软件的分类根据软件服务对象的范围不同:通用软件:操作系统、数据库等;定制软件:企业ERP、卫星控制系统等;根据软件完成功能所处的层次不同:系统软件中间件软件应用软件1.1.3软件的分类系统软件:指能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件。操作系统设备驱动程序通信处理程序1.1.3软件的分类中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,将注意力集中在自己的业务上,不必再为程序的移植而重复工作,从而大大减少了技术上的负担。中间件软件:为了解决分布异构系统的集成问题而开发的软件,是处于操作系统软件与用户的应用软件的中间的通用服务,具有标准的接口和协议。1.1.3软件的分类中间件的种类包括:消息中间件数据访问中间件应用服务器对象中间件交易中间件安全中间件1.1.3软件的分类中间件的十大优越性:
(1)
缩短应用的开发周期
(2)节约应用的开发成本
(3)减少系统初期的建设成本
(4)降低应用开发的失败率
(5)保护已有的投资
(6)简化应用集成
(7)减少维护费用
(8)提高应用的开发质量
(9)保证技术进步的连续性
(10)增强应用的生命力1.1.3软件的分类应用软件:在特定领域内开发,为特定目的服务的一类软件。商业数据处理软件工程与科学计算软件计算机辅助设计/制造软件系统仿真软件智能产品嵌入软件医疗、制药软件事务管理、办公自动化软件计算机辅助教学软件计算机网络软件1.1.3软件的分类按照软件的规模:类别参加人员数开发周期产品规模(LOC)微型11~4周0.5k小型11~6月1k~2k中型2~51~2年5k~50k大型5~202~3年50k~100k甚大型100~10004~5年1M(=1000k)极大型2000~50005~10年1M~10M1.1.3软件的分类按软件工作方式不同:实时处理软件分时软件交互式软件批处理软件按照支撑应用开发的工具类型可以将其划分为:支持软件开发过程的工具支持软件维护过程的工具支持软件管理过程和支持过程的工具1.2软件的发展和软件危机本节内容1.2.1软件发展阶段1.2.2软件危机1.2.3软件危机的解决途径1.2.1软件发展阶段程序设计阶段:20世纪50至60年代程序系统阶段:20世纪60至70年代 软件工程阶段:20世纪70至90年代现代软件工程阶段:20世纪90年代至今1.2.1软件发展阶段
阶段程序设计程序系统(现代)软件工程特点
软件所指程序程序及说明书程序、文档和数据程序设计语言汇编及机器语言高级语言软件语言软件工作范围程序编写包括设计和测试软件生存期需求者程序设计本人少数用户市场用户开发软件的组织个人开发小组开发小组及大中型软件开发机构软件规模小型中小型大中小型决定质量的因素个人程序技术小组技术水平管理水平开发技术和手段子程序/程序库结构化程序设计数据库、开发工具、开发环境、工程化开发方法、标准和规范、网络及分布式开发、面向对象技术、软件复用维护责任者程序设计者开发小组专职维护人员硬件特征价格高/存储容量小
工作可靠性差降价、速度、容量及工作可靠性明显提高向超高速、大容量、微型化及网络化发展软件特征完全不受重视软件技术的发展不能满足需求,出现软件危机开发技术有进步,但未获突破性进展,价高,未完全摆脱软件危机1.2.2软件危机20世纪60年代后,随着计算机软件应用领域增多,软件规模不断扩大,软件系统功能多,逻辑复杂,不断扩充,从而导致许多系统开发出现了不良的后果:系统存在大量错误,可用性和可靠性差;系统无法增加新功能,难于维护;系统无法按照计划时间完成;最严重的彻底失败。软件危机举例20世纪60年代IBM公司开发的(OS/360)系统就是一个很好的例子。该系统由4000多个模块组成,约100万条指令,人工为5000人年(一个人年为一个人工作一年的工作量),耗费达数亿美元。该系统投入运行后发现了2000多个错误,发布过19个版本,而以后每个版本的更新均有1000多个大大小小的错误存在。系统开发陷入了僵局。OS/360系统的负责人F.D.Brooms曾这样形象地描述了开发过程中的困难和混乱:“……像一头巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能逃脱淹没在泥潭中的命运……程序设计就像是这样一个泥潭……一批批程序员在泥潭中挣扎……没人料到问题竟会这样棘手……”。1.2.2软件危机所谓软件危机(SoftwareCrisis)就是计算机软件在开发和维护过程中所遇到的一系列严重问题,具体表现在:软件开发成本难以估算,无法制定合理的开发计划;用户的需求无法确切表达;软件质量存在问题;软件的可维护性差;缺乏文档资料;软件成本难以控制;1.2.3软件危机的解决途径产生软件危机的原因:软件系统本身的复杂性;软件开发的方法和技术不合理;程序设计方法学讨论程序的性质、程序设计的理论和方法软件工程方法运用工程化原则和方法组织软件开发工作1968年提出1.3软件工程本节内容1.3.1软件工程定义1.3.2软件工程要素1.3.3软件工程的目标和原则1.3.4软件工程基本原理1.3.1软件工程定义1968年10月,FritzBauer首次提出了“软件工程”的概念:软件工程是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则。Boehm为软件工程下的定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。1.3.1软件工程定义Fairley认为:软件工程学是为在成本限额以内按时完成开发和修改软件产品所需的系统生产和维护的技术和管理的学科。IEEE计算机学会将“软件工程”定义为:⑴应用系统化的、规范化的、定量的方法来开发、运行和维护软件,即:将工程应用到软件;⑵对⑴中各种方法的研究。从以上定义可以看出,软件工程的含义:(1)工程概念在软件领域里的一个特定应用(2)软件工程涉及软件产品的所有环节1.3.2软件工程要素软件工程包括三个要素:方法、工具和过程。方法:提供了“如何做”的技术;工具:提供了自动的或半自动的软件支撑环境;过程:将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的;1.3.3软件工程的目标和原则软件工程的目标可概括为:生产具有正确性、可用性以及开销适宜的软件产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。软件工程的最终目的是摆脱手工生产软件的状况,逐步实现软件研制和维护的自动化。1.3.3软件工程的目标和原则软件工程研究内容:软件开发技术:根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料等作出规定,从而使软件的开发能够进入规范化和工程化的阶段,以克服早期的手工作坊生产中的随意性和非规范性做法。包括:软件开发方法学、开发过程模型、开发工具、软件工程环境软件工程管理软件按工程化生产时的重要环节,它要求按照预先制定的计划、进度和预算执行,以实现预期的经济效益和社会效益。包括:软件管理学、软件工程经济学、软件心理学等内容1.3.3软件工程的目标和原则使用软件工程开发软件系统的过程中,要坚持四项基本原则:选取适宜的开发模型;采用合适的设计方法;提供高质量的工程支持;重视开发过程的管理;1.3.4软件工程基本原理八条一般原理:(1)抽象(2)信息隐藏(3)模块化(4)局部化(5)确定性(6)一致性(7)完备性(8)可验证性1.3.4软件工程基本原理七条基本原理(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应少而精(7)承认不断改进软件工程实践的必要性1.4通信软件工程本节内容1.4.1通信系统1.4.2通信软件1.4.3通信软件工程1.4.1通信系统通信系统基本组成1.4.1通信系统通信网:众多点对点通信系统通过交换系统按一定拓扑结构组合在一起就构成了通信网。通信网的组成:硬件:用户终端设备、传输设备、交换设备软件:通信网为能很好地完成信息的传递和交换所必需的一整套协议、标准,包括网络结构、信令方式、协议和接口、网络管理、技术体制标准等1.4.1通信系统通信网系统基本功能:⑴基本的传输和交换功能。⑵业务控制功能。⑶网络管理功能。1.4.2通信软件凡是用来实现两个或多个实体(计算机、电信终端、交换设备等)之间相互通信的软件都可称为通信软件。电信软件:电话交换软件、移动通信软件、智能网软件等;计算机网络软件:网络协议软件、网络应用软件;1.4.2通信软件电信软件类型1.4.2通信软件⑴基本呼叫处理软件:负责呼叫接续和呼叫状态转移的处理。⑵业务独立逻辑处理模块:将交换机侧相同的处理功能抽象封装而成,如智能网。⑶资源管理:为业务控制软件提供资源控制和管理功能。⑷业务控制:在通信网业务能力基础上提供业务的生成、配置、接入、管理等功能。⑸客户服务:客户关系管理系统(CRM:CustomerRelationshipManagement),包括业务开通、业务保障、业务计量;⑹产品开发与管理电信软件分类:OSS(OperationSupportSystem,运行支撑系统),包括(1)~(4)BSS(BusinessSupportSystem,经营支撑系统),包括(5),(6)电信业内将BSS和OSS结合起来统称为BOSS(BusinessandOperationSupportSystem,运营支撑系统)。某电信运营商系统规划实例1.4.3通信软件工程通信软件工程就是将软件工程知识应用于通信领域,完全遵循软件工程的三要素:过程、方法和工具,只是在过程、方法和工具中要结合通信软件的特点。通信系统是全程全网系统,需遵守协议标准;系统协作,在信息建模同时,需考虑行为建模;分析阶段采用UML来表达软件系统的功能需求和信息需求;用MSC图描述系统与外部环境的交互以及内部对象之间的信息交互;在系统设计阶段采用SDL来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 镇痛药培训课件
- 2025年球型网络摄像机项目可行性研究报告
- 2025年玄武岩纤维布项目可行性研究报告
- 2025年牛肉丁项目可行性研究报告
- 2025春新版六年级科学下册 填空题专项练习
- 低压电器 课件 单元三 项目二 任务三 掌握三相异步电动机单向连续控制线路
- 呼和浩特民族学院《内蒙古地理》2023-2024学年第二学期期末试卷
- 丽水市重点中学2024-2025学年初三毕业班适应性练习卷(化学试题)含解析
- 2025春新版四年级下册语文 【期末复习:文言文专项考查】
- 2025春新版【五年级下册语文】 词语造句训练
- 2025年铸造工艺师职业技能鉴定模拟试题库
- 机器搬迁合同范例
- 追觅科技28题在线测试
- 农产品供应链数字化行业可行性分析报告
- 风光储储能项目PCS舱、电池舱吊装方案
- 小学语文中国诗词飞花令集锦
- 甲状腺结节射频消融治疗
- NC63全产品培训课件-合同管理
- 2024年中信银行唐山分行招聘管理单位遴选500模拟题附带答案详解
- 天车技能培训
- 租车位安装充电桩合同范本
评论
0/150
提交评论