5

I am thinking about how software like Microsoft Windows grows from small as MS-DOS to Windows 7, Adobe Photoshop from its first version to version CS5. What techniques were used to accomplish this? Did they extend their software from the existing software or redesign for the next version? Or have they already planned their software solidly before they built them?

It's hard for me to extend my application/software when I need to add new features and it makes a mess of other existing features. How can I improve my software's extensibility so that I can easily add new features to your software?

Thomas Owens
  • 79,623
  • 18
  • 192
  • 283
Hafizul Amri
  • 221
  • 3
  • 7

3 Answers3

5

By Implementing A strongly Designed system. with the best design patterns suited for the job.

In software engineering, extensibility (sometimes confused with forward compatibility) is a system design principle where the implementation takes into consideration future growth. It is a systemic measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The central theme is to provide for change while minimizing impact to existing system functions.

Few Important Aspects.

Aditya P
  • 3,537
  • 2
  • 26
  • 42
1

Your code is more likely to be extensible if you follow the SOLID Priciple. Many of these come for free if you do testdriven development

k3b
  • 7,488
  • 1
  • 18
  • 31
0

Write modular code that is loosely coupled. This allows for extension in stages.

Chuck Stephanski
  • 1,421
  • 2
  • 13
  • 16