netrashetty
Netra Shetty
Applied Biosystems, Inc. (formerly NASDAQ: ABIO) started as GeneCo (Genetic Systems Company), was the name of a pioneer biotechnology company founded in 1981 in Foster City, California, in the San Francisco Bay Area.[1] Through the 1980s and early 1990s it operated independently and manufactured biochemicals and automated genetic engineering and diagnostic research instruments, including the principal brand of DNA sequencing machine used by the Human Genome Project consortium centers. Applied Biosystems' close ties to the consortium project led to the idea for the founding of Celera Genomics (NYSE: CRA) in 1998 as one of several independent competitors to the consortium.[2]
In 1983 Applied Biosystems was delisted from the NASDAQ when it was acquired by the old company known then as Perkin-Elmer (formerly NYSE: PKN). As the PE Applied Biosystems Division under that parent in 1998, it became consolidated with other acquisitions as the primary PE Biosystems Division. In 1999 its parent company reorganized and changed its name to PE Corporation, and the PE Biosystems Group (formerly NYSE: PEB) again became publicly traded, as a tracking stock of its parent, along with its sister tracking stock company, Celera Genomics. In 2000 the parent became Applera Corporation. The Applied Biosystems name also returned that year, in the name change of the tracking stock from PE Biosystems Group to Applera Corporation-Applied Biosystems Group (NYSE: ABI), an S&P 500 company, which remains as a publicly-traded operating group within Applera Corp., along with its sibling operating group, Applera Corporation-Celera Group. Applera derives its name from the combination of its two component groups' names, Appl(iedCel)era.[3] In November 2008, a merger between Applied Biosystems and Invitrogen [4] was finalized "creating a global leader in biotechnology reagents and systems". The new company is called Life Technologies.
Faced with these problems, the obvious move is to create a supertype for the organization,
which leads you to Organization Hierarchy (7) in Figure 0.2. The organization
hierarchy works best when you don’t have much different behavior between the organization
sructures. It also allows you to stay very flexible if new kinds of organizations
appear. If you do have some varied behavior you can use subtypes to pull this down.
Making a supertype for the organization is a pretty obvious move, another common,
if less obvious, supertype is Party (5): a supertype between the organization and
person, leading to Figure 0.3. Often you find that there isn’t much difference between
the hierarchic association between organizations and the association between person
and organization so you can pull these associations up to the supertype (
CEO
Craig Taylor
Director
David Tiemeier
2
Director
Gary Parks
2
Director
Edward Ogunro
2
Director
Peter Davies
2
Chairman of the Board
Ellen Hoffing
Research
JD
Example: A telephone utility’s customers may be individuals or businesses. Many aspects of
dealing with customers are the same, in which case they are treated as parties. Where they
differ they are treated through their subtype.
Take a look through your address book, what do you see? If its anything like mine you
will see a lot of addresses, telephone numbers, the odd email address… all linked to
something. Often that something is a person, however the odd company shows up. I
call ‘Oak Grove Taxi’ frequently, but there’s no person I want to speak to — I just
want to call a cab.
If I were to model an address book, I might choose to have people and companies,
each of which have postal addresses and telephone numbers, but the resulting duplication
is painful to the eye. So I need a supertype of person and company. This class is
a classic case of an unnamed concept — one that everybody knows and uses but
nobody has a name for. I have seen it on countless data models on various names: person/
org, player, legal entity….
The term I prefer is party, and I’ve been glad to see that over the last few years it’s
turned into a fairly standard name.
Party
Person Organization
6
Making it work
I usually define party as the supertype of person and organization. This allows me to
have addresses and phone numbers for departments within companies, or even informal
teams.
Put any behaviror that is common to people and organizational units on Party, only
put things particular to one or the other on the subtype. When you put behavior on
the subtype, think about whether it makes sense on the supertype, often you may be
surprised how well things fit on the supertype
When to use it
The obvious case to use Party (5) is when you have people and organizations in
your model and you see common behavior. However you should also consider this
pattern when you don’t need to distinguish between people and organizations. In this
case it’s useful just to define a party class and not to provide the subtypes.
If you see parties playing different roles in a business, you’ll often see one of the role
patterns in play. Coad in particular is a big fan of Role Object (116). It’s a common pattern
with party, but isn’t one to turn to blindly, but take a look at Role Object (116) for
more discussion of that issue.
The main point of this pattern is to look for it to see if you have common behavior,
and if so to use the name Party for that supertype. The name has become quite widely
used these days, so choosing that name helps in communication.
Making it work
Hierarchies are a common structure in organizations. This is because they reflect a
natural and common technique for human beings to deal with complexity. Modeling a
hierarchy is thus a common thing to do, yet it is both easy and complicated.
Organization
parent
children
✻
1 {hierarchy}
Associated Coffee
Makers: Organization
sales : Organization purchasing :
Organization
Boston sales :
Organization
London sales :
Organization
8
It’s easy because you can show it with a recursive association, my old data model
teachers called it a “pigs ear”. However the recursive association does not tell the
whole story. In most cases there is one parent, but how about for the one at the top?
Hierarchies also have rules, such as the fact that you can’t have cycles (your grandparent
cannot be your grandchild). There is no standard notation for dealing with this in
the UML. I use a constraint {hierarchy} on the association to suggest what is going
on.
Even the {heirarchy} constraint, however, is strictly imprecise. It doesn’t tell you
the difference between a tree (one top) and a forest (multiple tops). If this is important
to you model you should say what it is, most of the time I find it isn’t that vital.
In the sketch I use the terms parent and children. Naming these association roles
can be tricky. Parent works well with most companies, but child isn’t as good as subsidiaries.
However I’ve come to the view that children is the best name. The use of
parent and child is a very useful metaphor when discussing hierarchies, or indeed any
other kind of directed graph structure. I can use such phrases as “sales in London is a
cousin of purchasing in Java” and, although it sounds wacky, you can easily figure out
what I mean. The metaphor gives us a useful vocabulary which is worth the fact that it
often sounds a little odd.
When to use it
You need to use this pattern when you have a hierarchic corporate structure that
affects the software you are using.
• hierarchic: because the pattern handles a hierarchy not anything more complex.
If your needs are more complicated you can tweak the pattern (there are some
suggestions below) or use Accountability (17) instead.
• affects the software: because you only need to capture the corporate organization
if it really affects what you are doing. It’s important to ask yourself what would
happen if you didn’t capture the hierarchy. If the consequences are not painful
then it’s not worth carrying the cost of the links (and above all the costs of maintaining
the links). Remember that it’s easy to add this pattern in later to an
exisiting list of organizations or parties.
GOF fans will note that this pattern is an application of the GOF composite pattern,
although a somewhat degenerate one as the composite and leaf classes aren’t
pulled out. Certainly you should consider using composite when you implement it,
and bear in mind that it’s quite common not to have distinguishing behavior between
composites and leaves in this use.
You don’t need to limit yourself to a single hierarchic association. If an organization
has different structures for regional vs functional management, you can use a pair
9
of hierarchies as in Figure 0.6 This allows sales in the London office to have sales as
its functional parent and the London office as its regional parent. Of course as you get
more hierarchies this will get messy, and this is the point where you’ll want to use
Accountability
In 1983 Applied Biosystems was delisted from the NASDAQ when it was acquired by the old company known then as Perkin-Elmer (formerly NYSE: PKN). As the PE Applied Biosystems Division under that parent in 1998, it became consolidated with other acquisitions as the primary PE Biosystems Division. In 1999 its parent company reorganized and changed its name to PE Corporation, and the PE Biosystems Group (formerly NYSE: PEB) again became publicly traded, as a tracking stock of its parent, along with its sister tracking stock company, Celera Genomics. In 2000 the parent became Applera Corporation. The Applied Biosystems name also returned that year, in the name change of the tracking stock from PE Biosystems Group to Applera Corporation-Applied Biosystems Group (NYSE: ABI), an S&P 500 company, which remains as a publicly-traded operating group within Applera Corp., along with its sibling operating group, Applera Corporation-Celera Group. Applera derives its name from the combination of its two component groups' names, Appl(iedCel)era.[3] In November 2008, a merger between Applied Biosystems and Invitrogen [4] was finalized "creating a global leader in biotechnology reagents and systems". The new company is called Life Technologies.
Faced with these problems, the obvious move is to create a supertype for the organization,
which leads you to Organization Hierarchy (7) in Figure 0.2. The organization
hierarchy works best when you don’t have much different behavior between the organization
sructures. It also allows you to stay very flexible if new kinds of organizations
appear. If you do have some varied behavior you can use subtypes to pull this down.
Making a supertype for the organization is a pretty obvious move, another common,
if less obvious, supertype is Party (5): a supertype between the organization and
person, leading to Figure 0.3. Often you find that there isn’t much difference between
the hierarchic association between organizations and the association between person
and organization so you can pull these associations up to the supertype (
CEO
Craig Taylor
Director
David Tiemeier
2
Director
Gary Parks
2
Director
Edward Ogunro
2
Director
Peter Davies
2
Chairman of the Board
Ellen Hoffing
Research
JD
Example: A telephone utility’s customers may be individuals or businesses. Many aspects of
dealing with customers are the same, in which case they are treated as parties. Where they
differ they are treated through their subtype.
Take a look through your address book, what do you see? If its anything like mine you
will see a lot of addresses, telephone numbers, the odd email address… all linked to
something. Often that something is a person, however the odd company shows up. I
call ‘Oak Grove Taxi’ frequently, but there’s no person I want to speak to — I just
want to call a cab.
If I were to model an address book, I might choose to have people and companies,
each of which have postal addresses and telephone numbers, but the resulting duplication
is painful to the eye. So I need a supertype of person and company. This class is
a classic case of an unnamed concept — one that everybody knows and uses but
nobody has a name for. I have seen it on countless data models on various names: person/
org, player, legal entity….
The term I prefer is party, and I’ve been glad to see that over the last few years it’s
turned into a fairly standard name.
Party
Person Organization
6
Making it work
I usually define party as the supertype of person and organization. This allows me to
have addresses and phone numbers for departments within companies, or even informal
teams.
Put any behaviror that is common to people and organizational units on Party, only
put things particular to one or the other on the subtype. When you put behavior on
the subtype, think about whether it makes sense on the supertype, often you may be
surprised how well things fit on the supertype
When to use it
The obvious case to use Party (5) is when you have people and organizations in
your model and you see common behavior. However you should also consider this
pattern when you don’t need to distinguish between people and organizations. In this
case it’s useful just to define a party class and not to provide the subtypes.
If you see parties playing different roles in a business, you’ll often see one of the role
patterns in play. Coad in particular is a big fan of Role Object (116). It’s a common pattern
with party, but isn’t one to turn to blindly, but take a look at Role Object (116) for
more discussion of that issue.
The main point of this pattern is to look for it to see if you have common behavior,
and if so to use the name Party for that supertype. The name has become quite widely
used these days, so choosing that name helps in communication.
Making it work
Hierarchies are a common structure in organizations. This is because they reflect a
natural and common technique for human beings to deal with complexity. Modeling a
hierarchy is thus a common thing to do, yet it is both easy and complicated.
Organization
parent
children
✻
1 {hierarchy}
Associated Coffee
Makers: Organization
sales : Organization purchasing :
Organization
Boston sales :
Organization
London sales :
Organization
8
It’s easy because you can show it with a recursive association, my old data model
teachers called it a “pigs ear”. However the recursive association does not tell the
whole story. In most cases there is one parent, but how about for the one at the top?
Hierarchies also have rules, such as the fact that you can’t have cycles (your grandparent
cannot be your grandchild). There is no standard notation for dealing with this in
the UML. I use a constraint {hierarchy} on the association to suggest what is going
on.
Even the {heirarchy} constraint, however, is strictly imprecise. It doesn’t tell you
the difference between a tree (one top) and a forest (multiple tops). If this is important
to you model you should say what it is, most of the time I find it isn’t that vital.
In the sketch I use the terms parent and children. Naming these association roles
can be tricky. Parent works well with most companies, but child isn’t as good as subsidiaries.
However I’ve come to the view that children is the best name. The use of
parent and child is a very useful metaphor when discussing hierarchies, or indeed any
other kind of directed graph structure. I can use such phrases as “sales in London is a
cousin of purchasing in Java” and, although it sounds wacky, you can easily figure out
what I mean. The metaphor gives us a useful vocabulary which is worth the fact that it
often sounds a little odd.
When to use it
You need to use this pattern when you have a hierarchic corporate structure that
affects the software you are using.
• hierarchic: because the pattern handles a hierarchy not anything more complex.
If your needs are more complicated you can tweak the pattern (there are some
suggestions below) or use Accountability (17) instead.
• affects the software: because you only need to capture the corporate organization
if it really affects what you are doing. It’s important to ask yourself what would
happen if you didn’t capture the hierarchy. If the consequences are not painful
then it’s not worth carrying the cost of the links (and above all the costs of maintaining
the links). Remember that it’s easy to add this pattern in later to an
exisiting list of organizations or parties.
GOF fans will note that this pattern is an application of the GOF composite pattern,
although a somewhat degenerate one as the composite and leaf classes aren’t
pulled out. Certainly you should consider using composite when you implement it,
and bear in mind that it’s quite common not to have distinguishing behavior between
composites and leaves in this use.
You don’t need to limit yourself to a single hierarchic association. If an organization
has different structures for regional vs functional management, you can use a pair
9
of hierarchies as in Figure 0.6 This allows sales in the London office to have sales as
its functional parent and the London office as its regional parent. Of course as you get
more hierarchies this will get messy, and this is the point where you’ll want to use
Accountability
Last edited: