欢迎来到天天文库
浏览记录
ID:5431638
大小:131.50 KB
页数:15页
时间:2017-11-12
《现代软件工程(第二讲) 软件工程现状及其发展》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一讲:软件工程现状及其发展软件发展现状软件危机软件工程及其发展阶段软件工程框架软件发展趋势(软件产业化)一、软件发展现状(1)已经存在大量正在运行的软件。金融、电信、航空航天等(2)软件的应用范围不断扩大。商务、交通、家电等,软件无处不在。(3)软件的规模与复杂性持续增加非常大规模系统:从50万行增加到1000万行,扩大了20倍;复杂性:a.子系统数目越来越多;b.计算机应用从数值计算开始发展到几百万条指令的大型企业业务应用,再发展到几千万终端用户直接交互工作的网络应用。(4)出现了大量与软件相关的标准。CORBA、UML、XMI、
2、TMN等。(5)软件危机仍然存在(软件脱节)1968-2009:软件效率、质量、进度、预算无法控制。一、软件发展现状问题:1.没有“计算机”和“软件”,世界会是什么样子?人们的生活已经无法离开计算机软件。2.如何更多、更快、更方便、更好地开发出软件?工程化地管理软件开发。(1968年NATO提出软件工程的概念)SE:倡导以工程的原理、原则和方法进行软件开发,以期解决当时出现的“软件危机”。3.如何重用过去的经验呢?软件体系结构风格、设计模式、部件等。4.在分布式网络环境下如何提高软件的适应能力呢?CORBA、COM/DCOM、Java
3、Bean等。二、软件危机1.什么是软件危机?指在计算机软件开发和维护过程中所遇到的一系列问题。(1)软件开发无计划性:不能正确估计软件开发成本和进度,无法估计工作量,难于控制开发进度。(2)软件需求不充分:需求是设计的基础,需求不充分直接导致软件产品不可靠,满足不了用户的需求,甚至无法使用。(3)软件开发过程无规范性:各行其是,没有文档。(软件工程过程中的四个基本活动:规格说明、开发、确认、演进)(4)软件无评测手段:软件质量无法保证。(软件产品质量度量、软件过程质量控制和保证)二、软件危机2.什么原因导致软件危机的?(1)软件的固有
4、特征:软件是复杂的。实际问题的复杂性、感知接受的复杂性、理性表达的复杂性。(另外,软件规模不断扩大。)(2)外部原因:软件开发范型(模型)软件设计方法(方法)软件开发支持(工具)软件开发管理(过程)三、软件工程发展阶段软件工程是一类求解软件的工程,它应用计算机科学、数学(用于构造模型和算法)和管理科学(用于计划、资源、质量和成本等的管理)等原理,借鉴传统工程(用于制定规范、设计范型、评估成本、权衡结果)的原则和方法,创建软件以达到提高质量、降低成本的目的。软件工程是一门指导计算机软件开发和维护的工程学科。三、软件工程发展阶段软件工程经
5、历了30多年的历史,其发展大致可以划分为两个阶段:1、60年代末~80年代初状况:软件系统的规模、复杂性以及在关键领域的广泛应用,促进了软件开发过程采纳工程化的方法进行管理。研究:开发模型、支持工具、开发方法。成果:瀑布模型、结构化语言(pascal等)、结构化方法、各种管理方法(如费用估算、文档复审)。事件:前期主要研究系统实现技术;后期则开始强调管理和软件质量。焦点:软件项目三、软件工程发展阶段2、80年代初~现在状况:“软件工厂”的概念已经提出。研究:软件生产技术,特别是软件复用技术和软件生产管理的研究和实践。成果:提出了具有广
6、泛应用前景的面向对象方法和相关的编程语言。事件:软件过程改进。在工业实践中建立起一种量化的评估程序,判定软件组织成熟的程度。焦点:软件过程三、软件工程发展阶段近几年:研究从过程管理转向产品开发,更加注重新的程序开发范型和软件生产。范围:面向agent语言、复用技术、需求分析规格说明的形式化研究、高智能高自动化的CASE成为热点。四、软件工程框架软件工程的框架是由软件工程目标、软件工程活动和软件工程原则三个方面的内容构成的。开发范型设计方法支持过程管理过程需求设计实现确认支持可用性正确性合算性软件工程活动维软件工程目标维软件工程原则维4
7、.1软件工程目标目标:生产具有正确性、可用性以及开销适宜的软件产品。正确性:软件产品达到预期功能的程度。可用性:软件基本结构、实现及文档为用户可用的程度。开销适宜:软件开发、运行的整个开销满足用户要求的程度。决定了:软件过程、过程模型和工程方法的选择。4.2软件工程活动活动:生产一个最终满足需求且达到工程目标的软件产品所需要的步骤。1、需求:问题分析:需求获取和定义,又称软件需求规约。需求分析:生成软件功能规约。2、设计:概要设计:建立整个软件的体系结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义等。详细设计:产生程序员可
8、用的模块说明,包括每一模块中数据结构说明及加工描述。3、实现:把设计结果转换为可执行的程序代码。4、确认:贯穿整个开发过程,对完成的结果进行确认,保证产品满足用户的要求。5、支持:修改和完善活动。4.3软件工程原则软件工
此文档下载收益归作者所有