软件设计师教程
软件设计师教程(一)计算机系统知识-计算机系统基础知识
软件设计师教程(二)计算机系统知识-计算机体系结构
软件设计师教程(三)计算机系统知识-计算机体系结构
软件设计师教程(四)计算机系统知识-程序设计语言基础知识
软件设计师教程(五)计算机系统知识-数据结构
软件设计师教程(六)计算机系统知识-操作系统知识
软件设计师教程(七)计算机系统知识-操作系统知识
软件工程基础知识
- 软件设计师教程
- 软件工程概述
- 计算机软件
- 软件工程基本原理
- 软件生存周期
- 软件过程
- 能力成熟度模型(CMM)
- 能力成熟度模型集成(CMMI)
- 软件过程模型
- 瀑布模型
- 增量模型
- 演化模型
- 原型模型
- 螺旋原型
- 喷泉模型
- 基于构建的开发模型
- 形式化方法模型
- 统一过程(UP)模型
- 敏捷方法
- 需求分析
- 软件需求
- 需求分析原则
- 需求工程
- 系统设计
- 概要设计
- 设计软件系统总体结构
- 数据结构及数据库设计
- 详细设计
软件工程概述
就是为了更好的管理软件开发,提出了一系列的标准技术与方法。
计算机软件
系统软件、应用软件、工科/科学软件、嵌入式软件、产品线软件、Web应用、人工智能软件、开放计算、网络资源、开源软件
软件工程基本原理
- 用分阶段的生命周期计划严格管理:项目概要计划、里程杯计划、项目控制计划、产品控制计划、验证计划和运行维护计划。
- 坚持进行阶段评审:每个阶段都应进行严格地评审。
- 实现严格的产品控制:软开开发的时候不应该随意变动,要实行基准配置管理。
- 采用现代程序设计技术:方法大于力气
- 结果应能清楚地审查:明确规定开发小组的责任和产品标准
- 开发小组的人员应少而精:沟通效率会随着人员的增加而增加
- 承认不断改进软件工程实践的必要性:不断地去更新方法,不断地积极采用新的软件开发技术,拥抱变化。
软件生存周期
- 可行性分析与项目开发计划
- 需求分析
- 概要设计
- 详细设计
- 编码
- 测试
- 维护
软件过程
能力成熟度模型(CMM)
- 初始级
- 可重复级
- 已定义级
- 已管理级
- 优化级
能力成熟度模型集成(CMMI)
阶段式模型和连续式模型
- 阶段式模型,组织的成熟度
- 连续式模型关注每个过程域的能力
软件过程模型
瀑布模型
软件生存周期中的各个活动规定为依线性顺序连接的托干阶段模型
进化以后变这样
因为是单向的,客户必须要明确地表达自己的想法。
增量模型
需求拆分,逐渐迭代
演化模型
但要是客户是个三哑哑,那就不行了,因为需求常变来变去。
原型模型
出一版,看样子再改改,就是比较费程序员
分为探索、实验、演化。
螺旋原型
- 制订计划
- 分险分析
- 实施工程
- 用户评估
喷泉模型
各个阶段没有明显的界限,可以同步进行。
基于构建的开发模型
利用预先包装的构建来构造应用系统
形式化方法模型
生成计算机软件形式化的数学规格说明
统一过程(UP)模型
用力和风险驱动,以架构为中心,迭代并且增量。
- 起始阶段
- 精华阶段
- 构建阶段
- 移交阶段
敏捷方法
尽可能早地、持续地对有价值的软件的交付
极限编程、水晶法、并列争求法、自适应软件开发、敏捷统一过程
需求分析
软件需求
功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全使用需求、可靠性需求、软件成本消耗与开发进度需求、其他非功能性需求。
需求分析原则
- 必须能够表示和理解问题的信息域。
- 必须能够定义软件将完成的任务。
- 必须能够表示软件的行为
- 必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节
- 分析过程应该从要素信息移向细节信息
需求工程
需求获取、需求分析与协商、系统建模、需求规约、需求验证以及需求管理
系统设计
- 面向数据流的结构化设计方法(SD)
- 面向对象的分析方法(OOD)
概要设计
设计软件系统总体结构
将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。
数据结构及数据库设计
- 数据结构的设计
- 数据库的设计
- 编写概要设计文档
- 评审
详细设计
- 模块算法设计
- 模块数据结构进行设计
- 数据库物理设计
- 其他设计
- 编写设计说明书
- 评审