软件工程学习笔记
文章目录
- 系列文章目录
- 一、初识软件工程
- 1.软件的本质特性
- 2.软件工程的产生与发展
- 3.软件工程的基本概念
- 1)工程的特点:
- 2)软件工程:
- 3)好的软件的特点:
- 4)软件工程的三个基本要素:
- 软件开发过程:
- 软件开发方法:
- 软件开发工具:
- 5)软件开发的基本策略:
- 6)软件过程的技术:
- 4.软件的质量实现
- 1)软件质量的评定
- 2)什么是好的软件
- 3)保证软件产品质量的三个方面:
- 4)商业环境下的软件质量
- 二、
- 1.引入库
- 2.读入数据
- 四、软件开发过程
- 1.软件过程
- 2.软件过程模型
- 八、需求获取
- 1.需求工程师
- 总结
一、初识软件工程
软件是软件工程的研究对象,也是软件处的产品形态和客观存在。
工程是将理论和知识应用于实践的科学,其目的是经济有效地解决实际问题。
软件无处不在,在生活中予以人们巨大的生活便利,但想要高效地做出便捷好用的软件是一件复杂的事情,需要用工程的思想和理论来指导软件设计和开发的过程。
因此,软件工程这门课程的学习十分重要。
提示:以下是本篇文章正文内容,下面案例可供参考
1.软件的本质特性知识提要:
软件 = 程序 + 数据 + 文档
软件是人类思维的凝结产物。
软件具有复杂性、一致性、可变性、不可见性等内在特性。
根据历史上的实例,微软开发一个简单的word文档需要的工期和人力成本甚至比建造一架飞机还要大。
这是为什么呢?
因为软件具有复杂性、一致性、可变性、不可见性等内在特性,这是造成软件开发困难的根本原因。
复杂性:程序结构的复杂,例如函数的调用的复杂情况。
一致性:软件需要服从于人类指定的某些规则。软件需要依赖于一定的环境。软件随接口的改变而不停变化。
可变性:软件是在不断变化、不断更新的,这种变化往往是顺应市场需求。但不断的修改也会导致一些副作用,有可能会缩短软件的寿命,提前结束软件的生命周期。
不可见性:软件在开发过程中很难看出软件的实际效果。
2.软件工程的产生与发展知识提要:
软件开发面临的困难:
- 客户不满意
- 风险与成本
- 项目过程失控
- 无力管理团队
软件工程发展的四个阶段:
- 史前阶段:小作坊模式,没有固定开发方法
- 瀑布过程阶段 :线性模式,需求-开发-测试
- 质量标准体系:面向对象开发,软件过程改进运动
- 敏捷开发方法:迭代和增量的开发过程
软件开发的过程中,不仅受内在特性的限制,还面临着四大困难:客户不满意、风险与成本、项目过程失控、无力管理团队。
因此,软件开发的成功率(指按照预期按时完成软件开发)只有大约20%,有大约50%的软件不能完成预期功能的开发或需要逾期交付,有30%的软件开发甚至彻底失败。
这为开发团队及公司带来了巨大的人力和资金成本的浪费。
为了解决软件开发面对的各种难题,在1968年软件工程的概念首次被提出。
以“软件工程”来命名这门学科,意在说明:软件的生产,有必要建立在某些理论基础和实践指导之上。 3.软件工程的基本概念
知识提要:
工程:
应用有关的科学知识和技术手段,通过有组织的群体协作活动,建造具有预期使用价值的人造产品的过程。
- 大规模建造
- 复杂问题和目标分解
- 团队协作与过程控制
把工程化的方法应用于软件开发、运行、维护。
3)好的软件的特点:- 低成本
- 按时完成任务并交付
- 实现客户预期
- 具有良好的性能、可靠性、可扩展性、可移植性
- 维护成本低
-
过程:软件开发活动
-
方法
-
工具
软件开发过程:1. 问题定义 2. 需求开发 3. 软件设计 4. 软件构造 5. 软件测试
软件开发方法:- 面向过程 - 面向对象 - 面向构件 - 面向服务
软件开发工具:
- 分而治之
- 逐步演进
- 优化折中
- 抽象
- 软件建模方法
- 用户界面原型化
- 软件体系结构
- 软件工程
- 软件复用
- 度量
- 工具于集成环境
4.软件的质量实现 1)软件质量的评定
- 软件过程——过程质量
- 软件产品
- 内部质量:代码质量
- 外部质量:
- 产品效用——使用质量:by用户
- 正确的软件:满足用户的需求,为用户创造价值
- 软件运行正确:没有或很少有缺陷,性能好
- 高质量的设计
- 规范的编码
- 有效的测试
商业环境下的软件质量需要考虑三个方面:
- 成本
- 效率
- 质量
企业不可能无底线地追求效率,要求软件一定0缺陷。软件最终的质量取决于软件能带来的效益和成本的对比,当继续优化软件所带来的的效益小于优化所造成的的成本时,就不值得继续优化软件了。
二、 1.引入库代码如下(示例):
2.读入数据代码如下(示例):
该处使用的url网络请求的数据。
四、软件开发过程 1.软件过程
知识提要:
过程是一组将输入转化成输出的相互关联或相互作用的活动。
输入:用户需求
输出:要交付的产品。
软件开发活动:
- 问题定义
- 需求开发
- 软件设计
- 软件构造
- 软件测试
软件设计:
软件测试:
软件维护:
软件项目管理:
2.软件过程模型
软件过程模型是对软件过程的抽象描述。
常见的软件过程模型:
-
瀑布模型:
线性地执行一系列界限分明的独立阶段,但已经不适用于目前的开发环境了。
-
原型化模型
展现部分开发的产品,加强对系统的理解,明确需求。
-
迭代式开发
在开发过程中,建立一系列版本,将系统一部分一部分地逐步交付。 迭代式开发分为增量模式和迭代模式两种。 增量模型指分区块开发系统,迭代模型指一开始就开发完成所有功能但功能都不够完善,需要通过迭代来一层一层完善。
-
可转换模型
特别适合对安全性、可靠性、保密性要求极高的软件系统,这些系统需要在投入运行前进行验证。
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容。



