参考答案:
【问题1】
(1)实现级:过程的设计模型。
(2)结构级:程序和数据结构信息。
(3)功能级:对象模型、数据和控制流模型。
(4)领域级:UML状态图和部署图。
【问题2】
软件重构的三个类别:
代码重构、设计重构、架构重构。
常见的重构方法:
(1)提取方法(Extract method)
(2)用委托来代替继承(Replace Inheritance witch Delegation)
(3)用子类代替型别码(Replace Type with Subclasses)
(4)用多态来代替条件判断(Replace conditional with polymorphism)
(5)模板函数
(6)提取类
(7)提取接口
问题(1)可采用提取方法的重构方法解决,问题(2)可采用提取接口的方法解决。
【问题3】
为了使软件更容易理解,同时又需要考虑到各种兼容性,在重构时,可能需要在代码中增加冗余的判断、冗余的代码或结构;也可能需要修改已有的数据库结构和索引等,导致程序运行变慢。
但从长远来看,由于重构以后的软件结构更加清晰,代码复杂性更低,更易于理解,在性能调优时更容易分析瓶颈之所在,然后加以解决,因此,软件重构也更容易进行软件的性能优化和调优。
详细解析:
软件重构的目的主要有四个方面,可以分为三类。
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。