軟體考古學:修订间差异
外观
删除的内容 添加的内容
TommyGundam(留言 | 贡献) 小 增加或调整内部链接 |
|||
(未显示3个用户的8个中间版本) | |||
第1行: | 第1行: | ||
'''軟體考古學'''({{lang|en|'''Software archaeology'''}})是指對於文檔化不佳或甚至沒有說明文檔的{{link-en|舊有系統|legacy system}}軟體的研究,是[[軟體維護]]的一部份<ref name="RGBH">Gregorio Robles, Jesus M. Gonzalez-Barahona, and Israel Herraiz, "[http://herraiz.org/papers/english/icsm05short.pdf An Empirical Approach to Software Archaeology]," ''Poster Proceedings of the International Conference on Software Maintenance'', 2005.</ref><ref>"[http://www.agilemodeling.com/essays/agileLegacyIntegrationModeling.htm Agile Legacy System Analysis and Integration Modeling]" by Scott W. Ambler at agilemodeling.com, accessed 20 August 2010: "Without accurate documentation, or access to knowledgeable people, your last resort may be to analyze the source code for the legacy system... This effort is often referred to as software archaeology."</ref>。軟體考古學的內容包括對軟體模組的[[逆向工程]]<ref>Bryon Moyer, "[http://adm.omg.org/docs/Software_Archeology_4-Mar-2009.pdf Software Archeology: Modernizing Old Systems]," Embedded Technology Journal, March 4, 2009.</ref>、應用許多不同的工具及程序來發掘程式架構,並且還原設計的相關資訊<ref name="RGBH"/><ref>Richard Hopkins and Kevin Jenkins, ''[http://books.google.com/books?id=GYvP0u2k2uMC&pg=PA93 Eating the IT Elephant: Moving from greenfield development to brownfield]'', Addison-Wesley, 2008, ISBN 0-13-713012-0, p. 93.</ref>。軟體考古學可能會找出功能失常的團隊流 |
'''軟體考古學'''({{lang|en|'''Software archaeology'''}})是指對於文檔化不佳或甚至沒有說明文檔的{{link-en|舊有系統|legacy system}}軟體的研究,是[[軟體維護]]的一部份<ref name="RGBH">Gregorio Robles, Jesus M. Gonzalez-Barahona, and Israel Herraiz, "[http://herraiz.org/papers/english/icsm05short.pdf An Empirical Approach to Software Archaeology] {{Wayback|url=http://herraiz.org/papers/english/icsm05short.pdf |date=20200120210715 }}," ''Poster Proceedings of the International Conference on Software Maintenance'', 2005.</ref><ref>"[http://www.agilemodeling.com/essays/agileLegacyIntegrationModeling.htm Agile Legacy System Analysis and Integration Modeling] {{Wayback|url=http://www.agilemodeling.com/essays/agileLegacyIntegrationModeling.htm |date=20210323180819 }}" by Scott W. Ambler at agilemodeling.com, accessed 20 August 2010: "Without accurate documentation, or access to knowledgeable people, your last resort may be to analyze the source code for the legacy system... This effort is often referred to as software archaeology."</ref>。軟體考古學的內容包括對軟體模組的[[逆向工程]]<ref>Bryon Moyer, "[http://adm.omg.org/docs/Software_Archeology_4-Mar-2009.pdf Software Archeology: Modernizing Old Systems] {{Wayback|url=http://adm.omg.org/docs/Software_Archeology_4-Mar-2009.pdf |date=20110719132026 }}," Embedded Technology Journal, March 4, 2009.</ref>、應用許多不同的工具及程序來發掘程式架構,並且還原設計的相關資訊<ref name="RGBH"/><ref>Richard Hopkins and Kevin Jenkins, ''[http://books.google.com/books?id=GYvP0u2k2uMC&pg=PA93 Eating the IT Elephant: Moving from greenfield development to brownfield] {{Wayback|url=http://books.google.com/books?id=GYvP0u2k2uMC&pg=PA93 |date=20150323030114 }}'', Addison-Wesley, 2008, ISBN 0-13-713012-0, p. 93.</ref>。軟體考古學可能會找出功能失常的團隊流程,以及其產生的設計不佳或是未使用的軟體模組<ref>Diomidis Spinellis and Georgios Gousios, ''[http://books.google.com/books?id=h34pwy005nYC&pg=PA29 Beautiful Architecture] {{Wayback|url=http://books.google.com/books?id=h34pwy005nYC&pg=PA29 |date=20150322232939 }}'', O'Reilly, 2009, ISBN 0-596-51798-X, p. 29.</ref>。「軟體考古學」一詞<!--<ref>An early discussion is Judith E. Grass, "[http://www.usenix.org/publications/compsystems/1992/win_grass.pdf Object-Oriented Design Archaeology with CIA++]," ''Computing Systems'', Vol. 5, No. 1, Winter 1992.</ref>-->反映一個很自然的比喻:閱讀舊有程式的程式設計師會感覺自然像是一個正在探索古代文明的[[考古學家]]一様<ref name="AndyDave">[[Andy Hunt (author)|Andy Hunt]] and [[Dave Thomas (programmer)|Dave Thomas]], "[http://media.pragprog.com/articles/mar_02_archeology.pdf Software Archaeology] {{Wayback|url=http://media.pragprog.com/articles/mar_02_archeology.pdf |date=20201109083435 }}", ''IEEE Software'', vol. 19, no. 2, pp. 20-22, Mar./Apr. 2002, {{doi|10.1109/52.991327}}.</ref>。 |
||
==相關條目== |
==相關條目== |
||
* [[軟體架構恢復]] |
|||
* [[代码重构]] |
* [[代码重构]] |
||
* {{le|復古计算|Retrocomputing}} |
|||
* {{link-en|软件脆性|Software brittleness}} |
* {{link-en|软件脆性|Software brittleness}} |
||
* [[软件腐败]] |
* [[软件腐败]] |
||
* [[軟體熵]] |
* [[軟體熵]] |
||
*[[代码异味]] |
|||
*{{le|廢棄軟體|Abandonware}} |
|||
==參考資料== |
==參考資料== |
||
第13行: | 第17行: | ||
* [https://web.archive.org/web/20100612232147/http://www.visibleworkings.com/archeology/position-papers.html Position papers], OOPSLA 2001 Workshop on Software Archeology: Understanding Large Systems |
* [https://web.archive.org/web/20100612232147/http://www.visibleworkings.com/archeology/position-papers.html Position papers], OOPSLA 2001 Workshop on Software Archeology: Understanding Large Systems |
||
* [http://archive.wikiwix.com/cache/20100815220540/http://blogs.computerworld.com/14787/writing_code_reading_code_and_software_archeology Writing code, reading code and software archeology], ''Once More into the Code'' blog at Computerworld, September 23, 2009 |
* [http://archive.wikiwix.com/cache/20100815220540/http://blogs.computerworld.com/14787/writing_code_reading_code_and_software_archeology Writing code, reading code and software archeology], ''Once More into the Code'' blog at Computerworld, September 23, 2009 |
||
* [http://www.eclipsecon.org/2008/sub/attachments/How_to_apply_Software_Archeology_to_your_development_process.pdf How To Apply Software Archeology To Your Development Process], presentation by Michael Rozlog, March 13, 2008 |
* [http://www.eclipsecon.org/2008/sub/attachments/How_to_apply_Software_Archeology_to_your_development_process.pdf How To Apply Software Archeology To Your Development Process] {{Wayback|url=http://www.eclipsecon.org/2008/sub/attachments/How_to_apply_Software_Archeology_to_your_development_process.pdf |date=20200120210717 }}, presentation by Michael Rozlog, March 13, 2008 |
||
* [https://web.archive.org/web/20110926234101/http://www.oopsla.org/oopsla2008/content_include/podcast/oopsla200808.mp3 OOPSLA 2008 Podcast] with Grady Booch on software archaeology and related topics |
* [https://web.archive.org/web/20110926234101/http://www.oopsla.org/oopsla2008/content_include/podcast/oopsla200808.mp3 OOPSLA 2008 Podcast] with Grady Booch on software archaeology and related topics |
||
2024年8月11日 (日) 13:54的最新版本
軟體考古學(Software archaeology)是指對於文檔化不佳或甚至沒有說明文檔的舊有系統軟體的研究,是軟體維護的一部份[1][2]。軟體考古學的內容包括對軟體模組的逆向工程[3]、應用許多不同的工具及程序來發掘程式架構,並且還原設計的相關資訊[1][4]。軟體考古學可能會找出功能失常的團隊流程,以及其產生的設計不佳或是未使用的軟體模組[5]。「軟體考古學」一詞反映一個很自然的比喻:閱讀舊有程式的程式設計師會感覺自然像是一個正在探索古代文明的考古學家一様[6]。
相關條目
[编辑]參考資料
[编辑]- ^ 1.0 1.1 Gregorio Robles, Jesus M. Gonzalez-Barahona, and Israel Herraiz, "An Empirical Approach to Software Archaeology (页面存档备份,存于互联网档案馆)," Poster Proceedings of the International Conference on Software Maintenance, 2005.
- ^ "Agile Legacy System Analysis and Integration Modeling (页面存档备份,存于互联网档案馆)" by Scott W. Ambler at agilemodeling.com, accessed 20 August 2010: "Without accurate documentation, or access to knowledgeable people, your last resort may be to analyze the source code for the legacy system... This effort is often referred to as software archaeology."
- ^ Bryon Moyer, "Software Archeology: Modernizing Old Systems (页面存档备份,存于互联网档案馆)," Embedded Technology Journal, March 4, 2009.
- ^ Richard Hopkins and Kevin Jenkins, Eating the IT Elephant: Moving from greenfield development to brownfield (页面存档备份,存于互联网档案馆), Addison-Wesley, 2008, ISBN 0-13-713012-0, p. 93.
- ^ Diomidis Spinellis and Georgios Gousios, Beautiful Architecture (页面存档备份,存于互联网档案馆), O'Reilly, 2009, ISBN 0-596-51798-X, p. 29.
- ^ Andy Hunt and Dave Thomas, "Software Archaeology (页面存档备份,存于互联网档案馆)", IEEE Software, vol. 19, no. 2, pp. 20-22, Mar./Apr. 2002, doi:10.1109/52.991327.
外部連結
[编辑]- Position papers, OOPSLA 2001 Workshop on Software Archeology: Understanding Large Systems
- Writing code, reading code and software archeology, Once More into the Code blog at Computerworld, September 23, 2009
- How To Apply Software Archeology To Your Development Process (页面存档备份,存于互联网档案馆), presentation by Michael Rozlog, March 13, 2008
- OOPSLA 2008 Podcast with Grady Booch on software archaeology and related topics