高项 - 第一章 信息化和信息系统 (2)
1.4 软件工程
需求分析
需求的层次
业务需求
用户需求
系统需求:功能需求,非功能需求,设计约束
质量功能部署
质量功能部署:Quality Function Deployment,QFD,将用户需求转化为软件需求技术,QFD 将软件需求分为:
常规需求:用户认为系统应该做到的功能或性能,实现越多用户会越满意,不一定提出,或者不愿意说,没必要说,理所当然应该做到
期望需求:用户想当然认为系统应具备的功能或性能,能较明确的提出,但是并不能正确描述自己想要的需求,不实现,会不满意
意外需求,也称为兴奋需求,是用户要求范围外的功能或者性能。实现了会高兴,不实现也不影响用户购买决策。客户自己也不知道的需求。
无差异需求
逆向需求
需求分析
软件需求规格说明书
GB 强制标准
GB/T 推荐标准,建议
需求验证
也称为需求确认,在系统分析阶段,确认需求正确性。
在实际工作中,一般通过需求评审和需求测试工作来对需求进行验证。
UML
关系:
依赖
关联
泛化
实现
图形:
类图:描述一组类、接口、协作和他们之间的关系。
对象图:描述一组对象以及他们之间的关系
构件图:描述一个封装的类和他的接口、端口、以及由内嵌的构件和连接件构成的内部结构
组合结构图:描述结构化类的内部结构
用例图:一组用例,参与者以及他们之间的关系
顺序图(序列图):交互图,强调顺序,时序
通信图:交互图,强调收发消息的对象或参与者的结构组织
定时图:交互图,强调消息跨域不同对象或参与者的实际时间,
状态图:状态机,体现状态的变化。
活动图:
部署图
制品图:描述系统的物理结构
包图:
交互概览图:活动图+顺序图的混合物。
视图:
逻辑视图
进程视图
实现视图
部署视图
用例视图
面向对象分析核心是:建立系统的用例模型与分析模型。
用例模型构建阶段:4 个阶段:识别参与者、合并需求获得用例、细化用例描述和调整用例模型,前三个阶段必需的
分析模型:定义类、确定类之间的主要关系。
类之间的主要关系
软件架构设计
目的:解决好软件的复用、质量和维护问题是研究软件架构的目的。
软件架构风格
数据流风格:批处理序列,管道/过滤器两种风格。
调用/返回风格:主程序/子程序、数据抽象和面向对象,以及层次结构。
独立构件风格:进程通信和事件驱动
虚拟机风格:解释器和基于规则的系统
仓库风格:数据库系统、黑板系统和超文本系统
软件架构评估
软件设计
需求分析:做什么,软件设计:怎么做
软件设计师需求分析的延申和拓展
软件设计分为结构化设计和面向对象设计。
结构化设计:
SD 是一种面向数据流的方法,
以 SRS 和 SA 阶段所产生的 DFD 和数据字典等文档为基础
是自顶向下、逐步求精和模块化的过程
在 SD 中,需要遵循一个基本原则:高内聚,低耦合。
面向对象设计
OOD 是 OOA 方法的延续,基本思想:抽象,封装和可扩展。可扩展通过继承和多态来实现
OOD 的主要任务:对类和对象进行设计,包括类的属性,方法,类之间的关系
提高软件的可复用性是一个至关重要的问题。
设计模式
根据处理范围不同,分为:类模式和对象模式
类模式处理类与子类的关系,通过继承建立,在编译时刻就被确定下来,属于静态模式
对象模式处理对象之间关系,在运行时刻变化,动态模式
根据目的和用途不同,分为:创建型模式、结构型模式和行为型模式
软件工程的过程管理
CMM,软件能力成熟度模型 Capablity Maturity Model For Software。
软件产品的质量取决于软件过程。软件过程管理方面,最著名的是能力成熟度模型集成-CMMI(Capability Model Integration)
阶段式、连续式模型
阶段式模型
成熟度等级:可管理,已定义,量化管理,优化管理。
体现了组织成熟度进化阶段
连续式模型
分组:过程管理,项目管理,工程,支持。
与阶段模型相比,连续式模型没有与组织成熟度相关的几个阶段,连续式模型是将 24 个过程域按照功能划分的过程组。
软件测试及管理
概念:
软件测试:发现软件错误(缺陷)的主要手段
GB/T15532-2006、计算机软件测试规范。包括测试用例的设计原则和用例要素。
测试的方法:分为:静态测试和动态测试
静态测试:
静态测试包括对文档和代码的静态测试,不在机器上面运行,采用人工检测和计算机辅助静态分析。
对文档静态测试主要是以检查单的形式进行,而对代码的静态测试采用桌前检测(Desk Checking)、代码走查和代码审核。
使用静态测试能有效地发现 30%-70%的逻辑设计和编码错误。
动态测试:白盒测试和黑盒测试。
白盒测试也叫结构测试,主要用于软件单元测试中。
静态测试的方法也可以实现白盒测试,例如人工代码检查代码逻辑问题,也是白盒测试范畴。
白盒测试中最常用的是逻辑覆盖
黑盒测试也成为功能测试,主要用于集成测试,确认测试和系统测试中。
黑盒测试根据 SRS 规定的功能来编写测试用例,一般包括:等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等。
测试的类型:
单元测试
集成测试
确认测试
验证软件的功能、性能和其他特性是否与用户需求一致。根据用户参与的程度分为:
内部确认测试,软件开发组织,按照 SRS 进行测试
Alpha 测试,由用户在开发环境测试,通过 Alpha 测试后的产品称为 Alpha 版
Beta 测试,用户在实际环境下测试,Beta 测试后的产品称为 Beta 版,一般在 Beta 版测试后,才能发布产品交付用户。
验收测试。针对 SRS,在交付前以用户为主进行的测试,在真实的用户工作环境下,检验软件系统是否满足开发技术合同或 SRS.
系统测试
系统测试的对象是完整的、集成的计算机系统,目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统设计文档和软件开发合同贵的要求;依据是用户需求或开发合同
配置项测试
对象是软件配置项,目的是检验软件配置项与 SRS 一致性
回归测试
目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和而其他规定的要求不损害性。
软件调试
测试成功的标志是发现了错误,根据错误确认错误原因和位置,并改正,主要依靠软件调试技术
软件调试和测试的区别:
测试目的是找出存在的错误,调试目的是定位错误并修改程序修正错误
调试是测试之后的活动,测试和调试正在目标,方法和思想上不同
测试从一个已知条件开始,使用预定义的过程,有预知结果;调试从一个未知的条件开始,结束的过程不可预计。
测试过程可以事先设计,进度可以事先确定;调试不能描述过程或持续时间。
软件测试管理
包括:过程管理、配置管理和评审工作。
过程管理:包括测试活动管理和测试资源管理,软件测试应由相对独立的人员进行。
配置管理:测试过程中产生的各种工作产品纳入配置管理
评审。包括测试就绪评审和测试评审。
测试就绪评审:在测试执行之前对测试计划和测试说明进行评审;
测试评审:是在测试完成后,评审测试过程和测试结果的有效性。
软件系统集成技术
软件层次的集成技术:EAI (Enterprise Application Integration) 企业应用集成。
EAI 可以消除信息孤岛,将企业信息系统连接起来,实现无缝集成。
EAI 包括:表示集成、数据集成、控制集成和业务流程集成等多个层次和方面。(集成难度从低到高)
表示集成:
又称为界面集成,比较原始和最浅层次的集成,但是又最常用的集成。
是黑盒集成
数据集成:
为了完成控制集成和业务流集成,必须首先解决数据和数据库的集成
白盒集成
控制集成
也称为功能集成或应用集成,是在业务逻辑层上对应用系统进行集成
集成处可能只需要简单使用公开 API 就可以访问
灵活性更高
白盒集成
业务流程集成
也称为过程集成,超越了数据和系统,它由一系列基于标准的、统一数据格式的工作流。
白盒集成
1.5 新一代信息技术
物联网
两项关键技术:传感器技术,嵌入式技术
RFID(射频识别)是物联网中使用的一种传感器技术,通过无线电信号识别目标并读写数据,无需建立机械或光学接触
嵌入式是一种专用的计算机系统,作为装置或设备的一部分。
物联网三层结构
物联网架构三层:感知层、网络层和应用层
应用
智慧城市
智慧城市五个层级
物联感知层
通信网络层
计算与存储层
数据及服务支持层
智慧应用层
智慧城市三个支撑体系
安全保障体系
建设和运营管理体系
标准规范体系
云计算
服务类型
IaaS (Infrastructure-as-a-Service 基础设施即服务)
PssS(Platform-as-a-service 平台即服务)
SaaS(Software-as-a-service 软件即服务)
大数据
特点
5 个 V,Volume-大量,Variety-多样、Value-价值(价值密度低)、Velocity-高速、Veracity-真实性
移动互联
1.6 信息系统安全技术 必考
信息安全属性
私密性(Confidentiality):信息不被未授权者知晓的属性
完整性(Integrity):信息是正确的,真实的,未被篡改的,完整无缺的
可用性(Availability):信息可以随时正确使用的属性
信息安全层次划分
信息安全等级保护
GB17859-1999 五个安全保护等级,一定要记住。
信息加解密
加密技术包括两个元素:算法和密钥
对称加密,加密和解密密钥一样,使用起来简单,密钥较短,破译简单,算法:DES,IDEA,AES
非对称加密 RSA 算法为代表,加密密钥 Ke 和解密密钥 Kd 不同,加密密钥可以公开,解密密钥需要保密。
信息系统安全
计算机设备安全
防火墙
阻挡对网络的非法访问和不安全数据的传递
主要用于逻辑隔离外部网络与受保护的内部网络
主要是实现网络安全的安全策略,是预先定义好的,所以是一种静态安全技术。
入侵检测和防护
操作系统安全-威胁表现形式
计算机病毒
逻辑炸弹
特洛伊木马
后门
隐蔽通道
Web 威胁防护技术包括:
web 访问控制技术
单点登录技术
网页防篡改技术
web 内容安全
版权声明: 本文为 InfoQ 作者【索隆】的原创文章。
原文链接:【http://xie.infoq.cn/article/bdd98537ecc81006f16b7ae94】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论