2024秋软件工程个人作业(第一次)
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243 |
这个作业的目标 | 初步认识AIGC、GitHub和博客园的使用 |
学号 | 102201306 |
1.个人logo文生图任务
1.1 使用工具:Craiyon
1.2 使用元素:蜡笔小新 电脑
1.3 设计理念:
- 蜡笔小新是我最喜欢的动漫人物,形象特别可爱,搭配上使用电脑的动作,更有一种萌感,符合我想创建的博客主题。
- 我个人更喜欢色彩鲜明的图片,整体看起来比较活力且舒服。
1.4 设计过程:
首先我给出了我想生成的图片的描述
接着在生成的图片中选出我想要的一张
1.5使用体验和感想
- AIGC极大地提高了创作的效率,只需要给出想要的图片的关键词,不到一分钟便可以收获许多图片。
- 但是AIGC还是存在局限性。例如,刚才我试着使用国内影视人物的名字进行生成,结果完全没有关联,说明模型还不够完整。
2.Github个人主页搭建
3.随笔
3.1自我评估
- 目前我掌握的:
A.初步掌握C/C++的一些相关知识,会用C++进行面向对象的编码,可以写一些简单的数据结构
B.掌握前端中的javascript、css技术 - 我感兴趣的:计算机前端技术、软件开发
- 我的不足:缺少项目经历
- 我的代码量:我认为我的代码量还是不足,希望在这学期之后能够拥有更多的代码量。
3.2我的期望
- 希望在课程中学会一些前端开发的知识和经验
- 希望在课程中了解一些项目开发中会产生的问题
- 希望能够有机会参与项目的开发
3.3软件工程学习指南(由ChatGPT生成)
软件工程学习指南
1. 基础概念
1.1 软件工程定义
- 软件工程:应用工程原理来设计、开发和维护软件系统的学科。
1.2 软件开发生命周期(SDLC)
- 需求分析:确定用户需求和系统功能。
- 系统设计:设计系统架构、模块和接口。
- 实现:编写代码,构建软件。
- 测试:验证软件是否符合需求,找出并修复缺陷。
- 部署:将软件系统部署到生产环境。
- 维护:进行软件更新和问题修复。
1.3 软件工程原则
- 模块化:将系统分解为小的、可管理的模块。
- 封装:隐藏模块的内部实现细节,只暴露必要的接口。
- 重用:利用已有的软件组件来减少开发工作量。
- 可维护性:设计软件时考虑到未来的维护和修改。
2. 核心内容
2.1 需求工程
- 需求收集:通过访谈、调查问卷等方法获取需求。
- 需求建模:使用UML图(用例图、类图等)描述需求。
- 需求规格说明书:详细记录需求,作为开发和测试的依据。
2.2 设计
- 架构设计:定义系统的整体结构和模块之间的关系。
- 详细设计:设计模块内部的逻辑和数据结构。
- 设计模式:常用的设计模式包括单例模式、工厂模式、观察者模式等。
2.3 编码
- 编程语言:选择适合的编程语言(如Java、Python、C++等)。
- 编码规范:遵循代码风格和命名规则,提高代码可读性和可维护性。
- 版本控制:使用工具(如Git)管理代码版本和变更。
2.4 测试
- 单元测试:测试单个模块或函数的正确性。
- 集成测试:测试多个模块的交互。
- 系统测试:测试整个系统的功能和性能。
- 验收测试:验证系统是否满足用户需求。
2.5 项目管理
- 项目计划:制定项目的时间表、资源计划和预算。
- 风险管理:识别和管理项目风险。
- 进度跟踪:监控项目进展,确保按时交付。
3. 常用工具
3.1 需求管理工具
- JIRA:跟踪需求、缺陷和任务。
- Trello:项目管理和任务跟踪。
3.2 设计工具
- Lucidchart:绘制UML图和流程图。
- Draw.io:在线绘图工具,适合设计各种图表。
3.3 编码工具
- IDE:集成开发环境,如IntelliJ IDEA、Visual Studio Code。
- 版本控制系统:Git(与GitHub或GitLab配合使用)。
3.4 测试工具
- JUnit:Java应用的单元测试框架。
- Selenium:自动化Web应用测试工具。
- Jenkins:持续集成工具,用于自动化构建和测试。
3.5 项目管理工具
- Microsoft Project:项目计划和管理工具。
- Asana:团队协作和任务管理工具。
4. 实践技巧
4.1 代码审查
- 定期进行代码审查,以确保代码质量和一致性。
4.2 持续集成和持续交付(CI/CD)
- 实施CI/CD管道,自动化构建、测试和部署过程,提高开发效率。
4.3 文档化
- 维护清晰的文档,包括需求文档、设计文档和用户手册,以便于团队协作和后续维护。
4.4 反馈循环
- 通过用户反馈和测试结果不断改进软件,进行迭代开发。
3 4.5 学习与改进
- 保持学习最新的技术和方法,参与技术社区和培训,提升自己的技能。