5.1软件工程

从软件架构中可以知道构件及其之间的关系

软件架构五大模式从小到大分为:数据流风格(批处理、管道)、调用/返回风格(主/子函数、面向对象、层次)

、独立构件风格(事件、通信)、虚拟机风格(解析器、规则)、仓库风格(数据库、黑板、超文本)

软件架构评估方式三种方式(从外到内):基于调查问卷(检查表)方式、基于场景的方式和基于度量的方式。(常用基于场景的方式)

基于场景的方式:架构权衡分析法(ATAM)、软件架构分析法(SAAM)、成本效益分析法(CBAM).主要考察场景三个方面(刺激 环境 响应)

软件需求描述的是系统相关的各方面需求:业务需求(高层次需求) 用户需求(具体需求) 系统需求(方案需求)

质量功能部署(QFD):将用户需求功能分配给系统,转换成系统技术需求,将软件需求分三类:常规需求(基本需求) 期望需求 意外需求(兴奋需求)

需求过程:需求获取 需求分析 需求规格说明和编制(需求定义) 需求验证与确认

需求获取方式:用户访谈\问卷调查\采样\情节串联板\联合需求计划

需求分析:需求分析模型:行为模型(状态转换图STD)\功能模型(数据流图DFD)\数据模型(E-R图)

需求规格说明和编制(SRS)

需求验证与确认(评审SRS)

统一建模语言UML(构造块\规则\公共机制)

事物也为建模元素:结构事物(静态)\行为事物(动态)\分组事物\注释事物

UML关系:

依赖:事物之间的关系

关联:一组事物之间的关系

泛化:一般和特殊化

实现:类之间的关系

类图:类接口 写作和它们之间的关系

对象图:对象及它们之间的关系

构件图:构件和连接件构成的内部结构

组合结构图:结构化类的内部结构

用例图:用例 参与者和它们间的关系

顺序图:交互图 一组对象或参与者以及它们之间可能发送的消息构成

通信图:交互图 收发消息的对象和参与者的结构组织

定时图:交互图 消息跨越不同对象或参与者的实际时间

状态图:状态机  状态\事件\转移\活动

部署图:运行时的处理节点及在其中生存的构件的配置

活动图:控制流和数据流

制品图:物理结构

包图:组织单元\以及它们之间的依赖关系

交互概览图:是活动图和顺序图的混合物

4+1

逻辑视图(设计视图) 进程视图 实现视图 部署视图 用例视图

用例模型:

识别参与者 合并需求获得用例\细化用例描述\调整用例模型:包含关系扩展关系泛化关系

分析模型CRC建模:定义概念类 确定类之间的关系 为类添加职责 建立交互图

类之间的关系:关联  依赖  泛化 聚合(生命周期可以不相同) 组合(生命周期相同)和实现

 结构化软件设计SD:面向数据流,以结构化分析为基础,从顶自下逐步求精,高内聚低耦合的分析方法

面向对象分析OOD:从面向对象分析OOA而来。包括封装抽象可扩展性,有继承多态的特性

OOD的原则有:

单职原则--单一类,属于高内聚原则

开闭原则--可以扩展,不准修改

李氏替换原则--子代父

依赖倒置原则--找出共性,关注接口编程

接口隔离原则------使用多个单一的接口来替换一个总接口

组合重用原则------能用组合的地方就不要用继承

迪米特原则(最少知识法则)------对象之间尽可能的少接触

设计模型分:创建型模式\结构型模式和行为型模式

创建型(创建对象)----工厂方法\抽象工厂\原型\单例\建造者

结构型(类或对象的组合)-----适配器\桥接\组合\装饰\外观\亨元\代理

行为型(类或对象的交互以及职责的分配)----责任链\命令\解释器\迭代器\中介者\备忘录\观察者\状态\策略\模板方法\访问者

软件配置管理:软件配置管理计划(明确控制任务)

                     \软件配置标识(建立基线)

                     \软件配置控制(管理软件生命周期中的变更)

                     \软件配置状态记录(配置状态信息)

                    \软件配置审计(独立评价)\软件发布管理与交付(交付版本)

软件编码: 程序设计语言,程序设计风格(源程序文档化,数据说明,语句结构和输入输出方法,程序复杂性度量,编码效率:程序效率\算法效率\存储效率\I/O效率

软件测试可以发现程序的缺陷,从而进行改善

软件测试方法:静态测试(人工检测和计算机辅助静态分析):桌前检查\代码走查\代码审查

                         和动态测试(在计算机上实际运行程序):白盒测试和黑盒测试

白合测试方法有:控制流  数据流   程序变异测试

白盒测试方法中常用的技术:逻辑覆盖 (语句覆盖  判定覆盖  条件覆盖  条件判定覆盖  条件组合覆盖  修正的条件判定覆盖 和路径覆盖)

黑盒测试也称为功能测试(根据SRS所规定的功能来设计测试用例),用于集成测试\确认测试\系统测试 (等价类划分\边界值分析\判定表\因果图\状态图\随机测试\猜错法\正交试验法)

软件部署与交付

持续交付

持续部署方案:kubemutes+Docker和Matrix

部署原则:整体部署由运维人员执行,部署方式:蓝绿部署或金丝雀部署

部署层次:Build-Ship-Run(完成的镜像部署)

不可变服务器:指除了更新和安装补丁程序外,不对服务器做任何更改

蓝绿部署(当新版本出现问题时,可以切换到旧版本)

金丝雀部署(让少量用户来使用新版本来测试)

部署与交付的新趋势:持续集成\持续交付和持续部署

工作职责和人员分工的转变:开发人员使用自动化开发工具进行持续集成,也对交付和部署进行扩展,运维人员以开发自动化部署脚本,也将并入开发行列

部署和交付的新趋势:

大数据和云计算基础设施的普及进步给部署带来新的飞跃

研发运维的融合,减轻运维的压力,把运维和研发融合在一起

软件过程能力基于软件过程 技术 资源 人员能力达成业务目标的综合能力(治理能力 开发与交付能力 管理与支持能力 组织管理能力)

CSMM(软件过程能力成熟度模型)吸收了软件工程\项目管理\产品管理\组织治理\质量管理\卓越绩效管理\精益软件开发

CSMM模型由4个能力域\20个能力子域\161个能力要求组成

治理:包括战略与治理\目标管理能力子域

开发与交付:包括需求 设计 开发  测试  部署  服务  开源应用能力子域

管理与支持:项目策划 项目监控 项目结项 质量保证 风险管理  配置管理 供应商管理能力子域

组织管理:过程管理 人员能力管理  组织资源管理 过程能力管理能力子域

CSMM定了5个等级(初始级  项目规范级  组织改进级  量化提升级 创新引领级

 

软件架构  分析 设计  实现  测试  交付部署 管理

 

posted @   无名量  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示