软件工程 — Chapter1
来源:互联网 发布:知豆电动汽车官方网站 编辑:程序博客网 时间:2024/06/05 12:01
写在前面
我的视频学习,一直都不会总结,感觉看完视频之后没有头绪,但是老不总结也不是办法,什么事总得有个开头吧,于是乎,我硬着头皮来这里写总结了。
定义
软件工程:研究用工程化软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
这个定义很清楚的说出了软件和软件工程的关系,由于我们对软件比较熟悉,我们可以在软件的基础上对软件工程进行理解。 对软件工程还有如下定义,可以让我们从多个角度认识一下,感兴趣的同学可以了解一下呢!
BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究。
FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
思维导图
我现在学习的知识就像老师说的那样是沙漠中的每一个沙粒,但是我想要把他们串起来,于是我又重新借用思维导图,将只是联系起来。
图片知识
图片描述
从上述思维导图的中,以个人感兴趣的内容或者是认为重要的内容,拿出出来介绍一下。
软件工程目标
用较低的成本,开发出高性能、功能强、移植性好和维护工作较少的软件。
生命周期
计划(可行性研究报告)——需求分析定义(多用图表,少用文字,需求规格说明书,设计思路,实现功能)——软件设计(按功能化模块,总体设计说明书,程序规格说明书)——软件测试(单元测试,组装测试,)——运行和维护(工作量越多,设计考虑越差)
有没有注意到声明周期的描述中有很多文档呢?这就与我们的软件有关系了,软件是由:程序、数据、文档三部分组成的。文档使我们的软件在设计开发阶段变得有章可循。
模型
基于软件生命周期的软件分析、设计、开发与实施的过程模型逐渐丰富起来,常见的有:瀑布模型、快速原型模型、螺旋模型。软件工程模型特指在软件的生产与使用、退役等各个过程中的参考模型的总称。
瀑布模型
定义:
瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,当前阶段发现问题,返回上一阶段去解决,形状酷似流动的瀑布。分析
有的人说,这个是之前用的,现在都很少用了,但是很少用不等于不用,也不可以就这么抛弃了。瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本模型。- 特点:
阶段顺序和依赖性强,尽早发现问题,每个阶段都有文档。 - 优点:
将工作简化,可以实现分工协作,有文档的形成,有章法。 - 缺点
和用户的沟通比较差,只有在定义阶段和用户进行见面沟通,不适用于用户需求的变化。
- 特点:
快速原型模型
定义
快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求,通过逐步调整原型使其满足客户的要求。分析
可以较好的解决瀑布模型的局限性,通过建立原型,可以更好的和客户进行沟通,解决对一些模糊需求的澄清,并且对需求的变化有较强的适应能力。促使用户主动参与开发活动,加强了信息的反馈,促进了各类人员的协调交流,减少误解,能够适应需求的变化,最终有效提高软件系统的质量。
螺旋模型
定义
螺旋模型(Spiral Model)采用一种周期性的方法来进行系统开发。兼顾了快速模型和瀑布模型。分析
特点
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。对比之前模型
我们可以看出来从制定计划,风险分析可以形成一个原型,这个原型是就相当于快速原型中的原型,下一个象限的实事工程就很类似于瀑布工程。每转一圈就会使产品完善一圈。
结语
软件工程研究了如何开发软件,如何更好的开发软件。总结下来,我发现还是很有好处的,虽然现在总结花费的时间较长,但是这只是开始,会进步的。最大的享受就是总结完之后,发现自己不止学了两遍!!!!加油!
- 软件工程 — Chapter1
- C++—chapter1
- Chapter1
- chapter1
- chapter1
- Chapter1
- chapter1
- chapter1
- chapter1
- PRML学习心得:Chapter1—Introduction
- 敏捷实践——Chapter1 业务价值
- Graph Databases—Chapter1 Introduction阅读笔记
- Chapter1—Basic of Machine Learning
- Scala学习笔记(一)—chapter1
- 统计学与R笔记—第一章Chapter1
- dwarf2调试信息格式——chapter1,2
- 《JavaScript 高程》笔记——chapter1/2 简介
- Linux笔记——chapter1 从登陆Linux开始
- bzoj1355【Baltic2009】Radio Transmission
- 01背包和部分背包问题
- 代理模式
- Java学习之路(第一天)
- bzoj3670【NOI2014】动物园
- 软件工程 — Chapter1
- 数据结构之链表
- HDU5694-BD String-数学归纳找规律
- CSS高效开发实战 4567
- Freedom, peace and love
- Web安全XSS&CSRF
- DirectFB、Layer、Window、Surface之间关系
- ios开发中经典应用高仿项目分享<二>
- ios 画图板