让我根据自己的情况为这个问题做准备:我最近被聘请参加实习,这将让我为已经包含大量代码的项目做出贡献。软件中包含各种模块和资源,计划理解这是一项相当艰巨的任务;甚至在哪里开始这件事。
最初的想法告诉我将程序的主要部分分解为UML图表,从高级别开始并逐步完成,但即使这样,也需要一些时间。我已经查看了初始代码中的许多位置,需要花费大量时间来理解算法,或者通过各种类跟踪初始函数以了解其目的。
加入新项目时是否有任何方法或提示?有关工具/软件的任何建议,有助于提高效率和理解力吗?
答案 0 :(得分:2)
按顺序:
和老板谈谈。告诉他们你将做以下事情:
与用户交谈。软件实际上为他们做了什么?
与开发人员交谈。该软件如何运作?有文件吗?
阅读文档(如果有)。
与测试人员交谈。有单元测试吗?是否有回归测试。如果没有,那么就开始构建一些。
你可以从一开始就开始为(5)和(4)做出贡献。
答案 1 :(得分:1)
要克服许多源代码的复杂性,您可以使用:
您也可以使用源代码模块化。源代码模块化是在源代码上重新构建聚类概念。
来自(see reference 1)
的参考文献软件模块化过程的目的是分区a 软件系统进入子系统提供了一个抽象的视图 软件系统的体系结构,其中子系统由一组软件工件组成,这些工件彼此协作 实现高级属性或提供高级服务 其余的软件系统。
但是,对于大型复杂软件系统,软件 模块化不能手动,因为它很大 不同工件之间的交互次数和大尺寸 的源代码。因此,完全自动化或半自动化的工具是 需要执行软件模块化。
请参阅我的完整答案here。
答案 2 :(得分:1)
要使用可视化图形和强大的代码查询语言来了解现有代码库,以便像代码库一样向代码库询问,您可以使用documentation进行C / C ++,CppDepend进行java和JArchitect对于dotnet。