4、软件工程的目标和与原则
(1)软件工程目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
(2)软件工程需要达到的基本目标应是:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发,及
26
时交付使用。
(3)软件工程原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。 5、软件开发工具与软件开发环境 (1)软件开发工具
软件开发工具的完善和发展将促使软件开发方法的进步和完善,促进软件开发的高速度和高质量。软件开发工具的发展是从单项工具的开发逐步向集成工具发展的,软件开发工具为软件工程方法提供了自动的或半自动的软件支撑环境。 (2)软件开发环境
软件开发环境(或称软件工程环境)是全面支持软件开发全过程的软件工具的集合。
计算机辅助软件工程(CASE,Computer Aided Software Engineering)将各种软件工具、开发机器和一个存放开发过程信息的中心数据库组合起来,形成软件工程环境。它将极大降低软件开发的技术难度并保证软件开发的质量。 真题讲解:2005年4月选择题第8题,2005年9月选择题第5题,2005年9月选择题第7题,2006年9月选择题第3题。
3.2 结构化分析方法
结构化方法的核心和基础是结构化程序设计理论。 1、需求分析
27
需求分析方法有:(1)结构化需求分析方法;(2)面向对象的分析方法。
*:需求分析的任务就是导出目标系统的逻辑模型,解决“做什么”的问题。
*:需求分析一般分为需求获取、需求分析、编写需求规格说明书和需求评审四个步骤进行。 2、结构化分析方法
结构化分析方法是结构化程序设计理论在软件需求分析阶段的应用。
结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的常用工具:(1)数据流图;(2)数据字典;(3)判定树;(4)判定表。
数据流图:描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统功能建模。下图是数据流图的基本图形元素:
下图是一个数据流图的示例:
28
加工数据流存储文件源、潭
数据字典:对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。 *:数据字典的作用是对数据流图中出现的被命名的图形元素的确切解释。
*:数据字典是结构化分析方法的核心。
判定树:从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。
判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。 3、软件需求规格说明书
软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。
软件需求规格说明书的特点:(1)正确性;(2)无歧义性;(3)完整性;(4)可验证性;(5)一致性;(6)可理解性;
29
(7)可追踪性。 3.3 结构化设计方法 1、软件设计的基础
*:需求分析主要解决“做什么”的问题,而软件设计主要解决“怎么做”的问题。
软件设计主要内容包括:软件结构设计、数据设计、接口设计、过程设计。(按技术观点划分)
软件设计分两步完成,即概要设计和详细设计。(按工程管理角度划分)
软件设计的基本原理包括:抽象、模块化、信息隐蔽和模块独立化。
*:模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标。
内聚性:是一个模块内部各个元素间彼此结合的紧密程度的度量。
偶合性:是模块间互相连接的紧密程度的度量。
*:一个设计良好的软件系统应具有高内聚、低耦合的特征。 2、总体设计(概要设计)和详细设计 (1)总体设计(概要设计)
软件概要设计的基本任务是:1)设计软件系统结构;2)数据结构及数据库设计;3)编写概要设计文档;4)概要设计文档评审。
30