软件工程复习整理版.docx
文本预览下载声明
复习大纲:题型: 1、单向选择题(共30分,每题2分)2、填空题(共20分,每小题1分)3、简答题(共30分,每小题6分)4、应用题(包括2小题,共20分)绪论软件的概念,程序和文档,软件的特征。软件的概念:软件是能够完成预定功能和性能的可执行的计算机程序,包括是程序正常执行的所需要的数据,以及有关描述程序操作和使用的文档。简而言之,可以表述为“软件=程序+文档”。软件的特征:软件是逻辑产品而不是物理产品,具有与硬件完全不同的特征。1.软件开发不同于硬件设计: 软件开发主要是脑力劳动;软件开发成本高。2.软件生产不同于硬件制造: 软件生产无明显制造过程;制造只是简单的拷贝。3.软件维护不同于硬件维修: 软件是逻辑产品不是物理产品;软件无磨损性;软件危机的定义、表现、产生时间、原因。软件危机的定义:在软件的开发和维护过程中遇到的一系列严重问题。表现:1、经常延期,无法按时提交产品; 2、无法满足用户的期望;3、很难适应环境的变化; 4、产品提交后出现很多问题。产生的时间:开始于20世纪60年代中后期(1968年前后)。原因:1、软件维护费用急剧上升,直接威胁计算机应用的扩大。 2、软件生产技术进步缓慢,是加剧软件危机的重要原因。软件工程的概念。软件工程的概念:采用工程化的原理和方法对软件进行计划、开发和维护。软件工程=软件开发技术+软件工程管理软件工程环境的概念。软件工程环境的概念:方法和工具相结合,再加上配套的软、硬件支持就形成软件工程环境。3种编程泛型:过程式编程泛型、面向对象编程泛型、基于构件技术的编程泛型过程式编程泛型:程序 = 数据结构 + 算法面向对象编程泛型:程序 = 对象 + 消息基于构件技术的编程泛型:构件是一种通用的(可复用的)、可支持不同应用程序的软件组件。(1)过程式编程范型:着眼于程序的过程和基本控制,粒度最小。(2)面向对象编程范型:着眼于程序中的对象,粒度比较大。(3)基于构件技术的编程范型:着眼于适合整个领域的类对象,粒度更大。3代软件工程:传统软件工程或经典软件工程、面向对象软件工程、基于构件的软件工程(1) 传统软件工程或经典软件工程:结构化分析→结构化设计→面向过程编码→测试(2) 面向对象软件工程:OO分析→OO设计→OO编码与测试(3) 基于构件的软件工程:领域分析→领域设计→建立可复用构件库→按“构件集成模型”查找与集成构件三代软件工程并非相互排斥,而是“你中有我,我中有你”。软件生存周期与软件过程软件生存周期的概念。一个软件从开始计划起,到废弃不用的整个时期,称为软件生存周期。软件生存周期包含3个时期。软件生存周期包含3个时期:计划、开发和运行时期。各时期又分为若干阶段,共6个阶段。软件生存周期的主要活动。可行性研究、需求分析、软件设计、编码、测试、运行维护。软件设计分为几个部分?总体设计:又称概要设计,主要确定软件的体系结构。详细设计:又称过程设计,主要设计每个模块的实现细节。软件测试分为几个层次?单元测试、集成测试、确认测试和 系统测试。软件开发模型总结开发模型特点场合瀑布模型(基于软件生存周期的线性开发模型,历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发的软件产品可能并不是客户真正需要的)线性模型,每个阶段必须完成固定文档需求明确的中小型软件开发快速原型模型(正是为了克服瀑布模型的缺点提出来的,他通过快速构建起一个可以在计算机上运行的原型系统,让用户 使用原型并收集用户反馈意见的方法,获取用户的真实需求)用户介入早,通过迭代完善用户需求,应用快速开发工具。逼真、快速。需求模糊的小型软件开发增量模型(具有可在软件开发的早期阶使投资获得明显回报和交易维护的优点,但是,要求软件具有开放的结构是使用这种模型固有的困难。)每次迭代完成一个增量,可用于OO开发容易分块的大型软件开发螺旋模型(结合瀑布模型与快速原型模型基础上演变而成,适用于大型软件项目,但是只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会成功。)计划、风险分析、建立原型、用户评审。典型迭代模型,重视风险分析,可用于OO开发。在项目开发的所有阶段都考虑各类风险。具有不确定性的大型软件开发构件集成模型(面向对象基于构件库,融合螺旋模型的特征,支持软件开发,迭代方法,软件复用思想)软件开发与构件开发平行进行,主要用于OO开发领域工程,行业的中型软件开发,主要用于oo开发统一过程模型RUP(Rational Unified Process)。RUP 是美国 Rational 公司(现被IBM 公司兼并,称 IBM- Rational 公司)开发的一种支持UML建模过程的软件工具。RUP是以用例为驱动、以系统架构为中心的迭代与增量过程。RUP在一个二维空间中描述软件
显示全部