第一篇:软件工程课程总结
软件工程课程总结
学习软件工程这门课程已经有一个学期了,整整一个学期下来,应该说还是有许多值得肯定的地方的。其实在我看来,软件工程与其说是一门课程,不如说是一门思想,是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的能够解决问题的思想集合。
学习软件工程能够加强人的整体思维能力,对人的综合素质有所提高,培养良好的分析规划和团队意识。学习了软件工程,我们可以在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
在这学期的软件工程课上,我每次都认真听老师讲课,跟着老师的脚步,领悟老师的思想,学习态度还算认真。一刚开始还觉得这门课有点枯燥乏味,但后来静下心来看这本书感觉书上的知识对以后无论是在生活、学习还是在工作上都有很大的好处,对自身也是一种完善,因为这里面的思想博大精深,值得学习。从此我就认真地学习这门课程。尽管在学习的过程中遇到了很多困难,但经过与老师和同学的积极交流终于把问题解决了,从中学到了更深层次的知识,而这些知识又是对书本知识的补充,对学习书本知识有很大的好处。当然,学习理论知识就是用来指导实践的,也只有把理论知识运用到实践才能充分发挥理论的作用。所以在业余时间,我们尝试着把所有知识串起来,并根据自身的实践经验完成了相关的系统分析报告,让知识能更加驻留我心。
在本学期的软件工程课程的学习中,我们学习了十章的内容。第一章软件工程概述,这一章主要讲解的是一些概念性和基础性的内容,例如软件的概念、特性,软件危机的主要表现。了解软件工程的的工作对象、发展背景、内容、目标。还介绍了三个常用的软件工具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建模画出图形,通过这些图形能更直观地看出各个实体之间的关系,对系统有个比较整体的体现。
总之,在今后的学习中要注意多读书、多思考、多练习、多讨论,不断熟悉书本的基础,并以此为基础将其扩散开来,应用于今后的实践。不断锻炼自己,成为社会的可用之才,回馈社会。
第二篇:软件工程课程
软件工程专业本科生课程设置
时间:2009-03-22 08:47 来源: 作者: 点击:1059
学院在课程体系制定、课程计划安排上制定了严格的规定与规范的操作程序。课程体系、教学计划由学院主管院长负责,对国内外大学、大型IT企业进行调研、分析,确定社会对人才的需求和人才知识、能力、素质的构成,而后由主管院长召集相关教师起草方案,再经学院教学指导委员会专家和企业专家进行论证,并报学校教务处审核、批准,由此形成本科生、硕士研究生的培养方案。同时,根据学科发展和社会需求的变化,学院通过增加或变更选修课、开设讲座等方式动态调整。目前,软件学院主要课程设置按课程体系关键域分类如下。
1)数学基础(本科):大学数学I、概率论与数理统计、数值分析、离散数学等。
2)软件基础(本科):数据结构、汇编语言程序设计、面向对象编程与设计、可视化程序设计基础、操作系统、数据库系统、C/C++程序设计、算法分析与设计、编译原理、软件工程等。
3)硬件基础(本科):数字电子技术、计算机系统基础、数字通信原理、微机原理与技术、计算机网络原理等。
4)专业技术(本科):大型数据库技术、软件体系结构、系统级编程技术、数据挖掘、嵌入式系统、J2EE应用开发、.NET架构软件开发、设计模式、建模与测试、信息安全、软件开发案例分析、并行程序设计、多媒体技术及应用、网络与分布式计算、计算机图形学等。
5)工程管理(本科):软件开发项目管理、软件质量管理与控制、企业管理、网络营销、商务谈判技巧、软件度量及应用、心理学、商务英语等。
6)数学基础(双证硕士):应用统计、组合数学、应用数学方法等。
7)软件理论基础(双证硕士):现代软件工程、面向对象与构件技术、高等计算机算法、移动计算等。
8)数学基础(工程硕士):运筹学、工程数学基础、应用数学方法等。
9)软件理论基础(工程硕士):分布式系统、现代软件工程、软件重用与构件技术、软件工程实例分析等。
第三篇:软件工程专业导论课程总结模版
黑龙江科技学院
软件工程专业导论
课
程
总
结
专业:软件工程 班级:
学号:
姓名: 软件10-3 19 邵锐
指导教师:乔付
上课日期:
2011.2.28~2011.3.4计算机与信息工程学院
2011-3-4
课程内容与体会
一、课程内容
刚开学的第一周我们并未开课,而是进行一系列的专业导论,这又让我对软件工程多了一些了解。周一,老师讲了很多对我们有用的东西。并谈到了关于上学期期末挂科的事,作为其中一个挂科的人,我深深的反省了。
周二,老师说了很多关于最近几年比较流行的职业和比较高薪的职业。还向我们提及了软件的开发过程和开发趋势。对于软件工程的学生就必须了解软件开发的热点。最近几年软件行业的热点包括游戏,动漫和物联网。其中游戏包括网页和手机上的应用程序。在一家软件公司里,有软件架构师程序员软件开发者。而高级程序员就是程序架构师。软件架构师根据需求分析,然后制作一份详细设计报告。这就是软件开发过程,而软件开发趋势也越来越来热,软件行业属于绿色行业,它只会越来越来越兴盛。现在很多东西都需要软件来控制。
周三,老师带领大家参观了哈尔滨比较有名的一家软件公司——海康软件公司。这是我们第一次跨出校门接触有关软件的事,同时也是离我们将来很近的事。在海康公司我们参观了她们的工作环境及他们获得的一些奖项。并听了他们经理得一翻讲话,这个公司规模挺大,员工工作环境也不错。他们经理跟其中的一个员工都讲到了在我们这个时期最重要的是学习,只有学习到了足够的知识,才能使我们足够强大,在这个竞争激烈的社会更具竞争力。学习是一个过程,我们应该去享受它。这个时候是我们积蓄力量的时候。在此期间,我们还看了我一段关于海康公司过去几年的发展的短片。这使我们了解了我们以后的发展方向。
周四,老师给我们讲了学习最重要的是用心。因为有心才会想把它做得更好。而且不只是学习,做任何事都应该用心,都应该努力。
周五,这是本次专业导论的最后一课,老师向我们介绍了关于软件考试并解读了软件工程专业培养方案。并告诫我们以后实习一定要寻找有主业,而培训是副业的公司实习。乔老师还跟我们说了关于软件水平考试的事,软件水平考试也就是程序员考试。软件工程师考试包含初级,中级和高级。
在这一个星期里我们学到了许多东西,而下午的时间我们也没闲着,由于即将要学习一门与C语言有关系,而且是近年来使用较多的新课程java。Java是一种简单,面向对象,分布式,能高效解释执行,健壮安全,结构中立,具有可移植性,高效率,多线程,动态的高级语言。在这些天的下午,我们都对C做了一个系统性的复习。以便于更好的学习java。
二、体会
这一周我感觉收获很大,这些课程的学习让我明白了很多道理。在上一个学期里,因为我上课不认真,还睡觉,导致我在期末考试时,这一学科没有及格,在周一的课上,乔老师说了很多关于挂科的事。他说得很有道理,而且我也深深地感触到了乔老师说的。乔老师说他想在这一节课上改变一个人的性格,我并未被改变,但是内心深处很赞同。周二,另一个老师又教了我们许多东西,这些更进一步让我了解了我们为什么学习软件工程,为了什么学习软件工程,学了软件工程可以干什么。这些以前都是我常思考的问题,在这一周,这些问题都得到了完美的诠释。让我了解了以后我们会干什么。周三,乔老师带领我们参观了海康软件公司,虽然只是短短几个小时,但却让我对未来充满期待,幻想着有一天我是不是也会跟她们一样,幻想着将来我也能够像他们一样,做自己喜欢的事。能够有一份稳定的工作。但是这一切的一切都必须基于努力的学习,在现在这个阶段,正如那位经理所说,学习才是最重要的。同时我们也多一个软件公司大体上的运作有所了解,而且也更加了解了一个公司的职位分布和将来我们可能从事的职位。所以在大学期间,我们需要,努力充实自己,让自己更具竞争力,努力磨尖自己,让自己更具特色,更特别,更独一无二。让自己在大学里面凸显出来,因为未来想要要找到一个自己满意的工作,你就必须让自己足够有知识去干好这项工作。周四,乔老师给我们讲了一个学习的“诀窍”,那就是用心。常言道:“有志者,事竟成”。只要用心,你就能够把一项工作做到近乎完美。而且,不管什么事,你都应该用心。周五,老师为我们解读了培养方案,并且跟我们讲了程序员考试的相关事宜,这些让我意识到,是大学四年转眼就过去了,而找工作的事也离我们不远了,我们不必为找工作而恐慌,而是应该把眼光转到学习上,每个人都想让自己过得更好,活得更好,所以我们需要不断努力,而不是沉迷于现在这种衣来伸手饭来张口的生活。而对于程序员考试,我们也应该给予重视,那不仅是我们找到工作的筹码,更是对我们能力的一种测试。
以上就是我在上一周里的收获,我认为这样的课程是很有意义的。
第四篇:软件工程课程总结
课程总结
本课程是一门介绍应用软件开发的概述性的课程,系统讲授了应用软件的相关开发过程,和所应用的技术。课程讲授了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、软件测试技术
软件测试的目的,就是在系统交付客户之前能够发现(和改正)尽可能多的错误。白盒测试又称“玻璃盒测试”,白盒测试注重于程序控制结构
黑盒测试也称为行为测试,黑盒测试注重于确认功能需求
第五篇:软件工程课程心得
软件工程项目总结
在我们整个软件工程过程中,我体会到了许多,也学到了许多。
在项目要进行自由分组后,我们的项目小组便诞生了。我们小组由七个成员组成,在相互商量后我们也确定了我们组的项目,是做一个校园 b2c电子商务网站。我们也随即做了分工,由于我们团队只有我和另一名成员有类似的项目开发经验,所以我们便要担负起更重的任务。最后由于在整个团队中,对于界面开发这一块只有我的开发经验较深,所以我便担任了主要的界面设计人员。我们的项目也正式开始了。
需求调研和分析对于软件开发过程至关重要。我们在开发时如果不进行调研和分析,那么对于后来的项目进展将产生致命的后果。我们在项目的开发中便遇到了这样的问题。老师作为我们的客户,他对这个校园 b2c电子商务网站的要求便是我们必须了解的,我们也必须以客户的要求为根本构建我们的这个系统。我们开始自己随意的计划整个网站的设计,然后报给老师,老师作为一个客户并不是全部认同,随后我们也必须按着客户的要求更改我们的设计报告。我也明白了,再做一个系统时,必须随时和客户保持沟通,随时了解他们需要什么,他们想要什么功能。如果我们不去和客户沟通,不去调研客户的需求,做出来的系统即使在我们看来是一个很好,很完美的产品,但是如果客户不认同,那么我们所做的一切都是徒劳,还要返工去修改,费时费力。所以在做任何一个项目时,前期的需求调研和需求分析都是必须的,这是在做一个项目的基本,是关系成败的重要一环。
对于一个项目,它的需求设计也非常重要。在我们的校园 b2c电子商务网站开发的过程中,遇到了一些问题,如客户提交购买确认后,我们如何确定应该以什么方式将货物给客户,还有以什么确定货物的送达地点,客户的订单在哪里处理,订单以什么方式惊醒处理,在管理员应该实现的功能上反复增删等,这些问题很多都是由于设计不够清晰,不够完善而导致的。出现的这些问题很多都是非常棘手的,我们为了解决这些棘手的问题浪费了大量的时间,我们不得不在工程代码上改了又改,在数据库里增表、删表、加数据、减数据,当然,在文档里也要做出相应的修改以适应新的功能。还好,我们能及时地发现问题,通过相互
沟通讨论,问题也得到了解决。通过总结,我们也意识到,我们大家在做需求分析和进行需求了解时仅仅考虑了一些基本的功能,而至于管理员和客户之间的联系,以及具体的一些流程我们都没有深究,而导致我们到后期花费了大量的时间用于修复之前没有考虑周全而带来的问题。如果我们的需求设计能够比较清晰和完善,那么我们在开发过程中便会很明白的知道我们应该实现什么样的功能,在数据库里应该怎样建表,以什么方式插入数据,从而可以避免反复修改工程的问题,也能避免出现可能毁坏整个工程的问题。整个工程的需求设计对于一个项目的顺利进展至关重要。
对于文档在软件工程中的作用,我在这次项目开发过程中有了更加深刻的理解。文档在软件开发过程中是很有用的,文档是一项必不可少的东西,但文档也不能太多,太过繁琐,如果是那样就不太好了。首先我们要明确开发过程中为什么要写这些文档,文档的最根本的作用是为了更好的沟通。一个项目或产品可能需要延续很长的时间,开发过程中可能需要很多的环节,可能会遇到很多的问题和很多的解决的方法,这时,我们需要文档的帮助,我们需要有一个东西来记录,我们需要有一个共同的声音。文档只不过是一个准绳,将开发中的各个树枝树叶扶正。如果,这个准绳太多太紧,大树可能会发育的很高很直,但是就是有些畸形,如果这个准绳太少太松,大树可能就会变成灌木丛。文档的多少、繁简是有度的,绝对不能说越多越好。我觉得,文档需要说明解决问题的方法而不是解决问题的理论,因为解决问题的理论是在文档形成中做到的。文档完整即可,每一份文档说明一个问题,无需将多个文档的内容放在一个文档的里面。除了重要阶段形成文档,其它部分都只是讨论或者说是想法。不要让文档成为累赘,如果真是这样,我认为就是该考虑写这些文档的必要性的时候了。我们在文档的时候,一定要明白为什么要写这些。
在整个项目开发过程中,我们也同时遇到了许多程序接口问题,页面和功能相结合的问题,数据库建表的问题,这些问题都是源于我们项目小组成员之间的沟通不足。我深刻认识到,在项目开发时,项目小组中各个成员之间的相互沟通是非常重要的。如果我们要在功能方面作出修改,那么程序人员和页面人员及数据库人员就必须相互沟通,共同对整个程序作出相应的修改,这样才能避免最终整合时出现问题。
在这十个周里,我还对软件工程有了新的理解。在我以前的理解当中,软件工程,无非就是一个人或者几个人或一个团队集中在一起进行编写代码的工作,以实现开发出所用的软件。但现在我明白了,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。所以,软件工程就不仅仅是单一的编程过程了。它包括了系统分析->建模->概要设计->详细设计->编码->测试->维护。编码可以理解为编程,这个只占总时间的20%左右。编程只是其中的一小部分。
在这次项目里我完成了许多工作,在界面设计上我完成了,首页、全部的商品页面、全部的用户页面及部分管理员页面的制作,在后期项目整合过程中修改了功能和界面结合时出现的bug,还有数据库插入数据及解决数据库集中整合时出现的问题。这些工作我都顺利完成了,虽然并不能算是非常的出色,但也算是尽力了。现在看到自己辛劳的成果,我感到很欣慰。
当然,在这次项目过程中我也发现了自己的一些问题。如现在的网站开发技术还不够强,在和小组成员相互沟通上还不够积极等。我希望以此为契机,在将来的项目开发中能做得更好。