Moodle documentation: Where is the software architecture documentation?

Moodle documentation: Where is the software architecture documentation?

by Steve Moitozo -
Number of replies: 51
I write this after spending hours searching the web and the moodle sites looking for clues about the architecture of Moodle. As a software architect tasked with the job of evaluating the architecture of Moodle I find that I'm faced with the task of actually documenting the various aspects (views) of the architecture before I can evaluate it.

Perhaps it would be helpful for me to describe what it is I want to see.

The three main questions I'm trying to answer are:
  1. What are the major elements that make up the architecture?
  2. What are the roles and responsibilities of the elements?
  3. What are the relationships between the elements?
I want to see some documentation that describes the code structures and their relationships (module views), the runtime structures and their relationships (component and connector views), and documentation that describes how the structures interact with non-software elements such as humans and hardware (allocation views).

There are multiple ways to document all of these views. Not all are required, but here are some examples.

Examples of module views:
  1. Decomposition view (focuses on is-part-of relationships)
  2. Uses view (focuses on depends-on relationships)
  3. Generalization view (focuses on is-a relationships)
  4. Layered view (focuses on the layering of the system, each layer could be thought of as a virtual machine)
Examples of component and connector views:
  1. pipes and filters (processing/transforming streams of data)
  2. shared data (interactions between data accessors and data storage)
  3. client/server (client interacting with server)
  4. peer-to-peer (peer elements interacting)
Examples of allocation views:
  1. deployment (focuses on allocated-to relationships [servers, memory, CPUs, etc])
  2. implementation view (focuses on where files are, usually represented in a file structure)
I realize I'm asking for a lot but well documented architectures are much easier to communicate and therefore evaluate. As I have searched and read the moodle sites I have been able to find bits and pieces of information necessary for developing views of the architecture but there is much information missing, or at least elluding me.

I'm sure you're thinking, "This all sounds great. Feel free to do it." In fact, I may end up doing some of it, but you can imagine the amount of work I would have to do just to evaluate three or four LMSs if I first had to document each one's architecture. Please don't take this as picking on Moodle, so far I have this same issue with other projects I'm evaluating.

I look forward to your thoughts, tips, or links to such detail.

I realize this is a OSS project and many do not have documentation such as this. Perhaps this example for JBoss will be helpful.
Average of ratings: -
In reply to Steve Moitozo

Re: Moodle documentation: Where is the software architecture documentation?

by Art Lader -
Hi, Steve,

Welcome to Moodle.

I think that the folks over at the General Developer Forum can either answer many of your questions or point you in the right direction.

If you do not in a day or two get the responses you need here, you might want to post over there.

You can imagine how busy the developers are, but they really do try to be as helpful as possible.

Good luck in your quest!

Regards,
Art


Average of ratings: Useful (1)
In reply to Steve Moitozo

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
You are asking the wrong question. It is like you are asking for engineering plans of someone's back yard, or of a city park. They don't exist, and they don't exist because they would not be much use.

Moodle is not rocket science. It is a bunch of fairly simple and common stuff, like web forums, wikis, etc. What makes it really good is that all this stuff is packaged together in a way that is really easy to use for teaching. So Moodle is like a city park that has only ordinary trees and grass and walkways, but which is a really nice relaxing place to sit and eat your lunch, or go for a jog. That is, without any high tech, it fulfils its function really well.

And Moodle is a city park where the authorities invite the local people in to help tend the plants and rake the gravel. Most of these people are coming in on their own time, in the evening or weekends, and most of them aren't specialists. They would not understand engineering plans, even if they existed, and they would certainly not want to contribute if they had to spend lots of time updating plans as well as gardening. They just want to sit around and chat for a bit (Moodle forums) so they can reach a consensus about how their park should be, then they just want to get on and make it happen.

Anyway, it is fairly plain to see how it all works just by looking at the park itself. Similarly, if you want to see how any particular part of Moodle works, just look at the code itself. For posting this forum reply, I am using mod/forum/post.php. My brower is telling me where the code for that is. That file will call a whole lot of library functions, but while looking at the code in my editor, I just hold down CTRL and click on the function name, and I am taken to where that function is defined. And all the code is pretty transparent. It should be clear what it does, there aren't any intentional pitfalls to trap the unwary.

Now, if you are a professional software developer, this culture takes a lot of getting used to, and frequently is very annoying. But the reason that Moodle is such a great educational tool is that it was built by educators, and not by engineers. If you are a professional engineer, you will have serious doubts about the quality of the workmanship; but if you are a teacher or a student, you will like what you see, and be blissfully unaware of all the duct tape and string holding it together underneath.

Tim - professional developer, who was forced to work on Moodle against his will, and finally got the lack of archetecture after about 6 months.

P.S. In fact, there is a name for the type of archetecture that Moodle uses. If you read Patterns of Enterprise Application Architecture you will find that there are names for the simple techniques that Moodle uses. I read it some time ago, so I have forgotten which names they were. I think 'Transaction Script' was one. I must look it up and post it on MoodleDocs, so there is somewhere to direct people who ask this question.

Average of ratings: Useful (7)
In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Steve Moitozo -
Thank you. I appreciate that this is the approach Moodle has taken. I can see that Moodle has been very successful and that many places have adopted it as their LMS. I'm glad it's an free and open source system.

However, if a group asked you to explain why Moodle is an architecturally better choice for an LMS than WebCT, Blackboard, Sakai, Angel, Atutor, Desire2Learn, ELGG, Drupal, Joomla, or no LMS at all. What would you say? What would you use to justify your response?

Consider that the group's working definition of "software architecture" was:
"The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them." (CMU/SEI)

Consider also that the group believed the following statement was true. "If all that mattered was functionality, any software architecture would do."
In reply to Steve Moitozo

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
I could not explain why Moodle was architecturally superiour to any other system. First, I don't know enough about any of the others, and second, it probably isn't.

Moodle's strength is not archetecural. It is pedagogic. And I can point you to excellent documentation about the pedgogy: http://docs.moodle.org/en/Pedagogy.

What documentation there is about architecture and coding standards (http://docs.moodle.org/en/Coding and http://docs.moodle.org/en/Moodle_architecture) is all about making it as easy as possible for people to set up, use and modify.
Average of ratings: Useful (1)
In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Will Kriski -
I'm a bit late on this one, but I'm blown away by the arrogance of these responses. You have a large open source software package with basically no architectural or developer documentation, and the reply (typical of most open source forums) is 'look at the code'. Unbelievable.
Average of ratings: Useful (1)
In reply to Will Kriski

Re: Moodle documentation: Where is the software architecture documentation?

by Chris Collman -
Picture of Documentation writers
Hi Will,
I am not so sure it is arrogance as much as it is perspective. Certainly your comments are familiar. My non-software experience leads me to conclude from a cultural point of view, those two terms are often related. These comments probably belong in the social forum but ... I break the rules sometimes.

Speaking for myself, I know nothing about architectural frameworks for software documentation. As a software system integrator and support person for several private companies in a previous life, documentation of code was the #1 complaint around the water cooler of those who improved somebody else's code. These people were talking like new users. All I could do was be emotionally sympathetic.

Everybody can do what they can do. I decided that one of the big areas of improvement for a new user was to edit the first paragraph on any page in MoodleDocs. I limit myself to 'teacher documentation' areas and feel there is still lots of work to do. I have not figured out how to motivate more people to assist in this "great work". big grin

I generally don't touch developer pages, because I am ignorant and "I don't care about those arrogant types who assume everyone knows the basics and pick nits".clown Listen to my potentially arrogant perspective: it is not how the imperfect hammer is made that is important, but how you teach somebody to use the it. With humor I now say, "is it any wonder that only the ignorant listen to me?"

And yes I have looked at some PHP code. What about those cute, or obviously frustrated, or really cryptic comments placed there by people since the beginning of time? That is not documentation which is really user friendly in any perspective.

Moodle has the classic problem of allocation of resources, in an open source environment. Do "You have a" solution for "us"?

Best Chris




In reply to Will Kriski

Re: Moodle documentation: Where is the software architecture documentation?

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
I missed the original post too, and being incapable of shutting up about stuff like this - a few observations...

I think it's often a matter of perspective. The original poster wanted to do an in-depth analysis of Moodle's architecture so that he could compare it with other systems. I'm surprised that nobody asked him why he wanted to do that. It all sounds very worthy but does the result actually have any meaning in the real world?

Will, your point or some variation on it comes up very regularly. Firstly, I completely agree. Code is not documentation and examples are not documentation. Projects that (yes, often arrogantly) suggest that is a perfectly reasonable substitute for documentation need a good slap smile I don't feel that Moodle is one of them. Moodle has been put together over a number of years by a lot of people, some professional developers, some keen amateurs. Some wrote documentation, some didn't. Some kept documentation up to date, some didn't. However, what are we supposed to do - "you can't submit that code until it is fully documented with UML (God help us)" etc etc?

The difference I think is the the Moodle community has a desire to "do the right thing" and that's the difference for me. The documentation project really does have a lot of information. There could be more, and when people offer their time to do it there will be more.
In reply to Howard Miller

Re: Moodle documentation: Where is the software architecture documentation?

by Will Kriski -
This is a great product and it provides a lot of value to teachers and students. Perhaps after I determine how it all works under the hood I can volunteer to write some documentation. The other option is to hire others to modify the software as I desire (eg. paypal subscriptions) without digging too much deeper, but because I'm a developer it's always tempting to want to know how it works.
In reply to Will Kriski

Re: Moodle documentation: Where is the software architecture documentation?

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
I think you'll find that Moodle doesn't go out of its way to be obscure or over complex. If you have specific questions about how something works post in the appropriate forum and someone will almost certainly help (Enrolment plugins for paypal smile )
In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
"They don't exist, and they don't exist because they would not be much use."

Amazed to find that quoted in "Alice":

"YOU are old, father William," the young man said,
  "And your hair has become very white;
And yet you incessantly stand on your head --
  Do you think, at your age, it is right?

"In my youth," father William replied to his son,
  "I feared it might injure the brain;
But, now that I'm perfectly sure I have none,
  Why, I do it again and again."

http://theotherpages.org/poems/carrol01.html

SCNR
In reply to Steve Moitozo

Re: Moodle documentation: Where is the software architecture documentation?

by Süreç Özcan -
I have drawn a diagram of the system architecture and want to share it with the Moodle community.
It is partly in German language so here the following translations:
Klient = client
Skriptsprache = scripting language
SQL-Datenbank (z.B.) = SQL database (e.g.)
Betriebssystem = operating system

Cheers,
Süreç
Attachment system_architecture.jpg
Average of ratings: Useful (5)
In reply to Süreç Özcan

Re: Moodle documentation: Where is the software architecture documentation?

by Erandika Gunawardana -
Thank You very much for doing this.... Danke... smile
In reply to Süreç Özcan

Re: Moodle documentation: Where is the software architecture documentation?

by ayo ijalana -

thank you Surec

i created an english adaptation of the imageMoodle architecture

In reply to ayo ijalana

Re: Moodle documentation: Where is the software architecture documentation?

by Joscha Zander -

Hi,

i recreated that graphic to match my styles in my thesis. May i use it there to descripe the system architecture of moodle? And how should i address the origins of this graphic?



Best regards,

Joscha

In reply to Steve Moitozo

Re: Moodle documentation: Where is the software architecture documentation?

by Mark Stevens -
I think there is a need for Moodle docs to start addressing this need from Moodle users. I think we have passed asking why, and we just need to start providing it.

A project that I am currently working on is looking for complete technical designs for all aspects of Moodle. They want a massive manual with exactly what Steve was looking for in 2007.

For example in the "Uses view" for forums, there would be a screen shot of the "Adding a new Forum" page described as follows:

This screen allows the user to create a new Forum.

Access levels to this sub-module are as follows:

1. Teacher and administrative users have access to this screen.

Following are the steps involved in order to access this sub-module:

1. To create a new forum, the user clicks "Add an Activity..." andselects "Forum" on Course page screen. The system transfers the user to"Adding a new Forum" screen.

2. User enters a title for the new forum in "Forum name" and description in "Forum Introduction".

etc., etc.,

There is also a detailed description of each field, button, menuitem on the page, which could even be linked to the database table,such as:

Item Name Description Length Value Data Origin Status
Text box Forum name This text box is used by the user to name the topic of the new forum 80 characters Alphanumeric User inputs manually Enabled


I'm attaching a screen shot of some interaction with selected block for comments/suggestions.
Attachment flowForActivitiesCoursesMenteesPeopleRecentActivitySectionLinksTagsUpcomingEvents.JPG
In reply to Steve Moitozo

Re: Moodle documentation: Where is the software architecture documentation?

by Mark Stevens -
I've made a process work flow for assignments that I would like to share.
Attachment flowForAssignment.JPG
Average of ratings: Useful (3)
In reply to Mark Stevens

Re: Moodle documentation: Where is the software architecture documentation?

by ben reynolds -
Hi Mark,
I like your flow chart for Assignment. I wish it were part of the documentation for teachers & admins, since it might help them think twice before choosing Upload a Single File (which, IMHO, is lame).

As for the other documentation you're seeking, books such as Mary Cooch's Moodle for Teaching 7-14 Year Olds - Beginner's Guide have the step-by-step approach with visuals of setting up blocks, etc. See http://moodle.org/mod/data/view.php?d=55&rid=2275 and be sure to click on "Buy this book here," so you can have a look inside courtesy of Amazon.

I'm reviewing the first draft of another book by the same publisher, and it is pretty clearly a standard policy to put screen shots into the instructions.

Unfortunately, all the settings are not discussed exhaustively in most Moodle books by most publishers (space limitations, I suppose). And, some modules have nasty little devils in the details not covered (these devils drive most of the Using Moodle posts, IMO).

In reply to ben reynolds

Re: Moodle documentation: Where is the software architecture documentation?

by Colin Fraser -
Picture of Documentation writers Picture of Testers
Hi Mark,
I loved your work flow for assignments - brilliant, and explanatory, very good indeed. The problem for me, just me, is it falls into the Chasm of Serious Unconcern. In short, as one falls into the chasm one thinks only of "who cares?". Obvious you do - sufficiently to take the time out to do it and more power to you and to anyone who looks at it and takes something from it. Personally, I do not have either the time or the inclination to take the time to do anything like that - and I doubt many Moodlers, even serious Moodlers, would. Süreç's diagram is good too, but is it really necessary? Perhaps for some people, but not for others.


<rant class="rambling_response">
Will,

My personal preference is for two things, the first is that is this idea going to make my lessons and classes better? Second, as my understanding of Moodle grows, can I keep sufficient technobabble out of my responses to questions asked? Arrogant, ybya it is.

I love episodes of Star Trek:TNG and Voyager, every episode they do that technobabble extremely well. It is like listening to an economist speak, meaningless nonsense really, but it makes weird sense because it sounds so good. That kind of jargonistic approach to technical subjects has influenced a whole range of documentation, you only have to read a Microsoft help file to see that. Same with Moodle. Chris Collman is fighting it, and has been cleaning up some of my obvious babbledoms, for which I am eternally grateful, even though I am trying to avoid it.

If you go back to the original question of this thread, you can see that what is being asked for is documentation that is full of this technobabble. It is this that we need to be arguing against, not being complicit in evolving it, allowing it to grow. All that does is to keep ordinary people out of it. If that is being arrogant, then mea culpa.

This line
"As a software architect tasked with the job of evaluating the architecture of Moodle..."

Why on earth would you want to? Moodle is a tool - a useful tool - but a tool nonetheless. It is an effective content management system, it can be used in a number of contexts. It is online - therefore connectionless - has relative security - not that strong no-one can get into it, but not that poor that anyone can get into it. The answer to that job that Steve has is "Who cares?"
Does it work? Can we use it? How much? These are the important questions when evaluating any software. I am sure if Steve was to ask Microsoft for this documentation for Windows 7 I am sure he would get a blank stare, then everyone would be too busy laughing to deliver a coherent response. Evaluating Moodle's architecture is easy because you only need to look at the directory tree to see how it would work. Why clutter all that up with pages and pages of documentation and artwork extolling the virtues of technobabble that achieves little or nothing. (IMNSHO much of that sort of thing has the bottom line of "Look at this, it proves I am just brilliant so bow your head in the face of genius", actually.)

Moodle has the advantage of allowing people to just being able to get involved at so many different levels, from a User of someone else's work all the way up to Developer. It is like Moodle demands from you only what you think you want to give it and this needs be encouraged. My suspicion is that too few people, like me, are interested in finding out what the technobabble really means so they would contribute little or nothing. Easy excuse not to if the first words you run into are words that make spaghetti of a reasonable person's perception of Moodle.

For me, it gave me to opportunity to get involved in developing something that I can see is useful that has a future if it is conserved and carefully managed. I make a minuscule contribution in repayment for the hours of simple fun I have being involved, of pleasure learning about Moodle - even just in the forums. I could not contribute in any other way - I have neither the skill or patience. But my paltry efforts are appreciated by a lot of people - even if they never know I who I am or what I have done. I don't care, I am simply having fun, and if that is arrogant, then so mote it be.

</rant>

New Motto: "Let there be no short answers for such questions!!!!"
In reply to Colin Fraser

Re: Moodle documentation: Where is the software architecture documentation?

by Chris Collman -
Picture of Documentation writers
Hi Will,
This subject comes up once in a while. I personally think it belongs in a developer's forum but I stay away from those areas. Most of the posts here concern the Moodle's mediawiki "main" namespaces. Unlike some, I reluctantly recognize that MoodleDocs also has a "development" namespace and that the concepts of architecture might be of assistance to developers. big grin

As you might tell I am more interested in the "how it works" as compared to the "why it works". I appreciate there are ways of looking at things which assist in developing the "why" that obviously impacts the "how".

Note to Colin:
<rant class="rambling_response"> Great Motto! </rant> I have been laughing off and on for a couple of minutes.

Note to Helen:
Do you think we could have Eloy tweak the code so users can have an option "to see" or "not to see" rant classes in forums?

Best to all, Chris



In reply to Chris Collman

Re: Moodle documentation: Where is the software architecture documentation?

by Chris Collman -
Picture of Documentation writers
Sorry,
<class apology> "I mispoke" when I directed my comment to Will. </apology>

I do like the graphic charts. I do not think something like the JBOSS documentation is useful for what I do in the Moodle Community. But it is important for me to allow and encourage others to do what they think is useful and important to them.

Can I blame it on the -20 F (-28 C) weather or on my bald head, perhaps on both?

Chris
In reply to Chris Collman

Re: Moodle documentation: Where is the software architecture documentation?

by Colin Fraser -
Picture of Documentation writers Picture of Testers
mm Looking again at that assignment flow chart a day later, I suspect I am being a little harsh - and self-centred here. It is a visual representation of the assignment processes in Moodle, and is a fairly accurate and reasonable graphic of what occurs. It could, if one wanted to, be added to the Assignment Module page easily. So why not?
In reply to Colin Fraser

Re: Moodle documentation: Where is the software architecture documentation?

by Mark Stevens -
Colin,

I agree with you in spirit on the "who cares?" (as a teacher using Moodle for five years I didn't), but there are lots of project managers and bean counters who care only about docs. The project that I'm currently working on is the 3rd or 4th VLE project that the client has tried to launch, and all failed... but they had amazing docs that keep getting "thrown in our face". I try to respond that Moodle is different, better, and doesn't "waste time" on these things... that doesn't fly with them...

Hopefully we can change their minds smile
In reply to Mark Stevens

Re: Moodle documentation: Where is the software architecture documentation?

by Colin Fraser -
Picture of Documentation writers Picture of Testers
"...but there are lots of project managers and bean counters who care only about docs.
Hopefully we can change their minds"

Project managers and bean counters are not leaders, they are usually highly trained resulting in having limited vision and narrow perspectives. This does not make them bad people, just any possibility of a vision outside of their training becomes almost impossible. These people are often good managers who are often poor leaders. This makes them eminently suitable as lower and middle management in the modern world full of grasping, self-serving absentee landlords, ie. shareholders, and CEOs who have forgotten they are employees, and have taken on the trappings of ownership, huge salaries and an indifference to anyone who cannot supplant them.

Remember the old saying, "You can tell a bigot, but you can't tell them much." You're fighting a losing battle I suspect, but even Don Quixote really won in the end - he kept true to himself.
In reply to Colin Fraser

Re: Moodle documentation: Where is the software architecture documentation?

by Wes Matchett -

I have just read this entire thread and my reaction is  - wow - do I really want to get involved in such a closed minded group?  Let me explain...  I am a software engineer recently hired by a school and tasked with examining Student Information Systems and, specifically, Moodle to supplement an existing in-house developed system.  Integration will be required to allow both to work together.  So my first thought was to learn how Moodle works and determine the level of effort.  I found this development forum and this is the first thread with a title resembling my task.  What do I find but a query into how Moodle works that has been responded with little constructive information and a lot of 'we don't do it that way because we don't understand or agree with the need'.

I'd like to explain why such documents are important.  First, it is not 'technobabble'.  That term refers to language that has no discreet meaning and whose purpose is to impress/entertain without real underlying substance.  Steve was not looking for meaningless diagrams or wordy description, but rather an accurate description of how Moodle works.  I have the same need.  A description of the architecture would provide the information that I can use to evaluate the system and also enhance it when/if the need arises.  Another result of such information is the ability to make comparisons and evaluate which is the better solution to a problem.  A third benefit is knowing what specific portion relates to the current task.  If you consider this paragraph 'technobabble' then I would respond "I do not think that word means what you think it means". (I nod to "The Princess Bride" for that wonderful quote).  If the docs truly are technobabble then they should either be a) discarded because they have no meaning or b) to be re-written in accurate, understandable language.  Docs that can't be understood are meaningless, but that doesn't mean there should be no documentation, nor should it be dumbed down for general public consumption.  Unfortunately, the computer world invented it's own language, just as the medical, physics, and any other newly developed effort must do to describe that which is new.

<rant_on>As an IT professional I find such outright rejection in this forum of what I daily use to perform the task at hand highly offensive.  This is not being elitist or exclusive.  It does mean that I expect to be given a certain amount of respect for the 29 years of experience that I bring to the table. I GUARANTEE that I could be a valuable, contributing member of this community, but I'm not sure I want to confront the attitudes I have found.<rant_off>

Proper modification/enhancement of any system requires that the system be understood.  Would you want your doctor to begin surgery without knowing how your body works?  How about your auto mechanic?  Please open your minds to the possibility that there exists the need to have documentation that describes Moodle.  It is not enough to that it works.  Understanding HOW it works is vital for worthwhile results.

My current task of understanding Moodle seems very daunting and dark at this moment.

In reply to Wes Matchett

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

I assume you have found Developer_documentation and read some of it? Development:Finding_your_way_into_the_Moodle_code may be a quick way to get you started. If you want a deeper look, try the book Moodle 1.9 Extension development, or http://dev.moodle.org/.

There is a lot of material out there to help you understand Moodle, and we are quite keen to help more people understand it. Even if our way of helping does not seem to be what you expect to find.

To answer one of your points, I would expect my doctor to know, in detail how my body works. I would not take detailed medical advice from someone who has just looked at some pretty wall-charts with cut-away diagrams of the human body - although a doctor who had previously studied the human body in depth might find such a wall-chart helpful as a memory aid and explanation tool. To stretch the anology perhaps too far, you are saying roughly "I am an experienced vet, I have studied the anatomy of many mammals in depth, so I think a pretty wall-chart of the human body will tell me all I need to know."

By the way, Moodle is not really a student information system. It is more a Virtual learning environment. (If you are not sure of the distinction, I think wikipedia makes it quite clear.)

Finally, http://www.slideshare.net/tjh1000/a-basic-introduciton-to-the-moodle-architecture-5442122 may be more like what you are looking for.

If not, what more would you like to know?

Average of ratings: Useful (3)
In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Wes Matchett -

Thank you for that last link.  The third slide is helpful and is the type of info I am pursuing.  Also, thank you for the clarification of Moodle not being a student information system.  I used the term incorrectly.

<sigh> I can't believe you didn't understand what I posted about architectural documentation.  I'm especially not looking for "some pretty wall-charts".  You have confirmed my suspicion that the contributors to this forum continue to consider something they don't understand as having no useful function or purpose. I was hoping that the thread content was old enough to represent past views, not current ones.  I am not asking you to learn the purpose or adopt it's use, simply accept that others may have a genuine need.  A perfectly acceptable answer to Steve and I's question would be "it doesn't exist", but instead we get "we have no need for that and neither should you, it is meaningless".   Read the past threads - it is exactly what has been stated.

My point was that the info Steve and I are looking for is not summary or generalized.  To use your medical analogy, it is an x-ray or CAT scan providing specific information on the condition of the patient.  Or perhaps a better image is a chart/report developed during a routine physical to record the current status.  This is an essential step when meeting a new patient. And this points out that the docs I am pursuing are not necessarily charts or images but should also contain descriptive language.

Yes, I have located the developer docs.  They are the reason I started searching the forums.  I was hoping to find the type of documentation that would enable me to make decisions rather than start developing.  If Moodle is not the appropriate tool for my needs then learning development skills is a waste of time.  Architectural documentation would let me quickly make such decisions and I am still looking for it.  I have found the database schema - which is a normal portion of arch. docs.  It seems that I must scan everything and piece together what I need.  That means scheduling considerably more time to this process than I had expected.

In reply to Wes Matchett

Re: Moodle documentation: Where is the software architecture documentation?

by Frank Ralf -
Hi Wes,

Database FAQ might give you some more pointers.

Moodle is an open source project and as such follows more an agile development approach than you might be used to. This is a huge work in progress with lots of people contributing with a lot of things not done by the book but nevertheless successful wink
In reply to Frank Ralf

Re: Moodle documentation: Where is the software architecture documentation?

by Wes Matchett -

Thanks Frank.  I found the DB FAQ fairly early in my search and it is helpful.  Unfortunatly, the most promising link on the page, Developement:Database Schema contains three links to various Moodle version schemas and they are all broken links.  sad

I have given up on finding what I want, which is not at the 'roll up your sleeves and develop' level but closer to a roadmap of how things are put together.  Agility is not the issue here.  I have worked on many open-source projects that are 'agile' - that is one of the benefits to OS. I am getting a picure of Moodle's basic architecture, and believe me it has one as all software does, and it does not appear to have changed at all over recent years.

In reply to Wes Matchett

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

There is one simple reason why there is no architecture documentation available for Moodle: No one has made any yet, and then shared it with the community.

And taking a step back, I can think of two possible reasons for that

  1. We have so badly pissed of anyone who things this sort of architecture documentation is important that no one with that mind-set has every worked out how Moodle works.
  2. Not one single person with that mind-set, who has worked out how Moodle works, was then prepared to go back and produce the documentation they wished they had had when they started, to share with the community.

I accept that because of the cantankerous nature of some of the people here, 1. is more plausible than it ought to be wink Sorry.

I feel I can safely raise this, because I frequently do go and fill in missing pieces of developer docs when I can't find what I am looking for explained adequately. (Sometimes I even do it because someone in one of these forums asked nicely, even if I don't need it myself.)

It is not lack of understanding. At least not of the tools of software architects. The Open University do some excellent postgraduate computing courses, that cover software architecture, and I have studied them; I have read books like Fowler's Patterns of Enterprise Applications Architecture; etc.

I do, however, plead ignorance of what exactly it is that you are asking for. To demonstrate what you are looking for, can you give us two excellent examples of the 'architecture documentation' for other systems? I am assuming you can just give us a URL to the docs for other open source projects, or attach something here. (If it is too much hassle, don't bother.) Of course, it would be most helpful if the examples were comparable with Moodle, that is, web applications.

In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Wes Matchett -

Yep, I am already planning on publishing what I put together.  I'm not sure how soon that will be since I have no idea how long it will take to find the info.  Some of it will have to be generated from scratch.  Not sure I can accomplish that, but I will get the ball rolling. I'll know when I am done.  big grin

I'll take a look for an online example.  But the challenge is that examples are specific to the item being described, so how useful would they be?  There is a wiki page at Software Architecture, but hang on for some tech talk. Also, there are many varying definitions of exactly how architectural documentation should be implemented. Many many volumes have been dedicated to the subject and entire courses are taught on the subject.

A very good link in the wiki's resource section is this article "Excellent explanation on IBM Developerworks".  It is well-written without a lot of tech talk.  A quote defining architecture: "Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution".  From this perhaps you can see that I am looking for description, not implementation details.  In the case of Moodle, the 'principles guiding its design and avolution' is probably never going to be documented, by the vary nature of the tool's development.

I think I have been able to step out if the defensive posture that I originally took when I encountered this thread.  I hope I have not offended anyone and I will try to be open-minded about the community here.  I get great joy and satisfaction out of teaching and helping others.  My ultimate goal is to contribute in a positive manner.

In reply to Wes Matchett

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

If you have specific questions about how Moodle works, please ask them here.

One of the more interesting things that has been written about how Moodle works is Pedagogy. Particularly the "Social Constructionism as a Referent" section. Point 4. there is relevant. To explain something to someone, you need to know where they are coming from. What they already know. It is probably futile to expect a single Moodle architecture document to satisfy everyone.

On the other hand, that is not an excuse not to try to explain the basic bits that everyone wants to know. What should such a document say. Let's try drafting something: (where it makes a difference - not many places - I describe Moodle 2.0)

Overview of a Moodle installation

Moodle is a Learning Management System, Course Management System, or Virtual Learning Environment, depending on which term you prefer. It goal is to give teachers and students the tools they need to teach and learn. Although it comes from a background of Social Constructionist pedagogy, it can be used to support any style of teaching and learning.

Moodle is a web application written in PHP. Moodle is open source. Copyright is owned by individual contributors, not assigned to a single entity, although the company Moodle Pty Ltd in Perth Australia, owned by Moodle's founder Martin Dougiamas, manages the project.

A Moodle installation comprises the Moodle executing in a PHP-capable web server; a database managed by MySQL, PostgreSQL, Microsoft SQL Server, or Oracle; and a file store for uploaded and generated files (the moodledata folder).

All three parts can run on a single server, or they can be separated with many load-balanced web-servers, a database cluster, and a file-server. Or anywhere between those extremes.

Moodle as a modular system

Like many successful open source systems, the moodle structured as a core system, surrounded by numerous plugins to provide specific functionality.

Plugins in Moodle are of specific types. That is, and authentication plugin and an activity module will communicate with Moodle core using very different APIs each specifically tailored to the type of functionality the plugin will provide. Functionality common to all plugins (installation, upgrade, permissions, configuration, ...) are, however, handled consistently across all plugin types.

The standard Moodle distribution includes Moodle core and a number of plugins of each type, so that out of the box, Moodle provides a lot of functionality. By installing and removing plugins, a particular Moodle installation can be adapted for a particular purpose.

Physically, a Moodle plugin is just a folder of PHP scripts (and CSS, JavaScript, etc. if necessary). Moodle core communicates with the plugin by looking for particular entry points, often defined in the file lib.php within the plugin.

Moodle core

Moodle core provides the infrastructure necessary to build an LMS by supporting the following concepts.

A course, which is a sequence of activities organised into sections. Courses are organised into a hierarchical set of categories within a Moodle site.

Users, profile, my moodle ... (sorry, can't be bothered to explain all this now, will just make notes.)

Groups and Cohorts ...

Contexts, roles, capabilities, and permissions, ...

Activity and course completion ...

Navigation, settings and configuration ...

Installation, upgrade ...

Logs, reporting, statistics ...

The most important plugin types

Activities (and resources) - the individual items that make up a course. The main tools for teaching and learning. For example forum, wiki, quiz, .... Activities are by far the largest type of plugin in terms of amount of code. I forum or wiki system could be a software project in its own right.

Blocks - small bits of functionality that can be added to the sides (normally) of other pages. Many blocks provide views of data that is available elsewhere, allowign that information to be displayed on the course page, for example.

Themes - The overall visual style of a Moodle site, or of a particular course, or all courses in a category, can be changed by selecting a different theme.

Language packs - Moodle is internationalised, and you can get language packs for many languages. http://download.moodle.org/langpack/2.0/. (Individual user-interface strings can be customised in any Moodle installation from within the admin screens.)

Course formats - Controls how the structure of the course, a sequence of activities grouped into sections, is presented to the users.

Authentication plugins - Controls how users log in. Moodle can manage usernames and passwords itself, or use those stored in LDAP or another database. Alternatively, Moodle can use a number of single-sign-on schemes.

Enrolment plugins - Controls which users are enroled in which courses. Again this can be by synchronising with another system, perhaps a student information system, or it can be tracked internally by Moodle.

Repository plugins - Ways for users to get content (files) into Moodle. Either by uploading from their hard drive, or by getting the file from another location on the Internet, perhaps Drop Box, Google Docs, or Flickr.

There are many more types of plugins (more than 30 at the last count). These include text filters, question types, gradebook reports, admin reports, course reports, plagiarism detection services and web service protocols.

How Moodle code is organised

Moodle follows mostly a transaction script approach. That is, suppose you are looking a a Forum. The URL will be .../mod/forum/view.php, and that is the PHP script that will be in overall control of the display of that page.

However, behind that basic transaction script approach, a lot of the core functionality has be refactored out into libraries (mostly in the .../lib folder). This provides something of a domain model. (However, the Moodle project started before PHP was capable of supporting object-oriented code, so don't expect an object-oriented domain model.)

HTML is mainly output through renderer classes. These allow different plugins to generate a consistent user-interface, which the themes can control. So, for example, there is an $OUTPUT->box($contents); method.

The Moodle database

The Moodle database has a database that comprises many tables (more than 250) because the whole database is an aggregate of the core tables and the tables belonging to each plugin. However, this large database can be understood because the tables for one particular plugin typically only link to each other, and a few core tables.

The Moodle database structure is defined in install.xml files (inside the DB folder in each plugin, and lib/db for Moodle core). To see those definitions in human-readable form, you can go to Admin -> Development -> XMLDB editor, and click on the [Doc] link.

--------------

OK, how is that for a first draft. It is longer than I was hoping, What could be missed out? Also, what is missing.

Average of ratings: Useful (5)
In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Wes Matchett -

I think this is an excellent document.  It provides the overview needed for a first-timer trying to understand Moodle structure.  Expanding the Moodle Core section will make it even more valuable and IMHO it should be placed on the development section of the wiki.

In reply to Wes Matchett

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Ah good. Seems like I covered roughly the right areas. Of course, I only really wrote that because I have an assignment due for the course I am studying, and it was a good bit of displacement activity. Of course, the assignment is still not done, and it is now less than 24 hours to the deadline, so I won't be putting this on Moodle docs tonight. (Or perhaps I will wink)

In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Now on Moodle Docs: Moodle architecture, and revised slighty. The description of the different areas of Moodle core is still not complete, I am afraid.

Average of ratings: Useful (1)
In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Wes Matchett -

As I learn I will attempt to update.

It isn't really a description of the architecture, so the title may be misleading.  Of course it is more than an into and it is not future goals since it describes the existing system (I assume).  A better title may be 'System Design"?

In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
The link http://docs.moodle.org/en/Moodle_architecture above is broken. It takes me to http://docs.moodle.org/22/en/Moodle_architecture (see attachment).

The link in the box http://docs.moodle.org/22/en/index.php?title=Moodle_architecture&action=edit&redlink=1 is somehow recursive!

The search link in the footer, http://docs.moodle.org/22/en/Special:Search/Moodle_architecture, doesn't bring any useful link. But advices to "If you can't find what you're looking for in the following search results, please let us know by posting about it in the Moodle documentation forum" what I'm doing now.

In case, the correct answer is: http://docs.moodle.org/dev/Moodle_architecture.
Attachment Moodle_architecture.png
In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Daniel Louw -

Tim, I hereby award you with 10 Internets on a reply-well-done!

As I was reading this thread I got more and more angry at the arrogance coming from both sides. I myself reside in the pro-well-documented team and was really dissappointed to find no-one was really bothering.

I have NO experience in PHP. I know C++ and Objective Pascal, and that's it. I got the task of implementing Moodle for or a client needing a VLE. This client has some really specific needs that a simple theme would not be able to address. I am learning PHP as I go along trying to figure out what I can do, and how I'm going to do it. I spent 3 weeks trying to get my head around Moodle and (PHP), and didn't really get very far. This thing is so vast, that I do not even know WHERE to start looking for something!

This post is an immense help and I'm kicking myself for not finding it earlier. Now I know where to look for something. And when I find it, I "read the code" and figure it out myself.

I think the title we need for this document (and possible full-blown category) is Moodle for first-time MOODLE developers.

Not intended for non-programmers, not intended for old-moodlers, but intended for developers that's new to Moodle.

If the moodle documentation project shifts to such a style of documentation, I believe you will find that more new developers will become willing to jump on board and contribute. This way, everyone involved in Moodle will learn. Not just the students.

I congratulate everyone in this tread. This is a fine example of strangers resolving an issue online. People had some differences, they fought and defended, and finally came to a conclusion that both parties were both wrong and right, and resolved differences.

As I learn more of Moodle, I will definitely do my best to help to document this new category.

Thank you and regards.

- Daniel

In reply to Daniel Louw

Re: Moodle documentation: Where is the software architecture documentation?

by Wes Matchett -

"If the moodle documentation project shifts to such a style of documentation, I believe you will find that more new developers will become willing to jump on board and contribute. This way, everyone involved in Moodle will learn. Not just the students."

I agree. You have identified a very valid reason for including this documentation style.  We all have certain expectiations and programmers expect a certain type of documentation.  When it doesn't exist they often classify the code as sub-par or too time-consuming to get involved and walk away.

I am currently in the evaluation/training mode.  I have a Moodle sandbox server running for myself and several faculty to play with features and evaluate how our school's structure can be implemented.  Our goal is to have a few (5 maybe) classes in Moodle for next fall and expand the remaining curriculum moved next year.

I will continue to submit additions to Moodle Architecture as I learn.

In reply to Steve Moitozo

Re: Moodle documentation: Where is the software architecture documentation?

by Ken Thompson -

Steve -

I share your pain. I am the architectural lead of a group with about $25 million dollars to spend implementing an Instructional Improvement System for public education. I am not alone.

There are currently tens if not hundreds of millions of dollars of grant funding targeted to provisioning Learning Management and Instructional Improvement Systems. It is quite possible that Moodle could play an important role in those efforts, but absent a reasonably well defined architecture that evaluation teams can compare to products that will be: 1) Heavily marketed, 2) Politically connected, and 3) Well defined, it is doubtful that Moodle will be very competetive.

This is a pity, but it also the single largest obstacle I have seen stop the more widespread use of Free and Open Source Software throughout Government. If the Moodle community wants Moodle to have a more significant (and funded) impact on the way public education is delivered, you might want to consider making it easier for folks like me to advocate on your behalf.

 

Cheers,

 

Ken

In reply to Ken Thompson

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

I am struggling with scepticism here. Does being able to draw pretty box diagrams of 'how Moodle's software architecture works' really affect your ability to win contracts like this? Are we trying to understand how Moodle works, or do we just need to win a game of buzz-word bingo? Putting cynicism aside, I will try to address the issues you raise.

Your question also suffers from the same issue as using a CV (resume) to apply for jobs. It is well known that you can't just have a CV that you you use to apply for all jobs. You need to taylor your CV to the job and the company you are applying for.

Getting back to to Moodle's architecture. The point is not diagrams. The point is that the people evaluating your proposal want to know that moodle has certain non-functional requirements (scalability, maintainability, extensibility, robustness, database-independance, ...) They want sufficient evidence to justify whatever you are claiming, and your judgement is that they will consider an appropriate architecture diagram as sufficient evidence.

It is worth noting that there is an assumption there. Before you go looking for a diagram, make sure there are not more compelling forms of evidence. For example, to demonstrate scalability, you may be better using the data on http://moodle.org/stats/. There may be more information about Moodle in the pubic domain because it is open sourece.

Going back to the CV analogy, almost any CV I write for myself is likely to mention that I have several degress. These standard qualifications compactly summarise a lot of evidence about ability - at least in the context of job recruitments. There are, of course, discussions to be had about whether degrees are really the best training for any given job, and whether that is the purpose of education in the first place, but it is still the case that for many jobs, having a degree is a big help when applying. Similarly, there are common architectural patterns that are widely recognised, and if we can draw a standard diagram to show that Moodle works that way, then it would be helpful.

But there is still the tayloring issue. I and others here know quite well and are happy to try to explain it, but we don't at-all know your target audience. To get the diagrams you want, perhpas the most effective route is for you to ask us questions about how Moodle works, then once you understand enough, you can express the information is the way that your target audience requires.

It has already been mentioned in this thread, but you may find some of the diagrams in http://www.slideshare.net/tjh1000/a-basic-introduciton-to-the-moodle-architecture-5442122 helpful as a starting point.

P.S. I have just spotted a beautiful example of just the point I am trying to make. Reading back through the post before hitting send, I realised that talking about CVs (curriculum vitaes) might not mean much to you. In the USA they are more normally called resumes, so I had to add the bracket in the second paragraph. Of course, this sort of thing comes as no suprise to someone who knows about Moodle's pedagogic origins (point 4 of http://docs.moodle.org/20/en/Pedagogy#Social_Constructionism_as_a_Referent). There is also that standard bit that you get on HR courses, the Shannon and Weaver model of communication (http://stevefournier01.tripod.com/hist/hist-6.html). To successfully transmit a message, you can't just thing about how the message you want to send, and how you are going to transmit it. The receiver must correctly interpret your message for any communication to take place.

In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Marcus Green -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers

I have yet to hear of any software being adopted because of the quality of the developer documentation.  I find the quality of code commenting (i.e. phpdoc) to usually be of more help than separate documentation and there is scope for improvements to that in the moodle code

However as an author of several technical books and creator of ER digrams for the Moodle database, If there  I can quote a very modest hourly rate for developing additional documentation if it will encourage its adoption. smile

In reply to Marcus Green

Re: Moodle documentation: Where is the software architecture documentation?

by Ken Thompson -

Marcus -

Apparently, you have not been involved in many Government software acquisitions. The fact that someone is actually looking at documentation is a huge improvement over the more common practices I've seen over the years.

The reviews of your books on Amazon were solid, so if we are able to sway the selection group toward using an open source product like Moodle as a framework for building and deploying the Instructional Improvement system, you might be very well placed to get some of the documentation work that will surely be needed.

Cheers,

Ken

In reply to Marcus Green

Re: Moodle documentation: Where is the software architecture documentation?

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
Hi Marcus

> I have yet to hear of any software being adopted because of the quality of the developer documentation.

Others may differ. See http://developers.slashdot.org/story/12/04/15/026255/documentation-as-a-bug-finding-tool.
In reply to Visvanath Ratnaweera

Re: Moodle documentation: Where is the software architecture documentation?

by Marcus Green -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers

I would not put any faith in comments or articles posted at slashdot as an indicator of how people decide what software to adopt. I have been reading Slashdot every day since just after the web got pictures and the insights are rarely managerial.

Software adoption is usually a political (with a small p) decision as much as technical decision.  Frequently the politics is no more sophisticated than "is it what everyone else is doing so if it goes horribly wrong nobody can blame me", a modern version of "nobody got fired for buying IBM". 

"What do you want to to be when you grow up Johnny?  an astronaut, a games programmer, a race car driver?

No daddy, I want to document software so much I will do it for free, because I love software documentation"

The above quote is of course entirely fictional


In reply to Marcus Green

Re: Moodle documentation: Where is the software architecture documentation?

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
On http://developers.slashdot.org/story/12/04/15/026255/documentation-as-a-bug-finding-tool you wrote:

> I would not put any faith in comments or articles posted at slashdot as an indicator of how people decide what software to adopt. I have been reading Slashdot every day since just after the web got pictures and the insights are rarely managerial.

The main thing of that article (for me) was the blog post it was referring to: http://madebyknight.com/documentation-bug-finding/. The comments are a side product, which admittedly make the whole thing more interesting. Did I say anything about Slashdot comments in general or about the comments on that particular article?

Further:
> Software adoption is usually a political (with a small p) decision as much as technical decision.

How about Moodle? It is a leading software product. What were the political decisions behind its adoptation?

Side topic: Do you mind explaining me the difference between political with a capital P and a simple p?

> Frequently the politics is no more sophisticated than "is it what everyone else is doing so if it goes horribly wrong nobody can blame me", a modern version of "nobody got fired for buying IBM".

Sorry, I'm at a loss for finding something political in that. OK, I might need the explanation about politics I've requested above.

> "What do you want to to be when you grow up Johnny? an astronaut, a games programmer, a race car driver?
>
> No daddy, I want to document software so much I will do it for free, because I love software documentation"

Sorry once again. What is the message in that? That developers despise documenting?

> The above quote is of course entirely fictional

Is it a quote or a (fictional) anecdote?
In reply to Visvanath Ratnaweera

Re: Moodle documentation: Where is the software architecture documentation?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

When people in the UK talk about "the difference between political with a capital P and a simple p?" this is what they mean:

With a capital P, Politics is specifically about the running the country, political parties, memebers of parliamen, and the media circus that is Westminster.

With a small p, politics is just about what happens when people come together and have meetings and have to decide things.

The point is that when groups of people have to decide everything, it is not just a technical process that determines what is decided. It depends on the people involved. As Moodlers, we should really not be surprised at this. It is similar to the way that Social Constructivism says that the way people learn from each other is influenced by those people's backgrounds and interactions. (http://docs.moodle.org/22/en/Philosophy)

In reply to Tim Hunt

Re: Moodle documentation: Where is the software architecture documentation?

by Ken Thompson -

Tim - I'm afraid you are missing the point.

I expect that when we publish an RFP for an Instructional Improvement System we are going to have many respondents ranging from two guys and a dog companies stringing together open source software based solutions to billion dollar/year software giants. The proposals will range from tens to hundreds of pages and will cover everything you can think of - hardware, software, data, security, staffing, training, integration, data conversion, communications, licensing, intellectual property management, performance management, etc.

Any proposal based on Moodle is going to be handicapped in this situation if there is not an adequate description of the architectural features of the product or how they relate to the various points required of the response. Perhaps a respondent will recognize this shortcoming and invest the time in producing a decent set of docs (most of which are not pictures by the way) as part of their proposal. Then the question becomes more about how the architecture will enforced over time in an open source development context?

These are not trivial questions for systems that have projected lifespans measured in decades. The architecture of the Interstate Highway System called for limited access using a system of high speed on and off ramps. Imagine the chaos that would ensue if we suddenly decided to start allowing stop light based intersections in the middle of Interstates?

A similar decision in the architecture of Moodle might force us to fork a version and take over development independent of the open source code - negating many of the benefits of Open Source Software. The likelihood of something like that happening is a serious consideration and could absolutely derail consideration of an Open Source based solution.

I am not here to get into a religious debate about the origins or intent of Moodle. Frankly, I don't care about that. What I do care about is giving Free and Open Source Software a reasonable chance to compete in the arena of Government software acquistion. As an example of what I would consider a reasonable software architecture overview, please consider this link to the Apache HTTP Server Conceptual Architecture:

http://www.voneicken.com/courses/ucsb-cs290i-wi02/papers/Concept_Apache_Arch.htm

Cheers,

Ken

In reply to Steve Moitozo

Re: Moodle documentation: Where is the software architecture documentation?

by Ambrish Tiwari -

Hi Steve

I think this is architecture helping you.


A basic introduction to the moodle architecture