9

Asked on Programmers: Well designed / high-quality open source software

I'm taking a software design class where I should choose an open source software to analyze from the Software Design point of view.

It has to be a big project: not less then 100,000 lines of code.

I would really like to choose a software that is very well designed and architected to have good insights on good software design.

By good design I mean things like meaningful classes and architecture, good use of (design) patterns, good use of abstraction, good organization of components, high cohesion and low coupling between components, etc...

Do you have any software to suggest me?

Note that the software just need to have a good design, the design does not need to be documented! :)

It does not need to be an application for the end user... It can also be a library, a tool, etc...

Community
  • 1
  • 1
Andrea Zilio
  • 4,444
  • 3
  • 29
  • 34
  • 2
    I suggest taking it to programmers.se.com. And Apache foundation projects come to mind (httpd, ant, etc.) – Eimantas Mar 31 '11 at 09:55
  • I didn't know about it! Thank's! Posted there :) – Andrea Zilio Mar 31 '11 at 09:58
  • 1
    which programming language/operating system do you prefer? I would suggest you take a project that has selftesting features (unittests, integrationtests) These are a good starting points to analyse subcomponents (unittests) or even workflows (integratino tests) – k3b Mar 31 '11 at 10:12
  • @k3b I'm fine with: Java, C++, python. Linux, Mac or Windows are fine as well. With respect to tests I thought about that, but I don't want to limit the number of suggestion I could get... I would however consider it for sure to choose the system eventually :) – Andrea Zilio Mar 31 '11 at 10:15
  • On programmers.se: http://programmers.stackexchange.com/q/63890/21322 – Tom Zych Mar 31 '11 at 11:21
  • A small caution: any architecture can be good or bad, it all depends on the architectural drivers behind it and how well the design addresses them. Still, one would hope you should be able to find something that is "good enough". – Adrian K Mar 31 '11 at 12:08
  • @K3b +1; the other salient point is what kind of App? The architecture of a web app is typically different from a thick client (for example). Another key differentiator is size: Large Enterprise Scale systems are typically architected different to smaller scale ones. – Adrian K Mar 31 '11 at 12:09

1 Answers1

2

So I see that it's been two hours and no ones come to the party - well - no ones stuck their own necks out so I'll be the first :)

I've got an open source ASP.NET CMS / Web Application Framework I've built over the last few years; it incorporates all (most?) of the architectural goodness I have learnt (up till then, anyway).

But:

  • I'm not sure if it's 100,000+ lines of code or not though; the download is about 3 Mb.
  • I'm definitely not claiming this to be super excellent, put on an alter, covered in medals - but I think it's worth a look: I'm brave enough to put it out there (!)
Adrian K
  • 9,880
  • 3
  • 33
  • 59