Your SlideShare is downloading. ×
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply



Published on

Technical Track …

Technical Track
From: 赵喜鸿

Published in: Business, Technology

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Make Software Soft-- Learn from A Refactoring Case赵喜鸿
  • 2. Who am I?From Alcatel-LucentSoftware developerA fervent advocate of Agile methodologies11 years experience in software development and team managementNow, refactoring a legacy telecom equipment system.
  • 3. Why call it “Software”?
  • 4. Soft• yielding readily to touch or pressure; easily penetrated, divided, or changed in shape; not hard or stiff• Easily molded, cut, or worked.• Easy to influence or impose upon Easy to change
  • 5. Is Software Soft?
  • 6. Is Software Soft?
  • 7. Is Software Soft?
  • 8. “Reasons”and “Solutions”
  • 9. Contract
  • 10. Insufficient Upfront Design
  • 11. More Upfront Design
  • 12. Design Reality
  • 13. A Real Refactoring Case
  • 14. Understand Problem Domain
  • 15. Epon Management
  • 16. Run On NT Board On LT Board Is it soft?
  • 17. Make It Softer
  • 18. Update op state Save to databaseConfiguration Config to hardware Changed
  • 19. Observer Pattern
  • 20. Listener “state” Listener “persist”Configuration Listener Listener “HWW” “HWW” New Listener
  • 21. PonDataData- State Config Fault PM HWWBase
  • 22. PonDataData- State Config Fault PM HWWBase NtPonLine LtPonLine
  • 23. xxxDataData- State Config Fault PM HWWBase xxxLine Config State xxxData Data- Fault Base
  • 24. Now
  • 25. New Line Object Fault State xxxData PM Config Data- Base
  • 26. New Line Object Fault State xxxData PM Config Data- Base Open to change?
  • 27. config a line Context Retrieve PM PM Config Line Object Role
  • 28. Fault Handling Context Retrieve PM ContextRetrieve State ContextRetrieveLine Context ConfigLine Context
  • 29. DCI ArchitectureData What the system isContext The Context is the class (or its instance) whose code includes the roles for a given algorithm, scenario, or use case, as well as the code to map these roles into objects at run time and to enact the use case.Interaction The Interaction is "what the system does." The Interaction is implemented as Roles which are played by objects at run time
  • 30. EponMgr Pon Ont Llid Uni Is It Soft? Service
  • 31. What is the essence of the problem?
  • 32. EponMgr Managed Object Pon Ont Llid Uni Service Relation
  • 33. ManagedObject ManagedObject Relation
  • 34. Box Board Line Service
  • 35. Domain ModelBox Board Line ServiceManagedObject ManagedObject
  • 36. SoftSoftware
  • 37. What Missed Domain Model Soft Bricks Software Refactoring Framework
  • 38. 道法自然Tao follows nature
  • 39. Summary
  • 40. The only thing constant is change
  • 41. Cope with Changes bymaking software soft
  • 42. Heart of making software soft is Discovering the “Tao”
  • 43. The way to discover “Tao” is refactoring
  • 44. “Tao” is the heart of making software SOFTPeople are the brain to find the heart
  • 45. Thank YouContact: Weibo:
  • 46. Questions?