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

相关推荐
GISMagic15 小时前
1.MIT Software Construction:软件工程核心知识提炼
软件工程
XM_jhxx17 小时前
简会AI图纸识别系统功能上新:模板、公差、量具个性化配置上线!
数据库·人工智能·软件工程
rolt20 小时前
OGC CityGML-用UML表示的行业标准03地理
软件工程·uml·ontology·本体
传奇开心果编程1 天前
中庸、有容、破执:仓颉编程语言的中华智慧结晶——三重哲学境界思辨
开发语言·华为·开源·软件工程
梁辰兴2 天前
软件工程:面向功能的度量
软件工程·梁辰兴·面向功能的度量·度量定义·功能点分析fpa·用例点ucp·生产率分析
GISMagic2 天前
AI 时代的软件工程与架构能力提升路线
人工智能·架构·软件工程
沐欣工作室_lvyiyi2 天前
基于STM32的生活用水循环净化与浇灌系统(论文+源码)
stm32·软件工程·云平台·单片机毕业设计·单片机仿真·机械电子工程·伊犁师范学院
金字塔頂の蝸牛2 天前
每周GitCode开源项目推荐
开源·软件工程·ai编程
三环上的骑士3 天前
【领域篇17】软件研发与组织效能评估:100 个典型应用场景全景梳理(附分类体系)
软件工程·软件研发·代码质量·开发者体验·组织效能·效能评估·研发效能评估