软件工程第一次作业

罗文达 m23385409

个人情况介绍

经历

本科上过面对对象的程序设计,大作业完成了一个简单飞机大战项目。我初步了解了团队合作的重要性。在大作业的过程中,我们小组成员之间密切协作,共同解决问题,最终成功完成了任务。这让我深刻体会到了团队合作的力量。

我意识到了自我学习的重要性。在完成大作业的过程中,我通过查阅大量资料,不断学习和掌握新的知识和技能,从而提升了自我解决问题的能力。

认识

计算机和软件开发是我喜欢的领域,即使在这个领域我的能力积累还远远不够。但我愿意不断地提升自己。

规划

未来的梦想是钻研出一个真正能提高生产力的算法,梦想能做不重复,不是简单机械重复的工作,能让我有不断解决问题的充实感。而不是每天都都只是一天的副本。我的规划是在研究生阶段掌握独自解决问题的能力。并补强相关基础知识。最后是能发表高质量论文,不断探索,不断提升自己。

技术道路:精通一门计算机语言,积累项目经历,形成自己能完成算法开发技术栈。并学好软件开发后端相关知识保证自己能够就业。

工作道路:找到一份自己能有获得感的工作。

社会道路:随遇而安,顺其自然。

目标

学习软件工程是想了解软件开发的真正流程,熟悉相关背景,能发掘软件开发的乐趣,理想是开发一个有意思的项目。希望能真正形成c++独立进行软件开发小项目能力雏形,打算平均每周拿出20个小时在这个课程上。愿意为了一个感兴趣的项目、或得到实战锻炼而付出更多时间和精力,不愿熬夜,愿意早起。

理论学习

学堂在线学习

完成学堂在线平台的《软件工程》(刘强教授主讲)慕课第一章和第二章学习,作为课堂讲授的补充,并完成配套练习。
学堂在线练习
学堂在线学习图片

《人月神话》读后感

《人月神话》是一本由著名计算机科学家弗雷德里克·布鲁克斯于1975年出版的经典著作,至今仍然具有重要的教育和启发意义。这本书深刻地探讨了软件工程的许多问题,包括项目管理、团队合作、时间估算和软件质量等方面。通过阅读这本书,我不仅对软件开发的复杂性有了更深刻的理解,还学到了一些重要的管理和技术原则,下面我将分享一些我的观后感和收获。

布鲁克斯在书中提出的“人月神话”概念深刻地反映了软件开发中的一个关键问题:添加更多的人员并不一定会加快项目的完成。这一点在现实中往往被忽视,但却是一个重要的原则。作者通过类比铸造大教堂的例子清晰地说明,项目中的每个新成员都需要时间来适应团队、学习代码和协调工作,这实际上可能会导致进展更加缓慢。这个观点对于我来说是一个重要的启示,让我明白了在项目中添加新的开发人员需要仔细考虑,并不是简单的事情。

布鲁克斯在书中提到了“二次系统效应”,这是指第一次构建一个系统时,由于对需求的不完全理解和技术的限制,往往会产生一个不完善的系统。然后,为了修复这个系统,会启动第二个系统,但第二个系统往往也会面临相似的问题,导致不断的迭代和修复。这种情况在软件开发中是非常常见的,我深有体会。通过学习这个概念,我意识到在项目开始时应该更加谨慎地规划和理解需求,以避免不断修复和重构的循环。

书中还强调了软件质量的重要性。布鲁克斯提到了“工匠之窗”的概念,即开发团队应该有足够的时间来关注和改进代码质量,以避免后期的问题和维护成本。这对于我来说是一个非常有价值的提醒,因为在实际项目中,时间压力往往会导致开发团队忽视代码质量,而最终会付出更大的代价来修复问题。

书中还介绍了许多关于项目管理和团队协作的原则,如配置管理、进度跟踪和沟通等。这些原则对于一个成功的软件开发项目至关重要,它们提供了宝贵的经验教训,可以帮助我更好地规划和管理项目。

我认为《人月神话》的价值在于它不仅仅是一本关于软件工程的书,它还提供了有关项目管理、团队协作和技术决策的深刻见解。这本书鼓励读者思考问题的本质,并提供了许多有用的指导原则,可以应用于各种领域,不仅仅是软件开发。它强调了团队合作、沟通和技术领导的重要性,这些都是在当今复杂的商业环境中非常关键的技能。

《人月神话》是一本令人启发的书,它提供了深刻的见解和宝贵的经验教训,不仅适用于软件工程师,还适用于任何希望更好地理解项目管理和团队协作的人。通过阅读这本书,我对软件开发和项目管理有了更深刻的理解,我相信这些知识将对我的职业发展产生积极的影响。我强烈推荐《人月神话》给任何对软件开发和项目管理感兴趣的人。

实践学习

编程环境

选择Visual Studio2022作为集成的开发环境,掌握相关主要功能的运用。
vs2022

代码仓库

软工代码仓库

Gitee建立代码仓库,在Visual Studio进行了远程连接
远程连接

小程序编写

小程序编写,实现下一天。码云仓库查看到提交。
nextday实现简单代码

struct aDay {
	int year;
	int month;
	int day;
};
int month1[6] = {1,3,5,7,8,10};
int month2[4] = {4,6,9,11};
//判断整型数组是否包含该数字的函数
int includes(int arr[], int n) {
	int size = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i < size; i++) {
		if (n == arr[i]) {
			return 1;
		}
	}
	return 0;
}
int main() {
	aDay day;
	cout << "请依次输入年月日" << endl;
	cin >> day.year >> day.month >> day.day;
	//大月判断
	if ( includes( month1,day.month ) && day.day == 31) {
		day.day = 1;
		day.month++;
	}
	//小月判断
	else if ( includes(month2, day.month) && (day.day == 30)) {
		day.day = 1;
		day.month++;
	}
	//闰年判断
	else if (day.month == 2 && (day.year % 4 == 0 && day.year % 100 != 0 || day.year % 400 == 0) && day.day == 29) {
			day.day = 1;
			day.month++;
	}
	//最后一个月单独判断
	else if (day.month == 12 && day.day == 31) {
		day.year++;
		day.month = 1;
		day.day = 1;
	}
	else {
		day.day++;
	}

	cout << day.year << "-" << day.month << "-" << day.day;
	return 0;
}

代码运行图
代码运行图

多次提交的软件用例
软件用例

熟悉码云仓库相关操作

熟悉代码仓库的pull、push、fork等关键操作。
fork同学

fork了同学的仓库,并进行pull操作
提交分支

工作总结

学习内容学习时段主要收获存在问题
学堂在线学习5h对软件开发实践更深刻理解python开发需要类推
《人月神话》阅读8h了解软件开发复杂性
实践学习8h熟悉项目开发流程没有相关学习背景

个人总结

在软件工程课程第一个月的学习中,我深刻地认识到了软件工程的重要性,并获得了丰富的知识和技能提升。

软件工程课程的目标是培养学生掌握软件开发的基本原理、方法和工具,提高学生的软件开发能力和项目管理能力。通过本课程的学习,我了解了软件工程的基本概念、原理和方法,掌握了软件开发过程中的需求分析、设计、编码、测试和维护等阶段的技能。

通过学习软件工程课程,我取得了显著的成果和收获。首先,我掌握了软件工程的基本原理和方法,了解了软件开发的全过程。其次,我学会了如何进行需求分析和设计,以及如何运用各种开发工具进行编码和测试。

在学习过程中,我也遇到了一些问题和不足。例如,有时候我会对一些概念和方法理解不够深入,需要花费更多的时间和精力去学习和掌握。此外,我还需要提高自己的代码编写能力和调试技巧。

在软件工程课程月的学习中,我不仅获得了丰富的知识和技能提升,还对自己的未来发展有了更清晰的规划和展望。我将继续努力学习和提高自己的软件工程能力,为将来从事软件开发工作打下坚实的基础。

软件工程课程的学习让我受益匪浅。通过本课程的学习,我不仅掌握了软件工程的基本原理和方法,还提高了自己的软件开发能力和项目管理能力。同时,我也认识到了自己的不足和需要改进的地方,将继续努力学习和提高自己的能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值