软工项目总结博客

通过为期10周的软件工程导论学习,本组成员收获颇丰,无论是学习还是实践,都有了相对来说比较大的提升,首先,我们团队可以圆满的完成本次任务都不乏大家勤勤恳恳的努力和态度。

软件工程是借鉴传统工程的原则和方法,以提高质量、降低成本为目的指导计算机软件开发和维护的工程科学,其目标为

  1. 达到要求的软件功能
    2.取得较好的软件性能
    3.开发出高质量的软件
    4.付出较低的开发成本
    5.需要较低的维护费用
    6.能按时完成开发工作,及时交付使用

其原则为

1.用分阶段的生命周期计划进行严格的项目管理(软件开发的生命周期可划分为:可行性研究、需求分析、软件设计、软件实现、软件测试、产品验收和交付)

2.坚持进行阶段评审(错误越晚发现,付出代价越大)

3.实行严格的产品控制

4.采用现代程序设计技术

5.软件工程结果应能清楚的审查(功能和质量)

6.开发小组人员应该少而精

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

(应不断的总结经验,并且主动学习新的软件技术,不落后时代)

软件工程方法为软件开发提供了 “如何做” 的技术,软件工具为软件工程方法提供了自动的或半自动的软件支撑环境; 过程是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。

在学习和实践过程中,我们团队完成了村镇银行储蓄系统开发的任务,虽然只是个网页版,但我们依旧从一点一滴开始,从一个网页的呈现开始,在平板上画出网页的雏形,再到每台电脑都装上一个Axure RP10,挨个框放上去,完成每一小步的创建,再因为视图的大小去更改原来的版式,甚至去百度每一个位置的图片;而后,利用所学的html做出初版的页面呈现图,其中不乏苦思冥想的过程和为每个Bug的修改,一次又一次的查找和筛选;最后利用接触过的SSH登录系统为团队的村镇银行储蓄系统添加精髓,让几个页面联系起来成为一个真正的系统,再对细节地方进行修改,最终完成。团队成员在此基础上学习到了如何构建html图和其框架搭建,同时也进一步了解了SSH登录系统的优化功能,其次夯实了数据库和代码连接的操作,更知道了如果一个团队能有好的结果,在团队齐心协力的情况下也要对问题进行透彻的分析,先初步定下雏形大纲,不要急于代码实现,容易与当今软件工程危机范相同错误,同时每个人对自己实例应有准确定位,做自己力所能及之事,分工明确,配合得当,积极学习

在团队项目实践中,htmldemo绘制中遇到了页面依旧无法容纳的问题,在Axure中寻找设定值,设为预定数字即可容纳;在代码方面,遇到了栅栏问题,为运用蓝山分布,页面分为十二个快,起初不理解如何用代码将其分块,后来百度自学了解到其是以相加和等于十二的形式进行分块操作。

通过学习与实践,知道了做出一个看似简单的页面也需要代码人员和设计师的默契配合和极高的知识储备量,同时我们也了解到了银行方面的知识,对建设银行、工商银行和农业银行等的线上APP有了更深的认识,同时村镇银行储蓄开发系统的完成也让我们对自己的能力有了进一步的肯定,学到的不仅仅是代码方面的知识和能力的提升,更多的是一个团队的配合和运行。

本次项目实现的工作顺序:开会讨论村镇系统功能模块——>绘制demo,呈现页面需求——>设计数据表和关联关系——>搭建ruoyi系统,学习基本的使用——>开始项目的实体操作,团队合作开发项目。

成员理解与感受(按首字母排序顺序):

陈阳平:通过软件工程这门课程所以学习,我感觉更多的不是学习的内容,而是学习过程锻就的学习能力,我喜欢这个过程,在学习实践中摸索并且验证所学到的理论,成为一种技能,当是一种好的思维,那就成为一种习惯,这是学习这门课程产生的想法,也是本门课程的存在的必要原因,当一个问题是极小规模的时候,我们不需要软件工程的方法,相反,如果我们本着做事做全套的原则,折一个纸飞机也要设计规划,那只能是事倍功半了。作者坦言:“虽然优化很重要,但是我们不经过分析就盲目优化,也许只会事倍功半”。
这门课程启发了我对于一个软件工程师的成长是如何成长的,软件工程师也会有创新,也会有小惊喜,小意外,但更多的还是常规的,可重复的任务,而要成为一个成熟的软件工程师应该降低任务交付时间的标准方差,如果你能长时间稳定而且按时交付工作的结果,内部和外部的顾客就会更喜欢与你合作。

黄金宇:瀑布模型为软件开发人员提供了众多优势,首先,这个阶段性的软件开发模型规定了以下规则:每个阶段都有指定的起点和终点,过程最终可以被客户和开发者识别(通过使用里程碑),在编写第一行代码之前充分强调了需求和设计,这避免了时间的浪费以及跳票的风险,同时还可以尽可能地保证实现客户的预期需求。提取需求和设计提高了产品质量,因为在设计阶段捕获并修正可能存在的漏洞要比测试阶段容易很多,毕竟在组件集成之后来追踪特定的错误要复杂很多。最后,因为前两个阶段生成了规范的说明书,当团队成员分散在不同地点的时候,瀑布模型可以帮助实现有效的知识传递。
除了看上去很明显的这些优势,瀑布模型近来也受到了很多批评,最突出的一点是围绕需求分析的,通常客户一开始并不知道他们需要的是什么,而是在整个项目进程中通过双向交互不断明确的;而瀑布模型是强调捕获需求和设计的,但在这种情况下,现实世界的反复无偿就显得瀑布模型有些不切实际了。除此以外,即使给定了客户需求,根据这些需求在一定的精确性范围内(瀑布模型所建议的)估算时间和成本是非常困难的。因此,建议在客户需求可以在最初阶段明确的情况下并且相对稳定的项目中使用瀑布模型。

霍歆彤:通过软件工程导论的学习,我首先知道了自己的专业软件工程是一个可以在5g时代下依旧领先的科目,同时从“没有银弹”开始,知道了软件工程的危机使我警戒,令我最深刻的内容其实是一开始学的单元测试和测试用例,当时虽然刚刚接触,但依旧记到现在,以前每次打完代码运行与否都是一味的编译、运行,直到学了单元测试知道还可以自己手写代码去检验自己的代码是否正确,而测试用例有的可以覆盖所有路径,有的却只能完成其中几条的覆盖,这对测试人员来说依旧是一个难题,同时在市场中大多企业遵循的都是“二八定律”,不会全部覆盖,既浪费成本也浪费时间,但我觉得在我们的示例过程中还是要尽量做到百分百的覆盖率和正确率。

同时介于本次团队项目我也认识到了团队的分工和合作尤为重要,不光是一个人的实力,而是整个团队的配合,每个人都为团队着想才能让团队真正出色,同时在搜索新知识和检验问题中我同样学到了很多,“温故而知新”才能收获颇丰。

齐贺:通过这次大作业,我学会了更加高效的和团队中的人去交流。这次作业我们互相帮助,尽自己所能去查阅资料,去打代码,分析问题。还利用了学的一些关于web框架的知识去完成一些页面。也更加感知到了团队完成一项作业需要攻克的问题,计划时间和完成时间都不同。

田慕:通过对这门课程的学习,我对于开发规范与设计原则这一部分的知识印象深刻。在学习这门课程之前,我对软件代码规范的认知还处在特别浅显的层面,曾觉得代码规范就是只需要保持那些简单的习惯和要求即可。通过这门课程的学习,我才清楚的了解了,软件代码规范的重要性:当我们在团队中要完成实现一个项目的时候,规范性显得尤其重要,当他人要修改或阅读我们的代码时,如果没有一个良好且统一的规范,那么将面临着很大的麻烦和困难。同时,代码的简洁和高效也同样是及其重要的。编程并不是简单的会写,能写就足够了的,还需要我们高效的,有规范性的,来写出好代码。

尹莉媛:由于前段时间恰巧实验室开发了一个教资分享平台系统的开发工作,基于有经验,我便大胆的担当了团队的队长,从想法,到设计,到选择自己熟悉的框架并教给队员相关知识,带领队员开发自己的项目,这是一次巨大的挑战,也是一次巨大的压力。开发期间,虽然和实验室的老师同学熟悉过一遍项目开发流程,但是自己主导,需要考虑的细节变得更多。譬如,在创建数据表的时候,没注意到id应该是int类型的,导致无法实现数据库自增,后期修改的时候,改动很不少。除了考验细节,更考验了技术。譬如,开发的时候,如何加密用户的密码,我百度了加密算法,选取了一个比较简单的MD5;还有如何让存款取款功能更加优化,我选择了layer弹出层组件,并且扣紧了我们团队项目的业务设计。与此同时,也考验了自己统筹管理和合理调配的能力。表扬一下我队的队员们,在我的“疯狂call”下,还能几近完美的完成大家各自的功能模块。陈阳平同学话不多,但是总是出现在关键点,虽然不熟悉springboot框架,但是他很认真的去学习,负责的模块也做的很不错;黄金宇同学是我见到的很有责任感的人,每次分发项目时,他总是会说出:“我来做这个吧”,每次完成的游刃有余,尽心尽力,作为转专业的学生,虽然技术掌握的不是很多,但是学习能力很强,认真好学;霍歆彤同学文字工作很擅长,接替了我很多文字工作,让我如虎添翼,同时他负责的模块虽然业务逻辑很简单,但是她完成的很有特点和水准,工作能力很强;田慕同学是一个很细心的女生,求知欲旺盛,本次合作,让我看到了她缓慢而扎实的学习能力和实操能力,在我多次的要求其页面修改,逻辑优化的需求下,依然很完善的完成了自己的模块开发;齐贺同学以随性的态度接受任务但是以很认真的成果反馈给我,虽然期间遇到过很困难的问题,但她没放弃,百度、博客、github等等,以惊人的毅力解决了登录拦截等问题,学习能力张尺度大;杨哲同学态度积极,是个不可多得的队员,虽然他专攻的专业和项目开发不一样,他的基础不是那么牢固,但是还是很努力地去学习相关知识,在我无情的多次“返回”、“修改”下,他坚持住了!模块最后呈现的很优秀。感谢队员们的配合和努力,希望大家日后可能对软工开发有更深刻的体会。

杨哲:原来我认为开发一个项目最重要的就是写代码,似乎整个软件都是编代码,因为自己动手能力不强所以就很排斥做项目。可是经过我们学习软工课程到团队做项目再到学习软件工程实践课程之后我才真正意识到实施一个软件工程项目并不是说简单的会编码就能够解决问题的,因为一个软件的生命周期分为三个时期:软件定义时期、开发时期、维护时期,而这三个时期整体又分为七个阶段,他们分别是:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试,由此可看出,当我们开发一个项目时,更多的精力不是放在编码上,编码只是一个很小的模块,而是项目的整体结构上。
软件工程上的学学习让我知道了,团队的重要性,这学期就全面的说明了开发一个项目所需要的步骤以及开发项目过程中所需要注意的诸多细节。我们的课程是理论基础与实践相结合,互相之间配合,当然我这个小菜鸟基本都在躺,但还是非常的充实,也感觉很快乐。

posted @ 2021-06-22 23:35  皛媛  阅读(123)  评论(0)    收藏  举报