To get in touch, please write to leon_starr (AT SIGN) modelint.com. I am available to consult, contract, or be employed part or full-time on a suitably exciting project.
General Modeling Mayhem
It is easy to learn the SysML / UML / BPMN notations and supporting tools quickly, but it takes experience to use all those rectangles and arrows effectively. There is no point building brilliant abstract high level models that cannot be transformed into good code. Conversely, there is no point getting down in the dirt and drawing pictures of your code. If the models don't solve application level problems, separate the essential requirements from the implementation and guide you toward a more extendable, manageable design, then there isn't much point in modeling at all. I have the modeling and communication skills necessary to demonstrate and teach the techniques necessary to build useful, powerful and codeable models for your complex applications and systems. I have seen just about every wrong approach and the consequences so I can save your project a lot of agony down the road by getting involved early on. Or, if it's too late, I can help untangle the mess and get things moving.
The difference between analysis and modeling is not always well appreciated. I learned early in my career that a steady flow of in depth analysis notes churns up the raw material to necessary to form meaningful, productive models and code. (By contrast, I've observed no end of fragile, pointless models based on half-baked whims that just waste everyone's time. And you don't want any of that!). I can't share the really good stuff as it is proprietary to my client's projects. But I have found time here and there to work on my own case studies and research which I happily share as examples of my work in the following links.
When wanted some programmers to build a GUI for my Elevator (Lift) Case Study, I distributed these two notes to define the model domain API. In response I received one built with Flash and another using Tcl/tk widgets. The fact that we didn't need to have any meetings, and I got just what I wanted attests to 1) the quality of the spec and 2) the quality of the app/UI domain separation.
GUI Spec Part One
GUI Spec Part Two
Here is a note that I wrote to define a bank selection algorithm for the elevator management domain.
Elevator bank selection algorithm note
One of my "hobbies" is the analysis of 2D draw tool problems. I've got an ever increasing library of such notes and corresponding models. Here is an example that deals with the ubiquitous text label / connector problem.
2D Draw Tool Label Note
For more examples of my notes and models, please visit the downloads tab at www.modelint.com.
Easy ways to get started
Whether your project is in the early stages of requirements analysis or nearing a vicious release phase, there is always a way to get me productively involved. At the very least, if we talk about your needs early on, it makes it easier to get going a few months down the road.
You've got a pile of UML models (Executable or otherwise) and you would like see if there are practical ways to make improvements such as:
In just five days I can study your application, meet with key team members, comb through the models in an intensive evaluation and then deliver a report that itemizes practical and specific ways to improve your analysis and model products and process. I guarantee that this will be eye-opening (in a good way).
3) Full and half day introductory training
I can present on the following topics using practical, real world examples:
Articulate UML - Expressing requirements precisely and unambiguously in UML
Concurrent UML - Expressing platform independent concurrency in UML
Translation Technology - How to execute UML models and generate code
UI / Application independence - How to isolate the application from the UI
Application and Services - Separating the application from one or more UI's
Managing Executable UML - Agile and extreme analysis and model development
7) Intensive on-site development
If you would like me involved full or part time for an extended duration I am willing to relocate depending on the project, your needs and my current workload. A significant discount on my hourly rate is available for 6-month or longer commitments.
What are my rates?
Very reasonable. Let's first figure out how I can best assist via step 1) above. I'm sure we can find something that fits your budget.
Example scenarios where I can help
Your project may exhibit one or more of these challenges. If so, I can bring immediate practical experience and techniques to bear on the problem. If not, well, these are just a few examples and I am always looking for new challenges! I ramp up quickly.Complex Interrelated Parameters
When you set the value of one parameter it may change the legal range of other parameters or invalidate whole sets. This can get really ugly in scientific and medical instrumentation. I can help you build domain, class and state models that greatly simplify parameter management. If you also need to archive parameter values for later diagnostic playback I have experience with that as well.Intricate and Tangled State Machines / Charts
State combinations have a way of multiplying out of control in interesting systems. Even if you are able to get a complicated set of asynchronous state machines to coordinate properly, it may be near impossible to extend them without adding unintended effects. The trick is not to focus on the individual state machines or hierarchies. I can help you architect an extendable layered control scheme embodying intuitive collaborations while maintaining full functionality. That's a lot of adjectives there, but, seriously, I am really good at this!Activity Driven by Overlapping and Interruptable Linear or Cyclic Time Intervals
Do you need to drive equipment at precisely timed intervals that are frequently interrupted by real world events? Example applications can range from medical pacing to frame based video effects. I have developed a number of models that simplify these situations and identify parameters to make these data driven and configurable. If you want model driven software that manages this sort of thing reliably, predictably and that can be extended easily, I am definitely a good resource to have around.Embedded and Proprietary Network Protocols
Do you have a complicated modeled or non-modeled embedded communication protocol(s) that you would like to configure, test and control better? I can help you build a very manageable set of models that distill all the configurable parameters with straightforward statecharts that are easy to test and extend. I can also distill out the common features from disparate protocols so that you can have a single driver that supports them all. I am especially familiar with this problem in avionics, automotive and medical applications.Ambiguous and Contradictory Requirements
WIth text or verbal requirements, one word usually means different things to different people. Worse yet, everyone thinks they agree on a definition, until it is tested at some critical point in development when it becomes apparent that everyone disagrees in subtle yet serious ways. Wouldn't it be nice to catch this sort of thing before the design gets locked down? Complex applications always involve a difficult convergence of subject matter expertise. Experts that are at odds with one another are often (though not always!) right, but in different domains. These domains can often be separated, modeled and then reconciled with one another to address all the critical points. That's exactly what I can do on your project!General Modeling Mayhem
It is easy to learn the SysML / UML / BPMN notations and supporting tools quickly, but it takes experience to use all those rectangles and arrows effectively. There is no point building brilliant abstract high level models that cannot be transformed into good code. Conversely, there is no point getting down in the dirt and drawing pictures of your code. If the models don't solve application level problems, separate the essential requirements from the implementation and guide you toward a more extendable, manageable design, then there isn't much point in modeling at all. I have the modeling and communication skills necessary to demonstrate and teach the techniques necessary to build useful, powerful and codeable models for your complex applications and systems. I have seen just about every wrong approach and the consequences so I can save your project a lot of agony down the road by getting involved early on. Or, if it's too late, I can help untangle the mess and get things moving.DSL / XML Language Design
UML is a great general purpose language, but you may need a domain specific language. That's fine, but how do you work out the syntactic components and rules in your custom language? You can just hack it together if you want something trivial. But if you want a solid, extendable language with a minimum of syntactic complexity, you should define a solid metamodel (language model) in UML from which to generate and constrain the language grammar. I have been breaking problem domains down into syntactic building blocks since the 80's and am an experienced metamodeler.Example analysis notes
The difference between analysis and modeling is not always well appreciated. I learned early in my career that a steady flow of in depth analysis notes churns up the raw material to necessary to form meaningful, productive models and code. (By contrast, I've observed no end of fragile, pointless models based on half-baked whims that just waste everyone's time. And you don't want any of that!). I can't share the really good stuff as it is proprietary to my client's projects. But I have found time here and there to work on my own case studies and research which I happily share as examples of my work in the following links.
When wanted some programmers to build a GUI for my Elevator (Lift) Case Study, I distributed these two notes to define the model domain API. In response I received one built with Flash and another using Tcl/tk widgets. The fact that we didn't need to have any meetings, and I got just what I wanted attests to 1) the quality of the spec and 2) the quality of the app/UI domain separation.
GUI Spec Part One
GUI Spec Part Two
Here is a note that I wrote to define a bank selection algorithm for the elevator management domain.
Elevator bank selection algorithm note
One of my "hobbies" is the analysis of 2D draw tool problems. I've got an ever increasing library of such notes and corresponding models. Here is an example that deals with the ubiquitous text label / connector problem.
2D Draw Tool Label Note
For more examples of my notes and models, please visit the downloads tab at www.modelint.com.
Easy ways to get started
Whether your project is in the early stages of requirements analysis or nearing a vicious release phase, there is always a way to get me productively involved. At the very least, if we talk about your needs early on, it makes it easier to get going a few months down the road.1) Initial chat
Why not? Tell me a bit about your project, key challenges, specific results you hope to attain. Even if I can't help, perhaps I can point you to useful resources. Just send an e-mail to me at leon_starr AT SIGN modelint.com with your contact info and we'll arrange a convenient time to talk. Best of all - it's free!2) Model review
You've got a pile of UML models (Executable or otherwise) and you would like see if there are practical ways to make improvements such as:
- More precise and useful definitions of requirements, rules and policies
- Reduced model complexity (while still supporting critical features)
- Models that are easier to evaluate, extend and maintain
- Better separation of implementation issues from essential requirements - increased portability
- Improved separation of generic utility/middle services from core application
- Increased configurability of models (ability to add features without changing/recompiling models)
- A clearer path to efficient code from the models (platform independent -> platform specific)
In just five days I can study your application, meet with key team members, comb through the models in an intensive evaluation and then deliver a report that itemizes practical and specific ways to improve your analysis and model products and process. I guarantee that this will be eye-opening (in a good way).
3) Full and half day introductory training
I can present on the following topics using practical, real world examples:Articulate UML - Expressing requirements precisely and unambiguously in UML
Concurrent UML - Expressing platform independent concurrency in UML
Translation Technology - How to execute UML models and generate code
UI / Application independence - How to isolate the application from the UI
Application and Services - Separating the application from one or more UI's
Managing Executable UML - Agile and extreme analysis and model development
4) Domain model development
Do you need some expert models developed quickly? I'm on it. In fact, it may turn out that I have existing patterns and libraries that will accelerate the process. Regardless, the focus will be on your specific application, performance and platform requirements. All of my models will be hand codeable into any language or auto-translated (if you like) into C, C++ or Java. (I also speak Objective-C, Python and Tcl).5) Ongoing expert assistance / problem solving
You purchase a block of hours and use them as necessary over a period of six months. That way, whenever you run into a difficult modeling/analysis problem and need a quick, pragmatic solution I'm only a webconference/call/email away. This is a great way to offset the risk associated with trying a new modeling approach. Your team's modeling skills will develop much faster and I can help you avoid a lot of common mistakes.6) Intensive training
I offer a full week, intensive course in Object Oriented Analysis with Executable UML. (Click the link to find out more about the course).7) Intensive on-site development
If you would like me involved full or part time for an extended duration I am willing to relocate depending on the project, your needs and my current workload. A significant discount on my hourly rate is available for 6-month or longer commitments.
What are my rates?
Very reasonable. Let's first figure out how I can best assist via step 1) above. I'm sure we can find something that fits your budget.





Comments
Write New Comment ▼
Write New Comment
Sorry! This knol's owner(s) have blocked you from editing, making suggestions, or commenting here.