软考-软件工程(1-软件工程基础与开发方法)

1,软件工程基础

基本要素:方法,工具,过程

各阶段输出产物:

系统规划:可行性研究报告,系统设计任务书

系统分析:系统说明书

系统设计阶段:系统设计说明书

系统实施阶段:实施进展报告,系统测试分析报告

能力成熟度模型CMM

初始级,可重复级,已定义级,已管理级,优化级

软件能力经过这些阶段逐步提高

能力成熟度模型集成CMMI

初始级,已管理级,已定义级,定量管理,优化级

能力提高,同上

软件过程模型

瀑布模型:明确需求,二次开发

原型:需求不明确(一般是为了演示,不适合超大型项目开发)

增量模型:先核心,后分支,每次的增量版本都可以作为一个独立可操作的作品

螺旋模型:针对不明确项目,但是增加了风险分析(大型项目开发)

V模型:测试极多,贯穿于各个阶段

喷泉模型:面向对象,迭代思想和无间隙开发

基于构件的开发模型CBSD:增强复用性(开发过程中创建一个构件库,简单理解就是一个仓库,要什么就往里面拿就行)

形式化方法模型:数学基础

2,软件开发方法

结构化方法:结构化分析+结构化设计+结构化程序设计

特点:目标清晰,阶段有序,文档规范,自顶向下分解,自底向上逐步实现

局限性:开发周期长;不适于需求不明确项目;面向数据流,很少考虑数据结构

面向对象方法:万物皆对象

特点:复用性高,阶段界限不明确(前者没做完或者有问题的可以让后者补充)

局限性:不能涉足系统分析以前的开发环节

原型化方法:

特点:快速建立一个系统模型展示给客户;开发速度快,用户参与度高,易于维护,适于需求不明确开发

局限性:开发环境要求高,管理水平要求高

面向服务方法:将接口的定义和实现进行解耦

Jackson方法:面向数据结构,小规模项目

敏捷开发:针对中小型项目,指代的是一组模型

重要概念:

1,结对编程

2,自适应开发

3,水晶方法:每个不同项目都要一套不同的策略

4,特性驱动开发:模型驱动的快速迭代开发过程

5,极限编程XP:测试先行

6,并列争球法:迭代的增量化,"冲刺"

统一过程RUP

特点:用例驱动,以架构为核心,迭代和增量

流程:初始,细化,构建,交付

逆向工程:

重构:转换系统描述形式(5+0=5------------>2+3=5)

设计恢复:已有程序抽象出有关设计的部分

再工程:在逆向工程的基础上产生一个新版本,对现有系统的重新开发过程,用以改进软件质量

正向工程

软件系统工具:

1,软件维护工具

2,软件管理工具

3,软件设计工具

4,软件开发工具

相关推荐
llilian_163 小时前
脉冲时间间隔及计数如何精准测试?
功能测试·嵌入式硬件·51单片机·软件工程
gscsded7 小时前
MFC 入门:从空窗口到一个能交互的小程序
mfc·软件工程
嘟哩DuliDuli1 天前
剧本节点输入归一化:文本来源、版本与下游引用
android·人工智能·安全·ai·软件工程
qiyongwork1 天前
泛金融IT 研发管理平台设计
金融·项目管理·软件工程·研发管理
我命由我123452 天前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
信可维2 天前
AI 读 Word 表格总读错?先查合并单元格和表头这 3 处
开发语言·人工智能·c#·word·软件工程
Teable任意门互动4 天前
项目管理数字化落地案例|任意门互动科技(Teable 官方合作伙伴)以多维表格搭建项目管理平台
人工智能·开源·软件工程·飞书·开源软件·数据库开发
Allen-Steven5 天前
P/V操作详解与相关考点(软考知识点)
软件工程
嘟哩DuliDuli5 天前
AI创作工作区的项目上下文与多模态任务边界
android·人工智能·安全·ai·软件工程
用AI来创业吧6 天前
网站建设公司哪家好:报价差 3 倍,差在哪四项成本上(选型笔记)
笔记·性能优化·软件工程·安全威胁分析