软件设计是把许多事物和问题抽象起来,应用各种各样的技术和原理,并用它们足够详细的定义一个设备,一个程序或系统的物理实现的过程。
这个步骤是由多方面的直觉与判断力来共同决定的。
采用编程或脚本语言优雅地表达并解决现实需求的一门科学和艺术,所设计出来的软件应当能容易被人理解,方便扩展和维护。
首先是一门科学,是一门解决用户需求的软件科学。
1、软件表面上是指一系列按照特定顺序组织的计算机数据和指令的集合。
一般来讲,软件被划分为系统软件、应用软件和介于这两者之间的中间件。
其中,系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。
而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
软件设施在广义上则是指各种软体设备、文化环境、精神元素,软件是内在的。
2、硬件狭义上是指计算机的各种物质形态的设施,如屏幕、显像管、外套、芯片等。
硬件设施在广义上是指各种硬体设备、物质环境、物化元素。
硬件是外在的。
软件测试是为了发现错误而执行程序的过程。
或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
测试是为了发现软件中存在的错误;证明软件开发的正确性。
测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
测试是有计划的,需要进行测试设计;不受时间约束。
测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程,并且在开发的整个过程中都必须进行调试。
测试的执行是有规程的。
测试经常是由独立的测试组在不了解软件设计的条件下完成的;必须由了解详细设计的开发人员完成。