Documentation / v1.0 / Introduction
From emss Framework - iRobot Create C++ Framework
You are here: Documentation / v1.0 / Introduction
[edit] Introduction
The software related problems of emss can be categorized into three components: communicating with hardware, solving the problems of objectives, and presenting the state of the software to the user. While these categories can be logically stacked on-top of each other, starting with hardware communication, the implementation process of our software fashioned a mix of all three, gradually improving on each category.
In software engineering, the traditional school of thought practices a one-way, three-tier, model consisting of a data tier, application tier, and presentation tier. While we adhere to these software principals, we have deliberately chosen not to religiously follow them. In the field of robotics it is much more profitable to focus on the componentization of different modules which naturally serve different tasks. This was aware to us from the start of the project, and in turn we largely profited from creating a framework of “hot-swappable” components.
Furthermore, it is worthwhile noting that the current software framework described here has undergone an evolutionary process. Before the start of the implementation process, the design phase provided us with an original structure based on our requirements. As requirements changed due to the research nature of the project, and certain parts of the structure proved no longer suitable, we scratched those design choices and made new ones. Changing our original software structure has cost us many long nights, but ultimately improved the overall design. All said and done, we would like to acknowledge that despite our enthusiasm to create a sound software design and structure, there are without doubt areas for improvement. The heavy mix of theory and implementation has made us jump through some high hoops.