A case study from Exposing the Magic of Design: A Practitioner’s Guide to the Methods and Theory of Synthesis Using concept maps in product development Preparing to redesign java.sun.com

Hugh Dubberly — Dubberly Design Offi ce — [email protected]

Dubberly Design Offi ce consults on development of The Benefi ts of Concept Mapping software and services. We follow a user-centered process that often involves mapping. We use concept Deepening Understanding We developed a concept maps to represent factors that infl uence the product map of Java as a way to understand Java. The map development process. We regularly map user goal helped us prepare to redesign and re-launch Sun’s main structures and user interactions; business models and web site for Java developers, java.sun.com. Concept resource fl ows; and hardware and software mapping was one of many tools that we used in the infrastructure and information fl ows. Increasingly, we design process, including auditing the existing site, are called on to map data models and content domains. reviewing site traffi c logs, and interviewing Java Many of today’s new software applications and developers. This case study focuses on the Java concept online services integrate content more deeply than map and does not describe the other tools or the larger earlier desktop productivity applications. As Nicholas site redesign effort. Negroponte predicted, content, computing, and The main question that we faced was this: How communications have converged. should we organize java.sun.com? What should the A concept map is a collection of terms related to information architecture be? Answering these questions a main idea. Links between terms form a structure— was not trivial, since the site contained more than something like an outline, but with some branches 110,000 pages. It couldn’t be reorganized by simply connected. Labeling a link with a verb creates a noun- reading a few pages and moving them around. What we verb-noun chain that can be read as a sentence. needed was a deep understanding of Java—what it is, Thus, concept maps present a series of propositions how it’s used, how it changes, and why it matters. related to each other and a main idea. Mapping a The trouble was: We knew little about Java except content domain—creating a concept map—is an that it was a programming language that runs in many effective way to understand a domain. environments. We developed the Java concept map so Sharing a concept map with project stakeholders is that we could learn what we needed to know. The an effective way to identify errors in understanding and knowledge we gained making the map enabled us to reach consensus on content defi nition, structure, and propose revisions to the site’s information architecture boundaries. Mapping a content domain is a good way with confi dence—and helped us backup our proposal to prepare for designing or redesigning a content rich with reasoning built on a fi rm foundation—reasoning web site, application, or service. built on a defi nition of the content domain (i.e., the Java concept map) already accepted by the client and his many internal constituents.

1 Using concept maps in product development Building Trust Like any large corporate project, the Other Uses While the main goal of the concept map redesign of java.sun.com encountered political issues. was to help the design team understand Java so that First, it was a visible project in a decentralized company. we could reorganize java.sun.com, it soon became clear That meant the project had a lot of vocal stakeholders. that the map might have wider uses. Our working In addition, java.sun.com was managed by Sun’s version of the map looked like a sketch, which refl ected Developer Relations Group, which had recently been the constant changes we were making. (It was messy.) formed by consolidating several previously separate The sketch form invites comments—where a more departments. Not everyone was happy about the new polished form may inhibit comments. organization. When we reached consensus on the content, As we began to meet internal stakeholders, we formalized the map’s appearance. Eventually, we encountered considerable skepticism about the site the map went through two printings and was redesign project and our ability to execute it. distributed to more than 25,000 Java developers. Developing the concept map became a way to engage We also created an interactive map, which is still known stakeholders, discover new ones, and build trust. available online at http://www.dubberly.com/concept- We interviewed a series of Sun employees involved maps/java-technology.html. with both Java and java.sun.com. We began with a small group, who in turn suggested others. Eventually the number of employee interviews exceeded 50. We The Process of Concept Mapping also asked the stakeholders to review the concept map as we developed it. At the beginning of the java.sun.com redesign project, At a project meeting a few weeks into the process, we asked to see Sun’s models of Java. We were unable one of the key stakeholders reviewed the map and said, to locate detailed models, but we did fi nd slides from “Not bad. It looks like you’re ready to meet the Java marketing presentations—”marketectures”, versions of Distinguished Engineers.” Before that, no one had technical architectures simplifi ed by marketing people. mentioned these high priests of Java; they turned out to One of these marketectures depicted Java as the be a powerful constituency. The map helped us fi nd Parthenon; three steps supported a few columns them and gave us entree—both permission to meet and capped by an architrave and a pediment. This model something to discuss. Those meetings went well; the included less than a dozen elements. It became our Distinguished Engineers were intrigued by the map. starting point. (It’s not often someone turns up with a map of your baby.) We also entered the discussions with more Set Goals Setting goals is the key to managing. Rick credibility than we had at the start of the project, since Robinson points out that all research should begin with we had clearly done a lot of homework to get the map a clear goal, what he calls a “hunt statement”. Likewise, to where it was. The organization did us a favor by mapping should begin with a clear goal. A simple way revealing the Distinguished Engineers only when we to clarify a map’s goal is to write a “working title.” were prepared to meet them. We set six goals for the Java concept map: The most important benefi t of the map, though, 1 Develop an understanding of Java shared among the was that we were able to discuss the structure of Java java.sun.com redesign project’s stakeholders. with the Distinguished Engineers (and other 2 Inform both the logical organization of java.sun.com stakeholders) on its own terms, apart from its and its integration with other sites. instantiation in the web site. In other words, we were 3 Develop a framework by which changes to Java able to discuss the structure of Java and ensure that we can be understood. understood it, rather than discuss a menu system or 4 Open a dialog with senior Java stakeholders. page layout, which might have confl ated issues—the 5 Provide an overview of Java to people familiar with structure of Java, the site information architecture, and computing but unfamiliar with Java. the appearance of the navigation interface. 6 Develop a map that an average Java programmer By separating content from expression— would consider accurate. by mapping—we were able to establish relationships and build credibility and trust, before proposing changes to the client’s baby, the Java web site.

2 Using concept maps in product development Identify Terms The fi rst step in developing a concept Triage is a similar strategy. Which terms are critical? map is to identify terms that could be included. In this Which terms can we deal with later? And which terms phase, the goal is to quickly explore the domain. Write are not relevant? down whatever you fi nd or think of. Editing comes later. Our fi rst list of terms came from the team’s own Defi ne Terms We defi ned each fi rst-, second-, and experience, from glossaries of Java terms, and from the third-level term, adding defi nitions to the spreadsheet. indices of books on Java. The list of defi nitions served as a foundation for later We kept our list of terms in a spreadsheet. We work. In discussions with reviewers, the defi nitions printed each term on a label and affi xed the label to a allowed the team to focus on individual words, without colored “sticky”, so that it could be moved and grouped referring to the map. The list of defi nitions was later. We then placed the stickies on a 4-by-8-foot particularly useful in conversations with reviewers who foam-core board, so that we could move the whole didn’t understand that map, especially when they group around the offi ce easily. reviewed early versions.

Our initial list included roughly 400 terms. 205 defi nitions were collected from 8 sources.

Prioritize Terms We prioritized the terms, Organize Terms We organized the fi rst-, second-, creating more manageable clusters: and third-priority lists into a single outline. – 11 fi rst priority We experimented with several variations. For the – 45 second most part, category titles in the outline were fi rst- – 157 third priority terms. – 136 fourth – 51 fi fth

Figure 1 Early grouping of Post-it notes.

3 Using concept maps in product development Test Armatures When the number of terms in a Add Terms We added second- and third-priority terms. concept map exceeds 9 or 10, introducing levels or New terms suggested changes to the armature. hierarchy may make reading easier. Large concepts maps (more than 50 terms) are almost impenetrable Review and Revise Once we had an armature fl eshed without attention to both semantic and visual hierarchy. out with secondary terms, we reviewed the map with We like to organize large concepts maps around an the client and a small group of Java experts. They “armature”, a primary sentence or two. A good place to suggested additional reviewers. From this early stage, start is with a horizontal sentence placing the main reviews were ongoing. We continued to interview concept in a context; then add a vertical sentence stakeholders while we developed the concept map, defi ning the concept. Other terms link off the armature. asking them to review and comment on the current An armature should include the terms most version. fundamental to the concept being mapped. These Reviews took place in one-on-one interviews, on the fundamental terms and relationships serve as the phone, or via email. We sent drafts of the map to groups backbone for the rest of the map, providing structure within Sun. We also posted large, printed copies in and hierarchy. The armature is often a starting point high-traffi c areas at Sun; reviewers wrote directly on for readers. the map or attached yellow stickies. We experimented with several armatures. The client Marked-up maps were returned to us. and the design team chose the armature with the most Several people reviewed the map multiple times. meaningful relationships and the one that provided space (both physically and logically) for the rest of 36 people reviewed the map in one-on-one interviews. 10 people provided feedback via posted maps. the terms.

Figure 2 Armature study.

Developersuse Java to make Software for People

such as is a

Development Desktop Server Embedded Tools Applications Applications Applications

Tool

comprising

Programming Security Class Library JVM Language Model

4 Using concept maps in product development Figure 3 Armature with next level of elements added.

Figure 4 Early composite.

LVDGGHGWR

$0RGHORI-DYDŒ7HFKQRORJ\

6XQ0LFURV\VWHPV,QF -DYD GUDIWYHUVLRQ GUDIW DQHZ-DYD DUHIHUHQFH YLUWXDO REMHFWRULHQWHG VHFXULW\ JDUEDJH H[SOLFLW :RUOGZLGH GLVFXVVLRQ LQVWDQW SHHUWRSHHU EX\LQJ 6SHFLILFDWLRQ PD\EHFRPH PD\EHFRPH LVLQVWDQWLDWHGLQ KRVWV HPDLO ILOHWUDQVIHU ZHEVHUYLFHV SOD\LQJ FRPPXQLFDWLQJ FROODERUDWLQJ ZRUNLQJ 1RYHPEHU VSHFLILFDWLRQ 6SHFLILFDWLRQ YHUVLRQ PDFKLQHV SURJUDPPLQJ PRGHO FROOHFWLRQ HUURUKDQGOLQJ :HE IRUXPV PHVVDJLQJ VHUYLFHV DQGVHOOLQJ 5HTXHVW -65 3OHDVHUHYLHZIRUVWUXFWXUHDFFXUDF\RIFRQWHQWDQGFRPSOHWHQHVV $FRS\HGLWDQGWUDGHPDUNUHYLHZZLOOIROORZODWHU 0RUHYLVXDOGLVWLQFWLRQWRH[SUHVVKLHUDUFK\RILGHDV JUDSKLFGHVLJQ UHVXOWVLQ LVUHSUHVHQWHGRQ RUW\SRJUDSKLFGHVLJQ LVDOVRVWLOOWRFRPH GUDIW

-DYD H[SHUW ([HFXWLYH IHDWXUHV ,QWURGXFWLRQ RUJDQL]H &RPPXQLW\ RYHUVHHV DUHUHSUHVHQWHGRQ SDUWQHUV ZRUNVZLWK 6XQ VXFKDV VHUYLFHV VXFKDV DFWLYLWLHV VXFKDV JURXSV &RPPLWWHH EHQHILWV 3URFHVV -&3 HQKDQFH 7KLVGLDJUDPLVDPRGHORI-DYDŒWHFKQRORJ\7KHGLDJUDPGHILQHV -DYDWHFKQRORJ\E\PDSSLQJLWWRUHODWHGFRQFHSWVDQGH[DPSOHV LQFOXGLQJ ,WVHHNVWRSURYLGHDQRYHUYLHZRIWKHPDMRUIDFHWVRI-DYDWRVKRZ ,%0 KRZ-DYDILWVLQWRWKHZRUOGRIGHYHORSHUVDQGWRH[SODLQKRZ-DYD LQFOXGH 0RWRUROD WLHVLQWRWKHZRUOGRIFRPSXWHUVDQGQHWZRUNV 1RNLD 2UDFOH 7KHGLDJUDPLVPHDQWIRUDQDXGLHQFHIDPLOLDUZLWKFRPSXWLQJDQG VXSSRUWHGWKH LVGLVWLQJXLVKHGE\ VRIWZDUHGHYHORSPHQWEXWSHUKDSVQRWFRPSOHWHO\IDPLOLDUZLWK-DYD VHUYHRQ SDUWLFLSDWHLQWKH HOHFW GHYHORSPHQWRI ,WVHHNVWRSURYLGHDQLQWURGXFWLRQIRUQRQHQJLQHHUVZKRPLJKWEH FRPPXQLW\ LHV HQJDJHGLQGHYHORSPHQWDFWLYLWLHVDQGWRSURYLGHDFRPSUHKHQVLYH DUH RYHUYLHZIRUHQJLQHHUVZKRPD\EHQHZWR-DYDRUIDPLOLDURQO\ZLWK SDUWVSDUWVRI-DYDEXWQRWHQWLUHO\FOHDURQKRZWKH\DOOUHODWH HQDEOHV VXSSRUWV VXSSRUWV HQJDJHLQ

7KHGLDJUDPLVQRWLQWHQGHGIRUDKLJKO\WHFKQLFDODXGLHQFHQRULVLW IRUP LVWKHIRFXVRIRQH IRUVRPHRQHFRPSOHWHO\QHZWRWKHZRUOGRIVRIWZDUHGHYHORSPHQW

&RQFHSW0DSV FRPPHQWRQ OHDUQDQGXVH WRZULWH WKDWPDNHV XVHIXOIRU 'HYHORSHUV -DYD VRIWZDUH WKH1HW SHRSOH 7KHGLDJUDPWDNHVWKHIRUPRIDFRQFHSWPDS&RQFHSWPDSVDUH ZHEVRIOLQNHGWHUPVWKDWKHOSXVYLVXDOL]HRXUPHQWDOPRGHOVDQG FODULI\RXUWKLQNLQJ,QFRQFHSWPDSVYHUEVFRQQHFWQRXQVWRIRUP SURSRVLWLRQV([DPSOHVDQGGHWDLOVDOVRDFFRPSDQ\WKHWHUPV0RUH LV LPSRUWDQWWHUPVUHFHLYHW\SRJUDSKLFHPSKDVLVOHVVLPSRUWDQWRQHV LVLPSOHPHQWHGDVDVHWRI DQGH[DPSOHVDUHJUD\HGEDFNDQGSXVKHGWRWKHSHULSKHU\

IRUH[DPSOH UXQVRQ FRQQHFWV

RZQ

XVHDQ

,QWHJUDWHG DUHXVHGWRZULWH VXSSRUWHGE\ VHYHUDO DSURJUDPPLQJ UXQRQ 'HYHORSPHQW ZLWKDV\QWD[ DQHQYLURQPHQW YLUWXDOPDFKLQHV FRPSXWLQJ NLWVRISDUWV ODQJXDJH (QYLURQPHQW DQGNH\ZRUGV 90V GHYLFHV ,'( IRUH[DPSOH IRUDVVHPEOLQJ IRUZULWLQJ IRUUXQQLQJ ZLWKURRWVLQ FRQVLVWRI LQFOXGH & 2EMHFWLYH& 6PDOO7DON HQIRUFHVD DIIHFWWKHRSHUDWLRQRI /,63

FRQWUROVDFFHVVWR FULWLFDO VHFXULW\PRGHO UHVRXUFHV VXFKDV PHPRU\ RIWHQEHJLQ KDUGGULYH WKHGHYHORSPHQWSURFHVV ZULWHRQFH PDNH DYDLODEOHWKURXJK WKDWLV 3RUWDELOLW\ ZLWK UXQDQ\ZKHUH

KHOSVLGHQWLI\SUREOHPVZLWK YLVXDO 6RIWZDUH UHGXFHV REMHFW 0DLQ-DYD 2WKHU-DYD DOORZV SURJUDPPLQJ WH[WHGLWRU FRPSLOHU ,'(ҊVYLUWXDO GHEXJJHU LOOXPLQDWHV 'HYHORSHU.LWV RULHQWHG 7HFKQRORJLHV 7HFKQRORJLHV WRROV PDFKLQH DOORZVDGMXVWPHQWRI 6'.V -DYD,'/-DYD,'/ SODWIRUP SODWIRUP LQFOXGH UDWKHU DUH LQFOXGH GHSHQGHQW OD\RXW RXWOLQH HGLWHGLQWKH UHDGE\WKH UXQRQD WKDQSXUHO\ LQGHSHQGHQW SURFHGXUDO -DYD0HVVDJH-DYD0HVVDJ 6HUYLFH6HUYLFH GLYLGHLQWRWZRFDWHJRULHV

XVHULQWHUIDFH FODVV DUH LVEHLQJVXEVXPHGXQGHU 3HUVRQDO-DYD -DYD&DUG -DYD SODWIRUPV -((-6( -0( IUDPHZRUNV VWUXFWXUHV -DYD3KRQH 7HFKQRORJLHV ([WHQVLRQV

SURYLGH ZKLFKPHDQV WKHEXLOGLQJEORFNV WRFUHDWH FRPSLOHGLQWR WUDQVODWHV WUDSSHGE\D OHDGWR ZKHQGHEXJJHG LWLVRUJDQL]HGE\ IRU IUHHV *DUEDJH OHVVHQV 3URJUDPPLQJ FRQWULEXWHWR &ROOHFWLRQ +HDGDFKHV

KHOSV VRXUFHFRGH VRXUFH E\WH PDFKLQH FRQVWLWXWH IUDJPHQWRU WHVWLQJPD\ILQGD RIILFLDO VRIWZDUH DSSOHWV DSSOHWV DSSOHWV 0,'HWV DSSOHWV DSSOHWV EXJ SULQFLSOHV VXFKDV DYRLG IUDPHZRUN FRGH FRGH LQVWUXFWLRQV DSSOLFDWLRQ FODVVOLEUDULHV W\SHV DSSOLFDWLRQV DSSOLFDWLRQV ZHEVHUYLFHV LVKXPDQ LVDOPRVW LVSURFHVVRU LVSURFHVVRU DUHEXLOWZLWK 0HPRU\/HDNV UHDGDEOH LPSRVVLEOHIRU LQGHSHQGHQW GHSHQGHQW KXPDQVWR PD\EHWKRXJKW SDFNDJHV (-%V -)& GHILQHV UHDG &RPSRQHQWV 3HUVRQDO RIDVUXQQLQJ SURILOHV -63V 0DWK UHDGE\ VHUYOHWV 3ULQW WRFUHDWH %URZVDEOH 50, -DYD'RF 'RFXPHQWDWLRQ -'%& 6HFXULW\ QHZ H[LVWLQJ DUHUXQWLPHLQVWDQFHVRI DUHH[DPSOHVRI WKDWSURYLGH -06 6ZLQJ *DPH 50, 3HUVRQDO%DVLV XVHVHOHPHQWVRI FODVVHV REMHFWV IRUH[DPSOH UXQRQ WREHXVHG -1', 8WLOLW\ -7$ -DYD0DLO -$) &RPSOH['DWD &RPSOH[/RJLF 50, )RXQGDWLRQ3'$ 0,'3 VWRUHGLQ VWRUHGLQ VWRUHGLQ KDV 6HFXULW\ 3HUPLVVLRQV

EHQHILWVRU -DYDILOHV FODVVILOHV 5$0 FRQWDLQHUV DSSOLFDWLRQVHUYHU ZHEEURZVHU &'& &/'& DGYDQWDJHV FRQILJXUDWLRQV :LQGRZV ([FHSWLRQ 2EMHFW 'HYLFH 'ULYHU

DSSURSULDWH VXFKDV -90 -90 &90 .90 3HUVSRQDO-DYD -DYD&DUG90 /RRS YLUWXDOPDFKLQH 5XQWLPH 6WULQJ (QYLURQPHQW ([SOLFLW PD\UXQRQ ZULWH FRPSLOH WHVW ³VRIWZDUHGHYHORSPHQWSURFHVV (UURU+DQGOLQJ 6RODULV :LQGRZV /LQX[ SURSULHWDU\ SURSULHWDU\ SURSULHWDU\ PD\UXQRQ RSHUDWLQJ (YHQWV V\VWHPV 8QL[ 0DFLQWRVK /LQX[ 6RODULV UXQRQ /LQX[ /RJLF

VSHFLILF VXFKDV VHUYHUV 3&V FRQVXPHUDSSOLDQFH KDQGKHOGV VPDUWFDUGV GHYLFHV ZRUNVWDWLRQV HPEHGGHGGHYLFHV PRELOHSKRQHV VPDUWFDUGUHDGHUV

REMHFWPRGHO FODVVOLEUDULHV VXFKDV 1RW\HWUHOHDVHGFRPLQJVRRQ MXVWLQWLPH FRPSLOLQJ

FRQWDLQ LVRUJDQL]HGDURXQG

6HWRI SDFNDJHV DEVWUDFWLRQ KLHUDUFK\ LQKHULWDQFH LQIRUPDWLRQ PRGXODULW\ SRO\PRUSKLVP REMHFWPRGHO HQDEOLQJ KLGLQJ WHFKQRORJLHV

RUJDQL]LQJWKHFRGHLQWR RUJDQL]LQJREMHFWV GHILQLQJDQHZREMHFWE\ VHSDUDWLQJLWHPVOLNHO\ LVRODWLQJFRGHLQWRSLHFHV FRGLQJZLWKDKLJKOHYHO RUJDQL]LQJFRGHLQWR VXFKDV GHSHQGVRQ OHYHOVRIGHWDLOZKLFK LQWRDKLHUDUFK\ GUDZLQJRQWKHSURSHUWLHV WRFKDQJHIURPXQUHODWHG IRUXVHDVEXLOGLQJEORFNV RIDEVWUDFWLRQE\XVLQJ YLUWXDOREMHFWVWKDWUHSUHVHQW FRQWDLQ SHUPLWPDQLSXODWLRQ WRPDQDJHLQKHULWDQFH RIDQH[LVWLQJREMHFW HOHPHQWV DQGIRUHDVLHUXSGDWLQJ DQLQWHUIDFHWKDWHQDEOHV WKHDFWXDOFRPSRQHQWV DWWKHOHYHODSSURSULDWH DQGHQDEOHDEVWUDFWLRQ REMHFWVWREHVXEVWLWXWHG RIWKHV\VWHPEHLQJPRGHOHG LPSOHPHQWV IRUWKHWDVNDWKDQG DWUXQWLPH

3URWRFROVDQG DUHH[DPSOHVRI FODVVHV VXFKDV 6WDQGDUGV

FRQWDLQ -DYD'DWDEDVH&RQQHFWLYLW\ ;0/ GHILQH -DYD3KRQH$3, +773 -DYD0DLO )73 3URMHFW-X[WDSRVH -;7$ 6073 7&3,3 66/ 8'', UHGXFHG PRUH :HE SURSHUWLHV PRUH HDVLHU /'$3 PHWKRGV GHYHORSPHQW PDLQWDLQDEOH &RUSRUDWLRQV LQQHUFODVVHV RUDWWULEXWHV FRGHUHXVH 50, WLPH FRGH $SSOLFDWLRQ XVHGE\ 6HW7RS 6103 DUHFRQVWUDLQHGE\ %R[HV &RUED DUHFODVVHV PDNHXVHRI (QWHUSULVH(QWHUSULVH 62$3 KDYH 'DWDEDVH FRQWDLQHGE\ SURFHGXUHV 50, DUH VWRUH $SSOLFDWLRQV$SSOLFDWLRQV 0DQXIDFWXULQJ RWKHUFODVVHV VFRSH W\SHV KDYHD (TXLSPHQW ,,23

7L7LHUHGHUHG (PEHGGHG(PEHGGHG HQIRUFHVLQIRUPDWLRQ ZKLFKFDQEH $$UFKLWHFWXUHUFKLWHFWXUH $$SSOLFDWLRQVSSOLFDWLRQV KLGLQJE\OLPLWLQJ GHWDLOHG FDQEH DFFHVVWRPHWKRGV GDWD LQVWUXFWLRQV *HQHUDO*HQHUDO DQGSURSHUWLHV &OLHQW 8VHU,QWHUIDFH8VHU,QWHUIDFH WLHU $SSOLFDWLRQV$SSOLFDWLRQV OHYHOVLQFOXGH 6HUYHU ZKLFKFDQEH SXEOLF FDQEH  FDQEHFDOOHGRUPDQLSXODWHGIUHHO\ FDQEH SURWHFWHG SULPLWLYHV 'DWDEDVH WLHU :HE6HUYHU (-%&RQWDLQHU :HE  FDQEHFDOOHGRUPDQLSXODWHG 6WDQGDORQH6WDQGDORQH %URZVHU &RQWDLQHU&RQWDLQHU  E\DFODVVLQWKHVDPHSDFNDJH $$SSOLFDWLRQVSSOLFDWLRQV SULYDWH 'DWDEDVH  FDQEHFDOOHGRUPDQLSXODWHG %XVLQHVV%XVLQHVV $SSOLFDWLRQ6HUYHU KRXVHV FDQEH RIWHQUHO\RQ VWDWHPHQWV GHFODUDWLRQV FRPPHQWV  RQO\E\WKHVDPHFODVV WLHU //RJLFRJLF :HE6HUYHU %URZVHU FDQEH GHILQH PDQLSXODWH SUHVFULEH DOORFDWH H[SODLQ H[SUHVVHGDV *8,*8, 6HUYHU QWLHU 6HUYHU &OLHQW 7UDQVDFWLRQ7UDQVDFWLRQ FDQEH RIWHQUHO\RQ 3UHVHQWDWLRQ3UHVHQWDWLRQ /R/RJLFJLF (QWLW\%HDQ(QWLW\%HDQ 6HVVLRQ%HDQ6HVVLRQ%HDQ UHVHUYHVVSDFHIRU DFWLRQV PHPRU\

SUHSDUHGIRU 6XQ'HYHORSHU:HE6HUYLFHV

E\ 'XEEHUO\'HVLJQ2IILFH'HYLQH)DULV6DGGOHU

5 Using concept maps in product development Subdivide Large Maps As we added terms, the map Refi ne the Typography Jim Faris and Harry Saddler became unwieldy and diffi cult to consider as a whole. proposed several options for the form of the map. So: We divided the map into logical sections. The team adopted Sun Sans as the primary typeface, Subdividing the map increased effi ciency. conforming to Sun’s corporate identity standards. We distributed sections to members of the team who Early sketches produced some new typographic refi ned their sections simultaneously. They added terms devices that were eventually applied to the map. One and modifi ed relationships, and, in some cases, created device was a sort of footnote or hypertext link, which secondary armatures. We reassembled the sections allowed us to indicate more relationships without around a refi ned armature, paying special attention to drawing more long lines across the map. relationships between the sections. Refi ning appearance required 7 complete revisions. At its largest, the map measured 3 × 8 feet.

Figure 5 Final composite; content basis for fi nal design.

What Is Java™ Technology? software development process (TM) , Inc. Java object model design The software development process is iterative, write compilerun test with several rounds of designing, writing, compiling, may development draft, version 0.16 running, and testing before software is deployed. consist of environments ratified implement are ratified through class libraries 17 February 2002 are used to Java developers often write, test, may include use specific development and debug environments called Integrated Development Environments, or IDEs. are Please review for structure, accuracy of content, and such as completeness. A copy edit and trademark review will tools examples of follow later. More visual distinction to express hierarchy visual of ideas (graphic design or typographic design) is also implement programming text editor compiler virtual debugger class libraries helps identify problems with still to come. tools machine serialization In runtime, refers to the A software utility that process of turning an object outline lay out edited in the are read turns human-readable into a data stream for purposes contain multiple by the text files into machine- Introduction of transmission or storage. can be friendly byte code. This diagram is a model of Java™ technology. The used through Application may implement Programming diagram defines Java technology by mapping it to related implement Interface (API) run on a allows adjustment of packages The written or understood specification of how a piece of concepts and examples. It seeks to provide an overview class user interface objects may contain multiple software interacts with the outside world. Specifies what structures frameworks input the application or application component accepts, of the major facets of Java, to show how Java fits into the how the software will behave, and what output it will provide. Basic source code Basic source code that All computer software relies on a variety of APIs to world of developers, and to explain how Java ties into the achieve tasks such as writing a file or displaying text. that provides a framework describes the graphical user interface. compiles translates Runtime instances may contain multiple Does not include APIs often depend on other APIs. world of computers and networks. for the classes, describes source code byte code of classes. implementation details. is used are invoked have define an the class hierarchy, and to create into into trapped by a by or on the names of the class contribute to the implement generation of running in RAM are The diagram is meant for an audience familiar with methods and properties. are runtime instances of may be categorized as refer to an interfaces computing and software development but perhaps not Does not include classes Particular to Java, a source code implementation details is the foundation Source code files that describe file that defines a set of functions source code source byte machine constitute fragment or testing may find a completely familiar with Java. It seeks to provide an (method definitions). for the completed bug a unit of programming. A class (methods) that are required by a framework code code instructions application relates a set of data (fields) and define introduction for non-engineers who might be engaged in functions (methods) that class. Interfaces name methods use the data. and set an expectation for each The combination of the class Is human Is platform Are processor when debugged, create are distinguished by methods' behavior, but do not development activities and to provide a comprehensive structures and the user readable. independent. It dependent. They can be read instances of contributes to implement the methods. Interfaces interface framework into almost never can be by the processor directly. overview for engineers who may be new to Java or may be thought allow a piece of code to be written a skeleton of the application's defines read by the processor of as running f in such a way that the code can familiar only with parts of Java but not entirely clear on overall source code. Does not directly. ie object methods fields ld primitives work with any type of class that include implementation details. constructors inner classes o how they all relate. r references c supports the interface. la Reside inside Detailed instructions are constrained by Sometimes ss another class, allowing that cause a running consist of referred to as typ Generally enable classes e The diagram is not intended for a highly technical for better organization. object to take action or properties. s basic math or ca comparison audience, nor is it for someone completely new to the Should not be confused manipulate data. scope n b with subclasses. define e operations. world of software development. a location have are stored in are stored in Limits to store access to methods field types and properties. can be Concept Maps Levels include: statements declarations comments - public: can be called or data types manipulate superclass The diagram takes the form of a concept map. Concept manipulated freely may be abstract classes text files binary files (parent class) maps are webs of linked terms that help visualize mental - protected: can be called In running programs, In running programs, Notes that developers or manipulated by a class models and clarify thoughts. In concept maps, verbs Are human-legible. Are legible only to statements prescribe declarations define include to explain source in the same package Permit child classes to Text files usually have the computers. Binary files actions or a sequence a variable's existence code to themselves and - private: can be called or may also be inherit a defined method or connect nouns to form propositions. Examples and suffixes .java or .jav usually have the suffixes of actions. and determine scope. other developers. manipulated only by the same class. to create groups of related .jar, .jcm, .class, .ear, details also accompany the terms. More important terms inherit methods and properties from classes for polymorphic or .war receive typographic emphasis; less important ones and behavior. examples are grayed back and pushed to the periphery. subclass have can be (child class) are examples of

may override existing may rely on parent may define new

the Application browsable Programming methods and Javadoc(TM) are processed byJavadoc to create serves as the may define required documentation Interface (API) properties comments tool features / Spec benefits Comments specifically formatted defines the behavior of to be processed by the Javadoc tool. In this map, distinguishing features or benefits of Java are highlighted with red circles. often use often begin the development process with is distinguished by

Developers learn and use Java(TM) to create and run programs that make devices useful for people some of whom are often own can be used to write runs on and connects is used by may download Selected Java products have been localized and install Java is especially useful engage into languages other than english. This in devices that are in localization is one of the key factors for adoption connected by a network. of Java Technology outside the United States.

is a such as name supports may submit or form elect the is a for such as enable comment on is implemented trademark as a set of

activities getting communicating collaborating playing working creating buying activities documentation information and selling serve on participate are are in the facilitated is facilitated by is facilitated by is facilitated by is facilitated by is facilitated by is facilitated by are facilitated by facilitated such as by by

comment on may request revisions from

instant image news e-mail communication collaboration discussion the world-wide productivity marketplace J2EE J2SE J2ME other services messaging games creation services documentation documentation documentation documentation services services services software software forums web software software services are are instantiated are instantiated in are instantiated in are instantiated in is instantiated in is instantiated in are instantiated in are instantiated in is instantiated in is instantiated in is instantiated in are instantiated in instantiated such as such as specifies and such as such as in in specifies and documents specifies and documents owns documents Java the Java stand-alone J2EE J2SE Platform J2ME programming solutions servers web-based clients solutions Platform tutorials is defined by is used to write Specification Platform often discuss Java in Java developer language solutions applications Specification Specification Include Web Services, Java forums communities in Java, is used to write Getting Started, Java XML, Community support the defines can be built can be built can be built can be built Internationalization, Sound, and Java 2D. development of Java has roots and run using and run using and run using and run using Mobile may be Java (SM) in C, Objective C, J2EE PersonalJava Information Language within the context of the Connector Device Profile supports SmallTalk, and LISP. Specification Specification (TM) Process , the provides Specification (MIDP) may request may function as Specification (JLS) Maintenance Including: IBM, Motorola, Nokia, development is added to major revisions via that is an (TM) Lead Oracle, Novell, Netscape of the definition of Hewlett-Packard, Apple, and BEA Java 2 platform...... for Enterprises ...for desktops ...for consumer and embedded applications Personal Foundation Specification consist of members of Java Profile Expert Executive Profile Leads are lead by work is done by Community oversees are represented on companies works with Sun object (TM) depends upon (TM) Specification Specification Groups Committee As opposed oriented syntax and platforms J2EE is based on subsets of platforms (Spec Leads) Process (JCP) Java 2 Enterprise Edition(TM) is an edition of Java J2SE Java 2 Standard Edition(TM) is an edition of Java intended to run (TM) Java 2 Micro Edition(TM) is an edition of Java (TM) (TM) (TM) certify Java to a purely programming keywords Java TV Java Embedded Server (JES) may revise provide building used to build secure, scalable, distributable server-based is used to J2ME intended to run on devices with limited computing Java Card provide building applications using procedural language is used to on desktops, laptops, and workstations. J2SE also includes Connected champion draft develops blocks for applications for large enterprises. power, such as cell phones or PDAs. J2ME has blocks for Personal programming build and run build and run the core language packages and classes used by J2EE and J2ME. Limited Device is represented on reduced processor and memory requirements. It is Basis language. Profile Configuration based on subsets of J2SE with additional Specification (CLDC) hosts is used to build components added for market segments, such as is used to build is used to build is used to build Specification is organized by and run and run and run and run provides hand-held devices. Connected Device Java Reference if accepted, Community may becomePublic may become new Java is instantiated in Configuration Specification Implementation & applications such as web-Based Client/Server web applications desktop specialized applications interactive applications becomes Draft Draft Specification enterprise cell phone such as point-of-sale such as user-controlled localized video embedded such as home network-aware (CDC) Compatibility principles applications applications services embedded in a embedded PDA applications for use with ATMs television Specification Request (JSR) applications applications applications services camera views on demand applications services automobiles Kit (TCK) run on web page applications Smart Cards applications run on Such as the object model, are Proposal to develop Written specification for some aspect of A TCK is a suite of tests, tools, are enabled by can be run inside a may be may be Java technology, including language, inheritance, modularity, abstraction, composed may be are a new specifiaction or and documentation that provide are are built with built with are built with are built with are built with J2EE API J2SE API J2ME API significant revision to an is submitted to virtual machines, platform editions, profiles, a standard way of testing an hierarchy, implementation hiding, of have both composed provide are built with are built with Specification Specification Specification existing specification. and APIs. implementation for compliance information hiding, encapsulation, of with a Java specification. and polymorphism. administers the comments on Program Management chairs the Connected Extend the applet class, Implement a main method. Device Office exists within which provides developers A class that defines a z application benefits and are configured by business server provide an interface for client always have user provides a J2SE J2SE J2ME J2ME Configuration runnable describe with a basic framework for must declare a main method, which the MIDlets Java Card Java TV runnable (CDC) API advantages logic components components interfaces web browser applets applications applets applications components rapid development of a Java virtual machine uses as the starting applets Xlets components Documents By runnable components, can call other limited application. This point for the application. The main method make(s) such as is housed in are run in are built usingare built using are built using are built using are built using Connected are we mean components are includes a basic user interface gets executed when the application starts. run in run in are may be Limited Device composed that can run on their own. never directly may directly always directly framework and event model. composed Configuration interpreted by of builds build builds of (CLDC) API Documents

may run run inside of Mobile reduced ability to more deployment inside of Information may utilize Enterprise make versions of a development write higher-quality maintainable descriptor JavaServer embed programing code in a Java Embedded Device Profile can callservlets can call markup language are built using Java Card Java TV time code code the JavaBeans Pages(TM) Server(TM) (JES) (MIDP) API API APIs Documents read (EJBs)(TM) (JSPs) framework Define independent configurations Can be: Discrete units of Includes specific packages: Depend on the Java Specifies packages: pieces of business logic Respond to Define a page element, from HTML software functionality java.lang Media Framework (JMF), http or application behavior an URL request. Servlets which can be HTML, XML, or WML that conform to the javacard.framework which is optional to J2SE log that are called by either commonly generate HTML, another markup language. JavaBeans(TM) Java Series Java Series Java Series connector XHTML JavaBean API and javacard.security but required for Java TV. device access components containers servlets, JSPs, applets, XML, or dynamic JSPs execute as servlets. architecture are designed to be javacardx.crypto timers components Components cannot applications, or other images. run inside run inside a re-usable components. framework function on their own, EJBs. is one are built with can be Provides a mechanism an The JavaBean API but are used by other type of are Manage transactions, for connecting to legacy makes it particularly are J2EE J2SE J2ME components or composed life-cycles, and data information systems. easy for Beans to be defines runs on runs on composed tutorials tutorials tutorials runnable components. of persistence. Universal utilized by visual of Simple Object Extensible Description, programming tools. (In an EJB Access Protocol Markup Language Discovery, and architecture analogy, these Integration are built using web container (SOAP) (XML) would be prebuilt walls, is contained in is created by a container (UDDI) J2EE Wireless run inside windows, or doors.) of Provides a way Provides a structured Provides a way BluePrints BluePrints for applications and extensible for businesses to can be created by Mobile to communicate. mechanism for discover each other. Personal such such Information profiles organizing and J2SE Profile as as J2EE platform include platform Also referred to as required or core packages, are optional Device Profile presenting data. Many optional (PP) packages packages these are the heart of the Java programming language. packages (MIDP) There are several Java packages and packages Sometimes referred The packages include myriad classes that define A set of packages required implementations of classes utilize XML to MIDP, including MIDP to as required or core include for example user interface components, a programming event model, for a particular vertical store and exchange data. Define a set are market segment or set of for Palm 1.0.3, MIDP packages. text and math processing tools, code-level security, for example of methods to J2ME (TM) related devices. Other profiles 1.04 for Monty, and objects for memory storage of complex data, and address MIDP 2.0. Optional include Foundation, Game, J2EE-specific methods for invoking remote applications, to name just a few. specific Personal Basis Profile, and PDA. packages are functionality packages packages Examples include: packages required for or libraries depends depend depends or libraries ¡¡x.activation certain are contained in is contained in are contained in specialized on on on javax.ejb applications. javax.servlet are runs Java Database Java Regular are Revisions from version 0.12 are indicated in violet, except for the People area. javax.transaction Beans Java 3D(TM) JavaHelp(TM) Java XML such such Connected Limited contained inside Connectivity Expressions Connected Device configurations contained javax.xml Pack Device in (JDBC)(TM) Configuration as as Configuration in (CDC) (CLDC) An API that defines a A powerful set of A set of classes A set of classes A set of Java APIs Includes Includes are standard mechanism text matching and A set of packages used to write used to write and architecture for specific that define basic specific contained by which Java programs manipulation routines in three-dimensional protocol- use with XML. packages services for a range packages can interact with structured supported by many of devices. graphics applets independent that are that are prepared for may include data. Developers can write programming Java J2SE or applications. Java-based mail subsets of subsets of are used in J2EE Software applications without being languages. Java Java Card Software Web Services Software applications. the J2SE the J2SE J2ME Wireless PersonalJava(TM) Software Sun, Developer Web Services Development tied to a particular data implements Perl- Development Developer Pack Development equivalent: equivalent: Toolkit Development include Kit age mechanism. compatible Kit Development Kit java.lang include a java.io Kits (SDKs) are used to create regular expressions. Kits (SDKs) include Includes the binary Provides a framework for developing and The J2SE SDK includes the necessary java.util java.lang Includes the necessary Includes the necessary tools, On handheld and embedded devices, the initial by include version of the J2EE Reference hosting J2EE applications that run inside source code, class libraries, development java.net java.util tools, emulators, documentation, emulators, and runtime environment implementation of Java addressees the software Implementation, plus development web containers. The pack includes the tools, and run time environment required to java.io javax.microedition.io and examples to develop and to develop and test applets for the needs of networked applications running on Dubberly Design Office / Devine / Faris / Saddler tools and documentation needed Java APIs for XML included in the Java build Java applications and applets. simulate Java applications Java Card platform. personal consumer devices such as set-top boxes to build a J2EE application. XML Pack, the JavaServer Pages java.text targeted at cell phones, pagers, and smart phones. Standard Tag Library (JSTL), the Art Build java.security PDAs, and other small devices. Tool, the Java WSDP Registry Server, includes a contains a With major contributions from: and the Tomcat Java Servlet and JavaServer subset of a Pages container. Calvin Austin, Josh Bloch, Lisa Friendly, Karen Galatis, Jim Inscore, Doug Kramer, Java virtual Java Runtime Java Runtime is defined by the Java virtual include a include Java Java Paul Pangaro, Robert Patten, Monica Pawlan, Carla Schroer, Leigh Shevchik, machine instantiate one or more J2EE Java may be enabled by the Java-enabled may be enabled by a operating system- Java Card Java Java machine Environments web server based Java Environments specification Java virtual machines are architecturally dependent. are used to run virtual machine server Plug-In browser or virtual machine virtual machine virtual machine virtual machine Alan Sommerer, Ken Tallman and Jim Urquhart. (JVM) There are JVMs are available for nearly every virtual machine (JREs) viewer Some JVMs are optimized for (JREs) contemporary operating system. A JRE is the software environment in which programs compiled for the Some browsers may be Java-enabled Some JVMs are A type of application server. run on cell phones, PDAs, and other Java virtual machine can run. The runtime system comprises everything because they include the Java Plug-In. Some JVMs are Some JVMs are optimized Some JVMs are optimized run on optimized for servers. similarly resourced devices. run on necessary to run programs written in the Java programming language, Some users may need to download the optimized for various for set-top boxes. for residential gateway servers. Thanks also to: implements implements enforces a enables usually employs can employ including the Java virtual machine, which may be a Java interpreter, and Java Plug-In for their browsers. Installing types of laptops, workstations, run on run on run on run on run on Andrey Dikanskiy, Debra Dooley, Jovi Garcia, Dale G., Joann Gray, Stuart Marks, the platform packages. the Java Plug-In will also install the J2SE and desktops. run on run on run on Runtime Environment. Shawn Moore, Chuck Mosher, Brad Wetmore, and Hinkmond Wong. architecturally explicit garbage Just-In-Time dynamic run on Windows UP UX Compaq Tru64 security model independent Solaris Linux Palm OS Windows real-time proprietary error handling collection compilation compilation Mac OS AIX beOS applications operating Linux Symbian OS Windows CE Solaris operating system operating Unix Alpha VMS Windows proprietary RTOS proprietary (RTOS) systems Linux RS6000 systems The virtual machine may Watching for data in memory Significantly improves Goes beyond Just-in-Time HP-UX proprietary encounter a problem, or that is no longer needed virtual machine performance compilation by examining the AIX Irix FreeBSD exception, while a program and freeing the memory for reuse. by translating groups of code as it executes and focusing run on Solaris NeXT run on controls access to enable FreeBSD Sun Confidential is running. The Java Other programming languages instructions from byte code optimization efforts on the most SunOS HP-UX language requires that require programmers to explicitly free to machine code rather than critical pieces of code as it executes. run on run on run on runs on runs on pieces of code which are memory when a piece of data is no one instruction at a time. JIT likely to encounter a longer needed, which can increase critical compilation is enacted by the run on run on run on portability particular error offer a the development effort. resources Java HotSpot(TM) virtual machine. mechanism for handling For comments, contact: Includes One application personal point-of-sale pagers cell phones personaldDigital subscriber multi-application the exception at runtime. servers workstations Java Card televisions network-aware automobiles Telematic - memory can run in multiple computers (POS) assistants identify module When an error is smart cards appliances tetworks Audrey Crane - hard drive environments specific systems (PDAs) (SIM) phones specific encountered, the virtual without being [email protected] machine executes the rewritten or recompiled. devices Connect computers with devices code designed to respond telecommunications systems. to the error. (hardware) (hardware)

Figure 6 Early visual style sketch.

6 Using concept maps in product development Figure 7 Final poster.

Java™ Technology Concept Map

SM Sunworks with companies become members of the JCP by signing JSPA

2 which is has a What is Java Technology? supports the development of ... Java 0 are represented on the within the context of the Java Community Process, Java Community Process The Java Specification Participation Programming language Java object model This diagram is a model of Java™ technology. The diagram begins with members join the JCP by signing the provides ... documentation 42 may function as ... developers 23 Agreement is a one-year renewable is organized by that is an is defined by the ... Java Language Specification 43 defines logo owns the ... Java trademark 1 support the development of ... Java 0 agreement that allows signatories to is used to write ... programs 24 make(s) ... SDKs 29 make ... SDKs 29 Class libraries are An application programming interface is the Particular to Java, Abstract classes permit child Java forumsoften discuss Java in Java developer become members of the JCP. is used to write ... class libraries 10 organized collections written or understood specification of how a interfaces are source code classes to inherit a defined explains Java technology by placing it in the context of related makes versions of a ... JVM 18 make versions of a ... JVM 18 Companies include Alternatively, developers can sign the 4 syntax and of prebuilt classes piece of software interacts with the outside files that define a set of method or to create groups of communities provides certify Java applications using IBM, Motorola, more limited Individual Expert The Java language has roots in C, Objective C, and functions used to world. It specifies what input the application functions (methods) that related classes for polymorphic concepts and examples, and by defining its major components is represented on Nokia, Oracle, Participation Agreement (IEPA). SmallTalk, and LISP. keywords create other classes. or application component accepts, how the are required by a class. behavior. hosts Novell, Netscape, Class libraries can be software will behave, and what output it will Interfaces name methods Hewlett-Packard, and the connections between them. It shows how developers includes members from alternate 9 object-oriented programming language is based on the part of the Java provide. All computer software relies on a and set an expectation for specification leads 5 expert groups consist of members of Java Community overseen by the Executive 8 Apple, and BEA. standard – meaning variety of APIs to achieve tasks such as each method's behavior, are led by draft implementations As opposed to a purely procedural they have been writing a file or displaying text. APIs often but do not implement the may be an use Java technology to create programs that benefit people and do the work of the SM There are two superclass (parent class) abstract class (spec leads) Process (JCP) develops Committee comments on Alternate implementations are written programming language. ratified by the Java depend on other APIs. methods. Interfaces allow has champion executive Community Process – a piece of code to be committees: to the same specification and pass the everywhere, and explains how computers and networks relate TCK, but can be licensed differently or created by 10 class libraries implement 13 APIs written in such a way that define J2EE/J2SE and J2ME. contain multiple are ratified by... the and may have enhanced features principles provide benefits and advantages individual developers the code can work with subclass (child class) inherits methods and properties from a beyond the reference implementation. for their own or their any type of class that may rely on parent's may define new may override existing to Java technology. such as company's use. supports the interface. may also be a 3 if accepted becomes a may become a6 may become a is instantiated in a Such as the object

Java Specification community public new Java specificationdefinition of ... is added to the Reference Implementation object-oriented programming language 9 model, inheritance, 14 interfaces explicit error handling 22 Request (JSR) A proposal to develop draft draft A Java specification describes & Technology Compatibility Kit (TCK) modularity, garbage collection 21 is submitted to some aspect of Java technology, abstraction, hierarchy, The diagram is intended to help developers who are familiar a new specification is added to the reduced development time Runtime instances of classes. security model 20 or significant revision including language, virtual A Reference Implementation is implementation definition of ... Java 0 11 packages JCP architecturally independent applications 19 to an existing spec. machines, platform editions, a working example of the JSR. hiding, information contain multiple may multiple may contain implement 15 objects may implement profiles, and APIs. Other companies will produce may be implemented in hiding, encapsulation, ability to write higher-quality code through used can be with one part of the Java platform understand other parts. It Java virtual machine 18 Java are runtime instances of ... classes 12

2 their own implementations. and polymorphism. have The TCK is a suite of tests, more maintainable code relates unfamiliar technologies to ones with which developers such as are created by methods and fields 0

features and benefits tools, and documentation that Program 7 maintenance provides a standard way of ability to call non-Java functions may already be familiar. The diagram also provides an overview administers the Java Native Interface (JNI) provides a method for calling native serialization logo chairs the may request major revisions via testing an implementation for Scope limits access to methods and properties. Levels include: Management Office lead compliance with a Java functions such as operating system or legacy library functions. In runtime, refers to the process of exists within may revise Classes are source 12 classes implement turning an object into a data stream for scope ™ejWa^X/XVcWZXVaaZYdgbVc^ejaViZY[gZZan

specification. define for developers who are new to Java technology and an has a which is is distinguished by code files that running in RAM are purposes of transmission or storage. ™egdiZXiZY/XVcWZXVaaZYdgbVc^ejaViZYWnVXaVhh^ci]ZhVbZeVX`V\Z describe a unit of ™eg^kViZ/XVcWZXVaaZYdgbVc^ejaViZYdcanWni]ZhVbZXaVhh# 0 is a 1 18 Architecturally dependent machines that are available may be categorized as introduction for non-programmers who want to improve their trademark for nearly every contemporary operating system. programming. A class are constrained by Java virtual machine relates a set of data TM (fields) and functions are distinguished by types field types can be primitives or object references ability to converse with developers. For more information, is defined by the refer to ... (JVM ) Java virtual machine specification (methods) that use field or class types can be... classes 12 visit the web site at http://java.sun.com. the data. Primitives

have generally enable

enables 19 objects architecturally independent applications Inner classes reside inside basic math or enable inner classes methods constructors fields define a location to store data comparison constrained by are constrained by are manipulate another class, allowing consist of may defineare invoked required by Development process One application can run in multiple environments for better organization. operations. begins with portability Methods are

Fields are 15 Concept Maps without being rewritten or recompiled. Should not be confused detailed with subclasses. sometimes 16 development environmentsmay include 17 tools such as instructions that referred to as may consist of or on ... objects 15 The diagram takes the form of a concept map – a web of linked cause a running properties. are used to write, test, and debug enforces a 20 security model controls access to critical resources object to take ... interfaces 14 Including memory and hard drive. action or terms showing both overall structure and details. By showing manipulate data. Java developers often use specific development environments everything – the forest and the trees – in a single view, concept called Integrated Development Environments, or IDEs. text editor compiler virtual machine debugger Application are used to build the outline lay out are read by a is used to create problems with helps identify allows adjustment of ... visual programming tools is stored in compiles source code into byte code into translates Just-In-Time compilation programming maps help people visualize mental models and clarify thoughts. Significantly improves virtual machine interface A software utility Notes that developers include to that turns performance by translating groups of statements declarations comments specification. can be

to create and run explain source code to human-readable can be improved by instructions from byte code to machine Class structures improves can be improved by code rather than one instruction at a In running In running themselves and others. class user interface text files into performance APIbehavior of ... defines the spec In concept maps, verbs connect nouns to form propositions. is a name for a ... programming language are basic source machine- time. programs, programs, code that structures frameworks statements declarations define TM the generation of contribute to the generation of contribute to is also a name for ... SDKs and JREs of ... are examples friendly byte provides a code. prescribe actions a variable's Javadoc Javadoc browsable Examples and details accompany the terms. More important defines a set of ... APIs 13 framework Basic source code that or a sequence of existence and serves as the classes Javais implemented as a set of ... platforms 27 for the classes, describes the graphical objects dynamic compilation actions. determine scope. comments are processed by the tool to create documentation Goes beyond Just-in-Time compilation by APIs can be used to write ... programs 24 describes the user interface. terms receive visual emphasis; less important terms and Does not include examining the code as it runs and Comments specifically formatted to class hierarchy, source code byte code machine instructions focusing optimization efforts on the most be processed by the Javadoc tool. defines constitute a as running ... may be thought of 12 implementation details.

Downloads and documentation are 13 and provides the 15 critical pieces of code as it executes. examples are in gray. Purple terms and purple lines indicate a available at http://java.sun.com. names of the Is human Is platform Are processor readable. independent. It dependent. They can Dynamic compilation is enacted by the class methods is edited in the Java HotSpotTM virtual machine. and properties. source code framework almost never can be read by the implements 21 process. Terms followed by a number link to terms preceded Selected Java products have been is the foundation for be read by the processor directly. garbage collection localized into many languages. This Does not include The combination of the class classes 12 stored in are

the completed objects Watching for data in memory that is no longer needed and freeing the memory for reuse. implementation processor by the same number. localization is one of the key factors structures and the user interface directly. fragment or Other programming languages require programmers to free memory explicitly when a for adoption of Java technology details (method framework into a skeleton of the piece of data is no longer needed, which can increase the development effort. worldwide. definitions). application's overall source code. Does application contributes to when debugged, may find a testing not include implementation details. 15 Are human-readable. text files binary files implements 22 Usually have the run on a explicit error handling suffixes .java or .jav. The virtual machine may encounter a problem, or exception, while a program is running. The software development process is iterative, with several Are computer- readable. The Java language requires that pieces of code which are likely to encounter a particular rounds of designing, writing, compiling, running, and testing error offer a mechanism for handling the exception at runtime. When an error is before software is deployed. Binary files is trapped by a usually have bug encountered, the virtual machine executes the code designed to respond to the error. the suffixes .jar, .jcm, .class, .ear, or .war. 25 23 learn and use are used by support ... services 26 such as ... hardware 31 peopleengage in may download and install ... JREs 30 often own ... hardware 31 some of whom are ... developers 23 activities are facilitated by Including getting information, communicating, such as ... applications 28 Java technology is especially collaborating, playing, working, creating, and buying Developersmay submit or comment on a ... Java Specification Request 3 enable ... services 26 devicesuseful in devices that are and selling. who are members of the Java Community Process serve on ... expert groups 5 run on and connect ... devices 25 connected by a network. form ... Java developer communities 4 and the useful for comment on a ... public draft 6 24 26 participate in the ... Java Community Process 2 services may request revisions from the ... maintenance lead 7 are instantiated in connects ... devices 25 Including news services, instant messaging services, who are members of the JCP elect the ... executive committee 8 supports e-mail services, communication software, collaboration often use ... development environments 16 supports ... web services 33 software, discussion forums, games, the world wide web, participate in the ... development process productivity software, image-creation software, and marketplace services.

that make software is developed with ... platforms Including servers, web-based solutions, stand-alone programs internet applications, and clients. JavaTM2 Platform:

42 end-to-end solutions for enterprise servers and applications for desktop servers and applications for consumer and embedded servers and applications Documentation is available via http://java.sun.com. such as

TM TM TM Java 2 Platform Micro Edition is intended to run on devices TM TM 27 platforms 32 J2EE depends upon 35 J2SE is based on subsets of 39 J2ME Java Card Java TV Java Embedded

rvd uligbok o run on provide building blocks for with limited computing power, such as cell phones or PDAs. build and run is used to build and run is used to sue obidadrnare built using a is used to build and run are built using are built with is used to build and run is used to build and run TM Java 2 Platform Enterprise Edition is Java 2 Platform Standard Edition is intended to J2ME has reduced processor and memory requirements. It is

ul n u r ul ihteruns on a are built with the Serverbuild and run is used to (JES) used to build secure, scalable, run on desktops, laptops, and workstations. J2SE based on subsets of J2SE with additional components for distributable server-based also includes the core language packages and market segments such as hand-held devices. applications for large enterprises. classes used by J2EE and J2ME. J2EE J2SE J2ME other documents ... specifies and documents ... specifies and documentationsuch as documents ... specifies and documentationsuch as documentationsuch as documentationsuch as 28 applications enterprise applicationssuch asweb-based and client/server such as 33 web services may be enabled by applications embedded desktop applications specialized PDA cell phone applications for use interactive television embedded Includes Web are are composed of have are enabled by Services, Getting applications applications A standardized way in a web page run inside a ... web browser 34 embedded applications applications applications with Smart Cards applications applications Started, Java XML, are built with are may be built with may be built with may be built with are of integrating and are built with Internationalization, J2ME J2SE shaping business logic, Such as ATMs and Such as user-controlled camera Such as home services and J2EE Sound, and Java 2D. data, and processes point-of-sale services. views and video on demand. network-aware automobiles. 32 across a network. 35 39

runnable components are configured by business logicis described by server components have interfaces provided by client componentsalways have user interfaces provides a 34 web browser 36 J2SE applets Extend the applet class, which 38 J2SE applications Implement a main method. A class that 40J2ME J2ME 41 MIDlets run in a are built using are built using may run inside a are built using r opsdo r opsdo r otie ninclude are contained in are composed of are composed of is housed in are configured by a are run in may utilize the are can call other can be ... J2SE applets 36 provides developers with a basic run inside an defines an application must declare a Java Card applets Java TV Xlets Components that can can be ... J2SE applications 38 framework for rapid development of main method, which the Java virtual applets applications J2EE Platform J2SE Platform J2ME Platform tutorials run on their own. run in a are built using are built using can be ... J2ME applets 40 a limited application. This includes a machine uses as the starting point for Specification Specification Specification basic user interface framework and the application. The main method gets 43 can be ... MIDlets 41 event model. executed when the application starts. Specifies that the entire Includes the JLS and Specifies which parts Java Language J2SE JLS is applicable to documentation of the JLS are Specification (JLS) J2EE, includes additional describing what the applicable to J2ME, Provides a complete never directly build may directly build specifications for J2EE, platform packages are what features the JVM components Enterprise servlets JavaServer Java TV APIs specifies what features and what features the must support, and specification for the are built using run inside a always directly build may be interpreted by a Java Card API Java Embedded defines a is contained in the TM TM TM run on the JVM must support, JVM must support. what the platform syntax and semantics of Cannot function on their JavaBeans (EJB) Servlets respond to Pages (JSP )embed programming code in a markup language Includes specific Depend on the Java Server the Java programming

run inside an are built using TM own, but are used by other an URL request. run inside a are built using and what the platform packages are. deployment JavaBeans packages: Media Framework packages are. language. components or runnable Enterprise JavaBeans Servlets commonly JSPs define a page Can be HTML, are built with java.lang (JMF), which is framework components. define independent pieces generate HTML, XML, element, which can be WML, XHTML, Discrete units of software descriptor javacard.framework optional to J2SE but Specifies packages: Mobile Information of business logic or or dynamic images. HTML, XML, or another or voice XML. functionality that conform to the javacard.security required for Java TV. Java BluePrints application behavior that markup language. JSPs JavaBeans API and are designed to http Device Profile (MIDP) They can call other is one type of javacardx.crypto can call either servlets, servlets, JSPs, or EJBs. execute as servlets. be reusable components. The log Specification Guidelines, patterns, JSPs, or other EJBs. They can call other Extensible Markup JavaBeans API makes it particularly device access and code for end-to-end JSPs, servlets, or EJBs. easy for Beans to be utilized by timers applications. Language (XML) visual programming tools. (In an framework Foundation Profile Provides a structured and architecture analogy, these would Specification extensible mechanism for be prebuilt walls, windows, or Profiles are packages required organizing and presenting data. doors.) for a particular vertical J2EE Connector Connected Limited read configurations from a Many Java packages and classes market segment or set of Device Configuration containers connector EJB utilize XML to store and exchange Also referred to as required or core Specification

run inside a can be a related devices. Other profiles data. packages, platform packages are the (CLDC) Specification Manage architecture container web container heart of the Java programming include Foundation, Game, is created by a

can be created by Personal Basis Profile, and PDA. transactions, is contained in language. The packages include Optional packages define Connected Device life-cycles, Provides a mechanism Simple Object myriad classes that define user a set of methods to and data for connecting to legacy interface components, a address specific Configuration (CDC) persistence. information systems. Access Protocol programming event model, text and functionality required for Specification math processing tools, code-level certain specialized (SOAP) security, objects for memory storage applications. Applications PersonalJava of complex data, and methods for that require optional There are several Provides a way for applications implementations of to communicate. SOAP is invoking remote applications, to packages must be shipped Specification name just a few. with the package code. Mobile Information typically transmitted via HTTP. Device Profile, including MIDP for Personal Profile Sometimes referred to as Specification include ... platform packages 37 37 are contained in the are are such as such as Palm 1.0.3, MIDP depend on are contained in packages or required or core packages. J2EE platform UDDI platform packages J2SE optional packages optional J2ME Personal Profiles MIDPdepends on

for example 1.04 for Monty, and are ... class libraries 10 Universal Description, for example MIDP 2.0.

libraries packages packages optional Profiledepends on (PP) Personal Basis Profile may become platform packages via the ... include Discovery, and Integration provides a way for businesses packages Specification to discover each other. Can also be used programmatically TM TM Connected Limited J2EE API Specification J2SE API Specification J2ME API Specification J2EE specific by applications to locate an Beans Swing Java regular Java 3D JavaHelp Device Configuration On handheld and application or service. A component kit that includes specific embedded devices, the Mobile Information packages expressions A set of classes A system that initial implementation provides a set of graphical Connected Device packages that are Device Profile (MIDP) user interface elements. A powerful set of text matching and used to write enables such as such as subsets of the J2SE of Java technology are contained in Examples include: CDCincludes a configurationsinclude a CLDCsubset of a contains a manipulation routines supported by three-dimensional developers to Configuration Includes the necessary addresses the software API Documents ¡avax.activation Swing can be used to includes specific equivalent: rapidly build applications many programming languages. graphics applets incorporate A set of java.io tools, emulators, and needs of networked javax.ejb or applications. online help in packages that are packages that javax.servlet without writing original Java technology implements java.lang runtime environment applications running Connected Limited Perl-compatible regular applications or subsets of the J2SE define basic to develop and test on consumer devices

is used to build applications and services based on code to support common java.util javax.transaction web sites. equivalent: services for a Device Configuration javax.xml interface elements. javax.microedition.io applets for the Java such as set-top boxes 29 contains java.lang range of Card platform. and smart phones. (CLDC) API Documents Software Development J2EE Software Development Kit Java Web Services Developer Pack Supports a native look and java.util feel on many common J2SE Software devices. Includes the binary version of the J2EE Reference is used to build ... web services 33 JCP java.net TM Kits (SDKs) operating systems.

Connected Device

Implementation, plus the development tools and PersonalJavaruns on a Provides a framework for developing and hosting J2EE applications Development Kit java.io Java Card may include ... tools 17 documentation needed to build a J2EE application. 2 Configuration (CDC) that run inside web containers. The pack includes the Java APIs for java.text A JVM can be are used in ... development environments 16 The J2SE SDK includes the source code, java.security Development API Documents XML included in the Java XML Pack, the JavaServer Pages Standard class libraries, development tools, and J2ME optimized include ... class libraries 10 Tag Library (JSTL), the Ant build tool, the Java WSDP Registry Server, for residential are used to create ... programs 24 runtime environment required to build Kit and the Tomcat Java Servlet and JavaServer Pages container. Java applications and applets. Wireless gateway servers. Java Series Java Series Java Series Toolkit 30 Java runtime environments Java virtual is instantiated by J2EE Java-enabled Java Plug-Inmay be enabled by a Java-enabled may be enabled by an operating system-based Java virtual machine Java Card Java virtual Java virtual J2EE Tutorials J2SE Tutorials J2ME Tutorials runs on uso run on runs on (JREs) include a machine runs on application web server TM Some browsers may be Java-enabled browser or viewer Java virtual machine A JVM can be optimized for cell phones, The J2ME Wireless virtual machine machine machine runs on runs on uso run on runs on runs on run on runs on runs on runs inside a ... u nrun on run on include ... packages 11 Jini because they include the Java Plug-In. PDAs, and other similarly resourced devices. Toolkit includes the A JVM can be optimized Some JVMs are Can host ESBs, Some JVMs are optimized for various types necessary tools, are used to run ... programs 24 serverruns on servlets and Jini network technology provides Some users may need to download for set-top boxes. optimized for servers. Hosts ESBs, the Java Plug-In for their browsers. of laptops, workstations, and desktops. emulators, A JRE is the software environment in JSPs. one infrastructure for delivering servlets and JSPs. services in a network and for Installing the Java Plug-In will also documentation, and Acknowledgements Trademarks which programs compiled for the Java install the J2SE runtime environment. examples to develop virtual machine can run. The runtime creating spontaneous interaction Prepared for the Sun Developer Web Services Group © 2002 Sun Microsystems, Inc. All rights reserved. TM and simulate Java between programs that use web browser system comprises everything necessary to Windows SunOS NeXT Palm OS, Windows CE, applications targeted Windows by Dubberly Design Office/Devine/Faris/Saddler. Sun, Sun Microsystems, the Sun logo, Java, the Java operating run programs written in the Java Solaris, Linux, Windows, those services. real-time operating proprietary HP-UX, AIX, FreeBSD Mac OS UP UX HP-UX RTOS, Linux, Symbian OS, at cell phones, SolarisTM coffee cup logo, J2EE, J2SE, J2ME, Enterprise JavaBeans, systems programming language, including the run on Unix AIX Compaq Tru64 proprietary systems pagers, PDAs, and systems (RTOS) systems Significant contributions from the following people EJB, JavaBeans, Java Card, Java Community Process, Java virtual machine, which may be a Java other small devices. proprietary systems run on interpreter, and the platform packages. Linux Alpha beOS made this map possible: Josh Bloch, Lisa Friendly, JCP, Javadoc, Java Embedded Server, JavaHelp, JavaServer Telematic networks Doug Kramer, Paul Pangaro, Robert Patten, Monica Pages, JSP, Java TV, Java 3D, Jini, JVM, PersonalJava,

JREs may be developed by Sun or by other 34 Irix RS6000 VMS TM connect computers with companies. Solaris FreeBSD telecommunications Pawlan, Carla Schroer, Leigh Shevchik, Alan Solaris, and SunOS are registered trademarks of Sun run on run on systems. Sommerer, Ken Tallman, and James Urquhart. Microsystems, Inc.

Thanks also to Cindy Bloch, Adam Cohn, Andrey Any errors or omissions are the responsibility of the 31 specific devices (hardware) servers personal workstations point-of-sale (POS) Java Card, subscriber televisions network-aware systems, pagers, cell identity module (SIM) appliances, Dikanskiy, Larry Freeman, Dale Green, Joann Gray, authors. Comments are welcome; contact Audrey Crane computers phones, and personal phones, and automobiles, and Cori Kaylor, Onno Kluyt, Stuart Marks, Shawn Moore, at [email protected]. digital assistants (PDAs) multi-application smart Telematic networks Chuck Mosher, Shaler Ney, Eduardo Pelegri-Llopart, cards Lori Uzzo, Brad Wetmore, and Hinkmond Wong. September 6, 2002

Check Again Throughout the project, we worked with Print and Distribute The map was printed at Color a copy editor. She checked each comprehensive Graphics in San Francisco. Sun initially distributed the revision for spelling, grammar, and sense. Sun’s legal map at the JavaOne conference in Japan. and trademark department also reviewed the map several times, as did an attorney working for our client’s department and two subject-matter experts. At the end, Sun’s marketing department asked for a few visual changes—and we faced a nerve-racking few days when a senior manager questioned whether the map contained too much proprietary information. Luckily we were able to show that the information was all already available on java.sun.com.

The map went through a total of 53 numbered versions/releases.

7 Using concept maps in product development Project Stats More Information

For more on concept mapping, The fi nal map contains: read Gowin and Novak’s Learning How to Learn. – 235 terms For more on teaching concept mapping, – 425 links (relationships) read Dubberly’s The Baseball Project: – 110 descriptions A Step-by-step Approach to Introducing Information Architecture, available at http://www.dubberly.com/articles/ We began the map in October 2000 and delivered the-baseball-projects.html printed copies in September 2001.

The process required: – 49 weeks – more than 50 interviews – more than 100 meetings – more than 2000 emails

The team that created the map included: – Audrey Crane, project manager, interviewer, researcher, mapper – Paul Devine, content expert, mapper – Hugh Dubberly, interviewer, mapper – Jim Faris, mapper, graphic designer – Paul Pangaro, our client – Harry Saddler, content expert, mapper, graphic designer – Ylva Wickberg, interaction programmer

8 Using concept maps in product development