Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1398220
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: 项目管理

2013-01-13 09:03:08

   从逆向工程的角度来看,分析一个系统的源码,主要要把握软件的多个层次、多个视图。
   软件在工程师的眼里实际上就是做数据转换用的,内部存在信息的流动。
   软件在用户的眼里就是一个包含若干行为,能完成一定的功能的工具。
   所以软件比不可少的就有了:行为域、功能域、信息域。
   因此就产生了与用户交互的行为模型,用户使用工具的功能模型,工程师做数据转换、信息流动的信息域模型。
   重点谈谈功能模型与信息模型
   在工程师看来,要关注软件的输入、处理、输出,这其中最重要又是输入、处理。
   在大型的软件系统,它的输入一般就是连接管理模型;它的处理模型包多线程并发模型、业务划分。
   总而言之,连接管理模型、运行时模型(多线程并发模型)、业务层次划分就是软件的主要部分。

   一个工程师可能能够轻易将连接管理模型、运行时模型、业务层次模型逐个击破,做到深刻理解。
   但是还有一个更重要的问题,就是还要有整体把握的能力。当系统出现bug或性能问题时,能全局的分析问题,看到问题产生的原因,此时全局把控的能力至关重要。
   将系统的各个关键部分整合起来,做系统分析的能力做逆向的时候是一种很重要的素质。
  
  
阅读(977) | 评论(0) | 转发(0) |
0

上一篇:lua metatable学习

下一篇:当遇到模糊问题时

给主人留下些什么吧!~~