In Graphene, public key cryptography uses the same elliptic curve as Bitcoin, i. e. secp256k1. It even uses the same implementation.
A public key is just a point on the curve. This can be represented as two 256-bit numbers, or due to curve symmetry as a single 256-bit number plus a flag. In order to distinguish the formats, the key is prefixed with '04' byte in the first case (called "uncompressed format"), and, depending on the flag value, with a '02' or '03' byte in the second case (called "compressed format").
To construct a Graphene address from a public key, these steps need to be applied:
1. You need the 33 bytes making up the compressed representation of the public key CPK.
2. Compute the hash H1 = SHA512(CPK).
3. Compute the hash H2 = RIPEMD160(H1).
4. Compute the hash H3 = RIPEMD160(H2).
5. Take the last 4 bytes from the hash value H3 as checksum CS.
6. Append CS to H2.
7. Transform the result into base58 format.
8. Prepend the network address prefix, i.e. "BTS" for BitShares.
In BitShares, like in Bitcoin, addresses are used to indicate required authorization for performing operations on certain objects. The similarity ends at this abstract level, though.
Update: in step 2 it's SHA-512 not SHA-256!