用以视觉化软件程序的系统及方法_2

文档序号:9810436阅读:来源:国知局
至少一开放软件程序(open software program)。具体而言,该至少一开放软件程序与软件程序111相关,且属于专家公认的开放软件程序,例如安卓(Android)系统、阿帕奇(apache)系统、Chrome系统所提供的开放程序码。这些开放程序码可以是每日编译版(Nightly Builds)或通过标准制定而释出的开放程序码。数据库115存储的该至少一开放软件程序可包含多个类别程序码20,其中各该类别程序码可实质包含多个方法程序码22,各该方法程序码可实质包含多个参数24。每一类别程序码可具有至少一属性,该至少一属性可对应至该类别程序码、对应至该类别程序码包含的方法程序码及/或对应至各该方法程序码包含的参数。然而,数据库115存储的该至少一开放软件程序并不包含软件程序111本身。
[0016]在存储装置11包含数据库115的情况下,处理装置13可根据数据库115存储的该至少一开放软件程序,对软件程序111进行初步分析。具体而言,处理装置13可计算数据库115存储的该至少一开放软件程序中各个类别程序码的行数、各个方法程序码的行数、各个方法程序码包含的参数的数量、及不同类别程序码中出现相同属性的属性数量。然后,处理装置13可根据该至少一开放软件程序中各个类别程序码的行数、各个方法程序码的行数、各个方法程序码包含的参数的数量、及不同类别程序码中出现相同属性的属性数量界定至少一门檻。
[0017]举例而言,处理装置13可分别针对该至少一开放软件程序中各个类别程序码的行数、各个方法程序码的行数、各个方法程序码包含的参数的数量、及不同类别程序码中出现相同属性的属性数量计算一统计参数(例如平均值及/或标准差)。然后,处理装置13可根据各个统计参数分别界定一门槛,或者根据这些统计参数共同界定一门槛。
[0018]在界定该至少一门槛后,处理装置13可比对软件程序111中相对应的部分是否超出该至少一门槛。举例而言,处理装置13可针对该至少一开放软件程序中某一类别程序码的行数界定一门槛,然后判断软件程序111中相对应的类别程序码20的行数是否超出该门槛。同理,处理装置13可针对该至少一开放软件程序中某一方法程序码的行数、某一方法程序码的行数、某一方法程序码包含的参数的数量、或不同类别程序码中出现相同属性的属性数量界定一门槛,然后判断软件程序111中相对应的方法程序码22的行数、相对应的方法程序码22包含的参数24的数量、或相对应的不同类别程序码20中出现相同属性的属性数量是否超出该门槛。由于数据库存储的是专家所公认的开放软件程序,故若软件程序111中相对应的部分超出前述界定的门槛,则软件程序111出现耦合、内聚或其他问题的可能性就相对来得高。
[0019]在判断软件程序111中相对应的部分超出该至少一门槛后,处理装置13可根据数据块信息、分歧变化信息及散弹枪手术信息至少其中之一建立软件程序111的一视觉化架构。然而,在存储装置11不包含数据库115的情况下,处理装置13亦可直接根据数据块信息、分歧变化信息及散弹枪手术信息至少其中之一建立软件程序111的一视觉化架构。在处理装置13建立该视觉化架构后,显示装置15可用以根据该视觉化架构显示软件程序111。显示装置15可以是各种已知的显示装置,例如液晶显示器、二极管显示器、触控显示翌坐坐
寸寸ο
[0020]数据块信息可包含软件程序111中出现数据块的各种信息,其中数据块泛指软件程序111中不同的类别程序码20出现相同属性的一种现象,这也是软件程序111产生耦合的一个主要原因。为了取得数据块信息,处理装置13可计算软件程序111包含的所述多个类别程序码20内属性之间的相关性(Correlat1ns),以侦测软件程序111是否出现数据块。
[0021]分歧变化信息包含软件程序111中出现分歧变化的各种信息,其中分歧变化泛指软件程序111中某一类别程序码20中出现多个会共同变化的方法程序码22的一种现象,这也是软件程序111产生内聚的一个主要原因。举例而言,在一类别程序码20中多个方法程序码22会共同变化的原因可能是因为呼叫、引用等功能,造成不同的方法程序码22之间具有相依性、或是不同的方法程序码22所包含的参数24之间具有相依性。为了取得分歧变化信息,处理装置13可根据变化记录113计算软件程序111中每一类别程序码20包含的方法程序码22之间的相关性,以侦测软件程序111是否出现分歧变化。实质上,可采用各种已知的相关性演算法来计算每一类别程序码20所包含的方法程序码22之间的上述相关性。
[0022]散弹枪手术信息包含软件程序111中出现散弹枪手术的各种信息,其中散弹枪手泛指软件程序111中不同类别程序码20会共同变化的一种现象,这也是软件程序111产生耦合的一个主要原因。举例而言,多个类别程序码20会共同变化的原因可能是因为呼叫、引用等功能,造成不同的类别程序码20之间具有相依性、不同的类别程序码20所包含的方法程序码22之间具有相依性、及/或不同的类别程序码20所包含的方法程序码22,其包含的参数24之间具有相依性。为了取得散弹枪手术信息,处理装置13可根据变化记录113计算软件程序111包含的类别程序码20之间的相关性,以侦测软件程序111是否出现散弹枪手术。实质上,可采用各种已知的相关性演算法计算多个类别程序码20之间上述相关性。
[0023]可选择地,处理装置13可串行地或并行地计算软件程序111中所述多个类别程序码20内属性之间的上述相关性、所述多个方法程序码22之间的上述相关性及所述多个类别程序码20之间的上述相关性。当采用串行计算时,上述三种相关性的计算顺序可根据需求而改变。
[0024]可选择地,处理装置13为软件程序111所建立的视觉化架构可以是一阶层式架构(hierarchical structure)。该阶层式架构可包含多个层级,用以表示对应至不同层级的信息。举例而言,软件程序111包含的类别程序码20可对应至该阶层式架构的一第一层,而软件程序111包含的方法程序码22及其参数24与相关的属性可对应至该阶层式架构的一第二层。
[0025]可选择地,显示装置15可根据不同的色彩、框线、连接线及/或轮廓等,来显示处理装置13为软件程序111所建立的视觉化架构。以下将以图3A及图3B为例,说明处理装置13为软件程序111所建立的视觉化架构,其中图3A为软件程序111的一视觉化架构的一第一层的一例示图,而图3B为软件程序111的一视觉化架构的一第二层的一例示图。
[0026]如图3A所示,软件程序111的一视觉化架构的第一层40包含多个类别程序码20a-201,其中每一类别程序码20a-201是以方形轮廓予以显示。类别程序码20之间的相关性的连结可以通过连接线予以表示,例如实线表示实作(implementat1n)关系与结合(associat1n)关系,而虚线表示继承(inheritance)关系。实线可使用不同的端点符号进一步作细分,例如箭头表示为实作关系,而直线表示为结合关系。另外,实线与虚线有端点符号的一端可表示成引用(reference)的方向。如图3A所示,依据连接线的类型,类别程序码20g与类别程序码20c具备连结关系,也就是在类别程序码20g中,将类别程序码20c视为参照(reference)变数。举例而言,若类别程序码20g对应至电话,则类别程序码20c对应至该电话上的按钮。另外,显示装置15可以利用不同的色彩,代表类别程序码20b的警示程度。举例而言,可以用绿色为底色来表示安全,用黄色为底色来表示须注意,而用红色为底色来表示危险。图3A所示的类别程序码20a-201,其数量、位置、呈现方式及连接方式仅作为本实施例的一说明范例,而非用以限制本发明。
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1