欢迎来到天天文库
浏览记录
ID:61446339
大小:222.00 KB
页数:20页
时间:2021-01-31
《第3章-软件工程基础.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第3章软件工程基础一、软件工程基本概念1.软件定义与软件特点(1)软件的定义计算机软件(Software)是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。(2)软件的组成①机器可以执行的程序和数据;②机器不可执行的,与软件开发、运行、维护、使用等有关的文档。(3)软件的特点①软件是一种逻辑实体,而不是物理实体,具有抽象性。可记录在纸上或存储介质上,无法看到其本身形态,必须通过观察、分析、思考、判断才能了解其功能和特性。②软件的生产与硬件不同,它没有明显的制作过程。开发成功可以大量复制,所以对软件的质量控制主要集中在开发方面。③软件在运行、
2、使用期间不存在磨损、老化问题。软件虽然在生存周期后期不会因为磨损而老化,但为适应硬件等变化,必要时要做出修改。修改可能会引入错误,导致软件失效率升高,软件退化。④软件的开发、运行对计算机系统有很大依赖性,导致软件出现移植问题。⑤软件复杂性高,成本昂贵。软件开发涉及各行业的专业知识,需要投入大量、高强度的脑力劳动,成本高,风险大。⑥软件开发涉及诸多的社会因素。许多软件的开发和运行涉及软件用户的机构设置,体制问题以及管理方式等,甚至涉及人们的观念和心理,软件知识产权及法律等问题。(4)软件的分类软件按照应用功能划分,可分为:①应用软件应用软件是为解决特定领域的应用而开发的
3、软件。常用的应用软件:事务处理软件,工程与科学计算软件,实时处理软件等。②系统软件系统软件是计算机管理自身资源,提高计算机使用效率并服务于其他程序的软件。常用的系统软件:操作系统,编译程序,汇编程序,网络软件,数据库管理系统等③支撑软件支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件。常用的支撑软件:需求分析工具软件,设计工具软件,编码工具软件,测试工具软件等。2.软件危机与软件工程(1)软件危机①定义软件危机泛指计算机软件的开发和维护过程中所遇到的一系列严重问题。②主要表现a.软件需求的增长得不到满足,用
4、户对系统不满意的情况经常发生;b.软件开发成本和进度无法控制,开发成本超出预算,开发周期大大超过规定日期的情况经常发生;c.软件质量难以保证;d.软件不可维护或维护程度非常低;e.软件的成本不断提高;f.软件开发生产率的提高赶不上硬件的发展和应用需求的增长。③产生原因a.对软件需求速度大大超过了技术进步带来的软件生产率的提高;b.软件工程所面临的任务和其他工程之间的差异以及软件和其他工业产品的不同。(2)软件工程①定义IEEE给出一个综合的定义是:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。②三要素a.方法:完成软件工程
5、项目的技术手段。b.工具:支持软件的开发、管理、文档生成。c.过程:支持软件开发的各个环节的控制、管理。③核心把软件产品当作工程产品来处理,把需求计划、可行性研究、工程审核、质量监督等工程化的概念引入到软件生产当中,以期达到工程项目的三个基本要素:进度、经费和质量的目标。同时,也注重研究不同于其他工业产品生产的一些独特特性,并针对软件的特点提出了许多有别于一般工业工程技术的一些技术方法。代表性的有结构化的方法、面向对象方法和软件开发模型及软件开发过程等。3.软件过程与软件生命周期(1)软件过程①定义ISO9000定义:软件过程是把输入转化为输出的一组彼此相关的资源和活
6、动。②内涵a.为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。通常包括四方面活动:第一,P(Plan)——软件规格说明。规定软件的功能及其运行时的限制;第二,D(Do)——软件开发或软件设计与实现。生产满足规格说明的软件;第三,C(Cheek)——软件确认。确认软件能够满足客户提出的要求;第四,A(Action)——软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。b.使用适当的资源,为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。(2)软件生命周期①定义软件生命周期是指软件产品从提出、实现、使用维护
7、到停止使用退役的过程。②阶段a.软件定义软件定义阶段包括可行性研究初步项目计划和需求分析阶段。主要任务:确定软件开发工作必须完成的目标,确定工程可行性b.软件开发软件开发阶段包括总体设计、详细设计、编码与测试阶段。主要任务:具体完成设计和实现定义阶段所定义的软件,总体设计和详细设计又称为系统设计,编码和测试又称为系统实现。c.软件运行维护软件运行维护阶段包括使用、维护和退役阶段。主要任务:使软件在运行中持久地满足用户的需要,及时改正软件在使用中发生的错误,修改软件以适应不同的使用环境。③各阶段的基本任务a.可行性研究与计划制定确定待开发软件系统的开发
此文档下载收益归作者所有