关于#需求分析#的问题:代码复杂度太高

该问题来自社区帖: https://bbs.csdn.net/topics/614856042.为符合问答规范, 该问题经过ChatGPT优化

PSP各阶段

预估时间(分钟)

实际时间(分钟)

计划

20

20

开发

 

 

需求分析

0

0

生成设计文档

0

0

设计复审

60

100

代码规范

0

20

具体设计

30

40

具体编码

40

50

代码复审

20

40

测试

20

30

报告

 

 

测试报告

 

 

计算工作量

 

 

事后总结,并提出改进计划

30

50

总共花费的时间(分钟)

220

350

我在百忙之中抽出时间温习项目,但UI仍然太丑,需要改进;用户使用不够简洁,需要改进;代码复杂度太高,需要改进;任务描述不够明确,需要改进;测试用例不够全面,需要改进。

学习软件工程这门课程,就必须学会在极度压力下挺过去。

每个步骤花费的时间都是几十分钟?万一开发当天跑肚拉稀,那项目就要延期交付喽。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    降低代码复杂度的建议:

    1. 确定功能需求和非功能需求,对于非功能需求,包括质量属性、约束条件和其他非功能需求,需要作为对功能性需求的补充,以确保软件设计不仅满足基本功能要求,还要具备安全、稳定、可靠和易用等特性。

    2. 确定每个实体需要存储的详细信息,将数据库中的主要的实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。实体属性分解时,含义相同的成员信息不能重复出现,每个实体对应一张表,实体中的每个成员对应表中的每一列。

    3. 在软件开发过程中,需要确定项目的非功能性需求,并对项目进行合理的需求管理,包括变更控制、版本控制、需求跟踪和需求状态跟踪。这些活动可以有效地维持需求约定集成性和精确性,确保软件开发过程中需求流程受到管控。

    4. 采用增量式开发模型,先实现基本功能,然后逐步增加和完善功能,以避免需求蔓延和需求变更所带来的影响。增量模型在增加新功能时,难以保证不会对前期的功能产生影响。如果用户需求出现变化,前期开发的功能也必须进行更改。

    5. 使用配置管理工具对软件代码进行有效地管理,目的是及时并正确地获取、评审、批准并存档项目各阶段的文档、图纸、代码及数据,保证软件开发流程的有序性。常用配置管理工具有:Harvest、Perforce、ClearCase、PVCS、CVS/SVN、VSS等。

    6. 使用结构图对软件代码架构进行分析和规划,结构图是描述程序对象之间相互依存关系的图表,可以帮助理清各个模块之间的关系,以及数据和控制流的传递过程。同时,可以使用两种辅助符号来进一步描述模块间的调用关系。

    7. 在软件开发的过程中,注意代码的可读性、可维护性和可扩展性,遵循良好的编码规范以及使用适当的设计模式和重构技巧,减少代码中的冗余和嵌套,提高代码的复用性,降低代码复杂度。同时,使用代码检查工具和测试工具对代码进行自动化检查和测试,避免人为疏漏导致的错误。

    参考资料: 1. 非功能性需求: 2. 软件需求分析 3. 对于特别重要的内容,你认为一般采用哪些方式才能确保有效沟通 4. 需求蔓延的原因 5. 标识每个实体需要存储的详细信息 6. 软件需求管理的主要活动 7. 配置管理在开发中的作用,并列举至少两种配置管理工具 8. 摹客全新的富文本在线写作模式 9. 增量开发模型 10. 结构图的主要构成


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^