这个作业属于哪个课程 | 软件工程2024(福州大学-计算机与大数据学院) |
---|---|
这个作业要求在哪里 | 2024秋软件工程个人作业(第一次) |
这个作业的目标 | 了解github和博客园的基本操作,学会Markdown的基本使用方法以及ai画图,更加全面地认识自我和这门课程并进行合理规划 |
学号 | 102201342 |
1.个人logo文生图任务
1.1设计理念
小鸟代表着自由与梦想,弯月象征着夜晚的沉静和破晓的未来,而我名字最后一个字的首字母是Q,小鸟和弯月正好构成了Q这个字母的外形。再有“月出惊山鸟,时鸣春涧中”,意境空灵出尘。
1.2设计步骤
使用了craiyon,一开始我输入了自己想制作的三个要素,小鸟月亮与字母Q,结果出来的图片都不符合我的设想
为了统一风格,我希望自己的logo是简洁的黑白标志,于是我加入新的要求,这次生成的图相较于上次有了很大的进步
最后我加入logo这个要求,使生成的图更符合我想要的类型
1.3体验与感想
使用craiyon制作logo的过程非常有意思,它可以根据你的描述生成各种图片。但是生成的结果还是有很大的不可控性,有时候并不能很好地理解你的想法,需要进一步精确关键词来进行调整,希望以后的ai绘图工具可以更加强大和智能。
2.Github个人主页搭建
3.自我评估
3.1目前具备的专业知识和能力
目前我已初步具备三种能力,基础使用C和C++写代码的能力,使用figma画原型图和制作简单UI页面的能力,以及使用Pr制作视频的能力。
3.2感兴趣的技术方向
目前我对UI设计以及产品方向感兴趣,并且为一个项目制作了一套UI界面,我会不断深入探索。同时我对前端也有些兴趣,接下来会尝试学习。
3.3缺少的能力
我的代码能力较弱,课下的练习也浅尝辄止,实战经验也很缺失。我对项目的了解也很基础,希望在软件工程这门课上了解并学习到更多。
3.4代码量
之前的代码量应该不过千,希望在这门课后过千。
3.5期待
期待自己在这门课中更加深入了解软件开发过程,锻炼自己的实践能力,确定自己以后的职业规划和发展方向,学会团队合作和沟通需求。
3.6软件工程学习指南
使用chatgpt 4o mini生成
1. 基础知识
-
软件工程概述
- 了解软件工程的定义、目标和生命周期。
- 学习软件开发模型(如瀑布模型、迭代模型、敏捷开发)。
-
需求工程
- 学习如何收集和分析需求。
- 熟悉需求规格说明书(SRS)的编写和维护。
-
设计原理
- 学习软件设计的基本原则(如SOLID原则)。
- 掌握设计模式(如单例模式、工厂模式、观察者模式等)。
-
编码标准
- 了解编码规范和最佳实践。
- 学习代码的可读性和可维护性原则。
2. 开发工具与环境
-
版本控制系统
- 学习Git的基本操作(如克隆、提交、合并、冲突解决)。
- 理解分支策略和代码评审的流程。
-
集成开发环境(IDE)
- 掌握常用IDE(如IntelliJ IDEA、Eclipse)的使用。
- 了解调试工具和插件的使用。
-
构建工具
- 学习构建工具(如Maven、Gradle)的基本使用。
- 理解依赖管理和构建自动化的概念。
3. 软件测试
-
单元测试
- 学习编写和执行单元测试(如JUnit、TestNG)。
- 理解测试用例的设计和覆盖率分析。
-
集成测试和系统测试
- 了解集成测试的目的和方法。
- 学习如何进行系统测试和验收测试。
-
测试自动化
- 了解自动化测试框架(如Selenium、Cucumber)。
- 学习编写自动化测试脚本和测试报告。
4. 软件开发过程
-
项目管理
- 学习项目管理的方法(如敏捷、Scrum)。
- 了解任务分解、进度管理和风险控制。
-
持续集成与持续交付(CI/CD)
- 掌握CI/CD工具(如Jenkins、GitLab CI)的使用。
- 理解自动化部署和持续交付的流程。
-
文档编写
- 学习编写技术文档(如设计文档、用户手册)。
- 了解文档的维护和版本控制。
5. 高级主题
-
架构设计
- 学习软件架构模式(如微服务架构、服务导向架构)。
- 理解系统的可扩展性和高可用性设计。
-
性能优化
- 掌握性能分析工具(如JProfiler、VisualVM)。
- 学习性能优化的策略和技术。
-
安全性
- 了解常见的安全漏洞(如SQL注入、跨站脚本)。
- 学习安全编码实践和漏洞扫描工具。
6. 实践与项目
-
个人项目
- 尝试构建小型项目,应用所学的知识。
- 实践开发、测试和部署的全过程。
-
开源贡献
- 参与开源项目,学习团队协作和代码评审。
- 提交拉取请求(PR)并参与讨论。
-
实习与工作经验
- 争取相关领域的实习机会,积累实际经验。
- 了解行业标准和最佳实践。
学习资源
-
书籍
- 《人月神话》(Frederick P. Brooks Jr.)
- 《设计模式:可复用面向对象软件的基础》(Erich Gamma等)
- 《测试驱动开发》(Kent Beck)
-
在线课程
- Coursera、edX上的软件工程课程
- Udemy上的编程和项目管理课程
-
社区与论坛
- Stack Overflow
- GitHub社区
分析
这份学习指南很合理,覆盖了软件工程的核心领域,从基础概念到高级技术,结构清晰。它提供了详细的学习方法和路径,帮助我全面了解软件开发的关键知识和技能。