《软件工程概论》第一章核心内容

第一章  软件定义:是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。 软件特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。  软件分类。  (1) 系统软件 (2) 应用软件 (3) 支撑软件 (4) 可复用软件   软件危机的原因:1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。2)软件人员与用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法和需求描述工具也是重要的一个原因。3)软件开发过程不规范,缺少方法论和规范的指导,软件难以维护。4)随着软件规模的增大,其复杂性往往会呈指数级升高。5)缺少有效的软件评测手段,提交用户的软件质量差 软件工程的定义:  1.指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理技术和方法进行软件的开发和维护,把经过时间考虑而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护  2.软件工程的目标:运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短 周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。  3.软件的生存周期:软件孕育、诞生、成长、成熟、衰亡的生存过程。由软件定义、软件开发和运行维护三个时期组成。软件定义:解决“做什么”的问题;软件开发:解决“如何做”的问题,分为概要设计、详细设计、编码和测试四个阶段;维护:使软件持久的满足用户的需求。 4.开发过程中的典型文档  a.软件需求规格说明书:描述将要开发的软件做什么。  b.项目计划:描述将要完成的任务及其顺序,并估计所需要的时间及工作量。  c.软件测试计划:描述如何测试软件,确保软件应实现规定的功能,并达到预期的性能。 d.软件设计说明书:描述软件的结构,包括概要设计及详细设计。 e.用户手册:描述如何使用软件  各阶段基本任务:问题定义与可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试。  5.软件生存期模型:  瀑布模型。优点:强迫开发人员规范化方法、严格规定每个阶段必须提交的文档、要求每个阶段交出的所有产品必须经过验证。缺点:完全依赖书面规格说明,可能会导致产品与用户需求有差异、只适用于项目开始时需求已确定的情况。需求分析、规格说明、设计、编码、综合测试、维护  快速原型模型。优点:易于满足用户真实需求、已通过与用户的交互验证,能正确描述用户需求、产品开发基本上按线性顺序、规格文档说明正确描述了用户需求,后期错误率和返工率很低、开发人员建立原型 系统时学到的东西有助于减少后期的错误率、快速开发有助于节约成本,原型的用途是获取用户的正真需求。  增量模型。优点:较短时间内能提交有用产品、逐步增加产品有助于用户适应学习、项目失败风险较低、优先级最高的服务首先交付,则系统核心服务接受最多测试,一般不会失败。注意:新的构件加入系统时必须不破坏已开发出的产品、体系结构必须开放,易于向其中加入新构件。  螺旋模型。四个象限:目标设定、风险估计与弱化、开发与验证、计划。优点有利于已有软件的重用,也有助于把软件质量作为开发的一个重要目标、减少了过多测试或测试不足带来的风险、维护和开发之间没有本质区别。缺点:此模型为风险驱动,要求开发人员必须具有丰富的风险评估经验,否则会意识不到风险的出现导致失败。  6.统一过程的6个核心工作流:业务建模、需求、分析与设计、实现、测试、部署  7.统一过程的4个阶段:初始阶段、细化阶段、构造阶段、移交阶段. a.主要关注项目计划和风险评估,其目的是确定是否值得开发目标系统。b.细化阶段关心定义系统的总体框架,目标是:细化初始需求,细化体系结构,监控风险并细化他们的优先级,细化业务案例以及制定项目管理计划。c.构造阶段是建立系统,构造系统的第一个具有操作性的版本,以能够交付给客户进行β测试版本结束。d.移交阶段包含β测试时期,以发布完完整的系统而终止,其目标是确保系统真正满足客户的需求。 

posted @ 2015-03-01 10:23  马思勉  阅读(147)  评论(0编辑  收藏  举报