软件工程总结.docx

上传人:b****4 文档编号:3861744 上传时间:2023-05-06 格式:DOCX 页数:13 大小:23.86KB
下载 相关 举报
软件工程总结.docx_第1页
第1页 / 共13页
软件工程总结.docx_第2页
第2页 / 共13页
软件工程总结.docx_第3页
第3页 / 共13页
软件工程总结.docx_第4页
第4页 / 共13页
软件工程总结.docx_第5页
第5页 / 共13页
软件工程总结.docx_第6页
第6页 / 共13页
软件工程总结.docx_第7页
第7页 / 共13页
软件工程总结.docx_第8页
第8页 / 共13页
软件工程总结.docx_第9页
第9页 / 共13页
软件工程总结.docx_第10页
第10页 / 共13页
软件工程总结.docx_第11页
第11页 / 共13页
软件工程总结.docx_第12页
第12页 / 共13页
软件工程总结.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件工程总结.docx

《软件工程总结.docx》由会员分享,可在线阅读,更多相关《软件工程总结.docx(13页珍藏版)》请在冰点文库上搜索。

软件工程总结.docx

软件工程总结

软件工程总结

  软件工程课程设计个人总结

  学期就快要结束了,到了最后一周居然还有软件工程课程设计,还要考试真的有点忙啊,不管怎样还是好好干吧,把对工程的理论研究、学习成果用于实践也是一种检验学习成果和提升工程能力的有效手段嘛。

  工作内容安排

  软件工程课程设计的第一天拿到题目,听取老师对于课程设计的要求、要完成的工作、预期要达到的效果和注意事项。

然后分组、讨论和确定选题。

这真正的课程设计才算开始了,经过组长,组员的反复研究、论证后一致决定选择:

实习题目4:

开发一个基于Web的BBS系统,包含一般BBS所具有的功能,如用户注册、用户信息管理、发贴功能、贴子管理、主题词查询、用户信息修改和查询等。

  这个题目对于现代化的网络交流来说发展的成熟而且符合当代互联网大众的网络需求,符合现代网络对信息分享讨论的爱好,我们一致预测在今后很长的一段时间内也将会是非常流行的一种交流介质。

  确定选题后我们开始软件开发的第一步,需求分析,详细设计等内容,分块分工完成模块,我分到的主要部分就是分析论坛里面的帖子内容,用户的爱好,然后解决用户的索引需求,把用户的索引需求智能的、友好的呈现给用户,把这部分的代码编写,测试,把用户界面做好就是我接下来几天的工作内容。

俗话说:

磨刀不误砍柴工,要想把我的这部分内容做好,做得完美,我的好好的分析一下,对全组对整个系统的需求分析的基础上又认真分析了本部分的内容和本部分要实现的功能,对本部分实现的主要思想理清,认真设计界面,还有对队员们的模块能有效的结合起来,让他们的模块也能有效的供我使用,做好我的接口也方便其他模块与此的衔接。

  问题与解决

  在本次课程设计中遇到了好多前所未有的问题,第一次接触HTML网页开发,第一次邂逅JSPweb应用程序开发,第一次有了原来开发应用程序是需要数据库的,对于这些都是第一次接触,需要了解HTML的基本语法,需要学习JSPweb应用程序webapp的开发方法,需要实践配置数据库TOMCAT、SQLsever,居然有这么多的东西需要从头来,对于这些方面我就像一张崭新的白纸,怎么能在短短的四五天时间内将这张白纸绘成一幅栩栩如生的画卷呢,这是我们面对的亟待解决的问题。

  为了解决这一系列的问题,我们没有找借口,我们没有懒惰,我们更没有放弃,而是迎难而上,到图书馆“大采购”求资料,找到想要的,真想把图书馆搬到课程设计实验室。

接下来就是根据我们的需求分析,概要设计,详细设计等内容分模块编写网页源代码,修复bug,测试代码,连接数据库这样我们的全新的基于web的BBS论坛就成功上线了。

  但是,事实上不是这样的,而是时间过得很快,我们的原计划日程上的内容越欠越多,由于对HTML、JSP不熟悉代码没写好,测试无从谈起,数据库连接遇到了一堆错误代码比如SQL01000、08001错误,这些每一样东西解决起来都是有难度的,XX一下还是不知道这么做,只知道了时间过得比想象的要快多了,得到的体会就是“XX一下,你的时间就没了”。

现在我们遇到的最大的问题就是时间真的太不给力了,如果有来世我一定好好学习各方面知识,哎!

好像扯远了。

时间真的很快,周六就要考试了,已上三年大学的我们都知道考试比神马都要重要,我们就开始了学习和实践结合的生产方式,据说这是最有效、最给力的,希望如此!

  收获与体会

  课程设计总会是要结束的,不管做得怎么样总归是要给老师看看我们的成果的,都做了这么多天了,成果虽然不是很理想,但是收获还是有的。

这期间学到了HTML网页的编写方法,一些HTML的基本语法,也能编写出一个简单的网页,对于互联网应用程序的开发还要了解和解决网络带宽的限制,服务器响应的时间比,知道了这么安装和配置TOMCAT服务器,在期间学习了UML用例图的绘制,软件工程开发的一些基本工具的使用,软件开发文档编写的方法和实践,人机交互应用程序开发时人机界面的设计,人机对话的实现,人性化的界面设等是需要认真努力做得,要充分考虑用户的感受和体验。

觉得“XX一下,你就知道”也不过如此,还是知识装在大脑里比神马都要重要,比任何来的知识都要详细和易懂。

打字速度也有了一定的提升。

  努力与改进方向

  经过本期的软件工程课程设计,发现了学习和实践中的不足。

互联网的基础知识知道的太少了,相反需要了解和掌握的还很多,在下学期要开设一门计算机网络课程,现在生活已经不能离开互联网了,不管以后是否从事这方面的工作,这部分都是需要认真学习的,网络应用程序的开发需要认真理解与提升。

软件工程中需求分析的不充分,软件开发方法的体会这些都是需要以后改进和学习的,软件开发中的各种文档编写能力还需要提升,在以后学习和实践中认真总结和完善,参考他人的软件工程项目,体会优秀软件工程的思想。

在做任何事情的时候都要有觉得是站在巨人的肩上,而不是重复的生产车轮的思想来坐事情,要对前人的经验教训加以总结,学习、参考和引用别人的先进研究成果,重视团队的协作,虚心的学习精神。

  这期间得到了老师的悉心指导,得到了队员的理解,得到了同学们的热心帮助,谢谢你们!

  软件工程I课程考核报告

  学号:

1115115285

  姓名:

王瑞博

  专业:

软件工程

  班级:

11软工软件一班

  指导教师:

李生

  南阳理工学院软件学院

  2016年5月

  软件工程课程学习总结

  以前从没学过软件工程这门课,只是听学长学姐们说过,这是一门很深奥的课程,据说是有工程师称号的高手才摆弄的东西。

学过之后才发现,其实这门课真的很高深,就连老师也说他也有很多问题还没有解决呢。

下面我就谈谈我个人在本学期学习中一些总结和体会,希望对为学习本课程的人有一些帮助。

  一、软件工程基础

  什么是软件工程呢?

软件工程是一类求解软件的工程,为了克服软件危机,人们研究和借鉴工程学的原理和方法,形成了一门新的学科—软件工程学。

目前比较认可的一种定义是:

软件工程是为了研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何让把经过时间考证而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

从以上这些关于软件工程的定义,我们可以对软件工程这门工程学科有一个全面的整体性认识。

软件工程学的主要内容包括:

1、软件开发方法;2、软件工具;3、软件工程环境;4、软件工程管理学。

  软件工程的三要素和基本目标

  1、软件工程以关注软件质量为目标,由过程、方法和工具三要素组成。

  软件工程过程:

在软件工具的支持下所进行的一系列软件工程活动,它是将技术层结合在一起的凝聚力,使得计算机软件能够合理地和及时地开发出来,是生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。

  软件工程方法:

完成软件开发任务的技术方法,它依赖于一组基本原则,这些基本原则控制了每一技术区域,且包含建模活动和其他描述技术。

软件工程方法学主要包括传统方法和面向对象方法。

  软件工程工具:

是对过程和方法提供了自动的或半自动的支持。

软件工程三个要素之中软件工程过程是基础,方法是实现过程的技术,工具为过程和方法提供自动化或半自动化支持。

三者以有组织的质量保证为核心。

  2、软件工程的目标是提高软件的质量与生产率,最终实现软件的社会化大生产。

  软件工程原理

  软件工程专家学者们总结了开发软件的经验,提出了软件工程的7条基本原理。

这7条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合。

这7条原理是:

  1、用分阶段的生命周期计划严格管理。

这是吸取前人的教训而提出来的,在整个软件生命周期中应指定并严格执行6类计划:

项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行

  维护计划。

  2、坚持进行阶段评审。

软件的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。

评审过程应该包括完成者在内的各种不同角色的人参与,利用人的差异提高评审质量。

  3、实行严格的产品控制。

开发人员最痛恨的事情之一就是改动需求。

但是实践告诉我们,需求的改动往往是不可避免的。

这就要求我们要采用可续的产品控制技术来顺应这种要求。

也就是要采用变动控制。

当需求变动时,其他各个阶段的文档或代码也随之变动,以保证软件的一致性。

  4、采纳现代程序设计技术。

采用先进的技术既可以提高软件开发的效率,又可以减少软件维护的成本。

  5、结果应能清楚地审查。

软件是一种看不见、摸不着的逻辑产品。

软件开发小组的工作进展情况可见性差,难以评价和管理。

为了更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。

  6、开发小组的人员应少而精。

开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。

有以下原因:

  高素开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯得错误也少的多。

  当开发小组为N人时,可能的通信信道为N/2,可见随着人数N的增大,通信开销将急剧增大。

  7、承认不断改进软件工程实践的必要性。

这是基于上述六条基本原理的总结和归纳。

  软件的生存周期

  一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。

软件的生存周期可分为八个阶段:

①问题定义;②可行性研究;③需求分析;④总体设计;⑤详细设计;⑥编码与单元测试;⑦综合测试;⑧软件维护等。

  软件开发模型

  瀑布模式:

是传统的软件开发模式,其中的“瀑布”是对这个模式的形象表达,由山顶倾泻下来的水,自顶向下、逐渐细化。

其特点是:

线性化过程;分为分析、设计、编码、集成等几个阶段,并且各阶段逐级推进,不允许跨越。

里程碑管理;阶段评审;文档驱动;简洁便于工程应用的线性化过程步骤,并可以通过里程碑管理机制而使项目进程量化。

其明显的优点就是没个阶段结束前都要对所完成的阶段成果进行评审,这使得软件的错误能够在个阶段内尽早发现并尽早解决,总的来说瀑布模式具有良好的质量保证机制,有很强的生命力。

原型进化模式:

对软件进行直接模拟或仿真,只需要分析需求框架后进行原型创建,再对原型系统进行逐步细化与完善,通过版本更新逐步满足用户对于软件的多方面需要。

  增量模式:

开发过程有三个任务域,分别是设计结构、开发构件和集成系统,它既有完善的工程管理机制,又能适应用户需求变更,有

  一、软件工程概述

  1.软件特点

  软件:

计算机程序、方法、规则、相关的文档资料,以及计算机程序运行时所需要的数据。

软件是计算机系统中的逻辑成分,具有无形性。

其主要内容包括:

程序、配置文件、系统文档、用户文档等。

  2.软件分类

  按功能划分:

系统软件、支撑软件、应用软件。

  按工作方式划分:

实时处理软件、分时处理软件、交互式软件、批处理软件。

  按规模划分:

微型软件、小型软件、中型软件、大型软件。

  按服务对象划分:

通用软件、定制软件。

  3.软件发展阶段

  程序设计时代。

  程序系统时代。

  软件工程时代。

  4.软件危机

  危机现象:

软件开发成本与进度估计不准确,软件产品与用户要求不一致,软件产品质量可靠性差,软件文档不完整不一致,软件产品可维护性差,软件生产率低。

  危机原因:

软件的不可见性,系统规模庞大,生产工程化程度低,对用户需求关心不够,对维护不够重视,开发工具自动化程度低。

  5.软件工程

  软件工程:

运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。

  软件工程是一门关于软件开发与维护的工程学科,它涉及软件生产的各个方面,能够为经济、高效地开发高质量的软件产品提供最有效的支持。

  工程方法:

结构化方法、JSD方法、面向对象方法。

  软件工具:

具有自动化特征的软件开发集成支撑环境。

  工程过程:

在软件工具支持下的一系列工程活动,基本活动是软件定义、软件开发、软件验证、软件维护。

  工程管理:

项目规划,项目资源调配,软件产品控制。

  工程原则:

分阶段生命周期计划,阶段评审制度,严格的产品控制,采用先进的技术,成果能清楚地审查,开发队伍精练,不断改进工程实践。

  工程目标:

开发成本较低,软件功能能满足用户需求,软件性能较好,软件可靠性高,软件易于使用、维护与移植,能按时完成开发任务并及时交付使用。

  工程文化:

包括工程价值、工程思想和工程行为三个方面的内容。

  二、软件工程过程模型

  1.软件生命周期

  如同任何事物都有一个发生、发展、成熟直至衰亡的全过程一样,软件系统或软件产品也有一个定义、开发、运行维护直至被淘汰这样的全过程,我们把软件将要经历的这个全过程称为软件的生命周期。

它包含:

软件定义、软件开发、软件运行维护三个时期,并可以细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统

  集成测试、系统确认验证、系统运行与维护等几个阶段。

  软件定义期

  软件定义是软件项目的早期阶段,主要由软件系统分析人员和用户合作,针对有待开发的软件系统进行分析、规划和规格描述,确定软件是什么,为今后的软件开发做准备。

这个时期往往需要分阶段地进行以下几项工作。

  1.软件任务立项

  软件项目往往开始于任务立项,并需要以“软件任务立项报告”的形式针对项目的名称、性质、目标、意义和规模等作出回答,以此获得对准备着手开发的软件系统的最高层描述。

  2.项目可行性分析

  在软件任务立项报告被批准以后,接着需要进行项目可行性分析。

可行性分析是针对准备进行的软件项目进行的可行性风险评估。

因此,需要对准备开发的软件系统提出高层模型,并根据高层模型的特征,从技术可行性、经济可行性和操作可行性这三个方面,以“可行性研究报告”的形式,对项目作出是否值得往下进行的回答,由此决定项

  目是否继续进行下去。

  3.制定项目计划

  在确定项目可以进行以后,接着需要针对项目的开展,从人员、组织、进度、资金、设备等多个方面进行合理的规划,并以“项目开发计划书”的形式提交书面报告。

  4.软件需求分析

  软件需求分析是软件规格描述的具体化与细节化,是软件定义时期需要达到的目标。

需求分析要求以用户需求为基本依据,从功能、性能、数据、操作等多个方面,对软件系统给出完整、准确、具体的描述,用于确定软件规格。

其结果将以“软件需求规格说明书”的形式提交。

  在软件项目进行过程中,需求分析是从软件定义到软件开发的最关键步骤,其结论不仅是今后软件开发的基本依据,同时也是今后用户对软件产品进行验收的基本依据。

  软件开发期

  在对软件规格完成定义以后,接着可以按照“软件需求规格说明书”的要求对软件实施开发,并由此制作出软件产品。

这个时期需要分阶段地完成以下几项工作。

  1.软件概要设计

  概要设计是针对软件系统的结构设计,用于从总体上对软件的构造、接口、全局数据结构和数据环境等给出设计说明,并以“概要设计说明书”的形式提交书面报告,其结果将成为详细设计与系统集成的基本依据。

  模块是概要设计时构造软件的基本元素,因此,概要设计中软件也就主要体现在模块的构成与模块接口这两个方面上。

结构化设计中的函数、过程,面向对象设计中的类、对象,它们都是模块。

概要设计时并不需要说明模块的内部细节,但是需要进行全部的有关它们构造的定义,包括功能特征、数据特征和接口等。

  在进行概要设计时,模块的独立性是一个有关质量的重要技术性指标,可以使用模块的内聚、耦合这两个定性参数对模块独立性进行度量。

  2.软件详细设计

  设计工作的第二步是详细设计,它以概要设计为依据,用于确定软件结构中每个模块的内部细节,为编写程序提供最直接的依据。

  详细设计需要从实现每个模块功能的程序算法和模块内部的局部数据结构等细节内容

  上给出设计说明,并以“详细设计说明书”的形式提交书面报告。

  3.编码和单元测试

  编码是对软件的实现,一般由程序员完成,并以获得源程序基本模块为目标。

  编码必须按照“详细设计说明书”的要求逐个模块地实现。

在基于软件工程的软件开发过程中,编码往往只是一项语言转译工作,即把详细设计中的算法描述语言转译成某种适当的高级程序设计语言或汇编语言。

  为了方便程序调试,针对基本模块的单元测试也往往和编码结合在一起进行。

单元测试也以“详细设计说明书”为依据,用于检验每个基本模块在功能、算法与数据结构上是否符合设计要求。

  4.系统集成测试

  所谓系统集成也就是根据概要设计中的软件结构,把经过测试的模块,按照某种选定的集成策略,例如渐增集成策略,将系统组装起来。

  在组装过程中,需要对整个系统进行集成测试,以确保系统在技术上符合设计要求,在应用上满足需求规格要求。

  5.系统确认验证

  在完成对系统的集成之后,接着还要对系统进行确认验证。

  系统确认验证需要以用户为主体,以需求规格说明书中对软件的定义为依据,由此对软件的各项规格进行逐项地确认,以确保已经完成的软件系统与需求规格的一致性。

为了方便用户在系统确认期间能够积极参入,也为了系统在以后的运行过程中能够被用户正确使用,这个时期往往还需要以一定的方式对用户进行必要的培训。

  在完成对软件的验收之后,软件系统可以交付用户使用,并需要以“项目开发总结报告”的书面形式对项目进行总结。

  软件运行与维护期

  软件系统的运行是一个比较长久的过程,跟软件开发机构有关的主要任务是对系统进行经常性的有效维护。

  软件的维护过程,也就是修正软件错误,完善软件功能,由此使软件不断进化升级的过程,以使系统更加持久地满足用户的需要。

因此,对软件的维护也可以看成为对软件的再一次开发。

在这个时期,对软件的维护主要涉及三个方面的任务,即改正性维护、适应性维护和完善性维护。

  2.瀑布模型

  瀑布模型诞生于20世纪70年代,是最经典的并获得最广泛应用的软件过程模型。

瀑布模型中的“瀑布”是对这个模型的形象表达,即山顶倾泻下来的水,自顶向下、逐层细化。

  特点:

线性化模型、阶段具有里程碑特征、基于文档的驱动、阶段评审机制。

  作用:

为软件项目按规程管理提供了便利,为其他过程模型的推出提供了一个良好的拓展平台。

  局限性:

主要适合于需求明确且无大的需求变更的软件开发,但不适合分析初期需求模糊的项目。

  3.原型模型

  快速原型方法:

是原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求上的模糊认识,或用来试探某种设计是否能够获得预期结果。

  原型进化模型:

针对有待开发的软件系统,先开发一个原型给用户使用,然后根据用户的使用意见,对原型不断修改,使它逐步接近,并最终到达开发目标。

  增量模型结合了瀑布模型与原型进化模型的优点。

在整体上按照瀑布模型的流程实施开发,以方便对项目的管理。

但在软件的实际创建中,则将软件系统按功能分解为许多增量构件逐个地创建与交付,直到全部构件创建完毕,并都被集成到系统之中交付使用。

  比较瀑布模型、原型进化模型,增量模型具有非常显著的优越性。

但增量模型对软件设计有更高的技术要求。

  5.螺旋模型

  螺旋模型是一种引入了风险分析与规避机制的过程模型,是瀑布模型、快速原型方法和风险分析方法的有机结合。

其基本方法是,在各个阶段创建原型进行项目试验,以降低各个阶段可能遇到的项目风险。

  喷泉模型是专门针对面向对象软件开发方法而提出的。

“喷泉”一词用于形象地表达面向对象软件开发过程中的迭代和无缝过渡。

  7.组件复用模型

  组件复用方法是最近几年发展起来的先进的软件复用技术,在基于组件复用的软件开发中,软件由组件装配而成,这就如同用标准零件装配汽车一样。

因此,组件复用模型能够有效地提高软件生产率。

  三、项目分析与规划

  1.计算机系统分析

  计算机系统

  计算机系统是一个非常复杂并具有智能特性的开发系统,包括:

硬件系统、软件系统、网络通信系统、人工操作系统等诸多子系统。

  系统分析

  系统分析是对软件项目的高层分析,需要获取的是有关系统的框架描述,并需要使系统从它所处的环境中分离出来,为划分系统边界与确定系统构架提供依据。

  系统分析模型

  分析模型是指采用作图方式对系统进行直观的描述。

系统前期分析过程中经常使用的图形模型有系统框架图和系统流程图。

其中,系统框架图用于说明系统的基本构造框架,而系统流程图则用于表现系统的基本加工流程。

  2.项目可行性分析

  意义

  ?

以少量的费用对项目能否实施尽早作出决断。

  ?

根据项目条件限制,对系统的体系构造、工作模式等作出高层抉择。

  ?

其结果可作为一个高层框架被用于需求分析之中。

  分析内容

  ?

技术可行性:

从技术与技术资源这两个方面作出可行性评估。

  ?

经济可行性:

从项目投资和经济效益这两个方面作出可行性评估。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2