软件工程课后作业:软件工程方法论对软件开发的作用
发表时间:2020-10-19
发布人:葵宇科技
浏览次数:55
软件开发过程是随着开发技术的演化而随之改进的。从早期的瀑布式(Waterfall)的开发模型到后来出现的螺旋式的迭代(Spiral)开发,以致最近开始兴起的敏捷软件开发(Agile),他们展示出了在不同的时代软件产业对于开发过程的不同的认识,以及对于不同类型项目的理解方法。
软件开发方法论概述
在60年代的软件开发行业,随着所开发的软件复杂度不断提升,使用原先的方法(1)开发出来的软件终于不能满足需要,其所出现的问题是层出不穷,而且由于缺少必要的文档,人们又没办法寻找定位出其中的问题所在。更有甚者,就算是找出其中的问题,但由于软件设计的杂乱不堪,其修改起来也是叫人头大…于是,终于爆发了所谓的软件危机。
危机爆发后,人们认识到之所以出现这类危机的原因,那是因为没有使用一种系统性的方法来规范软件的开发过程,导致开发出的软件缺少架构不明晰,代码编写不规范,文档缺乏等等问题。最终使得开发出来的软件可靠性大大下降,以至于到了不可使用的地步。
为了解决这种问题,北约组织各国的计算机专家于60年代末召开了两次国际会议(NATO Software Engineering Conference(2))来讨论软件危机问题。会议上提出了“software engineering”一词。从此,为解决软件危机问题,诞生了一门新兴的学科——软件工程学。
经历了几十年的发展,软件工程学这门学科,提出了很多实际可用的软件开发方法。这其中,最著名的,也是业界使用最广泛的,当属结构化的方法和面向对象的方法。本文标题内面向过程的分析(POA),其实就是结构化的分析(SA)。
记得我们在前面介绍课程的时候,说过任何程序都是由数据和处理这些数据的方法构成的,那么对于软件开发方法论来说,您仍然可以从这两方面去考虑。简单来说,您要仔细体会在某一个软件开发方法下,人们是如何考虑下面三点的:
⒈ 人们如何从现实的待解问题中抽象出要处理的数据的?
⒉ 人们是如何抽象出要处理这些数据的方法,并通过它们去解决整个问题的?
⒊ 人们在将所抽象出的数据和方法映射到程序的时候,是如何考虑的?是数据方法分开考虑呢,还是一并考虑?
作用
当公司得体量大到一个程度时。
当公司得人员流动量开始变大时。
软件工程对于软件开发整个过程得意义就体现出来了。