软件工程一点理解

  • 结构化的理解

1.知识(Knowledge):就是记忆、认识,能回忆重要名词、事实、方法、规准、原理原则等;

@SpringBootApplication:

这个是一个Spring的注解,它包含了一个@ComponentScan注解,问题就在这里,我们正常使用SpringBoot时候,它可以自动帮我们扫描同目录的的组件,就是依靠@SpringBootApplication注解里面的@ComponentScan注解完成的。                       

2.理解(Comprehension):是要能对重要名词、概念之意义有所掌握,能转译、解释;

Spring框架中一种设计理念:"约定大于配置"(Convention Over Configuration)

我认为这个设计理念可以看作是一种代码界的法律或者行为规范,通过制定一套共同的规则和约定,来简化开发过程,减少开发者需要做的显式配置和决策。举个例子,在Spring中,如果一个类被标记为@Component或其衍生注解(如@Service、@Repository等),Spring会默认按照类名首字母小写的方式作为Bean的名称进行注册。这种约定避免了开发者需要显式地在配置文件中声明每一个Bean。

3.应用(Application):是要能将所学到的知识概念、方法、步骤、原则通则等等应用到不同的情境中;

把原则应用到各种情境场景中,能开发各种类型的应用程序,和不同类型的人合作

要求:写出你怎么在不同场景中应用技能的

开发前我会仔细阅读并理解特定场景的需求和目标。这可能涉及与他人交流、阅读文档或进行研究,以确保我对问题的背景和要求有充分的了解。根据场景的要求,我会考虑并应用适当的概念、方法和知识。这可能包括编程语言、框架、算法、设计模式等等。通过将这些知识应用于特定的问题,我可以更好地满足场景需求。在面临一些困难时,我可能会分析我对于这个困难所欠缺的内容。这可能涉及到调试代码、运用不同的算法策略、思考最佳实践等等。通过系统地分析问题来找到一个合理且及时的方案。

4.分析(Analysis):是要将知识的某些讯息,所包含的成分、元素、关系、组织原理等等分解出来,重新加以组合,并厘清之间的关系;

能将用户需求分解为不同优先级,厘清功能之间的依赖关系

要求:对一个局部领域,写出你的分析

分析一个充电桩管理应用

用户需求分解:

基本功能:用户方便的使用充电桩、查找充电桩、查看订单历史,微信登录,个人信息等。

附加功能:例如搜索功能、定位距离功能、用户评价和反馈、路线规划功能(由于时间问题这个模块本来想在我们团队项目中实现)等。

用户体验要求:页面加载速度、用户界面友好性、跨平台兼容性等。

功能依赖关系:

用户使用充电桩依赖于微信登录功能,只有登录微信用户才可使用。

订单查询功能依赖于充电之后产生的订单管理。

订单管理依赖于已经成功的支付流程。

系统架构分析:

前端:负责用户界面展示、与用户交互,例如使用Vue,Bootstrap等技术。

后端:处理业务逻辑、数据库交互和安全性,例如使用Java和Spring Cloud框架。

数据库:存储充电站信息、用户账户、订单记录等,例如使用MySQL、Reids等。

服务器和网络:处理用户请求、数据传输和安全性,例如使用云服务提供商如阿里云等。

优先级处理:

核心功能(如使用充电站、支付订单)具有最高优先级。

性能优化(如页面加载速度、响应时间)作为次要优先级。

安全性和数据保护(如用户信息安全、支付安全)也是高优先级考虑因素。

5.综合(Synthesis):是能将知识讯息的某些要素重新安排或合并为有组织的整体,或呈现其间的关系; 例如,用WBS 等方法把项目的目标细化,分配到人,能用燃尽图展现项目进度

在这次团队任务中我作为队长需要对任务和子任务进行划分和分配,我需要将团队成员的不同专长和经验整合在一起,形成高效的工作团队,通过不断提升这方面的能力,来更好地应对复杂的挑战,实现个人和团队的成功。

6.评价(Evaluation):是要依照某规律和准则对讯息做评价或比较。例如,能够评价别的项目的软件工程的质量,能分析一些关于软件工程的说法是否有道理,能分析市面上流行软件的优劣并探究深层原因,能对自己项目进行回顾分析,并提出改进。

要求:选一个你感受较深的领域,说一下你的感受

就说在如何评级一个项目的好坏,我们可以通过参与代码审查和各种测试(单元测试、集成测试、验收测试等)来对项目质量进行测试。代码审查可以帮助发现潜在的错误和漏洞。全面的测试确保软件各个模块和整体系统在不同场景下都能稳定运行。以此来评估这个项目的好坏

  • 属于我们的人月神话

写下属于自己的人月神话——结对或团队项目实践中的经验总结+实例/例证结合的分析

        在这次团队项目开发中我一开始进行基本的环境部署,这次环境部署我部署到云端,比如mysql,reids,nacos都部署在云端来方便团队配合,让拉取项目后节省团队配置环境的时间消耗,后续协助成员开发微信小程序,负责这里地方的同学的不熟悉微信开发,而我之前拥有微信小程序项目的开发经验,获得过软件著作权,我作为辅助帮助队员快速入门微信小程序,加快团队开发速度。在beta阶段我们完善项目,给项目提供一个定位功能,在使用百度api时需要Web前端与小程序配合完成,实现数据联动,通过协作才能更快速完成这项工作。

  • 对团队的分析

分析一下自己所处的团队和团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建之法》第17章 人、绩效和职业道德)

在这次团队合作中,我主要负责的是后端开发和协作其他成员开发的工作,我们团队在项目初期经过仔细调研了解充电桩的主要使用的功能有什么,目前存在什么缺点,我们能不能弥补等问题,在之后设计并开发出这个作品,其中使用的微服务架构开发,微信小程序开发,前台开发,测试等任务繁多,但是我们团队胜在齐心努力,在一个制定的规范下认真且及时的完成自己的任务。尽管部分成员过程有碰到困难,但是这在团队中都可以依靠团队成员的帮助来更高效解决。

  • 证明学会了软件工程

回顾《构建之法》第一章概论P17中三个目标,检验自己是否做到这三点

  1. 研发出符合用户需求的软件

我们团队在项目初期以调查问卷的形式进行了用户需求分析,并且在beta阶段进行一次用户软件的使用进行问卷调查,根据分析结构提升质量。

  1. 通过一定的软件流程,在预计的时间内发布“足够好”的软件

我们团队在alpha和beta阶段严格按照流程去完成每日的冲刺和代码的编写,划分任务以及子任务来细化每个人的工作量。

  1. 能证明所开发的软件是可以维护和继续发展的

我在代码开发中严格按照团队代码规范,且后端代码耦合度低,通过nacos统一配置管理并开发,方便了后续进行配置维护。并且我们团队提供了充足的部署教程,以便于后续继续发展。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值