这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243
这个作业的目标 熟悉博客园和github操作,使用AIGC以及自我介绍
学号 102201125

设置Markdown编辑器

一.个人logo文生图

使用DALL-E3进行个人logo文生图

1.设计过程

我首先给出我的要求,选择了我想要在logo中展示的元素和使用场景,以及想要的整体感觉和色调。

第一次给出的效果图大致符合预期,接着希望可以稍微在简约一些,但第二次给出有些太简约了,在经过调整还是选择了第一次生成的图。如下

2.设计理念

  • 希望结合浪漫与科技感,创造一个既简洁又富有深度的个人 logo,适合用于技术博客和 GitHub 账号。选择了星空,火焰,鲜花以及科技元素,整体颜色选择上选择暗色调
  • 星空元素首先有浪漫元素,在没有光污染的高山上,看着一片无边无垠的星空,感受和大自然共鸣的美妙体验,然后星空也象征着无限的可能性和探索精神,比较适合技术领域的背景,暗示着技术创新的无尽潜力。
  • 火焰元素代表着激情和动力,因为自己名字中有个火字偏旁,所以加入,希望自己可以在技术上有无限激情。同时与其他元素相融合,不仅突显了能量感,还与黑暗背景形成了鲜明的对比,增强了视觉冲击力。
  • 鲜花元素代表着自然与美学的结合,带有浪漫与柔和的情感色彩。它为整体设计增添了一丝温暖与柔和,平衡了科技感的冷峻,同时也暗示着创造力的绽放和成长。
  • 技术元素为了与计算机行业相结合,设计中加入了细微的技术符号,例如简约的电路线条或几何形状。这些元素巧妙地融入了星空、火焰和鲜花中,保持了整体设计的和谐与统一,体现了技术与艺术的结合。
  • 暗色调增加了设计的沉稳感,不仅符合现代科技设计的风格,也让其他元素如星星、火焰和鲜花更加突出。
  • 结合这些元素,希望传达技术背景,也融入个人的审美和情感。

3.使用AIGC的感想

1)创作的效率与灵感的激发

AIGC能极大提升创作的效率,从图像生成到文本生成,AI的能力让我们可以快速实现原本需要大量时间和精力的工作。它不仅让我们能够迅速实现想法,还能通过AI生成的结果激发新的灵感。

2)操作简单,让创造的门槛变低

只需简单描述出你的想法,AI就能帮你完成初步设计,甚至实现一些富有创意的结果。

3)细节把控和需求理解能力依然不足

有些时候反复修改和训练,总是得不到满意的结果

4)是不是原创?版权?

AI生成的内容是基于已有数据训练的,因此它的“创作”是基于对大量已有作品的学习和模仿。AI生成的内容是否受版权保护?我们需要谨慎处理这些潜在的风险。

二.github个人主页搭建

个人主页:https://huos1.github.io/


三.随笔

目前具备的专业知识和能力

掌握c,c++、python编程语言,掌握一定的算法和数据结构知识。

有兴趣的技术方向

对于前端技术比较有兴趣,基础技术栈,前端框架等;
对于网站流量分析也有一定兴趣,可以了解用户行为,营销效果等,可以优化转化率,具有一定的指导作用。

缺少的能力

缺少熟练,规范使用编程语言的能力,学习了书面内容,没有做过大型的实践;对于编写程序过程中需要匹配的文件没有了解,需要进一步学习;对于各种系统的api接口了解少,需要进一步了解。

代码量

目前代码量大概在千行左右,课程结束后希望达到万行。

期待学到的知识和收获

希望可以增强自己的代码水平,熟悉软件架构和设计,以及对于软件中使用的数据库技术有一定了解;希望在小组作业中感受团队协作编写程序的过程和乐趣。


AI生成的学习指南

这里是一个软件工程课程的学习指南,涵盖核心概念、关键知识点和学习策略,帮助你系统化地学习和掌握这门课的内容。


1. 软件工程基础概念

1.1 软件工程简介

  • 定义:软件工程是系统化、规范化和可度量的开发与维护软件的学科。
  • 目标:提高软件的开发效率和质量,确保软件的可维护性和可靠性。

1.2 软件开发生命周期 (SDLC)

  • 阶段:需求分析、设计、编码、测试、部署与维护。
  • 目标:确保软件按计划开发并交付给用户,满足预期需求。

1.3 软件工程的原则

  • 抽象:隐藏复杂性,专注于高层次设计。
  • 模块化:将系统拆分成多个可独立开发和维护的模块。
  • 信息隐藏:模块之间不直接暴露实现细节,减少耦合。
  • 增量与迭代:逐步构建和改进软件。

2. 软件开发模型

2.1 瀑布模型

  • 线性开发:需求明确、顺序开发,每个阶段依次进行。
  • 优缺点:结构清晰但灵活性差,适用于稳定需求的项目。

2.2 增量模型

  • 增量交付:将产品分为多个部分逐步开发与交付。
  • 优缺点:能快速交付部分功能,但要求需求提前规划。

2.3 敏捷开发

  • 迭代开发:通过短周期的迭代,不断优化和完善软件。
  • 优缺点:适应变化能力强,但要求开发团队的协作能力高。

3. 需求分析与管理

3.1 需求获取

  • 技术手段:通过访谈、问卷、观察等方式收集用户需求。
  • 目标:明确系统要解决的问题及其约束条件。

3.2 需求文档

  • 功能需求:系统应该执行的具体任务。
  • 非功能需求:性能、安全、可扩展性等质量属性。

3.3 需求变更管理

  • 变更控制:设置需求变更流程,确保每次修改得到审查和批准。
  • 追踪需求:保持需求和设计的连贯性,防止项目偏离目标。

4. 软件设计

4.1 软件架构设计

  • 架构模式:常见的模式包括分层架构、微服务架构、客户端-服务器架构等。
  • 设计原则:高内聚、低耦合,通过清晰的模块分工减少依赖。

4.2 详细设计

  • 类设计:定义系统中的类及其交互方式,采用UML等工具进行建模。
  • 设计模式:学习常见的设计模式(如工厂模式、单例模式、观察者模式等),提高代码复用性和可维护性。

4.3 接口设计

  • API 设计:确保系统组件之间的通信接口清晰且灵活,避免模块间强耦合。

5. 软件实现

5.1 编码实践

  • 编码规范:保持代码一致性,如命名规则、注释风格和代码缩进。
  • 代码复用:重用已有的库和模块,避免重复开发。
  • 单一职责:遵循单一职责原则,使代码模块化、易维护。

5.2 版本控制

  • Git 版本控制系统:使用分支、提交记录和合并功能来管理代码。
  • 常见工作流:Git Flow 和 GitHub Flow 是两种常见的协作开发模式。

6. 软件测试

6.1 测试类型

  • 单元测试:验证单个模块的功能是否正确。
  • 集成测试:测试模块之间的接口是否正常工作。
  • 系统测试:全面测试整个系统的功能。
  • 验收测试:确保系统满足用户需求。

6.2 自动化测试

  • 使用测试框架(如JUnit、PyTest)来实现自动化测试,减少人工错误。

6.3 持续集成与测试

  • 持续集成:将代码自动集成到主干中并持续测试,减少集成问题。

7. 软件维护与优化

7.1 维护类型

  • 纠错性维护:修复软件中的缺陷和错误。
  • 适应性维护:修改软件以适应新的需求或环境。
  • 完善性维护:优化性能或增强功能。

7.2 性能优化

  • 代码优化:减少不必要的计算和内存占用。
  • 数据库优化:通过索引、查询优化来提升数据库性能。

8. 学习建议

8.1 多实践项目

  • 实际项目能够让你将理论知识付诸实践,加深理解。
  • 选择一些小型的开源项目,参与代码贡献和讨论。

8.2 阅读优秀的源码

  • 学习开源项目的架构、代码风格和设计模式,提高编码水平。

8.3 与团队协作

  • 通过团队项目学习如何进行协作开发,使用版本控制、任务管理工具提升团队协作效率。

8.4 反复学习

  • 软件工程理论结合实际需求不断演进,通过反复学习和实践,提升对软件工程的理解和掌握。

通过以上的学习指南,你可以逐步建立对软件工程系统性和全面性的认识,做好理论和实践的结合,从而为未来的软件开发工作打下坚实的基础。

分析

以上学习指南由chatgpt生成,说是学习指南,感觉更像是一个复习提纲,列举出了核心概念、关键知识点,最后给出了学习建议,合理性适中,看这份学习指南,可以得到一个大概的系统化的初步印象,结合学习策略,大概可以知道应该怎么去学软件工程。但是不太具体,并没有被指导的感觉,只是一个系统性的了解,个性化不强,可以多一些学习资源和具体步骤推荐。总体对我有些许帮助。

posted on 2024-09-05 20:50  huos1  阅读(46)  评论(0编辑  收藏  举报