论文部分内容阅读
在大学中有许多的专业,软件工程就是其中的一个不可或缺的专业,也是我们学习计算机专业的一个分支,可到底何为软件工程呢!
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。是计算机专业的一门重要的专业基础课,它对于培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义.是为了解决软件开发中因人为因素随意等原因造成的软件可读性差、可维护性差等一系列问题,借鉴工业生产模式而发展起来的按照工程化模式组织软件开发的一种思想和方法,其目的是通过一定的标准实现软件开发从需求分析到淘汰的全寿命管理。它可以将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。
软件工程学的主要内容是软件开发技术和软件工程管理.软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。记得著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程的七条基本原理。
1、用分阶段的生存周期计划进行严格的管理。
2、坚持进行阶段评审。
3、实行严格的产品控制。
4、采用现代程序设计技术。
5、软件工程结果应能清楚地审查。
6、开发小组的人员应该少而精。
7、承认不断改进软件工程实践的必要性。
B.Boehm指出,遵循前六条基本原理,能够实现软件的工程化生产;按照第七条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。
软件工程是用来解决实际问题的。如果软件开发中没有遇到管理问题,软件工程就不需要管理的内容;如果软件开发中没有遭遇文档混乱,软件工程就不需要文档的部分。但是如果很幸运的遭遇到了这些,那么这一切都是不可或缺的。软件工程不是一个固定的呆板的框框,而是一个有弹性的概念。所以,如果不是要去申请iso或是cmm认证,完全不必要一板一眼的按照iso或是cmm的规范去做。所谓“有企业特色的软件工程”,完全可以从吸收现有的模式和规范中完善起来。但这并不是说所有在开发过程中出现的都是软件工程,只有那些能引导开发走向成功的才是真正有意义的软件工程。其他的,最多只是失败的尝试。
CMM中定义了每个KPA的目标和一系列的KP,企业必须根据自己的实际情况去定义实现每个KPA的工作流程。但并不是每个企业都很幸运,在一开始就可以定义一个自己企业的最佳实践。一般的情况是,首先定义一个工作流程,并在一个试点项目中实行,而后对试点项目进行总结,并对此工作流程进行改进。再在其他项目或整个企业中推广,也许在推广的过程中,又遇到问题,再对流程进行修改。整个的过程定义是螺旋上升的进行。这本身没有问题,但有时当遇到问题时,不要太急于就改流程,或加流程的分支。而要仔细分析后,慎重的进行。太频繁的改动,给人一种不严肃的影响,似乎流程可以随意的改动和定义。最后,没人去遵守流程了。同时,根据不同的项目若定义了太多了流程分支,最后,实际人员也不知道要去实行哪一套了。
软件工程是一种方法,它定义了一种解决问题的方法。当我们接手一个项目时,比如机房收费系统,我们首先要做的就是采用软件工程的思想,来设计我们的机房收费系统。当我们刚刚开始接手机房收费系统时,我们要做的就是根据用户需求,判断该工程是否具有可行性。在这一阶段,我们需要完成一个文档,就是用户需求说明书,在用户需求说明书中,主要要做的就是画出系统的用例图。当我们确定下来这个工程可以开发时,我们会选择可能采取哪种开发方式来开发它,是瀑布模型,是原型模型,还是螺旋模型?现在我们采用的是原型模型开发的,我们通过一个小小的Demo来验证该系统的可实现性,然后不断扩展完善本系统。
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。是计算机专业的一门重要的专业基础课,它对于培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义.是为了解决软件开发中因人为因素随意等原因造成的软件可读性差、可维护性差等一系列问题,借鉴工业生产模式而发展起来的按照工程化模式组织软件开发的一种思想和方法,其目的是通过一定的标准实现软件开发从需求分析到淘汰的全寿命管理。它可以将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。
软件工程学的主要内容是软件开发技术和软件工程管理.软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。记得著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程的七条基本原理。
1、用分阶段的生存周期计划进行严格的管理。
2、坚持进行阶段评审。
3、实行严格的产品控制。
4、采用现代程序设计技术。
5、软件工程结果应能清楚地审查。
6、开发小组的人员应该少而精。
7、承认不断改进软件工程实践的必要性。
B.Boehm指出,遵循前六条基本原理,能够实现软件的工程化生产;按照第七条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。
软件工程是用来解决实际问题的。如果软件开发中没有遇到管理问题,软件工程就不需要管理的内容;如果软件开发中没有遭遇文档混乱,软件工程就不需要文档的部分。但是如果很幸运的遭遇到了这些,那么这一切都是不可或缺的。软件工程不是一个固定的呆板的框框,而是一个有弹性的概念。所以,如果不是要去申请iso或是cmm认证,完全不必要一板一眼的按照iso或是cmm的规范去做。所谓“有企业特色的软件工程”,完全可以从吸收现有的模式和规范中完善起来。但这并不是说所有在开发过程中出现的都是软件工程,只有那些能引导开发走向成功的才是真正有意义的软件工程。其他的,最多只是失败的尝试。
CMM中定义了每个KPA的目标和一系列的KP,企业必须根据自己的实际情况去定义实现每个KPA的工作流程。但并不是每个企业都很幸运,在一开始就可以定义一个自己企业的最佳实践。一般的情况是,首先定义一个工作流程,并在一个试点项目中实行,而后对试点项目进行总结,并对此工作流程进行改进。再在其他项目或整个企业中推广,也许在推广的过程中,又遇到问题,再对流程进行修改。整个的过程定义是螺旋上升的进行。这本身没有问题,但有时当遇到问题时,不要太急于就改流程,或加流程的分支。而要仔细分析后,慎重的进行。太频繁的改动,给人一种不严肃的影响,似乎流程可以随意的改动和定义。最后,没人去遵守流程了。同时,根据不同的项目若定义了太多了流程分支,最后,实际人员也不知道要去实行哪一套了。
软件工程是一种方法,它定义了一种解决问题的方法。当我们接手一个项目时,比如机房收费系统,我们首先要做的就是采用软件工程的思想,来设计我们的机房收费系统。当我们刚刚开始接手机房收费系统时,我们要做的就是根据用户需求,判断该工程是否具有可行性。在这一阶段,我们需要完成一个文档,就是用户需求说明书,在用户需求说明书中,主要要做的就是画出系统的用例图。当我们确定下来这个工程可以开发时,我们会选择可能采取哪种开发方式来开发它,是瀑布模型,是原型模型,还是螺旋模型?现在我们采用的是原型模型开发的,我们通过一个小小的Demo来验证该系统的可实现性,然后不断扩展完善本系统。