Home > technical > Functional Allocation I

Functional Allocation I

Some system engineering process descriptions talk about “Functional Allocation” as being one of the activities that is performed during product development. So, what is “Functional Allocation”? Is it the allocation of a set of interrelated functions to a set of “something else”? Is it the allocation of a set of “something else” to a set of function(s)? Is it both? Is it done once, or is it done multiple times, progressing down a ladder of decreasing abstraction until the final allocation iteration is from something abstract to something concrete and physically measurable?

I hate the word “allocation”. I prefer the word “design” because that’s what the activity really is. Given a specific set of items at one level of abstraction, the “allocator” must create a new set of items at the next lower level of abstraction. That seems like design to me, doesn’t it? Depending on the nature and complexity of the product under development, conjuring up the next lower level set of items may be very difficult. The “allocator” has an infinite set of items to consciously choose from and purposefully interconnect. “Allocation” implies a bland, mechanistic, and deterministic procedure of apportioning one set of given items to another different set of given items. However, in real life only one set of items is “given” and the other set must be concocted out of nowhere.

The figure below shows four different types of functional allocations: shalls-to-functions, features-to-functions, functions-to-modules, and functions-to-subsystems. Each allocation example has a set of functions involved. In the first two examples, the set of functions have been allocated “to”, and in the last two examples, the set of functions have been allocated “from”.

Allocation Examples

So, again I ask, what is functional allocation? To managers who love to remove people from the loop and automate every activity they possibly can to reduce costs, can human beings ever be removed from the process of functional allocation? If you said no, then what can you do to help make the process of allocation more efficient?

  1. July 19, 2009 at 4:52 pm | #1

    I think the idea (and term) allocation are just dandy. The problem is that the typical understanding of the term is that the item being allocated (requirement or function) is being “handed off” so that the requirement or function is now owned by the allocatee. This thinking is erroneous. The word allocate when applied to requirements or functions should be read as “(at least partially) responsible for the successful delivery of the requirement/function”. Per your example, if ‘Shall #3′ is allocated to ‘set of functions’, it would mean that ‘set of functions’ is responsible to help deliver ‘Shall #3′. This is essentially an architectural design decision: the architecture contains at least the ‘set of functions’, maybe a couple of ‘sets of functions’ and ‘Shall #3′ has been assigned to this one. I have a short cover of this idea for requirements at: http://sesnetec.info/drupal/node/59

    - Bruce

    • bulldozer00
      July 19, 2009 at 7:17 pm | #2

      Thanks for your feedback Bruce. In your reply, you mentioned the phrase “design decision”. I agree; allocation is design. Every level of arrangement of functions, subsystems, modules can be considered an architecture, or equivalently, a deliberately structured set of entities interconnected for a higher level purpose.

      I checked out your link. Nice article, thanks.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 381 other followers

%d bloggers like this: