2. Block Diagrams

Given the excellent makeup of both end-users and programmers as members of the gnu_cad_cam e-mailing list it is necessary to begin the design document with high level block diagrams. As the design progresses the high level block diagrams increase in detail and information provided.

I do realize that the beginning Top Level Block Diagrams will be boring to both potential end-users and programmers alike. I include them to illustrate how the design process is intended to progress. It is my belief that by the time a person has read to Level Six Detail Block Diagram that they will have a firm concept of:

2.1. Top Level Block Diagram

This section explains the Top Level Block Diagram of the Linux/GNU CAD CAM project. The design process begins independent of the hardware architecture or the operating system. I would like to emphasize that there are very few assumptions made at this level of design.

The Top Level Block Diagram does not look very interesting. There are only three blocks in the diagram and data flow is from left to right.

It is clear that more detail needs to be added to the Top Level Block Diagram. It would be extremely difficult to begin writing any code for the project at the level of design.

Figure 1. Top Level Block Diagram

       Top Level Block Diagram.

Top Level Block Diagram

2.2. Level One Detail Block Diagram

This section explains the Level One Block Diagram of the Linux/GNU CAD CAM project. The first level of detail should add additional detail but not so much as to cause people to scratch their heads wondering what is going on.

The Level One Block Diagram does not look very interesting either. There are only five blocks in the diagram and data flow is from left to right.

It is clear that more detail needs to be added to the Level One Block Diagram. It would still be extremely difficult to begin writing any code for the project at the level of design.

Figure 2. Level One Detail Block Diagram

       Level One Block Diagram.

Level One Detail Block Diagram

2.3. Level Two Detail Block Diagram

This section explains the Level Two Block Diagram of the Linux/GNU CAD CAM project. Each additional level of detail should add only enough detail so that it does not "swamp" people and thereby stifle a discussion of the design.

The Level Two Block Diagram is now beginning to look interesting. There are now eleven blocks in the diagram and data flow is from left to right.

Still more detail needs to be added to the Level Two Block Diagram. It would still be difficult to begin writing any code for the project at the level of design.

Figure 3. Level Two Detail Block Diagram

       Level Two Block Diagram.

Level Two Detail Block Diagram

2.4. Level Three Detail Block Diagram

This section explains the Level Three Block Diagram of the Linux/GNU CAD CAM project. Each additional level of detail should add only enough detail so that it does not "swamp" people and thereby stifle a discussion of the design.

The Level Three Block Diagram is now beginning to look more interesting. There are now thirteen blocks in the diagram and data flow is from left to right.

Still more detail needs to be added to the Level Three Block Diagram. It would still be difficult to begin writing any code for the project at the level of design.

Figure 4. Level Three Detail Block Diagram

       Level Three Block Diagram.

Level Three Detail Block Diagram

2.5. Level Four Detail Block Diagram

This section explains the Level Four Block Diagram of the Linux/GNU CAD CAM project. Each additional level of detail should add only enough detail so that it does not "swamp" people and thereby stifle a discussion of the design.

The Level Four Block Diagram is now beginning to look more interesting. There are now eighteen blocks in the diagram and data flow is from left to right.

Still more detail needs to be added to the Level Four Block Diagram. It would still be difficult to begin writing any code for the project at the level of design.

Figure 5. Level Four Detail Block Diagram

       Level Four Block Diagram.

Level Four Detail Block Diagram

2.6. Level Five Detail Block Diagram

This section explains the Level Five Block Diagram of the Linux/GNU CAD CAM project. Each additional level of detail should add only enough detail so that it does not "swamp" people and thereby stifle a discussion of the design.

The Level Five Block Diagram is now beginning to look more interesting. There are now twenty-one blocks in the diagram and data flow is from left to right.

Still more detail needs to be added to the Level Five Block Diagram. It would still be difficult to begin writing any code for the project at the level of design.

Figure 6. Level Five Detail Block Diagram

       Level Five Block Diagram.

Level Five Detail Block Diagram

2.7. Level Six Detail Block Diagram

This section explains the Level Six Block Diagram of the Linux/GNU CAD CAM project. Each additional level of detail should add only enough detail so that it does not "swamp" people and thereby stifle a discussion of the design.

The Level Six Block Diagram is now beginning to look more interesting. There are now twenty-three blocks in the diagram and data flow is from left to right.

Still more detail needs to be added to the Level Six Block Diagram. It would still be difficult to begin writing any code for the project at the level of design.

Figure 7. Level Six Detail Block Diagram

       Level Six Block Diagram.

Level Six Detail Block Diagram

2.8. Project Timeline

The below Project Timeline figure is a suggested timeline. This timeline is not written in stone or concrete. I would like to hear feedback concerning the timeline. Suggestions, comments, flames, criticisms, etc.

Table 1. Project Timeline

NovDecJanFebMarAprMayJunJulAugSepOct
Draw Detailed Block Diagrams Flesh out Block Diagrams with verbal descriptions Discussion of User Interface and final draft of User Interface design Discussion of Plugin Interface and final draft of Plugin Interface design TBDTBDTBDTBD
TBDTBDTBDTBD
Continue Survey of libraries and reusable source code Discussion of Help System and final draft of Help System design Discussion of library block and search for public domain material data Discussion of supported Controllers and the dialects of G-Code supported TBDTBDTBDTBD
TBDTBDTBDTBD
200020002001200120012001200120012001200120012001