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

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

这个作业属于哪个课程 计科21级12班 (广东工业大学 - 计算机学院)
这个作业要求在哪里 自我介绍+软工5问
这个作业的目标 开通博客, 使用markdown编辑文本

自我介绍

我叫黄翼山, 是广东工业大学计算机学院计算机科学与技术2021级本科生.

我的爱好有旅游, 足球, 打王者. 目前的烦恼是一些专业课 (特别是计算机组成原理) 跟不上进度, 要做的作业太多. 我希望同更多人认识, 交朋友. 如果想找我约球, 讨论, 或者搞各种活动, 可以扫下面的二维码联系我:
支付宝用户二维码
欢迎打扰!

最喜欢的动物是海豹, 今年在海洋主题公园看望了许多海洋动物, 在这里分享一些照片.

本人自拍 本人他拍 西太平洋斑海豹1 西太平洋斑海豹2

可爱的海豹犹如海中的精灵, 那曼妙身姿是这蓝色星球中的一抹丽影. 海洋也是我们和其他生命的摇篮, 保护海洋是人类的共同责任. 2023年8月25日, 日本当局不顾世界人民的反对, 正式将福岛核污染水排入大海, 预计持续30年. 这是绝对无法容忍的一意孤行! 将进一步给核事故受害者和世界人民带来痛苦, 日本应当要为此付出代价.


5个问题

1. 如何让软件能够方便地适应未来需求?

这需要开发者在设计软件时就考虑到扩展性的问题,具体地说,开发者能够做的事情有:

  • 可扩展设计:在设计和开发软件时,应该考虑软件的扩展性。这可以通过采用可扩展的设计方法和技术来实现,例如模块化设计、面向对象设计、微服务等。
  • 面向接口编程:面向接口编程可以帮助开发者设计出灵活和可扩展的软件。接口定义了组件之间的通信规范,使得组件之间的耦合度降低,从而提高了软件的扩展性。
  • 使用设计模式:设计模式是解决特定问题的模板,可以帮助开发者设计出可扩展的软件。例如,模板方法模式可以提高代码的可复用性和可扩展性,观察者模式可以实现系统的解耦和灵活的扩展等。
  • 使用抽象类和接口:抽象类和接口可以定义通用的接口和规范,使得开发者可以扩展软件的功能和行为。通过抽象类和接口,可以定义通用的接口,使得不同的模块之间可以相互协作,同时也可以方便地扩展软件的功能。
  • 可扩展性测试:在测试阶段,应该对软件的扩展性进行测试。这可以通过可扩展性测试技术来实现,例如性能测试、压力测试等,以确保软件能够在不同负载和条件下正常运行。

2. 如何由多人共同开发一个软件?

软件工程中多人开发的管理是至关重要的,这主要包括以下几个方面:

  • 明确职责和任务:为每个团队成员分配明确的职责和任务,确保所有人都了解自己的工作内容和目标。
  • 制定计划和进度表:制定详细的计划和进度表,以便团队成员了解项目的整体进度和自己的工作安排。
  • 建立沟通机制:建立有效的沟通机制,包括会议、讨论、邮件等,以确保团队成员之间的信息交流畅通。
  • 尊重团队成员意见:尊重团队成员的意见和建议,鼓励他们积极参与项目的决策和讨论。
  • 分阶段开发:将项目分为多个阶段,每个阶段都有明确的开发目标和任务,以避免项目的混乱和冲突。
  • 代码审查和测试:建立代码审查和测试机制,以确保代码的质量和稳定性,并及时发现和解决问题。
  • 版本控制:使用版本控制系统来管理代码,以便团队成员可以协同工作并跟踪代码的变更。
  • 风险管理:识别和评估项目中的潜在风险,并制定相应的应对策略,以降低风险对项目的影响。

3. 如何控制软件中的潜在错误?

无法完全避免错误的出现,但可以通过软件测试,保证软件质量。对测试中发现或者用户报告的问题,作如下处置:

  • 根据问题的性质和严重性,将问题进行分类,确定解决问题的先后顺序。
  • 将问题分配给相应的开发人员或测试人员,并为其提供必要的支持和指导。
  • 开发人员或测试人员负责解决问题,并及时更新问题的状态和进度。
  • 在问题解决后,重新测试相应的功能,确保问题已经得到解决并且没有其他潜在的问题。
  • 在问题得到解决并且重新测试通过后,关闭该问题,并记录问题的解决过程和结果。

4. 如何减少软件对用户计算机资源的需求?

软件工程可以为开发者提供以下指导,以控制软件的体积和复杂程度:

  • 需求分析:在需求分析阶段,明确软件的需求,并对其进行仔细的分析和设计。这有助于减少因为需求不明确或不完整而导致的软件体积和复杂度增加。
  • 模块化设计:采用模块化设计方法,将软件划分为多个独立的模块,每个模块具有明确的功能和接口。这有助于降低软件的复杂度,同时也便于维护和扩展。
  • 代码重用:通过编写可重用的代码,避免重复造轮子。这不仅可以减少软件的体积,还可以提高开发效率。
  • 代码优化:通过代码优化技术,如算法优化、数据结构优化等,降低软件的复杂度,提高软件的性能。
  • 测试和验证:通过测试和验证软件的不同方面,如功能、性能、安全等,以确保软件的体积和复杂度在可接受的范围内。
  • 软件重构:定期进行软件重构,以消除代码的冗余和复杂性。这有助于保持软件的清晰性和可维护性。
  • 面向对象设计:采用面向对象的设计方法,利用对象的封装、继承、多态等特性,降低软件的复杂度,提高代码的可重用性和可维护性。

5. 进行需求分析的时候需要重点关注什么?

在软件工程中,需求分析是至关重要的一步。以下是进行需求分析的关键步骤:

  • 确定利益相关者:利益相关者包括客户、用户、开发团队和其他相关的利益相关者。
  • 收集需求:通过访谈、问卷调查、竞品分析等方式收集需求。
  • 需求分析:对收集到的需求进行深入分析,区分出核心需求和附加需求。
  • 编写需求文档:将分析后的需求编写成需求文档,以便开发团队可以清楚地了解用户的需求。
  • 确认需求:将编写好的需求文档与利益相关者进行确认,确保需求的准确性和完整性。
  • 需求管理:在开发过程中,对需求进行跟踪和变更管理,确保开发团队可以及时响应需求变更。

期望的收获

  1. 设计良好的软件结构
  2. 了解如何做好需求分析, 确定客户对于软件的真实需求
  3. 做出更易用, 更鲁棒的应用软件

我的Gitee仓库

地址: https://gitee.com/diaocan/diaocan

截图: DIAOCAN / DIAOCAN


博客编辑截图


posted on 2023-09-05 12:03  黄翼山  阅读(36)  评论(0编辑  收藏  举报