The State Machine Compiler
Classes will often bear various states. Examples include a user who may be “logged in” or “logged out,” a bill that is “open” or “paid,” or potentially a more complex situation where an object obeys a set of complex rules that determines which of a number of possible states that object is in. The Gang of Four gave us the State Pattern, a fairly straight-forward mechanism for developers to model and implement the behaviour of stateful objects. The State Pattern is only the beginning of the story. Robert Martin developed the State Machine Compiler and has taken the job of developing and maintaining stateful systems to a new level. Today, SMC is a well-maintained open source project hosted on sourceforge.net. Come learn about SMC, a fundamental tool for implementing stateful classes and systems that every software developer should have in his toolchest.
Session Goals:
Developers today are faced with increasing pressure to deliver robust software with increasing levels of sophistication and features. The goal of this session is to introduce a software consruction tool that cleanly separates the concern of managing object state transitions from the rest of a software system. The end result is an application that takes less time to code, is easier to maintain, and that can dramatically reduce the complexity (and consequently the increases the quality) of the implementation.
Prerequisites:
Basic understanding of the Java programming language and of object-oriented programming and design. Familiarity with “Gang Of Four” Design Patterns.
Session Rating:
Intermediate
Category:
Architecture/Languages
About Eitan Suez
Eitan Suez is an independent software developer based in Austin, Texas. Some of the more visible work Eitan has done includes the open source project 'ashkelon' (sourceforge), a system for Java API documentation management; more recently, the open source framework JMatter (jmatter.org), a framework for constructing rich domain-driven workgroup applications (Java, Swing). Eitan has spoken at various NFJS events in years past, is active with his local JUG, and passionate about the practice of software development.
More About Eitan »