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

相关推荐
lytao1235 小时前
一个人做项目:先减少切换,再放大产出
软件工程
workflower1 天前
人形机器人技术与产业基础
机器人·云计算·软件工程·需求分析·软件需求
梁辰兴1 天前
软件工程:排错方法
软件工程·梁辰兴·经典方法·排错方法·科学推理方法·现代工具方法·方法选择与组合
梁辰兴2 天前
软件工程:排错的原则
软件工程·梁辰兴·排错的原则·五大原则·排错方法·策略选择·排错心法
rolt2 天前
用UML表示的行业标准02汽车-AUTOSAR
软件工程·ddd·uml·领域驱动设计·ontology·本体
信安IT租赁2 天前
本地化部署的AI营销CRM:基于事件驱动的全流程自动化状态机实践
大数据·人工智能·软件工程
lytao1232 天前
90% 覆盖率不等于没 Bug:用风险配置测试组合
前端·javascript·bug·软件工程
2601_962077532 天前
月薪7092?软件工程跌下神坛,背后三个残酷真相
软件工程·ai替代·就业形势·产业转型·细分领域
lytao1233 天前
单体、微服务、Serverless:架构要匹配问题
微服务·架构·serverless·软件工程