软件工程定义:软件工程学就是研究如何有效地组织和管理软件开发的工程的工程学科。IEEE
在1983年将软件工程定义为:软件工程是开发、运行、维护和修复软件的系统方法。
软件生命周期分为需求分析、概要设计(系统设计)、详细设计(组件设计)、编码、测试、维护几个阶段。
需求分析不是具体的解决问题,而是要准确的确定目标系统必须做什么。需求分析模型通常使用UML中的用例图和类图等图形工具来表示,软件需求说明书一般可用数据流图、数据字典和自然语言书写。
概要设计的主要任务是设计程序的体系结构,也就是确定程序有那些模块(组件)组成,以及模块(组件)之间的关系。如果采用面向对象的方法,这里的模块(组件)通常是类。
详细设计的主要任务是详细的设计每个组件,确定实现组件功能所需要的算法和数据结构。如果采用面向对象的方法,组件设计的任务就是写清每一个类的内部属性(数据结构)以及每一个服务的实现细节(算法)。
编码就是把软件设计结果翻译成用某种程序设计语言(编程语言)书写的程序。对于一般的系统应尽量选用高级编程语言;对于工控软件、嵌入式软件,以及其他一些与时间、资源、环境密切相关的软件,可选用一些层次稍低但执行效率高的编程语言,必要时也可选用汇编语言。
软件测试的目的是在软件产品或软件系统交付运行之前,尽可能多的发现软件中的错误和缺陷。
软件维护就是在软件交付使用之后直至软件被淘汰的整个时期内为了改正错误或满足新的需求而改变软件的活动。
软件维护通常有4种类型:改正性维护、适应性维护、完善性维护、预防性维护。
结构化开发方法学也称为生命周期方法学,它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务。这种方法学把生命周期的全过程依次划分为若干个阶段,然后顺利的完成每个阶段的任务。
结构化分析方法是一种面向数据流的需求分析方法。它的基本思想是自顶向下逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最底层的问题都是足够简单、容易解决的,于是复杂问题就迎刃而解了。
数据流图(DFD)、数据字典(DD)、实体-关系图(E-R图),以及描述加工处理的结构化分析的常见工具。
数据流图(DFD)是一种图形化技术,用来描述数据从输入到输出的变换流程。
DFD的主要四种成分:数据流、加工、文件、源/宿。
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典中有4种类型的条目:数据项条目,数据流条目,文件条目,加工条目。
模块是指执行某一特定任务的数据和可执行语句等程序元素的集合,通常是指可通过名字来访问的过程、函数、子程序或宏调用等。 耦合是对一个软件结构内不同模块之间互联程度的度量。 一个模块的扇出是指该模块直接调用的下级模块的个数。 一个模块的扇入是指该模块直接调用的上级模块的个数。 设计良好的软件结构通常顶层扇出比较大。中间扇出较少,底层模块有较大扇入。 模块的作用域是指受该模块内一个判定影响的所有模块的集合。 模块的控制域是指该模块直接或间接被调用的所有模块的集合。
上一篇:软件评测师学习笔记--黑盒测试 下一篇:软件测试全套资料 |