1、软考架构师软考架构师演讲人2020-09-15软件工程软件工程01软件工程软件开发方法01系统设计04软件开发模型02软件测试05需求工程03软件调试06系统运行与维护软件工程软件工程软件开发方法结构化法01原型法02面向对象方法03面向服务方法04逆向工程05净室软件工程06软件工程软件开发模型瀑布模型01增量模型与螺旋模型02V模型03构建组装模型04统一过程也叫UP05软件开发模型-敏捷开发方法06软件开发模型-敏捷开发方法xp极限编程cockburn的水晶系列方法开放式源码ASD方法FDDSCRUM软件工程需求工程需求开发需求管理需求获取需求分类获取方法需求分类u 业务需求u 用户需求
2、u 系统需求u 性能需求u 设计约束u 基本需求u 期望需求u 兴奋需求需求获取获取方法u 搜集资料u 联合讨论会u 用户访谈u 现场观摩u 参加业务实践u 阅读历史文档u 抽样调查需求获取需求开发需求分析SAOOA需求开发需求定义严格定义法原型法需求开发需求验证需求评审需求测试需求管理需求跟踪需求状态跟踪定义需求基线变更控制版本控制系统设计软件工程人机界面设计01结构化设计02面向对象设计03结构化设计概要设计详细设计 单一职责原则:设计摸底单一的类面向对象设计开放-封闭原则:对扩展开放,对修改封闭面向对象设计 李氏替换原则:子类可以替换父类面向对象设计依赖导致原则:要依赖于抽象,而不是具体
3、的实现;针对接口编程,不要针对实现编程面向对象设计接口隔离原则:使用多个专门的接口比使用单一的总接口要好面向对象设计组合重用原则:要尽量的使用组合,而不是继承关系达到重用的目的。面向对象设计迪米特原则(最少只是法则):一个对象应该对其他对象有尽可能少的了解。面向对象设计设计模式的概念面向对象设计架构模式01设计模式02惯用法03设计模式的分类创建型模式:创建对象结构型模式:更大的结构行为型模式:交互及职责分配创建型模式:创建对象u工厂方法(factory method)模式u抽象工厂模式(abstract factory)u原型模式(prototype)u单例模式(singleton)u构建器
4、模式(builder)设计模式的分类结构型模式:更大的结构u 适配器模式(adapter)u 桥接模式(bridge)u 组合模式(composite)u 装饰模式(decorator)u 外观模式(facade)u 享元模式(flyweight)u 代理模式(proxy)设计模式的分类行为型模式:交互及职责分配u 职责链模式(chain of responsibility)u 命令模式(command)u 解释器模式(interpreter)u 迭代器模式(iterator)u 中介者模式(mediator)u 备忘录模式(memento)设计模式的分类行为型模式:交互及职责分配u观察者模式
5、(observer)u状态模式(state)u策略模式(strategy)u模板方法(template method)u访问者模式(visitor)设计模式的分类软件工程软件测试010203测试类型01测试阶段02面向对象的测试03动态测试 黑盒测试白盒测试灰盒测试静态测试 桌前检查代码审查代码走查测试类型测试阶段单元测试:模块测试,模块功能,性能,接口集成测试:模块间的接口确认测试:验证软件与需求的一致性系统测试:真实环境下,验证完整的软件配置项能否和系统正确连接回归测试:测试软件变更后变更部分的正确性对变更需求的符合性冒烟测试面向对象的测试A算法层(单元测试)C模板层(集成测试)B类层(模
6、块测试)D系统层软件调试u软件调试的方法软件工程软件调试的方法蛮力法回溯法原因排除法软件工程系统运行与维护可维护性维护类型可维护性ABCD易分析性易改变性稳定性易测试性维护类型A改正性维护(25%)C预防性维护(5%)B适应性维护(20%)D完善性维护(50%)系统安全分析与设计系统安全分析与设计02系统安全分析与设计安全基础技术网络安全信息安全体系结构安全保护等级计算机病毒与木马安全基础技术系统安全分析与设计PKI公钥体系04信息摘要03对称加密与非对称加密01数字签名02安全基础技术 信息摘要CA(数字证书的颁发机构)RA(身份审核的机构)证书受理点(负责接收业务请求)密钥管理中心-KMC
7、PKI公钥体系对称加密非对称加密对称加密与非对称加密 数 字 签 名系统安全分析与设计网络安全安全协议01防火墙02入侵检测03各个网络安全层次的安全保障04网络威胁与攻击05安全协议网络安全 防火墙网络安全入侵检测网络安全网络安全各个网络安全层次的安全保障应用层01表示层02会话层03传输层04网络层05数据链路层06各个网络安全层次的安全保障u物理层网络安全被动攻击(搜集信息为主,破坏保密性)窃听(网络窃听)业务流分析非法登录主动攻击(中断,篡改,伪造)假冒身份抵赖旁路控制重放攻击拒绝服务(DOS)网络威胁与攻击系统安全分析与设计安全保护等级用户自主保护级01系统审计保护级02安全标记保护
8、级03结构化保护级04访问验证保护级05安全保护等级D结构化保护级E访问验证保护级A用户自主保护级B系统审计保护级C安全标记保护级信息安全体系结构系统安全分析与设计鉴别服务访问控制抗抵赖(数字签名)数据保密性数据完整性信息安全体系结构D数据保密性E抗抵赖(数字签名)A鉴别服务B访问控制C数据完整性项目管理项目管理03范围管理范围计划编制 范围定义产品范围工作范围创建WBSWBSWBS字典范围控制 范围确认 时间管理活动定义01活动历时估算04活动排序02制定进度计划05活动资源估算03进度控制06时间管理01前导图法(单代号网络图PDM)02关键路径法03自由时差活动历时估算u专家判断法u三点
9、估算法u功能点估算法u自上而下的估算u自下而上的估算时间管理进度控制u是否为关键活动u偏差是否大于总时差u偏差是否大于自由时差u赶工u快速跟进时间管理项目管理成本管理成本估算01成本控制03成本预算02挣值管理04 质量保证(质量审计和过程分析)CMMI(软件过程改进)质量控制软件质量管理软件配置管理01 配置项开发库受控库产品库配置库02 变更控制03项目管理风险管理01风险的概念(基本属性:随机性和相对性)02项目风险03技术风险04商业风险软件架构设计软件架构设计04软件架构设计软件架构的概念软件架构风格架构描述语言ADL软件质量属性基于架构的软件开发方法特定领域软件架构DSSA软件架构
10、设计软件架构评估01J2EE04软件产品线02.NET05中间件技术03web架构设计06软件架构设计软件架构的概念软件架构的基本要素软件架构建模软件架构的概念软件架构的基本要素软件架构建模软件架构的概念软件架构的基本要素构件连接件配置软件架构的概念软件架构建模结构模型01框架模型02动态模型03过程模型04功能模型054+1视图06软件架构风格软件架构设计数据流风格调用/返回风格独立构件风格RIA富互联网应用仓库风格虚拟机风格软件架构设计软件架构风格基于服务的架构SOA01微服务02数据流风格u批处理序列,管道-过滤器软件架构风格调用/返回风格u主程序/子程序,面向对象、层次结构软件架构风格
11、独立构件风格u进程通信,事件驱动系统(隐式调用)软件架构风格虚拟机风格u解释器,基于规则的系统软件架构风格仓库风格u数据库系统,超文本系统,黑板系统软件架构风格RIA富互联网应用软件架构风格基于服务的架构SOA软件架构风格ESB01关键技术REST02微服务优势面临的挑战优势u 技术异构性u 弹性u 扩展u 简化部署u 与结织结构相匹配u 可组合性u 对可替代性的优化微服务面临的挑战u分布式系统的复杂度u运维成本u部署自动化u服务间依赖测试u服务间依赖管理微服务特定领域软件架构DSSA软件架构设计领域分析01领域设计02领域实现03特定领域软件架构DSSA领域实现叁领域设计贰领域分析壹基于架构
12、的软件开发方法u开发过程软件架构设计开发过程基于架构的软件开发方法软件质量属性软件架构设计性 能可 靠 性可 用 性安 全 性功 能 性可 变 性软件质量属性u互操作性软件架构设计软件质量属性1性能2可靠性3可用性4安全性5功能性6可变性互操作性软件质量属性软件架构设计软件架构评估几个点01ATAM02质量效用树03SAAM04软件架构评估01几个点风险点敏感点权衡点02ATAM 03质量效用树 04SAAM 计算机组成与体系结构计算机组成与体系结构05计算机组成与体系结构系统配置与性能评价系统配置与性能评价06系统配置与性能评价系统可靠性分析与设计系统可靠性分析与设计07系统可靠性分析与设计操作系统操作系统08操作系统数据库系统数据库系统09数据库系统计算机网络计算机网络10计算机网络知识产权与标准化知识产权与标准化11知识产权与标准化数学与经济管理数学与经济管理12数学与经济管理感谢聆听感谢聆听