软考-软件工程(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,软件开发工具

相关推荐
梁辰兴2 天前
软件工程:结构化分析方法
软件工程·数据流图·数据字典·er图·基本概念·结构化分析方法·状态转换图
春风送暖8882 天前
专为汽车电子决策层打造,全星APQP系统以AI驱动风险前置,降本增效,构筑研发质量核心堡垒
软件工程
郝学胜-神的一滴3 天前
Python 高级编程 026:序列内核深剖
开发语言·python·程序人生·软件工程
梁辰兴3 天前
软件工程:需求分析的原则
软件工程·需求分析·需求分析的原则·四大基本原则·建模原则·质量原则·应用要点
梁辰兴4 天前
软件工程:需求分析的过程
软件工程·需求分析·需求管理·需求规格说明书·过程概述·需求获取·需求验证
梁辰兴5 天前
软件工程:几种度量效益的方法
软件工程·梁辰兴·度量效益·投资回收期法·纯收入法·投资回报率法·净现值法
还有你Y5 天前
软件工程架构
hadoop·架构·软件工程
大龄码农有梦想5 天前
Codex、Claude Code 等 AI 编程工具对软件工程的启发
人工智能·软件工程·agent·ai编程·ai agent·智能体·智能体平台
梁辰兴5 天前
软件工程:系统定义的评审
软件工程·梁辰兴·关键要点·评审目的·评审内容·评审方法·评审组织
叫我Paul就好5 天前
RAG 入门到精通 - 一次完整的评估过程
人工智能·软件工程·rag