PSP各阶段 | 预估时间(分钟) | 实际时间(分钟) |
计划 | 20 | 20 |
开发 |
|
|
需求分析 | 0 | 0 |
生成设计文档 | 0 | 0 |
设计复审 | 60 | 100 |
代码规范 | 0 | 20 |
具体设计 | 30 | 40 |
具体编码 | 40 | 50 |
代码复审 | 20 | 40 |
测试 | 20 | 30 |
报告 |
|
|
测试报告 |
|
|
计算工作量 |
|
|
事后总结,并提出改进计划 | 30 | 50 |
总共花费的时间(分钟) | 220 | 350 |
我在百忙之中抽出时间温习项目,但UI仍然太丑,需要改进;用户使用不够简洁,需要改进;代码复杂度太高,需要改进;任务描述不够明确,需要改进;测试用例不够全面,需要改进。
学习软件工程这门课程,就必须学会在极度压力下挺过去。
每个步骤花费的时间都是几十分钟?万一开发当天跑肚拉稀,那项目就要延期交付喽。
不知道你这个问题是否已经解决, 如果还没有解决的话:降低代码复杂度的建议:
确定功能需求和非功能需求,对于非功能需求,包括质量属性、约束条件和其他非功能需求,需要作为对功能性需求的补充,以确保软件设计不仅满足基本功能要求,还要具备安全、稳定、可靠和易用等特性。
确定每个实体需要存储的详细信息,将数据库中的主要的实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。实体属性分解时,含义相同的成员信息不能重复出现,每个实体对应一张表,实体中的每个成员对应表中的每一列。
在软件开发过程中,需要确定项目的非功能性需求,并对项目进行合理的需求管理,包括变更控制、版本控制、需求跟踪和需求状态跟踪。这些活动可以有效地维持需求约定集成性和精确性,确保软件开发过程中需求流程受到管控。
采用增量式开发模型,先实现基本功能,然后逐步增加和完善功能,以避免需求蔓延和需求变更所带来的影响。增量模型在增加新功能时,难以保证不会对前期的功能产生影响。如果用户需求出现变化,前期开发的功能也必须进行更改。
使用配置管理工具对软件代码进行有效地管理,目的是及时并正确地获取、评审、批准并存档项目各阶段的文档、图纸、代码及数据,保证软件开发流程的有序性。常用配置管理工具有:Harvest、Perforce、ClearCase、PVCS、CVS/SVN、VSS等。
使用结构图对软件代码架构进行分析和规划,结构图是描述程序对象之间相互依存关系的图表,可以帮助理清各个模块之间的关系,以及数据和控制流的传递过程。同时,可以使用两种辅助符号来进一步描述模块间的调用关系。
在软件开发的过程中,注意代码的可读性、可维护性和可扩展性,遵循良好的编码规范以及使用适当的设计模式和重构技巧,减少代码中的冗余和嵌套,提高代码的复用性,降低代码复杂度。同时,使用代码检查工具和测试工具对代码进行自动化检查和测试,避免人为疏漏导致的错误。
参考资料: 1. 非功能性需求: 2. 软件需求分析 3. 对于特别重要的内容,你认为一般采用哪些方式才能确保有效沟通 4. 需求蔓延的原因 5. 标识每个实体需要存储的详细信息 6. 软件需求管理的主要活动 7. 配置管理在开发中的作用,并列举至少两种配置管理工具 8. 摹客全新的富文本在线写作模式 9. 增量开发模型 10. 结构图的主要构成