软件工程之宏观认识


自从软件工程的概念被大多数人接收后,软件工程逐渐走向成熟,与软件工程相关的开发方法、模型和管理方面的概念也逐步完善。下面是我对这三个方面粗浅的认识,希望大家多多指教~~

软件开发方法

结构化方法

顾名思义,结构化方法主要强调软件结构的合理性,借助结构化的思想,以数据流图和控制流图为基础,并且通过数据字典、判定树、判定表和结构化语言等工具进行软件的开发和管理。结构化软件开发方法作为一种应用于整个软件生存周期的软件开发方法,主要用于组织、业务处理流程一定时期内相对稳定的企业。( 结构化方法详情链接)

面向数据结构方法

面上数据结构方法是结构化方法的一种衍生,与结构化方法不同的是面向数据结构方法侧重的是数据结构而非数据流。面向数据结构的开发方法对软件生存期的概要设计中的软件结构分析有着非常明显的作用。面向数据结构方法可以很简洁明了的表示出信息结构的组成,从而对程序编写阶段提供强有力的支持。( 面向数据结构方法详情链接)

面向对象的开发方法

面向对象方法主要是面向对象,即面向数据和允许的操作组成的封装体应用于整个软件工程期进行软件开发与管理,从而显著提高了软件开发的效率和质量并降低了系统维护的难度和工作量;这种方法采用我们人类的思维规律:从具体到抽象再从抽象到具体,从而有效的降低了软件的逻辑复杂性。( 面向对象的开发方法)

原型法

相较于前三种方法,原型法是一种新兴的软件开发方法。原型法摒弃了之前周密的软件开发过程,通过建立原型使得软件系统与客户以最快的速度见面,并按照客户的建议不断进行完善,形成最终的既定软件系统。原型法适用于小型系统或者是大型系统的子系统。( (原型法详情链接))

比较分析

软件工程之宏观认识_第1张图片

软件生存期模型

软件工程&软件生存期模型&开发方法

对于软件工程、软件开发方法和软件生存期模型,个人认为软件生存期模型和软件开发方法是软件工程思想的具体化,是具体的方法和步骤。常见的软件开发模型有:瀑布模型、原型模型、螺旋模型、喷泉模型和增量模型等等。

瀑布模型

瀑布模型又名生存周期模型,是软件工程的基础模型。这种方法开发严格按工序开发、过程严谨,采用结构的分析与设计方法区分逻辑现实和物理现实。这种方法可以应对逻辑相对简单、业务流程不复杂的系统,并且可以保证这些简系统要求的软件的及时交付和预期的质量要求;但是不能够很好的服务大型系统软件的开发、大型系统软件开发的成功率低、与用户见面晚、缺乏必要的开发人员和业务人员间的交流;更为致命的一点是:后一阶段的问题需要对前一阶段进行确认来解决,如果问题出现在需求分析阶段,可想而知解决问题的代价有多大。
模型:
软件工程之宏观认识_第2张图片

B模型(瀑布模型的进阶版本)
软件工程之宏观认识_第3张图片
b模型是瀑布模型的一个升级版本,完善了对软件测试、维护阶段的内容。但是,改革毕竟不是革命,b模型仍然没有摆脱瀑布模型的桎梏,对于大型的、复杂的系统,b模型仍然是心有余力不足。

原型模型

原型模型的出现,解决了使用瀑布模型产生的开发人员于用户缺乏沟通、新系统于用户见面晚的弊病。从需求分析阶段开始,用户即和开发人员在一起进行沟通,从而有效保证了用户满意度,降低了开发时间、开发费用和开发风险;但是原型模型不太适合用于开发大型、业务逻辑复杂的系统。

模型:

软件工程之宏观认识_第4张图片

螺旋模型

螺旋模型是瀑布模型和演化模型的一个综合体,引入了前两者没有重视的风险分析。螺旋模型以风险分析为核心,并充分重视系统维护这一被众多开发人员躲避的模块。螺旋模型注重软件品质的保证、减少了测试阶段耗费的资源和测试不足引起的软件质量问题的发生频率。螺旋模型用来指导进行大型系统、耗时长所需资源多的系统的开发与管理。

模型:
软件工程之宏观认识_第5张图片


喷泉模型

喷泉模型的思想比较进阶瀑布模型,但有一点不同的是喷泉模型强调软件生命周期的各个阶段是相互重叠和反复进行的,主要对面向对象的开发方法提供支持。喷泉模型避免了瀑布模型出现问题解决起来代价过大的问题。

模型:
软件工程之宏观认识_第6张图片

增量模型

增量模型借鉴了一些原型法的思想,但又和原型法有着本质的区别:原型法强调新系统尽快和用户见面;而增量模型强调将软件分解为增量构件(每个增量构件实现一定的功能),再将增量构件分解为模块(一个模块负责一个功能),从而使目标软件的部分尽快与用户见面。从这方面来讲,增量模型能增加用户对开发人员的信任,并使用户拥有足够的时间学习使用并适应新系统。而作为具有开放结构的软件开发模型,通过增量模型开发的软件的可维护性比那些通过封闭结构的开发方法开发出来的软件更加易于维护。

模型:
软件工程之宏观认识_第7张图片

模型总结

瀑布模型可以说是其他所有模型的母版。做为最早出现的软件生存期模型,瀑布模型为软件工程的发展奠定了基础。原型模型和喷泉模型分别解决了瀑布模型用于户见面晚、解决问题代价过大的问题;而螺旋模型弥补了瀑布模型所欠缺的风险分析内容,并且很好的解决了软件维护的问题;而增量模型主要通过分解、模块化的思想对软件的开发进行指导,极大的提高了目标软件的可维护性。

结束语:

写这篇博客用了很多时间,感觉自己对软工看似有了一个初步的粗浅了解,其实还是似懂非懂……希望大家多提一些宝贵意见,帮助我理解,谢谢~~~
感谢您的宝贵时间


你可能感兴趣的:(软件工程)