初识软件工程
目录
前言
“每天一点...”“每周一点...”,年轻人可以用flag立死自己,我也不例外
本系列文章纯属对内写作,记录下我自己学习软件工程的笔记和过程
学海无涯,逼自己更加优秀吧
一.软件的定义
软件是软件工程的研究对象,是软件工程的产品形态与客观存在
工程是将理论和知识应用于实践的科学
软件 = 程序 + 数据 + 文档
程序:自己编写的代码
数据:使程序能够操作的信息的数据结构
文档:描述程序的研制过程、方法和一些的资料
二.软件的本质特性
软件具有复杂性、一致性、可变性、不可见性等内在特性,这是造成软件开发困难的根本原因。
三.软件工程发展历程
20世纪60年代末爆发软件危机
1968年,北大西洋公约召开国际会议,提出了软件工程
1968-1982年结构化开发方法
瀑布式软件生命周期模型成为典型
1983年-1995年面向对象开发方法
软件过程改进:CMM/ISO9000/SPICE质量标准体系
20世纪90年代至今敏捷开发方法
- 紧密团队协作
- 有效应对需求变化
- 快速提交高质量软件
- 迭代和增量开发过程
四.软件工程目前面临的主要挑战
- 客户不满意
- 项目过程失控
- 风险与成本问题
- 无力管理团队
五.软件工程的基本概念
工程:将理论和知识应用于实践的科学,以便经济有效解决问题
软件工程:将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,也就是将工程化应用到软件上
六.软件开发的基本要素
1.过程
支持软件开发各个环节的控制和管理
软件开发活动
- 问题定义
- 需求开发
- 软件设计
- 软件构造
- 软件测试
- 软件维护
2.方法
完成软件开发的技术手段
软件工程方法
- 面向服务
- 面向构件
- 面向对象
- 面向过程
3.工具
让软件开发提供自动的软件环境支持
软件工程工具
七.软件开发的基本策略
软件复用
不用光靠自己来制造轮子,用别人造好的轮子(不仅仅是代码复用)
例如:库函数、模板、设计模式、组件、框架
分而治之
复杂问题分成一些小的简单的模块,逐个解决
逐步演进
遵循客观规律,进行迭代增量
优化折中
不断的优化和折中成本和性能
八.软件工程学科发展
总结
以上就是week1-初始软件工程的内容
本文仅仅简单介绍了软件工程的定义,本质特性等
了解了软件工程对我们生活的重要性