今天幸福哥助理继续为大家分享第一章 第三节 信息化知识(二) 信息系统设计、软件工程
及面向对象系统分析与设计等复习知识要点,备考笔记知识点的分享会不定期整理,如果你正好参加这个考试,可以关注我,收藏,或者转发。
一、信息系统设计
信息系统设计是开发阶段的重要内容,其主要任务是从信息系统的总体目标出发,根据系统逻辑功能的要求,并结合经济、技术条件、运行环境和进度等要求,确定系统的总体架构和系统各组成部分的技术方案,合理选择计算机、通信及存储的软、硬件设备,制订系统的实施计划。
系统方案设计包括总体设计和各部分的详细设计(物理设计)两个方面。
系统总体设计:包括系统的总体架构方案设计、软件系统的总体架构设计、数据存储的总体设计、计算机和网络系统的方案设计等。
系统详细设计:包括代码设计、数据库设计、人/机界面设计、处理过程设计等。
系统架构是将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。之后,进一步确定各层的接口,层与层相互之间的关系。
二、软件工程
软件需求是针对待解决问题的特性的描述。
软件具体需求分类的方法如下:
功能需求:软件必须完成的基本动作
性能需求:说明软件或人与软件交互的静态或动态数值需求。如系统响应速度、处理速度等。
设计约束:受其他标准硬件限制等方面的影响
属性:可用性、安全性、可维护性、可转移/转换性
外部接口需求:用户接口、硬件接口、软件接口、通信接口。
软件需求的三个层次:
业务需求:表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求文档。
用户需求描述的是用户的目标,或用户要求系统必须能完成的任务。
功能需求规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。
需求开发的过程有四个主要活动:
1.需求获取。积极地与用户进行交流,捕捉、分析和修正用户对目标系统的需求,并提炼出符合解决问题的用户需求,产生《用户需求说明书》。
2.需求分析。需求分析的目的是对各种需求信息进行分析并抽象描述,为目标系统建立一个概念模型。
3.需求定义。需求定义的目标是根据需求调查和需求分析的结果,进一步定义准确无误的产品需求,产生《需求规格说明书》。系统设计人员将依据《需求规格说明书》开展系统设计工作。
4.需求验证。需求验证是指开发方和用户共同对需求文档评审,经双方对需求达成共识后做出书面承诺,使需求文档具有商业合同效果。
三、软件测试的分类方法:
(一)、白盒测试、黑盒测试、灰盒测试:从是否关心软件内部结构和具体实现的角度划分。
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)模式:描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案三个组成部分。应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。
接下来,幸福哥助理用一张图简单表示上面的整体内容,可以清晰掌握。