软件工程学习总结(1000字)

发表于:2018.4.20来自:www.ttfanwen.com字数:1000 手机看范文

软件工程是一门实践性很强、交叉性很强的学科,它提供给我们的不仅是一种方法论,更是一种世界观。

在没有接触软件工程这门课时,我一直认为软件就是程序。能编出解决问题的程序就可以了,从没有想过,在写一个程序之前还要对整个系统结构构思成几份文档(可行性分析、需求分析、概要设计)。不过对于那些大型软件QQ,微信(至少对于我来说是比较大型的了)怎么去实现它,想得我一头雾水。绚丽的界面,面对如此大的用户,多种的功能,怎样编代码去实现它呢?

第一次上软件工程的课,杨老师问“软件是什么?” 我的第一想法是:这个问题太过愚昧了!谁不知道软件就是程序呀? “软件是由计算机程序、数据及文档组成。”听到这句话,我心里先是一惊,慌忙翻了下书“软件是程序和所有使程序正确运行所需的相关文档和配置信息。”赫然映入我眼帘。突然间我发现,就算是QQ,微信这样复杂软件,如果设计者实现分模块把每一部分如何实现用文档描述出来,那这个软件实现起来不是很容易吗?

第一次课后我明白了软件工程是致力于专业化软件开发的理论、方法和工具的研究。虽然我高中已经有编程这个爱好,但在大三上学期才接触在软件开发中这么有引导意义的学科,不觉有种相见恨晚的感觉。自然它的方法学三要素:方法、工具、过程,我牢记于心。

短短的几周,杨老师的课给我留下了深刻的印象,印象尤深的是:做软件我们首先考虑的是团队的实力。

如果别人给你50万让你们团队开发一个软件,如果他要求你们团队给这个软件永久维护,那么你要去跟他协商付100万。很多软件公司倒闭就是因为维护上的问题。至此我才明白维护软件是软件生存周期中时间最长的一个阶段,它是最花费精力与钱财的一个阶段。

其实在我接触软件后,渴望的是当一名软件工程师。现在才知道学软件工程专业后,去当一名软件工程师是最低层的也是最没“技术”含量的。要做就做系统构架师,当然这需要我们的不懈努力才能达到。系统构架师的职责是设计一个公司的基础构架,并提供关于怎样建立和维护系统的指导方针。恍然发现学软件不仅是学软件,相关的管理能力也是需要具备的。

当然理论知识是用来指导实践的,亲身体验才能领悟软件工程的妙用。课设我们选择了项目管理系统,主要是这个系统我们接触比较多,对于它的流程还是比较清楚的。虽然如此我们还是花了很大的时间去完成它。记得当时我们定下这个题目是晚上,在讨论用什么语言实现时,大家各自说出自己比较善于的语言。然后均衡了下,定下用java做开发语言。同时我们定下不管以后遇到什么困难都要坚持下去的准则。在课设期间我们没少跑图书馆,查阅各种资料,对比各本书上实现项目管理系统的代码。

后来终于把文档都弄好了,可以专心投入编码了.经过学习软件工程,我明白到编码只是一个重复循环的操作.而设计才是一个软件产品的精粹.




第二篇:软件工程学习总结 3800字

——0708210101 管科4班 XXX

在上学期的信息管理课程中我们已经大略学习过了软件的开发过程、方法、生命周期等软件工程的内容,但一直不能系统地去理解这些东西,对软件开发过程也没有没有清晰地概念。通过这学期以来的学习,虽说课本中的很多内容仍不能清晰地理解掌握,但对于软件工程确实也有了比上学期更明晰系统的概念和理解,同时也在老师授课下对许多以前未所听闻的开发软件和开发方法如sharepoint,UML模型等有了初步的了解,深感这是一门博大精深而十分有用的学问,需要我们认真进一步地学习。以下是我对课本内容知识点的学习所得梳理与感悟:

(一)、关于“软件工程”学

软件工业历史3个阶段走来,传统的软件开发不重视开发技术与开发管理,现代社会软件需求的激增,开发与维护的困难使得许多软件项目告以失败,“软件危机”爆发。

“软件工程(SE)”的概念是为了有效地控制软件危机的发生而被提出来的,它的中心任务就是把软件作为一种物理的工业产品来开发,要求“采用工程化的原理与方法对软件进行计划、开发和维护。” 其实质在于:以大型软件为对象(如企业资源管理ERP系统);旨在开发满足用户需求、及时交付、不超过预算和无故障的软件;针对软件这一具有特殊性质的产品的工程化方法。软件工程涵盖了软件生存周期的所有阶段,并提供了一整套工程化的方法,来指导软件人员的工作:

(一)、软件项目过程包括开发、管理、改进三个部分——软件工程三段论

软件开发

项目管理

过程改进

1、软件开发

——软件人员生产软件的过程,包括需求分析、设计(概要设计、详细设计)、编码、测试、产品提交、提交。其线路图如下:

2、软件项目管理

——项目管理者规划软件开发、控制软件开发的过程,相当于生产线上的管理过程,管理过程是伴随开发过程进行的过程。 软件项目管理路线图

3、软件过程改进

——相当于对软件开发过程和软件管理过程的“工艺流程”进行管理和改进,如果没有好的工艺生产不出好的产品,它包括对开发过程和管理过程的定义和改进。

软件过程改进路线如下图:

建立阶段产生的改进方案可能是如何进行改进也可能是出于各方考虑而放弃不改进。

(二)、软件工程知识体系

——IEEE的软件工程知识体系指南中界定了软件工程的11个知识体系:

软件工程知识体系SWEBOK 20xx 前5个知识体系

软件工程知识体系SWEBOK 20xx 后6个知识体系

(三)、关于软件工程生存期模型:

软件工程有很多环节,软件工程模型用一定的流程将各个环节连接起来,并用规范的方式造作全过程,就可以形成不同的生存期模型,这个生存期模型就是在项目规划过程中选择的策略。常见的生存期模型有: 瀑布Waterfall;V模型V-shaped;原型Prototyping;增量Incremental;螺旋式Spiral。 这些模型各有特点,在实际应用中应该根据需求进行选择,例如:WaterFall model要求一个阶段的输出是下阶段的输入,没有反馈,项目目标固定不变(WaterFall model过于理想化,不适合现代软件开发;但其“线性”思想易为掌握,在其他模型中都能找到其影子)所以适合于: ? 在项目开始前,项目的需求很明确

? 在项目开始前,解决方案也很明确

? 类似的项目如:公司的财务系统、库存管理系统、短期项目

(四)、关于复用原则

——基于复用(重用)的软件工程是比较理想的软件工程策略,复用可以降低软件开发和维护的成本,缩短开发时间,提高产品质量。

二、关于软件项目过程

从课本第2章到第8章主要是沿着软件工程线路图为我们解析软件项目开发过程个阶段的任务、开发方法、成果要求及项目管理实施:

(一)、需求分析

——软件项目的失败大半源于需求分析没有做好,软件开发人员首先应该明确用户的意图和要求,正确获取用户的需求,然后形成一个软件需求规格,它是软件开发的重要基础。需求分析一章介绍了需求分析如下的5个过程及基本任务(需求获取->需求分析->需求规格说明->需求验证以及变更管理)并重点介绍了需求分析中的建模方法:

需求规范必须说明和功能定义,既是往后概要设计和详细设计的基础,同时也便于后期与客户发生争端或需要进行设计变更时可以有据可依。

需求建模方法: (Microsoft office visio是有力的建模工具)

1、关联模型——定义系统与环境的关联关系 (ATM系统)

1、行为模型——是描述系统的总体行为:数据流模型;状态机模型

2.3、数据模型——定义系统处理的数据逻辑形式(E-R图与数据流程图)

2.4、结构化方法

——最早的开发方法,其中有代表性的是美国的Coad/Yourdon的面向数据流的开发方法、欧洲Jackson/Warnier-Orr的面向数据结构的开发方法,以及日本小

村良彦等人的PAD开发方法(业务流程图、数据流图、数据字典的使用)

2.5面向对象模型——将现实世界的“视图”转化为用对象来描述的模型描述对象之间的各种关系,以满

足软件系统的要求。

面向对象的建模工具——UML(Rose、visio:可以利用代码生成器将UML转换成多种程序设计语言代码,或反向)

有实现,只是结果静态的操作流程,以便与用户快速就需求达成一致;主要考虑系统的功能需求,很少考虑非功能需求(类型:进化型、抛弃型)

2.6、原型方法——按照用户的需要,快速形成一个操作流程界面,可能只是一个框架,具体的功能没

(二)、设计阶段

包括概要设计、详细设计、编码三部分,依次推进,概要设计文档是详细设计的基础,详细设计文档又是编码的基础。

概要设计部分主要从结构化和面向对象两个角度较少设计方法。分块介绍了数据设计(以数据库设计为核心)、架构设计、界面设计、模块设计等设计模型。同时介绍了主机、C/S、B/S的体系结构,详细介绍了应用程序框架的概念及MVC设计模型的应用。概要设计根据需求规格对系统的结构、接口、模块等进行设计,并根据设计结果产生概要设计文档。

详细设计过程根据概要设计形成的结果对各个模块的内部实现进行规划设计,并根据设计结果产生详细设计文档。详细设计部分介绍了如何采用结构化和面向对象的方法从视图、控制、模型三层模型上细化概要设计的各个模块,并完成伪代码为编码阶段做准备。

编码阶段依据详细设计文档实现设计中的算法、功能、接口、数据结构并通过配置管理控制管理变更,并形成编码文档。这部分主要介绍了编码的结构化和面向对象化的方法,以及编码过程中的标准和规范,重用原则。

(三)、测试阶段

第6章主要讲述了测试的方法、技术、测试级别以及测试的管理过程。透过这章学习,我了解了静态测试和动态测试的方法,黑、灰、白盒测试的区别及应用。课本从测试方法讲起,在白盒测试的方法中介绍了结构化的测试方法和面向对象的测试方法,重点讲述了传统的结构化的逻辑覆盖方法。在黑盒测试中

引入了等价类划分、边界值测试、错误猜测、规范导出等方法。讲授了在不同单元、集成、系统以及接受等不同级别测试中采用的不同的测试方法以及包括测试计划、测试开发、测试执行、测试跟踪、测试评估等的测试管理过程。

(四)、项目提交阶段

主要讲述产品提交需要完成的主要——提交产品和进行培训。提交产品的同时要提交相应的手册等,包括用户使用手册、管理员手册等。要求一个说明书,双方在提交产品说明书上签字,以说明产品提交结束。

(五)、项目维护

阐述了维护的类型和任务:使用户和系统服务员使用得满意;预测变更,惊醒更多的跟踪和控制。

三、课程学习感想

了解了什么是“软件危机”,透过软件工程于解决“软件危机”的重要性、软件工程三条重要线索、软件工程知识体系函括内容及软件工程各类生存期模型,我对软件工程思想及“工程化”软件开发的流程有了较系统的了解,较上学期对软件开发流程有了更进一步的理解。透过软件工程的起源,认识到:实现软件工业的产业化,软件工程必须是真正意义上的工程化。从软件开发三条线索(开发、管理、改进)来看,软件开发的过程必须规范化(各阶段都必须形成相应文档;编码必须依照通用可读性严格遵照编程规范??);软件项目管理的核心是项目规划和项目跟踪控制,保证软件工程开发的成功完成,软件开发流程的规范化在软件项目中有着重要的作用,通过不断地优化和规范过程,企业可以提高软件生产能力。

从需求分析到维护,透过软件的开发流程具体实施的学习,我对软件项目开发的流程有了更深的理解,例如通过需求设计报告、概要设计报告、详细设计报告三份作业的完成虽然很不完善,但仍让我对需求分析建模和设计中用到的方法有了更好的理解并熟悉了三份文档的格式。同时,这门课更正我不少的错误观念:比如编码规范问题,以前我总觉得个人写的程序只要能运行不管别人看不看得懂,注释可有可无,想法越独特代码量越少或内存损耗越小就越好,学了这门课才理解这样的代码可读性很差,通用性不好,维护起来很不方便,代码的可读通用性重要性不亚于正确性和运行效率;以前除了代码的源文件其他文档都不甚重要,学了这门课才知道软件开发中每一阶段都有文档的产生,其管理与应用也是一门大学问??此外,这门课程里讲授了很多我以前从未接触过的方法和软件如UML模型、MVC模型、visio的强大绘图建模功能、sharepoint的文档版本控制功能、project的项目规划与跟踪作用等等,相比较运筹学中的WinSQB只能计算特定类型的案例来讲,这些知识不仅能应用于软件工程,也能应用于其他的很多领域,这门课结束了,但这些方面学习我还将继续的。

更多类似范文
┣ 软件工程学习总结 7400字
┣ 学习体会:高教自考软件工程课程概说总结 3500字
┣ 软件工程 企业课程学习总结报告(吴松1123) 2200字
┣ 软件工程 企业课程学习总结报告2(吴松0106) 1600字
┣ 更多软件工程学习总结
┗ 搜索类似范文

更多相关推荐:
软件工程实习总结2700字

实习总结光阴荏苒,时光飞逝,转眼间到了实习结束的日子。从进公司实习到现在,我已经到公司近6个月了,感受颇多,收获颇多。期间,通过公司领导的关心和帮助,同事的指导,使我能够很快地了解公司的管理与运作程序,我了解了…

软件工程复习重点总结3500字

第一章软件过程:需求设计实现发布软件过程三要素:过程+方法+工具瀑布rupscrumIconixScrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。ProductOwner、ScrumMaster、T…

常用工具软件学习总结2000字

常用工具软件学习总结系别:--------专业:-------班级:-------姓名:------学号:-------摘要:《电脑常用工具软件标准课程》一书,精选了14大类100余种常用工具软件,全面介绍了这…

专栏推荐
大家在关注

地图地图CC