软件工程是什么?
是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
在刚结束完的机房,它就是一个软件,我们如何使这个软件能够供更多人去使用,软件如何更加规范化,就需要使用软件工程的思想啦!
软件工程能帮我们做什么的?
假设现在一家公司要开发一个学习英语的软件。刚开始,客户肯定要了解这个软件面向的人群、使用什么语言去编写它、编写这个软件会带来怎样的收益、会有多大的风险,对各个方面都去进行一个评估;在开发阶段,程序员通过客户提出来的需求进行开发,不断进行调整,直至最后的完成;在后期就需要对软件进行维护。
它的最终目标就是:以较少投资获得易维护、易理解、可靠、高效率的软件产品
软件工程过程有哪些呢?(PDCA)
P:plan,软件规则说明
D:do,软件开发
C:check,软件确认
A:advancement,软件演进
这一系列的过程也就牵扯出了生命周期
软件的生命周期
一个软件从定义到开发、适用和维护,直至最终被废弃,要经历哪些阶段。一共需要经过三个阶段:
需要注意:这个软件被废弃不是说不能用了,而是说它被新的软件所替代了
生命周期模型有哪些?
<**瀑布型**>
思想:从制作时间上按工序把问题化简,将功能实现与制作分开便于分工协作
优点:1.奠定了软件工程方法的基础;
2.流水依赖,便于分工协作;
3.推迟物理实现,易于修改文档,有复审质量保证;
不足:与用户见面晚,成功率低,一般为25%
适用范围:适用与系统要求明确的系统,各种应用软件的开发均可适用
<**快速原型模型**>
思想:软件开发人员根据用户提出的软件基本需求快速开发一个原型,以便向用户展示软件系统应有的部分或全部的功能和性能,在征求用户对原型的评价意见后,进一步使需求精确化、完全化,并据此改进、完善原型,如此迭代,直到软件开发人员和用户都确认软件系统的需求并达到一致的理解位置
优点:比瀑布模型更符合人们认识事物的过程和规律,使一种较适用的开发框架
适用:适用于那些不能预先确切定义需求的软件系统的开发
<**渐增模型**>
一次开发一个模块,当这个模块客户满意了之后,才进行下一个模块的开发。所以产品是以一次一个构建的方式开发的。
<**螺旋模型**>
瀑布模型和原型模型的结合。
四部分组成:制定计划、风险分析、实施开发、客户评估
适用:需要具有相当丰富的风险评估经验和专门知识,
价格昂贵,适用大型软件的开发
<**喷泉模型**>
以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的模型
<**b模型(瀑布+循环)**>
思维导图
总结
软件工程能够使我们的软件更加规范、高质量、通过前期的规划来减少开发过程中一些不必要的麻烦。上述的模型都是通过瀑布模型来演进的,我们可以通过不同的开发来选择不同的模型