Robert V. Binder

Posts Tagged ‘software engineering’

Can UML Model Quality be Quantified?

A LinkedIn forum question resonated with a question that has long interested me.

“The UML comprises 13 diagram types, the SysML comprises 9 diagram types. Each of these offers a different view of a planned system and helps to create a common understanding. But how many diagrams are necessary, and how many…

Read More

Another Day, Another $440 Million

We don’t need a miracle cure for rogue algorithms. More regulation will not prevent them. Proven software engineering and testing will.

Read More

Technical Equity or Technical Debt: Stay Fit or Get Flabby

April 20, 2012  |  Blog, Process, Software Products, Technology  |  No Comments
T Rex chasing person

Technical debt refers to aspects of a codebase are incomplete, deficient, obsolete, or buggy. This can occur for many reasons: insufficient time, uncertainty, omissions, poor workmanship, or poor management. This is termed “debt” because it will take additional time and money to correct, update, or revise.
Technical equity refers to aspects of a…

Read More

Technical Equity

March 27, 2012  |  Blog, Business, Process, Software Products  |  No Comments

Technical Equity is the value that accrues when a software system is well-formed.  Instead of burdening you with unnecessary excess cost, your codebase works for you. Technical equity pays dividends: you avoid wasted effort and the consequences of buggy releases, and gain the advantage of releasing sooner and/or with more features,…

Read More

Testability Part 4: White Box Strategies

March 8, 2012  |  Blog, Software Testing, Testability  |  No Comments

This post covers part four of my 2010 talk on testability. White box testability refers to specific programming practices and components that can improve or hinder testability.
Since Dykstra’s 1968 note “Go To Considered Harmful,” practices for producing clean, well-structured, readable, and maintainable software have been the subject of extensive discussion,…

Read More

Real Users of Model-based Testing

I think’ve finally found a good visual metaphor for model-based testing. In Aliens, Ellen Ripley uses the power lifter suit to battle the Alien Queen. Model-based testing is like the power lifter suit. It has to be driven with intelligence and skill, but it’s your only hope against the super bugs that…

Read More

Supporting Software Inspections and Reviews

December 3, 2011  |  Blog, Process, Software Products  |  6 Comments
Machinist's Gauges

In every software project where I’ve used some form of review process (formal inspections, walkthroughs, or reviews — for this post I refer to all as “reviews”), the gain has always justified the pain. Invariably, some developers really dislike this process, leading to tantrums reminiscent of Orange Country Choppers.
But I’ve regretted every time…

Read More

If It Moves, Test It

The FDA has just published a new draft of guidance about mobile technology in FDA-regulated systems. This guidance is open for comment and isn’t binding yet.
So, what does this mean for testing FDA-regulated products with mobile technology?
The draft guidance defines when mobile platforms are considered as part of a regulated system or not. The criteria for inclusion…

Read More

Steve Jobs’ Product Design Philosophy and Systems Engineering

October 7, 2011  |  Blog, Business, Software Products  |  No Comments

Steve Jobs’ genius was in conceptualizing unique interfaces and packaging that resonated very deeply for large numbers of customers, and in the second half of his career, combining this with a business and operational model that generated huge returns to shareholders and delighted 100s of millions.
During his interlude with NeXT,…

Read More

Software Testability, Part 3: Accidental Untestability

This post covers part three of my 2010 talk on testability.
Aren’t the dancing hamsters a stitch?
Not so funny if you have to test code whose stability or controllability makes you feel like you’re wearing the hula-hoop.
To reveal a bug, a test must:

Reach the buggy code
Trigger the bug
Propagate the incorrect result to an observable interface
Incorrect…

Read More