软件工程论文摘要:随着计算机应用的深入,对计算机软件需求量越来越大,对软件的功能性,易使用性,可靠性等要求越来越高。为了在有限的资金、资源和时间条件下开发满足客户要求的高质量软件,就需要研究与软件开发和管理相关的模型、方法、技术、过程、工具和环境等,这就是软件工程研究的主要内容。软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。通俗地说,软件工程是实现一个大型程序的一套原则方法,即按工程化的原则和方法组织软件开发工作。关键字:专业概述软件工程分析感想一软件工程专业概述(一)、概述软件工程(SoftwareEngineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。本专业培养以计算机应用软件开发为基本技能,具有较扎实的专业基础理论和较强的实践动手能力,受到程序员的系统训练,熟悉岗位要求,掌握岗位技能,懂理论、会操作的,适应社会信息化需求,适应市场经济的德、智、体、美全面发展的计算机软件开发与维护方面的高级专业技术人才。软件在当今的信息社会中占有重要的地位,软件产业是信息社会的支柱产业之一。随着软件应用日益广泛、软件规模日益扩大,人们开发、使用、维护软件不得不采用工程的方法,以求经济有效地解决软件问题。借助于计算机科学技术、数学、管理科学与工程诸多学科,今天的软件工程己由最初的一个学科方向发展成为以计算机科学技术为基础的一个新兴交叉学科。(二)、培养目标本专业面向社会经济发展和国防现代化建设的需求,培养具有基础宽厚,知识、能力、素质协调发展,系统地掌握计算机软件领域的基本理论、知识和技能,具有较强的国际交流能力,德才兼备、身心健康、求真务实、敢于创新、勇于实践,能在科研院所、教育、企事业和行政管理等单位从事计算机软件开发、科研、教学和应用的高素质研究应用型专门人才。(三)、培养要求本专业是计算机软件、硬件和网络相结合,注重软件理论和软件开发能力的培养。要求学生掌握计算机系统的软硬件的基础知识以及计算机系统的设计、研究、开发及综合应用的知识和技能,接受从事软件研究和开发的基本训练,了解计算机系统设计技术,掌握计算机网络技术并具备应用能力,具备系统软件和应用软件的分析、设计、测试和维护能力。本专业毕业生应具备以下方面的知识和技能:1.掌握计算机科学与技术的基本理论、基本知识;2.掌握软件系统的需求分析与设计的基本方法;3.具备软件设计、软件测试和维护能力;4.具有良好的沟通交流能力,具有良好的团队合作精神;5.能跟踪软件相关领域的国际发展动态,能迅速适应新型软件开发模式;6.掌握文献检索、资料查询的基本方法,具有获取信息的能力;7.了解计算机软件相关的法律法规、知识产权等知识。二软件工程分析(一)追求目标软件工程的追求目标:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用软件工程性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。(1)可修改性。(2)有效性。(3)可靠性。(4)可理解性。(5)可维护性。(6)可重用性。(7)可适应性。(8)可移植性。(9)可追踪性。(10)可互操作性。(二)生产过程生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。(三)基本原则软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。软件工程的原则有以下四项软件工程师基本原则:1)选取适宜开发模型该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。因此,必须认识需求定义的易变性,采用适宜的开发模型予以控制,以保证软件产品满足用户的要求。2)采用合适的设计方法在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。3)提供高质量的工程支持“工欲善其事,必先利其器”。在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。4)重视开发过程的管理软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。这一软件工程框架告诉我们,软件工程的目标是可用性、正确性和合算性;实施一个软件工程要选取适宜的开发范型,要采用合适的设计方法,要提供高质量的工程支撑,要实行开发过程的有效管理;软件工程活动主要包括需求、设计、实现、确认和支持等活动,每一活动可根据特定的软件工程,采用合适的开发范模型、设计方法、支持过程以及过程管理。根据软件工程这一框架,软件工程学科的研究内容主要包括:软件开发模型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)及软件经济学等。(四)需求分析以学生信息管理系统为例:1、功能分析在学生信息管理系统中,主要有用户登陆、学生信息管理、课程信息管理、用户管理等功能,功能分析如下:(1)用户登陆学生信息管理网站采用用户名及密码验证模式,进入学生信息管理网站前,用户必须在登陆页面输入用户名及密码,只有验证通过的用户方可进入学生信息管理网站操作主页面。(2)学生信息管理包括3个功能模块:学生个人信息的添加、学生信息的查询以及学生信息的修改于删除。(3)课程信息管理包括3个功能模块:课程基本添加与删除处理、成绩查询处理以及学生选课信息的查询处理。(4)用户管理包括2个功能模块:用户信息查询以及用户的删除与处理。2、性能要求分析(1)系统易操作性所开发的系统应做到操作简单,尽量使系统操作不受用户对电脑知识水平的限制。(2)系统具有可维护性由于系统涉及的信息比较广,数据库中的数据需定期修改,系统可利用的空间及性能也随之下降,为了使系统更好地运转,学院可以对系统数据及一些简单的功能进行独立的维护及调整。(3)系统具有开放性该系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接,不会因外部系统的不同面要做在量的修改工作。3、逻辑模型建立(1)总数据流程图(2)0层数据流图课程表学生信息表选课表学生成绩表用户信息表输入学生学号录入学生信息输入学号数据查询学生基本信息学生信息表选择您要添加的课程学生选课信息选课表输入学生学号学生成绩信息选择编辑或修改的用户信息用户信息表(3)1层数据流图总体设计流程图该流程图为此次学生信息查询系统的总体流程图,用户进入界面以后可以看到登陆密码界面,密码输入正确进入主菜单选择框架界面,1为输入学生信息档案,2为显示学生档案,3为学生信息档案查询,4为更新学生档案,0为退出系统。用户可以根据自己的需求方便快捷的做出自己的选择。(五)软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审学生信息管理系统密码登陆界面登陆主菜单选择框架界面输入信息模块显示信息模块条件查询模块更新信息模块退出系统模块从键盘输入信息输出信息至屏幕按学生学号查询按学生姓名查询修改学生信息插入学生信息将退出界面显示3、实行严格的产品控制4、采纳现代程序设计技术5、结果应能清楚地审查6、开发小组的人员应少而精7、承认不断改进软件工程实践的必要性三学习感想了解了什么是“软件危机”,透过软件工程于解决“软件危机”的重要性、软件工程三条重要线索、软件工程知识体系涵括内容及软件工程各类生存期模型,我对软件工程思想及“工程化”软件开发的流程有了较系统的了解,对软件开发流程有了更进一步的理解,透过软件工程的起源,认识到:实现软件工程的产业化,软件工程必须是真正意义上的工程化。从软件开发三条线索(开发、管理、改进)来看,软件开发的过程必须规范化;软件项目管理的核心是项目规划和项目跟踪控制,保证软件工程开发的成功完成,软件开发流程的规范化在软件项目中有着重要的作用,通过不断的优化和规范过程,企业可以提高软件生产能力。从需求分析到维护,透过软件的开发流程具体实施的学习,我对软件项目开发的流程有了更深的理解,例如通过需求设计报告、概要设计报告、详细设计报告的完成虽然很不完善,但仍让我对需求分析建模和设计中用到的方法有了更好的理解。同时,这门课更正我不少的错误观念:比如代码规范问题,以前我总觉得个人写的程序只要能运行不管别人看不看得懂,注释可有可无,想法越独特代码量越少或内存越小就越好,学了这门课才理解这样的代码可读性很差,通用性不好,维护起来不方便,代码的可读通用性重要性不亚于正确性和运行效率:学了这门课才知道软件开发中每一阶段都有文档的产生,其管理和应用也是一门大学问……此外,这门课程里讲授了很多我以前从未接触的方法和软件。这些知识不仅能应用于软件工程,也能应用于其他很多领域。学了这门课让我获益良多。四总结软件是由人来完成的,所有由人做的工作都不会是完美无缺的。软件开发是个很复杂的过程,期间很容易产生错误。无论是软件从业人员、专家和学者做了多大的努力,软件错误仍然存在。因而大家也得到了一种共识:软件中残存着错误,这是软件的一种属性,是无法改变的。通过学习软件工程这门课,我知道了编写高质量的软件的要求,也学习了如何编写高质量的软件,在以后的工作和学习中,我会秉承学习的这些原则,努力编写出高质量的软件,运用所学知识,编写出跟多的高质量软件。参考文献:钱乐秋赵文耘牛军钰软件工程周之英现代软件工程何新贵王纬王方德软件能力成熟度模型张海藩软件工程导论心得体会软件工程这门课程是做软件开发的人必学的课程,通过学这门课程,程序员就会注重软件开发的理论知识,以及做项目开发的思路。学了这门课程后你写程序就不会去盲目的去套用代码,而是理清此程序的架构以及思路。程序该从什么时候开始,什么时候结束。在中间需要添加什么样的功能,以完善该软件。其实学软件工程并不难,而且很容易。软件工程与日常生活联系起来的话,就是在一天中你该先做什么,后做什么。理解了先做什么,后做什么了以后写程序就不是那么难了,再复杂的程序也可以分成几大块。你理清程序的思路后就可以一步步的解决其中的难题,最终实现软件的功能。如果没学软件工程不知道理清程序的思路的话,做一个大的项目开发,那么多的代码,没有一个很好的结构,最终只会导致程序混乱,错误百出,知道代码再多也会素手无策的。总而言之,作为一个程序员学习软件工程这门课程是至关必要的,如果没学习软件工程,你就不会做项目开发,也不可能开发出一个完善的软件出来。