文章目录
- 第一章 软件工程概述与过程模型
- 1.1 软件的概念与特点
- 1.2 软件危机的产生
- 1.3 软件工程知识体系
- 1.4 软件过程模型和能力成熟度模型概念
- 1.5 传统模型,现代模型,选择过程模型
- 第二章 需求分析 & 系统设计
- 2.1 需求分析概述
- 2.2 面相过程的分析方法
- 2.3 面相对象的分析方法
- 2.4 系统设计概述
- 2.5 面相过程的系统设计
- 2.6 面相对象的系统设计
- 第三章 UML详解
- 3.1 UML用例图
- 3.2 UML类图
- 3.3 UML顺序图 & 协作图
- 3.4 UML活动图 & 泳道图
- 3.5 UML包图
- 3.6 UML构件图 & 部署图
- 第四章 程序实现 & 质量保证
- 4.1 程序设计语言的特点
- 4.2 编程习惯
- 4.3 程序的效率
- 4.4 编码管理
- 4.5 质量保证与软件测试概念
- 4.6 软件测试策略
- 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 软件工程的发展阶段