文章目录
- [第一章 软件工程概述与过程模型](#第一章 软件工程概述与过程模型)
-
- [1.1 软件的概念与特点](#1.1 软件的概念与特点)
- [1.2 软件危机的产生](#1.2 软件危机的产生)
- [1.3 软件工程知识体系](#1.3 软件工程知识体系)
- [1.4 软件过程模型和能力成熟度模型概念](#1.4 软件过程模型和能力成熟度模型概念)
- [1.5 传统模型,现代模型,选择过程模型](#1.5 传统模型,现代模型,选择过程模型)
- [第二章 需求分析 & 系统设计](#第二章 需求分析 & 系统设计)
-
- [2.1 需求分析概述](#2.1 需求分析概述)
- [2.2 面相过程的分析方法](#2.2 面相过程的分析方法)
- [2.3 面相对象的分析方法](#2.3 面相对象的分析方法)
- [2.4 系统设计概述](#2.4 系统设计概述)
- [2.5 面相过程的系统设计](#2.5 面相过程的系统设计)
- [2.6 面相对象的系统设计](#2.6 面相对象的系统设计)
- [第三章 UML详解](#第三章 UML详解)
-
- [3.1 UML用例图](#3.1 UML用例图)
- [3.2 UML类图](#3.2 UML类图)
- [3.3 UML顺序图 & 协作图](#3.3 UML顺序图 & 协作图)
- [3.4 UML活动图 & 泳道图](#3.4 UML活动图 & 泳道图)
- [3.5 UML包图](#3.5 UML包图)
- [3.6 UML构件图 & 部署图](#3.6 UML构件图 & 部署图)
- [第四章 程序实现 & 质量保证](#第四章 程序实现 & 质量保证)
-
- [4.1 程序设计语言的特点](#4.1 程序设计语言的特点)
- [4.2 编程习惯](#4.2 编程习惯)
- [4.3 程序的效率](#4.3 程序的效率)
- [4.4 编码管理](#4.4 编码管理)
- [4.5 质量保证与软件测试概念](#4.5 质量保证与软件测试概念)
- [4.6 软件测试策略](#4.6 软件测试策略)
- [4.7 软件测试技术](#4.7 软件测试技术)
- 第五章
第一章 软件工程概述与过程模型
1.1 软件的概念与特点
- 1 软件的定义:
1、软件=程序+数据+文档
2。程序:按照实现设计的功能和性能需求执行的指令序列
3、数据:程序能正常操作信息的数据结构
4、文档:与程序开发、维护和使用有关的图文材料
-
2 软件的特征:
1、软件是开发的或者是工程化的,并不是制造的
2、软件生产是简单的拷贝
3、软件会多次修改
4、软件开发环境对产品的影响较大
5、软件开发时间和工作量难以估计
6、软件的开发进度几乎没有客观标准
7、软件测试非常困难
8、软件不会磨损或者老化
9、软件维护容产生新的问题
-
3 软件的双重作用:
1、一方面是一种产品
提供计算能力
产生管理获取修改显示或者传输信息
2、另一方面是开发其他软件产品的的工具
支持或者直接提供系统所需的功能
控制其他程序--如操作系统
改善通信--如网络软件
帮助开发其他软件--如软件开发工具IDEA VSCode
- 4 软件的分类:按照功能分类
1、系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序
2、支撑软件:文本编辑程序、文件格式化程序、程序库系统、支持需求分析/设计/实现/测试/支持管理的软件
3、应用软件:商业数据处理软件、工程与科学计算软件、计算机辅助设计、系统仿真软件、事务管理/办公自动化软件
-
5 软件的分类:按照服务对象
项目软件
产品软件
-
6 软件的发展
个体化、 50-60
作坊化、 60-70
工程化、 70-80
产业化、 80-现在
-
7 软件规模越来越大
1、汽车系统
2、波音飞机
3、宇宙飞船
4、航天飞机
5、VISTA系统
6、国际空间站
-
8 为什么软件发展如此之快
1、计算需求,软甲必须适应新的额计算环境或技术
2、业务需求,软件必须改善,已实现新的业务需求
3、嵌入需求,软件必须扩展,以满足和新一代系统或数据库之间的相互操作
4、架构需求,软件必须重新设计,使其在新的网络环境中是可以使用的
1.2 软件危机的产生
-
1 什么是软件危机
概念:在计算机软件的开发和维护的过程中所遇到的一系列问题
分类:
项目超出预算
项目超出计划完成时间
软件运行效率很低
软件质量很差
软件通常不符合要求
项目难以管理并且代码难以维护
软件不能交付
-
2 软件危机案例
-
4 软件成本日益增加
-
5 软件技术进步 < 需求增长
-
6 软件危机产生的原因
客观:软件本身的特点---逻辑部件、规模庞大
主观:不正确的开发方法---忽略需求分析,错误的认为:软甲开发=代码编写、轻视软件维护
- 7 消除软件危机产生的途径---软件工程
1、对计算机软件有一个清晰的认识-- 软件!=程序
2、必须充分的认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好,管理严密,各类人员协同配合,共同完成的工程项目
3、推广使用在实践中总结出来的开发软件的成功技巧和方法,开发软件使用更好的软件工具
1.3 软件工程知识体系
- 1 软件工程有什么用
- 2 软件工程三要素
- 4 软件工程的发展阶段