US5632022A - Encyclopedia of software components - Google Patents
Encyclopedia of software components Download PDFInfo
- Publication number
- US5632022A US5632022A US07/792,501 US79250191A US5632022A US 5632022 A US5632022 A US 5632022A US 79250191 A US79250191 A US 79250191A US 5632022 A US5632022 A US 5632022A
- Authority
- US
- United States
- Prior art keywords
- software
- user
- picture
- list
- monitor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000010348 incorporation Methods 0.000 claims description 5
- 230000002123 temporal effects Effects 0.000 claims description 3
- 239000002585 bases Substances 0.000 description 24
- 238000000034 methods Methods 0.000 description 21
- 238000010586 diagrams Methods 0.000 description 12
- 238000004458 analytical methods Methods 0.000 description 10
- 230000000875 corresponding Effects 0.000 description 7
- 230000002104 routine Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 239000000243 solutions Substances 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 239000011257 shell materials Substances 0.000 description 4
- 238000005516 engineering processes Methods 0.000 description 3
- 230000002452 interceptive Effects 0.000 description 3
- 230000004301 light adaptation Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 210000000554 Iris Anatomy 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000012141 concentrates Substances 0.000 description 2
- 239000000789 fasteners Substances 0.000 description 2
- 239000000463 materials Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006011 modification reactions Methods 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 230000000699 topical Effects 0.000 description 2
- 238000004450 types of analysis Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000007988 ADA buffers Substances 0.000 description 1
- CYTYCFOTNPOANT-UHFFFAOYSA-N Ethylene tetrachloride Chemical compound data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nMzAwcHgnIGhlaWdodD0nMzAwcHgnIHZpZXdCb3g9JzAgMCAzMDAgMzAwJz4KPCEtLSBFTkQgT0YgSEVBREVSIC0tPgo8cmVjdCBzdHlsZT0nb3BhY2l0eToxLjA7ZmlsbDojRkZGRkZGO3N0cm9rZTpub25lJyB3aWR0aD0nMzAwJyBoZWlnaHQ9JzMwMCcgeD0nMCcgeT0nMCc+IDwvcmVjdD4KPHBhdGggY2xhc3M9J2JvbmQtMCcgZD0nTSA1Mi4wNTU1LDgwLjYxMzMgTCA3Mi4wODU3LDExNS4zMDcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM1QkI3NzI7c3Ryb2tlLXdpZHRoOjNweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wJyBkPSdNIDcyLjA4NTcsMTE1LjMwNyBMIDkyLjExNTksMTUwJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDozcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMScgZD0nTSA5Mi4xMTU5LDE1MCBMIDcyLjA4NTcsMTg0LjY5Mycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6M3B4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEnIGQ9J00gNzIuMDg1NywxODQuNjkzIEwgNTIuMDU1NSwyMTkuMzg3JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNUJCNzcyO3N0cm9rZS13aWR0aDozcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMicgZD0nTSA5Mi4xMTU5LDE1MCBMIDIwNy44ODQsMTUwJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDozcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMicgZD0nTSAxMDkuNDgxLDEyNi44NDYgTCAxOTAuNTE5LDEyNi44NDYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjNweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0zJyBkPSdNIDIwNy44ODQsMTUwIEwgMjI3LjkxNCwxODQuNjkzJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDozcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMycgZD0nTSAyMjcuOTE0LDE4NC42OTMgTCAyNDcuOTQ0LDIxOS4zODcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM1QkI3NzI7c3Ryb2tlLXdpZHRoOjNweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC00JyBkPSdNIDIwNy44ODQsMTUwIEwgMjI3LjkxNCwxMTUuMzA3JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDozcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNCcgZD0nTSAyMjcuOTE0LDExNS4zMDcgTCAyNDcuOTQ0LDgwLjYxMzMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM1QkI3NzI7c3Ryb2tlLXdpZHRoOjNweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8dGV4dCBkb21pbmFudC1iYXNlbGluZT0iY2VudHJhbCIgdGV4dC1hbmNob3I9ImVuZCIgeD0nNTIuMjM4NycgeT0nNTUuNTMwMicgc3R5bGU9J2ZvbnQtc2l6ZTozOHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZpbGw6IzVCQjc3MicgPjx0c3Bhbj5DbDwvdHNwYW4+PC90ZXh0Pgo8dGV4dCBkb21pbmFudC1iYXNlbGluZT0iY2VudHJhbCIgdGV4dC1hbmNob3I9ImVuZCIgeD0nNTIuMjM4NycgeT0nMjU2LjA0Nycgc3R5bGU9J2ZvbnQtc2l6ZTozOHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZpbGw6IzVCQjc3MicgPjx0c3Bhbj5DbDwvdHNwYW4+PC90ZXh0Pgo8dGV4dCBkb21pbmFudC1iYXNlbGluZT0iY2VudHJhbCIgdGV4dC1hbmNob3I9InN0YXJ0IiB4PScyNDcuNzYxJyB5PScyNTYuMDQ3JyBzdHlsZT0nZm9udC1zaXplOjM4cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7ZmlsbDojNUJCNzcyJyA+PHRzcGFuPkNsPC90c3Bhbj48L3RleHQ+Cjx0ZXh0IGRvbWluYW50LWJhc2VsaW5lPSJjZW50cmFsIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHg9JzI0Ny43NjEnIHk9JzU1LjUzMDInIHN0eWxlPSdmb250LXNpemU6MzhweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmaWxsOiM1QkI3NzInID48dHNwYW4+Q2w8L3RzcGFuPjwvdGV4dD4KPC9zdmc+Cg== data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nODVweCcgaGVpZ2h0PSc4NXB4JyB2aWV3Qm94PScwIDAgODUgODUnPgo8IS0tIEVORCBPRiBIRUFERVIgLS0+CjxyZWN0IHN0eWxlPSdvcGFjaXR5OjEuMDtmaWxsOiNGRkZGRkY7c3Ryb2tlOm5vbmUnIHdpZHRoPSc4NScgaGVpZ2h0PSc4NScgeD0nMCcgeT0nMCc+IDwvcmVjdD4KPHBhdGggY2xhc3M9J2JvbmQtMCcgZD0nTSAxMi42Mjg5LDE5LjI3MjEgTCAxOS4xODk5LDMwLjYzNicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzVCQjc3MjtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTAnIGQ9J00gMTkuMTg5OSwzMC42MzYgTCAyNS43NTA5LDQyJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMScgZD0nTSAyNS43NTA5LDQyIEwgMTkuMTg5OSw1My4zNjQnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xJyBkPSdNIDE5LjE4OTksNTMuMzY0IEwgMTIuNjI4OSw2NC43Mjc5JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNUJCNzcyO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMicgZD0nTSAyNS43NTA5LDQyIEwgNTguMjQ5MSw0Micgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTInIGQ9J00gMzAuNjI1NiwzNS41MDA0IEwgNTMuMzc0NCwzNS41MDA0JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMycgZD0nTSA1OC4yNDkxLDQyIEwgNjQuODEwMSw1My4zNjQnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0zJyBkPSdNIDY0LjgxMDEsNTMuMzY0IEwgNzEuMzcxMSw2NC43Mjc5JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNUJCNzcyO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNCcgZD0nTSA1OC4yNDkxLDQyIEwgNjQuODEwMSwzMC42MzYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC00JyBkPSdNIDY0LjgxMDEsMzAuNjM2IEwgNzEuMzcxMSwxOS4yNzIxJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNUJCNzcyO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJlbmQiIHg9JzE0LjU1NjYnIHk9JzE1LjQ4MDYnIHN0eWxlPSdmb250LXNpemU6MTBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmaWxsOiM1QkI3NzInID48dHNwYW4+Q2w8L3RzcGFuPjwvdGV4dD4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJlbmQiIHg9JzE0LjU1NjYnIHk9JzcxLjc2OTInIHN0eWxlPSdmb250LXNpemU6MTBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmaWxsOiM1QkI3NzInID48dHNwYW4+Q2w8L3RzcGFuPjwvdGV4dD4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJzdGFydCIgeD0nNjkuNDQzNCcgeT0nNzEuNzY5Micgc3R5bGU9J2ZvbnQtc2l6ZToxMHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZpbGw6IzVCQjc3MicgPjx0c3Bhbj5DbDwvdHNwYW4+PC90ZXh0Pgo8dGV4dCBkb21pbmFudC1iYXNlbGluZT0iY2VudHJhbCIgdGV4dC1hbmNob3I9InN0YXJ0IiB4PSc2OS40NDM0JyB5PScxNS40ODA2JyBzdHlsZT0nZm9udC1zaXplOjEwcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7ZmlsbDojNUJCNzcyJyA+PHRzcGFuPkNsPC90c3Bhbj48L3RleHQ+Cjwvc3ZnPgo= ClC(Cl)=C(Cl)Cl CYTYCFOTNPOANT-UHFFFAOYSA-N 0.000 description 1
- 281000030572 IBM companies 0.000 description 1
- 280000233992 Information Systems companies 0.000 description 1
- 281000175722 Motorola companies 0.000 description 1
- 240000006028 Sambucus nigra Species 0.000 description 1
- 280000440410 Software Group companies 0.000 description 1
- 230000027455 binding Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 229910000078 germane Inorganic materials 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixtures Substances 0.000 description 1
- RZVAJINKPMORJF-UHFFFAOYSA-N p-acetaminophenol Chemical compound data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nMzAwcHgnIGhlaWdodD0nMzAwcHgnIHZpZXdCb3g9JzAgMCAzMDAgMzAwJz4KPCEtLSBFTkQgT0YgSEVBREVSIC0tPgo8cmVjdCBzdHlsZT0nb3BhY2l0eToxLjA7ZmlsbDojRkZGRkZGO3N0cm9rZTpub25lJyB3aWR0aD0nMzAwJyBoZWlnaHQ9JzMwMCcgeD0nMCcgeT0nMCc+IDwvcmVjdD4KPHBhdGggY2xhc3M9J2JvbmQtMCcgZD0nTSAxMy42MzY0LDE2MC4xMDIgTCA1Ny42NzkyLDE0OC4zMDEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xJyBkPSdNIDYyLjA4MzUsMTQ5LjQ4MSBMIDY2LjM1NTIsMTMzLjUzOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEnIGQ9J00gNjYuMzU1MiwxMzMuNTM5IEwgNzAuNjI2OCwxMTcuNTk4JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMScgZD0nTSA1My4yNzUsMTQ3LjEyMSBMIDU3LjU0NjYsMTMxLjE3OScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEnIGQ9J00gNTcuNTQ2NiwxMzEuMTc5IEwgNjEuODE4MiwxMTUuMjM3JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMicgZD0nTSA1Ny42NzkyLDE0OC4zMDEgTCA2OC4yMjY4LDE1OC44NDknIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yJyBkPSdNIDY4LjIyNjgsMTU4Ljg0OSBMIDc4Ljc3NDQsMTY5LjM5Nicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTMnIGQ9J00gMTAxLjA2NywxNzcuNTU2IEwgMTE3LjUxNiwxNzMuMTQ5JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMycgZD0nTSAxMTcuNTE2LDE3My4xNDkgTCAxMzMuOTY0LDE2OC43NDInIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC00JyBkPSdNIDEzMy45NjQsMTY4Ljc0MiBMIDE0NS43NjUsMTI0LjY5OScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTQnIGQ9J00gMTQ0LjU0MywxNjQuNDk1IEwgMTUyLjgwMywxMzMuNjY1JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTAnIGQ9J00gMTMzLjk2NCwxNjguNzQyIEwgMTY2LjIwNSwyMDAuOTgzJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNScgZD0nTSAxNDUuNzY1LDEyNC42OTkgTCAxODkuODA4LDExMi44OTcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC02JyBkPSdNIDE4OS44MDgsMTEyLjg5NyBMIDIyMi4wNSwxNDUuMTM5JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNicgZD0nTSAxODguMTk2LDEyNC4xODIgTCAyMTAuNzY1LDE0Ni43NTEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC03JyBkPSdNIDIyMi4wNSwxNDUuMTM5IEwgMjM4LjI0MiwxNDAuOCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTcnIGQ9J00gMjM4LjI0MiwxNDAuOCBMIDI1NC40MzUsMTM2LjQ2MScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTgnIGQ9J00gMjIyLjA1LDE0NS4xMzkgTCAyMTAuMjQ4LDE4OS4xODInIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC05JyBkPSdNIDIxMC4yNDgsMTg5LjE4MiBMIDE2Ni4yMDUsMjAwLjk4Mycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTknIGQ9J00gMjAxLjI4MiwxODIuMTQ0IEwgMTcwLjQ1MiwxOTAuNDA0JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJzdGFydCIgeD0nNjMuOTAyNycgeT0nMTA2LjUzOCcgc3R5bGU9J2ZvbnQtc2l6ZToxNXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZpbGw6I0U4NDIzNScgPjx0c3Bhbj5PPC90c3Bhbj48L3RleHQ+Cjx0ZXh0IGRvbWluYW50LWJhc2VsaW5lPSJjZW50cmFsIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSc4OS45MjA5JyB5PScxODIuODIzJyBzdHlsZT0nZm9udC1zaXplOjE1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7ZmlsbDojNDI4NEY0JyA+PHRzcGFuPk48L3RzcGFuPjwvdGV4dD4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJzdGFydCIgeD0nODQuODU0JyB5PScxOTguMDIyJyBzdHlsZT0nZm9udC1zaXplOjE1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7ZmlsbDojNDI4NEY0JyA+PHRzcGFuPkg8L3RzcGFuPjwvdGV4dD4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJzdGFydCIgeD0nMjYwLjUxNScgeT0nMTM1LjYxOCcgc3R5bGU9J2ZvbnQtc2l6ZToxNXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZpbGw6I0U4NDIzNScgPjx0c3Bhbj5PSDwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nODVweCcgaGVpZ2h0PSc4NXB4JyB2aWV3Qm94PScwIDAgODUgODUnPgo8IS0tIEVORCBPRiBIRUFERVIgLS0+CjxyZWN0IHN0eWxlPSdvcGFjaXR5OjEuMDtmaWxsOiNGRkZGRkY7c3Ryb2tlOm5vbmUnIHdpZHRoPSc4NScgaGVpZ2h0PSc4NScgeD0nMCcgeT0nMCc+IDwvcmVjdD4KPHBhdGggY2xhc3M9J2JvbmQtMCcgZD0nTSAzLjM2MzY0LDQ0Ljg2MjQgTCAxNS44NDI1LDQxLjUxODcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xJyBkPSdNIDE3LjA5MDMsNDEuODUzIEwgMTguNDczNywzNi42OTAyJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMScgZD0nTSAxOC40NzM3LDM2LjY5MDIgTCAxOS44NTcxLDMxLjUyNzQnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xJyBkPSdNIDE0LjU5NDYsNDEuMTg0MyBMIDE1Ljk3NzksMzYuMDIxNScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEnIGQ9J00gMTUuOTc3OSwzNi4wMjE1IEwgMTcuMzYxMywzMC44NTg3JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMicgZD0nTSAxNS44NDI1LDQxLjUxODcgTCAxOS40NzY5LDQ1LjE1MzEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yJyBkPSdNIDE5LjQ3NjksNDUuMTUzMSBMIDIzLjExMTMsNDguNzg3NScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTMnIGQ9J00gMjYuODQzOCw1MC4xNTM3IEwgMzIuMTUwMSw0OC43MzE5JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMycgZD0nTSAzMi4xNTAxLDQ4LjczMTkgTCAzNy40NTY0LDQ3LjMxMDEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC00JyBkPSdNIDM3LjQ1NjQsNDcuMzEwMSBMIDQwLjgwMDEsMzQuODMxMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTQnIGQ9J00gNDAuNDUzNyw0Ni4xMDcgTCA0Mi43OTQzLDM3LjM3MTknIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMCcgZD0nTSAzNy40NTY0LDQ3LjMxMDEgTCA0Ni41OTE1LDU2LjQ0NTInIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC01JyBkPSdNIDQwLjgwMDEsMzQuODMxMyBMIDUzLjI3ODksMzEuNDg3Nicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTYnIGQ9J00gNTMuMjc4OSwzMS40ODc2IEwgNjIuNDE0LDQwLjYyMjcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC02JyBkPSdNIDUyLjgyMjIsMzQuNjg0OSBMIDU5LjIxNjcsNDEuMDc5NScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTcnIGQ9J00gNjIuNDE0LDQwLjYyMjcgTCA2Ny42NDc5LDM5LjIyMDMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC03JyBkPSdNIDY3LjY0NzksMzkuMjIwMyBMIDcyLjg4MTgsMzcuODE3OScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTgnIGQ9J00gNjIuNDE0LDQwLjYyMjcgTCA1OS4wNzAzLDUzLjEwMTYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC05JyBkPSdNIDU5LjA3MDMsNTMuMTAxNiBMIDQ2LjU5MTUsNTYuNDQ1Micgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTknIGQ9J00gNTYuNTI5OCw1MS4xMDczIEwgNDcuNzk0Niw1My40NDc5JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJzdGFydCIgeD0nMTcuNjA1OCcgeT0nMjkuNjg1OCcgc3R5bGU9J2ZvbnQtc2l6ZTo0cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7ZmlsbDojRTg0MjM1JyA+PHRzcGFuPk88L3RzcGFuPjwvdGV4dD4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9JzI0Ljk3NzYnIHk9JzUxLjI5OTgnIHN0eWxlPSdmb250LXNpemU6NHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZpbGw6IzQyODRGNCcgPjx0c3Bhbj5OPC90c3Bhbj48L3RleHQ+Cjx0ZXh0IGRvbWluYW50LWJhc2VsaW5lPSJjZW50cmFsIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHg9JzIzLjU0MicgeT0nNTUuNjA2MScgc3R5bGU9J2ZvbnQtc2l6ZTo0cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7ZmlsbDojNDI4NEY0JyA+PHRzcGFuPkg8L3RzcGFuPjwvdGV4dD4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJzdGFydCIgeD0nNzMuMzEyNScgeT0nMzcuOTI1JyBzdHlsZT0nZm9udC1zaXplOjRweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmaWxsOiNFODQyMzUnID48dHNwYW4+T0g8L3RzcGFuPjwvdGV4dD4KPC9zdmc+Cg== CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- 239000006072 pastes Substances 0.000 description 1
- 230000003362 replicative Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001960 triggered Effects 0.000 description 1
- 230000001755 vocal Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0483—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance interaction with page-structured environments, e.g. book metaphor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/961—Operator interface with visual structure or function dictated by intended use
- Y10S715/965—Operator interface with visual structure or function dictated by intended use for process control and configuration
- Y10S715/966—Computer process, e.g. operation of computer
- Y10S715/968—Computer process, e.g. operation of computer interface for database querying and retrieval
Abstract
Description
The invention described herein was made in the performance of work under a NASA contract, and is subject to the provisions of Public Law 96-517 (35 USC 202) in which the Contractor has elected not to retain title.
1. Technical Field
The invention is related to software development and engineering tools which increase software design productivity.
2. Background Art
A high fraction of the time spent developing new software systems is spent performing mundane functions that are well known in the art. By comparison, when a mechanic goes to make a new device, he does not reinvent mundane pieces, such as the threaded screw. The same cannot be said of software engineers. Software engineers have long identified the need for convenient, easy-to-learn, intuitive software reuse systems to support rapid prototyping.
Software development is a tedious, expensive, time-consuming, and error-prone process. Approaches to improving the process include object-oriented programming, computer-aided software (CASE), software reuse, formal mathematical verification, structured walkthroughs, formal testing regimens, and so on.
Most hardware artifacts are constructed from standard parts fitted together with standard fasteners. Custom parts and fasteners are used only when their much higher cost can be justified. Using standard parts not only makes replacement easier but also amortizes the cost of design, engineering, and tooling across large production runs, often spanning decades of time.
The analogy in software to the use of standard parts in hardware is the reuse of previously developed software code, modules, libraries, designs, architectures, documentation, test data, test routines, test strategies, and so on. All of these information artifacts, and more, are software in the sense that they are directly related to the production and use of computer instructions. We use the term "software" in this broad sense in this paper.
One reason software is expensive is that, for the most part, we do not amortize the cost or development by reusing components in new applications. Software is still, by and large, a craft process characterized by the custom design and fabrication or components. The lack of software reuse is especially ironic since economies of scale are easier to achieve in software than in hardware. The reason is that software is mere information and, therefore, massless. Replicating and distributing it is relatively inexpensive (a major cost driver in hardware industries is the mass of the objects being produced). One would think, on the face of it, that an industry that could achieve economies of scale relatively easily would eagerly do. Yet, we have not seen the "Software Industrial Revolution".
Many reasons have been advanced for the failure of the software industry to adopt a standard component parts technology. Perhaps the most plausible reason is that it often takes more effort merely to research existing software components than to develop them anew. In other words, many software developers-potential consumers of reusable software-simply find it more cost-effective to invent new software than to look for old software.
The only discipline in which software component reuse is traditional is computational mathematics. This is at least partly due to the fact that it requires a great deal of specialized knowledge and experience to write correct and efficient mathematical software. It is, in fact, for non-specialists, not easier to reinvent than to reuse. We find it interesting that the majority of mathematical software--the most reused software--is written in Fortran. Of all major programming languages, Fortran is perhaps the least hospitable, prima facie, to software reuse. It has virtually none of the packaging and information-hiding features that conventional wisdom deems helpful, if not necessary, for reusability. We take this fact as supporting evidence in favor of our consumer-side approach to software reuse, as opposed to a producer-side approach that posits basic changes in the way software is written as a precondition for reuse. People will reuse software, even if that software is not written for maximum reusability, if it is easier for them to reuse than to reinvent.
One prior attempt at making software retrievable is disclosed in U.S. Pat. No. 4,860,204 to Gendron et al. In this patent, software components called softrons are created in a single language and stored in a file cabinet metaphor, rather than using existing software components of any language. A particular softron is accessed in response to a user's selection of relevant software attributes. However, there is no disclosure of any means for permitting the user to first view the attributes and other characteristics of the accessed softron before incorporating it in a program under construction, absent external means of some sort. Gendron et al. therefore have nothing to do with attempting to reuse existing software, but rest their concept on creating a complete set of software components in a single language.
It is the principal object of the invention to make it easier to reuse than to reinvent software. We can achieve maximum impact by focusing on consumer issues: by trying to make it easier to reuse software in general. We feel that the process that a potential consumer of reusable software components must go through consists of the following steps:
locating,
understanding,
retrieving,
validating, and
adapting
existing software. We call this process LURVA, an acronym constructed from the first letters or each or the five steps. This is in concert with other, published task analyses of software reuse.
We focus on facilitating LURVA in a very general way to make it easier to reuse software in general. By software in general, we mean software in any programming language, for any application domain, for any platforms, etc.
A related object of the invention is to directly aid locating, understanding, and retrieving, the first three steps of LURVA. In the invention, an encyclopedia of software components (ESC), locating is facilitated through a very general classification scheme, based on semantic networks, and through tying this scheme closely to a hypermedia browsing-and-searching front end. Understanding is facilitated by describing software with electronically cross-linked text, graphics, animation, audio, video, and typeset mathematics, i.e., hypermedia. Retrieving is facilitated by encapsulating knowledge about network access along with the descriptions of software and by automatically computing closed sets of software items that enable a chosen time to be used as an independent unit or a component.
The invention was developed with the following assumptions:
Many programmers and managers feel that the effort of reusing software is greater than the effort of writing software from scratch.
The balance is tipped in favor of reuse for mathematical software because this software is inherently difficult to write and because there is a long radiation of reusing this kind of software.
We do not need to wait for fundamental shifts in the way software is produced before trying to tip the balance in favor of reuse for general software. We can promote reuse now by simply encapsulating, automating, and distributing knowledge about how to reuse.
The LURVA process accounts for most of the cost of software reuse on the consumer side.
Maximum, short-term leverage to facilitating LURVA can be applied by automating the locating, understanding, and retrieving (LUR-) steps. Even if programmers must validate and adapt (-VA) components manually, they will find the total effort less than that of reinventing.
There exist vast numbers of accessible and reusable software artifacts now, mostly on distributed network nodes.
Programmers are especially eager to reuse their own software and to make it accessible and reusable by other programmers (the urge to publish).
If we can make it easy for programmers to submit their own software for consideration for inclusion in the ESC, we create an automatic growth mechanism for the ESC by capitalizing on the urge to publish.
Finally, programmers will want to reuse the mechanisms of the ESC itself to make hypermedia front ends for special-purpose, local collections of software in the broadest sense of the word (designs, architectures, test data, etc.)
The foreseeable effects of the invention are the following:
most impact: The standard practice of programming is changed so that reuse is almost always attempted before reinvention. The habit of pulling software off networks by consulting an on-line, comprehensive, international ESC becomes commonplace. Furthermore, the job category of software technician is created. A software technician is one who fabricates software by assembling specified, standard parts without profound knowledge of the working of these parts. Programmers are freed from routine assembly to devote themselves to design.
moderate impact: The ESC proves to be a valuable programmer's tool. At the very least, it helps to teach programmers to document, classify, and reuse their own software. Requirements for improvements on the structure and contents of the ESC result from the research program.
The invention is a computer system embodying an encyclopedia of software components (ESC) which stores a large compendium of reusable software components with a hypermedia browser system consisting of an encyclopedia metaphor at the highest level corresponding to the compendium and a tray metaphor at the lowest level corresponding to each software component. In the tray metaphor, each software component is in its own "tray" containing several plates corresponding to different representations of the software component (including graphical and animated representations in appropriate cases), the attributes of the software component, utilities associated with the software component, etc. The invention further includes a search system employing the tray metaphor which searches on selected attributes stored in the attributes plate of each tray.
ESC enables the convenient and intuitive location and retrieval of reusable software tools and parts through a graphical hypertext user interface. Hypermedia is a term for information systems that can depict animation, audio, text, and graphics.
The software developer first locates the general category of books in which he is interested, then he scans the book, as if it were a standard reference work, to determine which pre-existing software components will solve his immediate development needs.
Using this scheme, existing software packages can simply be referenced and copied into the developer's program. With ESC, the developer is free to concentrate on those portions of his program that are unique to his particular effort and requiring novel solutions. In other words, his development procedure will now be more like that of the mechanic who makes a new device by connecting existing pieces to new pieces.
This approach should permit truly rapid prototyping, greatly reduce the cost of software development, increase the speed of development, and ensure greater robustness in the resulting prototype.
ESC permits an endless series of software reference books to be created, just as a library can hold a nearly limitless collection of books. In fact, software developers are allowed to create reference books themselves and place them in the ESC library.
One embodiment of ESC supports rapid prototyping in an application prototyping environment.
In its current version, there are various software components residing in the ESC. For design purposes these can be divided into two groups. Group one components are subroutines, functions, procedures and objects with a minimum of entanglements and external dependencies. Group one components live at the language cell level of use. They are small, well abstracted modules of functionality easily incorporated into larger programs. The group two components tend to be larger, stand-alone applications that live at the executive or shell level of use. Examples of these are screen editors and system utilities.
Future embodiments of ESC will include advanced media technology, including voice and video, and will link ESC to a database management system (DBMS). The new media will allow developers to experiment with non-textual communication of information about software, such as computer animation and recorded verbal descriptions. Integrating ESC with a DBMS will allow very large tool bases to be handled and will facilitate technology transfer.
Yet another embodiment of ESC includes a graphical hypertext feature called HyperCode. HyperCode will allow a programmer not only to retrieve software, but to modify it, execute it, and cross-link it with other software using interactive graphics and hypertext.
FIG. 1 depicts a portion of a computer generated video display representing one aspect of the encyclopedia metaphor of the invention.
FIG. 2 is a graphical flow diagram representing the operation of the invention.
FIG. 3 is a simplified schematic block diagram of a computer system embodying the invention,
FIG. 4 depicts a computer generated video display representing another aspect of the encyclopedia metaphor of the invention.
FIG. 5 depicts a computer generated video display of a dataplate in one aspect of the tray metaphor of the invention.
FIG. 6 depicts a computer generated video display of a taxonomic graph in one aspect of the navigation aid feature of the invention.
FIG. 7 depicts the leftmost part of a computer generated video display of a user's search path in another aspect of the navigation aid feature of the invention.
FIG. 8 depicts the rightmost part of a computer generated video display of a user's search path of FIG. 7.
FIG. 9 depicts the computer generated display of FIG. 7 with a pop-up menu listing search path branching options.
FIG. 10 is a block diagram of a computer system embodying the invention corresponding to FIG. 3.
FIG. 11 is a block diagram of the central tool base of the system of FIG. 10.
FIG. 12 is a block diagram of the browser system in the system of FIG. 10.
FIG. 13 is a block diagram of the maintenance subsystem of the system of FIG. 10.
FIG. 14 is a block diagram of the analysis subsystem of the system of FIG. 10.
FIG. 15 depicts a computer generated video display representing the tray metaphor of the invention and containing several information plates representing different aspects of the software component of the tray.
FIG. 16 depicts the full computer generated video display in which the user has opened to one page of a selected encyclopedia volume in the encyclopedia metaphor.
Introductory Overview:
The ESC uses hypermedia front ends for subsystems that classify, catalog, retrieve, and display information about large, structured collections of reusable software. The ESC concentrates information about software; the software itself is on local and distributed repositories, e.g., networks, archive servers and bulletin boards. Among the features of the ESC are a metaphor of an encyclopedia at the highest level (shown in FIG. 1) and a metaphor of a tray of informative plates at the lowest (software component) level in a hypermedia context. In addition, an automated subsystem can add not only new entries but new software classification structures.
The architecture of the ESC is illustrated informally in FIG. 2 and schematically in FIG. 3. The informal illustration of FIG. 2 shows the subsystems of the ESC iconically, emphasizing the graphical appearance of each element on the user's video monitor screen. The schematic of FIG. 3 is a more formal rendition of the subsystems of the ESC and the data and control flows among the subsystems.
In FIG. 2, the invention provides a video display 200 of a topological graph of distributed software collections, each group of software being a point 210 whose relations with other groups are indicated by connecting lines 212. The display can be translated to another video display 214 which illustrates the same relations in an object oriented database. In the video display 214, each software group is a block 216 which flows from more generic groups and branches into more specific groups from left to right in FIG. 2 along connecting lines 218. The invention automatically generates (220) from the information represented by the object oriented database display 214 multiple hypermedia search and browse tools (222) consisting of a video display 224 of an encyclopedia metaphor comprising a bookshelf browser tool and a video display 226 of a logical search-by-inquiry interface comprising a search tool. The video display 226 consists of topical lists of software components having attributes corresponding to those specified by the user. Interactive links 228 between these tools provides navigation tools consisting of an overview navigator video display 230 and a history list navigator video display 232. Each of the navigation tool video displays 230, 232 illustrates to the user the history of his activity in searching or browsing among various software topics.
In FIG. 3, a computer system embodying the invention is briefly summarized as including an application driver 300 having graphical user interfaces (GUI's) which provide to the user 302 the video displays illustrated in FIG. 2. The application driver 300 interfaces with a bookshelf browser 304, a searcher 306 and a publisher 308. The publisher 308 is the source of a software components description database 310 which provides the search-by-logical query interface display (226 in FIG. 2) of the searcher 306. A hypermedia generator 312 generates the display of the metaphor of the encyclopedia bookshelf (224 in FIG. 2) comprising the highest level of the hypermedia specification database 314 used by the browser 304. A retriever 316 responds to requests from both the browser 304 and the searcher 306 to retrieve software components finally selected by the user 302 from either a local repository 318 or from remote off-line or networked repositories 20.
One of the ways the ESC supports an encyclopedia metaphor is by displaying a shelf of books about software in a widow on the programmer's screen, as shown in FIG. 1. We choose the metaphor of an encyclopedia for three reason. First, the encyclopedia metaphor is uniquely suited to realization in hypermedia. Second, the metaphor will be immediately familiar to most software developers, who are literate people who have used traditional encyclopedias often. Third, the encyclopedia is an appropriate metaphor on epistemological grounds. Encyclopedias arose from efforts to classify and encapsulate all human knowledge. They use pictures, text and a rich web of cross references to cope with expansive, complex, ill-bounded, ambiguous, and incomplete knowledge. Except for special cases (such as computational mathematics), high-level descriptions or software are inexact. In many cases, the only exact description of a piece of software is the software itself. Yet, high-level descriptions are precisely what are needed by reusers who must understand and evaluate a component quickly before "buying," without learning the details. Being inexact, high-level descriptions can be expansive, complex, ill-bounded, ambiguous, and incomplete, i.e., the kind of knowledge for which encyclopedias were designed. Furthermore, classifying software is almost as difficult as classifying all human knowledge. The reason is that software can be written about any topic. It is a kind of universal theory language-any sufficiently cogent idea can be "brought to life" as a computer program. Thus, the space of knowledge of the application domains of software is almost the same as the space of all human knowledge. We conclude that the encyclopedia is an appropriate metaphor for representing and containing knowledge about software.
A metaphor for a simpler mechanism of an encyclopedia might be a catalog. Such a metaphor could adequate for certain, restricted kinds of software. Consider again the example of computational mathematics. The language of mathematics is sufficiently precise and universal that it is possible to give unambiguous, highlevel specifications of mathematical software components. Furthermore, this field is reasonably well understood, and there is reasonable consensus on the overall framework for classifying works in the field. Specifications and taxonomies are currently published in massive paper catalogs. Users can retrieve components from repositories with high confidence that the components will meet their requirements, which are expressed in the same language as the specifications. However, other areas of software application are not as standardized nor as easily described as mathematics. Generally, it is necessary both to describe software with long narratives, diagrams, and even video; and to describe the relations between components explicitly and separately for each pair of components. Different kinds of structures are needed to present different kinds of high-level information. Because of its rigid, uniform structure, the catalog metaphor breaks down when stretched to represent fuzzy and variegated knowledge.
The realization of the ESC consists of computer programs (subsystems) to simulate the appearance and operation, as it were, of an encyclopedia. The ESC user has access to three subsystems through mutually consistent graphical user interfaces (GUIs) of the applications driver 300 of FIG. 3:
the bookshelf browser 304 supports unstructured, interactive browsing.
the searcher 306 supports goal-directed, logical query-style searches.
the publisher 308 supports automated component insertion and rebuilding of the browser and searcher.
The bookshelf window of the video display 224 of FIG. 2 is the primary interface to the ESC. It contains a picture or a shelf or books strongly reminiscent of encyclopedias (FIG. 1). This window waits visibly in the background of the programming environment, ready to be brought to the foreground when the need to find a software component arises. When dormant, the bookshelf window is analogous to a bookcase containing dormant reference materials. When active, the bookshelf window and its subwindows are analogous to reference books open on the programmers desk. The bookshelf is designed to be inviting and obvious; one or our goals is that it must be possible to learn how to use the ESC simply by using it.
The titles 100 on the book spines 102 (FIG. 1) denote application domains, e.g., Artificial Intelligence, Computer Graphics, Data Structures, and so on. These titles correspond to an implicit question asked or the user, "What is the application domain of the software you are looking for?" When the user clicks on the spine 102 of a book 104, the book 104 is opened. Accompanied by the sound of a book being removed from a shelf 106, a picture of a book 400 open to a hierarchical table of contents 402 is presented in a new window or video display illustrated in FIG. 4. Each item 404 in the table of contents 402 has a link or "button" to a deeper level in the ESC classification scheme which the user can explore by "clicking" onto the item 404 with a cursor 406 or a mouse (not shown). The table of contents 402 usually corresponds to a second implicit question asked of the user: "What is the functionality of the software you are looking for?"
When browsing, the user supplies successively sharper characterizations of the software of interest by choosing options from button lists and traversing deeper levels in the open-book window. Index tabs 408 appear on the edges of pages 410 passed to help the user keep track of current location. The button lists, index tabs, and open-book displays are linked together in a hierarchy that mirrors the ESC classification hierarchy. This hierarchy can be tailored to some degree at the time the ESC is built with the Publisher 308 (the process of building the ESC is explained in greater detail below)
Eventually, the user reaches the final, lowest level of the hierarchy, arriving at one or a few components. At that point, a new kind of metaphor, a tray of informative plates including the data plate 500 illustrated in FIG. 5, is displayed on the user's video monitor. The data plate 500 displays information about the component, references to related components, and buttons for automated retrieval of the component, including the transitive closure of all software on which the component depends, from distributed repositories. Any network connections, dial-ups, mounting of remote file systems, etc., necessary for retrieval are done automatically by the ESC.
For example, in FIG. 5, the data plate 500 explains the quicksort algorithm software component using a title and descriptor field 502, a code field 504 and animation fields 506, 508 illustrating the operation of the software component. The user can "click" on any one of several buttons, including a Get It button 510 for retrieving the software component itself, an Animate button 512 for running an animated display (for example a cartoon that may be available for this software component), an Explain It button 514 for displaying a detailed text explanation of the software component and a Take Me Elsewhere button 516 for terminating the session with the present software component. Graphical displays 518, 520 (which may be animated upon request) graphically depict the concept of the algorithm performed by the software component.
We make a conscious effort to limit the depth and the branching factor of the ESC, attending to a "magic number seven, plus or minus two" that characterizes the limitations of human short-term memory. To aid the user further, the Bookshelf is integrated with spatial and temporal navigators:
an overview diagram that shows the contents of the entire encyclopedia in the form of a graph (FIG. 6), and
a history list that keeps track of the user's path through the graph in the form of a stack with optional branching points at each level (FIGS. 7, 8 and 9).
The graph 600 of FIG. 6 corresponds to a relevant portion of the object oriented data base 214 of FIG. 2. In FIG. 6, the graph illustrates a taxonomy of mathematical properties, in which a generic block 602 named "property" branches into topical blocks 604 which in turn branch out into sub-topical blocks 606. The graph 600 serves as a guide to the user in planning his search or browse activity.
The history list 700 of FIG. 7 keeps the user from getting "lost" by showing him where his search or browse activity has thus far taken him. The history list 700 is somewhat redundant with the index tabs 408 of FIG. 4, but the evident metaphorical value of the latter argue for keeping them. Also, we feel that having a large variety of albeit redundant navigation aids, especially for large hypermedia documents, is helpful rather than confusing. Such tools are held to be generally helpful in hypermedia systems and are well-known in the art. Each block 702 in the history list is a window depicting the software topic or component that the user has looked at in chronological order from left to right. In the example of FIGS. 7 and 8, the user has started at the highest browse level, so that the first block 702a is the encyclopedia bookshelf display of FIG. 1. The user next selected the sorting topic from the table of contents of one of the volumes so that the next block 702b illustrates an open volume at the appropriate page. The user next selected the attribute "In Memory" and from the resulting information in the "In Memory" block 702c selected the Merge Sort algorithm of block 702d. FIG. 8 shows that the last selection of the user was a fortran listing of the Merge Sort software component (block 702e). FIG. 9 illustrates the use of a pop-up window 900 which the user can request to make a selection at any block. In the example of FIG. 9, the user has requested a listing of the various sort routines performed in memory at the "In Memory" block 702c, so that the pop-up menu 900 lists all of the available software components which perform sort routines in memory. The cursor 902 is on the Merge Sort label 904 of the pop-up window 900, so that the user can "click" on the label 904.
The Searcher allows a user to specify desired characteristics in any order, unlike the Browser, which encourages a time order of access that mirrors the classification hierarchy. The Searcher bypasses the encyclopedia metaphor and instead first presents classification criteria in scrolling lists from which selections are made. No lists are presented that are not known to be germane at any point. For example, a user who has not sufficiently sharpened a query to distinguish between mathematical software and computer graphics software would neither be given a list of arithmetic precisions to choose from nor a list of color conventions to choose from. The user can specify search criteria in Boolean combinations of pattern-matching expressions. The Searcher is accessible from buttons on the overview diagram and from a menu. Whenever the user "clicks" on a particular software component on a list, the "tray" of that component is then displayed so that the user can view the various informative plates therein, such as the data plate illustrating the attributes of that software component.
Both the Bookshelf and the Searcher depend on a flexible and robust classification scheme. When developing the ESC, we discovered the simple hierarchies (e.g., the Dewey decimal system) and faceted classification schemes that classify via a fixed number of characteristic are inadequate. To give one counterexample, consider software for solving equations. A straightforward faceting scheme would have us classify all such software under the intersection of the functionality=solve facet and the operand=equations facet. At this point in the Cartesian facet space, however, we may have several thousand components, far too many for a user to peruse and choose from at one stroke without further refinement. The reason is that there are many different descriptors for equations, e.g., algebraic, Diophantine, linear, nonlinear, differential, separable, etc., and many different kinds of solution algorithms. It is not right to represent all equations with the Cartesian product of all equations descriptors because many compound descriptors denoting equation types that do not exist will result. Furthermore, it is not right simply to add every kind of equation to the operand facet and every kind of solutions strategy to the functionality facet because not every solution strategy is applicable to every kind of equation. A great number of empty points in facet space would be created. The faceting scheme itself breaks down under this counterexample. Equations and solution strategies naturally fit into a hierarchy of types that simply does not map to a Cartesian space. We find that faceting, while a powerful and even necessary classification technique, does not suffice alone to represent many kinds of taxonomies.
In an alternative embodiment of the invention, the classification scheme of the Searcher is based on semantic networks, which are standard AI structures for representing knowledge. Such a taxonomic scheme allows the builders of a collection to specify arbitrary characteristics of components of the collection and arbitrary relations among the characteristics. This scheme is rich enough to represent virtually any kind of software artifact, from design documents to program schemata to data structures to individual procedures.
The Publisher is the subsystem for adding new classification structures and new components to the ESC. Its user interface has mandatory and optional on-line forms to fill in with attributes of a component. The mandatory attributes constitute catalog and classification information. They include items like the name of the component, its function, its programming language, its application domains, the names of directories and files containing the component source and documentation, the version number, the date of posting, and so one. The values of these attributes are organized in multiple inheritance hierarchies that represent the taxonomic hierarchy. The optional attributes are user-definable, though some are named by reserved keywords, and constitute search and usage information. The optional forms allow the user to add arbitrary, new, hierarchically structured attributes to the description of any component. The Publisher also rebuilds the entire hypermedia system, through a lower-level subsystem, called the Hypermedia Generator, to ensure internal consistency among the Browser and Searcher and external consistency with the database.
It is possible to use the Publisher to create arbitrary databases and to generate a Browser and Searcher with the Hypermedia Generator. Thus, a user can create special-purpose, custom collections of software with front ends just like that of the ESC. these custom collections are called "Handbooks of Software Components" to distinguish them from the master "Encyclopedia of Software Components." It is useful to reserve that specific name for a single, refereed collection components. Users are free to create as many Handbooks as desired, but contributions to the ESC are moderated by us for the time being.
In another alternative embodiment of the invention, the Searcher uses deduction and case-based reasoning to help the user find desired software. In this alternative embodiment, the Browser can aid a lost user by using machine learning to detect well-worn browsing paths that others have traversed and to suggest short cuts. The instrumentation for such learning features in the Browser would also pay dividends in the empirical assessment program by aiding data collection.
In yet another alternative embodiment of the invention, the ESC suggests some validation grades, such as those in Table 1, to the software contributor.
A+ Formally validated.
A Exhaustively tested over the input domain.
A- Tested on random inputs (Monte Carlo).
B+ Packaged with test data and working test programs
B Extensively reused by programmers other than the author of the component (say, in n applications by k other programmers).
C Extensively reused by the author of the component (in n applications for m years).
D Used by the author in one application.
F Untested.
One clear direction for development is in supporting formal testing regimens directly in the ESC. Requiring test routines, input sets, and results to be packaged with components would be a start. Allowing the user to execute test programs interactively on a candidate component before committing to retrieval, with support for perusing and visualizing the results, would be another step.
As regards adaptation, the ESC contains software in many programming languages and for many hardware and software platforms. Nothing in the taxonomic scheme of the ESC restricts its contents in any way. However, the programming language and platform attributes are identified in the description of every component. Adaptation, that is, the changing of interfaces between a component, its calling software, and its platform environment, is currently left to the user.
The ESC can (and should) contain adaptation libraries, e.g., software emulations of operating systems, portable implementations of POSIX, language bindings of graphics standards, portable programming language processors, and so on. Directions and tools for calling C routines from ADA, Fortran routines from Lisp, etc., should be packaged with components.
The invention overcomes the need for revolutionary new programming languages, paradigms, tools, and methodologies to take hold before attacking the problem of software reuse from the consumer side. The invention makes it easier not only for consumers of reusable software to find what they want but for the moderators of collections of software to maintain and update collections as well as the hypermedia front ends that make access easy.
Working Example
The system of FIG. 3 will now be described in detail with reference to the schematic system diagram of FIG. 10. The Central Tool Base 1000 is the repository of the reusable software that the Encyclopedia metaphor refers to. It receives user queries 1002 about software attributes and submissions 1004 of new software from the local browser subsystem 1006, where the user of the entire ESC system resides. It receives authorized updates from the ESC maintenance subsystem 1008. It sends retrievals 1010 of software components to the local browser subsystem 1006. It sends the users'submissions 1004 through to the ESC maintenance subsystem 1008. Access records 1011 are automatically collected by the central tool base 1000 and sent to the software engineering analysis subsystem 1012, where evaluation of the ESC takes place. The central tool base receives authorized software component updates 1014 from the ESC maintenance subsystem 1008. Productivity measures 1016 are transmitted by the browser system 1006 to the analysis subsystem 1012.
Referring to FIG. 11, the central tool base 1000 consists of a data base management system (DBMS) 1100, and interaction monitor 1120, a software tool collection 1130, a backup process 1140 and backup tapes 1150 or an equivalent mass storage device. The DBMS 1100 implements the central tool base 1000. It controls access to and modification of the Software Tool Collection 1130 (which includes metadata), which is the file containing the actual data. The DBMS 1100 communicates with that file via updates and retrievals. Retrievals from the tool collection 1130 are sent to the local browser subsystem 1006. The DBMS 1100 receives queries 1002 from the interaction monitor 1120. It receives authorized updates 1014 from the ESC maintenance subsystem 1008 and forwards them to the software tool collection 1130. The interaction monitor 1120 receives queries 1002 and submissions 1004 from the browser subsystem 1006 and forwards the queries 1002 to the DBMS 1100 and forwards the submissions 1004 to the Maintenance subsystem 1008. The interaction monitor makes an access record of all user activity and forwards the access records 1011 to the analysis subsystem 1012.
Referring to FIG. 12, the browser subsystem 1006 consists of a graphical browser 1200, local tool copies 1220, local encyclopedia data base 1230 and a local maintainer process 1240. The graphical browser 1200 includes the interface 1200a of the ESC with the user 1250. As the browser 1006 is used, it generates queries 1002 and submissions 1004, which are sent to the central tool base 1000. Retrievals 1010 from the central tool base 1000 are received by the local browser subsystem 1006. Productivity measures 1016 and other evaluation data are generated in the local browser subsystem 1006 (by the user 1250 or others), and they are sent to the software engineering analysis subsystem 1012 for analysis and incorporation into publications and presentations.
The graphical browser 1200 is a reading system for color, multiwindow, large window graphical hypertext. The graphical browser 1200 interprets the user's mouse clicks and keyboard hits, generates queries for the central tool base, passes user submissions to the central tool base (which routes them to the ESC maintenance subsystem after recording the transaction), routes retrievals of software to the repository of local tool copies 1220, gets encyclopedia data (cards) from the local encyclopedia data base 1230, and sends signals to the local maintainer process 1240. These last signals inform the local maintainer process 1240 when and how to update the local encyclopedia data base 1230.
The local maintainer process 1240 receives commands (or signals) from the graphical browser 1200 that informs it when an how to update the local encyclopedia data base 1230. These updates take the form of new trays of informative plates or "cards" to be inserted into the encyclopedia data base 1230, either adding to it or replacing old cards. The maintainer process 1240 receives new cards from the ESC maintenance subsystem 1008.
The user 1250 is a programmer (or software engineer) engaged in some software development task. The goal of the ESC task is to measure the impact of ESC on programmer productivity. The user 1250 interacts with the graphical browser 1200, giving it mouse clicks and keyboard events. The user 1250 receives graphical displays from the graphical browser 1200. The user 1250 files task status reports to his or her management, which interprets them and assesses productivity.
Suppose a user has a tool, utility, or other reusable software component that he feels ought to be represented in the encyclopedia. The user will have available a "submit" operation, allowing him to submit the software and supporting material to the encyclopedia. The submission first flows from the local browser subsystem 1006 to the central tool base 1000, where it is automatically logged as a type of transaction or access. The log entry is sent (automatically) to the software engineering analysis subsystem 1012. Referring to FIG. 13, The user's submission is sent to a submissions data base 1300 or "holding tank" in the maintenance subsystem 1008. A submissions evaluation team, including a tool analyst or computer scientist 1302, a hypertext author 1304, a documentor 1306 and a database administrator 1308 takes it from there, evaluates it, tests it, documents it, and creates graphical hypertext for it. When a user's submission has passed the ESC maintenance subsystem evaluation team, an authorized update 1310 may be sent through a global encyclopedia base 1312 of the maintenance subsystem 1008 to the central tool base 1000, with a concomitant encyclopedia update going to the local browser subsystem 1006.
The Software Engineering Analysis subsystem 1012 is the locus of evaluation of the ESC. Referring to FIG. 14, the analysis subsystem 1012 stores the access records received from the browser subsystem 1006 in a tool base access history 1400, which is accessed by analysis processes 1402 through a software engineering scientist 1404 who performs productivity analyses 1406 which produce productivity reports accessible through the local browser subsystem 1006. The questions, "How is ESC used?", "Does it increase or decrease programmer productivity?" are answered by the software engineering scientist 1404 in this subsystem by examining productivity data received from users and their management in the local browser subsystem 1006. They also examine access records automatically produced in the central tool base.
Tray of Informative Plates Metaphor:
Once the user has employed the encyclopedia metaphor 224 (FIG. 2) or the search list 226 to select a specific software component to evaluate for possible use, the browser 1006 displays a tray of several informative plates (or windows) describing various aspects of the selected software component on the user's video monitor. The preferred video display of a tray 500' is illustrated in FIG. 15 which includes, in addition to the informative plates described above with reference to FIG. 5, an additional plate 522 containing additional fields of information. A complete user video display which includes a window corresponding to the encyclopedia metaphor, a window for an opened encyclopedia volume and a window corresponding to the tray metaphor is illustrated in FIG. 16.
There are various types of reuseable software components stored in the ESC. For design purposes these can be divided into two groups. Group One Components are subroutines, functions, procedures and objects with a minimum of entanglements and external dependencies. Group One components live at the language cell level of use. They are small, well abstracted modules of functionality easily incorporated into larger programs. Group Two Components tend to be larger, stand-alone applications that live at the executive or shell level of use. Examples of these are screen editors and system utilities.
The illustration of FIG. 15 shows the tray display of informative plates for a Group One component. The tray display provides, at a glance, a summary of all pertinent information that a user would require to use the component. This visual and textual summary provides several different views of the same component simultaneously. These views will now be enumerated and explained with reference to FIG. 15. The tray as a whole is analogous to a part specification such as that which occurs in a reference work such as The Linear Data Book.
Plate Definitions
Each tray is separated into 6 graphical and textual subfields called plates. There are currently six plates, the Title Plate, the Data Plate, the What Is Plate, the Call Plate, the Part Plate and the Doc Plate.
Title Plate:
This plate contains the name of the software component, its class and a one sentence explanation of what the component is or does. The Title Plate is analogues to the tab on a file folder. It is probably the first thing that a textually oriented user reads.
Data Plate:
This plate contains important type and rating information about the software component. The goal of the Data Plate is to provide good information for finding the right component, if it exists. The Data Plate is analogous to the NEMA rating plate on an appliance that specifies voltage, current and power requirements and is the second thing a textually oriented user might read.
The format for specifying Data Plate files is defined below in accordance with the following fields. Certain fields have buttons on which the user may "click" as described as follows:
Name Of Field: <>, <▴>
Verbage describing the contents of the field. A Set description if field values draw from an enumerated list of possible values. [valueA, valueB, . . . ] Example: Possible contents of field.
If the button symbol <> (shown in angle brackets above) is present then the contents of the field are accessible through an on card button that the user may press at any time. If the on screen icon <▴> (angle brackets imply it's optional) is present then the contents of the field are interpreted graphically in some form other than the Data Plate on the card. Bold italics indicates fields used in hypertext primary navigation schemes. Bold only indicates fields that are candidates for use in secondary or backup navigation schemes.
The Data Plate fields are:
Native Name Field: ▴
This field specifies the name of the component in its implementation language without argument lists, delimiters, or separators. Example: dot-- Vec3
English Name Field: ▴
This field specifies the English name that a person would use to succinctly describe the component. Example: Dot Product
One Line Description Field: ▴
This field specifies in eighty characters or less what the component is or does. Example: Dot, scalar or inner product of two three vectors.
Explanation Field:
This field specifies in one hundred words or less what the component is or does. Example: The dot product operator computes the magnitude of the projection of one vector onto another.
Read Me Field:
This field specifies the name of a file containing documentation in excess of typewritten page about the component. Example: Vec3IO.doc
References Field:
This field specifies the name of a file containing directly relevant theoretical, science, or engineering information about the component. Example: Vec3.ref
Language Field: ▴
This field specifies the language in which the part is written. The set of possible language field specifiers is: [Ada, C, Fortran66, Fortran77, Algol68, Modula2, Pascal, Other] Example: C
Category Field:
This field indicates the category of problem that the component is designed to address. The set of possible category field specifiers is published in: "The Full Computing Reviews Classification Scheme 1987 Version" Example:
G.1.3 Numerical Linear Algebra:
Vector Operations
Genus Field: ▴
This field indicates the bundling class of which the component is a member. The set of possible genus field specifiers is: [Abstract Data Type,Library, Input Output Package, Demonstration, Test, Other] Example: Abstract Data Type
Species Field: ▴
This field indicates the type or aggregation level of the component. The Species Field is language dependent. For the `C` language:
[Main Program, Procedure, Macro, Structure]
For the Fortran language:
[Main Program, Subroutine, Function, Block Data Subprogram, Common Block]
For Pascal:
[Procedure, Function, Type]
For Modula:
[Definition Module, Implementation Module, Procedure, Type]
For Ada:
[Subprogram, Task, Package]
Example: Procedure
Package Name Field
This text field names any membership that the part has in a larger aggregation such as a file or package. Example: Vec3.c
I/O Name Field:
This text field specifies the file containing I10 components for the datatypes that the current component manipulates. Example: Vec3IO.c
Test Stand Field:
This text field specifies the name of any test stands constructed for use with this component. Example: Vec3Test.c
Demo Stand Field: Like test stands but simpler, this text field specifies the name of any demonstration stands constructed for use with this component. Example: Vec3Demo.c
Performance Data Field:
This text field specifies the file containing performance information about the component. Example: Vec3Test.pmon
H/W Kind Field:
Indicates machine makes, models and configurations capable of executing the component. Example:
Sun 3/50 and
Sun 3/160 and
Iris 3130 and
Iris 4D/20
S/W Env Field:
Indicates operating system, compiler, and executive or shell requirements for compiling, linking or executing the component. Example:
Berkeley 4.2 Unix or
System V Unix
Cshell cr
Bourne shell
S/W Scripts Field:
Specifies the name of compilation and linking scripts necessary to make the component operational. Examples:
Vec3Test.make
RunVec3.csh
Test Kinds Field: Indicates what kind of testing has been done and to what extent. Draws from set of: [Certified, Range Tested Random Input Tested] Allowing untested software components to be placed in the encyclopedia is probably a bad idea. Example: Random Input Tested
Copyright Field:
Specifies the name and address of the holder(s) of any copyrights, liens, or other encumbrances on the software component. Example:
Copyright (c) 1984
Gene Muzak AND
Supercomputing Services Inc. AND
Jet Propulsion Laboratory AND
Motorola Mainframes
Version Field:
Component version designators. Example: Version 1.1 Apr. 6, 1984
Authors Field:
This ASCII text field specifies the names of the author(s) of the component at the time the component was contributed to the system, with the primary contributor (if applicable) listed first, the secondary contributor next and so on. If the component had multiple contributors who contributed equally, the listing order will be determined by random selection and assignment, and the names will be presented with an asterisk (*) to indicate that this is the case. Example:
Gene Muzak*,
Van Warren*,
Matt Rain*
Address Field:
Specifies the terrestrial and electronic mail addresses of the component author(s). Sufficient information should be provided to facilitate communication with real persons, even if this is redundant with other information in the database. Template:
Name Affiliation (Company or Institution)
Mail Stop
Street
City, State, Zip
Example:
Gene Muzak Supercomputing Services Corp. Mail Stop 421-DM 800 Bashner Road Missoula, Mont. 54121
______________________________________ muzak@ssc.desi.arpa . . . same for second author . . . same for third author______________________________________
Notes:
1) The city and state in the Address Field will be used as a primary navigation scheme (location navigation).
2) The Authors Field and Address Field are a matched pair. A pair is present for each author. The Authors Field is perpetually static, however a contributing author may request that his or her address fields be updated to reflect changes in institutional affiliation or location.
Date In Field:
Gives the date the component was contributed to the system. Example:
Feb. 1, 1993
Requests Field:
Gives the number of requests made for the component since its contribution. Example:267
Note:
The Date In and Requests fields taken together form an informal but democratic method of rating software. Derivative information might be valuable here, showing popularity as a function of time.
Inputs Field: ▴
Lists inputs and their types, if applicable, to the component. The inputs should be declared as they would in the native language definition of the component. Example: Vec3 a,b;
Outputs Field: ▴
Lists outputs from the component, including pointers in the input argument list that are touched by the component during its operation. Example:
extern Float dot-- Vec3 ();
Entry Points Field:
Lists names and calling interfaces of components with multiple entry points such as abstract data types or object types.
Exit Paths Field:
Lists information about multiple exit paths, if applicable.
Exceptions:
Lists exceptions states, error flags, and error conditions capable of being triggered during operation of the component. Example:
ZERO-- LENGTH-- VECTOR
HUGE-- COMPONENT-- OVERFLOW
What Is Plate:
This plate contains an illustration indicating what the software component is, what it does or what it is used for.
Call Plate:
The Call Plate shows a generic calling sequence as it would appear in a user program or source declaration. Its purpose is to convey code-like usage and typing information sufficient for use in a textual cut and-paste environment.
Part Plate:
The Part Plate is visual analog of the calling sequence for a dataflow programming paradigm. It shows the software component or part, its inputs and output arcs, and the typing, if applicable that binds to the I/O arcs. Instance names are not annotated to the dataflow diagram since they are not necessary at the user level. (Do plumbers name their pipes Mary or Fred?) Type names are affixed to the arcs since it is (or should be) illegal to join dissimilar data streams without a coupler. The purpose of the Part Plate is to convey code-like usage and typing information adequate for use in a graphical cut and-paste environment.
Doc Plate:
The Doc Plate contains a summary explanation of what the component is, does, or is used for. It is the textual analog of any visual material in the What It Is Plate. This analogy should be enforced when components are added so that this dualism is evident to the user. Newer versions of the Doc Plate will contain a "more" button for more textual detail. Similarly the What Is Plate might animate when clicked or struck, providing additional graphical detail.
Button Requirements:
Read Me Button:
Enables access to the mandatory Read Me documentation file in ASCII text format.
Perform Button:
Provides access to any performance data & benchmarks.
Reference Button:
Provides access to any technical references providing theoretical, science, or engineering information about the component.
Depends On Button:
For the `C` language would provides access to the include files required for this component to compile, link, or run. For other languages would convey what this component depends on environmentally or definitionally to operate.
Left Sibling Button:
Accesses the component card for the left sibling when pressed from the component viewing level.
Up to Parent Button:
Accesses the view of the ensemble of components when pressed from the component viewing level.
Right Sibling Button:
Accesses the component card for the right sibling when pressed from the component viewing level.
While the invention has been described in detail with specific reference to preferred embodiments thereof, it is understood that variations and modifications thereof may be made without departing from the true spirit and scope of the invention.
Claims (26)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/792,501 US5632022A (en) | 1991-11-13 | 1991-11-13 | Encyclopedia of software components |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/792,501 US5632022A (en) | 1991-11-13 | 1991-11-13 | Encyclopedia of software components |
Publications (1)
Publication Number | Publication Date |
---|---|
US5632022A true US5632022A (en) | 1997-05-20 |
Family
ID=25157107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/792,501 Expired - Fee Related US5632022A (en) | 1991-11-13 | 1991-11-13 | Encyclopedia of software components |
Country Status (1)
Country | Link |
---|---|
US (1) | US5632022A (en) |
Cited By (185)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5697788A (en) * | 1994-10-11 | 1997-12-16 | Aleph Logic Ltd. | Algorithm training system |
US5708826A (en) * | 1995-05-16 | 1998-01-13 | Fujitsu Limited | Apparatus and method for converting presentation data |
WO1998014903A2 (en) * | 1996-09-30 | 1998-04-09 | Trellix Corporation | Hypermedia authoring and publishing system |
US5808614A (en) * | 1995-06-16 | 1998-09-15 | Sony Corporation | Device and method for displaying a guide picture in virtual reality |
WO1998049629A1 (en) * | 1997-05-01 | 1998-11-05 | Datig William E | Universal epistemological machine (a.k.a. android) |
US5835094A (en) * | 1996-12-31 | 1998-11-10 | Compaq Computer Corporation | Three-dimensional computer environment |
US5857189A (en) * | 1996-05-08 | 1999-01-05 | Apple Computer, Inc. | File sharing in a teleconference application |
US5870092A (en) * | 1994-07-28 | 1999-02-09 | Hewlett-Packard Company | Page turning facility |
US5911145A (en) * | 1996-07-29 | 1999-06-08 | Rae Technology, Inc. | Hierarchical structure editor for web sites |
US5978799A (en) * | 1997-01-30 | 1999-11-02 | Hirsch; G. Scott | Search engine including query database, user profile database, information templates and email facility |
US6003046A (en) * | 1996-04-15 | 1999-12-14 | Sun Microsystems, Inc. | Automatic development and display of context information in structured documents on the world wide web |
US6012055A (en) * | 1996-04-09 | 2000-01-04 | Silicon Graphics, Inc. | Mechanism for integrated information search and retrieval from diverse sources using multiple navigation methods |
WO2000002146A1 (en) * | 1998-07-02 | 2000-01-13 | Copernican Technologies, Inc. | Accessing, viewing and manipulation of archived information |
US6016488A (en) * | 1993-09-02 | 2000-01-18 | Microsoft Corporation | Method and system for constructing queries |
US6052121A (en) * | 1996-12-31 | 2000-04-18 | International Business Machines Corporation | Database graphical user interface with user frequency view |
WO2000022518A1 (en) * | 1998-10-14 | 2000-04-20 | Unisys Corporation | An object management system supporting the use of application domain knowledge mapped to technology domain knowledge |
US6064384A (en) * | 1996-08-26 | 2000-05-16 | E-Brook Systems Pte Ltd | Computer user interface system and method having book image features |
US6074345A (en) * | 1998-10-27 | 2000-06-13 | University Of Florida | Patient data acquisition and control system |
WO2000042518A1 (en) * | 1999-01-13 | 2000-07-20 | Ab Initio Software Corporation | Parallelizing applications of script-driven tools |
US6151603A (en) * | 1994-09-02 | 2000-11-21 | Wolfe; Mark A. | Document retrieval system employing a preloading procedure |
US6233546B1 (en) | 1998-11-19 | 2001-05-15 | William E. Datig | Method and system for machine translation using epistemic moments and stored dictionary entries |
US6263351B1 (en) * | 1995-06-07 | 2001-07-17 | Mark A. Wolfe | Document research system and method for efficiently displaying and researching information about the interrelationships between documents |
EP1120719A2 (en) * | 1997-08-22 | 2001-08-01 | SAP Aktiengesellschaft | Browser for hierarchical structures |
US6279016B1 (en) * | 1997-09-21 | 2001-08-21 | Microsoft Corporation | Standardized filtering control techniques |
US6292813B1 (en) | 1997-11-17 | 2001-09-18 | Mark A. Wolfe | System and method for communicating information relating to a network resource |
US6321374B1 (en) * | 1997-11-07 | 2001-11-20 | International Business Machines Corporation | Application-independent generator to generate a database transaction manager in heterogeneous information systems |
US6336131B1 (en) | 1996-10-08 | 2002-01-01 | Mark A. Wolfe | System and method for communicating information relating to a network resource |
US6341372B1 (en) | 1997-05-01 | 2002-01-22 | William E. Datig | Universal machine translator of arbitrary languages |
US20020013795A1 (en) * | 2000-06-21 | 2002-01-31 | Bodin Dresevie | Serial storage of ink and its properties |
US6374273B1 (en) | 1998-06-05 | 2002-04-16 | International Business Machines Corporation | Reformatting a first single-column markup document into a multi-column document, and formatting second markup document in the background, while displaying the first reformatted document |
US20020049787A1 (en) * | 2000-06-21 | 2002-04-25 | Keely Leroy B. | Classifying, anchoring, and transforming ink |
US6385600B1 (en) * | 1997-04-03 | 2002-05-07 | At&T Corp. | System and method for searching on a computer using an evidence set |
US6407757B1 (en) * | 1997-12-18 | 2002-06-18 | E-Book Systems Pte Ltd. | Computer-based browsing method and computer program product for displaying information in an electronic book form |
US20020080126A1 (en) * | 2000-12-21 | 2002-06-27 | Keely Leroy B. | Mode hinting and switching |
US20020099552A1 (en) * | 2001-01-25 | 2002-07-25 | Darryl Rubin | Annotating electronic information with audio clips |
US20020097270A1 (en) * | 2000-11-10 | 2002-07-25 | Keely Leroy B. | Selection handles in editing electronic documents |
WO2002069141A1 (en) * | 2001-02-15 | 2002-09-06 | Wheelhouse Corporation | Method and apparatus creation and performance of service engagement modeling |
US6460040B1 (en) | 1996-02-27 | 2002-10-01 | Datamize Llc | Authoring system for computed-based information delivery system |
US6604103B1 (en) | 1994-09-02 | 2003-08-05 | Mark A. Wolfe | System and method for information retrieval employing a preloading procedure |
US6704741B1 (en) | 2000-11-02 | 2004-03-09 | The Psychological Corporation | Test item creation and manipulation system and method |
US6714214B1 (en) | 1999-12-07 | 2004-03-30 | Microsoft Corporation | System method and user interface for active reading of electronic content |
US20040107217A1 (en) * | 1991-06-21 | 2004-06-03 | Reed Hastings | Method and apparatus for modifying relocatable object code files and monitoring programs |
US20040153997A1 (en) * | 1995-06-02 | 2004-08-05 | International Business Machines Corporation | Remote monitoring of computer programs |
WO2004077272A2 (en) * | 2003-02-27 | 2004-09-10 | Electronic Data Systems Corporation | System and method for software reuse |
US6795853B1 (en) | 1998-06-30 | 2004-09-21 | International Business Machines Corporation | Integration of additional computer components into a computer operation through attribute enabled interactive selections presented in composite lists available to the user in a variety of display screens |
US20040205624A1 (en) * | 2001-08-01 | 2004-10-14 | Lui Charlton E. | System and method for scaling and repositioning drawings |
US20040215361A1 (en) * | 2003-04-28 | 2004-10-28 | Hlotyak Stephen J. | Automatic test system with easily modified software |
US20040221263A1 (en) * | 2003-04-30 | 2004-11-04 | Udo Arend | Guided data entry |
US6820111B1 (en) * | 1999-12-07 | 2004-11-16 | Microsoft Corporation | Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history |
US20040268253A1 (en) * | 1999-12-07 | 2004-12-30 | Microsoft Corporation | Method and apparatus for installing and using reference materials in conjunction with reading electronic content |
US20050078097A1 (en) * | 2001-08-01 | 2005-04-14 | Microsoft Corporation | Dynamic rendering of ink strokes with transparency |
US20050105944A1 (en) * | 2001-06-27 | 2005-05-19 | Microsoft Corporation | Transform table for ink sizing and compression |
US20050105946A1 (en) * | 2000-06-21 | 2005-05-19 | Microsoft Corporation | Transform table for ink sizing and compression |
US20050160411A1 (en) * | 2003-09-19 | 2005-07-21 | Neeraj Sangal | Apparatus and method for managing design of a software system using dependency structure |
US20050162413A1 (en) * | 2001-08-01 | 2005-07-28 | Microsoft Corporation | Rendering ink strokes of variable width and angle |
WO2005081636A2 (en) * | 2004-03-03 | 2005-09-09 | Gautam Dharamdas Goradia | Interactive system for building, organising, and sharing one’s own encyclopedia in one or more languages |
US20050203942A1 (en) * | 2004-03-15 | 2005-09-15 | Ramco Systems Limited | User interfaces and software reuse in model based software systems |
US6957417B2 (en) * | 1997-04-25 | 2005-10-18 | Computer Associates Think, Inc. | Method and system for assembling and utilizing components in component object systems |
US6957233B1 (en) | 1999-12-07 | 2005-10-18 | Microsoft Corporation | Method and apparatus for capturing and rendering annotations for non-modifiable electronic content |
US6968533B1 (en) * | 2000-01-19 | 2005-11-22 | Fuji Xerox Co., Ltd. | Process description apparatus and method, and process classification method |
US20050267962A1 (en) * | 2004-05-28 | 2005-12-01 | Grigor Svetoslavov | Graphical user interface for monitoring classloading references |
US20060010373A1 (en) * | 1996-02-27 | 2006-01-12 | Datamize Llc | Portal information delivery system for personal computers and SOHO computer systems |
US20060010396A1 (en) * | 1999-12-07 | 2006-01-12 | Microsoft Corporation | Method and apparatus for capturing and rendering text annotations for non-modifiable electronic content |
US6992687B1 (en) | 1999-12-07 | 2006-01-31 | Microsoft Corporation | Bookmarking and placemarking a displayed document in a computer system |
US20060026568A1 (en) * | 2001-07-05 | 2006-02-02 | Microsoft Corporation | System and methods for providing versioning of software components in a computer programming language |
US20060041836A1 (en) * | 2002-09-12 | 2006-02-23 | Gordon T J | Information documenting system with improved speed, completeness, retriveability and granularity |
US7010754B2 (en) * | 1999-12-14 | 2006-03-07 | Sun Microsystems, Inc. | Method, system and user interface for inputting and manipulating tokenized strings |
US7017108B1 (en) * | 1998-09-15 | 2006-03-21 | Canon Kabushiki Kaisha | Method and apparatus for reproducing a linear document having non-linear referential links |
US20060067334A1 (en) * | 2004-08-18 | 2006-03-30 | Ougarov Andrei V | System and methods for dynamic generation of point / tag configurations |
US20060072627A1 (en) * | 2004-10-04 | 2006-04-06 | Sony Corporation | Audio/video synchronizing system and monitor apparatus |
US20060161597A1 (en) * | 2005-01-14 | 2006-07-20 | Ougarov Andrei V | Child data structure update in data management system |
US7103594B1 (en) | 1994-09-02 | 2006-09-05 | Wolfe Mark A | System and method for information retrieval employing a preloading procedure |
US20060200741A1 (en) * | 1999-11-01 | 2006-09-07 | Demesa Jesse G | Modeling system for retrieving and displaying data from multiple sources |
US20060218131A1 (en) * | 2005-03-28 | 2006-09-28 | Mario Brenes | Interface chaining to populate a class-based model |
US20060228654A1 (en) * | 2005-04-07 | 2006-10-12 | International Business Machines Corporation | Solution builder wizard |
US20060230382A1 (en) * | 2005-04-12 | 2006-10-12 | Moulckers Ingrid M | System and method for managing a reusable set of business solution components |
US20060236260A1 (en) * | 2004-12-09 | 2006-10-19 | Microsoft Corporation | Journal display having three dimensional appearance |
US7185274B1 (en) | 1999-12-07 | 2007-02-27 | Microsoft Corporation | Computer user interface architecture wherein users interact with both content and user interface by activating links |
US7234108B1 (en) | 2000-06-29 | 2007-06-19 | Microsoft Corporation | Ink thickness rendering for electronic annotations |
US20070156550A1 (en) * | 2005-12-30 | 2007-07-05 | Der Emde Martin V | Architectural design for cash and liquidity management application software |
US20070156500A1 (en) * | 2005-12-30 | 2007-07-05 | Wilfried Merkel | Architectural design for sell from stock application software |
US20070156499A1 (en) * | 2005-12-30 | 2007-07-05 | Arthur Berger | Architectural design for self-service procurement application software |
US20070156476A1 (en) * | 2005-12-30 | 2007-07-05 | Alexander Koegler | Architectural design for service request and order management application software |
US20070156490A1 (en) * | 2005-12-30 | 2007-07-05 | Volker Faisst | Architectural design for internal projects application software |
US7243299B1 (en) | 2000-04-21 | 2007-07-10 | Microsoft Corporation | Methods and apparatus for displaying multiple contexts in electronic documents |
US20070162893A1 (en) * | 2005-12-30 | 2007-07-12 | Gerd Moosmann | Software model process component |
US20070168240A1 (en) * | 2005-12-30 | 2007-07-19 | Shai Alfandary | Architectural design for make to stock application software |
US20070168303A1 (en) * | 2005-12-30 | 2007-07-19 | Gerd Moosmann | Software model process interaction |
US20070174811A1 (en) * | 2005-12-30 | 2007-07-26 | Stefan Kaetker | Software model integration scenarios |
US20070186209A1 (en) * | 2005-12-30 | 2007-08-09 | Stefan Kaetker | Software modeling |
US7257604B1 (en) | 1997-11-17 | 2007-08-14 | Wolfe Mark A | System and method for communicating information relating to a network resource |
US20070220046A1 (en) * | 2005-12-30 | 2007-09-20 | Gerd Moosmann | Software model business objects |
US20070226078A1 (en) * | 2006-03-06 | 2007-09-27 | Transaxtions Llc | Guiding info tabs with guide selection |
US20070233598A1 (en) * | 2006-03-30 | 2007-10-04 | Martin Von Der Emde | Providing payment software application as enterprise services |
US20070233541A1 (en) * | 2006-03-30 | 2007-10-04 | Martin Schorr | Providing accounting software application as enterprise services |
US20070233539A1 (en) * | 2006-03-30 | 2007-10-04 | Philipp Suenderhauf | Providing human capital management software application as enterprise services |
US20070233575A1 (en) * | 2006-03-30 | 2007-10-04 | Arthur Berger | Architectural design for strategic sourcing application software |
US20070234282A1 (en) * | 2006-03-31 | 2007-10-04 | Uta Prigge | Composite application modeling |
US20070233581A1 (en) * | 2006-03-30 | 2007-10-04 | Markus Peter | Providing product catalog software application as enterprise services |
US20070233574A1 (en) * | 2006-03-30 | 2007-10-04 | Alexander Koegler | Providing customer relationship management application as enterprise services |
US20070265862A1 (en) * | 2006-04-13 | 2007-11-15 | Jens Freund | Software model business process variant types |
US20070265860A1 (en) * | 2006-03-30 | 2007-11-15 | Karina Herrmann | Providing supplier relationship management software application as enterprise services |
US7302638B1 (en) | 1995-06-07 | 2007-11-27 | Wolfe Mark A | Efficiently displaying and researching information about the interrelationships between documents |
US20080022196A1 (en) * | 1997-04-09 | 2008-01-24 | Boye Steven R | Method and apparatus for implementing web pages having smart tables |
US7337389B1 (en) | 1999-12-07 | 2008-02-26 | Microsoft Corporation | System and method for annotating an electronic document independently of its content |
US7343596B1 (en) | 2002-03-19 | 2008-03-11 | Dloo, Incorporated | Method and system for creating self-assembling components |
US7346890B1 (en) | 2003-03-17 | 2008-03-18 | Dloo, Incorporated | Method and system for creating linkable programming languages |
US20080114812A1 (en) * | 2004-11-19 | 2008-05-15 | Bea Systems, Inc. | Data object identification, tracking, filtering and monitoring using data object fingerprints in a repository |
US20080208890A1 (en) * | 2007-02-27 | 2008-08-28 | Christopher Patrick Milam | Storage of multiple, related time-series data streams |
US7458014B1 (en) | 1999-12-07 | 2008-11-25 | Microsoft Corporation | Computer user interface architecture wherein both content and user interface are composed of documents with links |
US20090132903A1 (en) * | 2007-11-21 | 2009-05-21 | Microsoft Corporation | Visual system for visualizing, navigating, and editing attribute lattices within olap databases |
US20090171818A1 (en) * | 2007-12-31 | 2009-07-02 | Sap Ag | Architectural design for expense reimbursement application software |
US20090171712A1 (en) * | 2007-12-31 | 2009-07-02 | Matthias Heinrichs | Architectural Design for Ad-Hoc Goods Movement Software |
US20090171811A1 (en) * | 2007-12-31 | 2009-07-02 | Peter Markus A | Architectural Design For Product Catalog Management Application Software |
US20090171716A1 (en) * | 2007-12-31 | 2009-07-02 | Sap Ag | Architectural design for personnel events application software |
US20090171698A1 (en) * | 2007-12-31 | 2009-07-02 | Sap Ag | Providing human capital management software application as enterprise services |
US20090171758A1 (en) * | 2007-12-31 | 2009-07-02 | Shai Alfandary | Architectural design for physical inventory application software |
US20090171713A1 (en) * | 2007-12-31 | 2009-07-02 | Armin Schwarz | Architectural Design for Self-Service Procurement Application Software |
US7574649B1 (en) * | 1997-08-14 | 2009-08-11 | Keeboo Sarl | Book metaphor for modifying and enforcing sequential navigation of documents |
US20090262722A1 (en) * | 2008-04-21 | 2009-10-22 | Honeywell International Inc. | Method to Calculate Transitive Closure of Multi-Path Directed Network Based on Declarative MetaData |
US20100070556A1 (en) * | 2008-09-18 | 2010-03-18 | Sap Ag | Architectural Design for Data Migration Application Software |
US20100070318A1 (en) * | 2008-09-18 | 2010-03-18 | Achim Clemens | Providing logistics execution application as enterprise services |
US20100070395A1 (en) * | 2008-09-18 | 2010-03-18 | Andreas Elkeles | Architectural design for payroll processing application software |
US20100070337A1 (en) * | 2008-09-18 | 2010-03-18 | Andreas Poth | Providing supply chain control software as enterprise services |
US20100070336A1 (en) * | 2008-09-18 | 2010-03-18 | Sap Ag | Providing Customer Relationship Management Application as Enterprise Services |
US20100070330A1 (en) * | 2008-09-18 | 2010-03-18 | Peer Marschall | Architectural design for customer returns handling application software |
US20100070555A1 (en) * | 2008-09-18 | 2010-03-18 | Jacques Duparc | Architectural design for time recording application software |
US20100070391A1 (en) * | 2008-09-18 | 2010-03-18 | Sap Ag | Architectural Design for Tax Declaration Application Software |
US20100070317A1 (en) * | 2008-09-18 | 2010-03-18 | Nir Pachter | Architectural design for sell from stock application software |
US20100070329A1 (en) * | 2008-09-18 | 2010-03-18 | Sap Ag | Architectural Design for Opportunity Management Application Software |
US7685521B1 (en) * | 1999-03-23 | 2010-03-23 | Canon Kabushiki Kaisha | Information searching apparatus, method and memory medium therefor |
US20100082497A1 (en) * | 2008-09-18 | 2010-04-01 | Sap Ag | Providing Foundation Application as Enterprise Services |
US7716349B1 (en) | 1992-12-09 | 2010-05-11 | Discovery Communications, Inc. | Electronic book library/bookstore system |
US20100138258A1 (en) * | 2008-12-03 | 2010-06-03 | Sap Ag | Architectural design for intra-company stock transfer application software |
US20100138257A1 (en) * | 2008-12-03 | 2010-06-03 | Sap Ag | Architectural design for selling standardized services application software |
US20100138269A1 (en) * | 2008-12-03 | 2010-06-03 | Sap Ag | Architectural design for selling project-based services application software |
US20100138255A1 (en) * | 2008-12-03 | 2010-06-03 | Sap Ag | Architectural design for manual invoicing application software |
US20100153158A1 (en) * | 2008-12-11 | 2010-06-17 | Sap Ag | Providing project management software application as enterprise services |
US20100153240A1 (en) * | 2008-12-11 | 2010-06-17 | Andreas Bold | Providing Payroll Software Application as Enterprise Services |
US7770151B2 (en) | 2005-04-07 | 2010-08-03 | International Business Machines Corporation | Automatic generation of solution deployment descriptors |
US7797678B2 (en) | 2005-04-07 | 2010-09-14 | International Business Machines Corporation | Automatic generation of license package for solution components |
US20100262508A1 (en) * | 2009-04-10 | 2010-10-14 | Will Volnak | Method and system for an online library marketplace |
USD626562S1 (en) * | 2008-06-30 | 2010-11-02 | Nellcor Puritan Bennett Llc | Triangular saturation pattern detection indicator for a patient monitor display panel |
USD626561S1 (en) * | 2008-06-30 | 2010-11-02 | Nellcor Puritan Bennett Llc | Circular satseconds indicator and triangular saturation pattern detection indicator for a patient monitor display panel |
US7835989B1 (en) | 1992-12-09 | 2010-11-16 | Discovery Communications, Inc. | Electronic book alternative delivery systems |
US20100293488A1 (en) * | 1998-07-01 | 2010-11-18 | Sony Corporation | Extended elements and mechanisms for displaying a rich graphical user interface in panel subunit |
US7849393B1 (en) | 1992-12-09 | 2010-12-07 | Discovery Communications, Inc. | Electronic book connection to world watch live |
US7861166B1 (en) | 1993-12-02 | 2010-12-28 | Discovery Patent Holding, Llc | Resizing document pages to fit available hardware screens |
US7865567B1 (en) | 1993-12-02 | 2011-01-04 | Discovery Patent Holdings, Llc | Virtual on-demand electronic book |
US7865405B2 (en) | 1992-12-09 | 2011-01-04 | Discovery Patent Holdings, Llc | Electronic book having electronic commerce features |
US20110106881A1 (en) * | 2008-04-17 | 2011-05-05 | Hugo Douville | Method and system for virtually delivering software applications to remote clients |
US20110179014A1 (en) * | 2010-01-15 | 2011-07-21 | Ian Schechter | Managing data queries |
US8001523B1 (en) * | 2001-07-05 | 2011-08-16 | Microsoft Corporation | System and methods for implementing an explicit interface member in a computer programming language |
US8073695B1 (en) | 1992-12-09 | 2011-12-06 | Adrea, LLC | Electronic book with voice emulation features |
US8095949B1 (en) | 1993-12-02 | 2012-01-10 | Adrea, LLC | Electronic book with restricted access features |
US20120185480A1 (en) * | 2010-09-29 | 2012-07-19 | International Business Machines Corporation | Method to improve the named entity classification |
USD665401S1 (en) * | 2011-03-09 | 2012-08-14 | Microsoft Corporation | Display screen with graphical user interface |
US8316344B2 (en) | 2005-12-30 | 2012-11-20 | Sap Ag | Software model deployment units |
US8326703B2 (en) | 2005-12-30 | 2012-12-04 | Sap Ag | Architectural design for product catalog management application software |
CN102870091A (en) * | 2010-05-03 | 2013-01-09 | 西门子公司 | Macro management system for an engineering system for parameterizing switchgear |
US8380549B2 (en) | 2008-09-18 | 2013-02-19 | Sap Ag | Architectural design for embedded support application software |
US8380553B2 (en) | 2005-12-30 | 2013-02-19 | Sap Ag | Architectural design for plan-driven procurement application software |
US8386325B2 (en) | 2008-09-18 | 2013-02-26 | Sap Ag | Architectural design for plan-driven procurement application software |
US8396731B2 (en) | 2005-12-30 | 2013-03-12 | Sap Ag | Architectural design for service procurement application software |
US8401908B2 (en) | 2008-12-03 | 2013-03-19 | Sap Ag | Architectural design for make-to-specification application software |
US8401928B2 (en) | 2008-09-18 | 2013-03-19 | Sap Ag | Providing supplier relationship management software application as enterprise services |
US8438119B2 (en) | 2006-03-30 | 2013-05-07 | Sap Ag | Foundation layer for services based enterprise software architecture |
US8447657B2 (en) | 2007-12-31 | 2013-05-21 | Sap Ag | Architectural design for service procurement application software |
USRE44306E1 (en) | 1995-02-24 | 2013-06-18 | Apple Inc. | System for terminating multicast channel and data broadcast when at least two second endpoints do not transmit positive acknowledgement message to first endpoint |
US8595077B2 (en) | 2008-09-18 | 2013-11-26 | Sap Ag | Architectural design for service request and order management application software |
US8621390B1 (en) * | 2008-10-21 | 2013-12-31 | Amazon Technologies, Inc. | Table of contents menu over electronic book content on an electronic paper display |
US8626763B1 (en) | 1997-05-22 | 2014-01-07 | Google Inc. | Server-side suggestion of preload operations |
US8639694B1 (en) | 1994-09-02 | 2014-01-28 | Google Inc. | Client-side processing of preload operations |
US8671032B2 (en) | 2007-12-31 | 2014-03-11 | Sap Ag | Providing payment software application as enterprise services |
US8688495B2 (en) | 2005-12-30 | 2014-04-01 | Sap Ag | Architectural design for time recording application software |
US20140359575A1 (en) * | 2013-06-04 | 2014-12-04 | Sap Ag | Adaptive contextual graphical representation of development entities |
US20150007134A1 (en) * | 2012-03-16 | 2015-01-01 | Tencent Technology (Shenzhen) Company Limited | Method, Apparatus And Computer Storage Medium For Plug-In Management And Control |
US9053640B1 (en) | 1993-12-02 | 2015-06-09 | Adrea, LLC | Interactive electronic book |
US9116955B2 (en) | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
US9424240B2 (en) | 1999-12-07 | 2016-08-23 | Microsoft Technology Licensing, Llc | Annotations for electronic content |
US20170177310A1 (en) * | 2015-12-22 | 2017-06-22 | Sap Se | Software development using re-usable software components |
US9891901B2 (en) | 2013-12-06 | 2018-02-13 | Ab Initio Technology Llc | Source code translation |
USD832278S1 (en) * | 2016-05-10 | 2018-10-30 | Google Llc | Display screen with graphical user interface |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US10437819B2 (en) | 2014-11-14 | 2019-10-08 | Ab Initio Technology Llc | Processing queries containing a union-type operation |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4476528A (en) * | 1981-09-02 | 1984-10-09 | Tokyo Shibaura Denki Kabushiki Kaisha | Method and apparatus for controlling a data access in a data base management system |
US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
US4622633A (en) * | 1983-12-06 | 1986-11-11 | Tri Sigma Corporation | Object building method for self configuring computer network |
US4631664A (en) * | 1983-07-19 | 1986-12-23 | Bachman Information Systems, Inc. | Partnership data base management system and method |
US4734854A (en) * | 1985-10-08 | 1988-03-29 | American Telephone And Telegraph Company | System for generating software source code components |
US4813013A (en) * | 1984-03-01 | 1989-03-14 | The Cadware Group, Ltd. | Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons |
US4860204A (en) * | 1987-02-05 | 1989-08-22 | Softron, Inc. | Computer based workstation for development of graphic representation of computer programs |
US4974160A (en) * | 1987-07-15 | 1990-11-27 | Computer Associates International, Inc. | Menu selected application programs created from defined modules of code |
US5123103A (en) * | 1986-10-17 | 1992-06-16 | Hitachi, Ltd. | Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts |
-
1991
- 1991-11-13 US US07/792,501 patent/US5632022A/en not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4476528A (en) * | 1981-09-02 | 1984-10-09 | Tokyo Shibaura Denki Kabushiki Kaisha | Method and apparatus for controlling a data access in a data base management system |
US4631664A (en) * | 1983-07-19 | 1986-12-23 | Bachman Information Systems, Inc. | Partnership data base management system and method |
US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
US4622633A (en) * | 1983-12-06 | 1986-11-11 | Tri Sigma Corporation | Object building method for self configuring computer network |
US4813013A (en) * | 1984-03-01 | 1989-03-14 | The Cadware Group, Ltd. | Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons |
US4734854A (en) * | 1985-10-08 | 1988-03-29 | American Telephone And Telegraph Company | System for generating software source code components |
US5123103A (en) * | 1986-10-17 | 1992-06-16 | Hitachi, Ltd. | Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts |
US4860204A (en) * | 1987-02-05 | 1989-08-22 | Softron, Inc. | Computer based workstation for development of graphic representation of computer programs |
US4974160A (en) * | 1987-07-15 | 1990-11-27 | Computer Associates International, Inc. | Menu selected application programs created from defined modules of code |
US4974160B1 (en) * | 1987-07-15 | 1999-11-02 | Computer Associates Internatio | Menu selected application programs created from defined modules of code |
Non-Patent Citations (10)
Title |
---|
Di Fehce et al., "An Interaction Environment Supporting the Retrievability of Reusable Software Components", IEEE Computer Society Press, Tenth Annual International Phoenix Conference on Computers and Communications (Mar. 1991), pp. 287-293. |
Di Fehce et al., An Interaction Environment Supporting the Retrievability of Reusable Software Components , IEEE Computer Society Press, Tenth Annual International Phoenix Conference on Computers and Communications (Mar. 1991), pp. 287 293. * |
Jones et al., "Building and Managing Software Libraries", IEEE Computer Society Press, Proceedings COMPSA 88: The Twelfth International Computer Software and Applications Conference (Oct. 1988), pp. 228-236. |
Jones et al., Building and Managing Software Libraries , IEEE Computer Society Press, Proceedings COMPSA 88: The Twelfth International Computer Software and Applications Conference (Oct. 1988), pp. 228 236. * |
Latour et al., "Seer: A Graphical Retrieval System for Reusable Ada Software Modules", IEEE Computer Society Press, Third International IEEE Conference on Ada Applications and Environments (May 1988) pp. 105-113. |
Latour et al., Seer: A Graphical Retrieval System for Reusable Ada Software Modules , IEEE Computer Society Press, Third International IEEE Conference on Ada Applications and Environments (May 1988) pp. 105 113. * |
Maarek et al., "An Information Retrieval Approach for Automatically Constructing Software Libraries", IEEE Transactions on Software Engineering, vol. 17 No. 8 (Aug. 1991) pp. 800-813. |
Maarek et al., An Information Retrieval Approach for Automatically Constructing Software Libraries , IEEE Transactions on Software Engineering, vol. 17 No. 8 (Aug. 1991) pp. 800 813. * |
Wood et al., "An Information Retrieval System for Software Components", Software Engineering Journal, vol. 3 No. 5 (Sep. 1988) pp. 198-207. |
Wood et al., An Information Retrieval System for Software Components , Software Engineering Journal, vol. 3 No. 5 (Sep. 1988) pp. 198 207. * |
Cited By (323)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040107217A1 (en) * | 1991-06-21 | 2004-06-03 | Reed Hastings | Method and apparatus for modifying relocatable object code files and monitoring programs |
US7210118B2 (en) | 1991-06-21 | 2007-04-24 | International Business Machines Corporation | Method and apparatus for modifying relocatable object code filed and monitoring programs |
US7835989B1 (en) | 1992-12-09 | 2010-11-16 | Discovery Communications, Inc. | Electronic book alternative delivery systems |
US7716349B1 (en) | 1992-12-09 | 2010-05-11 | Discovery Communications, Inc. | Electronic book library/bookstore system |
US7849393B1 (en) | 1992-12-09 | 2010-12-07 | Discovery Communications, Inc. | Electronic book connection to world watch live |
US8073695B1 (en) | 1992-12-09 | 2011-12-06 | Adrea, LLC | Electronic book with voice emulation features |
US7865405B2 (en) | 1992-12-09 | 2011-01-04 | Discovery Patent Holdings, Llc | Electronic book having electronic commerce features |
US6016488A (en) * | 1993-09-02 | 2000-01-18 | Microsoft Corporation | Method and system for constructing queries |
US7865567B1 (en) | 1993-12-02 | 2011-01-04 | Discovery Patent Holdings, Llc | Virtual on-demand electronic book |
US7861166B1 (en) | 1993-12-02 | 2010-12-28 | Discovery Patent Holding, Llc | Resizing document pages to fit available hardware screens |
US8095949B1 (en) | 1993-12-02 | 2012-01-10 | Adrea, LLC | Electronic book with restricted access features |
US9053640B1 (en) | 1993-12-02 | 2015-06-09 | Adrea, LLC | Interactive electronic book |
US5870092A (en) * | 1994-07-28 | 1999-02-09 | Hewlett-Packard Company | Page turning facility |
US6604103B1 (en) | 1994-09-02 | 2003-08-05 | Mark A. Wolfe | System and method for information retrieval employing a preloading procedure |
US8639694B1 (en) | 1994-09-02 | 2014-01-28 | Google Inc. | Client-side processing of preload operations |
US7103594B1 (en) | 1994-09-02 | 2006-09-05 | Wolfe Mark A | System and method for information retrieval employing a preloading procedure |
US6301576B1 (en) | 1994-09-02 | 2001-10-09 | Mark A. Wolfe | Document retrieval system for retrieval of a first search document and a last search document from database |
US6151603A (en) * | 1994-09-02 | 2000-11-21 | Wolfe; Mark A. | Document retrieval system employing a preloading procedure |
US5697788A (en) * | 1994-10-11 | 1997-12-16 | Aleph Logic Ltd. | Algorithm training system |
USRE44306E1 (en) | 1995-02-24 | 2013-06-18 | Apple Inc. | System for terminating multicast channel and data broadcast when at least two second endpoints do not transmit positive acknowledgement message to first endpoint |
USRE44395E1 (en) | 1995-02-24 | 2013-07-23 | Apple Inc. | System for terminating multicast channel and data broadcast when at least two second endpoints do not transmit positive acknowledgement message to first endpoint |
US5708826A (en) * | 1995-05-16 | 1998-01-13 | Fujitsu Limited | Apparatus and method for converting presentation data |
US7299455B2 (en) * | 1995-06-02 | 2007-11-20 | Cisco Technology, Inc. | Remote monitoring of computer programs |
US20080147853A1 (en) * | 1995-06-02 | 2008-06-19 | Anderson Mark D | Remote monitoring of computer programs |
US20040153997A1 (en) * | 1995-06-02 | 2004-08-05 | International Business Machines Corporation | Remote monitoring of computer programs |
US6263351B1 (en) * | 1995-06-07 | 2001-07-17 | Mark A. Wolfe | Document research system and method for efficiently displaying and researching information about the interrelationships between documents |
US7302638B1 (en) | 1995-06-07 | 2007-11-27 | Wolfe Mark A | Efficiently displaying and researching information about the interrelationships between documents |
US5808614A (en) * | 1995-06-16 | 1998-09-15 | Sony Corporation | Device and method for displaying a guide picture in virtual reality |
US20060010373A1 (en) * | 1996-02-27 | 2006-01-12 | Datamize Llc | Portal information delivery system for personal computers and SOHO computer systems |
US6460040B1 (en) | 1996-02-27 | 2002-10-01 | Datamize Llc | Authoring system for computed-based information delivery system |
US6658418B2 (en) | 1996-02-27 | 2003-12-02 | Datamize Llc | Authoring system for computer-based information delivery system |
US6012055A (en) * | 1996-04-09 | 2000-01-04 | Silicon Graphics, Inc. | Mechanism for integrated information search and retrieval from diverse sources using multiple navigation methods |
US6003046A (en) * | 1996-04-15 | 1999-12-14 | Sun Microsystems, Inc. | Automatic development and display of context information in structured documents on the world wide web |
US5857189A (en) * | 1996-05-08 | 1999-01-05 | Apple Computer, Inc. | File sharing in a teleconference application |
US20070118793A1 (en) * | 1996-07-29 | 2007-05-24 | Adobe Systems Incorporated | Hierarchical drag and drop structure editor for web sites |
US5911145A (en) * | 1996-07-29 | 1999-06-08 | Rae Technology, Inc. | Hierarchical structure editor for web sites |
US8935602B2 (en) | 1996-07-29 | 2015-01-13 | Adobe Systems Incorporated | Hierarchical drag and drop structure editor for web sites |
US6340980B1 (en) * | 1996-08-26 | 2002-01-22 | E-Book Systems Pte Ltd | Computer user interface system and method having book image features |
US6762775B2 (en) * | 1996-08-26 | 2004-07-13 | E-Book Systems Pte Ltd | Computer based browsing computer program product, system and method |
US6064384A (en) * | 1996-08-26 | 2000-05-16 | E-Brook Systems Pte Ltd | Computer user interface system and method having book image features |
US20050147953A1 (en) * | 1996-08-26 | 2005-07-07 | E-Book Systems Pte Ltd | Computer user interface system and method |
WO1998014903A3 (en) * | 1996-09-30 | 1998-10-08 | Trellix Corp | Hypermedia authoring and publishing system |
WO1998014903A2 (en) * | 1996-09-30 | 1998-04-09 | Trellix Corporation | Hypermedia authoring and publishing system |
US6268851B1 (en) | 1996-09-30 | 2001-07-31 | Trellix Corporation | Hypermedia authoring and publishing system |
US7043526B1 (en) | 1996-10-08 | 2006-05-09 | Wolfe Mark A | System and method for communicating information relating to a network resource |
US6336131B1 (en) | 1996-10-08 | 2002-01-01 | Mark A. Wolfe | System and method for communicating information relating to a network resource |
US8849982B2 (en) | 1996-10-08 | 2014-09-30 | Google, Inc. | Communicating information relating to a network resource |
US6052121A (en) * | 1996-12-31 | 2000-04-18 | International Business Machines Corporation | Database graphical user interface with user frequency view |
US5835094A (en) * | 1996-12-31 | 1998-11-10 | Compaq Computer Corporation | Three-dimensional computer environment |
US5978799A (en) * | 1997-01-30 | 1999-11-02 | Hirsch; G. Scott | Search engine including query database, user profile database, information templates and email facility |
US6385600B1 (en) * | 1997-04-03 | 2002-05-07 | At&T Corp. | System and method for searching on a computer using an evidence set |
US20080022196A1 (en) * | 1997-04-09 | 2008-01-24 | Boye Steven R | Method and apparatus for implementing web pages having smart tables |
US9552331B2 (en) | 1997-04-09 | 2017-01-24 | Adobe Systems Incorporated | Method and apparatus for implementing web pages having smart tables |
US6957417B2 (en) * | 1997-04-25 | 2005-10-18 | Computer Associates Think, Inc. | Method and system for assembling and utilizing components in component object systems |
WO1998049629A1 (en) * | 1997-05-01 | 1998-11-05 | Datig William E | Universal epistemological machine (a.k.a. android) |
US6341372B1 (en) | 1997-05-01 | 2002-01-22 | William E. Datig | Universal machine translator of arbitrary languages |
US8626763B1 (en) | 1997-05-22 | 2014-01-07 | Google Inc. | Server-side suggestion of preload operations |
US7574649B1 (en) * | 1997-08-14 | 2009-08-11 | Keeboo Sarl | Book metaphor for modifying and enforcing sequential navigation of documents |
EP1120719A3 (en) * | 1997-08-22 | 2004-02-04 | SAP Aktiengesellschaft | Browser for hierarchical structures |
US6278991B1 (en) * | 1997-08-22 | 2001-08-21 | Sap Aktiengesellschaft | Browser for hierarchical structures |
EP1120719A2 (en) * | 1997-08-22 | 2001-08-01 | SAP Aktiengesellschaft | Browser for hierarchical structures |
US6434564B2 (en) * | 1997-08-22 | 2002-08-13 | Sap Aktiengesellschaft | Browser for hierarchical structures |
US6279016B1 (en) * | 1997-09-21 | 2001-08-21 | Microsoft Corporation | Standardized filtering control techniques |
US6321374B1 (en) * | 1997-11-07 | 2001-11-20 | International Business Machines Corporation | Application-independent generator to generate a database transaction manager in heterogeneous information systems |
US6292813B1 (en) | 1997-11-17 | 2001-09-18 | Mark A. Wolfe | System and method for communicating information relating to a network resource |
US7257604B1 (en) | 1997-11-17 | 2007-08-14 | Wolfe Mark A | System and method for communicating information relating to a network resource |
US9934516B1 (en) | 1997-11-17 | 2018-04-03 | Google Llc | Communicating information relating to a network resource |
US20040183776A1 (en) * | 1997-12-18 | 2004-09-23 | E-Book Systems Pte Ltd | Computer based browsing computer program product, system and method |
US7555724B2 (en) | 1997-12-18 | 2009-06-30 | E-Book Systems Pte Ltd. | Computer based browsing computer program product, system and method |
US7079111B2 (en) | 1997-12-18 | 2006-07-18 | E-Book Systems Pte Ltd | Computer based browsing computer program product, system and method |
US6407757B1 (en) * | 1997-12-18 | 2002-06-18 | E-Book Systems Pte Ltd. | Computer-based browsing method and computer program product for displaying information in an electronic book form |
US6374273B1 (en) | 1998-06-05 | 2002-04-16 | International Business Machines Corporation | Reformatting a first single-column markup document into a multi-column document, and formatting second markup document in the background, while displaying the first reformatted document |
US6795853B1 (en) | 1998-06-30 | 2004-09-21 | International Business Machines Corporation | Integration of additional computer components into a computer operation through attribute enabled interactive selections presented in composite lists available to the user in a variety of display screens |
US20100293488A1 (en) * | 1998-07-01 | 2010-11-18 | Sony Corporation | Extended elements and mechanisms for displaying a rich graphical user interface in panel subunit |
WO2000002146A1 (en) * | 1998-07-02 | 2000-01-13 | Copernican Technologies, Inc. | Accessing, viewing and manipulation of archived information |
US6694357B1 (en) * | 1998-07-02 | 2004-02-17 | Copernican Technologies, Inc. | Accessing, viewing and manipulation of references to non-modifiable data objects |
US20040162891A1 (en) * | 1998-07-02 | 2004-08-19 | Copernican Technologies, Inc. | Accessing, viewing and manipulation of archived information |
US7017108B1 (en) * | 1998-09-15 | 2006-03-21 | Canon Kabushiki Kaisha | Method and apparatus for reproducing a linear document having non-linear referential links |
US6226792B1 (en) | 1998-10-14 | 2001-05-01 | Unisys Corporation | Object management system supporting the use of application domain knowledge mapped to technology domain knowledge |
WO2000022518A1 (en) * | 1998-10-14 | 2000-04-20 | Unisys Corporation | An object management system supporting the use of application domain knowledge mapped to technology domain knowledge |
US6074345A (en) * | 1998-10-27 | 2000-06-13 | University Of Florida | Patient data acquisition and control system |
US6233546B1 (en) | 1998-11-19 | 2001-05-15 | William E. Datig | Method and system for machine translation using epistemic moments and stored dictionary entries |
WO2000042518A1 (en) * | 1999-01-13 | 2000-07-20 | Ab Initio Software Corporation | Parallelizing applications of script-driven tools |
US7047232B1 (en) | 1999-01-13 | 2006-05-16 | Ab Initio Software Corporation | Parallelizing applications of script-driven tools |
US7685521B1 (en) * | 1999-03-23 | 2010-03-23 | Canon Kabushiki Kaisha | Information searching apparatus, method and memory medium therefor |
US8548813B2 (en) | 1999-06-25 | 2013-10-01 | Adrea, LLC | Electronic book with voice emulation features |
US9099097B2 (en) | 1999-06-25 | 2015-08-04 | Adrea, LLC | Electronic book with voice emulation features |
US20060200741A1 (en) * | 1999-11-01 | 2006-09-07 | Demesa Jesse G | Modeling system for retrieving and displaying data from multiple sources |
US7458014B1 (en) | 1999-12-07 | 2008-11-25 | Microsoft Corporation | Computer user interface architecture wherein both content and user interface are composed of documents with links |
US7496856B2 (en) | 1999-12-07 | 2009-02-24 | Microsoft Corporation | Method and apparatus for capturing and rendering text annotations for non-modifiable electronic content |
US20060010396A1 (en) * | 1999-12-07 | 2006-01-12 | Microsoft Corporation | Method and apparatus for capturing and rendering text annotations for non-modifiable electronic content |
US7496830B2 (en) | 1999-12-07 | 2009-02-24 | Microsoft Corporation | Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history |
US7260781B2 (en) | 1999-12-07 | 2007-08-21 | Microsoft Corporation | System, method and user interface for active reading of electronic content |
US20040233235A1 (en) * | 1999-12-07 | 2004-11-25 | Microsoft Corporation | Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history |
US6992687B1 (en) | 1999-12-07 | 2006-01-31 | Microsoft Corporation | Bookmarking and placemarking a displayed document in a computer system |
US7337389B1 (en) | 1999-12-07 | 2008-02-26 | Microsoft Corporation | System and method for annotating an electronic document independently of its content |
US7568168B2 (en) | 1999-12-07 | 2009-07-28 | Microsoft Corporation | Method and apparatus for capturing and rendering text annotations for non-modifiable electronic content |
US8555198B2 (en) | 1999-12-07 | 2013-10-08 | Microsoft Corporation | Annotations for electronic content |
US7594187B2 (en) | 1999-12-07 | 2009-09-22 | Microsoft Corporation | Bookmarking and placemarking a displayed document in a computer system |
US9424240B2 (en) | 1999-12-07 | 2016-08-23 | Microsoft Technology Licensing, Llc | Annotations for electronic content |
US20090271381A1 (en) * | 1999-12-07 | 2009-10-29 | Beezer John L | Annotations for Electronic Content |
US6820111B1 (en) * | 1999-12-07 | 2004-11-16 | Microsoft Corporation | Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history |
US20040268253A1 (en) * | 1999-12-07 | 2004-12-30 | Microsoft Corporation | Method and apparatus for installing and using reference materials in conjunction with reading electronic content |
US6957233B1 (en) | 1999-12-07 | 2005-10-18 | Microsoft Corporation | Method and apparatus for capturing and rendering annotations for non-modifiable electronic content |
US7185274B1 (en) | 1999-12-07 | 2007-02-27 | Microsoft Corporation | Computer user interface architecture wherein users interact with both content and user interface by activating links |
US6714214B1 (en) | 1999-12-07 | 2004-03-30 | Microsoft Corporation | System method and user interface for active reading of electronic content |
US20060020882A1 (en) * | 1999-12-07 | 2006-01-26 | Microsoft Corporation | Method and apparatus for capturing and rendering text annotations for non-modifiable electronic content |
US8627197B2 (en) | 1999-12-07 | 2014-01-07 | Microsoft Corporation | System and method for annotating an electronic document independently of its content |
US7010754B2 (en) * | 1999-12-14 | 2006-03-07 | Sun Microsystems, Inc. | Method, system and user interface for inputting and manipulating tokenized strings |
US6968533B1 (en) * | 2000-01-19 | 2005-11-22 | Fuji Xerox Co., Ltd. | Process description apparatus and method, and process classification method |
US7496829B2 (en) | 2000-04-21 | 2009-02-24 | Microsoft Corporation | Method and apparatus for displaying multiple contexts in electronic documents |
US7243299B1 (en) | 2000-04-21 | 2007-07-10 | Microsoft Corporation | Methods and apparatus for displaying multiple contexts in electronic documents |
US7319789B2 (en) | 2000-06-21 | 2008-01-15 | Microsoft Corporation | Serial storage of ink and its properties |
US20020049787A1 (en) * | 2000-06-21 | 2002-04-25 | Keely Leroy B. | Classifying, anchoring, and transforming ink |
US7259753B2 (en) | 2000-06-21 | 2007-08-21 | Microsoft Corporation | Classifying, anchoring, and transforming ink |
US7317834B2 (en) | 2000-06-21 | 2008-01-08 | Microsoft Corporation | Serial storage of ink and its properties |
US7346230B2 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Transform table for ink sizing and compression |
US20050103872A1 (en) * | 2000-06-21 | 2005-05-19 | Microsoft Corporation | Serial storage of ink and its properties |
US20050147300A1 (en) * | 2000-06-21 | 2005-07-07 | Microsoft Corporation | Serial storage of ink and its properties |
US20050105946A1 (en) * | 2000-06-21 | 2005-05-19 | Microsoft Corporation | Transform table for ink sizing and compression |
US20020013795A1 (en) * | 2000-06-21 | 2002-01-31 | Bodin Dresevie | Serial storage of ink and its properties |
US7321689B2 (en) | 2000-06-21 | 2008-01-22 | Microsoft Corporation | Serial storage of ink and its properties |
US7006711B2 (en) | 2000-06-21 | 2006-02-28 | Microsoft Corporation | Transform table for ink sizing and compression |
US7397949B2 (en) | 2000-06-21 | 2008-07-08 | Microsoft Corporation | Serial storage of ink and its properties |
US7234108B1 (en) | 2000-06-29 | 2007-06-19 | Microsoft Corporation | Ink thickness rendering for electronic annotations |
US7730391B2 (en) | 2000-06-29 | 2010-06-01 | Microsoft Corporation | Ink thickness rendering for electronic annotations |
US6704741B1 (en) | 2000-11-02 | 2004-03-09 | The Psychological Corporation | Test item creation and manipulation system and method |
US20020097270A1 (en) * | 2000-11-10 | 2002-07-25 | Keely Leroy B. | Selection handles in editing electronic documents |
US6891551B2 (en) | 2000-11-10 | 2005-05-10 | Microsoft Corporation | Selection handles in editing electronic documents |
US7002558B2 (en) | 2000-12-21 | 2006-02-21 | Microsoft Corporation | Mode hinting and switching |
US20020080126A1 (en) * | 2000-12-21 | 2002-06-27 | Keely Leroy B. | Mode hinting and switching |
US20020099552A1 (en) * | 2001-01-25 | 2002-07-25 | Darryl Rubin | Annotating electronic information with audio clips |
WO2002069141A1 (en) * | 2001-02-15 | 2002-09-06 | Wheelhouse Corporation | Method and apparatus creation and performance of service engagement modeling |
US20050105945A1 (en) * | 2001-06-27 | 2005-05-19 | Microsoft Corporation | Transform table for ink sizing and compression |
US20050105944A1 (en) * | 2001-06-27 | 2005-05-19 | Microsoft Corporation | Transform table for ink sizing and compression |
US7343053B2 (en) | 2001-06-27 | 2008-03-11 | Microsoft Corporation | Transform table for ink sizing and compression |
US7346229B2 (en) | 2001-06-27 | 2008-03-18 | Microsoft Corporation | Transform table for ink sizing and compression |
US20060026568A1 (en) * | 2001-07-05 | 2006-02-02 | Microsoft Corporation | System and methods for providing versioning of software components in a computer programming language |
US7873958B2 (en) | 2001-07-05 | 2011-01-18 | Microsoft Corporation | System and methods for providing versioning of software components in a computer programming language |
US8001523B1 (en) * | 2001-07-05 | 2011-08-16 | Microsoft Corporation | System and methods for implementing an explicit interface member in a computer programming language |
US7352366B2 (en) | 2001-08-01 | 2008-04-01 | Microsoft Corporation | Dynamic rendering of ink strokes with transparency |
US7168038B2 (en) | 2001-08-01 | 2007-01-23 | Microsoft Corporation | System and method for scaling and repositioning drawings |
US20040205624A1 (en) * | 2001-08-01 | 2004-10-14 | Lui Charlton E. | System and method for scaling and repositioning drawings |
US20050078097A1 (en) * | 2001-08-01 | 2005-04-14 | Microsoft Corporation | Dynamic rendering of ink strokes with transparency |
US20050162413A1 (en) * | 2001-08-01 | 2005-07-28 | Microsoft Corporation | Rendering ink strokes of variable width and angle |
US20050078098A1 (en) * | 2001-08-01 | 2005-04-14 | Microsoft Corporation | Dynamic rendering of ink strokes with transparency |
US7091963B2 (en) | 2001-08-01 | 2006-08-15 | Microsoft Corporation | Dynamic rendering of ink strokes with transparency |
US7236180B2 (en) | 2001-08-01 | 2007-06-26 | Microsoft Corporation | Dynamic rendering of ink strokes with transparency |
US7343596B1 (en) | 2002-03-19 | 2008-03-11 | Dloo, Incorporated | Method and system for creating self-assembling components |
US20080134141A1 (en) * | 2002-03-19 | 2008-06-05 | Nile Josiah Geisinger | Method and system for creating self-assembling components through component languages |
US8112744B2 (en) | 2002-03-19 | 2012-02-07 | Dloo, Inc. | Method and system for creating self-assembling components through component languages |
US20060041836A1 (en) * | 2002-09-12 | 2006-02-23 | Gordon T J | Information documenting system with improved speed, completeness, retriveability and granularity |
US8676853B2 (en) | 2003-02-27 | 2014-03-18 | Hewlett-Packard Development Company, L.P. | System and method for software reuse |
WO2004077272A3 (en) * | 2003-02-27 | 2005-04-21 | Electronic Data Syst Corp | System and method for software reuse |
WO2004077272A2 (en) * | 2003-02-27 | 2004-09-10 | Electronic Data Systems Corporation | System and method for software reuse |
US7346890B1 (en) | 2003-03-17 | 2008-03-18 | Dloo, Incorporated | Method and system for creating linkable programming languages |
US7171587B2 (en) * | 2003-04-28 | 2007-01-30 | Teradyne, Inc. | Automatic test system with easily modified software |
US20040215361A1 (en) * | 2003-04-28 | 2004-10-28 | Hlotyak Stephen J. | Automatic test system with easily modified software |
US7343557B2 (en) | 2003-04-30 | 2008-03-11 | Sap Aktiengesellschaft | Guided data entry using indicator and interactive step symbols |
WO2004097634A2 (en) * | 2003-04-30 | 2004-11-11 | Sap Aktiengesellschaft | Guided data entry |
US20040221263A1 (en) * | 2003-04-30 | 2004-11-04 | Udo Arend | Guided data entry |
WO2004097634A3 (en) * | 2003-04-30 | 2004-12-23 | Udo Arend | Guided data entry |
US20050160411A1 (en) * | 2003-09-19 | 2005-07-21 | Neeraj Sangal | Apparatus and method for managing design of a software system using dependency structure |
WO2005081636A2 (en) * | 2004-03-03 | 2005-09-09 | Gautam Dharamdas Goradia | Interactive system for building, organising, and sharing one’s own encyclopedia in one or more languages |
WO2005081636A3 (en) * | 2004-03-03 | 2006-08-31 | Gautam Dharamdas Goradia | Interactive system for building, organising, and sharing one’s own encyclopedia in one or more languages |
US8572563B2 (en) * | 2004-03-15 | 2013-10-29 | Ramco Systems Limited | User interfaces and software reuse in model based software systems |
US20050203942A1 (en) * | 2004-03-15 | 2005-09-15 | Ramco Systems Limited | User interfaces and software reuse in model based software systems |
US8307339B2 (en) * | 2004-03-15 | 2012-11-06 | Ramco Systems Limited | Software reuse in model based software systems |
US20090024657A1 (en) * | 2004-03-15 | 2009-01-22 | Ramco Systems Limited | User interfaces and software reuse in model based software systems |
US20050267962A1 (en) * | 2004-05-28 | 2005-12-01 | Grigor Svetoslavov | Graphical user interface for monitoring classloading references |
US7827566B2 (en) * | 2004-05-28 | 2010-11-02 | Sap Ag | Graphical user interface for monitoring classloading references |
US20060067334A1 (en) * | 2004-08-18 | 2006-03-30 | Ougarov Andrei V | System and methods for dynamic generation of point / tag configurations |
US8700671B2 (en) | 2004-08-18 | 2014-04-15 | Siemens Aktiengesellschaft | System and methods for dynamic generation of point / tag configurations |
US20060072627A1 (en) * | 2004-10-04 | 2006-04-06 | Sony Corporation | Audio/video synchronizing system and monitor apparatus |
US20080114812A1 (en) * | 2004-11-19 | 2008-05-15 | Bea Systems, Inc. | Data object identification, tracking, filtering and monitoring using data object fingerprints in a repository |
US20060236260A1 (en) * | 2004-12-09 | 2006-10-19 | Microsoft Corporation | Journal display having three dimensional appearance |
US8464175B2 (en) * | 2004-12-09 | 2013-06-11 | Microsoft Corporation | Journal display having three dimensional appearance |
US20060161597A1 (en) * | 2005-01-14 | 2006-07-20 | Ougarov Andrei V | Child data structure update in data management system |
US8442938B2 (en) | 2005-01-14 | 2013-05-14 | Siemens Aktiengesellschaft | Child data structure update in data management system |
US20060218131A1 (en) * | 2005-03-28 | 2006-09-28 | Mario Brenes | Interface chaining to populate a class-based model |
US8700559B2 (en) | 2005-03-28 | 2014-04-15 | Siemens Aktiengesellschaft | Interface chaining to populate a class-based model |
US7770151B2 (en) | 2005-04-07 | 2010-08-03 | International Business Machines Corporation | Automatic generation of solution deployment descriptors |
US7797678B2 (en) | 2005-04-07 | 2010-09-14 | International Business Machines Corporation | Automatic generation of license package for solution components |
US7496888B2 (en) * | 2005-04-07 | 2009-02-24 | International Business Machines Corporation | Solution builder wizard |
US20060228654A1 (en) * | 2005-04-07 | 2006-10-12 | International Business Machines Corporation | Solution builder wizard |
US20060230382A1 (en) * | 2005-04-12 | 2006-10-12 | Moulckers Ingrid M | System and method for managing a reusable set of business solution components |
US8660904B2 (en) | 2005-12-30 | 2014-02-25 | Sap Ag | Architectural design for service request and order management application software |
US8380553B2 (en) | 2005-12-30 | 2013-02-19 | Sap Ag | Architectural design for plan-driven procurement application software |
US8370794B2 (en) | 2005-12-30 | 2013-02-05 | Sap Ag | Software model process component |
US8396731B2 (en) | 2005-12-30 | 2013-03-12 | Sap Ag | Architectural design for service procurement application software |
US8327319B2 (en) | 2005-12-30 | 2012-12-04 | Sap Ag | Software model process interaction |
US8402426B2 (en) | 2005-12-30 | 2013-03-19 | Sap Ag | Architectural design for make to stock application software |
US8407664B2 (en) | 2005-12-30 | 2013-03-26 | Sap Ag | Software model business objects |
US8326703B2 (en) | 2005-12-30 | 2012-12-04 | Sap Ag | Architectural design for product catalog management application software |
US8321831B2 (en) | 2005-12-30 | 2012-11-27 | Sap Ag | Architectural design for internal projects application software |
US8316344B2 (en) | 2005-12-30 | 2012-11-20 | Sap Ag | Software model deployment units |
US8448137B2 (en) * | 2005-12-30 | 2013-05-21 | Sap Ag | Software model integration scenarios |
US8522194B2 (en) | 2005-12-30 | 2013-08-27 | Sap Ag | Software modeling |
US8676617B2 (en) | 2005-12-30 | 2014-03-18 | Sap Ag | Architectural design for self-service procurement application software |
US20070174811A1 (en) * | 2005-12-30 | 2007-07-26 | Stefan Kaetker | Software model integration scenarios |
US8688495B2 (en) | 2005-12-30 | 2014-04-01 | Sap Ag | Architectural design for time recording application software |
US20070156500A1 (en) * | 2005-12-30 | 2007-07-05 | Wilfried Merkel | Architectural design for sell from stock application software |
US20070156499A1 (en) * | 2005-12-30 | 2007-07-05 | Arthur Berger | Architectural design for self-service procurement application software |
US20070156476A1 (en) * | 2005-12-30 | 2007-07-05 | Alexander Koegler | Architectural design for service request and order management application software |
US20070220046A1 (en) * | 2005-12-30 | 2007-09-20 | Gerd Moosmann | Software model business objects |
US20070156490A1 (en) * | 2005-12-30 | 2007-07-05 | Volker Faisst | Architectural design for internal projects application software |
US20070168240A1 (en) * | 2005-12-30 | 2007-07-19 | Shai Alfandary | Architectural design for make to stock application software |
US20070168303A1 (en) * | 2005-12-30 | 2007-07-19 | Gerd Moosmann | Software model process interaction |
US20070186209A1 (en) * | 2005-12-30 | 2007-08-09 | Stefan Kaetker | Software modeling |
US20070156550A1 (en) * | 2005-12-30 | 2007-07-05 | Der Emde Martin V | Architectural design for cash and liquidity management application software |
US20070162893A1 (en) * | 2005-12-30 | 2007-07-12 | Gerd Moosmann | Software model process component |
US20070226078A1 (en) * | 2006-03-06 | 2007-09-27 | Transaxtions Llc | Guiding info tabs with guide selection |
US8438119B2 (en) | 2006-03-30 | 2013-05-07 | Sap Ag | Foundation layer for services based enterprise software architecture |
US20070265860A1 (en) * | 2006-03-30 | 2007-11-15 | Karina Herrmann | Providing supplier relationship management software application as enterprise services |
US20070233574A1 (en) * | 2006-03-30 | 2007-10-04 | Alexander Koegler | Providing customer relationship management application as enterprise services |
US8396761B2 (en) | 2006-03-30 | 2013-03-12 | Sap Ag | Providing product catalog software application as enterprise services |
US8396749B2 (en) | 2006-03-30 | 2013-03-12 | Sap Ag | Providing customer relationship management application as enterprise services |
US8442850B2 (en) | 2006-03-30 | 2013-05-14 | Sap Ag | Providing accounting software application as enterprise services |
US8538864B2 (en) | 2006-03-30 | 2013-09-17 | Sap Ag | Providing payment software application as enterprise services |
US20070233581A1 (en) * | 2006-03-30 | 2007-10-04 | Markus Peter | Providing product catalog software application as enterprise services |
US20070233575A1 (en) * | 2006-03-30 | 2007-10-04 | Arthur Berger | Architectural design for strategic sourcing application software |
US20070233539A1 (en) * | 2006-03-30 | 2007-10-04 | Philipp Suenderhauf | Providing human capital management software application as enterprise services |
US20070233541A1 (en) * | 2006-03-30 | 2007-10-04 | Martin Schorr | Providing accounting software application as enterprise services |
US20070233598A1 (en) * | 2006-03-30 | 2007-10-04 | Martin Von Der Emde | Providing payment software application as enterprise services |
US8326702B2 (en) * | 2006-03-30 | 2012-12-04 | Sap Ag | Providing supplier relationship management software application as enterprise services |
US20070234282A1 (en) * | 2006-03-31 | 2007-10-04 | Uta Prigge | Composite application modeling |
US8321832B2 (en) | 2006-03-31 | 2012-11-27 | Sap Ag | Composite application modeling |
US20070265862A1 (en) * | 2006-04-13 | 2007-11-15 | Jens Freund | Software model business process variant types |
US8312416B2 (en) | 2006-04-13 | 2012-11-13 | Sap Ag | Software model business process variant types |
US8260783B2 (en) | 2007-02-27 | 2012-09-04 | Siemens Aktiengesellschaft | Storage of multiple, related time-series data streams |
US20080208890A1 (en) * | 2007-02-27 | 2008-08-28 | Christopher Patrick Milam | Storage of multiple, related time-series data streams |
US20090132903A1 (en) * | 2007-11-21 | 2009-05-21 | Microsoft Corporation | Visual system for visualizing, navigating, and editing attribute lattices within olap databases |
US8028225B2 (en) * | 2007-11-21 | 2011-09-27 | Microsoft Corporation | Visual system for visualizing, navigating, and editing attribute lattices within OLAP databases |
US20090171712A1 (en) * | 2007-12-31 | 2009-07-02 | Matthias Heinrichs | Architectural Design for Ad-Hoc Goods Movement Software |
US8447657B2 (en) | 2007-12-31 | 2013-05-21 | Sap Ag | Architectural design for service procurement application software |
US20090171758A1 (en) * | 2007-12-31 | 2009-07-02 | Shai Alfandary | Architectural design for physical inventory application software |
US20090171713A1 (en) * | 2007-12-31 | 2009-07-02 | Armin Schwarz | Architectural Design for Self-Service Procurement Application Software |
US8510143B2 (en) | 2007-12-31 | 2013-08-13 | Sap Ag | Architectural design for ad-hoc goods movement software |
US8315900B2 (en) | 2007-12-31 | 2012-11-20 | Sap Ag | Architectural design for self-service procurement application software |
US8671033B2 (en) | 2007-12-31 | 2014-03-11 | Sap Ag | Architectural design for personnel events application software |
US20090171716A1 (en) * | 2007-12-31 | 2009-07-02 | Sap Ag | Architectural design for personnel events application software |
US20090171698A1 (en) * | 2007-12-31 | 2009-07-02 | Sap Ag | Providing human capital management software application as enterprise services |
US20090171811A1 (en) * | 2007-12-31 | 2009-07-02 | Peter Markus A | Architectural Design For Product Catalog Management Application Software |
US20090171818A1 (en) * | 2007-12-31 | 2009-07-02 | Sap Ag | Architectural design for expense reimbursement application software |
US8671032B2 (en) | 2007-12-31 | 2014-03-11 | Sap Ag | Providing payment software application as enterprise services |
US8671034B2 (en) | 2007-12-31 | 2014-03-11 | Sap Ag | Providing human capital management software application as enterprise services |
US8401936B2 (en) | 2007-12-31 | 2013-03-19 | Sap Ag | Architectural design for expense reimbursement application software |
US9866445B2 (en) * | 2008-04-17 | 2018-01-09 | Cadens Medical Imaging Inc. | Method and system for virtually delivering software applications to remote clients |
US20110106881A1 (en) * | 2008-04-17 | 2011-05-05 | Hugo Douville | Method and system for virtually delivering software applications to remote clients |
US20090262722A1 (en) * | 2008-04-21 | 2009-10-22 | Honeywell International Inc. | Method to Calculate Transitive Closure of Multi-Path Directed Network Based on Declarative MetaData |
USD736250S1 (en) * | 2008-06-30 | 2015-08-11 | Covidien Lp | Portion of a display panel with an indicator icon |
USD637607S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD637618S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display panel with an indicator icon |
USD637617S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display panel with an indicator icon |
USD637609S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD637608S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD637615S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD637611S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD637610S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD637614S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD637612S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD626562S1 (en) * | 2008-06-30 | 2010-11-02 | Nellcor Puritan Bennett Llc | Triangular saturation pattern detection indicator for a patient monitor display panel |
USD637613S1 (en) * | 2008-06-30 | 2011-05-10 | Nellcor Puritan Bennett Llc | Portion of a display screen with indicator icons |
USD626561S1 (en) * | 2008-06-30 | 2010-11-02 | Nellcor Puritan Bennett Llc | Circular satseconds indicator and triangular saturation pattern detection indicator for a patient monitor display panel |
US8352338B2 (en) | 2008-09-18 | 2013-01-08 | Sap Ag | Architectural design for time recording application software |
US8401928B2 (en) | 2008-09-18 | 2013-03-19 | Sap Ag | Providing supplier relationship management software application as enterprise services |
US20100070336A1 (en) * | 2008-09-18 | 2010-03-18 | Sap Ag | Providing Customer Relationship Management Application as Enterprise Services |
US8321250B2 (en) | 2008-09-18 | 2012-11-27 | Sap Ag | Architectural design for sell from stock application software |
US20100070337A1 (en) * | 2008-09-18 | 2010-03-18 | Andreas Poth | Providing supply chain control software as enterprise services |
US20100070395A1 (en) * | 2008-09-18 | 2010-03-18 | Andreas Elkeles | Architectural design for payroll processing application software |
US20100070318A1 (en) * | 2008-09-18 | 2010-03-18 | Achim Clemens | Providing logistics execution application as enterprise services |
US20100070330A1 (en) * | 2008-09-18 | 2010-03-18 | Peer Marschall | Architectural design for customer returns handling application software |
US20100070556A1 (en) * | 2008-09-18 | 2010-03-18 | Sap Ag | Architectural Design for Data Migration Application Software |
US20100070555A1 (en) * | 2008-09-18 | 2010-03-18 | Jacques Duparc | Architectural design for time recording application software |
US20100070391A1 (en) * | 2008-09-18 | 2010-03-18 | Sap Ag | Architectural Design for Tax Declaration Application Software |
US8818884B2 (en) | 2008-09-18 | 2014-08-26 | Sap Ag | Architectural design for customer returns handling application software |
US8386325B2 (en) | 2008-09-18 | 2013-02-26 | Sap Ag | Architectural design for plan-driven procurement application software |
US8380549B2 (en) | 2008-09-18 | 2013-02-19 | Sap Ag | Architectural design for embedded support application software |
US8326706B2 (en) | 2008-09-18 | 2012-12-04 | Sap Ag | Providing logistics execution application as enterprise services |
US8595077B2 (en) | 2008-09-18 | 2013-11-26 | Sap Ag | Architectural design for service request and order management application software |
US20100082497A1 (en) * | 2008-09-18 | 2010-04-01 | Sap Ag | Providing Foundation Application as Enterprise Services |
US20100070317A1 (en) * | 2008-09-18 | 2010-03-18 | Nir Pachter | Architectural design for sell from stock application software |
US20100070329A1 (en) * | 2008-09-18 | 2010-03-18 | Sap Ag | Architectural Design for Opportunity Management Application Software |
US8315926B2 (en) | 2008-09-18 | 2012-11-20 | Sap Ag | Architectural design for tax declaration application software |
US8374896B2 (en) | 2008-09-18 | 2013-02-12 | Sap Ag | Architectural design for opportunity management application software |
US8621390B1 (en) * | 2008-10-21 | 2013-12-31 | Amazon Technologies, Inc. | Table of contents menu over electronic book content on an electronic paper display |
US20100138269A1 (en) * | 2008-12-03 | 2010-06-03 | Sap Ag | Architectural design for selling project-based services application software |
US20100138258A1 (en) * | 2008-12-03 | 2010-06-03 | Sap Ag | Architectural design for intra-company stock transfer application software |
US8311904B2 (en) | 2008-12-03 | 2012-11-13 | Sap Ag | Architectural design for intra-company stock transfer application software |
US8321306B2 (en) | 2008-12-03 | 2012-11-27 | Sap Ag | Architectural design for selling project-based services application software |
US8401908B2 (en) | 2008-12-03 | 2013-03-19 | Sap Ag | Architectural design for make-to-specification application software |
US8321308B2 (en) | 2008-12-03 | 2012-11-27 | Sap Ag | Architectural design for manual invoicing application software |
US20100138257A1 (en) * | 2008-12-03 | 2010-06-03 | Sap Ag | Architectural design for selling standardized services application software |
US8738476B2 (en) | 2008-12-03 | 2014-05-27 | Sap Ag | Architectural design for selling standardized services application software |
US20100138255A1 (en) * | 2008-12-03 | 2010-06-03 | Sap Ag | Architectural design for manual invoicing application software |
US8671035B2 (en) | 2008-12-11 | 2014-03-11 | Sap Ag | Providing payroll software application as enterprise services |
US20100153158A1 (en) * | 2008-12-11 | 2010-06-17 | Sap Ag | Providing project management software application as enterprise services |
US20100153240A1 (en) * | 2008-12-11 | 2010-06-17 | Andreas Bold | Providing Payroll Software Application as Enterprise Services |
US20100262508A1 (en) * | 2009-04-10 | 2010-10-14 | Will Volnak | Method and system for an online library marketplace |
US9665620B2 (en) | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
US20110179014A1 (en) * | 2010-01-15 | 2011-07-21 | Ian Schechter | Managing data queries |
CN102870091A (en) * | 2010-05-03 | 2013-01-09 | 西门子公司 | Macro management system for an engineering system for parameterizing switchgear |
KR20130077831A (en) * | 2010-05-03 | 2013-07-09 | 지멘스 악티엔게젤샤프트 | Macro management system for an engineering system for parameterizing switchgear |
US20130055122A1 (en) * | 2010-05-03 | 2013-02-28 | Siemens Aktiengesellschaft | Macro management system foran engineering system for parameterizing switchgear |
CN102870091B (en) * | 2010-05-03 | 2016-08-03 | 西门子公司 | Grand management system for the engineering system for switching device given parameters |
US10108705B2 (en) * | 2010-09-29 | 2018-10-23 | International Business Machines Corporation | Method to improve the named entity classification |
US20120185480A1 (en) * | 2010-09-29 | 2012-07-19 | International Business Machines Corporation | Method to improve the named entity classification |
USD665401S1 (en) * | 2011-03-09 | 2012-08-14 | Microsoft Corporation | Display screen with graphical user interface |
US9116955B2 (en) | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
US9576028B2 (en) | 2011-05-02 | 2017-02-21 | Ab Initio Technology Llc | Managing data queries |
US10521427B2 (en) | 2011-05-02 | 2019-12-31 | Ab Initio Technology Llc | Managing data queries |
US20150007134A1 (en) * | 2012-03-16 | 2015-01-01 | Tencent Technology (Shenzhen) Company Limited | Method, Apparatus And Computer Storage Medium For Plug-In Management And Control |
US9396005B2 (en) * | 2012-03-16 | 2016-07-19 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus and computer storage medium for plug-in management and control |
US20140359575A1 (en) * | 2013-06-04 | 2014-12-04 | Sap Ag | Adaptive contextual graphical representation of development entities |
US9547505B2 (en) * | 2013-06-04 | 2017-01-17 | Sap Se | Adaptive contextual graphical representation of development entities |
US9891901B2 (en) | 2013-12-06 | 2018-02-13 | Ab Initio Technology Llc | Source code translation |
US10282181B2 (en) | 2013-12-06 | 2019-05-07 | Ab Initio Technology Llc | Source code translation |
US10289396B2 (en) | 2013-12-06 | 2019-05-14 | Ab Initio Technology Llc | Source code translation |
US10437819B2 (en) | 2014-11-14 | 2019-10-08 | Ab Initio Technology Llc | Processing queries containing a union-type operation |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US9870207B2 (en) * | 2015-12-22 | 2018-01-16 | Sap Se | Software development using re-usable software components |
US20170177310A1 (en) * | 2015-12-22 | 2017-06-22 | Sap Se | Software development using re-usable software components |
USD832278S1 (en) * | 2016-05-10 | 2018-10-30 | Google Llc | Display screen with graphical user interface |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Glassman et al. | OverCode: Visualizing variation in student solutions to programming problems at scale | |
Fill et al. | On the conceptualisation of modelling methods using the ADOxx meta modelling platform | |
Holcombe et al. | Correct systems: building a business process solution | |
Yue et al. | aToucan: an automated framework to derive UML analysis models from use case models | |
Chowdhury | Introduction to modern information retrieval | |
Hooper et al. | Software reuse: guidelines and methods | |
Ravasio et al. | In pursuit of desktop evolution: User problems and practices with modern desktop systems | |
Hunter et al. | Managing inconsistent specifications: reasoning, analysis, and action | |
Vanderdonckt | Development milestones towards a tool for working with guidelines | |
Müller et al. | Reverse engineering: a roadmap | |
Winkler et al. | A survey of traceability in requirements engineering and model-driven development | |
Fraternali et al. | Model-driven development of Web applications: the AutoWeb system | |
Lucia et al. | Recovering traceability links in software artifact management systems using information retrieval methods | |
Wing | Writing Larch interface language specifications | |
Cockburn et al. | Which way now? Analysing and easing inadequacies in WWW navigation | |
Noy et al. | Evaluating Ontology-Mapping Tools: Requirements and Experience. | |
Levi et al. | A heuristic evaluation of a World Wide Web prototype | |
Finnigan et al. | The software bookshelf | |
Palanque et al. | Formal methods in Human-computer interaction | |
Florijn et al. | Tool support for object-oriented patterns | |
Ding et al. | Ontology research and development. Part 2-a review of ontology mapping and evolving | |
Mack et al. | Knowledge portals and the emerging digital knowledge workplace | |
Teorey et al. | Database modeling and design: logical design | |
US7596416B1 (en) | Project management tool | |
Luján-Mora et al. | Extending the UML for multidimensional modeling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: UNITED STATES OF AMERICA, THE, AS REPRESENTED BY T Free format text: ASSIGNS THE ENTIRE INTERERST. SUBJECT TO LICENSE RECITED;ASSIGNOR:CALIFORNIA INSTITUTE OF TECHNOLOGY, A CORP. OF CA;REEL/FRAME:005915/0605 Effective date: 19911113 Owner name: CALIFORNIA INSTITUTE OF TECHNOLOGY A CORPORATION Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:WARREN, LLOYD VAN;BECKMAN, BRIAN C.;REEL/FRAME:005915/0602 Effective date: 19911113 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Expired due to failure to pay maintenance fee |
Effective date: 20090520 |