重点 壹 软件工程 一、1、什么是软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2、软件危机产生的原因:与软件本身的特点有关,也与软件开发和维护的方法不正确有关 3、软件是程序、数据以及相关文档的完整集合。 二、软件工程方法学三要素:方法、工具和过程 软件工程学的一个重要目标是提高软件质量,减少软件维护代价。 三、 四、软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 五、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性 3、数据流图四种成分:1、源点/终点 2、处理3、数据存储4、数据流 六、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性 3、联系(1:1、1:N、M:N) 七、总体设计: 1、 任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2、 系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3、 模块独立:内聚和耦合 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统 问题定义(确定题目) 可行性研究 需求分析 概要设计 详细设计 编码和单元测试 综合测试 系统设计 系统实现 软件定义 软件开发 运行维护:主要任务是使软件持久地满足用户的需要 软件生命周期: 内聚 (Cohesion): 一个模块内各元素结合的紧密程度 4、 面向数据流的设计方法:变换流和事务流 八、详细设计: 1、 任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2、 过程设计的工具(程序流程图、盒图、PAD 图、判定表、判定树) 3、 面向数据结构的设计方法(jackson 方法): 4、 程序复杂程度的定量(McCabe 方法):1、V(G)=E-N+2(E 是流图中边的条数,N是结点数) 2、V(G)=P+1(P 是流图中判定结点的个数) 3、流图中的区域数等于环形复杂度。 九、编码 十、单元测试:又称模块测试。每个程序模块完成一个相...