以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

需求规格说明书是谁写的,web创业创新网站需求规格说明书

今天,幸福哥助理继续分享第一章和第三节(2)信息系统设计、软件工程的信息知识

还有面向对象系统分析与设计,等。会不定期整理出来。如果你正好参加这个考试,可以关注我,收藏,或者转发。

一、信息系统设计

信息系统设计是开发阶段的重要内容。其主要任务是从信息系统的总体目标出发,确定系统的总体框架和系统各组成部分的技术方案,合理选择计算机、通信和存储的软硬件设备,根据系统逻辑功能和经济性、技术条件、运行环境和进度要求,制定系统的实施方案。

系统方案设计包括各部分的总体设计和详细设计(物理设计)。

整体系统设计:包括整体系统架构设计、软件系统架构设计、数据存储设计、计算机及网络系统设计等。

详细的系统设计:包括代码设计、数据库设计、人机界面设计、加工工艺设计等。

系统架构将整个系统分解成更小的子系统和组件,从而形成不同的逻辑层或服务。之后进一步确定各层的界面和层间关系。

二、软件工程

软件需求是对要解决的问题的特征的描述。

软件具体需求的分类方法如下:

功能要求:软件必须完成的基本操作

性能要求:描述了软件或人与软件交互的静态或动态数值要求。比如系统响应速度、处理速度等。

设计约束:受到其他标准硬件限制等的影响

属性:可用性、安全性、可维护性、可转让性/可转换性

外部接口需要:用户接口、硬件接口、软件接口和通信接口。

软件需求的三个层次:

业务需求:代表组织或客户的高级目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、营销部门或产品规划部门。业务需求描述了为什么一个组织应该开发一个系统,也就是组织想要实现什么。使用前景和范围文档记录业务需求,有时称为项目大纲图或市场需求文档。

用户需求描述了用户的目标或用户要求系统完成的任务。

功能需求指定了开发人员必须在产品中实现的软件功能,用户可以使用这些功能来完成任务和满足业务需求。

需求开发的过程有四个主要活动:

1.需求获取。主动与用户沟通,捕捉、分析、修正用户对目标系统的需求,提炼满足问题解决的用户需求,产生《用户需求说明书》。

2.需求分析。需求分析的目的是抽象地分析和描述各种需求信息,为目标系统建立概念模型。

3.需求定义。需求定义的目标是根据需求调查和需求分析的结果,进一步定义准确的产品需求,产生《需求规格说明书》。系统设计人员将根据《需求规格说明书》进行系统设计。

4.需求验证。需求验证是指开发人员和用户在对需求达成共识后,共同审核需求文档并做出书面承诺,使需求文档具有商业合同的效力。

三、软件测试的分类方法:

style="font-size:15px;">(一)、白盒测试、黑盒测试、灰盒测试:从是否关心软件内部结构和具体实现的角度划分。


1.白盒测试:白盒测试是把程序看成装在一只透明的盒子里,测试者完全了解程序的结构和处理过程。它根据程序的内部逻辑来设计测试用例,检查程序中的逻辑是否都按预定的要求正确地工作。


2.黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息


3.灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。


(二)、静态测试和动态测试:从是否执行程序的角度划分


1.静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。


2.动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。


(三)、从软件开发的过程按阶段划分有单元测试、集成测试、确认测试、系统测试验收测试


(1)单元测试。单元测试也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或00软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。单元测试的技术依据是软件详细设计说明书,着重从模块接口、局部数据结构、重要的执行通路、出错处理通路和边界条件等方面对模块进行测试。


(2)集成测试。集成测试的目的是检查模块之间,以及模块和己集成的软件之间的接口关系,并验证己集成的软件是否符合设计要求。集成测试的技术依据是软件概要设文档。除应满足一般的测试准入条件外,在进行集成测试前还应确认待测试的模块均己通过单元测试。


(3)确认测试。确认测试主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下类型。


·内部确认测试。内部确认测试主要由软件开发组织内部按照SRS进行测试。


·Alpha测试和Beta测试。对于通用产品型的软件开发而言,Alpha测试是指由用户在开发环境下 进行测试,通过Alpha测试以后的产品通常称为Alpha版;Beta测试是指由用户在实际使用环境下进行测试,通过Beta测试的产品通常称为Beta版。一般在通过Beta测试后,才能把产品发布或交付给用户。


(4)系统测试。系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。系统测试的技术依据是用户需求或开发合同。


(5)验收测试是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。


四、面向对象系统分析与设计


面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。


(1)对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。用计算机语言来描述,对象是由一组属性和对这组属性进行的操作构成的。


对象包含三个基本要素,分别是对象标识、对象状态和对象行为。例如,对于姓名(标识)为Joe的教师而言,其包含性别、年龄、职位等个人状态信息,同时还具有授课等行为特征,Joe就是封装后的一个典型对象。


(2)类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。


(3)抽象:通过特定的实例抽取共同特征以后形成概念的过程。抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。对象是现实世界中某个实体的抽象,类是一组对象的抽象。


(4)封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。


(5)继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。Java是单继承的语言,而C++允许多继承。


(6)多态:使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。


(7)接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。可以将接口理解成为类的一个特例,它规定了实现此接口的类的操作方法,把真正的实现细节交由实现该接口的类去完成。


(8)消息:体现对象间的交互,通过它向目标对象发送操作请求。


(9)组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。组件应当是内聚的,并具有相对稳定的公开接口。


(10)复用:指将己有的软件及其有效成分用于构造新的软件或系统。组件技术软件复用实现的关键。


(11)模式:描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案三个组成部分。应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。


接下来,幸福哥助理用一张图简单表示上面的整体内容,可以清晰掌握。