Master of Science in Computer Science
First Committee Member
Jan Pedersen, Chair
Second Committee Member
Third Committee Member
Graduate Faculty Representative
Number of Pages
With networks, multiprocessors, and multi-threaded systems becoming more common in our world it is increasingly evident that concurrent programming is not something to be ignored or marginalized even though many takes on concurrency (mainly by means of monitors or shared resources) have proven to be difficult to deal with on large scales. Thankfully, a good deal of work has already been done to combat this, through CSP, occam, and other such derivatives, to produce a scalable process oriented paradigm. Still, it is cumbersome to attempt to deal with the intricacies of such communicating networks down to every minutia; if, instead, it was possible to manage communicating elements on a higher level it would be far more practical to design large scale networks of processes!
As such, Visual Occam has been designed to automate some of the inner workings of occam to allow any user (novice or otherwise) the ability to create complex networks of communicating processes through easy to understand user interactions and interfaces. Taking a number of cues from digital circuit design software and modern integrated development environments, it is possible to select components (both predefined and arbitrarily complex user created systems) from a library of objects, hook them together in a network, and produce compilable code without having to worry about how or why the chosen components perform their function. Since any of these components may themselves be networks of processes, it becomes trivial to construct large systems that would otherwise be unwieldy to put together by hand.
The end result? A high level, easy to understand, visual abstraction of those concurrent networks previously so frustrating to develop.
Communicating sequential processes (CSP); Human user interface design; Occam (Computer program language); Process oriented design; Software engineering; User interfaces (Computer systems); Visual programming (Computer science)
Computer Sciences | Graphics and Human Computer Interfaces | OS and Networks | Programming Languages and Compilers | Software Engineering
Slomka, Mikolaj M., "Visual Occam: High level visualization and design of process networks" (2010). UNLV Theses, Dissertations, Professional Papers, and Capstones. 875.