No matter what it is that a piece of software actually does, or who it is intended for, there are usually the same basic building blocks that go into its...