再谈对软件工程的认知与理解----“菜鸟也想变大佬”团队

时间:2020-05-23 20:29:51   收藏:0   阅读:128

团队队长整体的总结与分析:

 

  为时10周的软件工程课程教学已经结束,课程项目已经完成,在学习和实践的过程中,团队各个成员做出了较为完善的“村镇银行储蓄业务系统”,学到了如何有效的进行需求调查,需求分析,更加清楚的认识到了组织团队的模式,对软件的开发流程也有了更深一步的了解,同时能够熟练的绘制类图和活动图,各个团队成员的编程能力也得到了进一步的提升。

  在团队项目实践的过程中,我们在需求分析方面遇到了较大的问题。一开始的时候,我们没有弄清楚需求,就直接上手进行操作,在第一次演示结束后,老师提出一个用户无法通过网页直接进行存取款的质疑,这时,我们才了解到我们做的第一个版本的程序完全偏离了主题。第一次演示之后,团队召开小组会议,进一步的确定需求,这次的小组会议,我们仍然采用屏幕共享的方式,让各个成员说出自己的想法,我们结合“河南农信社”的官方网站,在原来需求的基础上进一步的确定需求,我们将原来的存款取款等错误需求去掉,增加了管理员的想法。考虑到每个银行都会有自己的服务器,我们并决定用NetBeans编写网站代码,管理员的代码则用eclipse进行编写。但是这次会议我们商讨出的管理员功能是对客户的信息进行增删改查,当我们的代码即将完工的时候,团队成员提出了一些质疑,为了避免出现第一次演示的情况,我与老师进行联系,当我将我们第二个版本的想法说给老师听的时候,老师提出网上银行,管理员不能针对个人帐户做任何操作的质疑,这如同晴天霹雳一般。我们在小组群聊里根据老师的提示再次进行讨论,并及时与老师进行交流,我们了解到,现在我们快要完成的管理员系统是一个类似柜台系统的东西,并不是真正的管理员系统。于是,我们进行了第三次的需求分析,我们讨论出要做以下几个系统(1)网站系统----老百姓使用,并且网站系统中有大界面的功能,以便老百姓能够更加清晰的看到网站上的内容。(2)柜台系统----银行柜员使用,当用户到银行办理业务的时候,银行的工作人员操作的一个系统。(3)客服系统----银行客服人员使用,专门查看回复客户的一些意见。(4)管理员系统----银行经理等高层进行使用,用来注册修改删除客服人员以及柜台人员的信息。讨论出这些系统后,我们又进一步的对各个系统的功能进行了讨论。并且重新进行分工开始新一阶段代码的编写。

  通过学习和实践,团队各个成员对于需求的重要性以及获取需求的困难有了更深的理解。在做某个项目的时候,如果一个团队一开始确定的需求是错误的,整个团队就会根据这个错误的需求完成编码,当团队发现需求不正确时,这个时候再进行重新确定需求,在对代码更改的过程中,会发现,一旦技术方案和软件结构设计得不好的话,会给修改带来更多困难。因此,设计软件结构也是重中之重。编写代码的时候,一定要降低耦合性,一块代码完成一个特定的功能,这样修改起来也会非常的方面。

  通过学习与实践,我们了解到单单学习好软件工程的理论知识是完全不够的,一定要进行实践,在实践的过程中,会出现许许多多的问题,这也就有利于我们对于理论知识的理解。因此,软件工程的教学需要实践,并且在进行实践的过程中,同学们遇到问题一定要进行反馈,不要出现“闭门造车”的情况;老师在同学们进行实践的过程中,也可以鼓励同学们进行反馈,进而发现同学们存在的问题并给予一定的帮助。

 

团队各个成员的理解与感受:

 

常颖:

  软件工程课程已经结课了,回想起这10周的课程,我的收获还是挺多的。在团队项目中,我的收获是最大的。团队项目中,我担任2组的组长,团队成员各有所长,且编码能力不一,这就很考验我的能力,我需要调动团队中的所有成员,让他们均参与到团队项目实践中,并且充分发挥他们各自的优势,也要让他们学到更多的知识,提高自己的编码能力。经过一系列的摸索,我终于探索到了适合我们团队的方式,团队各个成员也都非常配合我的工作,我们真正的成为了一个团队。我也在管理团队的过程中理解到项目领导人的不易与重要性。

  对于知识点,我对于需求的重要性以及获取需求的困难有了更深的理解,就像我在整体总结中说的那样。除此之外,我对于活动图的绘制印象也比较的深刻,活动图起源于流程图,但同时借鉴了工作流、Petri网等领域的若干概念,使其表达能力比流程图更强,应用范围也更宽,活动图的绘制有很多的细节需要注意,尤其是判断结点。

 

葛茹雪:

  在还没有开始本学期的学习之前,我以为这会是一门理论性很重的课程。软件工程导论,听起来就像是学科概论一样,系统而又严谨的学术知识。不过经过了第一节课老师关于教学形式的讲解,我意识到,这门课程也许不仅仅需要学会理论知识,还需要自己在实践中夯实对理论的认知。

  再后来经过一次次的项目实践,从单人项目到双人项目再到团队项目,我被逐渐灌输到一个庞大的知识体系,对软件工程与软件开发又有了进一步的认识。从项目分析到流程图活动图的绘制,从编写代码到单元测试,磕磕绊绊地摸索着学习,学到了新的知识并从学习中得到了不一样的的体会。在前两个项目中,最让人焦头烂额的就是单元测试了,一次又一次地试验着代码的覆盖率,却总是不尽如人意。而到了团队项目中,让我记忆最深的就是三次对需求的更正,在一次一次自审又反复更正的过程中,我才明白原来做成一个项目并没有那么简单。它需要对用户区间有明显的界定,然后根据不同的用户需求继续展开,最重要的一点,是要符合业务逻辑,而不是异想天开。

  说到这里,我觉得这门课程我记忆最深的就是活动图等一系列图的绘制。画图就是对代码的二次审查,而在画图的过程中,我也能够更方便地审视代码的逻辑性,看到自己的不足并加以改正。画图也是一个温故知新的过程。这门课虽然结束了,但我的学习生涯还在继续,我会时时刻刻带着在本门课中学到的知识,做一个足够优秀的软件工程生。

 

黄丽舟:

  “确定需求”是这一次的团队项目让我感触最深的一点,没有之一。最初,我们的团队选择“村镇银行”这一项目时,大家的内心其实都是有一些成型的想法的而且这些想法也比较一致,基本上就是做一个银行官方网站或者手机app,可以用来办理存款、取款、贷款等各种基础的业务。经过商讨,我们决定通过焦点小组和调查问卷的方式进行需求调研,而后我们很快便确定了团队要做的产品类型与内容。在一切都进行的井井有条时,一场项目演示打破了我们最原始的思维。几乎所有团队的项目内容都是差不多的:做一个银行网页,可以存款取款贷款……然而这些项目老师并不是很赞同,而且每一个产品老师给出的意见也都相差不多。用一句话来总结就是:我们所做的项目根本就不是一个实际的项目!存取款就是改一改数据库,贷款也不用办理各种手续,更别提其他业务了。现在想来就像是在过家家。我们开始重新思考需求这两个字的含义,一个正真实用的产品是要满足用户的使用需求的,而我们做出来的东西却不能。于是,我们开始重新规划,重新分析各种需求。我开始仔细思考我们选择的项目“村镇银行储蓄业务系统开发”。如果这是客户给我们的需求,我们应该怎么做?从村镇二字我获取到的信息有用户人群,开发规模,和某些功能需求的特殊性;从储蓄二字我获取到的信息是我们不应该仅仅只开发一个普通网页,因为网页是不可能实现储蓄二字的。开发者不但要满足用户的需求,更要满足客户的需求。所以我们把从前的计划全部推翻,重新规划我们的项目。真正的项目是什么样的?首先一定要满足用户和客户的需求,保证项目是合法的,合理的,可以正常使用的,安全的,然后再谈功能的多样性,自身的亮点,有什么竞争力。于是,我们重新站在客户和用户的角度,重新来确定我们要做的内容。最后的结果是,我们开发了一个以银行工作人员使用的系统为主以百姓使用的网页为辅的项目。在客户角度上,我们提供了良好的操作平台,在用户角度上,我们也做出了一个功能相对完善的服务式网页,二者相辅相成组成了一整个村镇银行储蓄业务系统。虽然成品不够完美,但是起码是一个实际的系统了。

  在确定需求的道路上,我们真的是一波三折。从不甚了解到读懂什么是真正的需求,我们花费了很多时间与经历。我们不敢随意确定功能,在做决定之前我们学会了反复分析调研数据,斟酌用户的留言内容,思考某一功能应不应该开发,开发的话要用什么形式,注意什么问题。我们开始在意我们做的内容是否合理合法,开始不断查询资料,搜索百度。我们时刻注意着项目进行的每一步是否适合用户人群,我们的项目是否可以满足客户。此外还要考虑安全性能和成本问题。我觉得软件工程导论这门课和其他课程的差别在于实践和实际这两个词上。没有这次的团队项目作业,我可能不会理解做项目这三个字的含义。在我的认知里,做项目就是打代码做产品,而实际上,这只是其中的一部分而已。在做项目这条道路上,我们还是任重而道远的。

 

杨凤:

  软件工程这门课程,我印象最深的是活动图的部分和团队项目。

  一开始,我总觉得活动图和程序流程图很像,总分不清。但是后来又做实验,又做项目,慢慢接触多了就好了。我觉得活动图最重要的是掌握算法的核心思想和具体步骤,注重细节。

  我更想说的就是团队项目。整个项目做下来,我觉得很有意义。我必须要说的是,这个项目做下来很艰难,也很值得。我们的团队属于那种能力不是很强的队伍。在队长的耐心指导和有效筹划下,我们终于完成了我们的团队项目。我们一共做了一个网页、三个系统。其实,我们的东西看起来很简单,但是每一个功能、每一个窗口、每一步验证,都是我们团队经过一步步探索才琢磨明白的,对于我们来说,都特别不容易。我们的能力稍微弱些,所以,我们一开始分好工,可是,我们依然没有什么进展,因为没有头绪。后来我们队长做了一个模板,还给我们大概讲解的代码,我们再根据模板,开始开发我们的其他功能。我们再一步步摸索,开发出一步步的功能。我觉得队长带我们肯定很累,好在后期我们也慢慢熟悉了业务。而且我们的团队大家都在努力,大家都在进步,而且大家都没有偷懒、推脱,都很积极,我觉得这应该是队长唯一的安慰。

 

杨龙飞:

  一个学期对软件工程导论的学习结束了,我对软件工程的认识发生了天翻地覆的变化,反观从前,自己只是以一个外行人的身份来看待软件,软件工程,可以说是完全错误的理解。从以前的什么电脑维修,简单的软件开发等等,到现在知道了他包括的很多东西,分析,设计,编码,测试,维护,这些都是一个学习软件的人应该理解和掌握的必要知识。

  通过老师的深层的剖析讲解,我也更专业的了解到软件工程,他是利用工程、科学、数学的原则与方法研制、维护计算机软件的有关技术及管理方法。即研究如何在给定的资金、时间内更好更快的完成给定的工程。他是一种寻找最优解的工程。简单的来说软件工程的实现可分为九个部分这九部分:1 可行性研究  2需求分析  3概要设计   4详细设计   5编码调试   6单元测试   7组装测试    8确认测试  9运行。他们相辅相成,缺一不可。要想完成一个优秀的软件开发,必须严格的按照这九部分进行。可行性让我们在调查的基础上,通过市场分析、技术分析、财务分析,等对各种投资项目的技术可行性与经济合理性进行综合评价,以确定能否胜任该项工作。需求分析,则是了解、判断用户需要什么、想最终达到什么目的、怎么实现及为客户提供产品、服务、项目等提供目标和对检验标准打成公式。而确认测试中的矛盾,都将根据需求分析中达成的共识予以解决,后面的概要设计、详细设计则是在不同程度上对所接任务的设计与架构,找到解决问题的最佳方案,他们分别与组装测试,单元测试相对应。最后的编码调试则是对工程的具体实现,软件的编写与调试都将在这一过程中完成。

  不仅如此,我还收获了很多实用的东西,比如类图,UML活动图,层次图,用例图等等,这些都是我之前从来没说过的,学习了这些知识,也使编码更加有条理有层次。这些知识不仅仅让我应用于软件工程,也可以被应用于其他的很多领域。虽然这门课程结束了,但这些方面学习我还会继续下去。

 

杨哲:

  软件工程这门课程,我印象最深的是活动图的部分和团队项目。

  活动图是我觉得最难做的一项,它和别的部分不一样,我画的图总是不够美观,虽然功能实现了,但是美观还有待提高,多亏了我们组的组长和其他的组员给我的建议,让我知道了该怎么画能把图明确美观的画好。

  但是我觉得最有价值的就是我们一起做团队项目,每人都有自己负责的类,代码,让我们都丰富了自己的编程知识,还有团队之间的默契也是我们这些学生该学习的,从最开始的小菜鸟,理解代码都成问题,到最后能逐渐学会的自己找错,自己做测试,和组员们培养了一种默契,互帮互助,不仅仅的让我认为这是一门科目,一个项目,更像是对我们的考验。组长和组员们都特别的认真,很用心的对待这个项目,毕竟这是同学们第一次做项目,但是我相信只要我们用心努力,我们会变得更好。希望大家都能好好珍惜这次项目的机会,找出自己的不足,多与同学们帮助协作,努力提升自己,让自己变成一个合格的大佬吧。

 

杨超越:

  在这学期的软件工程课程学习中,我们完成了三个项目实践,通过这些天的学习和实践,我对软件工程的相关概念、理论、方法、技术与工具等有了更深的认知与体会。首先,通过这门课程的学习,我更加了解了程序、软件和软件工程,也学习了许多新的内容。比如,代码规范与复审、用idea创建单元测试、UML活动图、团队与流程等。在这些知识点的学习中,让我感触最深的是对团队与流程的认知。

  在这次团队项目的实践中,我对老师上课时所讲有关团队与流程的知识点有了更加深刻的认识。从选择项目的题目到项目逐渐完成的过程中,我知道了什么是团队,团队模式和开发流程的重要性,以及作为团队的一员应该如何与其他的队员进行合作,才能使团队更加迅速且更好的完成任务。在我看来,团队其实就是一个整体,团队中的每一个人都是这个整体不可分割的一部分。团队模式的选择让我们更加有效率的交流与合作。而开发流程的确定让我们在完成项目的过程中目标更加明确。作为团队的一员,我们每个人在完成项目的时候都有各自的分工,但是我们相互之间依然互相帮助。并且在已完成的部分出现问题的时候我们会一起去解决。虽然团队中每个人的能力有高有低,但是我们在项目刚开始进行的时候就已经解决。总的来说,通过这门课程的学习,我收获到了许多东西。非常感谢这门课程带给我的收获。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!