当前位置: 首页 > news >正文

[系统架构设计师]软件工程基础知识(五)

[系统架构设计师]软件工程基础知识(四)

一.软件工程

1.软件模型

1.破布模型:需求难以一次确定,变更的代价高,结果难以预见,各阶段工作不能并行

在这里插入图片描述

2.原型模型:

阶段:原型开发,目标软件开发

在这里插入图片描述

3.螺旋模型:强调其他模型忽视的风险分析

阶段:目标设定,风险分析,开发和有效验证性,评审

在这里插入图片描述

4.敏捷模型:

极限编程(XP):高效,低风险,测试先行(先写测试代码,再编写程序)

水晶系列方法:不同的项目,采用不同的策略

并列争球法(Scrum):侧重项目管理

特征驱动开发方法:指挥者(首席程序员),类程序员等

5.软件统一过程(RUP)模型:用例驱动的,以架构为中心的,迭代和增量的

6.软件成熟能力度模型(CMM):

7.软件能力成熟度模型集成(CMMI)

二.需求工程(RE)

层次:业务需求,用户需求,功能需求

组成:需求获取,需求分析,形成需求规格(或称为需求文档化),需求确认与验证,需求管理

软件需求规格说明书(SRS):功能需求,非功能需求和约束

需求管理:变更控制,版本控制,需求跟踪

需求获取:方法包括用户面谈,需求专题讨论会,问卷调查,现场观察,原型化方法,头脑风暴等

需求变更:

在这里插入图片描述

变更控制委员会(CCB):指定决策,交流情况,重新协商约定

需求跟踪:正向跟踪,逆向跟踪 都需建立与维护需求跟踪矩阵

三.系统分析与设计

1.结构化方法(SASD)

1.结构化分析(SA): 数据流图(DFD),数据字典,结构化语言,判定表以及判定树

数据流图(DFD):数据流,处理/加工,数据存储,外部项

2.结构化设计(SD):自顶向下,逐步求精,模块化

阶段:概要设计,详细设计

SD模块属性:功能,逻辑,状态

模块耦合类型:耦合表示模块之间联系的程度,耦合度从低到高依次如下:

在这里插入图片描述

内聚:表示模块内部各代码之间联系的紧密程度,内聚度从高到低

在这里插入图片描述

模块分解原则:高内聚,低耦合

概要设计:系统结构图(SC)

详细设计:业务流图,程序流程图,问题分析图(PAD),NS流程图等

结构化编程(SP):程序=(算法)+(数据结构)

数据库设计:实体-联系图(E-R图)

2.面向对象方法

1.面向对象的分析方法(OOA):

层次:主题层,对象类层,结构层,属性层,服务层

活动:标识对象类,标识结构,定义主题,定义属性,定义服务

基本原则:抽象,封装,继承,分类,聚合,关联,消息通信,粒度控制,行为分析

基本步骤:确定对象和类,确定结构,确定主题,确定属性,确定方法

2.面向对象设计方法(OOD):

类型:实体类,控制类,边界类

3.面向对象程序设计(OOP):

4.数据持久化与数据库

5.其他设计方法:水平式重用(标准函数库),垂直式重用(区块链)

6.逆向工程:

在这里插入图片描述

四.软件测试

1.测试分类

程序执行状态:静态测试(ST),动态测试(DT)

具体实现内部结构:黑盒测试,白盒测试,灰盒测试

程序执行方式:人工测试(MT),自动化测试(AT)

阶段:单元测试,集成测试,系统测试,验收测试

五.净室软件工程(CSE)

CSE: 盒子结构规约

六.基于构件的软件工程(CBSE)

构件模型:Web Services模型,Sun公司的EJB模型,微软的.NET模型

模型要素:接口,使用信息,部署信息

通用服务:平台服务,支持服务

CBSE过程:系统需求概览,识别候选构件,根据发现的构件修改需求,体系结构设计,构件定制与适配,组装构件,创建系统

构件组装:顺序组装,层次组装,叠加组装

构件组装不兼容:参数不兼容,操作不兼容,操作不完备

七.软件项目管理

软件进度管理:活动定义,活动排序,活动资源估计,活动历时估计,制定进度计划,进度控制

工作分解结构(WPS):

软件配置管理(SCM):标识,组织和控制修改的技术

软件质量管理:软件质量保证(SQA)

软件风险管理

容,操作不兼容,操作不完备

七.软件项目管理

软件进度管理:活动定义,活动排序,活动资源估计,活动历时估计,制定进度计划,进度控制

工作分解结构(WPS):

软件配置管理(SCM):标识,组织和控制修改的技术

软件质量管理:软件质量保证(SQA)

软件风险管理

http://www.dtcms.com/a/330588.html

相关文章:

  • 系统思考:转型困扰与突破
  • 【软考中级网络工程师】知识点之入侵检测深度剖析
  • 开源安全云盘存储:Hoodik 实现端到端数据加密,Docker快速搭建
  • 分享一个基于Hadoop+spark的超市销售数据分析与可视化系统,超市顾客消费行为分析系统的设计与实现
  • Java应用架构实战指南:主流模式解析与Spring落地实践
  • 从零开始学Python之数据结构(字符串以及数字)
  • Java 大视界 -- Java 大数据机器学习模型在金融欺诈检测与防范策略制定中的应用(397)
  • 工业一体机5G通讯IC/ID刷卡让MES系统管理更智能
  • 第四天~在CANFD或CAN2.0的ARXML文件中实现Multiplexor多路复用信号实战
  • 怎么判断晶振的好坏,有什么简单的办法
  • AR技术赋能电力巡检:智能化升级的“秘密武器”
  • 计算机视觉(opencv)实战三——图像运算、cv2.add()、cv2.addWeighted()
  • 设计模式笔记_行为型_责任链模式
  • 【论文阅读 | CVPR 2024 | UniRGB-IR:通过适配器调优实现可见光-红外语义任务的统一框架】
  • linux 内核 - 内存管理的层次化结构
  • UE5配置MRQ编解码器输出MP4视频
  • Linux网络编程:应用层自定义协议与序列化
  • 《量子雷达》第5章 量子雷达发射机 预习2025.8.14
  • 人工智能——卷积神经网络自定义模型全流程初识
  • .NET 的 WebApi 项目必要可配置项都有哪些?
  • CPUcores-【硬核优化】CPU增强解锁全部内核!可优化游戏性能、提升帧数!启用CPU全内核+超线程,以更高优先级运行游戏!支持各种游戏和应用优化~
  • Mybatis学习笔记(四)
  • 【论文阅读】基于卷积神经网络和预提取特征的肌电信号分类
  • CSS isolation属性
  • NVIDIA Nsight Deep Learning Designer使用
  • 第3节 深度学习避坑指南:从过拟合到玄学优化
  • toRefs、storeToRefs实际应用
  • 分布式系统架构设计模式:从微服务到云原生
  • Flutter sqflite插件
  • Day57--图论--53. 寻宝(卡码网)