07_软件工程

1、集成开发环境:IDE,把软件开发工具诸如编辑器、编译器、调试工具等组合到单个集成的程序包中,有些还提供了可视化编程特性,其中 程序是被在计算机上显示为表示构件块的图标可视化的构造。


2、传统的开发阶段:
(1)需求分析
其主要目标是确定预期系统要提供的服务、这些服务运行条件,以及定义外界与系统的交互方式
需求被记录在软件需求规格说明文档中,从某种意义上来说,这个文档是涉及到各个方面的之间达成的书面确认。


(2)设计
为预期系统的构建提供一个解决方案


(3)实现
实现阶段涉及程序的具体编写、数据文件的创建和数据库的开发。


(4)测试
测试本质上是调试程序和确认最终的软件产品是否与软件需求规格说明书相一致的过程。


3、软件工程方法
(1)瀑布模型
强调以一个严格的顺序,按照需求分析、设计、实现和测试阶段进行,理由是,在大型软件中,允许作出随意变更会冒太大的风险,结果软件工程师坚持:完全按照顺序来


(2)增量模型
依据这个模型,所需的软件系统以一种渐进的模式来构建,即软件产品先是以功能有限的简化版本出现,一旦这个版本的系统通过测试或者经未来用户的评估,更过的功能就以递增的方式加到系统中来,然后在测试,直到整个系统全部完成。


(3)迭代模型
增量模型使用扩展产品的每个前期版本到更大版本的概念,二迭代模型则使用重建每个版本的概念,实际,增量模型通常会包含一个迭代过程,而迭代过程通常导致增量结果。


(4)增量模型和迭代模型反映出软件开发采用原型开发,即将预期系统先做成一个非完整版本,称之为原型,并加以评估。


在增量模型中,将这些原型发展为一个最终的完整系统,将这样一个过程称为演化式原型开发。


在另外一些模型中,原型可能会抛弃不用,以使得最后设计有全新的实现,这种方式称为抛弃式原型开发。快速原型开发通常属于抛弃式原型开发这个范畴。


由瀑布模型转化而来的最显著的方法就是被称为敏捷方法的方法学集合,他们都建议在增量的基础上的早期和快速实现,以响应需求变更,降低严格需求规格说明和设计的重要性。


敏捷方法的一个例子就是极限编程。




(5)模块化
就是把软件分割成几个易于处理的单元,通常称为模块,每个模块仅仅承担整个软件的一部分功能。


方法:
结构图


模块之间的了联系称为耦合
一种是控制耦合:出现在一个模块传递控制信息控制另外一个模块执行时
一种数据耦合:模块间的数据共享


(6)内聚
模块间的耦合应最小化,每个模块内部绑定程度应该最大化


内聚就用来表示这种内部绑定


一种是逻辑内聚:内聚度较弱的内聚形式
一种功能内聚:内聚度较强


(7)统一的建模语言UML:Unified Modeling Language
用例图:用大的矩形框来描述预期系统,在这个矩形框中,系统与其用户之间的交互为用例。用例图是从预期系统的外部来观察系统的。
类图:用来表示类的结构和类之间的联系
类图代表的程序设计中的静态特征,不能表示程序在执行过程中发生的事件序列。
交互图是一种序列图,它描述了完成任务所涉及的个体间的通信。




3、软件测试
帕累托法则:尽量多测试确定容易出错的模块,对他们进行彻底的测试,就可以发现系统更多的错误。


黑盒测试:不依赖对软件内部构成的理解
黑盒测试的一种方法是称为边界值分析的技术,它由表明数据范围的等价类构成,其中要确定软件规格说明的边界点,并在这些边界点上测试软件。
另一种测试是β测试:在最终版本发行之前,先将初步版本发给愿意学习的人试用,通过试用来测试。


白盒测试:依赖于对软件内部构成的理解

你可能感兴趣的:(07_软件工程)