范文一:软件工程课程总结
软件工程课程总结
在我们整个软件工程过程中,我体会到了许多,也学到了许多。
在项目要进行自由分组后,我们的项目小组便诞生了。我们小组在相互商量后我们也确定了我们组的项目,是做一个移动阅读的项目。我们也随即做了分工,但是我们也不忘相互交流更好地完成任务。我们的项目也正式开始了。 需求调研和分析对于软件开发过程至关重要。我们在开发时如果不进行调研和分析,那么对于后来的项目进展将产生致命的后果。我们在项目的开发中便遇到了这样的问题。这个移动阅读项目的要求便是我们必须了解的,我们也必须以读者的要求为根本构建我们的这个系统。做一个系统时,必须随时和读者保持沟通,随时了解他们需要什么,他们想要什么功能。如果我们不去和读者沟通,不去调研读者的需求,做出来的系统即使在我们看来是一个很好,很完美的产品,但是如果读者不认同,那么我们所做的一切都是徒劳,还要返工去修改,费时费力。所以在做任何一个项目时,前期的需求调研和需求分析都是必须的,这是在做一个项目的基本,是关系成败的重要一环。
对于一个项目,它的需求设计也非常重要。在我们的移动阅读项目开发的过程中,遇到了一些问题,如读者提交购买确认后,能否快速的把内容反馈给读者,读者充值的订单在哪里处理,订单以什么方式惊醒处理,在管理员应该实现的功能上反复增删等,这些问题很多都是由于设计不够清晰,不够完善而导致的。出现的这些问题很多都是非常棘手的,我们为了解决这些棘手的问题浪费了大量的时间,我们不得不在工程代码上改了又改,在数据库里增表、删表、加数据、减数据,当然,在文档里也要做出相应的修改以适应新的功能。还好,我们能及时地发现问题,通过沟通讨论,问题也得到了解决。通过总结,我们也意识到,我们大家在做需求分析和进行需求了解时仅仅考虑了一些基本的功能,而至于管理员和读者之间的联系,以及具体的一些流程我们都没有深究,而导致我们到后期花费了大量的时间用于修复之前没有考虑周全而带来的问题。如果我们的需求设计能够比较清晰和完善,那么我们在开发过程中便会很明白的知道我们应该实现什么样的功能,在数据库里应该怎样建表,以什么方式插入数据,从而可以避免反复修改工程的问题,也能避免出现可能毁坏整个工程的问题。整个工程的需求设计对于一个项目的顺利进展至关重要。
对于文档在软件工程中的作用,我在这次项目开发过程中有了更加深刻的理解。文档在软件开发过程中是很有用的,文档是一项必不可少的东西,但文档也不能太多,太过繁琐,如果是那样就不太好了。首先我们要明确开发过程中为什么要写这些文档,文档的最根本的作用是为了更好的沟通。一个项目或产品可能需要延续很长的时间,开发过程中可能需要很多的环节,可能会遇到很多的问题和很多的解决的方法,这时,我们需要文档的帮助,我们需要有一个东西来记录,我们需要有一个共同的声音。文档只不过是一个准绳,将开发中的各个树枝树叶扶正。如果,这个准绳太多太紧,大树可能会发育的很高很直,但是就是有些畸形,如果这个准绳太少太松,大树可能就会变成灌木丛。文档的多少、繁简是有度的,绝对不能说越多越好。我觉得,文档需要说明解决问题的方法而不是解决问题的理论,因为解决问题的理论是在文档形成中做到的。文档完整即可,每一份文档说明一个问题,无需将多个文档的内容放在一个文档的里面。除了重要阶段形成文档,其它部分都只是讨论或者说是想法。不要让文档成为累赘,如果真是这样,我认为就是该考虑写这些文档的必要性的时候了。 我们在文档的时候,一定要明白为什么要写这些。
在整个项目开发过程中,我们也同时遇到了许多程序接口问题,页面和功能相结合的问题,数据库建表的问题,这些问题都是源于我们项目小组成员之间的沟通不足。我深刻认识到,在项目开发时,项目小组中各个成员之间的相互沟通是非常重要的。如果我们要在功能方面作出修改,那么程序人员和页面人员及数据库人员就必须相互沟通,共同对整个程序作出相应的修改,这样才能避免最终整合时出现问题。
在学习中,我还对软件工程有了新的理解。在我以前的理解当中,软件工程,无非就是一个人或者几个人或一个团队集中在一起进行编写代码的工作,以实现开发出所用的软件。但现
在我明白了,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。所以,软件工程就不仅仅是单一的编程过程了。它包括了系统分析->建模->概要设计->详细设计->编码->测试->维护。编码可以理解为编程,这个只占总时间的20%左右。编程只是其中的一小部分。
在这次项目里我完成了许多工作,在界面设计上我完成了,首页、全部的商品页面、全部的用户页面及部分管理员页面的制作,在后期项目整合过程中修改了功能和界面结合时出现的bug,还有数据库插入数据及解决数据库集中整合时出现的问题。这些工作我都顺利完成了,虽然并不能算是非常的出色,但也算是尽力了。现在看到自己辛劳的成果,我感到很欣慰。
当然,在这次项目过程中我也发现了自己的一些问题。如现在的网站开发技术还不够强,在和小组成员相互沟通上还不够积极等。我希望以此为契机,在将来的项目开发中能做得更好。
范文二:软件工程课程总结
课程总结
本课程是一门介绍应用软件开发的概述性的课程,系统讲授了应用软件的相关开发过程,和所应用的技术。课程讲授了9章的内容,包括产品、软件工程与软件过程,软件需求工程、分析建模、设计工程、软件体系结构设计、用户界面设计、构件级设计和软件测试技术等。
1、软件产品
计算机软件是一种特殊的逻辑产品,其为在计算机上运行的各种程序、数据及其说明程序的各种文档;软件承担着双重角色,软件是一个产品,同时又是产品交付使用的载体;软件是逻辑的而不是有形的,软件是基于计算机的系统元素,因此软件具有与硬件完全不同的特征;软件产品有着特有的产品分类方法;在计算机软件开发中所遇到的一系列无法完全解决的问题,导致了软件危机或软件苦恼的产生;在软件开发过程中,由于软件产品开发的特性导致了一些神话的产生,这些软件神话误导了人们,对软件项目管理者、客户和开发人员都带来了严重的问题,了解相关情况可以使我们能以正确的态度对待软件开发工作;由于软件产品的特殊性,软件工程从业人员的职业道德和行为准则显得更加重要。
2、软件工程与软件过程
软件工程是由有创造力的、有组织的人在定义成熟的软件过程中进行的,该过程适合于软件开发人员建造的产品和产品的市场需求;软件工程的定义:建立和使用一套合理的工程原则,以便获得经济的软件,这种软件是可靠的,可以在实际机器上高效地运行。
软件工程过程是一个为建造高质量软件所需要完成的任务的框架,是建造软件产品的一组活动及其结果。通用过程框架目的:
交流-----项目启动、需求获取及其任务集合
计划-----项目评估、进度安排、项目跟踪等
建模-----分析模型和设计模型
构造-----代码生成和软件测试
部署-----产品交付、技术支持、用户反馈等及其相应的任务集合。
3、软件工程过程模型,是指能够覆盖软件工程的过程、方法和工具以及软件工程的一般阶段的开发策略。过程模型的选择待建造软件的特点、所采用的方法与工具、以及需要的控制和交付的产品。
瀑布模型,增量过程模型——增量模型、RAD模型,演化过程模型——原型模型、螺旋模型,面向对象软件工程过程模型——统一软件开发过程。
4、需求工程
基于计算机的系统工程:在了解系统之前,匆忙建造技术元素,无疑将导致使客户失望的错误。在关注树木之前,先了解森林;基于计算机的系统:元素的集合或排列,这些元素在一起通过处理信息完成某些预定义的目标;系统元素——软件、硬件、人员、数据库、文档和规程;启动一个系统工程 ——发现领域过程、领域分析、识别协作系统、发现系统需求、将结果提交给客户;系统建模:评估系统构件及其相互关系。
5、软件工程实践
理解问题(交流和分析)、计划解决方案(计划与建模——软件设计);实施解决方案(构造——代码生成);检查结果的精确度(构造成部暑——软件测试、质量保证、用户技术支持)
6、软件需求收集与分析
构建一个软件系统最困难的部分是确定构建什么。其他的软件开发工作,不会像这部分工作一样,在出错之后如此严重地影响随后实现和系统,并且导致在以后进行的修补会如此困难;“我知道你相信你已经理解了你认为我所说的内容,但是我并不能肯定你已认识到你所听到的并不是我所想要的”。
7、软件需求分析的工作活动
起始——建立对拟开发软件(待解决的问题)的基本理解
导出——问题的范围、问题的理解、问题的变化;
精化——开发精确的技术模型,说明软件的功能、行为和约束
协商——确定合理的系统目标和需求优先级
规格说明——给出对软件系统功能和性能的描述,给出影响系统开发的约束;
确认
需求管理
8、软件的需求诱导——需求诱导原则
需求定义——需求是关于系统(软件系统)将要完成什么工作的一段描述语句,它们必须经过所有相关人员的认可,其目的是彻底解决客户的问题;
需求诱导原则(与客户的交流沟通活动)——倾听、有准备的沟通、需要有人推动、最好当面沟通、记录所有决定、保持通力协作、聚焦并协调话题、采用图形表示、继续前进原则、谈判双赢原则;
软件需求的过程启动——首次提问、一组加深理解并使客户能够表达其关于解决方案的感觉的问题、关于效率的“元”问题。
9、软件需求的导出
质量功能部署——正常的需求、期望的需求、令人兴奋的需求。
功能性需求和非功能性需求——功能性需求,描述系统为用户或其他系统提供的服务;非功能性需求,系统开发过程必须遵守的约束 。
10、用户场景与分析建模
用户场景(use—case)
构建分析模型——数据模型、功能模型、行为模型
11、需求确认与规约
12、分析建模
分析建模使用文档和图表形式的组合,以相对容易理解的方式描绘数据、功能和行为的需求,并直接评审其正确性、完整性、一致性。
分析建模原则:
原则1:必须描述和理解问题的信息领域
原则2:必须定义软件将实现的功能
原则3:作为外部事件的结果,必须描述软件的行为
原则4:描述信息、功能和行为的模型必须通过问题的划分,以层次的方式揭示细节 原则5:分析过程应从要素信息移向实现细节
13、分析建模的任务集合
评审需求
扩展和细化用户场景
信息建模(数据对象描述与数据建模)
功能建模
行为建模
用户接口分析和建模
评审所有模型,考察其正确性、完整性和一致性
14、用户场景建模:开发用例;场景建模
数据建模:数据对象描述——数据字典,数据建模——数据对象、属性和关系,数据模型——实体——关系图(ERD)
功能建模和信息流:信息流模型(DFD),信息流与功能建模
行为建模——状态变迁图(STD)
15、设计的原则与概念
设计是将要建造的某种事物的有意义的工程表示。软件设计创建软件的表达或模型,提供了软件数据结构、体系结构、接口和软件构件的设计细节——提供了软件系统实现所必须的工作基础。
对设计良好的软件而言,坚固是指程序不应含有任何妨碍其功能的缺陷;适用则是程序符合开发目标;赏心悦目意味着使用程序的体验是愉快的。
设计原则
设计过程不应该受“隧道视野”的限制;
设计对于分析模型应该是可跟踪的;
设计不应该从头做起;
设计应该缩短软件和现实世界中问题的“智力距离”;
设计应表现出一致性和集成性
设计的构建应该适应变更
设计的构建,应该使得即使遇到异常的数据、事件或操作条件时也能够平滑、轻巧地降级;
设计不是编码,编码也不是设计;
在创建设计时就应该能够评估质量,而不是在事情完成以后;
应该评审设计以减少概念性(语义性)错误。
16、设计的概念——抽象、求精、模块化
设计文档——描述设计工作的整体范围、说明数据设计、体系结构设计、接口设计、构件设计、需求交叉引用、软件测试、设计约束、补充说明
17、软件体系结构设计
设计建模原则
原则1:设计可追溯到分析模型
原则2:经常关注待构建系统的框架
原则3:数据设计与功能设计同等重要
原则4:设计接口(内部接口和外部接口)
原则5:用户界面必须符合最终用户要求
原则6:功能独立的构件级设计
原则7:构件之间、构件与外部环境之间松散耦合
原则8:设计模型应易于理解
原则9:设计以迭代方式进行,每一次迭代,设计者应尽力简化问题。
体系结构设计为软件开发提供了系统的整体视图,并保证系统开发人员能正确地得到需要的系统;软件体系结构设计涉及两个方面——数据设计:表示体系结构的数据构件,程序体系结构:关注于软件程序结构、构件的性质以及交互表示。
软件体系结构设计将需求分析中的数据、功能和行为模型中的元素,以及软件数据体系结构的设计,最终映射为软件系统的构件组织结构。
18、构件级设计
构件级设计也称为过程设计,它在数据设计、体系结构设计和接口设计之后进行,其意图是将设计模型翻译为可以运行的软件 。
构件级设计是使用某些能够易翻译成源代码的中间表示(如,图形的,表格的或基于文本的)来表示过程设计。
构件级设计的目标是要保证不仅能够完成翻译任务,而且能够不在开始时引入错误,即在过程设计中避免错误的产生。
19、用户界面设计
用户界面可以说是基于计算机的系统或产品的最重要的元素。如果界面的设计很糟糕,可能会严重地阻碍用户使用系统的计算处理能力。
一个弱的界面可能导致一个很好和可靠实现的应用的失败
三个重要的原则指导有效的用户界面设计,置系统于用户控制之下,减少用户的记忆负担,保持界面一致。
20、软件测试技术
软件测试的目的,就是在系统交付客户之前能够发现(和改正)尽可能多的错误。 白盒测试又称“玻璃盒测试”,白盒测试注重于程序控制结构
黑盒测试也称为行为测试,黑盒测试注重于确认功能需求
范文三:软件工程课程总结
题 目 《软件工程》课程总结
学生姓名 学 号 学 院 专业班级 指导教师 职 称 教授
年 月 2014 11
《软件工程》课程总结
一、学习目标
通过系统的学习,了解软件开发从项目确定到需求分析,再到概要及详细设计、代码实现、开发后的软件测试这一完整软件开发过程。学习上面提到的每一个步骤中完成任务的相关方法与工具。学完后应初步具备管理整个软件开发完整流程的能力。提高软件的质量与生产率,最终实现软件的社会化大生产。在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。
二、学习态度
这一学期的软件工程课就要进入尾声了,在复习理论知识的同时,更需要回顾和反思自己的学习态度。
在这学期的软件工程学习中,我从来没有迟到、早退以及旷课。不过因为参加银行从业考试请了一次假。在这学期中,我每节课都是按时上课,虽然我对软件、计算机这方面没有天赋,但是我尽量做到认真听课,提醒自己不要开小差。听很多人说这是一门比较深奥的课程,刚开始的时候我比较排斥这门课,但是老师讲的风趣幽默,慢慢的我开始进入状态,上课认真做笔记,认真听讲。
三、学习内容
通过一学期软件工程的学习,使我了解到了很多以前都不知道的知识。现将所学课本外的知识总结如下:
第一章 软件工程概述
软件工程是工程化软件开发与维护的方法论软件的开发者维护者或软件项目管理者都将是软件工程的实践者,并都需要掌握与应用软件工程方法。
1.1.软件是计算机系统中的逻辑成分,是程序、数据、文档等诸多元素的集合,需要有物理硬件的支持才能产生作用。是一系列按照特定顺序组织的计算机数据和指令的集合。软件并不只是包括可以在
计算机上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。
1.2.软件危机(software crisis),20 世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。软件危机主要表现在:软件开发费用和进度失控,生产出来的软件难以维护,软件产品质量难以保证等等。
1.3.软件工程是关于软件开发,使用与维护的工程方法学,并是工程技术、工程管理与工程经济的有机综合。
1.4.结构化方法学是传统的主流方法学,以功能为基本元素,包括结构化分析、结构化设计与结构化实现,可对整个软件生命周期提供方法学支持。
第二章 软件开发过程模式
软件开发过程模式是一个有关开发的实施路线与步骤的工程框架,软件开发时务、方法、工具、标准、规程等诸多要素,即基于这个工程框架凝结于一体。
2.1.软件生命周期是软件由提出到开发到投入应用的全过程。瀑布模式是最传统的过程模式,“瀑布”形象表达了其自顶向下、逐级细化的过程特征。
2.2.原型进化模式的开发流程是:开发者先建立原型系统供用户评价或使用,然后根据用户的意见反馈,对原型系统不断修正,由此是它逐步接近并最终达到目标系统的要求。
2.3.增量模式是瀑布模式和原型进化模式优点的结合。螺旋模式是一种可较好规避开发风险的过程模式。还学了送代模式是软件的分析、设计与实现可交替反复进行的模式。迭代模式有对面向对象方法更好的过程支持,可使面向对象方法获得更有成效的工程应用。
2.4.最后学习了组件复用模式。如下图1为组件复用模型。
基于组件的需求框架描述
组件复用率分析
基于组件复用的需求细化
与修正
基于组件的系统框架设计
图1 组件复用模型
所缺新组件开发第三章 软件项目管理
项目是一个具有工程独立性的工程作业单元,并是一个可将人、财、物合在一起的工程容器。软件的工程模式开发即以项目为单位进行,并通过项目实施有效管理。为使软件开发各项工作有序的进行,
基于组件的系统集成项目管理者必须事先制定项目开发计划。项目成本估算的方法有:程序代码行成本估计、软件功能点成本估计、软件过程成本估计。软件风险管理的主要任务是风险识别、风险评估和风险防范。软件文档是工程模式软件开发的成果体现。所谓软件配置,也是基于软件生产轨迹进行过程控制与产品追踪。最后学了软件质量管理,也是对软件品质的优劣进行评价。
第四章 计算机系统工程
项目是基于计算机的系统工程需要有对整个计算机系统较全面
的考虑诸多方面的因素,如:硬件设备、数据资源、网络环境、其他协作软件等,是待开发软件系统以的环境因素,然而绝不能有半点忽视,而必须在软件系统创建之前就认真分析。只有这样,软件项目才能有正确的工作方向,所开发出来的软件才不会是空中楼阁。计算机系统结构如图2所示:
计算机系统
软件系统 硬件系统
操作系 统
数据库管网络系统
理系统
应用系统人工系统
图2.计算机系统组成
第五章 需求分析
需求分析是一项非常关键的软件工程活动,是在开始软件设计、实现之前必须先期完成的任务,需求分析需要解答的问题是“软件能够做什么”。系统分析师将承担软件需求分析任务,其工作目标是确定用户软件需求,发现软件的用户价值。
本章要点是:分析任务与过程;获取用户需求;需求建模;需求验证。需求分析是对高层需求框架的细化,将涉及用户细节需求,并需要确认软件规格,其过程如图3所示:
需求框架分析用户需求
需求规约建立需求模型定义软件规格
软件规格说明需求验证
需求规格说明
书
如图3.需求分析过程
第六章 结构化分析建模
软件分析的关键是建立分析模型,实际上,在进行软件业务分析时就已建立了模,如业务树、业务流。然而,业务分析模型是面向用户的’一般只涉及用户需求规约,因此在进一步的面向设计的分析建模中,分析者还需要考虑软件技术问题,以支持软件规格定义,支持软件由分析到设计的过渡。分析建模特点是分析模型建立在需求规约基础上,并要求从数据、功能、行为等多个建模时叫建立模型,以使得对软件问题能有比较全面的建模解说。功能建模师对系统的数据加工的图解。行为建模用于说明软件系统与环境的交互。还学了数据字典,它是用于定义软件元素,以使软件元素获得严格的、详细的、精确地规格说明。如下图4为需求分析中规约、模型、字典之间的关系。
需求规约
功能模型
数
据 模 数据字典
型
行为模型
图4.需求分析中规约、模型、字典之间的关系
第七章 基于UML的面向对象分析建模
UML是一种可很好适应面向对象技术的建模方法,不仅可直观反映面向对象技术要素,并可有效贯通分析与设计,而使整个开发过程一体化。UML是统一建模语言,有统一的语法规则,语义规则与语用规则,并可从多个不同视角建立软件模型。用例建模是面向用户需求的,能够反映系统的用户价值。活动图用于描述系统动态过程,主要图形元素有:活动、转换、起点、终点、判断、并发、同步、泳道等。类分析建模的首要工作是发现实体类,可使用名词搜索法发现候选键,然后再从候选键中筛选出实体类。
第八章 概要设计
在软件规格确定以后,即可设计软件。软件设计一般按照概要设计,详细设计两步进行,首先需要完成的是概要设计。本章将要介绍的即是概要设计,其如同设计蓝图,用于确定系统构架、软件结构,以提供实现软件必须有的框架。系统构架,是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完
成任务。数据结构是指数据元素之间的逻辑关系。
第九章结构化设计建模
结构化程序以功能为目标。需求分析中有关软件的功能分析,将成为程序结构设计的依据。面向数据流的程序结构映射,即体现出了由功能分析到功能设计的过渡。结构化程序以功能模块为构件,其结构设计即围绕模块进行,涉及模块功能定义、模块接口设计、模块调用与控制设计。本章要点程序结构建模语言分别是程序结构图和HIPO图。基于数据流的程序结构映射是以功能为目的的结构化建模方法,可达到由功能分析到功能设计的有效转换。
第十章 基于UML的面向对象程序设计
面向对象程序设计需要考虑两两个方面的问题,其一,基于类的程序静态构造;其二于对象的程序动态过程。
可通过UML建立面向对象设计模型。其中的类图可用来描述程序的静态逻辑构造,涉及实体类、控制类、边界类、数据类等诸多类体。协作图、时序图、状态图则可用来描述基于对象的程序动态过程。
最终的安装发布还涉及物理结构,组件图可用来描述程序程序系统物理结构。
第十六章 非主流工程方法
前面章节介绍了结构化方法、面向对象方法,它们是主流软件工程方法,成熟并有广泛的软件工程应用。此外还有许多非主流软件工程方法,如:敏捷工程方法净室工程方法;形式化规格说明,它们不如主流工程方法成熟,而且未获得广泛的软件工程应用,但它们却有特定的软件工程应用价值,并因这些工程价值而受到人们关注。敏捷工程方法是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。净室工程方法是一种新的计算机软件开发技术,它是一种在软件开发过程中强调在软件中建立正确性的需要的方法,来代替传统的分析、设计、编码、测试和调试周期,净室方法建立一种不同的观点。Z语言是一种获得了
最广泛使用的形式化规格说明语言,以集合运算与谓词逻辑演算为数学语言,并以模式图形符号组织形式化说明。
四、学习感悟
时间飞逝,不知不觉间《软件工程》的学习完了。在这将近半学期的学习中,虽然我不能说我将《软件工程》学习的有多么的好,但是通过学习,我还是受益良多。
在以前,我一直对软件存在一些偏见或则是误解,认为软件就是程序,软件的开发就是编写程序,只要编完了程序,一切也就ok了,而且我还片面的认为只要我掌握了时下最新的语言和工具,那么我就能写程序了。一个人,只要会编程,就能写软件,就是程序员;一个公司,只要招聘一些程序员,就能开发好的软件产品。只要有几个有经验的程序员,再找些兼职的大学生,就能组成一个软件公司。
但是通过了《软件工程》这门课的学习,使我认识到了我以前的错误。软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品。而且在以前,我一直以为软件的开发其实是一件很轻松快乐的事情,只要一天坐在电脑旁敲敲键盘,那么一切就可以了,但是现在我才发现,我以前的很多的思想是多么的肤浅可笑。编程其实是一种乐趣和苦恼共存的一项创造性活动。因为编程不仅能够满足我们内心深处进行创造的渴望,而且还能愉悦我们内在的情感。
在学习软件工程过程中,或许有诸多不解,我们要从整体概念上较好地理解和把握、学好软件工程,学习时要注意多看多练要注意结合实际,更要多思考,面对错误不要一范就问,要尝试自己去解决。但是还要注意什么都学,肯定是什么都学不透的,要集中精力打攻坚战,学习软件工程首先要明白自己的学习目标究竟是什么,根据自己的实际工作出发,有针对性的在相应的学习方向上进行提高,制定出
详细的学习规划。还要注意与其他科目的相辅相成,就像我们在学习面向对象分析的时候要结合大一学习的面向对象及其方法学这一专业科目进行研究拓展,多思多想,把从各个科目学到的知识通汇贯通。
而且通过学习《软件工程》,还让我认识和培养了我的团队协作能力,特别是对于我们这些在校的学生来说,这种学习更是能让我在以后工作中少走很多的弯路。所以,通过《软件工程》的学习,我是真的学习到了很多有用的东西,让我明白了很多的道理。在此我对曾老师的辛勤教育表示感谢,因为是您让我学习到了这些,是我获益良多。《软件工程》课程强调概念和知识的理解和掌握,侧重软件项目的分析、设计、实现和维护的基本技能。比较注意“点”和“面”的结合。是一门理论性较强的学科。对于理论性太强的学科,把握起来真的很困难。书上列举很很多不错的例子,本书既可以当有趣的故事书来读,又可以当教科书来用,由此可见编者的水平有多高啊~我们这门课的曾老师,我对他的印象真的很好,这是一位好老师,也是一位负责的老师。最近听一个大四的学长说他软件工程没怎么学,现在答辩文档的组织能力和代码的规范都不合格,他很是为此发愁,因此更要要好好学习这门课程。这学期一晃又过去了,总感觉什么东西也没学到。不过我感觉还是过的很充实的,学好还是学不好的关键不是在于老师还是其他的外界因素,主要还是看自己的。对于学习软件工程这门课程,我认为有许多东西要学习。其实在我看来学习这门课程的精髓是学习一种方法。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。读完软件工程案例教程这本书,我觉得自己受益匪浅。
最后感谢老师的辛勤教育,您辛苦了~
范文四:软件工程课程总结
第一章 概述
软件危机
危机表现:
应用越来越大
历史短、经验少
产品质量低劣
需求上升、方式落后、人员奇缺 产品维护成为最头痛的问题 软件工程
软件工程的定义
Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必
需的相关文件资料
IEEE:软件工程是开发、运行、维护和修复软件的系统方法
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行
的可靠软件的一系列方法
软件工程三要素:方法、工具和过程 软件工程方法为软件开发提供了 “如何做” 的技术
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境
软件工程项目的基本目标
付出较低的开发成本
达到要求的软件功能
取得较好的软件性能
开发的软件易于移植
需要较低的维护费用
能按时完成开发工作,及时交付使用
瀑布模型(生命周期法)
第二章 软件计划
任务
可行性研究
第三章 需求分析
任务
DFD
DD
加工说明
SASDSP
第四章 概要设计
任务
SC
变换
事物
模块
第五章 详细设计
任务
流程图
第六章 软件编码
任务
第七章 软件测试
任务
按照特定规程,发现软件错误的过程。测试是程序的执行过程,检查软件是否满足规定的要求,或是清楚地了解预期结果与实际结果之间的差异。其目的在于发现软件中的错误。软件测试是对需求分析、设计、编码的最后复审,是保证软件质量的一个重要组成部分。 测试用例
测试用例是为发现软件错误而设计的数据,它由两部分组成:输入数据的描述,程序执行后应产生的正确结果的精确描述。
第八章 软件维护
任务
软件生命周期的最后一个阶段。对现有运行软件进行修改而同时保留其主要功能不变的过程,即对交付的软件继续进行排错、修改和扩充。
第九章 软件工程管理
任务
研究如何有效地对软件开发项目进行管理,以便于按照进度和预算完成软件项目计划,实现预期的经济和社会效益。软件工程管理包括成本估算、进度计划、人员组织、质量保证等多方面内容。12208261415963
范文五:软件工程课程总结
软件工程课程总结
学习软件工程这门课程已经有一个学期了,整整一个学期下来,应该说还是有许多值得肯定的地方的。其实在我看来,软件工程与其说是一门课程,不如说是一门思想,是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的能够解决问题的思想集合。
学习软件工程能够加强人的整体思维能力,对人的综合素质有所提高,培养良好的分析规划和团队意识。学习了软件工程,我们可以在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
在这学期的软件工程课上,我每次都认真听老师讲课,跟着老师的脚步,领悟老师的思想,学习态度还算认真。一刚开始还觉得这门课有点枯燥乏味,但后来静下心来看这本书感觉书上的知识对以后无论是在生活、学习还是在工作上都有很大的好处,对自身也是一种完善,因为这里面的思想博大精深,值得学习。从此我就认真地学习这门课程。尽管在学习的过程中遇到了很多困难,但经过与老师和同学的积极交流终于把问题解决了,从中学到了更深层次的知识,而这些知识又是对书本知识的补充,对学习书本知识有很大的好处。当然,学习理论知识就是用来指导实践的,也只有把理论知识运用到实践才能充分发挥理论的作用。所以在业余时间,我们尝试着把所有知识串起来,并根据自身的实践经验完成了相关的系统分析报告,让知识能更加驻留我心。
在本学期的软件工程课程的学习中,我们学习了十章的内容。第一章软件工程概述,这一章主要讲解的是一些概念性和基础性的内容,例如软件的概念、特性,软件危机的主要表现。了解软件工程的的工作对象、发展背景、内容、目标。还介绍了三个常用的软件工具Microsoft Visio、PowerDesigner和Rational Rose。第二章软件开发过程模式,这一章主要让我们了解软件生存周期,认识到了软件开发过程,熟悉了几种常用的软件过程模式的特点与用途。此章介绍了6种模式:瀑布模式、原型进化模式、增量模式、螺旋模式、迭代模式和组件复用模式。第三章软件项目管理,本章详细介绍了项目管理内容(对项目的管理、对项目成果的管理),让我们学会如何制定项目计划,并学习使用甘特图、任务网
络图(由Microsoft Project创建)制定项目计划。第四章计算机系统工程,这一章让我们熟悉如何从全局的计算机系统角度考察软件问题,熟悉如何对软件项目做可行性分析。该章还涉及系统初步建模,其中的系统框架图、系统流程图,可由Microsoft Visio中的基本流程图创建。第五需求分析,这一章重点讲解了需求分析任务及过程,让我们学会如何获取业务需求、建立业务模型、进行需求验证。可通过Microsoft Visio中的组织图创建业务树,通过Rational Rose创建业务用例、业务活动。第六章结构化分析建模,这一章重点讲解了使用变换型映射方法和事务型映射方法生成初始的模块结构以及模块结构的改进。说明了建立分析建模的原因和方法。我们可通过PowerDesigner创建实体联系图,通过Microsoft Visio创建数据流图,通过Rational Rose创建事件状态图。第七章基于UML的面向对象分析建模,本章详细介绍了UML的基本模式、事物、关系及建模时用到的各种图进行了介绍。可通过Rational Rose进行面向对象分析建模。
第八章概要设计,这一章主要讲解了概要设计任务及过程,介绍了系统构架、数据结构、程序结构等概要设计内容。第九章结构化设计建模,本章介绍了结构化设计建模的工具,让我们学会如何基于数据流进行程序结构映射和如何对程序结构进行优化。该章中的程序结构图由Microsoft Visio创建。第十章基于UML的面向对象设计建模,本章讲解了面向对象设计建模内容,让我们学习使用UML建立面向对象设计模型(逻辑结构、动态过程、物理装配与部署)。通过Rational Rose进行设计建模。
学习了这门课程之后,我发现无论是在上课,还是在学校里面做学生工作,技术性的工作就好比变魔术。其实原理是非常简单的,甚至可以说简单的可笑,但是当你就是做出这么一个简单的东西出来之后,一些外行们有时候会用崇拜的眼光看着你,觉得你很厉害,很高深莫测。但是制作的过程他们却不知道,也许知道之后他们只是会哑然失笑,原来这个东西的制作过程是如此的简单,这个可以说就是技术的魅力了。就比如说软件工程中所谓的需求获取,从字面上来看好像是一件很难的事,而其实就是一个谈判,辩论,交流的过程,只不过这个交流过程可能针对性比较强。 所以说软件工程就是对生活的平凡小事的升华,它来自于生活却高于生活。当我们在毕业之后,软件工程是我们实际要运用的一项非常有用的技能,而且不仅仅局限于软件工程的范畴,即使我们是从事其它行业,
不也是要从需求获取开始,一直有条有理地到最后成品的出炉吗?应该说这就是这门课的价值所在,它让我们既学会了管理又学会了技术。
在整个学期的学习过程中,我收获了不少,能够解决一些较为简单的问题,在建模方面的能力有所加强。原来一直以为学好这门课程最重要的是会编写程序,其实则不然。我了解到软件并非是一些代码这么简单,在开发软件的过程中,编写代码的工作量其实只占不到所有工程量的30%,而后期的管理和维护更是占了60%到80%之多。一个完整的项目规划须包括:软件的定义、可行性分析报告、项目开发计划、软件需求说明书、概要设计说明书、详细设计说明书、用户操作手册、测试计划、测试分析报告、开发进度报告、项目开发总结报告、软件维护手册、软件问题报告、软件修改报告等多个文档,每个文档都要上级验收审查,而文档数量众多,要做好这点真的不是很容易,而恰恰写好文档正能保证完成软件工程其中一个目的的关键,既研究如何用最小的开销做出生存期较长的软件,再加上各个阶段都要进行周密的策划、详细的分工部署和人员安排,且各阶段要据具体情况不断的反复才能达成,所以代码只是开发软件这个浩大的工程的一个小小的过程。当然自己也有很多的不足之处,比如自己动手操作能力比较弱,实践经验匮乏,思维不紧密,不注重细节,耐心不够,每次遇到问题就去问老师,实战精神不强,所以导致很多知识学得也只是模模糊糊的。所以在以后的学习中我要加强自身综合素质的培养,要注意多看多练要注意结合实际,更要多思考,面对错误不要一范就问,要尝试自己去解决,这样才能学到这门课程的精华。我觉得学好软件工程首先要明白自己的学习目标究竟是什么,根据自己的实际工作出发,有针对性地在相应的学习方向上进行提高,制定出详细的学习规划。还要注意与其他科目的相辅相成,就像我们在学习语言时,要看看与C语言的联系,多思多想,把从各个科目学到的知识融汇贯通。
在本学期我们班每位同学都做了管理信息系统分析报告,其中就用到了软件工程中的不少知识。比如项目来源,项目任务,项目规划,系统需求分析,系统结构设计,系统详细设计,系统测试,系统维护等等。而我做的是酒店客房管理信息系统的分析报告,其中涉及到了以上几个方面,需要明确任务目标,准备相应的项目资源,对项目实施合理的规划,进行业务需求和功能需求分析,制定出数据字典,设计出软件结构,并对其进行详细设计,比如算法设计,数据库设计
和界面设计。画出进度安排表,组织结构图,业务流程图,数据流图,利用UML建模画出图形,通过这些图形能更直观地看出各个实体之间的关系,对系统有个比较整体的体现。
总之,在今后的学习中要注意多读书、多思考、多练习、多讨论,不断熟悉书本的基础,并以此为基础将其扩散开来,应用于今后的实践。不断锻炼自己,成为社会的可用之才,回馈社会。