软工作业1:自我介绍+软工5问

这个作业属于哪个课程 首页 - 计科21级12班 - 广东工业大学 - 班级博客 - 博客园 (cnblogs.com)
这个作业要求在哪里 自我介绍+软工5问 - 作业 - 计科21级12班 - 班级博客 - 博客园 (cnblogs.com)
这个作业的目标 学会创建并使用博客;学会使用 Markdown 语言编写博客;向大家介绍自己;掌握 GitHub 的基本用法。

前言

Hello,我是 blockche,正如你所见,这是我的第一份软件工程作业,现在就让我开始介绍一下我自己吧!

自我介绍

  • 我是一名计算机科学与技术专业的大三在读生,就读于广东工业大学计算机学院,同时也是广东工业大学 ACM 集训队的一名队员。

  • 我的爱好有:音乐,摄影,编程以及算法

    • 音乐:我最喜欢的音乐风格是 R&B,歌手有陶喆、周杰伦、方大同等等。
    • 摄影:从初中开始在学校就经常在课余时间拿着相机到处乱拍。这是一周前在广州东站拍的:image-20230902012426402
    • 编程和算法:高考完后的暑假自学了 C++ 和一些基础算法,发现挺有意思的。
  • 算法的学习经历:从大一开学前一直到现在,我都没有停止学习算法,课余时间大部分都用来学习算法了,大一之后的寒暑假的大部分时间也都留在学校集训了,我感觉这样的寒暑假还挺充实的。

    • 这是我的 Codeforces 主页(一个算法竞赛网站):blockche

    image-20230902012931921

    image-20230902013100834

    • 2021年至今已经写了接近50篇算法博客,在我的博客园主页应该就能看到。

问题和收获

五个想弄懂的问题

软件开发过程中如何平衡用户的需求、开发难度以及程序性能

  1. 需求分析与优先级
    • 首先,深入了解用户需求。与用户和利益相关者密切合作,确保完全理解他们的需求和期望。
    • 根据需求的重要性和紧急性制定优先级。将需求分为“必需”、“重要但不紧急”和“Nice to have”等级,以确保最重要的需求首先得到满足。
  2. 敏捷开发方法
    • 采用敏捷开发方法,如 Scrum 或 Kanban,可以更容易地适应变化的需求,因为它们鼓励小而迅速的迭代。
    • 敏捷方法也有助于及早识别和解决开发中的问题,从而减少开发难度。
  3. 技术评估
    • 在开始开发之前,进行技术评估,了解实现各种功能的难度和潜在风险。
    • 根据评估结果,可以选择合适的技术堆栈和开发工具,以降低开发难度。
  4. 性能测试与优化
    • 在开发过程中持续进行性能测试,以及早发现和解决性能问题。
    • 使用性能监控工具来追踪应用程序的性能,并根据需要进行优化。优化可能包括代码重构、缓存、异步处理等。
  5. 用户反馈和测试
    • 让用户参与测试和反馈过程,以确保满足他们的需求和期望。
    • 使用用户反馈来调整功能和性能优化的优先级,以确保优化的方向符合用户的实际需求。
  6. 团队协作
    • 促进跨职能团队的合作,包括开发人员、设计师和产品经理。这有助于更好地理解用户需求,并在开发过程中综合考虑不同的因素。
  7. 迭代开发
    • 采用迭代开发方法,逐步构建和改进软件。这使得可以更容易地适应用户需求变化,并在每个迭代中平衡开发难度和性能优化。
  8. 灵活性与可扩展性
    • 考虑将软件设计得具有灵活性和可扩展性,以便将来能够容易地添加新功能或进行性能优化,而不必彻底重构。

软件的测试方法、流程以及平台分别有哪些。

  1. 软件测试方法包括手动测试和自动化测试,用于验证功能、性能、安全等方面。
  2. 测试流程通常包括需求分析、测试计划、测试设计、执行、缺陷管理和回归测试。
  3. 测试平台涵盖操作系统(如Windows、Linux)、硬件设备(PC、移动设备)、测试工具(Selenium、JUnit)、云平台(AWS、Azure)、虚拟化技术(Docker、Kubernetes)、移动设备和浏览器,以及安全工具(Nessus、Burp Suite)。

如果作为一个主要负责人,如何有效管理属下的开发人员,如何分工,如何合并代码

  1. 首先,了解每位开发人员的技能和兴趣,根据项目需求分配任务。
  2. 定期开展团队会议,确保信息流通和问题沟通。使用版本控制系统(如Git),确保开发人员按功能/模块开发,使用分支管理并合并代码,进行代码审查,确保代码质量。
  3. 鼓励团队合作,分享知识和经验,保持透明沟通,及时解决问题,建立积极的工作氛围。

如何把握一个项目是否开源或闭源

  1. 项目目标和愿景

    • 确定项目的主要目标和愿景。开源项目通常是为了分享知识、合作、提供公益或社区贡献。

    • 考虑项目是否具有对开源社区或用户有益的特性或用途。

  2. 商业模式

    • 如果项目与商业有关,需要仔细考虑开源对商业模式的影响。开源项目可以促进社区合作和知名度,但可能降低直接销售软件的潜力。
  3. 社区参与

    • 开源项目通常依赖于社区的贡献和支持。评估是否有足够的兴趣和潜在社区来参与项目。
  4. 竞争和市场

    • 考虑项目的竞争环境和市场需求。开源项目可能有助于在竞争激烈的市场中脱颖而出,但也需要战略规划。

如何快速设计简洁明了的项目流程图

  1. 明确流程目标:确定您要呈现的流程的核心目标和步骤。
  2. 收集信息:收集与流程相关的所有必要信息和数据。
  3. 绘制草图:使用纸和笔或流程图工具,绘制初步草图,标明流程的开始、中间步骤和结束。
  4. 简化流程:简化流程图,去掉不必要的细节,突出关键步骤。

想要的收获

希望能对软件开发项目的整个流程有更清晰的认知,提高软件开发效率。

GitHub

image-20230902022340657

附录

  • 后台博文编辑界面的截图

image-20230902021527053

posted @ 2023-09-02 02:17  blockche  阅读(217)  评论(0编辑  收藏  举报