From 81a4d0a2fec6a0a1e0e0dcbd975eafff8ec25239 Mon Sep 17 00:00:00 2001 From: minsung Date: Thu, 30 Apr 2026 15:04:06 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Essence=20of=20Software=20wiki=20?= =?UTF-8?q?=EC=BB=B4=ED=8C=8C=EC=9D=BC=20+=20raw=20=EC=9B=90=EB=B3=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit raw/book/EssenceOfSoftware_Eng/ — Daniel Jackson (2021) 원본 11개 폴더 추가 wiki/sources/ EOS 챕터별 한국어 페이지 8개: - EOS-overview: 전체 개요, 설계 3수준, 핵심 원칙 - EOS-part1: Ch1-3 동기 (Backblaze/Dropbox 사례, 개념 역할) - EOS-ch4: 개념 구조 (5요소: 이름·목적·상태·행동·운영 원칙) - EOS-ch5: 개념 목적 (좋은 목적 4기준, 미스피트 사례) - EOS-ch6: 개념 조합 (동기화, 시너지, 과잉/과소 동기화) - EOS-ch7: 개념 의존 (의존 다이어그램, 제네릭 개념) - EOS-ch8: 개념 매핑 (다크 패턴, UI 매핑 딜레마) - EOS-part3: 원칙 Ch9-11 (특정성·친숙성·무결성) wiki/index.md Sources 섹션 EOS 8개 등록, wiki/log.md 기록 Co-Authored-By: Claude Sonnet 4.6 --- .../concepts-001-030/_page_0_Picture_0.jpeg | Bin 0 -> 37264 bytes .../concepts-001-030/_page_22_Picture_1.jpeg | Bin 0 -> 23912 bytes .../concepts-001-030/_page_24_Picture_1.jpeg | Bin 0 -> 38284 bytes .../concepts-001-030/_page_25_Figure_1.jpeg | Bin 0 -> 56426 bytes .../concepts-001-030/_page_26_Picture_1.jpeg | Bin 0 -> 23014 bytes .../concepts-001-030/_page_28_Picture_1.jpeg | Bin 0 -> 33931 bytes .../concepts-001-030/_page_29_Picture_1.jpeg | Bin 0 -> 11665 bytes .../concepts-001-030/_page_29_Picture_2.jpeg | Bin 0 -> 10727 bytes .../concepts-001-030/_page_4_Picture_0.jpeg | Bin 0 -> 34887 bytes .../concepts-001-030/concepts-001-030.md | 390 +++ .../concepts-001-030_meta.json | 2027 ++++++++++++ .../concepts-031-060/_page_0_Picture_1.jpeg | Bin 0 -> 2605 bytes .../concepts-031-060/_page_0_Picture_2.jpeg | Bin 0 -> 2975 bytes .../concepts-031-060/_page_0_Picture_3.jpeg | Bin 0 -> 2062 bytes .../concepts-031-060/_page_0_Picture_4.jpeg | Bin 0 -> 2307 bytes .../concepts-031-060/_page_21_Figure_1.jpeg | Bin 0 -> 119369 bytes .../concepts-031-060/_page_24_Picture_1.jpeg | Bin 0 -> 34451 bytes .../concepts-031-060/_page_26_Picture_1.jpeg | Bin 0 -> 21885 bytes .../concepts-031-060/_page_26_Picture_2.jpeg | Bin 0 -> 22661 bytes .../concepts-031-060/_page_27_Picture_1.jpeg | Bin 0 -> 26633 bytes .../concepts-031-060/_page_2_Figure_1.jpeg | Bin 0 -> 26938 bytes .../concepts-031-060/_page_5_Figure_1.jpeg | Bin 0 -> 40303 bytes .../concepts-031-060/_page_7_Figure_1.jpeg | Bin 0 -> 82731 bytes .../concepts-031-060/_page_8_Picture_1.jpeg | Bin 0 -> 37512 bytes .../concepts-031-060/concepts-031-060.md | 479 +++ .../concepts-031-060_meta.json | 2388 ++++++++++++++ .../concepts-061-090/_page_11_Figure_1.jpeg | Bin 0 -> 60328 bytes .../concepts-061-090/_page_12_Figure_1.jpeg | Bin 0 -> 38758 bytes .../concepts-061-090/_page_13_Figure_1.jpeg | Bin 0 -> 19455 bytes .../concepts-061-090/_page_14_Figure_1.jpeg | Bin 0 -> 56948 bytes .../concepts-061-090/_page_16_Picture_1.jpeg | Bin 0 -> 28735 bytes .../concepts-061-090/_page_24_Picture_1.jpeg | Bin 0 -> 26381 bytes .../concepts-061-090/_page_26_Picture_7.jpeg | Bin 0 -> 11653 bytes .../concepts-061-090/_page_28_Picture_10.jpeg | Bin 0 -> 16941 bytes .../concepts-061-090/_page_5_Picture_1.jpeg | Bin 0 -> 27219 bytes .../concepts-061-090/_page_6_Picture_1.jpeg | Bin 0 -> 13235 bytes .../concepts-061-090/_page_7_Picture_1.jpeg | Bin 0 -> 14132 bytes .../concepts-061-090/_page_8_Picture_1.jpeg | Bin 0 -> 22340 bytes .../concepts-061-090/_page_8_Picture_2.jpeg | Bin 0 -> 12208 bytes .../concepts-061-090/_page_9_Picture_1.jpeg | Bin 0 -> 44773 bytes .../concepts-061-090/concepts-061-090.md | 482 +++ .../concepts-061-090_meta.json | 2387 ++++++++++++++ .../concepts-091-120/_page_16_Figure_1.jpeg | Bin 0 -> 12103 bytes .../concepts-091-120/_page_17_Figure_1.jpeg | Bin 0 -> 34322 bytes .../concepts-091-120/_page_18_Figure_1.jpeg | Bin 0 -> 36785 bytes .../concepts-091-120/_page_23_Picture_1.jpeg | Bin 0 -> 39811 bytes .../concepts-091-120/_page_24_Figure_1.jpeg | Bin 0 -> 43341 bytes .../concepts-091-120/_page_25_Picture_1.jpeg | Bin 0 -> 22563 bytes .../concepts-091-120/_page_26_Figure_1.jpeg | Bin 0 -> 31227 bytes .../concepts-091-120/_page_27_Picture_1.jpeg | Bin 0 -> 7998 bytes .../concepts-091-120/_page_29_Picture_1.jpeg | Bin 0 -> 21440 bytes .../concepts-091-120/_page_6_Picture_1.jpeg | Bin 0 -> 27019 bytes .../concepts-091-120/concepts-091-120.md | 478 +++ .../concepts-091-120_meta.json | 2358 ++++++++++++++ .../concepts-121-150/_page_10_Picture_1.jpeg | Bin 0 -> 21354 bytes .../concepts-121-150/_page_13_Picture_1.jpeg | Bin 0 -> 33940 bytes .../concepts-121-150/_page_16_Picture_1.jpeg | Bin 0 -> 10784 bytes .../concepts-121-150/_page_18_Picture_1.jpeg | Bin 0 -> 28976 bytes .../concepts-121-150/_page_19_Picture_1.jpeg | Bin 0 -> 19789 bytes .../concepts-121-150/_page_20_Picture_1.jpeg | Bin 0 -> 45001 bytes .../concepts-121-150/_page_22_Picture_1.jpeg | Bin 0 -> 10921 bytes .../concepts-121-150/_page_29_Picture_1.jpeg | Bin 0 -> 30786 bytes .../concepts-121-150/_page_2_Picture_1.jpeg | Bin 0 -> 69212 bytes .../concepts-121-150/_page_3_Picture_1.jpeg | Bin 0 -> 38424 bytes .../concepts-121-150/concepts-121-150.md | 468 +++ .../concepts-121-150_meta.json | 2331 ++++++++++++++ .../concepts-151-180/_page_0_Picture_1.jpeg | Bin 0 -> 39073 bytes .../concepts-151-180/_page_10_Picture_1.jpeg | Bin 0 -> 91321 bytes .../concepts-151-180/_page_11_Picture_1.jpeg | Bin 0 -> 28700 bytes .../concepts-151-180/_page_14_Figure_1.jpeg | Bin 0 -> 46607 bytes .../concepts-151-180/_page_16_Figure_0.jpeg | Bin 0 -> 92156 bytes .../concepts-151-180/_page_3_Figure_1.jpeg | Bin 0 -> 52791 bytes .../concepts-151-180/concepts-151-180.md | 489 +++ .../concepts-151-180_meta.json | 2759 +++++++++++++++++ .../concepts-181-210/_page_23_Figure_1.jpeg | Bin 0 -> 29593 bytes .../concepts-181-210/_page_24_Figure_1.jpeg | Bin 0 -> 17889 bytes .../concepts-181-210/concepts-181-210.md | 331 ++ .../concepts-181-210_meta.json | 1826 +++++++++++ .../concepts-211-240/_page_15_Figure_1.jpeg | Bin 0 -> 21033 bytes .../concepts-211-240/_page_24_Figure_1.jpeg | Bin 0 -> 19930 bytes .../concepts-211-240/concepts-211-240.md | 483 +++ .../concepts-211-240_meta.json | 1874 +++++++++++ .../concepts-241-270/_page_27_Picture_1.jpeg | Bin 0 -> 27299 bytes .../concepts-241-270/concepts-241-270.md | 415 +++ .../concepts-241-270_meta.json | 1835 +++++++++++ .../concepts-271-300/_page_12_Picture_1.jpeg | Bin 0 -> 28742 bytes .../concepts-271-300/_page_13_Picture_1.jpeg | Bin 0 -> 18635 bytes .../concepts-271-300/_page_16_Picture_1.jpeg | Bin 0 -> 62138 bytes .../concepts-271-300/_page_25_Picture_1.jpeg | Bin 0 -> 30865 bytes .../concepts-271-300/_page_9_Picture_1.jpeg | Bin 0 -> 49452 bytes .../concepts-271-300/concepts-271-300.md | 396 +++ .../concepts-271-300_meta.json | 1909 ++++++++++++ .../concepts-301-328/concepts-301-328.md | 682 ++++ .../concepts-301-328_meta.json | 1406 +++++++++ wiki/index.md | 8 + wiki/log.md | 14 + wiki/sources/EOS-ch4-concept-structure.md | 118 + wiki/sources/EOS-ch5-concept-purposes.md | 95 + wiki/sources/EOS-ch6-concept-composition.md | 136 + wiki/sources/EOS-ch7-concept-dependence.md | 129 + wiki/sources/EOS-ch8-concept-mapping.md | 101 + wiki/sources/EOS-overview.md | 77 + wiki/sources/EOS-part1-motivations.md | 116 + wiki/sources/EOS-part3-principles.md | 192 ++ 104 files changed, 29179 insertions(+) create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_0_Picture_0.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_22_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_24_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_25_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_26_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_28_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_29_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_29_Picture_2.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_4_Picture_0.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/concepts-001-030.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-001-030/concepts-001-030_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_2.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_3.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_4.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_21_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_24_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_26_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_26_Picture_2.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_27_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_2_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_5_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_7_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_8_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/concepts-031-060.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-031-060/concepts-031-060_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_11_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_12_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_13_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_14_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_16_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_24_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_26_Picture_7.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_28_Picture_10.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_5_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_6_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_7_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_8_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_8_Picture_2.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_9_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/concepts-061-090.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-061-090/concepts-061-090_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_16_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_17_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_18_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_23_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_24_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_25_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_26_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_27_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_29_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_6_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/concepts-091-120.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-091-120/concepts-091-120_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_10_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_13_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_16_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_18_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_19_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_20_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_22_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_29_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_2_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_3_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/concepts-121-150.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-121-150/concepts-121-150_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_0_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_10_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_11_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_14_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_16_Figure_0.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_3_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-151-180/concepts-151-180.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-151-180/concepts-151-180_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-181-210/_page_23_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-181-210/_page_24_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-181-210/concepts-181-210.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-181-210/concepts-181-210_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-211-240/_page_15_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-211-240/_page_24_Figure_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-211-240/concepts-211-240.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-211-240/concepts-211-240_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-241-270/_page_27_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-241-270/concepts-241-270.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-241-270/concepts-241-270_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_12_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_13_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_16_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_25_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_9_Picture_1.jpeg create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-271-300/concepts-271-300.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-271-300/concepts-271-300_meta.json create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-301-328/concepts-301-328.md create mode 100644 raw/book/EssenceOfSoftware_Eng/concepts-301-328/concepts-301-328_meta.json create mode 100644 wiki/sources/EOS-ch4-concept-structure.md create mode 100644 wiki/sources/EOS-ch5-concept-purposes.md create mode 100644 wiki/sources/EOS-ch6-concept-composition.md create mode 100644 wiki/sources/EOS-ch7-concept-dependence.md create mode 100644 wiki/sources/EOS-ch8-concept-mapping.md create mode 100644 wiki/sources/EOS-overview.md create mode 100644 wiki/sources/EOS-part1-motivations.md create mode 100644 wiki/sources/EOS-part3-principles.md diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_0_Picture_0.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_0_Picture_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0748533f9c4c437a2633f5a71bcbc9ec91cb3af9 GIT binary patch literal 37264 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 QzyL4+4E*mi0NWe-8%mE&r2qf` literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_22_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_22_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..bfec6eaceed6c2231f540f1539650b0a941286c4 GIT binary patch literal 23912 zcmeFZcUTnLwmn*8$%5q6C@4q}$w+EIp+PnRDme!w2}sT~f|7%Ppd!*l$skCO43b49 zH9>ODp_|x1)BS3n=-%ht-@W&IFZ}bGuc$zERjpNX%{k_nV}T#X&jA#85ueG1qvz#YAQ-fDpvYSv<#eV5H3zO4i0YK8+_bXgm^eO z_@%E4-4vCOkbv;rQjigozacIm_WMN$$jQm6D5+SesaeD>b6ghtUw`ne0Nn+G6+#Un zf-3+a9RU#?0lou(fX_)n@Rtwpw+{g!5itoV*#&Y6O7Mj0ivS@35fLFV5eW$~F?e67yHlzc=kKE&HD}Ec8EW**_Zg&vs1!R73>e z%Oj!#puq7de|8AP|G)h2`#_*{Cg+hQK|@10)d9T>@j01)ZlLA|#G$sE^toG2V)qI& z13|f}E&PjSK5f%c6&~>aYJ~?XM@+W;*_Y$H@79y9xZkcv4P>5u59?8gs5{D}97~&G z+OMu|boKF8JkW)coqhAQSlxb@7UZ~^`nk69!Jw74WCWJ{Gal%6I2!#pp>+9~ROTu& zc`AA842dLAU*FTfHQYz?9^wIYQ9Q85@&OOnOmLNYY8N)V!UJ0)!O=jrM1jG%S?7V> zi0f5c={=@n6nM4fa(A+0yN54>Ga;j8x=I&66c9W5C3&i>FNRqDFe@6wRljjfJ#{~F}`LxCFbV$f$DTW(+- z+DfxkxWT9R&~8oiGtTh1z*ymau#2QYELWiueI_J^6j};+J~WU#e?u!AR496Q_9X0p zm_j#S)`KahpbNgajKBl8zXP7H4CE^}rDivF<{K<_rn)Oyc5@f;0B7+{OgON~ltnrI z^&Ua;oAEQ5#r?LUOzP}^M7p#W|OmZyB>)#+w6cnQYvMA4aJOCkG zK;nU6UryNhVQg@9o~xIu59F=0yvJo6|I|%v=i`yN{VyFDIzJq#^Yu2liK26HQWEz3i)E5x{sv(t>#Nk;Dw zK@*2j?^t6>PXh%DR+~ec-eL(|B@%|eFZz1BQ3upAi20s3-Z$=xgcFnKvT)nKT*E-zw2u5rr3pyy6s>GD6v3d7Ka# zdjh(u41ZZ3m@(b4^`a`dsTZ!yu)$9l>*SSl@knm<6D0V1{M`h@-gVsi;xJ>Aogc}0 zrKw3XW^$64Yc9USUq47E>2}Txr;3tf;a@JFEIz+p~ripUtOwWGY zM9`-#!+woiPEG%!4AH68q57L36bO+eP~uoL-MAPx#-`A7Z~GGO8!SQp61BFI56RMF zO+TUn8HH$s3N7~;+fU6%+cfq2_7jE`D_1@WyRW!?7ER4#5jV3x8fV@zQ<_8K^LfIp~dE805yit~!Fq)ek!ha1RoH(5~ ztx$e0>Y8y04-hCo=Xmut6`rytjoptlo~oFLOYgjn2Oc#A#nXq?ITEez&TgM>wBEC24!31oMedYht>#a%n!+DHca(JkzA?O{ye^L- zGn*MNSw$tZ2W)Z5bq`J2VO)jYEN(mv4Ur#>KIq5j;UI~(Z=?B?xbZ+g><%>1pZ3c+ z;nitqM;w6x?rnV?Hf(_G?N}~W5Zw~_B+%r8{koUJ@{6fH%E`N(U#@TTWf<76#^0nC z@YS9#4dK&8PaWIBNmAZjS8Sbs;o@u1m2qiEUMp`sm=?8PJY&}BDwR_pweBq*(x$}6 z$~70DLpJbGR~2CR`x0BUrW+#APRzBC8Vy*`sCVCG`k~>Z!8XhH`N1CIY}MIGUphj~ z26+|Yt~n-%5hy%=IQspcU;q1MboC@PXSdG97Is}$;>h)I`<_H-83uyHAiksK52HW7 z$GxMy>78o+Sux9Z5qYLpUz$I09{+`(wN^H^0q&O|1gF<1mH_Ah-gE+UlLhVg46eZ) z-kM>{cY1GWD7(JMd|KmJLKF}OjO92U4bH699wloZ`R3OqNxzfXYrjtNX*+$a7srEf zU4T=Ys^9SJEfapdGi`D?Ns22sq2WL#lV)`H=*5^>%fNxNEaSnO#)tz!qh0iF=a&2B zq2ZsFt{aETON_i1l{uAjGie_rEbhi6?;5X*!JCNi0F1HJ=Ir*y1tp{er4h`-RUCGD zab#hHmucVZ?v>hb4O<0zNg?eyexglUvOsMRFvNafN-Y;I#gU&0w-UUe$y4ufUEMZ& zRleM@L+V{9xu4$-39sJ@zB+t3ZOlBhRr=UK*KJQj5D!qikdIB0T~r`-S{o9(>90ea z!5IsipO&F1B~&je=Q4rt;W-dmY{&4m_$wS>J~n>8K(eN4@T&ku!6@tjW78Rh{L;Ay2|y01#U5Y`!4n>Z9(ll z7{SSH(u0YJP(@r~W_pdBMR8QMM~StrJa#kvK`q-hGRK{OYMJk9I~PY{_K4Rz`)lSO z3&qqG3o;W=46b^i7u!a6?%cj#2bqbUA^~;-NoP`Is)LpEXz@3J7a5X*6Nb=)2> zRoZ~k6AjS%zV)bCnz`ft;YIUDWeHC0l4TotJzypyy=&+!6-A1FnOAi=qDrZNKarh-SHE8y9XARySw9gd4AKzN@yVbYvc-?)piE z4#<68yEYlIti)`e9S!jRvS1Kqcpx$2J{~A9gdd0-9S&gnRYp85=q=*Zz67`le@kGm z$5vjqR@PsGQ>+#M*`Oyc#REj}p7Z(HGjbCU9e0*cY$>v@v6U4sYH@9R{o+?z>YA12 z7dp?Q_q1Ec_XojZVJ24;$6KWcUW9$j~3cbgC zeCT2cq-Uz6?@u$9M@ILQxsV%wXzA|{AjsYk;q^Wj+Ah3wcV>=r_Kd$YtqaXPY3Bq* zwfkI>9(a#9lLTa=`7^1sS@1wlLOC87mjcnTYIWeJtUwjCK?IL_)wZ=)?L8)PH(pDB z;Ai)I^eLhXvd6nQdqe|f6obwdECXbDh`6-nHpqmm)Qey;zio2pDHHT=GLGrTYi?3_ z#0*zr1L7*YC~cpDpJ@2q!t`?|T*MrN=F7|n5}rK@0aisROrDkf6XAo>TeRAh6E=`A zdg$GKe}1BRR7;dsIbEOz>Y%^21LTfu-b$5P_+QuP*d^KXj?5Z0sMi8Zn=h$R!~4BC)C*w_S3a+#I+!zK9Fi zt$n54AhE&&Up(eTPFbtqSn33n ze2m9~k6IGrn^GP;tlvuqL|BP!5)+5zAwNPC6zkxT_3u~W=7bG&hgWZ!O%}Ub$FmTq~QB(+u2y3L-Xa~^BgZPNYrD=l~+1s`R_&M7WX9a zz(v^ha##ZPg;oGGtfnuq5EH$1Do}v4uU>hmL-wIOs+rlrsYM&*b%@*aGJM z{Sp!5w?IwebXmxT!iBk!B9~^*SpmuVTJdQq)q2&Ax3_hc`&q`1g{+z%bU|Fi#z7i9gxmCa9w|BJ;E&(6Yz5MHFUoV{t9udtp-uCCrCRr z)|mgUE3)ick~XC4c7>`E_Hl$4&Df?7&ADlV^Z%F(dL7cL;YDbCijr)j zbNsdg^MNt2VugAgbp!H55i-K-s`}|A9=JRH31hVAw5pe&R2K_bNH4Jr@}V=hhUr@@ zOtv4@7oEy0Q38XDWP%@>sB>(i*KI-gPVrN{Yy7lxpEGIIP>6PRR|-syMgv+pQfMBj zI1oOpUG2Q5esbbNFT=X|EWyqE+=2^3@Ds;lPqSr|hPz^zp5$XN{*VCj6LgOmAg?of zCE-&$9{9a0npHJa0oai*d^Hw++*2mk1)=urXLIysmOd80O_DA4#(Csnj|N%lt=7e1 zblGS$@MR#7eSViJlkHxLD{+X;kIDMmhaSn8$JywaIIjg-;*B)3_;xS1i*ymrnJ-%x z6)|PepLe5^LxD+=ee@qNSNPd*W$I5 zf10Fp)J3-bAW#PF-L#Mp!*+X&F||$zHB^g-zO~__%G>`hlg?p!%rr>AMhm6^S7w(dxk>M1L0HAaL=Enj$cEmue`se} zkoV>QupOH!iNphb56@L8*)D(0E>sL-AV3G@zc@TQ(yJPjWUckQ{$wfGw_FoN+crzD zy1*%CFp?@PODPw*L+sMFlgP1urCclGSg<9nYImj@1wp6vI8&dZN*wN+k#m=2Kj zR~ZyeVTsUBZrz+(_lR%1_7wgQ^5YX^t~OpTlFjs`6^o%QqcTGlrvRRbB~~3tJD7FAb-sr6vQ6RumJvOipx&8E3GpASBGs z#RCmcT$F!D1&TRF@;ak%qg)~9G@Cjb2z8p@5gnGBVXROI2B_Ug=j!vv3oN$JOt0p` z0_eXQtXQ?qWxUO#b;yoZQ3=%mXfz~%SsGM*QbN6mh3i6r_J)?TJ}i6y%sBgsrHC%}x1! zW*O>yBE(+m{_VyhLPzi$j$qc2Nj5wyciPxAFYoKgpgQ`avH)j^c&u&0IbqX6-7FD^ z_CMhP*W=k!Jz_ui_R0{4??oGRdn-p=YxFeLnQsJgj`lkf8nt2U`ju#mIk-u741;Vh+SNdj&mJ zh2RuHV)h*ay_Y<_1mJW^94oOeJm2|2-afXFy}i-D4?&KcX64*+zBVJxlFGPe%N2{b zey(cq*SAvW#Fp0_l{3BJ6VTl6M3-_Dn@+3k-(U*q((JDc6deJc$gl7lpc6ID2{LJB zCKlNH49lFCj4a<0C-&rDeia)ErATemo`c2meGavtGAB2)A~n(QPGaz~@7>;jLL862 z{!0e-mo%_sno=J(IXrP_wKp%`#{u&W?11q@@>wU-{ppPV+N*lhN|H;74!W0`SI-?F zZ5Pf~(PueRBQbrSw@SZN5_VtKWq9;HL6xXZ(g`-4TWxfs?C9NOEURcw9PAEP`yp={ zFs%1b^$vla8o&wU{gUwhnuq>VU$pK(}Y3BTF#3@MS`m)rX zpt5I+|BN|DK!Wa$m|%9%SSnN6a}~MI^m-g|?J0_xhh$SaBy0kFgCfFsV6j_QC@j~& zX@xe^Djd77^T`n$7-d7TAzn@nBQ0tZ_Jq@nuru}Y+2KRb9n>1QE>RQRpFS3nWCr(O z7UvfzfF{+41|v71i?es_yN`GB9zv3KpqYiqDjA#a@1g3sYL4c*Ap?lU**9EB;HBB* zR8Aq z1BF=C8qrifW@oTM$ z&vlJvYDYZuT^DL8sJqhmM!wbQt9EXTE>-%I6Z_S;d9qQqz{6m6dDNoGaMFzRdP4@B7RUb>nSn&(x_3vn~e|OA)c5a(~Vz<52Jwdp7*pYee zJCSA0jg_uBcXl-6l!5r1$O&V@`EwCGa8Tw5e4GfbCOfU$+CjqmRqajo*(27jKi}AF zcOYoleE&7^bfKP&pQvA+`}Fnrp|*%dV#|WFU((}P%aiYkW7VG4!Y&pKj~p%>rYm;nSPUP34B}o`wI`Awyk05`iVbqiFh15)SAj2nGsGDdj~Xk)g}uG}oHb!4 zO~w2+9w3y*G5Y^2Qv18d`t!Ol;DgZyKhp-u%kpWL*cLU8gfE{EcbaNf`W`&CI9c}2 zumq!gIQ#y07hNTe{TtP^r{ASmyGxr|d$AlM`ybBB(80KvV8sj*IA2+OG_YUJIA#9D z(^=2+-RI8u9H!O89NkLOFR&TDl8}RKGl2;wA4t31&Nl3vhhna7j{I~O{#QA8LN@ZFQc57jV_{7 z6lk*!6h|aA{jz?VeRBblW|j`qroW1wE{0>3i=6WuQFx#bDZIlxw7?0{l|k3LadKc@ zt`}>(@N`tlJs@wGb|CNCwEe*_H)I!NKtt1jYE=WKw5|6B_d?*!dx@vQ>h;v$TF@uO z_xh%V2UKVm`+}lGX^CPjV|<8+28kP>h_jED2=2V7O5>d3=$+(@=A1|-=91~p+W**$FmaJ7Dnjp(CBJcaC$GaS_v99YYcki7hDg!|RMu^{h zzjux`4qf6!VD{O7>0dIBzh@x-{kl?d)~~SP+Uw=+C%MJucN@a!kZN`8Ei>{#4zuG! zwPKrWG0>uVZfxj6h@^c9>kW3Q~C}Uof8)eX+PRyJujFW=> zc_#)eor5nO46XlMXe_!~)<3QrQ|x(ZVuo}Iv^XZwM|6dg zt=BnO;X`@^yyJ>0XzXJ!4-e|R#@EdBLT+ke-=<#xnyNNAj`f){@t%_pj@_T-yKQ)+ zXn!C-1xdFG_JWb>n_y4xN9;`|4E=5y4mTu)Ie)ADO=RoUqvbo461R~B^ATl$Vpnxm znp`Bky_xxS2C>SF3kqul2mdJR{Zc9XH^&%Xmp1fqHY3;>oPGw@JdzP)AwfVwx)+U8 zQs8?|^_sQQ*X-NyfPEQk?L&yfLfqx3D^Y}MAp!*~08Qv;69mVmM{nWOnmLE&xrk=U ze1@MZv9=)JEM3`fdO%{@uHg4wuWGbHS624A@r&@7>~8TkKYv@*wE24V3O-d%We*I^ z0l~EWL}_zF_Ro!)cg_7i^k3hFUm&(4n<X~ik7owtb&7+vpH zRel_D7M7R`{mPPZd3-W_;O4E}!=j0n{(#&&iYE=T7$Fx893l>I9Q$JkSucKzV#Y>y z(?_AbmaZD3QY+zS%9cpBwrZqT zoOpZUw7sln5=^*#=ECwTwWr%`&OAh9g{+ol@@qh=1P=wxKHpJId9)Y5}6n6R%yGEq{ zi$(ux-M?;AmD*Q#|McvzZh7KfDV9!0AKR?hD1xP^8l>k36&3>g6h))}QT1c9z-GQ- zqvlPMA2GNi8)y&YYqdR5R14;rgn@Cwkwy6Kp(dy3H=oxpd)WjkV?U}|Q>JjbnVG*X zG;w0nE6aPlyj_-UWMh5vZeoV2yKzc&OH80ha0bh0d?H1k8{>HR2!jUqeESk9N4z@s zOOLccj8DO}{5fi_6*=|oOFerXqIT9>SA$LW!(#V0mDrdy&k{`Og+PT6-RObf)W@Ws|)WWn{ir`!qKqcLPlK^klpjw z4~dC;KWNcpem)3S^~Mg|#M%?(XD1rUhTo@1dY{3nATIc=lnV_A@y%9qKov4ZuH zkC}Jaa-J&vQFz5+AQ8#>h6fzTUYgQa(h$};35Q16iN>Nk^_?AQ&&Ud3(0a&o6;X`- zi!b0f+eA-FOC70ysy}jIdHMDf&_+fNhhErrUZ{ORs7g<)%1QVvL{PSUdF;>&>U(kn zI(3*~5g+5IW2GuhVgT>{ zdB)Xeec!8UQ>D^t$V|P;1(8)EnA?h6lfDtkXqRF+BiN-cm8Op;mMIB7^`7N$qvP#~ z#szt_Ew;|BSMQk%FKbsTH6`=W_ zr%bW5NXS>vas4-0-ru8uKt`eM*r=M!6ioJJDl^YceR|lzR!~&&D;*L}x%--HKUo9c zeQq||9>)&W9+Fk8IVoxr``$HT(~uX*ma7x`HW7Fy$v??^G-c`%R$WLSn%dFh`M>Uy}CX z%&{_uSD8vba*@oc&5ozSnp7d=Fuyyyegj+%|>kgv$R*ED}COTPDvwnrG9{0GX?T!#VCBm@X*t5};eM#veWg@CXeN=dvwI>l zRa3LkrvG_}q5sWWREpUlqLR=EF4hq*^4%LkE3i7bvip>U*6|)2Yb6BOy0X;KiJ31y z1fA@2LMIq5BxZiejt|kJ6*SjQag{iM9nVZ7aomd6^I;hv4DA>_DYMx;@=g8<^16*; znnC2<)qvDbJWwO~u=(B-XKCRE@6_AvGDk$*TqlxwK@N=PFTSU@i<;gUlmVqr&&W=Y zUyCB?7z7Gh0ZRf+B@VEJTDIJXx|cMZKBWrOyaA<->QQkZ8d#DXFc6v7KG3r0n9yA( z&34IwY~70i3!!2-J>);dhNjI~c;FH=(qHejp=X1GBst7g?6*#4oZKqnOMUb*7J@@~ zm2Gw>1_chZ!q;OV^`-$#M(iM8&8cd;5py+VNw$jrM@3fjGK1}#s2_83De{X0X`|U8 zS74!gU}`nSZr((5t;}Y4NsubziB!J_kMgBexzsC@uw@gG96xdS ziATdf<=*$R75Kh6eWgJA`AUL_1yp3BY7W{gJPS<)K_Td7rEmV6Z0hWY;ZO&`Oi_3; z!zV4bBGazHK93jiQXJj%tM-b|!8+(-wUF#hX>yMO)7}7Cj{G---K>WXIf!=LgEqmj z^FLLw{(9bjI^I101bNf`v)hA@a?1}opm?qIoM*(dCibkC_*ukajUAZEITe&ybV1jW z*4RETZW-rl^7zAU-sCuYtO|YM#qf7pk|1HBRPVro($V-ik0)B?4(0i}$#QJ4(8FL! z#jw0<5%cFz&Db5L)O9-7-HSI(HtuOJ8gX6215pW)fpXb2x@9IhpCJc70E$)IM59Gw z+5Zg!_y6yER8-z7zqxpB+x!Q|$*$uHy_|ZEJLGJQqA6#Cyx6{m?UmtAA6Jge1T~%6 z(Xug-IgtZ6?e{!HQ{K#!5$!RP3Ro=cdGd+?M0CIRvp&)_Yv`b_No8(<($L(2HoJfq z7aDR?LL2kecg$i$Thuu6;4|%6*tb^+7=~x??e|`c&*q9*OXROw-v}4E!C1D_6u55K z1Ex{dP>R_ZYhU0-e4+AaJ{*aa>edy6eu+lqJS3vY3J9?!N zu2}6b7kBTt{TOP8bhh3fY^)CYnt$W7B}{;JF&fbRQ&=$QpCxM4UYMoBWbd)Rhj}N{ zzVq=6oe^Ep66Bz6a~JD;7nblU`jqrPHgbyP1H=I&l8d`i{^}Of>2sTkCoC4A=BE2( zOxLuz78kY%r*`C|U)*MU5;5ja{s0=w3vVqTD#!-Qb7kzEY`DY)7E9C*M4^f4)Xc_p zJ0D_qB3`!~<~L%85TPfHU>s{mJ5gC|t;OBI%$GTM=gq(HVs*LU0>f6s);$58vPXzQ zP^CT5#;HJ4T)J`4i>6oX*a9BIfu7|_z|uBD<5a`<*jzt`y zD&RC|bn23Od|%7Si@dfejLX*VYh^}!L_J~v<)jiqA;2Ef;G|0J;l^+|o*?nd>V5&V z#u4ovm$Q;~& z&712jA`-mKA;=wxQkqsrX8j$TR6mO+cNaqejv89B{CkHhKC@g{A8(EDogaM@Gb7r# zi24x4irhzF`IG263wQj5^7vd#=igp08VazXVk*_#UO;H;} zkm+buJM4fA)+y)nE0al0QGGWy=7}8MIXj}6=38i=PAG$K{eqifmhcC}HN7XL>A3;4 zkGn;>O>rtAiY@gco|}x+K5!?O3q9h$6(YWkKFN?o<-+KF->KbR8$;8cr!{l&R`4ci z>^Sff?WkiP%{#P=_$I^P$FAAXGfC*3ib3a9q)654P$MsL?AhDwm$$rIi4w;NT8|Y! zG_&M)O1xC(4Tr^z3r((27khzG;FH|VFjpLS{R%&3H` z$)gjyfAjY$FXAT>F|!L$f0AQe8X(qc$ffeq2n|*u^|70GWrkRi_>ot*DT>IzEd7(D z$Fli4Guh77nbD(J_JVVDNSxyU*(INa1Ug6AmHd2+h33Z$Vd3XK;aA!9F66H%s~g?FuKHPH7`p?Hh%qvukWOvaE8uUD`wr zTO!5_y@(&lfcX z=^9P~5zv{a9(}TX>OEwFe!F*yYR08{gVs`=y{*jCSGyPIa3W*F1{{l*&Zf z5d>aPI*fO_VT?&txLnVjV)l-X0);qlL{&aEW&&~^)Pj3v{sPsG(@2PbZ}##Nb;IY= z4&kRPLh#+bK|DY;2I>n2+Q5hrY~GxZ9isRY4}?37fJ4_3q|sVLU|4bUa!?gVl5l?F ze+o`t!L+w#D2ymVoJu7>v2MMunKl-;dPMa3z-k<1*G^a4GkAyP4YJ#d)};xZ{75gX z4c2;DjVJ7P`aW;@WVV#l0E+gsfT@nftq432U4r;|>hum8c^aNpOMB$uAo7+)#=zE# zpkhM|F0KU88vGNJ{ufC#GObVcJg36s&gZ7KHYfX-^7F%ExN%q?Zl>YYUF{=V8XLO! z*EBNLGexv4JIeiz6M7Go3bGzj0i*x}!RzxDXJ%>dWAB*rlex=eBjHL|Er;$anryx7 z#W_^P*L!%z2jY{iEj{v5XzM94c?11ucNSDAXsLaw_Yopsiw8<|$K&Uo!W2{i7hRa~ zFWL+3OITh|f|#I(lyoKBNHtCuySFPD^@ewJM`Nl*`pGK$M}MzPQ|jaPa#n|qm;|Z~ zUru8=??kv{Psz5mUumFTp_Z$}%dfAKQhdjYY10p`RF^7V^PT7+pp81bLZ&Tc!-sp3 z26QF2PfYRAubqZMj!M(vch#}b(%;;e5`$OI-`PQj8d#d8vC46T@7*joXNEu+zQ$0A zb;UdraAupxuQyhq#f2%cq(W%q?FwHCH;NZp9ynNvUdLJxHu1DUD6gRMqYmOUyNsJs z-p@|hoH4y+$XZUdZoTFqlx#tMgJC%+1PYRpstOkH=Ap=?F*f3LoL7 zY}F@9^>r_Alk;5G*q99=#xW|y#mWX{o3zplf*IPUij9urYa!Po506jcy57;A5t1bz zPPKeZ8=H8a@EvZ)fue1ae9K#KD4OARz_(0e7u-5u(T_a5#=tXWY@6ajOWqEAxSag4q@`i)5|yI=gP zI^I6$+jsui|Dd%MJG^dj*9p2uh=guVXrB|0wIK;M5>PHf>lHb^c%a=N^MKy;LjO`; z;Vi1ZS=f?|{hZ!QflV%-8|PsDKo#(>I7c)Z(Yt;|O2~QQ4r=d_;ht$}KbO^dBV3BT zgF5^$V%d= z^(1uLxEDY%k;B5mphFfJJcQU2v4bW zP-#IqpMXuKrM0v@kK!ll+i8TL>&jLhp}8O3P`7Ow&$X*ue73C%|H6)L!G-hTfi}>Q z8RykwD$vG)bvYJ<#Cq<8?`4;JSaGN)kb*g+1*!%o1Rsb;Ug?KK#2tTLN z#sgurxM~P091A{eRumpUfmO`W930bZXTmAnFdiT=u)vx@{`7sK5k*diW`QBB49d4b z$7FI}PT~o~&k%K!($emIH@f^H24r-v2IzuXRg;8smXvK!X4j~^0HODF+YQvnfj^oN z+Gc|-HwIe+7o5v9X*9SnfBw!Zf`je9RiFPN=1>k0t^N4z zK45*bUhDu)mr@6XEU;HTUs3F9ePNi<X{6_6Q!sWph1MNHVIE%4Mi(t_ zv5w>~X!Wc_WHHec7qt~e@OB+)_IZityY3gOA&M){lk#tTyQxl=bx^8s|9Fcn@Du;^ zb@t2mb}!FA4AKHT*kI8+i$l)Vu2h?~q%s|k?Xx3G-uX_6bIUIdm4P;3;sL5b6Czu7 zzd^CywGxxsA01L_-cDIX>C_eyC7+BG0W0u%;X3dQ!8$CCS0Fe!a~t%7g@{P3T;bX$ z2dUQ+#$uW)Z3VYkHDejNDZcrxzEoam8mg3ZrL_0oKFnJw{h%BmnfWNJ-)!UENA0h{ z4~}8FUHn9$7$3CV19WWS31KKuvs^2sdKTeru%7;iC1zR3!-lpIq5rk}y;JuDNm98Gz0xX*sxNH}Re>>^ zM=;qR)!#PvO)$(j; zxF!UuGE!_*kEE||l=kj1U-+RbmbtMR$_lHy@3tG=;N(HQT;e0O!*!k6{o@WlQ3wW+ zy{=(nQ&jf$aea*As8v}9#Z{hfL?q~pbg%L|B~1a!)o8|7Qnl{CC3bo+eti>3Tq!k2 zqrAwIh6JZkFvcWo$^U%wV*GPR>my>&C?wrp-r^~Ju!r@+15iayJkaU~PAaHxai5(q zMlvPtQzu95uz1cUBq}!UK$SO57zn=k1%ovj1Ok*}&B@~dtQnU@e9P);dkcmZiU*j@ z6c`BhKpr#DS-OjIcPmS7lahmdX>jz89tkt+EnX_G-p&An_O)PMReI1QZQQ_0-VcTw zE@9rpA1*=OmZ1Q0Za|xFCN<>xM$eG_aZj{S+Kdvw%DXLzauVdJluZGZy0I6XcD3#~ z2v@!9U2v|15!G|p5nsR3{MaH|@e*3B06i9V`ExxFEj%A`L+zM{8N;oDH>@k$i zT>boV#L77lTtKl8CHLFOkF0XXNxyN10$101#E%g9v$jM{XxssBxO5^OsN$B>)sUef zp9`QGoATP%k3nl|d>T9W&evwnP&LF|-xy9__JL4iM#_uWu9hpWc-G}a^H0}ka@{3 zzu9^dXzzj!+J~??y!KLzZ)cy{@HUrK?8Ur>Ir@77cln7rpnnV%QQhsdw2)KxyZf`h zBJ*+;jHMf@yFK^dj9!QA%@l4Z8{}rWE+$`Ch6lhaKFcfzehS-8)`hog!I3$5AVmZ> zVpcWFp$N(S5uuavwSql$ut#xjG0hGuA`&sXe*(o3v|x0|Sn&Y0Bp$e*fP2_-rUyX{ zTO9J^fn_k2t~LNuZOT4S`H2GqONc9u0sdtV69n3CGH8tQTn`bj|{svJJyExq#YFg8_49w0YdZxp4V`CPH?aS5!(T zOCR942+JZvmm`8n@IbFQ623XQhzHcJ0zq=WX5rvAsn-!g+%#sBoJp{?!BFPpn)%o9 zgDn`(Y~CHo&WL5CP}#Prm*RuF5oc$3-0bZ(N%%_l?{k-am zx{Pg+!z&q%cD=Q+%a{8fAQqmuWlR^}|D)~%1M7h7i8&$;k413dPO{aFy2PV1f+N`( ze9_8&H*}GOtnM(<$EdbQ*ojv{^I5fh_yx|+dE?ld3-(GQ` zS$AG0?!0`sn4-8?{?ti78u*GE9Jv%Fam%R5>T_&4PW~b8)hOF{kh#+rmb!HO*5dn{ z1Q)6Dv9z)55W$~6m93t9H2HuePSWVL_D>2(-qimEQ1fp>_lW)hBS(&Faww-9UO!b6 z+f!M~k?9psDi5!Yqtrv4ZyIf!26d({VjinV2ZRkIxOD<{e^Vn7eEJjaD_+=*2xc4g z>SuO%;4tC2-{$Pc@aZ>Zx~`(R^oqHsw4Bq(ESO`K1N6k8R^=0QMXg{1~(MNBZ`s7&xcOd;*o=G>45vwzPKGaVWfGps}B-^+uR z4o&OF5yS96*BSw098LsZtpUAT7}M|I3)hYTPf(~5!Loo)$PA8@a8Hyg7Uu-T&_VD3 zdk&6uxUFUXqy!u@ci>o;5IJy)r^5{UaFv7wMPBCcBMDdm?8rr|)&ELhIEwZ*3#@zl4+a-#A{Psx_Z?w%a~I>L0whO7RK z41wWK$84Q~nFaziShQ?3s+uNlmJ3F?`@ z()y`mA0?Q*(WWZXHYr4fSZb}rP4JI^yN?BxJe?mxx}D8^73ZhA3}2Hed8>FKP|;gR zLh838lirHoC%9(W`VS^thp)#T4ubD!N{FRdhs0=1>&f1dbRsz+*j!AQbs!{TE&`@63P$se>5=G^oQrrn-=_{$T_g{eI_M){O1${|D#YwwF$Sx z#K~t$><|BBpTF8`VBW%P442GsXXgUb+YHt$@kk>Uf~2}R0z)v#sZ->J z4|I#1V`9Kr#3kCC@LpxK$oUJGmIEg}aMo_1>Si;E+=o_+k8J+5mz)j zEkWRcW9I9iJ!M%2nJGFr8jNsDm}ejw=4d%y5W!ukcg5I2z~pB@6ZAkW;PfJN5p+I1 z&;ryl3De@h>ENJCC?I+ZhQeMn5ia}|e7C~_3r;-x!vmGQ!?AXEf;K=88pAHO1?!mb zFIW9NBXAD{i_cl{7H4Sij&v~W4edzCfhc&3;47e`5d{AmPq-TzeokBkJ;MVcASn*I zmOoxME?PlrOer35F&+4+BBS1A}(2<3Ann z1a!^+uXe6IsHrQB-|!G!T_cZF1@)>tYuuu!+pf|C!H9?s;wn^BV(lUdD)OkJ5H61@ zf?^5^j)+D;sgKfB5m8=O(E^Gt1i=W3fq;+*NWvq8^B?>pc3`(Ed+OxW0ZrkM-LN;^0E<#|+d(#73kmihQ&`&B})p(hA4fD0lZ1yFMV z32$I=%-?N8WseTnY7Dx7!1Zek9@ThOGl#VR8GiQ;_J~Z1jdzfUOp}$lM<)@||+B6WRYIr#%ZRx2hy>T9eWA#>;BqD$sAMd73@oC|aZcQI54?_<(`Rg~SOI zOpB);?Ld#*18p6Za0ZdL>itQd0CgDLENb?qg64m=6naR&p{iNI9_1yXPWc%41pk@fHWe%9imB=` z&oN0B|4{qu5e*XES9o1N>GC~5jyfz!c-b?Vti-!l#cCodh?JtW@8FX+@pU=B-ichs zSwNP!LTPgg--mCiInQiye$4E!z*V2ELd^?!3mQu^2(Aml8{F<}RO-@lgr0J0TD16EEX?nAnIU-~sUY-qJYg`Kk? zQI`R-_-o)gL6GM)VM0VT+HEf7DU8^f$(BfX1^a-M*F7!=DpO#epNm({d6zCG6u*z; zq9M-%HCAiSTN>QM6*O?g39`L!sTV+ckuVN>euE71OdLTcXGKU&uja39_m-2Y`kECf zYWsoY&$rx9`$rGJCqb`=8(}$P1`O>rOd~1~P7FY0Cql!>n0#MSzl>Z+$!0;kpv1kY zOEpo-Q%**e0sxcFvAASO7S^~4Yj!ZL`JeP5#;*&B2O>p3nBo4Vh3Ft+ej^4}-VCbB zbK9}&yD$9!Md}HhX!1#Wh1vrMyV)Q}b@jHV^_mb^Qg&_cD!4U^EXk<|4 z1KgtzA8DL1-p?zxGZm+(Ta$Z!#?5f_%SVz&C zCn0JVvW~ug-((lFEeG%1nJF%^C5@Tmv8swpfaf7>Vm-1;@D)#XO1Y6dv>B$Q3u0dk zQ2e{f5>c<61Y9=LK{?YL%tAb@39AUO0Mbu7gEL2hD*+iSkmYG6adqWz* z$p<_~e!81oZ@?Dh28@wbN$YbDwp_VLx7+yq{L#r3fk`H3|7Jqz$sR6o{!{sXe%rdW z4;?Q~wMav3bj8%+c*{dStdtL+^Yb-N`25{{u5Gt&-b~uywdnMYy<5LJYBfJ8F#dvq z8Hx8A)!<#g<;r+OzLH)~mdPfQ(OxGtJxne3c}nVNLDyQy`2oQOk=tKv`2K42Hd{5$ zkKO+eykRW#8|8Q{409z1c!2uOQB5+6_#GGplUQEDM6e0vCLC^~twt}`R^5t`vm@=- z#w+lvgg$JqlnVeVKwaH)|96H$_kWjxy))nKB{z$IyI{Ja#k>J2dJjl0&LOJq815FpmmBM?n=QWTkyB5-@Fd{WAr3^k?%`HLuN~R zG$xr{97>ic!MJwj~6N{hkYc5cxH!JPOHQh+D<6dsiot|cWHtZJKu!*$R zEea0{4*s&UCePEZFy~>bi$!qCHfxLH?WsuoC|ZY_PU?lPP_J@VGCfcC3;2ZV%i#VK z-yY_<*K%%l&|lCSUBlwCcW=F!mn=@TrcOJ&=fUlkNt|Fdo0zMNp&lc?Fx|VXwi9tJ zk2Nc@&=ufLiBgB@FNf6TZ(co*5W&hsO~MxPlWO16^bnpjXjbc3u1vjvTFzl1`@!(x z#i6ofKR|%_o9YBVZhBcG5435_%RlBoxCL^D(vClLrPnjY5G%-1+-CtWCZu*8;-($|} zeat1neTage6EQTdj2DxZ8ZI9zag0ZjM&UUvx|tv{^fQt&rqt%z=$y))+j@3h^UQ0r zzUJ+WSNf?`?SIG5suaGdtxXS;%G*-52Ce3_*-vWNSP>9t^h;A_#?%5}uL*8rIkW zHFRh12C$>s*rlR{xDg1b#<)y!5^8`|UCF>2_1MH}B%Hh$$~O{h`h^rZji%@#W-=g>lJ2<-wDnkAnaccw46D?X!4Et4N|B#+X8xhq zb$3gfg;lC(yRonT%z1R7A(uSv6Z(qw(@d9@$0D!AaGzWoF)!g#6ZgADETcKg<7w{8 Zb)u>$QU`6x)ky2>|IZ)4Cc1-l{{rNULNx#Y literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_24_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_24_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..203c6f5b094fb0d5b40dcb66a4c63092143554c4 GIT binary patch literal 38284 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 Zl1DL)C1L~rIF#(Sj+Xut$N3IF{RP`fvg7~& literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_25_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_25_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e3d1f3ac093ae18da7fba41185f593968bd60bca GIT binary patch literal 56426 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 G|M)Y2WP{%T literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_26_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_26_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..dc726184fa5a628fa47395e3c5bd915cac544e99 GIT binary patch literal 23014 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́xWrcQX?*-B4Y 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 WdGZA*t3?QB9)ugf|3ZTjhyM%awVqf2 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_29_Picture_2.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_29_Picture_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..57645d2aa6342860d1d65fb0e467796f4ae73570 GIT binary patch literal 10727 zcmc(F2{@GP+xI;NL&z?)OqMLERMs}r@>n9-ic*=PvW2JJmRky?BzsZDPDRpFl+;j` zN+@foOq7r`#yabLzt_wl^>uv5_r1sSf8Xht4(|K9&g=aB&fj^S*LB~}x9BHG%F=AJ z8HB+=5C;5%(D%?LNJLl|CoCj_!{J0lMP`Z1Nr;Pyi7Uy-O3KYw#xIz!Ja67Y^<|n1 zRhOvEo2O-@y=3_ceSLkr=BjnZE7va5(_hIof)N!J6&Dj%l#ozdsWMMx<^T5wt$?IO zFmjm7Sd1zpAdSIFW6&xH5BwCu@IKJw2P1$L6cWaXh|UrN1MW*f0vIe-KoBb=Bq#_* zp91$GL1`fwl@%L=W$pIiR1eFoJRO@MqPDTPQr`Z}kh-4hkucF&3Ud^dlox4eYH2Ul zH!w6ZUbTADU#4c}7Mm>{wrzKG+OgBwZU2FT?jD|AM~@vpane5^@XXoph{$v2qvGNd z5|fgzTusT$%FfBn%fE5+?mzeLmy|wuSoZW;Rdr46^A|6hnp;}i+TXtG=<5FbrRQsJ zU;j7S@W|-c_ynE7k2#=`7BMP(cqtM1Zy&QzV zHZ@B*{vkHte9z!I>;kVj5kbLMH~K)NgfDOQDWFi--T`=YQ726Kj6zj*z!G-XlqC|P znl$%FUjfd=i&#vugd!0I;Zk6BdoKrtfL;919Ro5`rU<4oP^f#c9~fg&^|pV#6be19 zY(t?wt8x?~1K-bOqfq#nLKJ$P9DqV_BMM2|bIw23&aGnFVhPh8j7)kUHjM>%knk37 zx$lmj?}lKSur5$csn8p!VyE?(Lv^j zwiD^nDD>88L949t5}YTX8t(+CUOj+90tD79LYLb&%Bbc?_>(yb?c1%L3kID6gXaD= z$P0x=HTO)8QeC%YwwcGB`9&!NOj12(2k^j<3SCgU1|*D3>~3M9tYttlg2bbz~L-)1$s_$ite3_5+r@38NZ&CRyU@OZJx~J2O*^ z507P594lsTY|F9k|MaMBcWms6!P*IJ$`Hw$JgQFNOLP00T|H4BR1S1eP-v4^khkOW z_s;&?E>%}#R_sKfvnT}C$k1T%6Cf3=gWD}W2a&qq%N(0K)_Hnm*-#quDmAKve7kc_CR`YY< za!FTDiR$bWpZcEboDqYE7ZV;>RP3$4RF`&@y1vSU&<^!h8c`kM7& zHKBa%L||eT1+&DidZo3p(83i9i@vUYlfSObPc5o{Z=BApIk1dDZDk?EuL-p#%K1OqT?%!M+zuRlB zSZ3}Im5bMK2X>PRcV1#Sl@Z*o$2Dv#4cK#4`a*OSCe&iy?7xFrn#7b`{j=|f$G%-7 z@OTG=VSd7FNz`Y!MXg$@vj42>a;G0LUeMzV3x{WhaRmq6rQHwt*WnLcCg?e)m_KOF ziL>%t`Zg=%hkZ^YXV`+{y;^6qG<;vUg7NEp+sz=k!kY^Ac|taVwz#Ff^|^hkw~}-e zBD%hREjiH}uR3Q7vT8wXN9pXGz&EK~Yd7lN55OOMs~7z~aO`7e($2yCVIm7UH7CBE1d6H znq&8)*4zgr_tJI@svk?dQl_RSbO;-2ftzn;ZMr1MJ|JUopWmu8FA`a=)^NPC2i*1V zBuD6pYuUN#RJ>^L5ZFA%s%dugCmye|Q(Cm6dr!9TV#TC=p?~`;>3g-GbSgVO`XqS8 zCh_9hFNr-*`d_RwJ6hY6y0*{N9w80m1KlR05U@cbC(eLXCWj zdqU(JK9H`oG<}QKF!R58WHUKs?_V_;zV}t?%~~+hxyk{#((6TLOYDfgySP|h)ldT3 znIoJcs+tsvPx;$mj{YYP0b9?Cmi5i2(?!oXoX+2ncV@k;aMlgn>z2LXnn-TgPR+~d z>V6?4s`A?=_J&*i3fk^|-m*10SM(wpH4U!p?@fq){0>97u5}!R((GUg=*_dBe{K=I zoIlX4j{3%4Nys0r?A7eNY3{w;$-Xdtt{cL%OjwOVjap>t+dP4Xjq$VLffP`3AqB~x zyxsb5*56gQSmU_fq7oE%%e0`ncLllktPR^fYSfH~AF#n0C?4RiRE)@dazX-3Q7ELA zZY#9y{x#!8yOc%?BJN!Ou-vh7``~w-Oa`I%B4Oe?9IkH)_50vBOnldR#asIh$CObL zT}qPe?%qx5Y*o;>!fp;d`T2F=cIq-+#zZ8-i89=TLMB6?v=^_JGZ22#k~SwzP^RXQ z^L9b~GbLW}Z+FATZ=Kvv9C?aojcZ9ig?lZ^v4U=5YGks$3G>Fb@+WrT#)LU zoIJGa`S)`@rE)d?yC>v8nIsLbpgSOstl4o_bMz!EKNR7>{^PX=HUrdn-&!QZ7pCTb zlJ4>AuikU2O!iNt>^GwfS~hLIaxz?Em_@60di*d}s6|_5L(km3hNnJ>_Spp6;sBK* zA7j|;4*<6n=%P)atr{Hw`ynIZ1o)X|&{)|m;WFT$D(2{I@W5m4@{w?L1|ho4+e`zVRs( zysLhbNcF{R5X401r3H?rOEl8WzQeuUy$F+tXvEOX3Z{Q~s7fEX zZqR>FS^kG&@5^<@1$9BGw-gJ$7Zj@8N$WrVid1eZ5VmWU+2+yb=?AH7Rpv?d_(K$W zl8i#lvhElauWk$O^( z`rRErmSvaNy1F`exGG-%FqC&`^;o(Dg>I_<4272Z5_n|F0QuSRl7oLJD0+Rsr? zJ8*E5CBmuYjFQ>bnrs!O%>ddIdeVnCx75qel2^?JH=Y^K>e4=$t2kLK*>qj7Ovf)mY6T-auzj>w;j( z^O_3d^+zPi_KV7I96sf3C~?w0th2MNL&He##oCKoLVPO6N=itL|+Rmk9ZoK>I9qT~oHhM(eRvPYU`&$0X+ z{FrISOPbKdfMpe+q!5_Z54<6CNjH&ubNCT+9yx$a^qZ&ZPLM63TR^p!5>aT~vPq4= zKqDwLHFoFBvEWD|k_IF?HI`czY(Q40mE!qIb?5oGfGYtlfrmqBNpMdge@*<*`F?n$ z?K3aq3ivVLBZ8cO6^AW9t$_U2$pyuHR}9bfVjiFvLn1XK0fS?!mihfml`KTs#|R19 zJy~2@5Z=l>mwCr3-8{I_n>5M5oMv+G<3^rlt!LVlE!A){C{WhrIH=GN*r4(&bf8(WdUWm` zx7e>BOSA0DDK(^Fff(dTJSgme(4dJb3O%pxA~FY!hAks4kH^@Rx*IEnP`B`janVypf+S?{y`s8LOr1V#`4RY3yWq;Dk&Pwi|xN#UZ@(eQhw>R zk`iMUMU&5|5p2u+oGfQuAQv$qIQ6& z_olO>eNRQTBd0)PAiKsCgCl3-J)lsgXg&XNR%UsCy`*Kto;BuI z-FDiM>g+?W;uqQ2)~?$3{pcR|KP(I#L7@Xp!4Z)!ZI)(8$yZihJmy?1Sdui9ZTIl) z8SLSM#>_P9V|Z7v2_SjE)VEpR9mykuk{p&Crm=C+^;f#$+4{cA>(11ho>WK;npJK5 zA%DY0F&*tO!M!n0%ZSsS+KuZF8ROhO41L{q#;SBUI2-#yJ>$!@wCwm7nk`KQ&R*v# z>{t)QZ?s1&41*mQ?N-w>OsYXiF?r2v-Se)Morqp;OZz+LT*s@2AC6Rf8W#QTf5WY$ zsXMOIqSkK$u*P8{wp9Z>$b_@(M)i>tVZ`4Y!S ze}Y+Wv*7BH10z|R*Y>d=8VQ`#&Dq2uWuMb&j}v>tR=L_J%C~a<7@<`% z{jYb|AC}3iUv8%sdZaQiWakZ}-4CQOVbiWZuGpyaZt1h#0)hn@JMRQwa~zXuEz;DZ zn=$jAU%dG8W$g`d5jBGIw?5-9n+ zt#{fDLqp1>NFv7{!HhnFn)#GfUopNA=yE@o4_(eD1oy>bGB|~e|F_U(4W2-uk=G$+ zr8A^4g9OQ``!V<5gG|}LQ2y{U)qZL@U7Rp=--H(s+!ybo)B65jbFXAF)&At3S&)aq z--6PZ(%j0; zb6r^#Mez*XuZ82dwx{}kJe)qgPlZmvQf9$cT`N$?Iv3e&@99~(r}^<0m;*Hj2kUjm zh)Od3jF1S!&lkTSUzVoin==*%XP8zkt zJVa?0`@wgpQL)||^qSfV6gqKry^;$k&zGIy_E&i33h#!s!Kud-2?PCvQH3H48q|=g zh(dY!gi+Ua65BlH;AtP~F)~xkLAr%bB`NrCLY^!_p?5k~2kZT;CcqYV6uT2ItrTD7 zB7eYG)$<%7%;A_$-G#!y3Ty3Cx9N?nh|_72rgHXBW|Y>y{S}CAWCu%5cxGM)TUR`m z)8UaWULTYyV$N9y)Z5p38{Zw~GsMZ`oGL;>TRZ5N6Ppq)WquVPP`lf&(A$QC3TLV4 zhmU{M&_f2AvBmTl6jGszfu|We!P5*s@sXl;@DmCXbBiF2LSNQ(!OQ`|u;r~TupN|T z5hlPA>-91H_v}m;&eF;Z{kOkbppo+emZIHGpbZf|=0-s;Xu9k$b58IE&~z2b^QuY1 zf;LR14M%98H5hDX7M=$ESqko}F4Cs$Y&b_68znKtnz3bc5GEB04;Tu?Z70l{H!u!U zOOa47N)?GQ+usc-Yh=gW@VDqC-UB;YGEnJ)tpCB7#mK_X)sRkb#(i_a#ikob?6`l* z=Yr_5h+MsGFvz0mBAZNLT{YYvA*Q87f;dr7~};ZX0$)umO0x zpn+`O`D8Y*$0=fg?Ob|_U|^w~oyETYNW=a;t&~i-NGw3@1I2D{(K6cV&sH`;{LP4Y z6+Ao(KgQLc&a1U{AaYm8+@?Jz7k7ZB35tR;wK&p2X(&3pOgiHdXI_Vk-dHjJVkN-RnP!?RYhJ6O|!T<1eFP@@lbnVts8% zM}4H}-O@7ebDwN$FR!RDX~E#m6TSd|etbk4v`xKcczzuzpr=O9MLJb@y>4B%Q^N%? zYy|+WyTv?{ZE4)fHnd@nfww0|nI;*WQta^*hPZ(HEPR)>1Kcefm9w^(d(Ku^lt zZP+PozAwYrJ81I`c&?5BtbrX(cfScg4WWz-fI|`tUV5I(LS#X2Ank%#OcY|92H1>` zQQ3^0A@(rs80_Z)w)lz3J)o4&S-$|BmPJ``V-A_aff4X7(}seaT8cu{5%5$;zK8I> zojlTWfC1!G4W6?25n(WsGs2&G3rrn>8w>eUlMz|a4M@BECfBrWFCzCg)FBMeu`c8w zAD@7mYjj`QAj?A6IU%yOGyKC3r4iUn(C8?@LbuLK(Di4`%|<%Oyt%BeQ|vq0sk0W|A_Rhz#_@YkHzMN#+W8V?{^1Jn1f#cj+@C{sx1T_Z7{Oz z^a9|P=qvI_KUfDQ@dJAv?rnMxUI7xo>pT|+a9;sD<1k4gPP_t(Y0(yB5_*~d>tK55 zx?PBD0Qu)|bG8PES57Gh0iiC>LuB@tBd3;-smTE14Y+Gj3oy-_y7+V&;8Yak)h|o$ z1n1me*It&xU%L*dWgB@Y?i+EWpNjctpn9Y8q5NwiWI&N(G80^8_tN8oFi)_?hMpAQD}W z4No$*IEHR1dlP3C&}J^C3tE)BY@9w6$Qp6%2| zb{U_9W8!1FbQ>aaYAQG6vT85EJ#7>O;f36Z^Dx+k9qS#X3CRRF3q8HXpHaU~mB6_^g}d+V~gxHzEEJlg)8QiH-LhhxU-0qSkmpA}q6 zUQZHUuTEQ*)7imS+D)r&Z)7~l9KrId;rW~NY%hhdk6950Bhq!EN--}h%ML9_>_ry# z{>A(N%3bN1g#_qhMz=ohx}_^EBJ?Fb zFZPjNLWTPYy=!Osbi~=qU%xM`27m6twm~$av=m80x9$-bbigS2Jn$0)W7eZhAR-q~ zh(#x{x!acCFX4ZiVhZW97jq<$5FjFIH_Uy8UvSKZK?jAJXY-AzfF#{f8P8@DVM-Oq zHSjuShX*`DI|Ygn$ddD*=M%b|`oI;Kf8|^*DLh3Q@cGk=7386t_wWox3pjkkG`X&! ze>UQWr^oXwIQ9{LTF64=eZxU2w=;ht_uww_ z3l;G1R0!gS3iLrlrr87Z*Z#$g2$dTUYkojxUI7y(>3-78XOl>Gbk<}~0290`fQuv$ z+;vnk6;$GGz7v5n2IK&w?wN375S2AZpr>f1V-fk>nKQtB&rHC?F9SeurcM5CKoDFw zkcnsbPx+7yF1UduswXCuhcSP)P71D@wCGRw$&6w6fNpmx4?G?*m4j$QR5Sc=#|XmW zy{dEyB(TTJ0ibq1L>u}qS8_|AMJthe9#c8vJdOmdho1fATRIi}@F%i;x@`kM-F%gs iViirK>A~|jx27&_yET-z!6kWhB-cIFC@n1d?!N#>rDxax literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_4_Picture_0.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/_page_4_Picture_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..664070051354d84614a3135364667ed9dd8e11bb GIT binary patch literal 34887 zcmeIwdo+~m9>DQ;%#1OEcH>er7#b#YkT5ZXL3>0txeI%9(2Xf_zjr}ol0qoL6e5n~ zeuzuRJ`Qxnfd*1bX|9PMFuJ`-ApS7X2ab)9O zQ*%=Ug+dV2`h~1LM|LAZf`T|ftPl=|!{dbrA`+q^!onhCG4bytC{l8=6e$^*Ewt@Q zTjW(0WMq_ewyEyWpwsDcO1cINP5td!bj@!sLE-Uu5n&OMs3=L3Dnr%$x7S(=LKG5Q z#9T(B(3Dk5i3U3FcuWI@xaOZOK6@>xhAAwQqd}D+p|d1@(hT<6E0XsQ6|{WmR=eZC!msV_SPiC+}X@{Rh2$&-w=jhlWQcCZ}G#{`t-H%OLXePZj2rzI4U;qq&0WbgtzyKHk17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWu zFaQR?02lxRU;qq&0Wk1iG$7yD5Z~R)E=?e|6Uel{9($3rj}B^Rm)H(Hwc1j)OvUpT zF+F%wawbji-q9)M`2accfyUU0`BxbuajS(7T09f26Th@=W{cs`m}U8Ff7+O+zO>KH zVmF`6s&H*>?LiiXt#BL>DhWw0qUGv6#a-)hbDlhxN90>{j7r>DL*ilA;Yc9}l4sd#XqL>;MUHRK5W za#0yQG+j=;V7*i}*7Et7l?I~%xT;k&eN(mjT2Pf5y~gcMKFR=bgIGi23AGD8RhB`tM_%NLf<>av~e#~M5_0PPu&&cYt2vD(vh|?Mkr9bWBq5MQfT# zI#_krlgKU8y0_eomi#!uC(mSM-2C;HXX>!8Ql4!X>S)p&XX~_{NFAdKt;EGujE%X@ zWJPzbyolMw4jXa)@j@f_KvpcP-)oT0wzMS`aHNYnD*nP19ElLa{g5QbYs%xIBSLdNP>#+Hm7#V2|XD!ff?7>^*n{YkNT=U}@Z8sBGk_pgLSS8|crkc+8R@9bF) zgQAt|ZzP+*3Unh@hE3EzQ&?h+-tma6wK#M&Kio@Z;t~=N`DZUuXHYd_!;<)a9#l)z z{@$7#chg>KPxa4tkJK=VvQS$ryBhSXK>tt=UyE?^-FB>Wo^u%IYUtBAcTN&LBbL?ue1927v%>_-fF{W;73oUrwEr*2!M3`nrdoK>njC5$PzS~n&tw_oX;Kdl! zt3AyvNV&&&LuR-O(b=ySYja9wd*-ej!`56n{MEU&zV>bDRXMK9U_;-ReUowG(qix-Zj)vJ&hU$C8xzSGeq$fziqR^RM3*dYjc% zsihP0OON3UP@emY`v#71Hz+S=a?WH#5KD17bJZBLeQ{WT(+ID`BBJ5S}Gu9uhE;f`+^82E{vsAe2l`DVFq~c7X zw6#h~ga1WyUc^%GoxRHF^ZeimU44}zA7z^|ZgW%QS=Ar1zdj_7D;g^p*3%+$YldxD zhy)Cr0T=)SU;qq&0WbgtzyKHk17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWu zFaQR?02lxRU;qq&0WbgtzyKHk17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWu yFaQR?02lxRU;qq&0WbgtzyKHk17H9QfB`T72EYIq00UqE41j_EDFY|hhJOQZ@K2 + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# Why I Wrote is Book + +As an undergraduate in physics, I'd been entranced by the idea that the world could be captured by simple equations like *F = ma*. When I became a programmer, and later a computer science researcher, I gravitated towards the eld of formal methods, because it promised to do something similar for soware: to express its very essence in a succinct logic. + +### *A Passion for Design* + +My main research contribution in the 30 years since my PhD has been Alloy,3 a language for describing soware designs and analyzing them automatically. It's been an exciting and satisfying journey for me, but I came to realize over time that the essence of soware doesn't lie in any logic or analysis. What really fascinated me wasn't the question that consumed most formal methods researchers—namely how to check that a program's behavior conforms exactly to its specication—but rather the question of *design*. 4 + +I mean "design" here in the same sense that the word is used in other design disciplines: the shaping of some artifact to meet a human need. Design, as the architect Christopher Alexander put it, is about creating a *form* to t a *context*. For soware, that means determining what the behavior of the soware should be: what controls it will oer, and what responses it will provide in return. ese questions have no right or wrong answers, only beer or worse ones.5 + +I wanted to know why some soware products seem so natural and elegant, react predictably once you master the basics, and let you combine their features in powerful ways. And to pinpoint why other products just seem wrong: cluttered with needless complexity, and behaving in unexpected and inconsistent ways. Surely, I thought, there must be some essential principles, some theory of soware design, that could explain all of this. It would not only explain why some soware products are good and some are bad, but it would help you x the problems and avoid them in the rst place. + +### *Design in Computer Science and Other Fields* + +I started to look around. Within my own subeld (formal methods, soware engineering and programming languages), such a theory exists for what you might call "internal design"—namely the design of the structure of the code. Programmers have a rich language of design, and well-established criteria for what distinguishes good designs from bad ones. But no such language or criteria exist for soware design in the user-facing sense, namely design that determines how soware is experienced as a form in context.6 + +Internal code design is very important and inuences primarily what so ware engineers call "maintainability," which means how easy (or hard) the code is to change over time as needs evolve. It also inuences performance and reliability. But the key decisions that determine whether a soware application or system is useful and fullls its users' needs lie elsewhere, in the kind of soware design in which the functionality and the paerns of interaction with the user are shaped. + +ese big questions were at one time more central in computer science. In the eld of soware engineering, they came up in workshops on soware design, specication and requirements; in the eld of human-computer interaction, they permeated early work on graphical user interfaces and computational models of user behavior.7 + +But as time passed, they became less fashionable, and they faded away. Research in soware engineering narrowed, and eliminating defects—whether by testing or more sophisticated means such as program verication—became synonymous with soware quality.8 But you can't get there from here: if your soware has the wrong design, there's no amount of defect elimination that will x it, short of going back to the very start and xing the design itself.9 + +Research in human-computer interaction (HCI) shied to novel interaction technologies, to tools and frameworks, to niche domains, and to other disciplines (such as ethnography and sociology). Both soware engineering and HCI embraced empiricism enthusiastically, largely in the misguided hope that this would bring respectability. Instead, the demand for concrete measures of success seems to have led researchers towards less ambitious projects that admit easier evaluation, and has stymied progress on bigger and more important questions.10 + +### 1: why i wrote this book + +Puzzlingly, even as interest in design seems to have waned, talk of "design" is everywhere. is is not in fact a contradiction. e talk, almost exclusively, is about the *process* of design, whether in the context of "design thinking" (a compelling packaging of iterative design processes), or of "agile" soware development. ese processes are undoubtedly valuable (so long as they are applied judiciously and not as panaceas), but they are for the most part content-free. I mean that not to disparage but to describe. Design thinking, for example, might tell you to develop your solution hand in hand with your understanding of the problem, or to engage in alternating phases of brainstorming ("divergence") and reduction ("convergence"). But no design thinking book that I have read talks in depth about any particular designs and how the process sheds light on them. e very domain-independence of design thinking may be the key to its widespread appeal and applicability—but also the reason it has lile to say about deeper challenges of design in a particular domain such as soware.11 + +### *Clarity & Simplicity in Design* + +When I began the Alloy project, with the goal of creating a design language that was amenable to automatic analysis, I was critical of existing modeling and specication languages whose lack of tool support rendered them "write-only." is snide dismissal was not entirely unwarranted. Aer all, why would you go to the trouble of constructing an elaborate design model if you couldn't then do anything with it? I argued, in particular, that the designer's eort should be rewarded immediately with "push-buon automation" that would instantly give you feedback in the form of surprising scenarios that would challenge you to think more deeply about your design.12 + +I don't think I was wrong, and Alloy's automation did indeed change the experience of design modeling. But I had underestimated the value of writing down a design. In fact, it was a not very well guarded secret amongst formal methods researchers (who were eager to demonstrate the ecacy of their tools by nding aws in existing designs) that a high proportion of the aws were detected *before* the tools were even run! Just transcribing the design into logic was enough to reveal serious problems. e soware engineering researcher Michael Jackson credits not the logic per se but the very diculty of using it, and once mischievously suggested that the quality of soware systems might be improved if designers were simply required to record their designs in Latin. + +Clarity is good not only for nding design aws aer the fact. It is also the key to good design in the rst place. In teaching programming and soware engineering over the last thirty years, I've become increasingly convinced that the determinant of success when you're developing soware isn't whether you use the latest programming languages and tools, or the management process you follow (agile or otherwise), or even how you structure the code. It's simply whether you know what you are trying to do. If your goals are clear, and your design is clear—and it's clear how your design meets the goals—your code will tend to be clear too. And if something isn't working, it will be clear how to x it.13 + +It is this clarity that distinguishes great soware from the rest. When the Apple Macintosh came out in 1984, people could see immediately how to use folders to organize their les; the complexities of previous operating systems (such as Unix, which made even the command to move les between folders complicated) seemed to have evaporated. + +But what exactly is this clarity, and how is it achieved? As early as the 1960s, the central role of "conceptual models" has been recognized. e challenge was not merely to *convey* the soware's conceptual model to the user so that her internal version ("mental model") was aligned with the programmers', but to treat it as a subject of design in its own right. With the right conceptual model, the soware would be easy to understand and thus easy to use. is was a great idea, but nobody seems to have pursued it, and so until now "concepts" have remained a vague, if inspiring, notion.14 + +## *How is Project Came About* + +Convinced that conceptual models were indeed the essence of soware, I started about eight years ago trying to gure out what they might be. I wanted to give them concrete expression, so that I could point to some soware's conceptual model, compare it to others (and to the mental models of users), and have an explicit focus for design discussions. + +at didn't seem so hard. Aer all, a plausible rst cut at a conceptual model might be just a description of the soware's behavior, made suitably abstract to remove incidental and "non-conceptual" aspects (such as the details of the physical user interface). What proved much harder was nding appropriate + +### 1: why i wrote this book + +structure in the model. I had an inkling that a conceptual model should be made up of concepts, but I didn't know what a concept was. + +In a social media app such as Facebook, for example, it seemed to me that there should be a concept associated with liking things. is concept surely wasn't a function or action (such as the behavior bound to the buon you click to like a post); there are too many of those, and they only tell part of the story. It also surely wasn't an object or entity (such as the "like" itself that your action produced), since at the very least the concept seemed to be about the *relationship* between things and their likes. It also seemed essential to me that the concept of liking was not associated with any particular kind of thing: you could like posts, comments, pages, and so on. e concept, in programming lingo, is "generic" or "polymorphic." + +### *is Book: Opening a Conversation* + +is book is the result of my explorations to date. Driven by dozens of design issues in widely used applications, I've evolved a new approach to soware design, rening and testing it along the way. A happy aspect of this project has been that every app failure or frustration had a silver lining: a chance to extend my repertoire of examples. It has also given me greater sympathy and respect for the designers when my analysis revealed the full complexity of the problem they faced. + +Of course, the problem of soware design is not solved. But as my friend Kirsten Olson wisely advised me: a book should aim to start a conversation, not to end one. In the course of giving many talks about this project, I've been thrilled to discover that it seems to resonate with audiences more than any of my previous ones. I suspect this is because soware design is something we all want to talk about, but we have not known how to have that conversation. + +So to you, my readers—fellow researchers, designers and users—I present this book as my opening gambit in what I hope to be a fruitful and enjoyable conversation. + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# Discovering Concepts + +A soware product—from the smallest app that runs on your phone to the largest enterprise system—is made of *concepts*, each a self-contained unit of functionality. Even though concepts work in tandem for a larger purpose, they can be understood independently of one another. If an app is like a chemical mixture, concepts are like molecules: although bound together, their properties and behavior are similar wherever they are found. + +You're already familiar with many concepts, and know how to interact with them. You know how to place a phone *call* or make a restaurant *reservation*, how to *upvote* a comment in a social media forum and how to organize les in a *folder*. An app whose concepts are familiar and well designed is likely to be easy to use, so long as its concepts are represented faithfully in the user interface and programmed correctly. In contrast, an app whose concepts are complex or clunky is unlikely to work well, no maer how fancy the presentation or clever the algorithms. + +Since concepts have no visible form, they're rather abstract, and this is perhaps why they haven't been a focus of aention until now. I hope to persuade you, in the course of this book, that by thinking in terms of concepts, and by "seeing through" user interfaces to the concepts that lie behind them, you will be able to understand soware more deeply—to use it more eectively, to design it beer, to diagnose aws more precisely, and to envision new products with greater focus and condence. + +We don't generally appreciate how something works until it breaks. You may think that your water heater just magically produces a constant stream of hot water. But then at some point someone in your household takes one shower too many, and your shower is cold. at's when you might learn that your water heater has a *storage tank* with limited capacity. + +Likewise, to learn about concepts, we need to see what happens when they go wrong. Much of this book, therefore, will involve examples of concepts that + +fail in seemingly unlikely scenarios, or that turn out to be much harder to understand than you'd expect them to be. In this chapter, we'll see our rst examples of concepts, and how they can explain some unexpected (and surprisingly complicated) behaviors. + +But don't be put o, or draw the conclusion that the *idea* of concepts is itself obscure and complicated. On the contrary, the idea is straightforward, and adopting it will help you to design soware that is simpler and more powerful than much of the soware we use today. + +### *A First Example: Baing Backups* + +To protect my work from corrupted disks and accidental deletion, I use a terric backup utility called Backblaze, which copies my les to the cloud, and lets me restore old versions if I need to. It runs invisibly and continuously in the background, keeping an eye on every le in my computer, copying it to the cloud if it changes. + +Recently, I edited a video and wanted to make sure the new version had been backed up before I deleted the old one to save space. I checked the backup status, and it said "You are backed up as of: Today, 1:05 pm." Since I had created the new video *before* 1:05 pm, I assumed it had been backed up. Just to be sure, I tried to restore it from the cloud. But it wasn't there. + +I contacted tech support, and they explained to me that les aren't exactly backed up continuously. ere's a periodic scan that compiles a list of new or modied les; when the next backup runs, only les on that list are uploaded. So any changes made between the scan and the backup fall between the cracks until they're discovered in the next scan. + +I could force a rescan, they told me, by clicking the "Backup Now" buon while holding down the option key. I followed this advice, and waited for the scan and subsequent backup to complete. Now, surely, my new video would show up on the restore list! But no such luck. At this point, I was totally confused, and asked for more help. It turned out that my video *had* been uploaded, but only to a special "staging" area, from which les are moved to the restore area every few hours. + +My problem was that I misunderstood the key *backup* concept of Backblaze. I had imagined that les were uploaded continuously, and moved directly to the restore area (Figure 2.1, le). In fact, only the les on the list produced by the last + +### 2: discovering concepts + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-001-030/_page_22_Picture_1.jpeg) + +fig. 2.1 *Backblaze's backup concept. On the le, what I assumed: (1) I make a change to a le; (2) when the backup runs, the le is copied to the cloud; (3) I can then restore it. On the right, what actually happens: (1) I make a change to a le; (2) a scan runs and adds the le to a list of les for backup; (3) the backup runs, copying to the cloud only those les that were added in the last scan; (4) periodically, backed-up les are moved to a cloud location (5) om where they can be restored.* + +scan are uploaded, and even then remain unavailable until they have been transferred sometime later from the upload destination to the restore area (Figure 2.1, right). + +is is a small example but it illustrates my key point. I'm not taking a stand on whether the design of Backblaze is awed or not; I suspect it could be improved though (see Chapter 8 for a suggestion). Certainly, had I taken the backup message at face value and not known about the scan, I might have lost some crucial les. + +What I *am* claiming is that any discussion of this design must revolve around the fundamental concepts, in this case the *backup* concept, and an assessment of whether the behavioral paern that it embodies is t for purpose. e user interface maers too, but only to the extent that it serves the app's concepts by representing them to the user. If we want to make soware more usable, concepts are where we must start. + +# *Dropbox Delusions* + +A friend of mine was running out of space on her laptop. So she cleverly sorted the les by size, and looked down the list to see if there were any large and + +unfamiliar les that she could get rid of. She identied a dozen or so such les, and went ahead and deleted them. A few minutes later she got a panicked call from her boss asking what had happened to some large les containing data for an important work project. + +What went wrong? To answer this, we need to understand some key concepts of Dropbox, a popular le-sharing utility. Dropbox allows multiple users to view a shared collection of les and folders, and to update them collaboratively. To maintain this illusion, Dropbox propagates changes made by one user to the versions seen by other users. e question will be: what kinds of changes are propagated? And under what conditions? + +Ava is a party planner who uses Dropbox to coordinate with her customers. She's planning a party for Bella, so she creates a folder with the name *Bella Party* and shares it with Bella (Figure 2.2). Whatever Ava puts into the folder, Bella can now see. In fact, the sharing is symmetrical; whatever Bella puts in, Ava can see too, and whatever changes one of them makes, the other sees those very same changes. So it's as if there were just one copy of a folder that Ava and Bella can work on together. + +Actually, it's not quite that simple, because not *all* changes that one of them makes will be seen by the other. Perhaps Bella doesn't want the folder to be called *Bella Party*—aer all, it's her party! So she gives the folder the new name *My Party*. e question is: what does Ava now see? Does the name change for her too? + +ere are only two possibilities. Either Bella's action will change the name Ava sees too, in which case there is just one shared le name, or it will not, in which case there are two names for the same folder, one that Ava uses and one that Bella uses. + +So which happens? It turns out that *both* outcomes are possible, depending on how the folder was shared. In this case, in which Ava has shared the folder *explicitly* with Bella, Bella's renaming will only be seen by Bella, and Ava will *not* see the change. But suppose Ava creates another folder inside *Bella Party* called *Bella Plan* (Figure 2.3 top). is second folder is now shared *implicitly* (by virtue of its containing folder being shared). Now if Bella renames *Bella Plan* to *My Plan*, say, then Ava *will* see the change. + +You might imagine that this variability of behaviors is accidental, that it's the result of some arbitrary choices that arose during Dropbox's evolution. Or you + +### 2: discovering concepts + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-001-030/_page_24_Picture_1.jpeg) + +fig. 2.2 *Sharing a folder in Dropbox. Ava (AA) has shared the folder named Bella Party with Bella (BB). If Bella now changes the name of the folder, will Ava see the change?* + +might think it's evidence of a bug. In fact, neither of these is true. is apparent design oddity is a direct consequence of a fundamental aspect of Dropbox's design. + +Before I explain exactly what's going on, let's consider one more question. What happens if Bella *deletes* a folder? Will Ava's copy be deleted too? Again, it depends on the context. If Bella deletes *Bella Party*, her copy alone will go away; but if she deletes *Bella Plan*, Ava will lose it too. Dropbox does give dierent messages in the two cases (Figure 2.3), one of which explains more fully what will happen. But, strangely, the additional information is given in the rst case, not in the second case when the deletion results in permanent loss of the le. + +Now we have an explanation for my friend's experience. Her boss, wanting to share just one le with her, had shared the entire folder instead. When my friend removed the les she wasn't using, she was deleting them from the shared folder—and thus removing them for everyone, her boss included. + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-001-030/_page_25_Figure_1.jpeg) + +fig. 2.3 *Dropbox's folder deletion messages. e folder Bella Party has been shared (top). If that folder is deleted, the message (middle) informs you that the deletion will not be propagated to other users. If the folder Bella Plan contained within it is deleted, a dierent message (boom) appears, surprisingly not warning that other users will lose the folder too.* + +### *Explaining Dropbox* + +To see what's going on in these sharing scenarios, it helps rst to articulate what our expectations might have been. A simple and familiar design for names would treat them as if they were sticky labels aached to physical objects—like a cat collar, or a license plate—with at most one label per object (Figure 2.4, le). We might call this approach "name as metadata," and it would be an in- + +### 2: discovering concepts + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-001-030/_page_26_Picture_1.jpeg) + +fig. 2.4 *Two possible concepts for folders in Dropbox: in the metadata concept (le), names are labels aached to folders; in the unix folder concept (right), names belong to entries within the parent folder.* + +stance of a more general *metadata* concept in which data that describes an object—such as the title or caption of a photo—can be aached to it. + +With respect to deletion, the simplest design would be to make a le or folder disappear when it's deleted. We might call this (using a technical term) the "deletion as poof " approach to deletion: you click delete, and "poof!"—it's gone. e underlying concept here—that a pool of items can be stored, with actions to add and remove items from the pool—is so basic and familiar it has no name. In this design, we'd expect a separate *sharing* concept, with an *unshare* action so that you can remove a le or folder that someone else shared with you and free up the space in your own account without deleting their copy. + +Both of these understandings—that names are metadata and deletion simply removes items from a pool—are wrong (at least for Dropbox). e concepts behind these understandings are themselves ne; they're just not the concepts that Dropbox uses. If you hold the wrong conceptual model of a soware app, you might get away with it for a while. We've seen that in some scenarios these explanations would work successfully. But in other scenarios, they'll fail, perhaps with disastrous consequence. + +e actual concepts that Dropbox uses are very dierent (Figure 2.4, right). When an item sits in a folder, the name of that item belongs *not* to the item itself but rather to the folder containing it. ink of a folder as being a collection + +of tags, each containing the name of an item (a le or folder) and a link to it. is concept, which I'll call *unix folder*, was not invented by Dropbox, but, as its name suggests, was borrowed from Unix.15 + +Look at the diagram i[n Figure 2.4 \(](#page-26-0)right). Each of Ava and Bella has her own, top-level Dropbox folder, and these two folders have *separate* entries for the single, shared folder called *Bella Party*. When Bella renames *Bella Party*, this alters the entry in her own Dropbox folder, and the entry in Ava's folder is unchanged. + +In contrast, there is only a single entry holding the name of the second-level shared folder, *Bella Plan*, belonging to the single, shared parent folder called *Bella Party*. Since there is only *one* entry for the folder—the same entry seen by both Ava and Bella—when Bella renames the folder, she is changing that one entry in their shared folder, so Ava sees the change too. + +Using this same *unix folder* concept, we can now explain the deletion behaviors. Deletion doesn't remove the folder per se; it removes its entry. So if Bella deletes the folder *Bella Party*, she removes the entry from her own folder, and Ava's view is unchanged. But if Bella deletes *Bella Plan*, she removes the entry from the shared folder, and the deleted folder is now inaccessible to Ava too. + +### *What Kind of Flaw is is?* + +At this point, you might be saying to yourself: Well, this is all obvious. I knew Dropbox behaved like this and I'm not in the least bit surprised. ere's nothing wrong with Dropbox, and someone who doesn't understand it shouldn't be using it. But if you think this, I'm prey sure you'd be in the minority of readers. We presented this scenario to MIT computer science students and found that many of them, even those who used Dropbox regularly, were confused.16 + +Even if you understood all these subtleties, I'd argue that there's still a problem. e distinction between the two cases—whether the folder that is the subject of the action is shared at the top level, or belongs to another folder that is itself shared—isn't readily discernible in the user interface, so it's a constant annoyance having to gure out which situation you're in. + +Moreover, it doesn't seem reasonable that this rather arbitrary distinction should determine the behavior. Why should I be able to give my own name only to the top-level folder? Why can't I give private names to all the folders shared with me? Or conversely, if renaming folders for both of us is part of our shared work, why can I only do it for some folders and not others? + +### 2: discovering concepts + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-001-030/_page_28_Picture_1.jpeg) + +fig. 2.5 *Levels of interaction design.* + +Assuming then, that these scenarios are indeed evidence of a aw in Dropbox, we can ask: what kind of aw is it? It's certainly not a bug; Dropbox has behaved like this for years. We might wonder if it's a aw in the user interface. at seems implausible too. It would be possible, of course, for Dropbox to give more informative messages when a change you make aects other users. But this might just be perceived as additional complexity, and experience suggests that users ignore warning messages if they come up too oen.17 + +e real problem runs deeper. It's in the very essence of how les and folders are named, and how those names are related to the containment relationship between folders and their contents. is is what I call a *conceptual* design issue. e aw is that the Dropbox developer has certain concepts in mind that have been faithfully implemented. But those concepts, at the very least, are not consistent with the concepts in most users' minds. And, at worst, these concepts are not a good match for the users' purposes.18 + +### *Levels of Design* + +To put conceptual design in perspective, it helps to break soware design into levels, as shown in Figure 2.5. is classication is my own, but it is similar to schemes previously proposed.19 + +e rst level of design, the *physical level*, is about the physical qualities of the artifact. Even soware whose interface is no more than a touch-sensitive piece of glass has such qualities, limited though they might be.20 At this level, the designer must take into account physical capabilities of human beings. It's + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-001-030/_page_29_Picture_1.jpeg) + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-001-030/_page_29_Picture_2.jpeg) + +fig. 2.6 *A design issue at the physical level, and a classic example of applying Fis's Law. Which menu placement allows for more convenient access: the macOS placement (on the le) in which an application's menu bar always appears at the top of the desktop, or the Windows placement (on the right) in which the menu bar is part of the application window?* + +where accessibility concerns arise, as the designer considers how a visually impaired, or color-blind, or deaf user might interact. + +Common human characteristics dictate certain design principles. For example, the fact that our limited visual sampling rate results in *perceptual fusion*, making it hard to distinguish events that occur within about 30ms of each other, suggests that 30 frames/second is enough for a movie to look smooth. It also tells us that system reactions that take much longer than 30ms will be perceived as delays by the user, and should be avoided, or given progress bars, and if very much longer, an opportunity to abort. Likewise, Fis's Law predicts the time it takes for a user to move a pointing device to a target, and explains why the menu bar should be positioned at the top of the screen, as in the Macintosh desktop, and not in the application window, as in Windows (Figure 2.6).21 + +e second level of design is the *linguistic level*. is level concerns the use of language for conveying the behavior oered by the soware, to help the user navigate the soware, understand what actions are available and what impact they will have, what has happened already, and so on. While design at the physical level must respect diversity amongst the physical characteristics of its users, design at this level must respect dierences of culture and language. + +Obviously, the buon labels and tooltips on an app will vary depending on whether it's intended for English or Italian speakers. (I remember as a small child on holiday in Italy learning the hard way that the faucet marked *calda* is not the cold one.) e designer must be aware of cultural dierences too. In Europe, a road sign comprising a red circle with a white interior means that no vehicular trac is permied at all; most American drivers would not be able to \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-001-030/concepts-001-030_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/concepts-001-030_meta.json new file mode 100644 index 0000000..0b5562d --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-001-030/concepts-001-030_meta.json @@ -0,0 +1,2027 @@ +{ + "table_of_contents": [ + { + "title": "The Essence of Software\nWhy Concepts Matter for Great Design\nDaniel Jackson\nprinceton university press \u00b7 princeton & oxford", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 59.8623046875, + 55.93359375 + ], + [ + 385.4443359375, + 55.93359375 + ], + [ + 384.5830078125, + 610.06640625 + ], + [ + 59.0009765625, + 610.06640625 + ] + ] + }, + { + "title": "Copyright \u00a9 2021 by Princeton University Press", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 48.0, + 136.2568359375 + ], + [ + 228.95896911621094, + 134.9560546875 + ], + [ + 228.95896911621094, + 148.0152587890625 + ], + [ + 48.0, + 148.0152587890625 + ] + ] + }, + { + "title": "Contents", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 59.8623046875, + 94.5941162109375 + ], + [ + 124.4179916381836, + 94.306640625 + ], + [ + 124.4179916381836, + 114.5941162109375 + ], + [ + 59.0009765625, + 114.5941162109375 + ] + ] + }, + { + "title": "How to Read \nis Book \u00b7 \n1", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 59.64697265625, + 131.0537109375 + ], + [ + 172.8610076904297, + 129.7529296875 + ], + [ + 172.8610076904297, + 142.847412109375 + ], + [ + 58.78564453125, + 142.847412109375 + ] + ] + }, + { + "title": "Part\nI: motivations", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 59.431640625, + 155.347900390625 + ], + [ + 156.33551025390625, + 155.1181640625 + ], + [ + 156.33551025390625, + 166.847900390625 + ], + [ + 58.5703125, + 166.847900390625 + ] + ] + }, + { + "title": "Part iI: esSentials", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 59.64697265625, + 224.33639526367188 + ], + [ + 150.51708984375, + 224.0595703125 + ], + [ + 150.25315856933594, + 235.83639526367188 + ], + [ + 58.78564453125, + 235.83639526367188 + ] + ] + }, + { + "title": "Part IiI: principles", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 59.64697265625, + 323.31689453125 + ], + [ + 153.06951904296875, + 323.31689453125 + ], + [ + 153.06951904296875, + 334.81689453125 + ], + [ + 59.64697265625, + 334.81689453125 + ] + ] + }, + { + "title": "resources", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 58.1396484375, + 431.3018798828125 + ], + [ + 111.15084838867188, + 431.3018798828125 + ], + [ + 111.15084838867188, + 442.8018798828125 + ], + [ + 57.2783203125, + 442.8018798828125 + ] + ] + }, + { + "title": "How to Read is Book", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 143.4111328125, + 75.7705078125 + ], + [ + 308.8199157714844, + 75.7705078125 + ], + [ + 308.8199157714844, + 96.2142333984375 + ], + [ + 143.4111328125, + 96.2142333984375 + ] + ] + }, + { + "title": "Intended Audience", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 188.41552734375, + 512.6959991455078 + ], + [ + 263.78936767578125, + 511.857421875 + ], + [ + 263.78936767578125, + 524.6959991455078 + ], + [ + 188.41552734375, + 524.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.7623291015625, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Goals of is Book", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 175.2802734375, + 242.2705078125 + ], + [ + 252.64279174804688, + 240.9697265625 + ], + [ + 252.64279174804688, + 254.69601440429688 + ], + [ + 175.2802734375, + 254.69601440429688 + ] + ] + }, + { + "title": "how to read this book", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 168.17431640625, + 40.86962890625 + ], + [ + 283.7701110839844, + 40.86962890625 + ], + [ + 283.7701110839844, + 52.36962890625 + ], + [ + 168.17431640625, + 52.36962890625 + ] + ] + }, + { + "title": "Choosing Your Path", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 184.97021484375, + 242.2705078125 + ], + [ + 266.5912780761719, + 242.2705078125 + ], + [ + 266.5912780761719, + 254.69601440429688 + ], + [ + 184.97021484375, + 254.69601440429688 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 158.26904296875, + 361.9423828125 + ], + [ + 269.65289306640625, + 360.6416015625 + ], + [ + 269.65289306640625, + 374.6960144042969 + ], + [ + 158.26904296875, + 374.6960144042969 + ] + ] + }, + { + "title": "how to read this book", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 167.958984375, + 40.86962890625 + ], + [ + 283.7700500488281, + 40.86962890625 + ], + [ + 283.7700500488281, + 52.36962890625 + ], + [ + 167.958984375, + 52.36962890625 + ] + ] + }, + { + "title": "Multiple Indexes", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 190.99951171875, + 152.5166015625 + ], + [ + 260.1534118652344, + 151.2158203125 + ], + [ + 260.1534118652344, + 164.69601440429688 + ], + [ + 190.99951171875, + 164.69601440429688 + ] + ] + }, + { + "title": "Warning: Micromaniac at Work", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 160.20703125, + 257.69598388671875 + ], + [ + 291.9235534667969, + 256.5791015625 + ], + [ + 291.9235534667969, + 269.6960144042969 + ], + [ + 160.20703125, + 269.6960144042969 + ] + ] + }, + { + "title": "Why I Wrote is Book", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 142.33447265625, + 106.2142333984375 + ], + [ + 308.68792724609375, + 105.0380859375 + ], + [ + 308.68792724609375, + 126.2142333984375 + ], + [ + 142.33447265625, + 126.2142333984375 + ] + ] + }, + { + "title": "A Passion for Design", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 183.0322265625, + 257.5546875 + ], + [ + 267.919921875, + 256.25390625 + ], + [ + 267.919921875, + 269.6960144042969 + ], + [ + 183.0322265625, + 269.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.7679901123047, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Design in Computer Science and Other Fields", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 122.52392578125, + 77.69598388671875 + ], + [ + 305.5793151855469, + 76.4208984375 + ], + [ + 305.5793151855469, + 89.69598388671875 + ], + [ + 121.66259765625, + 89.69598388671875 + ] + ] + }, + { + "title": "1: why i wrote this book", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 164.513671875, + 40.86962890625 + ], + [ + 287.4098205566406, + 40.86962890625 + ], + [ + 287.4098205566406, + 52.36962890625 + ], + [ + 163.65234375, + 52.36962890625 + ] + ] + }, + { + "title": "Clarity & Simplicity in Design", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 163.86767578125, + 287.69598388671875 + ], + [ + 287.8431396484375, + 286.4970703125 + ], + [ + 287.8431396484375, + 299.6960144042969 + ], + [ + 163.86767578125, + 299.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "How is Project Came About", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.23974609375, + 421.7783203125 + ], + [ + 276.04779052734375, + 420.4775390625 + ], + [ + 276.04779052734375, + 434.6959991455078 + ], + [ + 151.37841796875, + 434.6959991455078 + ] + ] + }, + { + "title": "1: why i wrote this book", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 164.72900390625, + 40.86962890625 + ], + [ + 287.4098205566406, + 40.86962890625 + ], + [ + 287.4098205566406, + 52.36962890625 + ], + [ + 163.86767578125, + 52.36962890625 + ] + ] + }, + { + "title": "is Book: Opening a Conversation", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 153.10107421875, + 257.69598388671875 + ], + [ + 298.52874755859375, + 256.904296875 + ], + [ + 298.52874755859375, + 269.6960144042969 + ], + [ + 153.10107421875, + 269.6960144042969 + ] + ] + }, + { + "title": "Discovering Concepts", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 148.5791015625, + 106.2142333984375 + ], + [ + 303.6000061035156, + 105.6884765625 + ], + [ + 303.6000061035156, + 126.2142333984375 + ], + [ + 148.5791015625, + 126.2142333984375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "A First Example: Baing Backups", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 142.33447265625, + 197.69598388671875 + ], + [ + 284.1837158203125, + 196.7431640625 + ], + [ + 284.1837158203125, + 209.69601440429688 + ], + [ + 142.33447265625, + 209.69601440429688 + ] + ] + }, + { + "title": "2: discovering concepts", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 165.15966796875, + 40.86962890625 + ], + [ + 287.1164855957031, + 40.86962890625 + ], + [ + 287.1164855957031, + 52.36962890625 + ], + [ + 164.29833984375, + 52.36962890625 + ] + ] + }, + { + "title": "Dropbox Delusions", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 187.3388671875, + 541.125 + ], + [ + 265.7197265625, + 539.82421875 + ], + [ + 265.5122985839844, + 554.6959991455078 + ], + [ + 186.4775390625, + 554.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "2: discovering concepts", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 165.375, + 40.86962890625 + ], + [ + 287.1108093261719, + 40.86962890625 + ], + [ + 287.1108093261719, + 52.36962890625 + ], + [ + 164.513671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.27099609375, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.67041015625, + 52.36962890625 + ] + ] + }, + { + "title": "Explaining Dropbox", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 170.9736328125, + 497.2236328125 + ], + [ + 256.18231201171875, + 495.9228515625 + ], + [ + 256.18231201171875, + 509.89599609375 + ], + [ + 170.9736328125, + 509.89599609375 + ] + ] + }, + { + "title": "2: discovering concepts", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 165.59033203125, + 40.86962890625 + ], + [ + 287.1164855957031, + 40.86962890625 + ], + [ + 287.1164855957031, + 52.36962890625 + ], + [ + 164.72900390625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "What Kind of Flaw is is?", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 158.69970703125, + 332.0244140625 + ], + [ + 269.6773376464844, + 330.7236328125 + ], + [ + 269.6773376464844, + 344.6960144042969 + ], + [ + 158.69970703125, + 344.6960144042969 + ] + ] + }, + { + "title": "2: discovering concepts", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 165.15966796875, + 40.86962890625 + ], + [ + 287.1165771484375, + 40.86962890625 + ], + [ + 287.1165771484375, + 52.36962890625 + ], + [ + 164.29833984375, + 52.36962890625 + ] + ] + }, + { + "title": "Levels of Design", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 193.3681640625, + 465.6796875 + ], + [ + 258.6596984863281, + 465.6796875 + ], + [ + 258.6596984863281, + 479.7060089111328 + ], + [ + 192.5068359375, + 479.7060089111328 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.76809692382812, + 52.36962890625 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 3 + ], + [ + "Line", + 2 + ], + [ + "Picture", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 15 + ], + [ + "Line", + 4 + ], + [ + "SectionHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 27 + ], + [ + "Text", + 20 + ], + [ + "SectionHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Picture", + 1 + ], + [ + "Line", + 1 + ], + [ + "Span", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 85 + ], + [ + "Line", + 30 + ], + [ + "ListItem", + 11 + ], + [ + "SectionHeader", + 6 + ], + [ + "ListGroup", + 3 + ], + [ + "Text", + 2 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 54 + ], + [ + "Line", + 30 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 36 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 36 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 73 + ], + [ + "Line", + 35 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 64 + ], + [ + "Line", + 30 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 3 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 65 + ], + [ + "Line", + 31 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 37 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 36 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 74 + ], + [ + "Line", + 35 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 31 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 67 + ], + [ + "Line", + 30 + ], + [ + "Text", + 5 + ], + [ + "PageHeader", + 1 + ], + [ + "SectionHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 86 + ], + [ + "Line", + 36 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 69 + ], + [ + "Line", + 31 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 102 + ], + [ + "Line", + 37 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 44 + ], + [ + "Line", + 18 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 32 + ], + [ + "Line", + 12 + ], + [ + "SectionHeader", + 2 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "Text", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 71 + ], + [ + "Line", + 32 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 95 + ], + [ + "Line", + 36 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 33 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 69 + ], + [ + "Line", + 30 + ], + [ + "Text", + 4 + ], + [ + "Picture", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-001-030" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..281e0d1a0cc2ded608e35cebbd6f442458d4c931 GIT binary patch literal 2605 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 bgW5GntKjFzVu0?17s~I7RVmJsgx>uD#{07j literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_2.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2c28bed101c54f7aef1a3b58ca86ea639df2ac3e GIT binary patch literal 2975 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 P^mI`iuS!vz8E5og_W7zV literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_4.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_0_Picture_4.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..bb99317bb63781957a987d25c40eaebca41689eb GIT binary patch literal 2307 zcmd6nX;@QN8pls|!WNdGz<>cl0R_c`q-a?(h!7AFL1j~n(xRfHEh>BI6{HApXhf|j zPg_uARiIE1MIefT2s&&c3axC8td<~4LP+lErOQm~be`$Vr+M#l?}u~Vd(Qv&f6sg1 zGdKXWHo1Gc0~`(j9QFX%2V8*)nM@&*R45b*m8znuPS;RZQ&Tt4(WTLi4H+wp4ULRU z%-2|&nAtFmjI8We+N@=9I2?xMdZ%@4$2E2w_R=CaDwV3PrmnA{q0croGG+hQ0q+29 z6%Ya<2skr<*TxaFaqvE1U^+>-9|QaxI6Q$!B2!eTs%lt5l@`F`2n0NlKq3)|Sat$7 z4~W_%9aEMIS=VNLZY`MOH;X4+VRx4L=xbNDp zTmPQxMmKl9hv%kk+jsZ}1O^4a|3TQk{RhGi9y=Zx6&({BcQX0YlvAl`!n5bje|{nJ z;-#!BxmWY@3kr*hE550$x>0@eR!zgb`;AQxnjf}wc0K8S+Vkvr@8Hnz%fG)G866v+ zels&WH!qbf$d|ZqfbbI*_WcR$EiP@03r{2xh?FHR96lO*3ED)GDT}P*;!D{Zp=-uY zRH1LkxLkgh%Cz&7=!G8bP+exu8GL7Y3GGL+KL(ccKau?d?4Mk{K%IcYibv1}JRp@@ zm2r{O;ELv!)stUS84(c3iotBL^&`hpn>eP~|)3%GRF;!U;j=B(-Xy?a7hZlF~V3K~@1leLn_D-XLsa?)dpy`W6oOM? z={G}s#mC_ge9xQFJ2&v*g5e$ruzJqw{`s`v4{XFh!YsZ_;C}Ha-Q2rMsN*8vcf0Kr z?~P_1W=!rv0COmN!C;OipHPw_`!$i5#_gMHh4T8~q zHLBD4+z|I(Q@uLn6W_9ppY7Yq0|$LxKNg@#nPQn11jASX#fC_80k-g8FxlKP3!i#% zaFz45!fzYe+mJ{b?{4!;7gs2$#phL|S=Nn6H5ZYq?uKB%6@qj|UzS)&vPC4O5Hy`u zAFnq@9yDd6!w|57oXHSmSjEZ2vCAd%d70?92`4OZhGlPS>yOjJ=xT zawq0l5hFE+U(>PMT6qf--tH%b0MAeyK)=Q6Jh~FomPkW6fng##1kG)QNRMFDx>R-y z0+We;`8eyi%TUvRpq!_H{MJ?EE1sIu?GWzA*(tDRaRF9<%3zKXOpPATWJ z72XU<>8xl$hE=(~3p<0QH-xT^1&#HL%J#6Tok126tI9v*CN{CUKwP)2X81>k3?D^B zYnU~)+`rgNN&IS{hd<3kojDLl84JRP5_?7ZTI41Ka%w)a=s$0?EvQ1Y<>{L1gZmE* zB^2*U^6Am*Q>=&JOyra@lF@RD@o!va8RyY`J@)R_wUv)R5Yuz}m-EMIUy(Ve5wPWk zz&KexC_)NcHoh_3@5N!*jZ>3ZrN5UDibgb3yBtu}x ztLBL0szJ!W1|&VEgdV8jqupwRn$=%0(DCTqd@UDGGfpjiFxaLzS%yp$qB}-*jEaBN zbef$)tE+2^DH}UIA9hZrK~Q!ayPm{uU@LmBlQ+5?yR%P>p>$;L7-Lp#Y0v++X}!?i ezdd~%bolV)#K4!SXRItGMWZ=*p;ZnIKK}vD+eZ%o literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_21_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_21_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..75e086741a1951724308de67da52d53cf3c4aa26 GIT binary patch literal 119369 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 bH>0$tfU|JqpG7}oAA<`1FZw6@`tjcYw+f9K literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_26_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_26_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e8117785c2097d01620e39fe4961ddeac452dd6f GIT binary patch literal 21885 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 H{@cF+(9X(_ literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_27_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_27_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..ce209053ac890ecfc72a64b5763edc5a358eeca4 GIT binary patch literal 26633 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 I1Md$018bT%UH||9 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_2_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_2_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..bf899e1c5cf845e9e6926a07c180154201bd59da GIT binary patch literal 26938 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 aPQ1HwENG&uTA9|r{FUnZFS--`bN25~+FL;Y literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_5_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_5_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d79b1c5e07fcfc3197f8fe39de29eb9428c2d204 GIT binary patch literal 40303 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 Y@3UKSM303M5O@F)i2o0MV88YJ2dNgjasU7T literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_7_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_7_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..67d160649a5bcf697946c252e23e393a35205a47 GIT binary patch literal 82731 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⁡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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_8_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/_page_8_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..48f0290feb64dd1799250ae0816e0478d0c70bf5 GIT binary patch literal 37512 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

O+x7iDp5(k=U8?5n5)%H$$tBd(2_YtpuyPY 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 + +When user interface designers talk about the need for consistency, they're usually referring to the use of language at this level. Consistency includes ensuring that the same words are used in the same way throughout an interface for example, that containers for les aren't called "folders" in one place and "directories" in another—and that icons are used systematically. Figure 2.7 shows how Google violated this principle by using two near-identical icons for dierent functions (but xed the problem a few years later). Both depicted an array of black squares, but one opened a menu of Google apps, and the other switched to a view in which les appear in a grid. + +e third, and highest, level of design is the *conceptual level*. It's concerned with the behavior that underlies the design: the actions that are performed by the user (and by the soware itself) and the consequences that they have on underlying structures. In contrast to the linguistic level, the conceptual level isn't about communication or culture, even though (as we'll see in Chapter 10) prior knowledge of a concept makes it easier to learn and use. + +In programming, there is a familiar and important distinction between *abstraction* and *representation*. An abstraction captures the essence of a programming idea, and may be expressed as a specication of the observable behavior. A representation is the realization of that essence in code. + +In the same way, a user interaction has an abstraction and a representation. e abstraction is the concept—the essence of the structure and behavior and is the subject of design at the conceptual level. e representation is the realization of the concept in a user interface, with all its physical and linguistic details, and is the subject of design at the lower levels. + +Just as a single programming abstraction can have dierent representations, so a concept can be realized in dierent user interfaces. And just as programmers think rst about the abstraction and only second about the representation, + +so designers think at the conceptual level before the lower levels. Until now, designers have not had a way to express conceptual design ideas without representing them in a concrete user interface. e goal of this book is to show that such ideas can be expressed directly, prior to and independently of representation choices. + +## *Mental Models and Concept Design* + +In most soware apps, the diculties that users have are rarely due to an app having too few features or too many. e more common problem is that users can't make eective use of the functionality that actually exists. is may happen because users don't actively seek out features, and assume that they're not there.23 + +More oen, though, users are aware of features but are just unable to use them successfully. e most common reason for this is that the user has a mental model that is incorrect—that is, incompatible with the mental model of the designer and implementer of the soware. Although research has shown repeatedly (and unsurprisingly) that users oen have vague, incomplete and even inconsistent models of the devices they use, they do develop conceptions that are similar, at least in form if not in every detail, to the conceptions held in the minds of the designers.24 + +But when users have grossly incorrect mental models they are unlikely to be able to use the functionality eectively, as we saw in our Dropbox example. ey may suer serious losses, or be so nervous of making a costly mistake that they use a tiny subset of functions. + +A bad solution to this problem is to try and educate users. It won't work in general because most users will resist spending time learning how to use an app; they expect (not unreasonably) to pick it up as they go along. A beer solution is to design the concepts of the soware so that they are simple, exible and well suited to the user's needs, and to design the user interface to convey those concepts to the user. + +e concepts themselves are then the basis both for the intended mental model of the user and the specication given to the programmer. e task of the user interface designer is to project what the usability researcher Don Norman calls a "system image" that corresponds faithfully to the conceptual model, so that users will acquire a mental model aligned with it.25 + +#### 2: discovering concepts + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_2_Figure_1.jpeg) + +fig. 2.8 *e central role of concepts (le) in aligning the user's mental model (top right) and the developer's design model embodied in the code (boom right). By mapping the concepts carefully to the user interface (middle right), the concepts are not only fully supported but also conveyed implicitly to the user.* + +Figure 2.8 depicts this. At the top, there is the user; at the boom, the code wrien by the programmer; and between the two, the user interface. For the soware to be successful, we need to understand the user (by investigating her needs, working environment and psychological qualities); ensure that the code meets its specication (by testing, review and verication); and cra a usable interface. But most important of all is aligning the model in the head of the user with the model in the head of the programmer, and that is achieved by explicitly designing concepts that are shared by user and programmer alike, and conveyed clearly in the user interface. + +## *Lessons & Practices* + +Some lessons from this chapter: + +- · Major usability problems in soware applications can oen be traced to their underlying concepts. In Dropbox, for example, confusions over whether deletions will aect other users is explained by Dropbox's adoption of a concept that originated in Unix. +- · Soware design is conducted at three levels: the physical level, which involves designing buons, layouts, gestures and so on that are matched to + +the physical and cognitive capabilities of human users; the linguistic level, which involves designing icons, messages and terminology to communicate with users; and the conceptual level, which involves designing the underlying behavior as a collection of concepts. e two lower levels are concerned with representing the concepts in the user interface. + +· For users, having the right mental model is essential for usability. To ensure this, we need to design concepts that are simple and straightforward, and to map the concepts to the user interface so that the concepts are intelligible and easy to use. + +### And some practices you can apply now: + +- · Take an app you have trouble using. Ask yourself what concepts are involved, and check that your hypotheses about how they work match the actual behavior. If not, can you nd dierent concepts that explain the behavior more accurately? +- · As the designer of an app, consider the functions that users nd hardest to use (or easiest to misuse). Can put your nger on one or more concepts that are responsible? +- · When designing, know what level you're working at. Start at the conceptual level, and move down. Sketching concepts out at the lower levels can help you grasp them more intuitively, but resist the temptation to polish the physical interface (for example, worrying about typefaces, colors and layout details) before you have a clear sense of your concepts. +- · When you hear complaints about an app that focus on physical or linguistic aspects, ask if the underlying issue may lie at the conceptual level instead. + +# How Concepts Help + +In traditional design disciplines, design evolves from a conceptual core. is core diers from eld to eld. Architects call it the *parti pris*: an organizing principle for the work that follows, represented by a diagram, a short statement or an impressionistic sketch. Graphic designers call it *identity*, and it typically comprises a few elements that capture the spirit of the project or organization. Composers build music around *motifs*—sequences of notes—that can be altered, repeated, layered, and sequenced together to form larger structures. Book designers start from a *layout* that species the dimensions of the text block and margins, and the typefaces and sizes in which the text will be set. + +When the core is well chosen, the subsequent design decisions can seem almost inevitable. e design as a whole emerges with a coherence that makes it look like the product of a single mind even if it was the work of large team. Users perceive a sense of integrity and uniformity, and the underlying complexity gives way to an impression of simplicity. + +For a soware application, the conceptual core consists of—no surprise here—a collection of key concepts. In this chapter, we'll explore the roles that such concepts play, such as characterizing individual applications, application families, and even entire businesses; exposing complexity and usability snags; ensuring safety and security; and enabling division of labor and reuse. + +# *Concepts Characterize Apps* + +If you're trying to explain an app, outlining the key concepts goes a long way. Imagine encountering someone who time-traveled from the 1960s and wanted to know what Facebook (Figure 3.1) was and how to use it. You might start with the concept of *post*, explaining that people author short pieces that can be read by others; that these are called "status updates" in Facebook (and "tweets" in Twier) is a small detail. en there's the concept of *comment*, in which one person can write something in response; the concept of *like* in which people + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_5_Figure_1.jpeg) + +fig. 3.1 *A screenshot of Facebook in which three concepts are evident: post (represented by the message and the associated image), like (represented by the emoticons at the boom le), and comment (represented by the link on the boom right).* + +can register approval of a post, purportedly to boost its display ranking; and of course the concept of *friend* that is used both to lter what's shown to you and to provide access control so you can limit who sees your posts. + +e dierence between apps that oer similar functionality can oen be explained by comparing their concepts. For example, a key dierence between text messaging and email is that text messages are organized using a *conversation* concept in which all messages sent to a particular recipient appear; email messages, in contrast, are typically organized using concepts such as *mailbox*, *folder* or *label*. is is partly because the senders and recipients of text messages are uniquely identied by their phone numbers, whereas email users tend to have multiple addresses, which makes grouping into conversations unreliable. It also reects dierent modes of interaction, with text messages relying on the context of the conversation and email messages more oen interpreted in isolation (and thus oen quoting previous messages explicitly). + + + +| General | | | Style N | Name: body | , | | +|-----------------------------|-------------------------|-----------|----------|------------|-----------|------------| +| Basic Character Formats | Location: | | | | | | +| Advanced Character Formats | Basic Character Formats | | | | | | +| Indents and Spacing | | | | | | | +| Tabs | Font Family: A | Arno Pro | | | | | +| Paragraph Rules | Font Style: R | Regular | | | | | +| Paragraph Border | Size: | Ĉ 11.5 pt | | Leading: | 🗘 15 pt | | +| Paragraph Shading | Kerning: N | | | Tracking: | | | +| Keep Options | | | | | | | +| Hyphenation | Case: N | Normal | | Position: | Normal | | +| Justification | | | □ Unde | rline | Ligatures | □ No Break | +| Span Columns | | | C Strike | ethrough | | | +| Drop Caps and Nested Styles | | | Suike | eunougn | | | + +fig. 3.2 *e style concept, in Adobe InDesign, showing one tab of the formaing seings for a style called "body," which is the style associated with regular paragraphs in this book.* + +Sometimes it takes experience and expertise to identify the key concepts in an app. Novice users of Microso Word, for example, might be surprised to learn that its central concept is *paragraph*. Every document is structured as a sequence of paragraphs, and all line-based formaing properties (such as leading and justication) are associated with paragraphs rather than lines. If you want to write a book in Word, you won't nd any concepts that correspond to its hierarchical structure—no *chapter* or *section*, for example—and headings are treated as paragraphs like any other. Word achieves its exibility and power through the *paragraph* concept and by the powerful way in which it is combined with other concepts.26 + +# *Concepts Characterize Families* + +Concepts not only distinguish individual apps, but also unify families of apps. Programmers, for example, commonly use *text editors* (such as Atom, Sublime, BBEdit and Emacs) to edit program code; people use *word processors* (such as Word, OpenOce and WordPerfect) to create documents of all sorts; and professional designers use *desktop publishing* apps (such as Adobe InDesign, QuarkXPress, Scribus and Microso Publisher) to organize documents into nalized layouts in books and magazines. + +e key concepts of text editors are *line* and *character*. e *line* concept embodies both powerful functionality (such as the ability to perform "dis" and "merges" which are essential to programmers for managing code) as well as limitations (notably that there is no distinction between a line break and a + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_7_Figure_1.jpeg) + +fig. 3.3 *e text ow concept, in Adobe InDesign, showing this very page spread and its ows. e diagonal lines show the links between the text boxes that comprise a single ow.* + +paragraph break). To get around this, some layout tools (such as LaTeX) that take input from text editors adopt conventions, such as inserting a blank line to indicate a paragraph break. + +e concepts of word processors include not only *paragraph* but also *format*, which lets you assign typographic properties such as "bold" and "12pt" to text, and the concept *style*, for bundling format seings and associating them with paragraphs, for example dening a "body" style that sets the type size, font, and so on for all regular paragraphs [\(Figure 3.2\)](#page-6-0). + +Desktop publishing apps include the basic concepts of word processors, but add most signicantly the concept of *text flow*, which lets you set up boxes in dierent places in the document that are linked together so that imported text ows from one to the other. is is the concept you need to typeset a magazine, in which an article is split across pages, where you want to be able to adjust the dimensions of a textbox on one page and have the text ow automatically to another (see Figure 3.3). + +Surprisingly perhaps, amongst these three families, only one includes the concept of *page*. It's there in a minimal form in word processors (which allow + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_8_Picture_1.jpeg) + +fig. 3.4 *Layer and mask concepts in Photoshop; an adjustment layer has been added to darken the image, along with a mask that restricts the darkening to the area of the sky.* + +you to size the margins and set up headers and footers), but only in desktop publishing apps can you reorder, add, and delete pages independently of the text that ows through them. + +# *Concepts Dierentiate Products* + +When a soware product dominates a market, or hopes to, one or more new concepts are oen the root of its success (or aspiration to succeed). Photoshop became the dominant photo editing program due to its *layer* concept, which made non-destructive editing possible, and, in combination with the *mask* concept, allowed local edits (Figure 3.4). + +Apple's *trash* concept was so central to its new desktop that an early advertisement for the Lisa computer claimed that "If you can nd the trash can, you can run a computer." In part, the trash was just the most stylish and quirky application of the WIMP (windows, icons, menus, pointer) interface idea pioneered at Xerox PARC, and it played this role in Apple's 1988 suit against Microso and Hewle Packard for copying the Macintosh's interface. + +But despite all the aention paid to its charming icon, the *trash* concept was something more. Contrary to a common misunderstanding,27 the purpose of the *trash* is not deleting les but exactly the opposite—undeleting them. +e *trash* therefore is an exemplar of something deeper: the operating system's + +greater tolerance to user errors, now recognized as a fundamental principle of user interface design. (More on the *trash* concept in Chapter 4.) + +e spreadsheet, invented by Dan Bricklin in 1979 and one of the most successful innovations in computing, brought a new model of computation inspired by accounting ledgers. But its crucial novelty was not an accounting feature, but a remarkable new concept: the *formula*, which allowed the value of one cell to be dened in terms of values in other cells. In fact, VisiCalc, Bricklin's product, was not an accounting app at all, and other apps that had been targeted directly at accounting failed. e *formula* concept was powerful because it allowed you to model all kinds of computations. It was also nontrivial, relying on the subtle partner concept of *reference* which, by distinguishing absolute and relative positions, made it possible to copy a formula from one cell to another. + +As a more contemporary example, the scheduling company Calendly oers an app whose dierentiator is a concept called *event type*. In short, you dene a collection of types of events (such as 15 minute phone calls, hour-long in-person meetings, etc), each with its own characteristics, such as the length of the event, its cancellation policy, what kinds of notications occur, and so on. en you indicate what your availability is for each event type, and people book appointments based on the event types. + +It's a fun and enlightening game to try and identify the linchpin concept in a familiar app or system. Take the World Wide Web, for example. You might guess *html* or *link*, but markup languages and hypertext had been around for a long time. e core of the Web is in fact the *url* (uniform resource locator) concept: the idea of giving globally unique and persistent names to documents. Without that, the Web would be no more than a collection of proprietary networks, each operating in its own silo. + +# *Concepts Expose Complexity* + +Many concepts are straightforward and easily learned. But others are more complicated. Some complications are not warranted and are just evidence of bad design (more on this below), but sometimes the power that a concept brings justies its complexity. + +Photoshop's *layer* and *mask* concepts fall in this category. When I started with Photoshop, I tried to learn it by playing around and by watching videos showing you how to do specialized tasks such as removing red-eye. Eventually, + +though, I realized that I needed to understand the core concepts more deeply, so I found a book that explained layers and masks (and channels, curves, color spaces, histograms, etc.) from a conceptual point of view, and I was then able to do whatever I wanted. + +Some of the most complex concepts appear in apps that are widely used by non-experts. Browser apps include the *certificate* concept for checking that the server you're talking to belongs to the company you expect—your bank, for example, rather than an interloper trying to steal your credentials—and oer the *private browsing* concept to prevent your browsing information from being available to others aer you've logged out. Despite the critical importance of these concepts for security, they are poorly understood. Most users have no idea how certicates work and what they're for, and they oen think that private browsing allows them to visit sites without being tracked. + +Worse, some of the most basic behaviors of browsers rely on complex concepts that are invisible to most users. e *page cache* concept, for example, is used by website developers to make pages load more quickly, by using previously downloaded content. But the rules for when old content is replaced (and how these rules are modied) are obscure even to some developers, so users and developers alike may be uncertain about whether content that appears in the browser is fresh or not. + +Highlighting tricky concepts is helpful because of the focus it brings. It tells us, as users, what we need to learn: if you want to be a power user, just ignore all the details of the interface—those will come easily later—and master the handful of key concepts. It helps us, as teachers, to focus on the essence: so when we teach web development, for example, we can explain the important concepts—sessions, certicates, caching, asynchronous services, etc.—without geing caught up in the idiosyncrasies of particular frameworks. And it suggests opportunities to us as designers for innovation. A beer concept for server authentication, for example, might prevent a lot of phishing aacks. + +## *Concepts Dene Businesses* + +"Digital transformation" is a grandiose term for a simple idea: taking the core of a business and puing it online, so customers can access services through their devices. In my experience as a consultant, I've sometimes found that executives, seeking to refresh and expand their business, instead of trying to un- + +derstand what that core is, look to cool technologies. ey hope to gain market share by moving to the cloud, or by incorporating machine learning or blockchains, oen without a clear sense of the problem being solved. + +Investing in core concepts is less ashy but likely to be more eective. First, just identifying the core concepts of a business helps you focus on what services you provide now (and might provide in the future). Second, analyzing those concepts can expose friction and opportunities to streamline the business. ird, an inventory of concepts can be ranked to reect the value of each concept (to the customer and the company) and the cost of implementing and maintaining it, providing a basis for strategizing about the services the company provides. Fourth, by consolidating a set of core concepts, a company can ensure that customers have a uniform experience across technology platforms and company divisions, and can reduce the cost of having multiple variants of concept, each with its own implementation (and the concomitant headache of resolving dierences in schemas when data is transferred between parts of the company). + +e best services revolve around a small number of concepts that are well designed and easy for customers to understand and use, and their innovations oen involve simple but compelling new concepts. In Apple's concept of *song*, for example, Steve Jobs saw the opportunity to provide every step of the experience of selecting, buying, downloading and playing music in a single unied concept.28 + +In contrast, consider what the airline business oers. Its key concept is arguably the *seat*, and yet few concepts are as obscure and hard to use. In an aempt to maximize prot, most airlines hide their pricing strategies for seats (so that only experts can tell how the price they are being oered compares to the price of other seats on the same plane, being sold now or in the past), divulge lile information about the details of the product (such as how much room you get, and how dierent seats on the same plane compare), and may not even let you choose your seat in advance. e *frequent flyer* concept is typically mired in caveats and exclusions, and oen employs a collection of misleading and dishonest tactics to ensure that customers derive as lile value as possible.29 + +| Q has:nouserlabels | | +|--------------------|-----------------------------------------------------| +| □ - C : | | +| ☐ ☆ Alyssa, me 3 | Inbox hacking meetups javascript - Yes, it does. | +| Alyssa P. Hacker | Inbox Social buy this! - My new JS book is out! | + +fig. 3.5 *Labels in Gmail. I've entered a search query to show messages with no user-dened labels, but the rst item seems to carry such labels ("hacking" and "meetups"). e explanation is that Gmail shows all conversations that contain messages satisfying the query, along with any labels aached to their messages. So a conversation containing one message without labels, and another message with labels, will appear in this search.* + +# *Concepts Determine Costs and Benets* + +When you're planning the development of an app, you can use the list of candidate concepts to scope the app's functionality, and make trade-os between costs and benets. Of course, developers have been doing something like this for decades, using informal notions of functionality or features. What concepts bring is a clearer division of functionality into free standing units, each with its own value and costs. + +Put another way, before including any concept in your design, you want to *justify* its inclusion by considering (a) the purpose of the concept (and how valuable that is to your users); (b) the concept's complexity (and thus the cost of developing it, and the cost to users in terms of potential confusion); and (c) the concept's novelty (and thus the risk it entails). + +No doubt the 80:20 rule applies to concepts: that 20% of concepts deliver 80% of the benet. at does not mean that the less useful concepts are not important. Oen, a concept that is useless to one user is essential to another. But sometimes a concept that is central to the design of an app ends up being underused. + +e *label* concept in Gmail, for example, is the key mechanism for organizing messages. It must account for a considerable portion of Gmail's development complexity. As we'll see later in the book, the concept is mired in complications, and seems to be a source of confusion to users (Figure 3.5). It's also the reason that Gmail users can't always distinguish which messages they've sent + +and which they've received, because the *sent* label, like all others, is aached in the display to an entire conversation and not to an individual message. And yet it seems that less than a third of Gmail users create any labels at all!30 + +### *Concepts Separate Concerns* + +What is the single most important strategy in problem solving? e prize, I believe, must go to *separation of concerns*, in which dierent aspects or "concerns" are addressed separately, even if they are not entirely independent.31 + +Concepts provide a new way to separate concerns in soware design. Suppose, for example, you're designing a group forum in which members post messages and share various kinds of assets (such as images). At rst sight, you might identify a *group* concept that embodies all the behavior of a group, such as joining the group, posting messages, reading other people's posts, and so on. But a more granular design might separate the functionality into several smaller concepts: a simpler *group* concept to capture the membership aspect and the way in which assets (such as messages and posts) are associated with groups; a *post* concept for the composing and formaing of messages; an *invitation* concept for inviting members to join; a *request* concept so that members can initiate membership; a *notification* concept that governs the messages members receive to notify them when certain status changes occur or when other members respond to their posts; a *moderation* concept for handling moderation of messages; and so on. + +Such a separation is potent because it allows the designer to focus on one aspect at a time: you don't need to be thinking about whether membership invitations can be revoked at the same time that you're trying to shape the moderation pipeline. Each concept can be enriched arbitrarily, even becoming a small system in its own right—or it might be omied entirely if the designer decides that its cost is not in proportion to its benet. + +e same breakdown that benets a single designer applies to a team. By assigning concepts to dierent team members (or subteams), you can make progress in parallel. With a distinct purpose for each concept, the individual eorts are unlikely to conict, and any incompatibilities between the designed concepts can be resolved when they are composed together. + +## *Concepts Bring Reuse* + +Breaking a design down into the most basic, elemental concepts exposes opportunities for reuse. In the group forum app, the designer, having identied the *moderation* concept, for example, would be wise to explore how moderation is achieved in other contexts. at posts in a forum are the subject of the moderation, rather than comments on a newspaper article, can initially be ignored. Once the variety of standard moderation options are ready to be considered, the designer can ask whether one might be more suited to the context than another. Even beer, the designer might discover that an o-the-shelf solution can be adopted in its entirety, thus reusing not only the idea of the concept but its implementation too.32 + +Many concepts are reused in almost an identical form across apps. Imagine a handbook of concept designs. Rather than reinventing the wheel, a designer could look up a concept, and read about all the tricky issues associated with it, along with their conventional solutions. + +For example, almost all social media apps incorporate some form of the *upvote* concept, in which users register their like (or sometimes dislike) of an item, with an impact on its prominence in feeds and search results. If you were designing this concept for the rst time, you would probably realize early on that you needed some way to prevent double voting, and that this would depend on somehow identifying the user when they upvote an item. + +But you might not know the range of ways to identify users and their relative advantages and disadvantages: whether you should make them log in and rely on their user names; or use their IP addresses as proxies; or install a cookie just for this purpose; and so on. You might not have thought to mitigate the cost of storing the identity of the user with each vote by freezing voting on archived items (so that the identities associated with prior votes can be discarded). Nor might you have considered weighting of votes: whether some users' votes should be more inuential, or whether more recent votes should count for more than older votes. A handbook of concepts would have an entry for *upvote* that lists all these design options and their trade-os, allowing you to save the eort of exploring design paths that others have traveled down many times before. + +## *Concepts Help Identify Usability Snags* + +Sometimes a soware app or service turns out to be very hard to use, frustrating some users so much that they reject it in its entirety. When this happens, the problem can sometimes be pinned on a single concept. + +Apple oers cloud storage for data held on a user's devices: laptops, phones, etc. e cloud storage serves two distinct purposes. One is to synchronize data between devices. is makes it easy, for example, to maintain the same set of bookmarks in your browser irrespective of the device you're using. e other is to provide backup, so that if a device is lost or its storage damaged, the data can be restored from the copy held in the cloud. + +Apple's design strategy has always favored simplicity and automation over manual control, even in cases where giving more control to the user seems essential. Its *synchronization* concept is a prime example of this strategy, and as a result is oen the source of complaints from confused customers. + +Sometimes Apple's design seems to put the user in a catch-22 situation without any viable options. Consider the dilemma you face if your iPhone runs out of storage space. When this happens, you get a warning message telling you that your phone is about to run out of space, suggesting that you "manage your storage in Seings." + +At this point, none of your options are very aractive. Suppose you nd that your photos are taking much of the space. You can delete the entire Photos application, with all its associated data and state. You can turn on "optimized storage" which converts photos to lower-quality versions (while keeping the higher-quality versions as master copies in the cloud). What you can't do, however, is simply to delete some of your photos from the phone, in the hope that they will remain on your other devices. If you do that, the photos you delete on your phone will also be deleted from the cloud. And then those deletions will be propagated to all your other devices, removing the photos from them too. + +What's missing from Apple's *synchronization* concept is the idea of *selective synchronization*: the ability to indicate that some les should not be synchronized. With this feature, you would be able to delete old photos from your phone, while leaving copies in the cloud. Dropbox's*synchronization* concept, in contrast, does oer this feature, so it's certainly feasible.33 + +## *Concepts Ensure Safety and Security* + +e popularity of the term "secure by design" reects a growing consensus that security—a concern for all soware systems today—is best achieved not by closing all security holes (an impossible task anyway) but by designing systems to be secure despite them. + +Security design relies on a few key concepts to establish system-wide properties: *authentication*, to ensure that the actors (or "principals" as they are called in the security eld) who make requests are correctly identied; *authorization*, to ensure that those actors can only access certain resources; *auditing*, to ensure that every access is faithfully recorded (and bad actors can be punished accordingly); and so on. + +Each of these concepts has many variants, and understanding the security of a system rests on understanding these variants deeply. If a concept is used casually, without carefully analyzing its purposes and assumptions, a system that appears to have all the right protections may turn out to be vulnerable. + +Take *two-factor authentication*, for example. It works like this: a user logs in to a service, which then sends a special key to the user through another channel, usually by a text message to a phone; the user enters the key, and in return receives a credential (in the form of a cookie or some other kind of token) that grants the desired access. e user is conrmed by this scenario as the owner of the phone (say) and thus also as the legitimate account holder. + +is design, however, is fraught with complexities. First, the assumption that access to a phone number implies ownership of the associated phone is questionable: Jack Dorsey, CEO of Twier, fell victim to a "SIM swapping" aack in 2019 when hackers took control of his phone number. Second, the design involves an additional concept—namely *capability*, in which a token is provided that grants access to anyone who holds it—and in the interaction between the two concepts lies a gaping security hole. + +Suppose you receive a phishing email, asking you to conrm a LinkedIn connection, containing a URL that points not to the real LinkedIn site but to a server owned by a hacker. is server mimics the real server, and gives you the impression that you are talking to LinkedIn itself. When you enter the two-factor authentication key, the malicious server passes it on to LinkedIn, obtains + +your access token, and passes the token on to you. All seems ne, but the hacker has the token too, and can now access your account as you.34 + +ese issues are contained within a few critical security concepts. Only the design of the concepts and their interactions is relevant; the code must implement the concepts correctly, of course, but the design problems are fundamental. e security of a system will thus oen rest on understanding its security concepts and their known vulnerabilities, and if an analysis suggests that stronger guarantees are needed, the concepts will need to be replaced or augmented. In short, security design is in large part about the design and use of appropriate concepts. + +Concepts are central to the design of all critical systems.35 In the domain of safety rather than security, there are fewer standard concepts. Nevertheless, recurring incidents suggest opportunities for new concepts that would play a role similar to concepts in security, embodying conventional ways to encapsulate critical functions. For example, medical devices are rife with mistakes related to dosage calculations, and a *dose* concept that handles all the complications associated with units, concentrations and ow rates might eliminate many of the tragic accidents in which patients are injured or killed by preventable errors.36 + +# *Concepts Ground Design Critique* + +In any eld of design, critique—in which designers review and analyze each others' work—plays a central role. A critique (or "crit") is not a formal evaluation in which principles are systematically applied, and its very informality can provide space for insights and inspiration. Moreover, critique is inevitably subjective, as dierent participants come with their own biases and interests. But eective critique is always deeply informed by experience and expertise, which the critic brings by speaking in a language of known principles and paerns.38 + +Such principles and paerns have developed around the physical and linguistic levels of design, but not so much at the conceptual level. Even the widely accepted idea that a system should have a clear conceptual model is oen interpreted as a principle at the linguistic level, focusing not on the structure of the conceptual model itself but on how faithfully and eectively the model is projected by the user interface.37 + +e rest of this book is aimed at lling exactly this gap. Part II provides a language for talking about concepts, and a structure for expressing them. Part III + +presents three design principles that govern the selection of concepts and their composition. + +Design principles can be used in dierent ways. ey oer a basis for shared understanding in design crits, or can be applied systematically in heuristic evaluations. But their more important role is in shaping the way designers think. Once you have grasped Norman's notion of "mapping," for example, which suggests arranging user interface controls in a layout that matches the layout of the objects being controlled, you'll intuitively create layouts that already have a natural mapping.39 + +Likewise, absorbing the language and principles of concepts should empower you to be a more eective soware designer: it should give you a way to express your ideas more directly and clearly; to solidify your intuition and experience in a more systematic framework; and to inform your judgment with heightened design sensibilities. + +## *Lessons & Practices* + +Some lessons from this chapter: + +- · Concepts characterize individual apps, app classes, and entire product families. ey allow you to compare apps, highlight their essential capabilities, and learn how to use them eectively. +- · Concepts are oen product dierentiators, can bring focus to marketing efforts, and can reveal the reason for a product's success or failure. +- · Concepts can help a company engaged in "digital transformation" map a path forward. More than extending the platforms through which customers can access services or adopting hot technologies, digital transformation is about identifying, consolidating, and extending core business concepts, so that customers have a rich and uniform experience that brings real value. +- · Concepts give a new granularity that lets soware designers separate concerns, exploit reuse, and divide engineering labor more eectively. +- · Concepts are the essence of design for safety and security, where picking the right concepts and understanding their implications is paramount. +- · Concept design oers rules that can be applied when reviewing a design, to avoid problems that might otherwise not be discovered until much later; a designer who internalizes these rules is likely to produce beer designs even if not considering them explicitly. + +## And some practices you can apply now: + +- · Take an app that you are familiar with and identify a small number of core concepts that characterize it. Consider similar apps, and see if you can explain the commonalities and dierences in terms of their concepts. +- · Try to identify the concepts that are responsible for the success (or failure) of soware products that you have been involved in creating or using. +- · Using the *group* concept as an example, nd a complex feature in some so ware you're familiar with, and break it down into separate, smaller concepts. Does this reveal connections to other products, or opportunities to apply a concept more uniformly? + +# Concept Structure + +So far, I've talked in rather vague and general terms about concepts. But what exactly *is* a concept? To use concepts eectively, we'll need to go beyond generalities and look at specics. In this chapter, I'll show you how to structure the denition of a concept. is structure will clarify what concepts are (and are not); it will give you a roadmap for designing concepts; and it will allow you to dene each concept precisely. + +I'll use three concepts as exemplars, concentrating on their structure but also telling the larger story of their invention and use, and pointing out some of their design subtleties. + +Concepts don't make all design problems go away, of course. ey do, however, help you *localize* challenges by recognizing them as specic to a particular concept. A concept becomes a container not only for the behaviors that it embodies but also for all the accumulated knowledge about its design, the issues that have arisen in practice as it has been deployed, and the various ways in which designers have dealt with them. + +# *Apple's Killer Concept: Trash* + +e *trash* concept was invented by Apple for the Lisa computer, the predecessor of the Macintosh, in 1982. e trash icon (and its cute bulging version when you put something in it, and the niy crunching noise it made when you emptied it) became the emblem of the Macintosh's claim to being a more friendly and usable operating system (Figure 4.1). Since then the *trash* concept has become ubiquitous, appearing not only in the le system managers of other operating systems, but also in many other applications. + +At rst glance, the trash icon appears to oer no more than an intuitive gesture for deleting les and folders—by dragging them to the trash rather than executing a more conventional deletion command. e real innovation, however, is not that you can move things *into* the trash, but that you can then move + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_21_Figure_1.jpeg) + +fig. 4.1 *e original Macintosh desktop, with trash at boom right (1984).* + +them *out*. e trash holds a collection of items, which can be viewed by opening it; you can then restore items by moving them from the trash to some other location. We might therefore say that the *purpose* of the *trash* concept is not *deletion* but the *undoing* of deletion.40 + +Of course, you have to be able to delete les permanently too, in order to make space for new les. is is accomplished by "emptying" the trash. So, in summary, you move an item to the trash when you want to delete it; you take it out of the trash when you want to restore it; and you empty the trash when you run out of space and want to permanently remove the items it contains. + +To make concept design practical, we need a way to describe concepts succinctly and precisely. Figure 4.2 shows how the *trash* concept can be described. e parts correspond exactly to the explanation I just gave you. + +First comes the *name* of the concept.41 Along with the name is a list of the types—here, just one type, *Item*—that can be specialized when the concept is instantiated. So in one instantiation, the items might become the les of a le system; in another, they might be the messages of an email client. + +e name is followed by a pithy summary of the concept's *purpose*. en comes the *state*, which organizes the things that comprise the concept into various structures. In this case, there are just two sets: *accessible*, the set of items that + +#### 4: concept structure + +``` +1 concept trash [Item] +2 purpose +3 to allow undoing of deletions +4 state +5 accessible, trashed: set Item +6 actions +7 create (x: Item) +8 when x not in accessible or trashed +9 add x to accessible +10 delete (x: Item) +11 when x in accessible but not trashed +12 move x from accessible to trashed +13 restore (x: Item) +14 when x in trashed +15 move x from trashed to accessible +16 empty () +17 when some item in trashed +18 remove every item from trashed +19 operational principle +20 after delete(x), can restore(x) and then x in accessible +21 after delete(x), can empty() and then x not in accessible or trashed +``` + +fig. 4.2 *e trash concept dened.* + +are accessible (outside the trash), and *trashed*, the set of trashed items, namely those that have been deleted but not yet permanently removed.42 + +e *actions* describe the dynamics, the behavior of the concept. Actions are instantaneous—that is, take no time—but any amount of time can pass between them. e description of an action says how the state is updated when the action occurs—for example, that deleting an item moves it from the set of accessible items to the set of trashed items. It may also include a precondition that limits *when* the action may occur—for example, that you can only delete an item if it is accessible but not trashed. (In addition to the actions that came up in the informal overview, the full description includes a *create* action for completeness, since the items that are deleted must somehow come into being.) + +Finally, there's the *operational principle*, which shows how the purpose is ful lled by the actions, and comprises one or more usage archetypal scenarios. In this case, there are two scenarios. One is for restoring: it says that aer you delete an item *x*, you can restore it and that item is then accessible. e other is + +for permanent removal: it says that aer you delete an item you can empty the trash and the item will be neither accessible nor in the trash. + +In a narrow technical sense, the operational principle doesn't add anything, because you can infer any scenario from the action specications. But for understanding *why* the concept is designed the way it is, and *how* it's expected to be used, the operational principle is fundamental.43 + +is can all be made more precise, with a mathematical model of behavior, and a formal notation for dening actions and operational principles. e details won't maer to most readers, so I've relegated them to the endnotes.44 + +## *e Trash Concept: Design Flaws Finally Fixed* + +is *trash* concept has been very successful, and is widely used. It appears in all graphical le managers (Mac, Windows, and Linux), in email clients (such as Apple Mail and Gmail), and in cloud storage systems (such as Dropbox and Google Drive). Not all instances of the concept oer the exact same behavior; in one common variant, items are permanently removed from the trash when a certain amount of time (say, 30 days) has elapsed since they were deleted. + +On the Macintosh, there is only one trash for the entire system, which has some unfortunate consequences. First, as you insert and remove external drives the contents of the trash grow and shrink as the deleted items belonging to those drives come and go. is can be mildly disconcerting: you might see an item in the trash and intend to restore it, but then nd that it has disappeared (because the drive has been ejected). + +A more substantive problem arises in the following scenario. Suppose you insert a USB key (a small external ash drive) and try to copy a le to it, but there's not enough room. So you decide to make some space by trashing some les already on the key. You aempt to copy the le to the key a second time, but it fails again. Trashing the les, you then realize, didn't actually make space by removing them permanently; to do that, you need to empty the trash. + +But now you have a dilemma. If you don't empty the trash, you won't be able to copy the le to the USB key. But if you do, you'll lose all the les you previously deleted from your hard drive, eliminating the option to restore them in the future. + +Amazingly, this problem was le unresolved for over 30 years, and was nally addressed in OS X El Capitan, the version of Apple's operating system issued + +#### 4: concept structure + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_24_Picture_1.jpeg) + +fig. 4.3 *Style concept in Microso Word (le) and Apple Pages (right).* + +in 2015. e resolution, which is perhaps more a workaround, was to oer a "delete immediately" action that allows you to permanently remove select items in the trash in one click. + +Another design aw involved how les in the trash were listed. For decades, there was no way to sort items in the trash by date of deletion. is meant that if you deleted a le accidentally, and then went to the trash hoping to restore it, you might be out of luck. If you wisely let the trash grow until you really needed the space, your trash would contain thousands of les. If you deleted a le and couldn't remember its name, you had no way to nd it. + +In 2011 (with OS X Lion), Apple let you sort items in a folder by their "added date," which, for the trash, corresponds to the date of deletion. (In Chapter 6, I explain this design in more detail, and show how it involves a clever fusion of concepts.) + +# *e Concept Behind Desktop Publishing: Style* + +Our second example is the concept of *style*, previously mentioned and shown for Adobe InDesign in Figure 3.2 and for Microso Word and Apple Pages in Figure 4.3. Its purpose is to make it easier to achieve consistent formaing. + +To use it, you assign styles to paragraphs in your document. For example, you might assign the style *heading* to each of the paragraphs that corresponds to a section heading. Now if you want to make all the headings bold, say, you change the format seing of the *heading* style to *bold*, and all the heading paragraphs will be updated in concert. + +at is the operational principle. It's actually a rather elaborate scenario, which involved creating multiple paragraphs, assigning a single style to more + +``` +1 concept style [Element, Format] +2 purpose +3 easing consistent formatting of elements +4 state +5 assigned: Element -> one Style +6 defined: Style -> one Format +7 format: Element -> one Format = assigned.defined +8 actions +9 assign (e: Element, s: Style) +10 set s to be the style of e in assigned +11 define (s: Style, f: Format) +12 set s to have the format f in defined +13 create s if it doesn't yet exist +14 operational principle +15 after define(s, f), assign (e1, s), assign (e2, s) and define (s, f'), e1 and e2 have format f' + fig. 4.4 e style concept dened. +``` + +than one of them, and then modifying that style. e operational principle is not always the simplest scenario, but it *is* the smallest one that demonstrates how the purpose is fullled. Obviously, to demonstrate consistent formaing of paragraphs, you need more than one paragraph. In the concept denition, the operational principle says that if you dene a style *s* to have format *f*, assign it to two elements *e1* and *e2*, and then redene *s* to have format *f'*, both *e1* and *e2* will now have that new format. + +To make this magic work, the concept state (see Figure 4.4) has to be quite complicated. ere are two mappings, one (which I've called *assigned*) that associates with each element the one style that is assigned to it, and the other (which I've called *defined*) that associates with each style the format that it de nes. In this description, a "format" is an abstract thing which you can think of as embodying all the formaing properties (bold, 12pt, Times Roman, etc.). A third component of the state, called *format*, is introduced as a shorthand, and stands for the combination of these two mappings (wrien *assigned.defined*), so that if an element *e* is assigned a style *s*, and style *s* is dened to have format *f*, then element *e* has format *f*. 45 + +I've dened two actions: one that assigns a style to an element, and one that denes the format for a given style. is second action is used both to create a style with a given format, and to update an existing style with a new format. ese might have been listed as separate actions; both approaches are valid. + +#### 4: concept structure + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_26_Picture_1.jpeg) + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_26_Picture_2.jpeg) + +fig. 4.5 *Style concept applied to slide themes in Microso PowerPoint (le) and color swatches in Adobe apps (right).* + +## *Stylish ings: Not Always Genuine* + +e concept of *style* is widely used. It appears in word processors such as Microso Word and Apple Pages, and desktop publishing tools such as Adobe InDesign and QuarkXPress, not only for styling paragraphs but also for styling ranges of characters. It's used in Microso PowerPoint for "color themes," which comprise a collection of predened styles for coloring the various kinds of text (e.g., titles, hyperlinks, body text) and backgrounds that appear on slides (Figure 4.5, le). e "classes" of the web's formaing language, Cascading Style Sheets (CSS), are styles too, where they provide a clean separation of formatting from content. + +Sometimes the use of the style concept is not immediately apparent. In Adobe InDesign and Adobe Illustrator, you can color elements by applying a color swatch (Figure 4.5, right). What you might not notice at rst is that the color swatches are modiable. If you color several elements with a red swatch, they will all become red—no surprise there. But now if you open up the red swatch and adjust its sliders to make it green instead, you'll see that all those red elements now become green. is is tremendously useful of course, because it + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-031-060/_page_27_Picture_1.jpeg) + +fig. 4.6 *Two concepts that look like style but are not: the Apple color picker (le) and styles in Apple TextEdit (right).* + +makes it easy to maintain a consistent palee, without having to sele on the palee's colors at the start. + +Other times, you come across something that appears to be an instance of a concept but turns out not to be. Apple's color picker, used in all of Apple's apps for selecting colors, looks very similar to the Adobe color swatches (see Figure 4.6, le), so we might guess that it's an instance of the *style* concept. But if you play with it, you'll discover that while you can delete a swatch or add a new one, you cannot *change* the color of an existing swatch. is ability to modify the format of a style is essential to the *style* concept. Without it, the concept cannot work at all—that is, its operational principle fails. Adding a new style has no eect on elements associated with an old style, so there's no way to change elements in concert once their format has been dened. + +Another near miss is the "style" of Apple's rudimentary word processor, TextEdit (Figure 4.6, right). e name suggests the *style* concept, and you can indeed not only create and delete named "styles" but you can modify them too. When you apply a style to a paragraph, however, it updates the formaing of the paragraph, but the style does not stick: there is no persistent association of the style with the paragraph. Changing a style thus only impacts its future uses, and not the paragraphs that it was applied to before.46 + +e *style* concept has been enriched in various ways, many of which involve layering of formats one on top of another: for example, partial styles, whose formats only set some properties (say making text italic but not aecting its size); style inheritance, in which one style is dened as an extension of another; and overrides, in which the format of an element is dened by a style with some overriding format. + +#### 4: concept structure + +``` +1 concept reservation [User, Resource] +2 purpose +3 manage efficient use of resources +4 state +5 available: set Resource +6 reservations: User -> set Resource +7 actions +8 provide (r: Resource) +9 add r to available +10 retract (r: Resource) +11 when r in available and not in reservations +12 remove r from available +13 reserve (u: User, r: Resource) +14 when r in available +15 associate u with r in reservations and remove r from available +16 cancel (u: User, r: Resource) +17 when u has reservation for r +18 remove the association of u to r from reservation and add r to available +19 use (u: User, r: Resource) +20 when u has reservation for r +21 allow u to use r +22 operational principle +23 after reserve(u, r) and not cancel(u,r), can use(u, r) +``` + +fig. 4.7 *e reservation concept dened.* + +## *A 19th Century Concept: Reservation* + +For our last example in this chapter, let's consider a familiar concept that existed long before soware. e *reservation* concept (Figure 4.7) helps to make e cient use of a pool of limited resources. e provider wants the resources to be used as much as possible; the consumer wants a resource to be available when they need it. + +It works like this. A consumer wanting to use a resource aempts to make a reservation. If there isn't already a reservation for that resource, the aempt succeeds. en later when the consumer comes to use the resource it will be available to them. + +To run this concept, you need to track the set of reservations, each being associated with the resource being reserved and the consumer who reserved it. In addition to making a reservation and then eventually using the resource, it's + +usually also possible for the consumer to cancel the reservation if they decide they don't need it aer all. + +Of course, this is belaboring the obvious. You've reserved tables at a local restaurant, books at a library, seats at a concert, etc., so none of this is new. But it's worth noting the form the explanation took. I started with the purpose (making ecient use of resources); then I gave you the operational principle (how a reservation is made and fullled); then the state (a set of reservations); and then nally the actions (*reserve*, *use* and *cancel*). + +e description of this concept uses a set (to remember which resources are still available) and a mapping from user to resources for the reservations. is mapping, unlike the mappings in the denition of the *style* concept, is one-tomany: a single user can reserve multiple resources. + +e actions also include those performed by the owner of the resources (the restaurant, for example), for providing and retracting a resource. Retracting a resource is tricky if it's been reserved. For simplicity, the denition says that you can't retract in this case, but in practice a beer design would allow the retraction, with an implicit canceling of the reservation. Finally, the operational principle adds a caveat that was missing in my informal account: you can only use the reservation if, having made it, you don't then cancel it before you use it. + +# *A Designer's Reservations* + +Like any other concept, *reservation* has many variants and additional features. Oen the resource is tied to a period of time. In a restaurant reservation system, the consumer chooses only the start time and the end time is implicit, determined by the restaurant owner (a tricky business, because seing dining times that are too long will mean serving fewer customers, but seing them too short will result in making people with reservations wait). e resource may be associated with a particular physical object (a seat on a plane, for example) or it may represent a fungible member of a class (such as a table anywhere in a restaurant, or any copy of a particular book). + +Because reservations are oen free, the provider may need to protect against users who reserve a resource but never use it. Restaurant reservation systems do this by adding a *no-show* action that is executed by the restaurant owner; if a customer has too many no shows, their account is suspended. Another strategy is to prevent consumers from reserving resources that cannot be used together, \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-031-060/concepts-031-060_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/concepts-031-060_meta.json new file mode 100644 index 0000000..c76c5f2 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-031-060/concepts-031-060_meta.json @@ -0,0 +1,2388 @@ +{ + "table_of_contents": [ + { + "title": "2: discovering concepts", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 164.72900390625, + 40.86962890625 + ], + [ + 287.11077880859375, + 40.86962890625 + ], + [ + 287.11077880859375, + 52.36962890625 + ], + [ + 163.86767578125, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Mental Models and Concept Design", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 140.61181640625, + 152.70599365234375 + ], + [ + 286.66070556640625, + 151.8662109375 + ], + [ + 286.66070556640625, + 164.70602416992188 + ], + [ + 140.61181640625, + 164.70602416992188 + ] + ] + }, + { + "title": "2: discovering concepts", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 165.375, + 40.86962890625 + ], + [ + 287.11077880859375, + 40.86962890625 + ], + [ + 287.11077880859375, + 52.36962890625 + ], + [ + 164.513671875, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 185.6162109375, + 467.7060089111328 + ], + [ + 265.8670349121094, + 466.98046875 + ], + [ + 265.8670349121094, + 479.7060089111328 + ], + [ + 185.6162109375, + 479.7060089111328 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.7624053955078, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "And some practices you can apply now:", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 47.373046875, + 201.938720703125 + ], + [ + 217.37054443359375, + 200.970703125 + ], + [ + 217.37054443359375, + 213.438720703125 + ], + [ + 46.51171875, + 213.438720703125 + ] + ] + }, + { + "title": "How Concepts Help", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 154.82373046875, + 106.2142333984375 + ], + [ + 297.7818908691406, + 105.6884765625 + ], + [ + 297.7818908691406, + 126.2142333984375 + ], + [ + 153.96240234375, + 126.2142333984375 + ] + ] + }, + { + "title": "Concepts Characterize Apps", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 168.60498046875, + 466.98046875 + ], + [ + 283.7220458984375, + 465.6796875 + ], + [ + 283.7220458984375, + 479.6959991455078 + ], + [ + 168.60498046875, + 479.98828125 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "3: how concepts help", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 172.48095703125, + 40.86962890625 + ], + [ + 279.87158203125, + 40.86962890625 + ], + [ + 279.87158203125, + 52.36962890625 + ], + [ + 171.61962890625, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Characterize Families", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 162.14501953125, + 407.14453125 + ], + [ + 290.2021484375, + 405.84375 + ], + [ + 290.2021484375, + 419.6959991455078 + ], + [ + 162.14501953125, + 420.15234375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "3: how concepts help", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 172.265625, + 40.86962890625 + ], + [ + 279.87158203125, + 40.86962890625 + ], + [ + 279.87158203125, + 52.36962890625 + ], + [ + 171.404296875, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Dierentiate Products", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 162.14501953125, + 346.9833984375 + ], + [ + 290.0818786621094, + 345.6826171875 + ], + [ + 290.0818786621094, + 359.6960144042969 + ], + [ + 162.14501953125, + 359.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Expose Complexity", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 154.82373046875, + 466.330078125 + ], + [ + 273.40203857421875, + 465.029296875 + ], + [ + 273.40203857421875, + 479.6959991455078 + ], + [ + 153.96240234375, + 479.6959991455078 + ] + ] + }, + { + "title": "3: how concepts help", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 172.265625, + 40.86962890625 + ], + [ + 279.87158203125, + 40.86962890625 + ], + [ + 279.87158203125, + 52.36962890625 + ], + [ + 171.404296875, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Dene Businesses", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 171.18896484375, + 512.1826171875 + ], + [ + 280.9079284667969, + 510.8818359375 + ], + [ + 280.9079284667969, + 524.6959991455078 + ], + [ + 171.18896484375, + 524.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "3: how concepts help", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 172.265625, + 40.86962890625 + ], + [ + 279.8658142089844, + 40.86962890625 + ], + [ + 279.8658142089844, + 52.36962890625 + ], + [ + 171.404296875, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Determine Costs and Benets", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 147.07177734375, + 256.5791015625 + ], + [ + 305.1004943847656, + 255.2783203125 + ], + [ + 305.1004943847656, + 269.1893005371094 + ], + [ + 147.07177734375, + 269.1893005371094 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.7624053955078, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Separate Concerns", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 156.54638671875, + 122.69598388671875 + ], + [ + 271.595947265625, + 122.2734375 + ], + [ + 271.595947265625, + 134.69598388671875 + ], + [ + 156.54638671875, + 134.69598388671875 + ] + ] + }, + { + "title": "Concepts Bring Reuse", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 182.6015625, + 77.69598388671875 + ], + [ + 270.2157897949219, + 77.0712890625 + ], + [ + 270.2157897949219, + 89.69598388671875 + ], + [ + 181.740234375, + 89.69598388671875 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.76220703125, + 40.86962890625 + ], + [ + 276.2377014160156, + 40.86962890625 + ], + [ + 276.2377014160156, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Help Identify Usability Snags", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 135.44384765625, + 77.69598388671875 + ], + [ + 293.0212097167969, + 76.4208984375 + ], + [ + 293.0212097167969, + 89.69598388671875 + ], + [ + 134.58251953125, + 89.69598388671875 + ] + ] + }, + { + "title": "3: how concepts help", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 172.265625, + 40.86962890625 + ], + [ + 279.8714904785156, + 40.86962890625 + ], + [ + 279.8714904785156, + 52.36962890625 + ], + [ + 171.404296875, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Ensure Safety and Security", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 152.0244140625, + 77.69598388671875 + ], + [ + 299.80023193359375, + 76.4208984375 + ], + [ + 299.80023193359375, + 89.69598388671875 + ], + [ + 151.1630859375, + 89.69598388671875 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts Ground Design Critique", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 145.77978515625, + 346.9833984375 + ], + [ + 282.9118957519531, + 345.6826171875 + ], + [ + 282.9118957519531, + 359.6960144042969 + ], + [ + 145.77978515625, + 359.6960144042969 + ] + ] + }, + { + "title": "3: how concepts help", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 172.265625, + 40.86962890625 + ], + [ + 279.8657531738281, + 40.86962890625 + ], + [ + 279.8657531738281, + 52.36962890625 + ], + [ + 171.404296875, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 185.83154296875, + 287.69598388671875 + ], + [ + 265.8670349121094, + 286.4970703125 + ], + [ + 265.8670349121094, + 299.6960144042969 + ], + [ + 184.97021484375, + 299.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.7623291015625, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "And some practices you can apply now:", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 46.72705078125, + 66.97467041015625 + ], + [ + 217.35894775390625, + 65.689453125 + ], + [ + 217.35894775390625, + 78.47467041015625 + ], + [ + 45.86572265625, + 78.47467041015625 + ] + ] + }, + { + "title": "Concept Structure", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 161.28369140625, + 106.2142333984375 + ], + [ + 290.90777587890625, + 105.6884765625 + ], + [ + 290.90777587890625, + 126.2142333984375 + ], + [ + 160.42236328125, + 126.2142333984375 + ] + ] + }, + { + "title": "Apple's Killer Concept: Trash", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 165.8056640625, + 406.494140625 + ], + [ + 285.5928955078125, + 405.193359375 + ], + [ + 285.5928955078125, + 419.6959991455078 + ], + [ + 164.9443359375, + 419.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "4: concept structure", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 170.32763671875, + 40.86962890625 + ], + [ + 280.6190185546875, + 40.86962890625 + ], + [ + 280.6190185546875, + 52.36962890625 + ], + [ + 169.46630859375, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "e Trash Concept: Design Flaws Finally Fixed", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 118.4326171875, + 212.3525390625 + ], + [ + 309.8151550292969, + 211.0517578125 + ], + [ + 309.8151550292969, + 224.69601440429688 + ], + [ + 118.4326171875, + 224.69601440429688 + ] + ] + }, + { + "title": "4: concept structure", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 171.404296875, + 40.86962890625 + ], + [ + 280.6249084472656, + 40.86962890625 + ], + [ + 280.6249084472656, + 52.36962890625 + ], + [ + 170.54296875, + 52.36962890625 + ] + ] + }, + { + "title": "e Concept Behind Desktop Publishing: Style", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 132.42919921875, + 421.453125 + ], + [ + 320.4653015136719, + 420.15234375 + ], + [ + 320.4653015136719, + 434.7060089111328 + ], + [ + 131.56787109375, + 434.7060089111328 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "4: concept structure", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 171.61962890625, + 40.86962890625 + ], + [ + 280.6249084472656, + 40.86962890625 + ], + [ + 280.6249084472656, + 52.36962890625 + ], + [ + 170.75830078125, + 52.36962890625 + ] + ] + }, + { + "title": "Stylish ings: Not Always Genuine", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 153.96240234375, + 316.98638916015625 + ], + [ + 298.908203125, + 316.08984375 + ], + [ + 298.908203125, + 328.98638916015625 + ], + [ + 153.10107421875, + 328.98638916015625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 152.67041015625, + 40.86962890625 + ], + [ + 276.27099609375, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 151.80908203125, + 52.36962890625 + ] + ] + }, + { + "title": "4: concept structure", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 170.9736328125, + 40.86962890625 + ], + [ + 280.6249084472656, + 40.86962890625 + ], + [ + 280.6249084472656, + 52.36962890625 + ], + [ + 170.1123046875, + 52.36962890625 + ] + ] + }, + { + "title": "A 19th Century Concept: Reservation", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 150.08642578125, + 389.70599365234375 + ], + [ + 301.28204345703125, + 388.6083984375 + ], + [ + 301.28204345703125, + 401.7060241699219 + ], + [ + 150.08642578125, + 402.2666015625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.7681121826172, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "A Designer's Reservations", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 161.71435546875, + 361.9423828125 + ], + [ + 265.61993408203125, + 360.6416015625 + ], + [ + 265.61993408203125, + 374.6960144042969 + ], + [ + 160.85302734375, + 374.6960144042969 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 75 + ], + [ + "Line", + 34 + ], + [ + "Text", + 6 + ], + [ + "Picture", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 36 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 35 + ], + [ + "SectionHeader", + 2 + ], + [ + "Text", + 2 + ], + [ + "ListItem", + 2 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 64 + ], + [ + "Line", + 26 + ], + [ + "ListItem", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Text", + 2 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 66 + ], + [ + "Line", + 29 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 48 + ], + [ + "Line", + 19 + ], + [ + "Text", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 81 + ], + [ + "Span", + 72 + ], + [ + "Line", + 26 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 2 + ], + [ + "Form", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 60 + ], + [ + "Line", + 21 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 57 + ], + [ + "Line", + 23 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 91 + ], + [ + "Line", + 36 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 73 + ], + [ + "Line", + 36 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 73 + ], + [ + "Line", + 34 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 61 + ], + [ + "Line", + 29 + ], + [ + "TableCell", + 8 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Form", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 84 + ], + [ + "Line", + 34 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 35 + ], + [ + "Text", + 4 + ], + [ + "PageHeader", + 1 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 78 + ], + [ + "Line", + 35 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 35 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 36 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 82 + ], + [ + "Line", + 36 + ], + [ + "ListItem", + 6 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 36 + ], + [ + "Line", + 12 + ], + [ + "ListItem", + 3 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 60 + ], + [ + "Line", + 29 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 22 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 121 + ], + [ + "Line", + 40 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Code", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 36 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 68 + ], + [ + "Line", + 27 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 145 + ], + [ + "Line", + 40 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Code", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 39 + ], + [ + "Line", + 21 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 2 + ], + [ + "Text", + 2 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 29 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 111 + ], + [ + "Line", + 39 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 2 + ], + [ + "Code", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 85 + ], + [ + "Line", + 36 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-031-060" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_11_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_11_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b96e0ee0df455e4cf20cb78345fd690ccb0a2202 GIT binary patch literal 60328 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∨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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_14_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_14_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6f1789448f20b6a089a1e2ed231e1a59ecdb5e8f GIT binary patch literal 56948 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_28_Picture_10.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_28_Picture_10.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c7fc97553bd3a3b877dcff35a19209dbd6f0a691 GIT binary patch literal 16941 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 HKfnG92ix4S literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_6_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_6_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c7c3a60f924c57e76dc09960840b4fa1e5fb417d GIT binary patch literal 13235 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 SrTTvoaQQ#|CnV9k+5Z8U7$WNc literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_8_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_8_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..53e4f40e522b90e2f4f8fab003fe221207b592ce GIT binary patch literal 22340 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 TwKabIw~|o(e+aGcd&B<)uHtDd literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_8_Picture_2.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_8_Picture_2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..682377d4ae8851c47138a91237a389420ca964fb GIT binary patch literal 12208 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_9_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/_page_9_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6235614e84695938bd8af85aac4364f5ad2156b5 GIT binary patch literal 44773 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/concepts-061-090.md b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/concepts-061-090.md new file mode 100644 index 0000000..a9e3965 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/concepts-061-090.md @@ -0,0 +1,482 @@ +#### 4: concept structure + +such as booking tables at two dierent restaurants on the same night. Airlines have complex rules for detecting conicting reservations, which lead to strange anomalies.47 + +e *reservation* concept is so useful that it has applications in many dierent domains. In railway signaling, safety is achieved by requiring trains to reserve segments of track before entering them; that way, the system can ensure that no two trains have ever occupy the same segment at the same time. And in networking, there is a protocol called RSVP (Resource Reservation Protocol) that allows routers to reserve bandwidth so they can guarantee a certain level of network performance (called "quality of service") when they need it. + +#### *Lessons & Practices* + +Some lessons from this chapter:48 + +- · A concept denition includes its name, purpose, state, actions and operational principle. e operational principle, showing how the behavior fullls the purpose, is the key to understanding a concept, and may not be the simplest scenario. +- · Every concept was invented by someone at some time, for some purpose. Most concepts in widespread use have undergone extensive development and renement over time. +- · Most concepts are generic, and can be applied in many dierent contexts on dierent kinds of data. Genericity aords reuse, and helps distill concepts to their essence. +- · Concepts can be designed and understood independently of one another, simplifying soware design by allowing a design to be broken into distinct subproblems, many of which will be solvable by reusing existing concepts. + +And some practices you can apply now: + +- · To design or analyze a soware product, start by identifying the concepts. For each concept, choose a good name, nd a pithy summary of the purpose, and formulate an operational principle. To delve more deeply, list the actions, and gure out what state is needed to support them. +- · If your concept lacks interesting behavior—you can't come up with a compelling operational principle, or can't even list actions—it may not be a concept at all, or you may need to expand it to identify the real concept. + +- · Take a database schema or class structure for a system, represent it as an entity-relation diagram, and then break it into smaller diagrams (overlapping on the entities but not the relations), each of which embodies some piece of functionality. ese smaller diagrams are the states of distinct concepts. +- · Conversely, to design a data model, rather than treating it as a monolith, develop local "micromodels" for each of your concepts independently, and then merge them on the common entities to form the global model. +- · As a fun and rewarding exercise, pick an interesting concept and research its history. It might be a concept (like *reservation*) that exists independently of soware, or it might be a concept in your favorite app. When was it invented and by whom? How has it changed over time? + +# Concept Purposes + + Purposes maer in all aspects of life because they help us set direction, explain ourselves to others, and reach consensus in collaborations. Design is no different from any other activity in this respect: you can't design something well without knowing *why* you want it in the rst place.49 + +For concepts, purposes are essential too. For a designer, the purpose is what justies the eort of designing and implementing the concept. For a user, it tells you why you might want it—and if you don't know what something is *for*, it's hard to understand *how* you would use it. + +Before you dismiss this as obvious, consider that the designers of soware rarely articulate purposes beyond those of the product as a whole. I'm proposing a more radical idea here. It's not enough to know why you're designing a product. You need to have a *why* for each element of your design, a purpose for every concept. + +Finding purposes for concepts is hard work, but it's amply rewarded in the insights it gives you about the problem you're trying to solve, and in forcing you to focus on what maers.50 In this chapter, we'll see how subtle it can be to gure out the purpose of a concept, and how failing to formulate or convey a straightforward purpose can have nasty consequences. In soware especially, with its capacity for boundless complexity, it's easy to get mired in details and lose track of the big picture. inking about purposes helps you draw back and regain your bearings. + +Once you have a purpose, you can ask whether your concept fullls it. As we'll see, that's not always straightforward, because a purpose isn't a simple description of an expected behavior. It's an articulation of a need, and that need can vary depending on the user and the context of use. *Mists*, in which forms fail to t their context—or in our case, concepts fail to fulll their purposes are oen unpredictable, because neither needs nor contexts of use can be fully anticipated at design time, let alone reduced to precise logical statements. + +Concepts don't eliminate this problem; their value is that they give you a framework that mitigates it, by elevating the role of purposes, and by providing a structure for organizing the knowledge accumulated through experience of design and use. In this chapter, I'll show some of the benets of thinking in terms of purposes; later, in Chapter 9, I'll revisit the relationship between purposes and concepts and rene some of these ideas. + +### *Purposes: First Step to Clarity* + +To be easy to use, a concept must have a clear purpose. And the purpose can't be the designer's secret; it must be shared with the user. + +When I upgraded to the most recent version of Apple Mail, I noticed a new VIP buon, and looked it up. Here's what Apple's help guide said: + +*You can easily keep track of email messages om people important to you by making them VIPs. Any messages in the Inbox om a VIP (even sent as part of a conversation) are displayed in a VIP mailbox…* + +In just two sentences, they've given me the purpose of the *vip* concept (tracking emails from people important to me), and most of the concept's operational principle (it seems I can make someone a VIP, and then, subsequently, messages from them will appear in a special mailbox). + +In contrast, I wanted to understand what a section is in Google Docs, so I looked up the word "section" in the online help. e rst disconcerting thing was that no article about the *section* concept appears. e closest was an article entitled "Work with links, bookmarks, section breaks, or page breaks." I scrolled through that article and found this: + +*If you want to break up ideas or set images apart om text in your document, you can add section or page breaks in Google Docs.* + +at's it, as far as explaining the purpose goes. I might have guessed that sections could be used to break up ideas, so that doesn't help me. e reference to images made me a bit nervous, because it seemed to be suggesting that I couldn't have images that are "apart" from my text without having sections. In short, it le me no wiser about what sections are for. + +It turns out that the purpose of *section* is to allow dierent parts of your document to have dierent margins, headers and footers, and to have subsequences of pages with their own page numberings. You *can* have images separate from + +text without using any sections; what sections let you do is change the margins of an image independently of the margins of the text around it. + +### *Criteria for Purposes* + +Dening compelling purposes for concepts is hard. Because purposes are about human needs in a human context, they cannot be assessed in a logical or mathematical way, but must always be informal and rough-edged. Nevertheless, here are some criteria that can help: + +*Cogent*. A purpose must be a cogent expression of an intelligible need, and not just a vague hint about some desires the user might have or tasks she may want to perform. e phrases used in the explanation of the purpose of the Google Docs *section* concept—"break up ideas" and "set images apart from text"—give us only a hazy idea of what the user is trying to do. In contrast, "allowing dierent margins on dierent pages" is prey clear. + +*Need-focused*. A purpose must express a need of the user, and not just recapitulate a behavior whose signicance is unclear. Take the *bookmark* concept that browsers oer. It's not helpful to say that the purpose of a bookmark is to "mark a page" or to "save a favorite page": these just beg the question of why you would want to do such things. Instead, the purpose might be to "make it easier to revisit a page later," or perhaps to "share a page with another user." Don't worry if a purpose isn't precise initially; if your formulation immediately raises questions (may "revisiting later" be on a dierent device?), that's a good sign of progress! + +*Specic*. A purpose must be suciently specic to be relevant to the design of the concept at hand. You could say that any concept's purpose is to "make the user happy" or "let the user work more eectively," and such expressions are indeed cogent (since we know exactly what they mean) and need-focused. But clearly such purposes would not be a helpful basis for a concept design because they are not specic enough to distinguish one concept from another. + +*Evaluable*. A purpose should provide a yardstick to measure a concept against. You should be able to take the operational principle and easily assess whether it fullls the purpose. For the *trash* concept, the purpose "allow undoing of deletion" is clearly supported by the scenario in which a le is deleted and then restored from the trash. In contrast, the purpose "prevent accidental + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_5_Picture_1.jpeg) + +fig. 5.1 *Call forwarding: a design puzzle (top) and two solutions (below). If A is forwarded to B, and B is forwarded to C, does a call to A get forwarded to B or to C?* + +removal of les" would not be very helpful, because we'd need additional information about user behavior, notably whether users might not only delete les accidentally but also empty the trash accidentally. + +## *Purposes Resolve Design Puzzles* + +Sometimes, a design you're working on presents multiple options that seem equally plausible, and there seems to be no rational basis for selecting one over another. In many cases, this dilemma is a result of not understanding the purpose deeply. Once the purpose is understood, it becomes clear which option is the right one. + +Take *call forwarding*, a telephony concept that allows calls to one line to be automatically transferred to another. Suppose we have three users with phone lines *A*, *B* and *C* (Figure 5.1). Now imagine that our rst user forwards her line to *B*, so that calls to *A* are now redirected to *B*. What if the second user now forwards to *C*, so that calls to *B* go to *C*? If a call comes in to *A*, should it be forwarded to *B* (based on the rst user's forwarding request), or should it be forwarded to *C* (based on the requests of both users)? + +e solution to this dilemma is to recognize two distinct purposes for call forwarding. One, which might be called *delegate*, is to allow a person to delegate their calls to somebody else. In this case, if the owner of *A* has delegated to *B* and *B* has delegated to *C*, then clearly a call to *A* should be forwarded two steps + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_6_Picture_1.jpeg) + +fig. 5.2 *A physical analogy: do faucet controls have purposes?* + +to *C*. e other, *follow me*, is to allow a person to transfer calls when they are working in a dierent location. In this case, if the owner of *A* has moved to the location of *B*, and the owner of *B* is now in the location of *C*, a call to *A* should clearly be forwarded only to *B*. 52 + +Articulating these two distinct purposes reveals that there are two distinct concepts, *delegate forwarding* and *follow-me forwarding*, each serving its own purpose. eir behaviors may dier in other respects too. e *delegate forwarding* concept, for example, might support an option in which the call rings rst at *A* and is only transferred to *B* if unanswered. + +### *Concepts without Purposes: Faucets & Editor Buers* + +A concept may have no compelling purpose at all. is casts some doubt on its utility, but people can nd value even in dubious concepts. e *poke* concept was one of Facebook's earliest, and nobody ever really knew what it was for.53 + +Concepts more commonly lack purposes because their design was motivated not by a genuine user need, but because it was easier to build it that way. A physical analogy illustrates the point. Compare two kinds of common mixer faucets (Figure 5.2). In both kinds, there is a single outlet pipe that mixes the hot and cold water. + +In the older kind (on the le), this pipe is fed by two separate faucets, marked "hot" and "cold." Viewed as concepts, these two faucets have no compelling purposes. It's clear what they *do*; opening the hot faucet increases the amount of hot water mixed in. But the user wants to set the temperature and ow of the water emerging from the pipe, and the controls have no simple relationship to those needs. If you want to increase the temperature, you can open up the hot + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_7_Picture_1.jpeg) + +| New | ₩N | +|-----------------|-------------| +| Open | % O | +| Open Recent | > | +| Close | ₩W | +| Save | ₩S | +| Duplicate | 企器S | +| Rename | | +| Move To | | +| Revert To | > | +| Export as PDF | | +| Share | • | +| Show Properties | 7 ₩P | +| Page Setup | ΰ₩Ρ | +| Print | ₩P | +| | | + +fig. 5.3 *Apple le menu: the "save as" action in the old menu (le) reected the buer concept, no longer present in the new menu (right).* + +faucet, but then the ow will increase, and you'll need to close the cold faucet. Likewise, if you just want to increase the ow, you need to open up both faucets, adjusting them carefully to reestablish the desired temperature. In both cases, a series of multiple adjustments is generally needed. + +In the newer design (on the right), there is a single faucet that has two independent controls: rotating it adjusts the *temperature* and moving it up and down adjusts the *ow*. ese controls thus have clear purposes that match the user's needs.54 + +Moving to a soware example, the familiar concept of the *editor buffer* once fullled a need, but it's no longer a compelling one. At one time, disks were slow and the only way to make a fast text editor was to have the user edit text in a buer in memory, periodically saving the buer to a le. But this buer had no apparent purpose to the user, and indeed it was confusing to non-technical users that the text in the buer was vulnerable to being lost if the application crashed, or were closed before saving to le. + +Presumably this is why Apple changed the behavior of all its applications (in OS X Lion, 2011) so that changes are wrien to disk from the start, and "saving" to a le just entails naming the le. In other words, the purposeless *editor buffer* concept was eliminated.55 With buers gone, the *save-as* action (in which the contents of the buer were saved to a new le of a given name) no longer made sense; users were now expected to duplicate the le and rename it (Figure 5.3).56 + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_8_Picture_1.jpeg) + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_8_Picture_2.jpeg) + +fig. 5.4 *An unaering tweet unintentionally endorsed due to a misunderstanding over the purpose of Twier's favorite concept.* + +In all of these examples, the purposeless concepts are the result of an underlying mechanism being exposed to the user. ere's nothing wrong with a text editor being implemented with a buer. On the contrary, by applying edits rst to a buer kept in memory, and writing them out to a le on disk in the background, the editor may be able to oer much beer performance. What's wrong is burdening the user with these complications. + +In short, concepts, unlike internal mechanisms, are always user-facing, and must have purposes that make sense not only to the programmer but also to the user. + +# *Concepts with Unclear Purposes: Twier's Favorites* + +If the purpose of a concept is unclear to the user, it will likely be used in a way that the designer did not intend. Twier's *favorite* concept oers a compelling example of this problem. + +In May 2017, Andy Ostroy, a political analyst who writes for *HuPost*, joked about the president's relationship with this wife in a tweet (Figure 5.4). She responded by clicking on the tweet's heart icon, apparently (and presumably unintentionally) signaling to the Twier public that she liked the tweet. Needless to say, when she realized what had happened, she retracted her endorsement. + +At issue here is Twier's *favorite* concept. Twier had in fact changed the visual design of the concept in 2015, replacing a star icon by a heart.57 Apparently + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_9_Picture_1.jpeg) + +fig. 5.5 *Twier's response to problems with the "favorite" concept: a new "bookmark" concept, accessible through the share menu (on the right), and the original concept, renamed "like," still represented by a heart icon (on the le).* + +they thought this would resolve users' confusions about the concept, but it evidently didn't help this particular user. e real problem was a confusion about the very purpose of *favorite*. + +Many users, it seems, thought that *favorite* oered a way to save tweets for your own reference. is was a reasonable assumption given that the term "favorite" is usually applied to a concept that has exactly this purpose. It turned out, however, that the actual purpose of *favorite* was to record your approval of a tweet for others to see—which is the purpose of the concept more commonly called *like* or *upvote*. + +Twier solved the problem in 2018 by renaming the *favorite* concept, calling it *like*, a name appropriately aligned with its purpose (Figure 5.5). To address the other purpose of allowing users to mark tweets to be saved for (private) future reference, they introduced a new concept called *bookmark*, which is accessed (confusingly) through a tweet's "share" icon (presumably on the grounds that bookmarking a tweet is sharing it with yourself?). + +# *Exploiting Confusing Concepts: e Nanny Scam* + +A concept whose purpose is misunderstood is likely to be misused. e concept of *available funds* was well intentioned, but has made a rich target for scammers. When a check is deposited, some portion of the value of the check appears in the depositor's account and is immediately available for withdrawal. + +In the US, this was mandated by an Act of Congress passed in 1987 designed to prevent banks from delaying the processing of deposits. + +Unfortunately, many people confuse this concept with the concept of a *cleared check*, and seeing the increase in balance, believe that the check has been irrevocably validated. Criminals ruthlessly exploit this confusion. In one version known as the "nanny scam," a newly hired home help expecting an initial payment for moving expenses (of say \$1,000) receives a check for a much larger amount (say \$5,000) and deposits it. e employer then sends a message asking for the excess to be wired back. Aer the money has been sent back using the available funds, the check bounces. e deposit is retracted, eectively withdrawing the previously available funds, leaving the poor employee \$4,000 in the red. + +# *Can is Concept Really Be So Hard? e Story of Image Size* + +Sometimes a single concept with an unclear purpose can produce ripples of confusion. Take the concept of *image size* and the associated idea of "resolution." Even organizations that sponsor photographic contests—which you'd assume would understand these things—sometimes get this wrong, and stipulate that images must have a minimal resolution. + +e problem is that the resolution of an image tells you nothing about its quality unless you also know its size. A resolution of 360 pixels per inch might seem impressive, but if the image is only the size of a postage stamp, that's not enough to get a sharp postcard-sized print. + +To grasp this, you need to understand two concepts. e rst is a concept I'll call *pixel array*, the ubiquitous (but once radical) idea that a picture can be represented as a two-dimensional array of colored pixels. Its purpose is image editing, and its actions include adjustments (say to contrast or lightness), which change the values of pixels, and resampling (a much more complicated action), which changes the *number* of pixels, usually to reduce the quality (by replacing several pixels with one) or to increase the quality (by interpolating additional pixels to make the image print beer at larger sizes). + +e second concept you need to understand is *image size*. Its purpose, which is to allow a physical size to be associated with the image, is straightforward but also strange, since we don't tend to think of digital images as having physical sizes. e image size determines the default size of the image when printed, and + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_11_Figure_1.jpeg) + +fig. 5.6 *Image size dialog in Photoshop. If you check the resample box (top le), and change the resolution om 300 to 600, the pixel dimensions double (boom le). If you change the resolution with the resample box unchecked (top right), the pixel dimensions stay the same but the width and height are halved (boom right).* + +its size on the page when imported into a desktop publishing app such as Adobe InDesign. In all these applications, however, the image can usually be manually scaled, so this makes *image size* a concept with a tenuous purpose. + +Finally, image resolution is not a concept in its own right, but rather is a measure of printing quality assuming the image is printed at its given image size. So if the *pixel array* is 1,000 pixels square, and the *image size* is 10 inches square, the resolution is 100 pixels/inch. + +If you're not already confused by this, take a look at the dialog in Photoshop (Figure 5.6) for modifying image size, dimensions and resolutions. At the top le, you can see the various parameters and conrm their relationships: at a width of 20 inches and 6000 pixels, the resolution is 300 pixels per inch. e symbol of a lock and vertical bars indicate which parameters are mutually constrained. When *Resample* is selected (the default, on the le), doubling the resolution doubles the pixel dimensions; when not selected (right), it halves the image width and height instead. + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_12_Figure_1.jpeg) + +fig. 5.7 *e tagging concept in Facebook: no mention of why you should do this.* + +Even for experts, these controls are complicated and error prone. e concept of *image size* with its questionable purpose seems to be the source of all this complexity.58 + +### *Whose Purpose? Mine or Yours?* + +If you're trying to understand the purpose of a concept, a good question to start with is: *whose* purpose exactly is being served? + +In social media apps, many concepts purport to be for the user's benet, but in reality are designed to raise the company's prots, by expanding the social graph, increasing usage, or by selling more advertisements. + +e *notification* concept, for example, purports to provide users with timely updates to keep them informed. But its purpose is oen instead to increase "user engagement." A clear tip-o, in Facebook's case, is that while a panoply of options is available to control which events produce notications, there is currently no option to turn notications o completely. + +e concept of *tag* likewise may seem to serve a straightforward purpose: making it easier to nd posts that are about particular people. Note that when Facebook prompts you to tag someone in a photo, tellingly neither the purpose nor consequences of tagging are explained (Figure 5.7). Again, there is a hint to the real purpose if you are aentive. By default, tagging a post makes it visible not only to the friends of the person doing the tagging (as you'd reasonably + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_13_Figure_1.jpeg) + +fig. 5.8 *Quora's disingenuous explanation for why reading posts requires sign-in.* + +expect) but also to all the friends of the person tagged. is neatly encourages links between two groups of friends, adding connections in the social graph. + +e "Chip and PIN" security mechanism for credit cards involves two concepts with apparently distinct purposes. e *chip* concept seems designed to reduce fraud from fake cards (since it's harder to make a card with a chip inside than a card with a magnetic strip); and the *pin* concept is presumably for reducing fraud from stolen cards (since a thief will not know the PIN). + +It turns out, however, that the underlying protocol is trivially broken and is susceptible to a man-in-the-middle aack. e reluctance of banks to x (or even admit to) such problems suggests that the purpose of the *chip* concept may never have been to eliminate fraud, but rather—by giving a misleading impression that their systems are secure—to shi the blame for any fraud to consumers and retailers, and thus reduce costs to the banks themselves.59 + +# *Deceitful Purposes* + +Sometimes designers actively misrepresent the purpose of a concept, hiding a more insidious purpose: + +· All question-and-answer sites have a concept of *user*, whose purpose is presumably to deter spam and low-quality answers. But many limit access so that it isn't even possible to view existing questions and answers, let alone post new ones, without rst logging in. In explaining this, Quora (Figure 5.8) says: "Why do I need to sign in? Quora is a knowledge-sharing community that depends on everyone being able to pitch in when they know something." is dissembling hides purposes that are less likely to appeal to the user, such as collecting data about them, creating a more sticky experience, or pitching more focused advertisements. + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_14_Figure_1.jpeg) + +fig. 5.9 *A ight reservation app showing non-stop and direct options: note the parenthetic explanation of the direct ight concept next to the checkbox at the boom le.* + +- · A *push poll* presents itself as if it were a standard poll, whose purpose is to derive some useful information by aggregating responses. But instead its purpose is to win you over, usually for political gain, by asking you suggestive questions that are craed to shi your viewpoint. +- · e concept of *direct flight* was invented by airlines in response to early reservation systems that favored routes with a single ight number. By maintaining the same ight number across segments, "direct ights" allowed airlines to make those trips more prominent and thus more likely to be purchased. But the poor consumer misunderstanding this purpose may not realize that a direct ight is not necessarily non-stop. Nowadays, most ight aggregation sites have dropped this confusing concept, and those that use it at least add an explanation for unwary customers (Figure 5.9) and promise no change of plane, which the original concept did not guarantee. + +# *Mists: When Purposes Aren't Fullled* + +e essence of design is the challenge of creating a *form* for a given *context*. e desired outcome is a perfect "t" between form and context, in the way that a piece in a toddler's wooden puzzle board ts snugly into its hole.60 + +Following this analogy, the purposes of soware design describe the shape of the hole. e problem is that this shape is complex and not fully known, so it cannot be described fully or accurately. Ultimately, the only way to learn about + +the shape of the hole is to design a puzzle piece, aempt to insert it, and discover the *mists*: the ways in which the piece doesn't quite t. + +Because the exact shape of the hole is unknowable, testing is essential. It is simply not possible to predict the eectiveness of a design in full until you try it in the real world. But at the same time, because of the complexity of the shape—and the fact that any given test only reveals some aspects of it—testing cannot be a panacea.61 + +You can never fully predict all the potential mists of a design, but you can at least build on your experience of nding mists in the past. So while a full enumeration of requirements is impossible, an enumeration of negative requirements—mists to avoid—is feasible. + +Concepts mitigate the risk of mist in two ways. First, by breaking a design into concepts, the challenge of achieving t for the design as a whole is reduced to a set of more manageable subproblems. + +Second, concepts embody needs that occur repeatedly, and provide commonality across contexts. e mists that are learned in one context for a concept usually apply in another. For example, a mist of the *reservation* concept is that someone might hog multiple slots and not intend to use them all. If you're building a system that includes reservations, it helps to be reminded of this potential snag at design time, and to consider the various features that are typically used to mitigate it, such as penalizing no shows and preventing overlapping reservations (for example, of tables at dierent restaurants on the same night). + +In the next few sections, we'll study some informative mists. I've selected examples that illustrate the variety of mists that can arise, and that suggest different strategies for preventing them. + +# *A Lethal Mist due to Poor Design* + +In December 2001, an American soldier in Afghanistan called in an air strike on a Taliban outpost, using a device called a PLGR (Precision Lightweight GPS Receiver, pronounced "plugger") to generate the coordinates of the target. While he was aempting to perform the calculation, the device's baeries died, so he replaced them. What he restarted the device, it seemed that the calculated coordinates were still available. + +What he hadn't realized was that the device was designed to default to its own GPS location on restart. Consequently, the hapless user called in a strike + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_16_Picture_1.jpeg) + +fig. 5.10 *A GPS receiver (le) similar to the one that caused the accident in Afghanistan in which the operator unwiingly set the target of a bombing run to his own position, and the warning messages (right) that are now displayed.* + +on his own position, and a 2,000-pound, satellite-guided bomb landed not on the Taliban outpost but on an American position, killing three soldiers and injuring 20 others.62 + +In this case, the mist might have been predicted had the device designers considered the interactions between the *battery* concept and the *target* concept.63 Any number of straightforward modications to the design might have averted disaster; the one chosen and implemented in later versions of the device was to display a warning message in this scenario. (e replacement device, known as the "DAGR," is shown with the new warning messages in Figure 5.10.) + +# *A Mist om a Changing Context* + +With the advent of the pandemic, people began to give all their slide presentations online through communication apps such as Zoom, Google Hangouts and Microso Teams. An annoying mist appeared. When you played your presentation, the slide presentation app would switch to full screen mode. e panels of the communication app either disappeared—leaving you disconcertingly giving a talk without knowing if you still had an audience—or obscured the slides, making it hard for you to see what you were showing. + +Apple's elegant solution to this mist was to augment the *slideshow* concept in Keynote, its slide presentation app, with a "play in window" mode, in which the slides appear in a regular window that no longer occupies the entire screen. + +| | A | В | +|---|----------------------|--------| +| 1 | Item | Cost | +| 2 | Apples | \$3.00 | +| 3 | Bananas | \$1.50 | +| 4 | Milk | \$2.00 | +| 5 | | | +| 6 | Total billable hours | \$6.50 | +| ⊜ | | | + +fig. 5.11 *Dening a range in Apple Numbers: range highlighted (le) and formula (right).* + +is example shows how mists arise when the context of use evolves. A similar mist arose in the problem I mentioned earlier (in Chapter 4) in Apple's *trash* concept—being unable to recover space on a USB key without permanently removing all the les deleted from the main drive of your computer. When the trash was designed forty years ago, personal computers did not have external drives (let alone tiny thumb drives). + +# *An Old Mist Returns* + +In a spreadsheet, a formula that computes its result from a contiguous series of cells can be expressed using the *range* concept. Instead of dening a sum of three cells as *B1 + B2 + B3*, for example, you can write something like *SUM(B1:B3)* (Figure 5.11). + +e purpose of *range* is not to save typing when you enter the formula, or to make the formula more succinct when viewed—both of which could be achieved (at the linguistic level) without introducing a new concept. Rather, it's to allow the formula to accommodate the addition and deletion of cells in the series. If you add a row between rows 1 and 2, in order to include a new cell in the series, the explicit version of the formula would have to be changed manually to read *B1 + B2 + B3 + B4*, but the range formula would adjust automatically to *SUM(B1:B4)*. e operational principle of *range* may thus be stated as: + +*If you create a formula that depends on a range, and then update the spreadsheet by adding a row or a column within the range, the formula is automatically adjusted to include the new row or column.* + +e catch is how "within the range" is dened. You might think of the range as bounded by two markers, one before the rst cell in the range, and one aer the last cell. An addition "within" the range, therefore, could include adding a row + + + +| | Task | Time (hours) | +|----------------------|---------------------|--------------| +| Jan 1, 2018 | Interviewing client | 4 | +| Jan 3, 2018 | Making slides | 5 | +| Jan 7, 2018 | Writing report | 3.5 | +| | | | +| Total billable hours | | 12.5 | + +fig. 5.12 *A workaround for the range problem: by adding a dummy row, you can add new rows to the end of the range by inserting them above the dummy row.* + +below the last row in the range (between that last row and the marker) and or adding a row above the rst row. + +Apple's spreadsheet app, Numbers, oers two separate actions for adding rows in general, one for below the current row and one for above (and correspondingly for adding columns). ese actions are bound to keyboard shortcuts, so extending a range should be quick and easy. + +Selecting the last row of a range and adding a row *below* it should include the new row in the range, but selecting the row one below the range and adding a row *above* it should exclude the new row from the range. is might sound complicated, but it's actually very intuitive: if your selection is on one of the rows in the range, then whatever action you perform, whether adding a row above or below, the new row should be in the range. But if you start outside the range, the new row should also be outside. + +is in fact was exactly how Numbers *used* to behave (in the 2009 version). e current version treats the rst and last row of the range dierently. If you add a row above the rst row or below the last row, it will not be in the range, irrespective of which row was selected and which row addition action (add above or add below) you performed. + +is mist is a major annoyance in practice. I have a spreadsheet in which I track my billing for consulting projects (Figure 5.12). Each row of the sheet corresponds to a billable period of work, with a summary row that gives the total amount of time spent. Every time I complete a piece of work, I add a row to the sheet. In the old Numbers, I would just select the row representing the last period that I completed, issue the *add row below* command, and complete the elds in the new row. + +In the new Numbers, this no longer works. I can add the new row just before the last in the range, and then drag the last row up, placing it before the new row. Or I can add a spurious, empty row aer the last entry, and include it in the formula (see the shaded region denoting the formula's scope i[n Figure 5.12\)](#page-18-0). is happens to work, but only because the formula that sums the time periods happens to treat the empty cell in the dummy row as a zero. Microso Excel, incidentally, has exactly the same aw (and lacks separate actions for adding rows above or below the current row). + +e mystery of this mist is not so much why Apple got it wrong, or even what it might have done to catch it (a careful consideration of the operational principle might have revealed it). More surprising is that Apple's designers knew the right design, and then apparently forgot about it. Perhaps if Apple's designers had recorded their insights in a concept catalog their best ideas would have more readily survived the transition from version to version. + +### *Lessons & Practices* + +Some lessons from this chapter: + +- · Concept design begins by asking, for each proposed concept, the simple question: what is it for? Answering it can be hard, but pays dividends. +- · For users, knowing a concept's purpose is a prerequisite to using it. Many manuals and help facilities explain details of behavior but not purposes, with unhappy consequences especially for novices. +- · A concept's purpose should be cogent, need-focused, specic and evaluable. Metaphors are rarely useful for explaining what concepts are for. +- · A concept without a purpose is suspect. When this happens, it's usually because the concept isn't really a concept at all, but a vestige of an internal mechanism that should not have been exposed to users. +- · Confusion about the purposes of concepts leads to misuse, and can be exploited to trick users into engaging in behaviors they will regret. +- · e mists that prevent a concept from fullling its purpose are not easily anticipated, because the context of use evolves over time. Concepts help by giving a structure for recording experience. + +And some practices you can apply now: + +· If you're having trouble using a concept, rst look for evidence that you may have misunderstood the concept's purpose. + +- · When you're explaining a concept to someone, whatever the context, start with the purpose. +- · When you propose to add a concept to a product you're working on, rst formulate a compelling purpose and check that it resonates with your users. +- · When your team starts work on a concept, before you even make any user interface sketches, write down a terse concept description, and make sure all the designers and engineers are aligned around the purpose and operational principle. + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# Concept Composition + + Until now, we've talked in detail only about concepts individually. But even the simplest app involves more than one concept, so we need to understand how concepts t together. + +In this chapter, we'll see how to combine concepts using a new kind of composition in which the actions of dierent concepts are tied to one another, so that when an action of one concept occurs, the associated action of another concept occurs too. + +More exciting than this rather simple mechanism is what you can do with it. I'll show you a variety of compositions, starting with a trivial kind in which the concepts run largely in parallel, fullling their individual purposes without much interaction; then a richer kind in which the concepts are more connected and produce new functionality; and nally, the richest, in which a synergy is achieved that oers a simpler and more unied user experience than the concepts would have oered by themselves. + +When you design with concepts, you can choose to synchronize them more or less tightly with each other. Tighter synchronization means more automation but also less exibility. I'll illustrate the pitfalls of geing this wrong with some examples of both over- and under-synchronization. + +# *Why Traditional Composition Won't Work* + +Soware components are usually assembled in a client-and-service arrangement, in which one component plays the role of "client" and one or more others play the role of "services" provided to the client. is applies from the smallest programs (in which the client may be a function that computes the average of a list of numbers, and the services the built-in libraries that provide basic arithmetic and list manipulation) to the largest systems (in which the client may be a payroll application and the service a relational database). + +is client-and-service composition allows components with more complex functionality to be built from simpler ones, and it allows components to be layered. A client only sees the components it uses in terms of the services they provide; it can't tell that those components themselves may be using other services. + +For concepts, this form of composition won't work. Since concepts are by denition user-facing, we would not want one concept to be hidden behind another. Moreover, concepts must be freestanding; this is what allows them to be understood independently of one another, and reused in dierent contexts. In client-and-service composition, the client cannot operate independently of the services, and its behavior can't even be predicted unless the behavior of the services it uses are known. + +### *A New Kind of Composition* + +Concept composition is less familiar but simpler. e concepts run, by default, independently of one another. eir actions can be invoked in any interleaving and any order, so long the individual concepts permit it. + +ink of a row of snack and drink machines you might nd in a railway station. You can walk up to any machine, insert a coin, and make your choice; and you can also put a coin in one machine, then put one in another machine, go back to the rst machine and make a choice there, and so on. e only constraint on the order of actions is imposed by the machines themselves: that you can't get a drink before inserting a coin, for example. + +To make concepts work together for joint functionality, we'll synchronize their actions. is will involve constraining both the order in which actions happen, and the relationships between the values that are passed in and out. + +We could hook up the change machine with a drink machine, so that when you insert a dollar bill into the change machine and obtain four quarters in return, the four quarters are automatically used to buy a soda in the drink machine. is is a synchronization. + +If we just observe the sequence of actions, each machine still behaves as before. But in composition, some sequences of actions can no longer happen—namely those in which geing change is not followed by buying a drink. Automation doesn't do new things that you could not previously have done manually; it just makes them inevitable. + +#### 6: concept composition + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_24_Picture_1.jpeg) + +fig. 6.1 *A todo app showing the tasks carrying the label "chores."* + +### *Free Composition* + +e loosest kind of composition is *ee composition*, in which the concepts are merged in a single product, but operate mostly independently of one another. + +Todoist is a simple but elegant to-do app (Figure 6.1). It augments the basic functionality of to-do lists with a small number of additional features, such as organizing tasks into projects and subprojects, and aaching labels to tasks. Let's look at one of these additions, labeling, and see how it can be expressed as a concept composition. + +We'll consider the *todo* concept and the *label* concept in their most rudimentary forms (Figures 6.2 and 6.3). e *todo* concept maintains a set of tasks partitioned into *done* and *pending* (these comprise the state); a task starts out as *pending* aer you *add* it, and becomes *done* when you mark it as *complete* (the operational principle). + +e *label* concept associates labels with items, and includes an action *find* that produces all the items that carry a given label. ere's also a *clear* action that removes all the labels associated with an item. e operational principle says that if you *affix* a label to an item, and then invoke *find* with just that label (and do not *detach* the label from the item in the meantime), that item will be included in the results; and conversely, if you never *affix* a label to an item, or you detach the label, that item won't appear in the results when you query for that label. + +**concept** todo **purpose** keep track of tasks **state** done, pending: set Task **actions** add (t: Task) when t not in done or pending add t to pending delete (t: Task) when t in done or pending remove t from done and pending complete (t: Task) when t in pending move t from pending to done **operational principle** after add (t) until delete (t) or complete (t), t in pending after complete (t) until delete (t), t in done fig. 6.2 *e todo concept dened.* **concept** label [Item] **purpose** organize items into overlapping categories **state** labels: Item -> set Label **actions** affix (i: Item, l: Label) add l to the labels of i detach (i: Item, l: Label) remove l from the labels of i find (l: Label) : set Item return the items labeled with l clear (i: Item) remove item i with all its labels **operational principle** after affix (i, l) and no detach (i, l), i in find (l) + +if no affix (i, l), or detach (i, l), i not in find (l) + +fig. 6.3 *e label concept dened.* + +In practice, these concepts provide more functionality: *todo* might associate deadlines with tasks for example, and display them accordingly, and *label* might oer richer queries (on combinations of labels, for example). For understanding composition, however, these would be needless complications. + +#### 6: concept composition + +- 1 **app** todo-label +- 2 **include** +- 3 todo +- 4 label [todo.Task] +- 5 **sync** todo.delete (t) +- 6 label.clear (t) + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_26_Picture_7.jpeg) + +fig. 6.4 *A ee composition of todo and label concepts. In the diagram (right), the circles on the le represent actions provided to the user, and the black arrow denotes the synchronization.* + +e composition is shown in Figure 6.4. It gives a name (*todo label*) to the little "app" formed by the composition, lists the concepts that are included in the composition (*todo* and *label*), and then species the *synchronizations*. Note that the inclusion of the *label* concept specializes it for labeling tasks, by instantiating it with the *Task* type of the *todo* concept. + +In this case, there is just one synchronization, which says simply that deleting a task in the *todo* concept causes the labels of that task to be cleared in the *label* concept. at is, when a task is deleted, its labels disappear too. Without this synchronization, a task that no longer existed from the point of view of the *todo* concept might still have labels in the *label* concept. is would result in some anomalous behaviors: if you axed a label to a task, deleted the task, and then searched for the label, the task would appear in the results. + +In case you nd this underwhelming, let me reassure you that this is indeed a boring composition. We're just geing set up for some more interesting examples. What you need to understand is that puing two concepts in composition allows the user to invoke their actions in any order. Without synchronizations, the only constraints are those imposed by the concepts themselves (for example, that you can't delete a task before you've added it). + +In free composition, the concepts are largely independent of one another, but there may still be some bookkeeping to do to ensure that nonsense executions are ruled out. In this case, puing the concepts together without any synchronization would allow an execution in which you *delete* a task (in the *todo* concept) and it then appears in the results of a *find* (in the *label* concept). With the synchronization, *todo.delete* is always immediately followed by *label.clear*. You can still perform the *find*, but the *clear* action will already have happened, so the *find* will not display the task that you just deleted. + +``` +1 concept email +2 purpose communicate with private messages +3 state +4 inbox: User -> set Message +5 from, to: Message -> User +6 content: Message -> Content +7 actions +8 send (by, for: User, m: Message, c: Content) +9 when m is a fresh message not in a user's inbox +10 store c as content of m +11 store 'by' as user m is from, and 'for' as user m is to +12 receive (by: User, m: Message) +13 when m is to user 'by' and not in inbox of 'by' +14 add m to inbox of by +15 delete (m: Msg) +16 when m belongs to some user's inbox +17 remove m from that inbox +18 forget from, to and content of m +19 operational principle +20 after send (by, for, m, c) can receive (by, m), +21 and m in inbox of by and has content c +``` + +fig. 6.5 *e email concept dened.* + +Paradoxically perhaps, synchronization never adds new executions. It merely *removes* some executions: in this case the ones that don't make sense. Every other execution that can be obtained by interleaving executions of the two concepts remains. For example, the composition admits a behavior comprising the following actions: *todo.add (t)*, *label.affix (t, l)*, *todo.complete (t)*, *label.find (l): t*—that is, adding a new task *t*; axing a label *l* to it; marking the task as completed; querying for all tasks with that label and obtaining that same task *t*. 64 + +Because the purpose of the synchronization in cases like this is to ensure that the same set of things exists from the point of view of each concept that the *label* concept doesn't reference tasks that the *todo* concept doesn't know about—we might say that the concepts are "existence coupled." In every other respect, the concepts are orthogonal. e *todo* concept is oblivious to the axing and detaching of labels, and the *label* concept is oblivious to whether tasks are pending or done. + +Examples of this loose form of composition are common, especially in apps built on platforms that do not easily support richer synchronization between + +#### 6: concept composition + +- 1 **app** todo-label-mail +- 2 **include** +- 3 todo +- 4 label [todo.Task] +- 5 email +- 6 **sync** todo.delete (t) +- 7 label.clear (t) +- 8 **sync** email.receive (todo-user, m) +- 9 todo.add (m.content) + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-061-090/_page_28_Picture_10.jpeg) + +fig. 6.6 *A collaborative composition of todo and email concepts. e diagram describes the synchronization only partially: the arrow om receive to add does not imply that every email.receive leads to a task.add; as the text says, only messages to todo-user are relevant.* + +their components. For example, the web services and content-management plug-ins that oer concepts such as commenting and upvoting work precisely because all they require to connect to a site is some shared identiers (for the items being commented on or upvoted), just like the tasks in our example. + +### *Collaborative Composition* + +A tighter form of composition connects the concepts together to provide new functionality that neither concept provides by itself. One of the nice features of Todoist is that you can add a task without even opening the app by sending an email message to a special email address associated with your Todoist account. + +Viewed as a concept composition, this is just a synchronization of the receiving email action of the *email* concept and the task addition action of the *todo* concept. To make this a bit more concrete, let's dene the *email* concept rst [\(Figure 6.5\)](#page-27-0). e state comprises a mapping from each user to the messages in that user's inbox; a record of whom each message is from and to; and the contents of the messages. + +e *send* action forms a new message with some content; the *receive* action takes a message that has been previously created for the recipient, and adds it to their inbox. e operational principle expresses the idea of message transfer: aer a user has sent a message with some content, the recipient can receive it, resulting in its being added to the recipient's inbox and having the content that was associated with it when it was sent. + +is time, the composition [\(Figure 6.6\)](#page-28-0) is a bit trickier. It incorporates the previous synchronization, along with a new one that ties the *receive* action of the *email* concept to the *add* action of the *todo* concept. I've given the name *todo-user* to the special email account that receives the task messages. By constraining the *receive* action to be performed by this user, we ensure that the receiving of emails by other users is unaected by this synchronization. Note also that the *add* action binds the task being added to the content of the email message, as expected. + +In the real app, the synchronization is more elaborate: you can format the subject and body of the email message to separately set the task's title and description, and you can even ax a label to the task using a hashtag notation. But the simplied synchronization that I've proposed should convey the essence of the design. + +e new functionality is really just a convenience that automates a step. In principle, you could send yourself an email every time a task you wanted to add to your todo list came to mind, and then at some later point, read all those emails and add them as tasks in the todo app. e synchronization spares you this extra work.65 + +Here are some of the ways in which collaborative composition can be used: *Logging*. A concept that tracks occurrences of events can be composed with other concepts. e tracking may be for diagnosis (determining why a failure happened by keeping and later analyzing the sequence of events that led up to it); performance analysis (checking the responsiveness of a service); analytics (collecting data on the users of a service and their usage paerns); intrusion detection (by searching for paerns of requests that might suggest that an aack is underway); or auditing (recording which hospital employees access health records, for example). + +*Suppression*. In a security context, a concept may be added solely to suppress certain actions in other concepts. An *access control* concept could prevent actions by unauthorized users, by synchronizing its *grantAccess* action with the action to be authorized, so that if *grantAccess* cannot occur (as determined by *access control*), the action tied to it won't be able to occur either. e same idea can be used to limit access more generally, for example composing a *friend* concept in a social media app with a *post* concept in such a way that one user can only read another user's post if the two users are friends.66 \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-061-090/concepts-061-090_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/concepts-061-090_meta.json new file mode 100644 index 0000000..ebd7f80 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-061-090/concepts-061-090_meta.json @@ -0,0 +1,2387 @@ +{ + "table_of_contents": [ + { + "title": "4: concept structure", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 171.404296875, + 40.86962890625 + ], + [ + 280.6190185546875, + 40.86962890625 + ], + [ + 280.6190185546875, + 52.36962890625 + ], + [ + 170.54296875, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 185.83154296875, + 227.70599365234375 + ], + [ + 265.8670349121094, + 227.3115234375 + ], + [ + 265.8670349121094, + 239.70602416992188 + ], + [ + 185.83154296875, + 239.70602416992188 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Concept Purposes", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 161.068359375, + 106.2142333984375 + ], + [ + 290.61181640625, + 106.013671875 + ], + [ + 290.61181640625, + 126.2142333984375 + ], + [ + 161.068359375, + 126.2142333984375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Purposes: First Step to Clarity", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.67041015625, + 167.69598388671875 + ], + [ + 274.9083251953125, + 166.5 + ], + [ + 274.9083251953125, + 179.69601440429688 + ], + [ + 152.67041015625, + 179.69601440429688 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 175.2802734375, + 40.86962890625 + ], + [ + 276.111083984375, + 40.86962890625 + ], + [ + 276.111083984375, + 52.36962890625 + ], + [ + 174.4189453125, + 52.36962890625 + ] + ] + }, + { + "title": "Criteria for Purposes", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 184.53700256347656, + 107.6396484375 + ], + [ + 268.51904296875, + 106.3388671875 + ], + [ + 268.4626159667969, + 119.69598388671875 + ], + [ + 183.67822265625, + 119.69598388671875 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.23974609375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 151.37841796875, + 52.36962890625 + ] + ] + }, + { + "title": "Purposes Resolve Design Puzzles", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 147.93310546875, + 332.349609375 + ], + [ + 280.1741638183594, + 331.048828125 + ], + [ + 280.1741638183594, + 344.6960144042969 + ], + [ + 147.93310546875, + 344.6960144042969 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 175.06494140625, + 40.86962890625 + ], + [ + 276.111083984375, + 40.86962890625 + ], + [ + 276.111083984375, + 52.36962890625 + ], + [ + 175.06494140625, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts without Purposes: Faucets & Editor Buers", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 119.50927734375, + 361.2919921875 + ], + [ + 332.7804260253906, + 361.2919921875 + ], + [ + 332.7804260253906, + 374.6960144042969 + ], + [ + 119.50927734375, + 374.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.486328125, + 40.86962890625 + ], + [ + 276.2377014160156, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 176.35693359375, + 40.86962890625 + ], + [ + 276.1111145019531, + 40.86962890625 + ], + [ + 276.1111145019531, + 52.36962890625 + ], + [ + 175.49560546875, + 52.36962890625 + ] + ] + }, + { + "title": "Concepts with Unclear Purposes: Twier's Favorites", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 122.57609558105469, + 421.7783203125 + ], + [ + 330.4281311035156, + 420.4775390625 + ], + [ + 330.4281311035156, + 434.6959991455078 + ], + [ + 121.8779296875, + 434.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.67041015625, + 40.86962890625 + ], + [ + 276.27099609375, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 151.80908203125, + 52.36962890625 + ] + ] + }, + { + "title": "Exploiting Confusing Concepts: e Nanny Scam", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 114.34130859375, + 496.248046875 + ], + [ + 314.40069580078125, + 494.947265625 + ], + [ + 314.40069580078125, + 509.7060089111328 + ], + [ + 114.34130859375, + 509.7060089111328 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 175.7109375, + 40.86962890625 + ], + [ + 276.1167907714844, + 40.86962890625 + ], + [ + 276.1167907714844, + 52.36962890625 + ], + [ + 174.849609375, + 52.36962890625 + ] + ] + }, + { + "title": "Can is Concept Really Be So Hard? e Story of Image Size", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 100.56005859375, + 257.2294921875 + ], + [ + 351.8524169921875, + 255.9287109375 + ], + [ + 351.8524169921875, + 269.6960144042969 + ], + [ + 100.56005859375, + 269.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.7681884765625, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 175.92626953125, + 40.86962890625 + ], + [ + 276.11688232421875, + 40.86962890625 + ], + [ + 276.11688232421875, + 52.36962890625 + ], + [ + 175.06494140625, + 52.36962890625 + ] + ] + }, + { + "title": "Whose Purpose? Mine or Yours?", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 162.03720092773438, + 332.69598388671875 + ], + [ + 290.9627990722656, + 331.69921875 + ], + [ + 290.9627990722656, + 344.6960144042969 + ], + [ + 161.28369140625, + 344.70703125 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Deceitful Purposes", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 176.35693359375, + 391.53515625 + ], + [ + 251.59059143066406, + 390.234375 + ], + [ + 251.59059143066406, + 404.6960144042969 + ], + [ + 175.49560546875, + 404.6960144042969 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 176.572265625, + 40.86962890625 + ], + [ + 276.1168212890625, + 40.86962890625 + ], + [ + 276.1168212890625, + 52.36962890625 + ], + [ + 175.7109375, + 52.36962890625 + ] + ] + }, + { + "title": "Mists: When Purposes Aren't Fullled", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 146.64111328125, + 481.6142578125 + ], + [ + 305.33441162109375, + 480.3134765625 + ], + [ + 305.33441162109375, + 494.6959991455078 + ], + [ + 146.64111328125, + 494.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "A Lethal Mist due to Poor Design", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 143.4111328125, + 451.37109375 + ], + [ + 284.0992126464844, + 450.0703125 + ], + [ + 284.0992126464844, + 464.6959991455078 + ], + [ + 142.5498046875, + 464.6959991455078 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 175.06494140625, + 40.86962890625 + ], + [ + 276.1168212890625, + 40.86962890625 + ], + [ + 276.1168212890625, + 52.36962890625 + ], + [ + 175.06494140625, + 52.36962890625 + ] + ] + }, + { + "title": "A Mist om a Changing Context", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 155.0390625, + 422.103515625 + ], + [ + 295.52410888671875, + 420.802734375 + ], + [ + 295.52410888671875, + 434.6959991455078 + ], + [ + 154.177734375, + 435.111328125 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "An Old Mist Returns", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 167.5283203125, + 302.1064453125 + ], + [ + 259.708740234375, + 300.8056640625 + ], + [ + 259.708740234375, + 314.6960144042969 + ], + [ + 167.5283203125, + 314.6960144042969 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 175.7109375, + 40.86962890625 + ], + [ + 276.11669921875, + 40.86962890625 + ], + [ + 276.11669921875, + 52.36962890625 + ], + [ + 175.7109375, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 173.98828125, + 287.70599365234375 + ], + [ + 253.86582946777344, + 286.4970703125 + ], + [ + 253.86582946777344, + 299.7060241699219 + ], + [ + 173.98828125, + 299.7060241699219 + ] + ] + }, + { + "title": "5: concept purposes", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 175.06494140625, + 40.86962890625 + ], + [ + 276.11676025390625, + 40.86962890625 + ], + [ + 276.11676025390625, + 52.36962890625 + ], + [ + 174.20361328125, + 52.36962890625 + ] + ] + }, + { + "title": "Concept Composition", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 146.8564453125, + 106.2142333984375 + ], + [ + 305.05377197265625, + 105.36328125 + ], + [ + 305.05377197265625, + 126.2142333984375 + ], + [ + 146.8564453125, + 126.2142333984375 + ] + ] + }, + { + "title": "Why Traditional Composition Won't Work", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 139.31982421875, + 451.37109375 + ], + [ + 313.2187805175781, + 450.0703125 + ], + [ + 313.2187805175781, + 464.6959991455078 + ], + [ + 139.31982421875, + 464.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.7624053955078, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "A New Kind of Composition", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 154.82373046875, + 257.69598388671875 + ], + [ + 271.7567138671875, + 256.5791015625 + ], + [ + 271.7567138671875, + 269.6960144042969 + ], + [ + 154.82373046875, + 269.6960144042969 + ] + ] + }, + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 165.375, + 40.86962890625 + ], + [ + 286.1103210449219, + 40.86962890625 + ], + [ + 286.1103210449219, + 52.36962890625 + ], + [ + 164.513671875, + 52.36962890625 + ] + ] + }, + { + "title": "Free Composition", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 189.4921875, + 272.69598388671875 + ], + [ + 262.0443115234375, + 271.86328125 + ], + [ + 262.0443115234375, + 284.6960144042969 + ], + [ + 189.4921875, + 284.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.23974609375, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 151.37841796875, + 52.36962890625 + ] + ] + }, + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 165.375, + 40.86962890625 + ], + [ + 286.1161193847656, + 40.86962890625 + ], + [ + 286.1161193847656, + 52.36962890625 + ], + [ + 164.513671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 165.8056640625, + 40.86962890625 + ], + [ + 286.11602783203125, + 40.86962890625 + ], + [ + 286.11602783203125, + 52.36962890625 + ], + [ + 164.9443359375, + 52.36962890625 + ] + ] + }, + { + "title": "Collaborative Composition", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 171.61962890625, + 332.6748046875 + ], + [ + 280.9985046386719, + 331.3740234375 + ], + [ + 280.9985046386719, + 344.6960144042969 + ], + [ + 170.75830078125, + 344.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 78 + ], + [ + "Line", + 35 + ], + [ + "ListItem", + 6 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "ListGroup", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 38 + ], + [ + "Line", + 13 + ], + [ + "ListItem", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 66 + ], + [ + "Line", + 30 + ], + [ + "Text", + 5 + ], + [ + "PageHeader", + 1 + ], + [ + "SectionHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 35 + ], + [ + "Text", + 9 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 78 + ], + [ + "Line", + 35 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 102 + ], + [ + "Line", + 28 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 84 + ], + [ + "Line", + 28 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 67 + ], + [ + "TableCell", + 32 + ], + [ + "Line", + 26 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Table", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "TableGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 54 + ], + [ + "Line", + 24 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 2 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 68 + ], + [ + "Line", + 25 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 36 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 51 + ], + [ + "Line", + 21 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 52 + ], + [ + "Line", + 23 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 65 + ], + [ + "Line", + 28 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 57 + ], + [ + "Line", + 24 + ], + [ + "SectionHeader", + 2 + ], + [ + "ListItem", + 2 + ], + [ + "Text", + 2 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 71 + ], + [ + "Line", + 36 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 56 + ], + [ + "Line", + 25 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 74 + ], + [ + "Line", + 28 + ], + [ + "TableCell", + 24 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Table", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "TableGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 64 + ], + [ + "Line", + 29 + ], + [ + "TableCell", + 18 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "Table", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "TableGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 89 + ], + [ + "Line", + 36 + ], + [ + "ListItem", + 6 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 27 + ], + [ + "Line", + 10 + ], + [ + "ListItem", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 48 + ], + [ + "Line", + 28 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 36 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 23 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 143 + ], + [ + "Line", + 41 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "ListItem", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 133 + ], + [ + "Line", + 45 + ], + [ + "ListItem", + 6 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 139 + ], + [ + "Line", + 41 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Code", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 122 + ], + [ + "Line", + 48 + ], + [ + "ListItem", + 9 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "ListGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 102 + ], + [ + "Line", + 37 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-061-090" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_16_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_16_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2f64bc2131986a440d6568258a570a18ad7f3761 GIT binary patch literal 12103 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

~i& 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 F{|f`Ko|XUr literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_23_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_23_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..621faac7feb93adc7d3fc1468a55097ca5a09fcd GIT binary patch literal 39811 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_25_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_25_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..70b18f41d83b4251ca128207416d15e46341d880 GIT binary patch literal 22563 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 qkIY<@GIelmq|%UQZOTd6qLlKY; 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

^Dm@Qx8DO=%T(P)cC7UH#UXXhS=p=8em9nnM1 z=}#K59}#eBpHR{0opu|G=oD|v%N!BYmQC()^?OjujCRPT6aAA8te%Yp`gTK&+_%?T zABKvp@>AB`*2u=x^e4}XYJKbdhnz}+og|r`ObX4uvW_RYcug~!rn$%mX-6PZI@(6w z@PzbXc2L0T24W<0E9HD?`+Ujxm9CGei&8s1fX8U6aoIEffJK6pi8qZkI=QD{Rsq8n zIg5wV?Q*x#cpwf_bhUY4yENZ?w8Bpvpf}r

  • ?c(XOLo$q}4@qR_<+)nT`u zuC1aL1`Q^-(g3JKa*1Vre`_cy^qnnVv_gYh3)#7qhM z%{w8I9dtLI)HKmd>a=71*K}fP%^!FonS#BdTO=MfGiI2WKd^BXwArFLD%%R5>SD~G zG?~YiZc;qgdZZ`-=dXUvNL1rLWYF&BNfKdGb7M{uR!y`Uz8I|IUFzg>6N5Y(O+qR7q_tpjGM+_^NSnm(MSce|9m{0Z9WR0KVQ?!ly>RQ)_-9y?m z-!Vi55PE!7zev2)?d)1UbTbDaJXUINY;jBOy zhNsRC)vdckbSBNg&l`1|nD5L`vTS^5c%`o$^7NC6s8y0phkV`hpjIl+Tx3e@Q^%a3 zCN+946PQ5o{i)5Z5$v=@*}kW0ywf=pXG<3^F+!p^B!d71v#fp@>TJo#8xkcm z&jY0?doJL4D?gNzp6Vzm z4;_Uqc7{1sP@XYIMVdSihn+pJrI zgFm+WhLQ>%L6cB%IA2vWfT#nEv+}k$@jx2#tNxtYN!bl=WvGf7PO4gd=?UVKz2C5y zf-?kBK_wrZKKf$$<{{_#uL}){fQp*VFX-%!2ROeM^NO_ZuK3Xfy%j$~|Kd)M@PBUp zb!{l`Zss02yM33J?YsIw_`|k8C5P1UPq4e2*-`1=mqL6`QwVLpA?|l6r2H3sMQr9A zIS2hdjDK`3JmC*Z2A}!Q3Q6$fyVG=4RYbgXodq GKl}|be)c*5 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_29_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_29_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b1a25edfa7fcd961b14c2277190457f3600d8b4e GIT binary patch literal 21440 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 SK5VM|#oOS&U)tk#>VE;}7|Ngk literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_6_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/_page_6_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b9b4a3bf1150d313eb10979532628c02d1f61529 GIT binary patch literal 27019 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 z z)4osg3P%a8Z8@?qbL3S;4L<4ANk#494iLS8ZO!mvJoQGJEvwl%hD*BBy`05N=a6C80pQeT?u7t3TQ$ETNuy|q+a!48d#Jl25j-|q6- zmSJqxFJgjdytqRalucoU=6n1paSH|!MA5`#QLRctx(y+-^CH+z&e2Q=);tP$h2Y&$ z)Ob_^#8E`N1-!BIyWP>e-3eV;D|;15az|-3Nv(54*KD8Swa^x2tdX}#_^+xBLS&Hw z1UmcnRj_0(dVJH3DH~>a_BE2#_=y~oqKO&rvmOBufW7XIc^&XIQB}FBS^dEx2yjrv0;v^|L(wDW?9S1_8S&G2!;MO`KC0P+%qdcQ9peHP~yyUm>m#Jt*w zCTc9L)$wAvwsTi7seR0v7jH+{4@??P$sQC`%oYQ_q}Mnv1@QXU*m)e>3a#7OPM#^L zpZw0NRbZ9>#VTAQOpzt;Qv9ogS7EoDEtj*vMSqw@D!t~ZD}~u*uU?^N>7EwRmxkxv z9ApNcR)kqAxML%dM;q4D0Fz|yIZ>v#98;f1kd^VxGM7_%LtNo6un?O%@{IO3tS=oH5a%S&KIo*|ux8v+UdP3T8CAZ3Bei(i$w> zbrHbqlFJuj5cA|K0A(`-hdQqMq zuW-das~FZADFLQKd{Qiagl)s$HfirZe0gA1$a76^5Isoc`C@6r$LDqodERQy*T}DG zE;rlBZ(-eO=f`fgPx49EjLIijcicFQL-@7)Bq_qTpLP?QOx%55Nw)P`i|4BDC#%1h z4Qrx+$AFWSjIk8 z)3;(jBG-2&uqPU2wvPqRfTm?-MpIPAWA+%G-9SjDnwJzfN0^S?n@M(3rdR!bLB!2o zdtKgR*)s+f70L>Qui^G|OL|Y#F=mBWBGu6$z}I``L1Vjyo^z8YtFd$fjIlzN(>3$p z&w2{{DO4MiNI4Yui>t2ZosaQ zI9s8Nt`>-2s)}3WWBix-5akNr@e*s!C0Vz=>g!89w$}rNiNW*%GJd0UX`@pjvV7?T z$_#a_4#uZu;kL2Viy8nIzbk_IY`jI8nfOkVc)i&I7x@E@X_f)(13e! z&gh<nWUT%klJkD|EiXU?w>FSM% zbHi6d;POM1IFEQqFuPzVxgjZ8lF}1=B%mK&nLhpR7wgX>ua+ zd9k6TqKkb1>dz)z4i)zdPm3c26O)=t8g!)>YI}KkIr?2v@Nz?y#~g8T+T)SqYzF#f z5}|8t#W*i89{M1$i+|`z;=L(3)YH4QqpSFnbfU?*#cl+WA#_huyIaN&EGjo< zVOB1sEUKFK6o`-Q=?QeY(+teRPt;gkr@4Y%f7BYyZS6sxj{br00ELx zKcVk+Uybt3!H>C?Wy9zaCzE1KG)bFF3K4o4fDL2Xz~_`WzMlrKV(n_{v_=r5c%g)= z*HxG%aNo_6a;u!EBv;Z%0m^Wv^BtC_(?j<-N*Hd}kCV?i)~JEYTzSCceJFNtaOTn~ zf;2OaHX`?Av*wc$op1IVO>5r0EXl@@DHeKQ0pK-#?@QHlMTKaVG^JdS3cJn?@O?z+ zFSXxXi&5-HC|b?z3F2LJOKf`;(x0B%$>z*{0_a7W>ku_oGorw2COb#*E4X6o{YQ(5B3e(a=W!B?sE9fE~O zpnuSp!Cl}n#w4zntrl*Jtz@@)c~?+7llaGv+ZoY(RzeXz`ti9bDN%ayJ<`SUE;$-S zJn|6!@!R-tK0z4CQ>2y>NM1Tul)Q}#sv(D65$_@)JXf4h^X4Qfomm_CGzfm&0b}vK z`TE8n(b5zBJSC8=+Pf_o(<=8qo)wNk9nChWHkioVij)BoIPLf|ah<=4-TF`F|3men z?|JtNckpl+Tu3TE)W*WZgFQU;OB^c8Y>eW*; z8167R6-Sk1JLg3AlJCuxMrE;mqy+n=>Vq(e@UZ7z)MRy_L@^curl$v#NmOKJm>6sK zPinWiE7H>VkKXJoAa&(#_PuL-$hKEny6)d$wV;Cc?w02YT)ddtgd4edt~! zY?%c^lr)D?mv575+_L}+(oJuJ~~LXnWI5lK3nhmE|QM%$18{p<(kIlXf;|nS1RG4TyJGA z{_Y~-EG3YgOf+#V#^+9Ff5@FZ1a$&?89WDePSdFd$?b%ATx-jC%o-(7+}=u#gguQ5 z!nXhp&m$v{))9nT+pbFv5BZMcRdEIE#iRm`HVkAdkezdWMBq0)1k=5dZ@kxURgJ^e zg@H>e>z0TuO{nR z&!21WXf>X(-{Iq(*amTW#JG3Fdv>65Sd#@HIRJjs;`cZUBM+$mDg8B*9R1df{|`k* zp-YhJYSLqD5&*o!n(6?8Vf6s?60}pq8G1fBF1x;c0o>ejQ8<6H27o3CahtO1c)umT zW(k&@`O5_^22!bl`jqSaE#~^T9*Ven*Ww+sfZr7h`%lhKf7RB-eC9M*jr$oy!C7{) z`5DwdmEE!^yiObP85Es3b><5}J4Qtc*`=fkY7(GfV}i;KILA3c{UfQMCk_LGLUzF- zF3!%fmG=)11H%>t74cL_ca_ zfjCd;Sam2p!}+G_;p7hZQK$Tp4gB@^8K;9qo10%=``%l^2pLNGu%`W#N6^La%zUV=s5x=-s!>ZCC)vS z_XuiB#F_iVXprc3+j6yqab?{|XMZwv7n&+V_83zo%g3;S1X<5HoWvk&XIN{zV__Kr z^_ckaC&K=xvfOzSsdHS2++8ad*V_n^p86BOlEtE%>jser+aNhr4l*9luQ0r zq_bXTBMNI5>+AaN>W#8^W{L=dEAuJ^%)uNyVcm)m?^Rgl9;np_lVr)Q&>XM{|H#dA z<=(leOD&VS_D6)r>4&)~hX&TPcy+0t^W&ok5?3wH6LXe1qjD;v?us;Lwr|^ZiR=c; zN_Pc|17p_CVStYj7|8=Png24FE1V&t*}!%OBC#I^Xv~;90%>3-4T7Wxm;is;+~4p< z{@dqv!s`+xZdAqIrF@#O*YEEs1qhz)eedSosHJdunXCML>(Ut6x_^%FEU>NO&HoJY zwZLx2{;agWxZMZ5)i42Bs-RiRDf5Zjku5Ow0l>E~3$63bmZNz-G1y4z)@RT=>M=+o z@7a;cw@kQE12mm*h*l5@rHc09Q=Q`5Y*7d$4AUooM3oto2Q^LdBB5HG|u*PhaE%M zW?0XUbG9fTKa78`gV*Bl0*j7CX#vml>F*tC+|1%vtnA_HBQF*iNdV3W!$FQ;ipz|M z9t~Kx74`EX22ZBmAapb}%jzxYl>=$381ihnM{3|`kz^anYeV!7mjKP-U#pnZYAz|MpwR^FYmKQk{8P$g%j)Ar5>M_>F>AG&R1XqtV;^ko8Z|`UY zahf+Jv}vw1+FHB)!`s#Q@{E+5bov`H>b;}3(7@!C_y$f1CCty<0P}9SBY|| zrPl3wOF-=3mfu&H>n9S`Xu=uhw}cP=&(woX~6#p2{Nwq$1AEL^HaTQohbNE3Ek5(OD#kx7He5FXX+T#tY=SEnk7 zq-oE%A?U~6Ns%$`ofmF=b`0uKT|_;LaQTzfDKjOIrG@mBgyZ@iLP`odydvn zC1)eK!v?TUHoy0?D~J`D))iu9UP$XZ z{Ho~t+oB#-Xx&$^p4 zSlN+wu24rnty|L|oD!hO_sJ9&bQUPsdcQa%vQ1@%LJ8T*^g5|=wp@i(*UD3u=JzPT zflsg1&1gF_n!E?lh}4zMGPr}A7d6Dhzsw2tU+@u+}#AE<{ahK+FBd?GL$@B`Q;&C$`XC9RR z8^)I=XQg6AD|OV~v$qVi&pf@%sU8fvN&k%pK*09v_jsYOms-B0V=I(CET$U)+|x5C zufgeiETuW}cmmLj_@8;4M~P#)sS7x*^2OnjQ5}597pEB?KAUKfs89kKesOx_kiE%t zubA>Tk5%Z%Iy`e;>gip~NPoaQ{;x-nl!#o2f5q1Qi+M?qD!u2Rlb^bIiu5RUP3^D_ z@(RK+lsSAka^~In?r9W6-=^b9`{`&N}6e96hykP3F8zTmK?{$-2^t`ICh1zk0 zb@{HSZNOkKtPY-NZNgh*6UuMIm29=KYgBRt{%m$3Csx0?NsG($m|uF%Qz(4A{C?dk zacn?6Ycvi*G}Lhms(AaX52s$5ME(?W*r3#uh5EFhaH#LC)!})IW{6=NN8ZP2Dx5nw zax2Dr^4yN3pS{O9NK$V{_?m(iAZ@*hs?=nG>g&PC5bAJG{!wI4j%g3wGqif?Sjwc5 zB@N?j?7Ef&nA;TtJ|g85OBk}hH4%ANto5`ImvuuYV@J6q0`jug0ou!KLvj_~U00f4 z1&_ToqlGtRC`bc+9{<)pl(73Iy)>utFH)=~>L$NY6Ts;?n%XcW0^;$Cv7NHXnv3Xz M=_{dY==1bH05AU1o&W#< literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-091-120/concepts-091-120.md b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/concepts-091-120.md new file mode 100644 index 0000000..6b4420a --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/concepts-091-120.md @@ -0,0 +1,478 @@ +*Staging*. e composition may bring together dierent stages of an activity. When making a call on a mobile phone, for example, the user may enter not the number to be called but the name of the person; a composition of the *contact* and *phone call* concepts then handles the looking up of the number and the placing of the call respectively. is kind of separation into stages allows features such as *call forwarding* to be treated as concepts. A similar paern arises in the browser request pipeline, which starts with a lookup using the *domain name* concept that translates a domain name to an IP address, which is then used by the *http* concept for the request itself. + +*Notication*. Most apps and services oer notications to users: calendars send reminders; help forums let you register to be notied of replies to a question you asked; online stores send acknowledgments of purchases; shipping companies send delivery updates; social media apps tell you when your friends have posted new content. All these can be done with a *notification* concept that oers an event tracking action that is synchronized with the actions of interest in the other concepts, and notication actions that follow spontaneously (and whose timing, medium, and frequency can oen be congured by the user). + +*Mitigation*. Sometimes, free composition gives too much latitude to users, leading to undesirable behaviors that can be mitigated by a collaborative composition. Many social media platforms, for example, compose a *post* concept with an *upvote* concept that lets users rate individual posts. If the *post* concept allows editing, this creates a dilemma, because a user might receive lots of positive upvotes for a post only to then change its content entirely, giving the misleading impression that the new content received all those approvals. One common x for this (used in Slack, for example) is to add an indelible marker to posts that have been edited. Another is to synchronize the *edit* action of the *post* concept with an action in another concept that undoes some of the approval. In YouTube, for example, a user can *pin* a favorable comment to a video of theirs. But if the comment is edited, it will be automatically unpinned, by a synchronization between the *comment.edit* and *pinning.unpin* actions. + +*Inference*. Sometimes a user's actions are not executed directly, but are inferred from other actions. Most communication apps distinguish between read and *unread* items, and allow users to toggle their status. But to mark an item as read for the rst time, an app typically synchronizes another action (such as opening the item, or scrolling through it) with the action that marks it as read. + +*Bridging separated concerns*. By separating concerns with free composition, concepts usually improve the clarity and usability of an app. On a mobile phone, for example, the *cellular* and *wifi* concepts let you manage your use of cellular data and local networks independently of each other, and of the apps that use the data. Sometimes, though, the need arises to couple concepts that have been separated. Apple's Podcasts app, for example, gives you the option of preventing a *podcast* from being downloaded using the cellular connection (and thus consuming data against your quota when you might instead have obtained it free through Wi-Fi).67 + +### *Synergistic Composition* + +In free composition, a soware product is assembled from largely orthogonal concepts, each bringing its own functionality, with synchronization being used only for bookkeeping. In collaborative composition, synchronization creates connections between concepts that provide automation, and thus some new functionality that the individual concepts do not provide by themselves. + +In synergistic composition, something more subtle occurs. By synchronizing the concepts even more tightly, the functionality of one concept comes to enhance another concept's fulllment of its own purpose. e overall value of the composition is now more than the sum of the values of the concepts. + +To illustrate this phenomenon, suppose that, in the composition of the *todo* and *label* concepts, we were to represent the pending/done status of tasks with a built-in label *pending* that is axed automatically when a task is added and detached when the task is completed. is can be described with two synchronizations (Figure 6.7): one to ax the label when a task is added, and one to detach it when the task is marked as complete. For consistency, I've added a third synchronization that causes the task to be marked as complete when the label is axed. + +e advantage of this composition is that the label query functionality now incorporates whether tasks are pending or not. ere's a single uniform interface, and in a richer version of the *label* concept that oers a logical query language, you could ask for tasks that are "pending and urgent," for example. Moreover, the state component of the *todo* concept that remembers whether a task is pending or done is no longer necessary, since that information is now stored in labels. + +**app** todo-label-syn 2 **include** 3 todo label [todo.Task] **sync** todo.delete (t) label.clear (t) **sync** todo.add (t) label.affix (t, 'pending') **sync** todo.complete (t) + +- add delete complete affix detach find clear **todo label** +- 10 label.detach (t, 'pending') 11 **sync** label.detach (t, 'pending') 12 todo.complete (t) + +fig. 6.7 *A synergistic composition of todo and label concepts.* + +is simplied seing can only hint at the benets that this kind of composition can bring. In the next section, we'll study an example that's more powerful but also surprisingly complicated, showing how subtle synergistic composition can be. Before that, some other examples of synergistic composition: + +*Gmail labels and trash*. Google's email app, Gmail, uses labels synergistically in exactly the way I just described. When an email message is sent, the label *sent* is axed to it automatically, and the buon labeled "sent" that opens a list of sent messages is simply bound to a query for messages carrying the *sent* label. e same idea is extended to the *trash*: deleting a message axes the *deleted* label to it, and removing that label restores the message.68 + +*Moira lists and groups*. MIT uses a system developed internally in the 1980s called Moira for managing mailing lists. To let multiple users maintain a mailing list, you can create a second list of those users; that list can then be assigned as the owner of the rst list. To grant or withhold control, you can simply add or delete a user from the second list. is is a lovely synergy in which the *mailing list* concept is composed so thoroughly with an *administrative group* concept that the laer requires no interface of its own.69 + +*Free samples and shopping carts*. Some online stores include in their shopping carts items such as a free samples (or catalogs, etc.) that have *not* been purchased by the user. is is a synergistic composition between the *shopping cart* concept and the *free sample* concept; the action that adds a free sample to the order is synchronized with the action that adds items to the shopping cart. is is good for the user (who sees all their items, including the free ones, in + +one place), and it makes things easier for the developer (eliminating the need to store the free samples separately). But, as with many synergies, unexpected snags can arise.70 + +*Photoshop channels, masks and selections*. e preeminent example of synergy appears in Adobe Photoshop, in which the *mask*, *selection*, and *channel* concepts work together with remarkable power.71 + +### *e Beautiful Synergy of Trash & Folder* + +You may have been surprised that when I introduced the *trash* concept in Chapter 4, I treated the trash as just a set of items. In the most familiar instances of the concept (on the Macintosh or Windows desktops), the trash is not a set of items but a *folder*. + +In some early versions of the concept, the trash *was* just a set, and if you deleted a folder, its contents were disaggregated and placed individually in the trash. Obviously this made restoring folders dicult, and the beer design (which Apple had used from the start) fused together the two concepts.72 + +e modern design can be understood as a very skillful composition of these two distinct concepts, *trash* and *folder*. By viewing it in these terms, we can separate out the various aspects of behavior. To understand the essential idea of the trash—that items can be deleted and later restored, or permanently removed by emptying—you only need to know about the *trash* concept; to understand how the items in the trash appear, you only need to know about *folder*. + +e synergy this creates is evident in the parsimony of the user interface. No special actions are needed to list the items in the trash, since in this respect, it's just a regular folder, to which you can apply sorting, searching and so on in the regular way. Nor is a special control needed for restoring an item; you just move it out of the trash folder. And of course, the synergy is what allows the trash to retain the structure of a deleted folder so that it can be restored in one piece. + +e synchronization that makes this possible is not complicated. Moving a le to the trash (in the *folder* concept) is synchronized with deleting the le (in *trash*); moving a folder is synchronized with deleting all the folders and les it contains; and likewise, moving a folder out of the trash is synchronized with restoring all those folders and les. + +| • • • | Trash | n | | +|--------------------------|------------------------------------------------------------------------------|----------------|-----------------------| +| | ≅ ∨ ☆ ∨ ≡ | Q Search | | +| Trash | None | | Empty | +| Weston | ✓ Volume | fied | Date Added | +| photos for dropbox examp | Kind Application Date Last Opened Date Added Date Modified Date Created Size | 018 at 2:23 PM | Yesterday at 1:31 PM | +| Screen Shot 2020-07-17 a | | 20 at 7:20 PM | Yesterday at 10:43 AM | +| Screen Shot 2020-07-17 a | | 20 at 7:20 PM | Yesterday at 10:43 AM | +| Screen Shot 202020 a | | at 10:40 AM | Yesterday at 10:43 AM | +| Screen Shot 2020-07-17 a | | 20 at 3:28 PM | Yesterday at 10:39 AM | +| Screen Shot 2020-07-17 a | | 20 at 3:28 PM | Yesterday at 10:39 AM | +| Screen Shot 2020-07-17 a | | 20 at 3:29 PM | Yesterday at 10:39 AM | +| Screen Shot 2020-07-17 a | | 20 at 3:30 PM | Yesterday at 10:39 AM | +| Screen Shot 2020-07-17 a | | 20 at 3:33 PM | Yesterday at 10:39 AM | + +fig. 6.8 *Synergistic composition of the trash and folder concepts. Items can be sorted by "date added," which corresponds to the date of deletion, elegantly reusing a general feature of folders. e sorting into volumes is a more troubled feature, since it applies only to the trash folder.* + +### *Synergies Are Rarely Perfect* + +Perfect merging of functionality across concepts is rarely possible, and so most synergies have some costs. e trash is not quite a folder like any other; most obviously, it needs to oer the *empty* action, hence the lile buon that appears in that folder alone. + +e designers of the Macintosh trash have tried their best to minimize such non-uniformities. ey resisted, for example, including a "date deleted" eld, which would have only applied to the trash folder, but cleverly included a "date added" eld, which works for all folders, and for the trash happens to allow sorting by deletion date. + +More troublingly, in the Macintosh desktop, there is only *one* trash folder, even if there are multiple drives. Unlike any other folder therefore, the trash can "hold" items from dierent volumes; to make this clear, recent versions of macOS allow the items in the trash to be grouped by volume, a feature not available for other folders (Figure 6.8). + +Representing the trash as a folder can be confusing at times: hence the uncertainty in my saying that the trash can "hold" items. In Chapter 5, I mentioned the scenario in which you insert a removable drive into your laptop, and move some items from it to the trash folder in the hope of making space on the drive. Since there is only one trash folder, and it "belongs" to your laptop, you might imagine that this action would free up space on the drive. + +But, as the division of the trash into volumes indicates, the trash folder no more belongs to the machine than to the external drive, and moving a le to the trash never frees up space. If you eject the external drive, you will see its trashed items disappear from the trash folder, and reappear when you reaach it.73 + +### *Synchronizing Too Much and Too Lile* + +When you compose concepts, the synchronizations become an important part of the overall product design. Synchronizing too much takes control away from the user, preventing some scenarios that would have been allowed in a free composition. Synchronizing too lile, conversely, burdens the user with work that might have been automated. It can also admit unexpected and undesirable behaviors, sometimes with catastrophic consequences. + +### *Over-Synchronization & e Strange Case of e Canceled Seminars* + +In Apple's Calendar app, the *calendar event* concept that supports the storing of events at given times is composed with an *invitation* concept so that one user can send another a tentative event, which the second user can accept or decline. + +In the original design, deleting an invitation event presented users with a quandary. e *delete* action was unhelpfully coupled with the *decline* action, so you could not delete the event without notifying the issuer of the invitation that you were declining it. is was bad enough if you simply wanted to clear space in your calendar without oending a friend. It was far worse if the invitation were spam. In that case, the notication would aid the spammer, conrming your email address as valid and increasing the likelihood of future spam! + +For many years, a clunky workaround was the only way out: to create a new calendar, move the event to it, and then delete the new calendar in its entirety. Eventually (sometime in 2017), Apple uncoupled the delete and notify actions (Figure 6.9). + +e very same design aw, but in Google Calendar, turned out to be the source of a puzzling problem that my lab had with seminar announcements. Oen a seminar cancellation would be sent shortly aer the initial announcement. e organizer would then send a follow-up, reassuring people that the seminar had not in fact been canceled. It turned out that the cancellations were spurious. Individuals in the lab were receiving notications of research seminars, and adding them as events in their personal calendars. en when + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_6_Picture_1.jpeg) + +fig. 6.9 *e original Apple Calendar dialog that unhelpfully always synchronized deleting an event with notifying the sender (le), and the most recent version (right) that xes the problem by making the synchronization optional.* + +someone deleted such an event, a cancellation message was sent spontaneously by Google Calendar to the email address associated with the initial invitation—which in this case was a listserv with more than a thousand members! + +Some other examples of over-synchronization: + +*Tumblr's questionable design*. In the Tumblr blogging platform, if you wanted to allow people to comment on your post you could insert a question mark at the end of the post's title. In this kind of synchronization, whether one action (here, creating a *post*) produces an accompanying action (enabling *comment*s) depends on the exact *content* of the arguments to the rst action. is is not only an unwelcome synchronization—what if your title were a rhetorical question?—but also makes the *title* concept no longer generic (see "Concepts are generic" in Note 48) and thus harder to understand. Later, Tumblr made it possible to check a box instead. + +*Replies in Twier*. A similar issue arose in Twier. Until mid-2016, a *tweet* that began with a username was interpreted to be a reply. is led, amongst other things, to a convention in which people wanting to mention someone else at the start of a tweet, but not to make it a reply, would insert a period before the name ("*.@daniel Really?*"). + +*An unwanted Google synchronization*. If you have a Google account whose *username* is an external *email address*, and you add Gmail functionality to the account, your username will be automatically changed to match the new Gmail + +email address, and you will not be able to reinstate the old username and email address!74 + +*Epson's tyrannical printer driver*. In its photo printers, Epson understandably wants to prevent users from making certain combinations of seings that might damage the printer. For example, it seems reasonable that you should not be able to select "thick" for the *paper option* along with a *paper source* seing that feeds paper from the top (which requires it to bend as it enters the printer). But the printer driver goes further, and prevents you, when selecting the top feed, from using most of the ne art paper seings, presumably on the grounds that these seings only apply to thick papers. is is wrong, however; many ne art papers are thin and exible, and this constraint forces you either to feed such papers through the front (which is much less convenient since each sheet must be manually loaded), or to feed them through the top, but to print with incorrect ink seings. + +### *Under-synchronization and a Group at Could Never Be Joined* + +A year or so ago, I wanted to create an online forum for neighborhood discussions, so I set up a Google Group for the purpose. Since I did not know in advance the user names of my neighbors, I sent them a link to the group, suggesting that they request to join. + +Unfortunately, this did not work, and people were unable to even access the page with the ask-to-join buon. I thought I'd set the group up correctly; in particular, under "permissions" (Figure 6.10, top) in response to "Select who can join," I'd chosen "Anyone can ask." + +It turned out there was a dierent seing that determined whether the group appeared in a directory of groups (Figure 6.10, boom). Unless the visibility of this feature was set to "Anyone on the web," the group was not only excluded from the directory but was not accessible at all, even for join requests! + +e lack of a synchronization between the action that determines who can join (in the *permission* concept) and the action that sets visibility (in the *group directory* concept) got me into this mess. Since then, Google has tweaked the design. Both controls are placed on the same page (Figure 6.11), but they're still not synchronized, so selecting "Anyone can join" for "Who can join?" won't work unless you also change "Who can see group?" from the default seing to select "Anyone on the web." + +| ▼ Permissions | | | +|------------------------------------|-----------------|-------------------------------------------------------------------------------------| +| Basic permissions | View topics | Select groups of users ▼ ✓ All members of the group | +| Posting permissions | | These was an view tonics in this around if was a superious travible about | +| Moderation permissions | | These users can view topics in this group. If users experience trouble, check y | +| Access permissions | | | +| ▶ Roles | Post | Select groups of users All members of the group | +| ▼ Information General information | | These users can post messages to this group. | +| Directory | Join the group | | +| Content control | Join the group | Select who can join Anyone can ask | +| Web view customization
    Advanced | | | +| ▼ Information | Group directory | | +| General information | Group directory | All members of the group ▼ | +| Directory | | Listing a group in the directory will make it easier for people to find your group. | +| Content control | | Louing a group in the ansolery will make it easier for people to find your group. | +| Web view customization | | | +| Advanced | | | + +fig. 6.10 *Access controls for Google Groups (2019). Top, the options shown if you click on "Basic Permissions" in the "Permissions" tab; boom, the options shown if you click on "Directory" in the "Information" tab. With the default seing of "Directory," the permission seing was ineffectual, since the page displaying the ask-to-join buon was private to members!* + +### Some other examples of under-synchronization: + +*Lightroom import*. Adobe's photo cataloging and editing app, Lightroom Classic, oers a rich importing mechanism that not only copies photos from a card or camera to your hard drive, but can perform an array of additional tasks, such as: moving the copied photos to a preferred location; adding copyright information to the metadata; applying development seings to every photo; adding keywords; building previews; and ejecting the external drive or ash card holding the originals. All of these synchronizations were optional, and were controlled by preferences in a fairly complicated user interface dialog. + +In 2015, the Adobe team released version 6.2 of Lightroom, which included a simplication of the import dialog, removing some of the synchronizations that expert photographers had come to rely on. e reaction from users was so fast and so negative that Adobe actually reverted the update.75 + +*Google Forms, Sheets, and data visualization*. In a lovely example of synergy, Google Forms use Google Sheets, Google's spreadsheet app, as the repository for data collected. e Forms app also includes a nice visualizer that generates pie charts, histograms, and so on to summarize the data. Unfortunately, the visualization is synchronized with a *dierent* copy of the data, distinct from the sheet. As a result, edits to the sheet (for example, data cleaning such as removing duplicate form submissions) are *not* reected in the visualization.76 + +| Who can see group | | +|---------------------------|---| +| Group members | ~ | +| Who can join group | | +| Anyone on the web can ask | • | + +fig. 6.11 *A more recent version of Google Group permissions (February 2021), which helpfully consolidates the permissions for viewing into a single seing, and places it on the same page as the permissions for joining. Unfortunately the default is as shown, and asking to join requires being able to see the group.* + +*Zoom's sticky hands*. In the Zoom video-conferencing app, a participant can raise a virtual hand to signal to the host a desire to speak. While not talking, participants typically mute their microphones to reduce background noise. en when called on, a participant unmutes, makes a point, and mutes again. But most participants forget their raised hands, confusing the host who, noticing a raised hand later, is uncertain whether that person just forgot to lower it, or wants to speak again. Synchronizing the *raised hand* and *audio mute* concepts might eliminate this annoyance.77 + +*erac 25 radiotherapy machine*. A series of catastrophic accidents with a radiotherapy machine in the late 1980s was eventually traced to a synchronization aw. e source of the radiation was an adjustable electron beam that through either (a) a magnetic collimator to focus the electrons, or (b) a aening lter that converted the electrons to X-ray photons (depending on the position of a rotating turntable). + +Patients were irradiated in one of two modes: either directly with electrons or with X-rays. e X-ray production required a high electron current—far more than could ever safely be administered directly. e intent, therefore, was to ensure that the aening lter was in place whenever the electron beam current was high. Tragically, a aw in the synchronization mechanism sometimes resulted in the high current being delivered directly to patients, resulting in massive, fatal overdoses. Although the aw has been aributed to a programming error—a bug in the code that failed to ensure the intended synchronization—a beer design might have prevented it.78 + +### *Lessons & Practices* + +### Some lessons from this chapter: + +- · Concepts are not composed like programs, with larger concepts subsuming smaller ones. Instead, each concept is exposed to the user on equal terms, and a soware app or system is a collection of concepts running in tandem. +- · Concepts are composed by synchronizing their actions. is never adds new concept executions, but constrains existing ones, eliminating some sequences of actions that would have been possible for a concept in isolation. +- · In free composition, concepts operate independently of one another, constrained only by some bookkeeping to ensure (for example) that concepts have a consistent view of which things exist. +- · In collaborative composition, concepts work together to provide new functionality through automation. +- · In synergistic composition, the concepts are yet more tightly intertwined, with one concept's functionality helping another concept fulll its purpose. +- · Composition oers an opportunity for creative design even when the concepts themselves are familiar. Synergy is oen the very essence of a design, bringing unexpected power from the combination of simple parts. +- · Synchronization is an essential part of soware design. Not enough synchronization can lead to inappropriate or confusing behaviors, and miss opportunities for automation; too much can limit the user's options. + +### And some practices you can apply now: + +- · If a concept you're designing seems complicated, try thinking of it instead as a composition of simpler concepts, which may be easier to describe and justify (by having a clearer purpose and more compelling operational principle). (More on this in Chapter 9.) +- · When picking concepts, be on the lookout for familiar concepts to reuse (Chapter 10). For example, you might identify a *notification* concept and then see ways to use notications more uniformly throughout your app. +- · In design, decide rst which concepts to include, and then how they to synchronize them. Start with synchronizations to remove bad behaviors. en consider automations, but make sure to leave enough exibility to the user. +- · Look for synergies in which you can simplify a concept by composing it with another. But remember that perfect synergy is rarely aainable. + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# Concept Dependence + +When concepts are composed, they play specic roles in their relationships to one another. For example, when we bring together *label* and *todo* so the user can aach labels to todo tasks, the *todo* concept becomes a kind of subject to which the *label* concept is applied. + +e composition itself is symmetrical, because synchronization treats synchronized actions as equals. Nevertheless, composition can introduce an asymmetry in the way in which one concept augments the functionality of another. e *label* concept extends the functionality of the *todo* concept: now, in addition to adding tasks, we can label them. e converse would make no sense: nobody would start by building an app for labeling things, and then extend it with tasks that can be labeled. + +ese asymmetries reveal important structure in a soware product, which this chapter explores. I'll explain a *dependence* notion amongst concepts that can be depicted in a simple diagram, which oers a helpful summary of the concepts and their roles. + +It may seem paradoxical to introduce a notion of dependence when I have insisted that concepts are mutually independent. ere is in fact no paradox here. e very essence of concepts is indeed that they can be understood and implemented in isolation. e dependencies discussed in this chapter arise from the role that concepts play in the context of the product as a whole, and is more a property of the product than of the concepts it contains. + +### *Growing a Soware Product Concept by Concept* + +Some soware products must emerge from the womb fully grown. An aircra or nuclear power station cannot be deployed with soware that is only a "minimum viable product," with a plan to adjust the soware as needs arise. + +But in most cases an incremental development is beer, because it allows the developers to get early feedback on their design work, assess the value of + +the work already deployed, and handle mists as they are discovered. So it's useful to think about designing a new soware product as *growing* it, a few concepts at a time. + +Not all growth involves the addition of concepts. Sometimes a concept will be removed, perhaps because it is found to be less useful than expected, or because it has some critical aw that is not easily remedied, or because its functionality can be subsumed by extending another concept. Sometimes the existing concepts will be rened and polished, ideally becoming not only more powerful but also more compelling (in their purposes and operational principles). And sometimes—the most exciting case—a synergy is discovered (with or without the addition of a concept) that extends the product's capabilities without a concomitant increase in complexity. + +Unbridled growth can be the downfall of excellent products. Ambitious redesigns of small but successful systems are especially subject to what Fred Brooks, an inuential IBM manager, called "the second-system eect" in which overcondence leads to bloated and needlessly complex solutions.79 + +For all these reasons, it's useful to be able to represent succinctly the possible growth of a soware product, and—equally importantly—the ways in which it may be trimmed back. is is what the concept dependence diagram provides. + +### *Building the Concept Inventory* + +I mentioned in Chapter 3 how concepts can give you a map of an application—a kind of concept inventory that gives you an overview of its functionality and purposes. Let's see how this map comes about, using an imaginary app as an illustration. + +roughout, I'll discuss it as if you were designing the app alone; of course, in practice, most design work is done in teams. I'll also talk only about which concepts to include, ignoring all the critical questions about the actual design of the concepts. + +Suppose you love bird song, and want to build an app to help people identify birds from their calls. at's the essential need: someone hears a bird call and wants to know what kind of bird it came from. And presumably people who want this also want to hear the song of a particular bird species. + +You think about how such an app might work. Maybe a user uploads an audio track, then other people listen to it and make suggestions. Now you start + +### 7: concept Dependence + +brainstorming some concepts. Before inventing a new one, you try some existing ones for t. How about the *q&a* concept used in forums (such as StackExchange, Quora, Piazza, and so on), in which someone asks a question and other people provide answers? + +In fact, you might ask, why not just use one of those existing apps? Oen that will be the best approach to solving a problem. To make sure that it isn't, you'll want to note some limitations of the existing solutions and check that they really maer. Perhaps in this case you discover that none of them let you easily upload and playback audio recordings; maybe it's important to have a nice integration so you can record a song and post it in a few clicks. + +So now let's suppose you've convinced yourself you need to design a new app, and you have some *seed concepts*, such as *q&a* and *recording*. What additional concepts are necessary to make a coherent app? Obviously, since you're relying on crowdsourcing, you'll want some concept for achieving consensus, so you might add *upvote* so that users can approve an answer. + +As you brainstorm how your app will be used, you realize that you'll need to somehow consolidate the bird identications. Users will likely want to search for particular species, and listen to recordings for which there are conrmed matches. So you tentatively add an *identification* concept, unsure of exactly how it will work. Perhaps when a user answers a question, they can propose an identication by inserting a hashtag, and your app will automatically extract links between species and recordings from the upvoting of answers.80 Finally, you decide to add *user* to authenticate contributions. At this point, you have the rough outline of an app: BirdSong 0.1. + +### *An Inventory of Generic Concepts* + +e concepts we have so far, along with their purposes, are: + +- · *q&a*: support community response to questions +- · *recording*: allow upload of audio les +- · *upvote*: rank contributions based on individual (dis)approvals +- · *identification*: support crowdsourced assignment of objects to categories +- · *user*: authenticate content and actions + +Note that each concept has been given a generic purpose. Of course, in the context of the articular app, each concept will be specialized. For BirdSong 0.1, the questions will be about bird calls; the audio les will contain bird songs; + +the contributions that are upvoted will be proposed answers or identications. Even the *identification* concept, which might have seemed to be very bird-specific, has been cast in more general terms, in the hope that this will make it easier to draw inspiration and lessons from related concepts (such as *tag* in Facebook). + +Making the concepts generic not only makes the reuse of design knowledge from previous applications possible. It also helps simplify the design. e less bird-specic any concept is, the easier it will be to understand. Maybe you're tempted, for example, to include in the *identification* concept whether the bird is male or female. A priori, however, this is a bad idea: until you have more experience and understanding of the app and how it will be used, there's no reason to believe that including this distinction (rather than just treating the male and female as separate birds) is any more important than any other. If you wanted to associate dierent birds, a more plausible start would be to enrich the *identification* concept with a notion of birds being *related*; this could then accommodate not only distinctions of gender, but other variants within a species. + +### *e Concept Dependence Diagram* + +Because each concept is generic and freestanding, there are no concept-to-concept dependencies in the traditional soware engineering sense. But there is a dierent kind of dependence between concepts, related not to the concepts themselves but to their role in the application as a whole.81 + +Take the *upvote* concept. Clearly, there's no point having this concept in the app unless there is something to upvote! Presumably, what's being upvoted is an answer to a question ("at's a #sparrow singing").82 + +So we'll say that *upvote* "depends" on *q&a*, because if the *q&a* concept were missing, there would be no reason to include the *upvote* concept. Collecting together all such dependencies gives the diagram of Figure 7.1. + +Sometimes a concept's presence may be justied by any of several other concepts. In that case, we'll mark one of the dependencies as the primary dependence (with a solid line), and the others as secondary (with doed lines). A secondary dependence represents additional, but less compelling, reasons to include a concept. + +us *user* has a primary dependence on *q&a*, because the main reason for including user authentication is to ensure that questions and answers can be + +### 7: concept Dependence + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_16_Figure_1.jpeg) + +fig. 7.1 *Concept dependencies for a bird song app. A solid arrow denotes a primary dependence and a dashed arrow a secondary dependence. e core concepts are in bold.* + +reliably associated with individuals; and a secondary dependence on *upvote*, because the authentication could be used to prevent double voting too. e second usage is less essential; we could use IP addresses or browser IDs for that purpose instead. + +e diagram tells us which concepts are core to the app and which could be omied. Because every concept depends directly or indirectly on *q&a*, an app can't exist without it—if it includes any of these concepts, it must include this one. But it could exist alone, with no other concept to augment the functionality. is would admiedly be a rather feeble app: lacking *user* means no authentication; lacking *upvote* means no crowdsourcing; and lacking *recording* means that questions would have to describe songs in words, or perhaps link to les elsewhere on the web. + +Any subset of the concepts can comprise a consistent app, so long as there are no dependence edges pointing out of that subset. So *q&a*, *recording* and *upvote*, for example, make an app. In contrast, *identification* and *q&a* do not make an app, because *identification* depends on *recording*. In the context of our app, the *identification* concept provides reverse lookup: given a particular identication, it leads the user to the relevant bird songs. Without *recording*, this role cannot be fullled.83 + +e diagram therefore describes not just one app, but a whole family comprising all the apps that could be built from these particular concepts—what soware developers would call a "product line." Each consistent subset represents an app that might be built. + +e subsets can also represent stages of development. At any point in the development, you'd like to have a consistent subset implemented in order to be + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_17_Figure_1.jpeg) + +fig. 7.2 *Concept dependencies for Facebook (le) and Apple Safari (right).* + +able to evaluate it as a coherent unit. If you implemented a set that included *upvote* but not *q&a* you'd have trouble making a compelling demo or test, because there would be nothing to upvote. + +Finally, the diagram provides an *explanation order*. You can't explain an app all at once, so you explain the concepts in order, one or two at a time. But what orders make sense? Dependencies tell us how to avoid introducing a concept before it can be motivated. So if we were explaining our bird song app to a novice user, this order would make sense + +*q&a*, *upvote*, *user*, *recording*, *identification* + +but this would not + +*upvote*, *q&a*, *user*, *identification*, *recording* + +because it introduces *upvote* before *q&a*, and you can't explain upvoting without something to upvote (just as you can't demo it). + +### *e Structure of Some Familiar Apps* + +To illustrate the concept dependence diagram further, and how it can provide insight into designs, let's look at the structure of some familiar apps. + +*Facebook*. Figure 7.2 (le) shows the key concepts of Facebook and their relationships. e base concept, of course, is *post*. Comments are on posts, so the *comment* concept depends on the *post* concept. e *reply* concept oers threaded conversations about comments. e *user* concept oers authentication for posts primarily, but also for comments, replies, tags and likes. + +e *friend* concept is interesting; since its purpose is to allow users to control access to their posts, it depends not only on *user* but also on *post*. e *tag* concept + +### 7: concept Dependence + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_18_Figure_1.jpeg) + +fig. 7.3 *Concept dependencies for Apple Keynote.* + +involves identifying users that appear in posts, so it depends on *user* and *post*. Finally, the *like* concept depends primarily on *post*, but is also used for comments and replies.84 + +*Safari*. [Figure 7.2 \(right\)](#page-17-0) shows the key concepts of Apple's Safari browser. As you'd expect, *url* is the base concept; for easier layout, I've put it in the middle rather than at the boom. e *url* concept embodies the idea that resources (namely web pages) can be obtained by sending requests to servers with persistent names (namely, uniform resource locators). e *html* concept allows these resources to be marked-up pages, but most of the browser concepts are not dependent on this and could still be used in a browser (admiedly, a rather feeble one) that does not include HTML rendering. e *cache* concept depends only on the *url* concept; it helps the browser run faster by storing the resources returned by previous requests to a given URL. e *certificate* concept makes sure that the server the browser talks to really corresponds to the domain name in the URL, and so depends only on the *url* concept. e *private browsing* concept oers a mode in which cookies are not sent to servers, safeguarding the user's identity, so it depends on *cookie*. + +At the top of the Safari diagram is the *bookmark* concept and three variants of it: *favorite*, which, like *bookmark*, allows you to save URLs to visit later, but displays these URLs in the toolbar and on every new tab you open; *frequently visited* + +which creates bookmarks spontaneously from sites you've visited many times; and *reading list*, which is also just like a bookmark, but tracks whether a page has been read (and also downloads the page for oine reading). e proliferation of these very similar concepts, and the subtle dierences between them, suggests an opportunity for more synergistic design. e ability to access pages of ine and mark pages as read could be added to all bookmarks. And frequently visited sites, like favorites, could be added as a special folder within the regular bookmarks so that they could be deleted if unwanted.85 + +*Keynote*. [Figure 7.3](#page-18-0) shows the key concepts of Apple's slide presentation app, Keynote. As you'd expect, the *slide* concept sits at the base. e *special block* concept generalizes the title, body, and slide number which appear optionally on each slide, and are given default formats in *master* slides. e *theme* concept allows a collection of masters to be shared across presentations (for consistency and ease of use), and naturally augments the *text style* concept (by playing the role of a *stylesheet* concept that brings together a collection of styles for reuse across documents). + +In addition to the *special block* concept, there is a separate concept of a *text block*, as well as a *shape* (which can also hold text, but does not expand automatically to t the content). Text is always broken up by *paragraph*. ere are two instances of the standard *style* concept, one for text in paragraphs and one for shapes. e *layer* concept supports stacking of shapes and text blocks (with the "send to back" and "bring to front" actions). e *animation* concept primarily supports progressive reveal of points in special blocks, but can also sequence the appearance of shapes and text blocks.86 + +### *Lessons & Practices* + +Some lessons from this chapter: + +- · Concepts are freestanding, and independent of one another: a concept can be understood, designed and implemented by itself. is independence is key to the simplicity and reusability of concepts. +- · In the context of a soware product, dependencies arise—not that one concept relies on another for its correct operation, but because inclusion of one concept may make sense only if another is present. + +### 7: concept Dependence + +· e dependence diagram gives a succinct summary of a product's concepts and the motivations for including them. It helps plan the order of design and construction, identify subsets, and structure explanations. + +And some practices you can apply now: + +- · When you are designing an app, think about growing it one or two concepts at a time. At the start, identify a few seed concepts that will form the basis for all subsequent growth. +- · Draw a dependence diagram to get a succinct view of the concepts in your app and their relationships. Each time you add a concept to your design, think carefully about which concepts it depends on: more is generally beer, because it means the concept is used more extensively. +- · When considering what order to prototype or build the concepts in, refer to the dependence diagram, so that at any point you have a coherent subset. +- · To explore ways in which an app might be simplied, evaluate the consistent subsets and estimate how much value each brings. Perhaps there is a subset that brings most of the value for only a small part of the cost. +- · When writing a user manual or developing training materials, use the ordering dened by the dependence diagram to present concepts in the most e cient and rational sequence. + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +## Concept Mapping + +You can think of the concepts of an app as running in the background, behind the user interface. e interface provides buons to activate the actions of the concepts, and visualizations of the concept states. So when a user clicks on the "like" buon of a social media post, an action of the form *upvote.like(u,p)* is activated, telling the *upvote* concept through its *like* action that user *u* approves of post *p*. e result of this action—a change in the state of the *upvote* concept—is then reected in the updated count of likes displayed to the user. + +Creating a user interface involves more than visual design; its essence is the design of a *mapping* from the underlying concepts to their material form in the interface. e interface designer shapes this mapping, usually by creating multiple screens and dialogs, connected by ows and links, and then embedding within them controls and views that connect to the concepts actions and states. + +e design of mappings has been extensively studied by human-computer interaction researchers, and the guidelines that have been developed—mostly at the physical and linguistic levels of design—apply equally well to systems that have been designed with concepts.37 + +But concepts oer a chance to rene (and maybe even rethink) the relationship between the conceptual level of design and the physical and linguistic levels. So this chapter focuses on examples that illustrate how tricky and intricate mapping design can be, and how deeply it must be informed by the underlying concepts. + +### *How to Make a Simple Concept Hard* + +Even if the underlying concept is simple, it's still possible to design a mapping that makes it hard to use. Last week, a message popped up on my desktop asking me if I wanted to upgrade to the latest version of Oracle Java. I clicked yes. When I ran the installer, it displayed a dialog with two buons, one labeled "Install" and the other "Remove" (Figure 8.1). + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_23_Picture_1.jpeg) + +fig. 8.1 *A puzzling dialog in a Java installation process. What does "remove" mean?* + +Now you might imagine there was no room for confusion here, and yet I still managed to confuse myself. Presumably the install buon invokes the action that installs the new version of the soware. But what does the remove button do? Apparently, it removes whatever version I have currently installed, and then does nothing. + +ese might seem like reasonable interpretations; aer all, that's prey much what the words "install" and "remove" mean. So why was I confused? Well, for one, I had just just downloaded and run the installer in response to a prompt to upgrade, so it's unlikely that my goal was solely to remove the old version. Furthermore, many installers give you the option of either removing the old version, replacing it with the new one, or just installing the new one so that you have a choice of which version to run. Since the remove buon was highlighted as the default, that seemed to be the most likely interpretation. + +Perhaps the designer of this dialog was aware of this confusion, and that's why it includes what Don Norman would call a "user manual": the wordy explanation that includes a sentence telling you what install and remove do. + +What might have been done instead? First, we might note that the *install* concept has two distinct operational principles, one in which you install and use an app, and another in which you uninstall it and reclaim the space. If the intent were to support both of these, they might have been oered as separate workows, perhaps in separate tabs (and with the installer shown as the default, especially when following a prompt to upgrade). Second, removing an + +### 8: concept Mapping + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_24_Figure_1.jpeg) + +fig. 8.2 *e petition owner's view of a change.org petition reveals a small deception: signers are shown a lower count (the 683 on the right in the body of the petition) than the actual count visible to the owner (the 698 in the admin bar at the top le).* + +old version to replace it with a new one is very dierent from uninstalling. e former could be presented as an option ("remove old version?") next to the "install" buon; the laer might be labeled "uninstall" rather than "remove." + +Anyway, poor reader, I suspect you've heard enough of this unremarkable example. Suce it to say that conceptual issues lurk, even behind a dialog box with only two buons labeled with common English words. + +### *Including a User Manual in the Interface* + +Sometimes a concept is suciently complicated that even the best designer will not be able to convey the meanings of actions or states without some additional explanation. In Chapter 2, I described how the Backblaze message "You are backed up as of: Today, 1:05 pm" was misleading due to the complexity of its *backup* concept. + +It didn't mean that any le saved before 1:05 pm was safely backed up. To counter this interpretation, I might reword the message to "Last backup: Today, 1:05pm," and include a sentence underneath saying something like "is backup included all les saved prior to the scan that began at 12:48pm." Alternatively, and more conservatively, I might instead display the message "You are + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_25_Picture_1.jpeg) + +fig. 8.3 *An invitation to support a change.org petition. Or is it?* + +backed up as of: Today, 12:48pm," and append below "is backup was completed at 1:05pm." + +is is the approach Apple takes in the dialog for its *do not disturb* concept. Below the checkbox for "allow repeated calls," whose interpretation is far from obvious, a comment in a smaller gray font adds: "When enabled, a second call from the same person within three minutes will not be silenced." + +### *Dark Paerns: Intentional Obfuscations* + +A company can nudge users to behave contrary to their interests, performing one action over another, or not performing an action at all. Oen this is done with a mapping that intentionally (and maliciously) obfuscates the underlying concepts.87 + +e petition site, change.org, contains several such obfuscations. A few years ago, I created a petition to persuade our mayor not to locate a new city building in the middle of a local park. I noticed that every time I viewed my own petition ([Figure 8.2\)](#page-24-0), the number of signers seemed to be growing second by second, with the count rising as I watched. + +en I realized that, since I was the owner of the petition, a count in the top le of the screen, shown only to me, revealed the actual number of supporters. If I waited, aer a few seconds the growing count would always shoulder o at that actual number. Every time the petition is displayed, the count starts below + +### 8: concept Mapping + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_26_Figure_1.jpeg) + +fig. 8.4 *Two buons, one stacked above the other (and colored yellow and blue on the site itself), for apparently distinct actions of the Amazon Prime concept, but actually both bound to the same action.* + +the actual number, and then immediately starts rising, giving a false impression of real-time activity. + +More insidiously, aer you sign a petition, you get a request to make a donation ([Figure 8.3\)](#page-25-0). Most people assume, quite reasonably, that this *donation* concept is synchronized with the *petition* concept in a particular way: that their donation is being passed to the petition organizer to help them fund their cause. In fact, the money pays for advertising on change.org (whose domain extension is misleading too: it is *not* a nonprot). In the case of my own petition, supporters contributed over \$2,000 to change.org. Had I understood the operational principle of "chipping in," I would have warned my signers against it. + +Sometimes, a mapping obfuscates which action will occur when a buon is pressed. On Amazon's UK website, I was oered a chance to sign up for a free trial of Amazon Prime, and presented with what seemed like two buons: a yellow buon labeled "Try Prime FREE" and a blue buon below it whose label began with the word "Continue" (Figure 8.4), suggesting it might mean "continue without Prime." In fact, the full buon label reads: "Continue with FREE One-Day Delivery." at is, *both* buons activate the *signup* action! e option to continue *without* signing up is provided by clicking on the much less prominent blue link to the le of the buon. + +A mapping may control your behavior simply by withholding important information or making it hard to access. Many airlines, for example, make it hard to nd the expiry date on your frequent yer miles, hoping that they will expire + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_27_Picture_1.jpeg) + +fig. 8.5 *Labeling in Gmail: a conversation with two labels, "hacking" and "meetups."* + +before you realize. (is is just one respect in which the *frequent flyer* concept oen seems to be designed counter to the interests of yers.) Likewise, PayPal has been accused of hiding users' account balances, which—combined with the lack of a synchronization that automatically transfers received funds to an external bank account—maximizes the balances that users maintain at their expense (and PayPal's prot). + +### *Mapping Complex Compositions: e Mysteries of Gmail Labels* + +Google's email service, Gmail, provides the concept of *label* for organizing messages. For example, you might dene a label *hacking* and ax it to messages in which you discuss programming with your geek friends. en if you want to nd an earlier message that you remembered was about programming, you could lter on that label. + +is is a nice example of synergistic composition that I mentioned before (in Chapter 6). By using special "system labels" for sent and deleted messages, the *label* concept unies all kinds of lookups. e buon labeled "Sent" that takes you to a view of sent messages, for example, simply invokes a label query on the *sent* label. + +Gmail also provides the concept of *conversation*. Its purpose is to group together the messages associated with a particular thread of discussion, so that you can see a message, its reply, the reply to the reply, and so on, together. + +Composing and mapping these concepts together is challenging. e designers of Gmail chose to *ax* labels only to messages, but to *show* labels on conversations. is leads to some strange anomalies. In Figure 8.5, a conversation appears to carry two labels, *hacking* and *meetups*. And sure enough, if you lter on either label separately, that conversation appears. But if you lter on *both* labels, the conversation does not show (Figure 8.6). + +Although surprising, this is not a bug. e labels shown against a conversation are the accumulated labels of all the messages it contains. In this case, one message in the conversation has the label *hacking* and another has the label + +### 8: concept Mapping + +| Q label:hacking | | +|-------------------------------|-------------------------------| +| □ - C : | | +| ☐ ☆ Alyssa, me 3 | Inbox meetups javascript | +| Q label:meetups | | +| □ - C : | | +| Alyssa, me 3 | Inbox hacking javascript | +| Q label:hacking label:meetups | | +| □ - G : | | +| Q No | messages matched your search. | + +fig. 8.6 *A label ltering surprise in Gmail: a conversation seems to match both the "hacking" and "meetups" labels, but is not shown if you query for both of them.* + +*meetups*. So the conversation is shown as having both labels. But since no *single* message carries both labels, ltering on the two together yields no results. + +You may wonder how dierent messages in a conversation could end up with dierent labels. When you select a conversation and add a label, it gets added to every message in the conversation. But you can dene rules that ax labels to incoming messages based on their contents. And when you add a label to a conversation, it only aects the messages currently belonging to the conversation; messages added later do not automatically inherit the label. Moreover, some labels (such as the *sent* label) are applied automatically to individual messages. + +In practice, the most troubling consequence of this design is more mundane: when you lter on a label, you get all the conversations containing messages with that label, but you can't tell which particular messages within a conversation actually carry the label.88 + +When you click on *sent* in Gmail to see the messages you've sent, for example, you get a list of *conversations* in which the sent messages are embedded, which includes messages that were not sent by you. e designers of Gmail mitigated this problem by showing the sent messages expanded by default and the rest compacted (Figure 8.7). But this distinction is not always easy to see.88 + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-091-120/_page_29_Picture_1.jpeg) + +fig. 8.7 *Filtering on sent messages in Gmail: the sent message is the rst of the two.* + +Worse, this default-expansion strategy appears to be applied only to sent messages. In other cases, all messages in a conversation are compacted except for the most recent message. is discrepancy is evidence that Gmail's designers are aware of this problem but have not yet solved it.89 + +### *Understandable but Unusable: Backblaze Restore* + +In all the examples we've seen so far, the problem has been a lack of clarity in the user interface: an uncertainty about the meaning of its controls and views in terms of the underlying concepts. Sometimes, in contrast, the meaning is clear enough, but the mapping makes it hard for users to perform the actions or get the information they need. + +Backblaze (as I mentioned in Chapter 2) is an excellent backup utility that I've used for several years. e backups indeed run blazingly fast (up to about 200 GB per day), the setup is straightforward, and the service seems to be reliable. Moreover, restoring the latest version of a le is easy: you just go to the restore page of their website, select the le, and click to download it. + +Restoring older versions, however, is not so easy. e dialog (Figure 8.8) lets you navigate the le system (on the le) to nd the folder you're interested in, and (on the right) lets you select which les in that folder to download. + +To restore an earlier version of a le, you can enter a date at the top of the dialog. ere are in fact two dates. By seing the *from* date, you can include only \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-091-120/concepts-091-120_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/concepts-091-120_meta.json new file mode 100644 index 0000000..76dc1f0 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-091-120/concepts-091-120_meta.json @@ -0,0 +1,2358 @@ +{ + "table_of_contents": [ + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 165.375, + 40.86962890625 + ], + [ + 286.1159973144531, + 40.86962890625 + ], + [ + 286.1159973144531, + 52.36962890625 + ], + [ + 164.513671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Synergistic Composition", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 164.29833984375, + 212.69598388671875 + ], + [ + 263.0215148925781, + 211.7021484375 + ], + [ + 263.0215148925781, + 224.69601440429688 + ], + [ + 164.29833984375, + 224.69601440429688 + ] + ] + }, + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 165.59033203125, + 40.86962890625 + ], + [ + 286.11041259765625, + 40.86962890625 + ], + [ + 286.11041259765625, + 52.36962890625 + ], + [ + 164.72900390625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.7624053955078, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "e Beautiful Synergy of Trash & Folder", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 132.2138671875, + 167.4755859375 + ], + [ + 295.7919921875, + 166.1748046875 + ], + [ + 295.7919921875, + 179.69601440429688 + ], + [ + 132.2138671875, + 179.69601440429688 + ] + ] + }, + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 165.375, + 40.86962890625 + ], + [ + 286.11029052734375, + 40.86962890625 + ], + [ + 286.11029052734375, + 52.36962890625 + ], + [ + 164.513671875, + 52.36962890625 + ] + ] + }, + { + "title": "Synergies Are Rarely Perfect", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 168.17431640625, + 271.86328125 + ], + [ + 282.5519714355469, + 270.5625 + ], + [ + 282.5519714355469, + 284.40350341796875 + ], + [ + 168.17431640625, + 284.40350341796875 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Synchronizing Too Much and Too Lile", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 131.99853515625, + 137.5576171875 + ], + [ + 294.75738525390625, + 137.5576171875 + ], + [ + 294.75738525390625, + 149.7059326171875 + ], + [ + 131.99853515625, + 149.7059326171875 + ] + ] + }, + { + "title": "Over-Synchronization & e Strange Case of e Canceled Seminars", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 75.15087890625, + 257.2294921875 + ], + [ + 353.5644226074219, + 257.2294921875 + ], + [ + 353.5644226074219, + 269.6960144042969 + ], + [ + 75.15087890625, + 269.6960144042969 + ] + ] + }, + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 165.59033203125, + 40.86962890625 + ], + [ + 286.11041259765625, + 40.86962890625 + ], + [ + 286.11041259765625, + 52.36962890625 + ], + [ + 164.72900390625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Under-synchronization and a Group at Could Never Be Joined", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 83.1181640625, + 287.69598388671875 + ], + [ + 345.73388671875, + 286.4970703125 + ], + [ + 345.73388671875, + 299.6960144042969 + ], + [ + 82.2568359375, + 299.6960144042969 + ] + ] + }, + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 166.02099609375, + 40.86962890625 + ], + [ + 286.11041259765625, + 40.86962890625 + ], + [ + 286.11041259765625, + 52.36962890625 + ], + [ + 165.15966796875, + 52.36962890625 + ] + ] + }, + { + "title": "Some other examples of under-synchronization:", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 71.0595703125, + 291.97210693359375 + ], + [ + 278.6124267578125, + 290.724609375 + ], + [ + 278.6124267578125, + 303.47210693359375 + ], + [ + 71.0595703125, + 303.47210693359375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.67041015625, + 40.86962890625 + ], + [ + 276.27099609375, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 151.80908203125, + 52.36962890625 + ] + ] + }, + { + "title": "6: concept composition", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 165.375, + 40.86962890625 + ], + [ + 286.11724853515625, + 40.86962890625 + ], + [ + 286.11724853515625, + 52.36962890625 + ], + [ + 164.513671875, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 185.40087890625, + 77.69598388671875 + ], + [ + 265.8670349121094, + 76.4208984375 + ], + [ + 265.8670349121094, + 89.69598388671875 + ], + [ + 184.53955078125, + 89.69598388671875 + ] + ] + }, + { + "title": "Some lessons from this chapter:", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 59.64697265625, + 96.908203125 + ], + [ + 196.28536987304688, + 95.607421875 + ], + [ + 196.28536987304688, + 108.467529296875 + ], + [ + 58.78564453125, + 108.467529296875 + ] + ] + }, + { + "title": "And some practices you can apply now:", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 59.431640625, + 395.7626953125 + ], + [ + 229.3616485595703, + 394.4619140625 + ], + [ + 229.3616485595703, + 408.3876037597656 + ], + [ + 58.5703125, + 408.3876037597656 + ] + ] + }, + { + "title": "Concept Dependence", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 149.009765625, + 105.36328125 + ], + [ + 303.0359191894531, + 104.0625 + ], + [ + 303.0359191894531, + 126.2142333984375 + ], + [ + 148.1484375, + 126.2142333984375 + ] + ] + }, + { + "title": "Growing a Soware Product Concept by Concept", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 126.1845703125, + 496.5732421875 + ], + [ + 325.3974914550781, + 495.2724609375 + ], + [ + 325.3974914550781, + 509.6959991455078 + ], + [ + 126.1845703125, + 509.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Building the Concept Inventory", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 150.732421875, + 361.6171875 + ], + [ + 277.1770324707031, + 360.31640625 + ], + [ + 277.1770324707031, + 374.6960144042969 + ], + [ + 149.87109375, + 374.6960144042969 + ] + ] + }, + { + "title": "7: concept Dependence", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 167.74365234375, + 40.86962890625 + ], + [ + 283.9263610839844, + 40.86962890625 + ], + [ + 283.9263610839844, + 52.36962890625 + ], + [ + 166.88232421875, + 52.36962890625 + ] + ] + }, + { + "title": "An Inventory of Generic Concepts", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 157.40771484375, + 437.3876953125 + ], + [ + 294.1502380371094, + 436.0869140625 + ], + [ + 294.1502380371094, + 449.6959991455078 + ], + [ + 156.54638671875, + 449.7451171875 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.76791381835938, + 40.86962890625 + ], + [ + 276.243408203125, + 40.86962890625 + ], + [ + 276.243408203125, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "e Concept Dependence Diagram", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 142.76513671875, + 317.390625 + ], + [ + 284.9508361816406, + 316.08984375 + ], + [ + 284.9508361816406, + 329.6960144042969 + ], + [ + 142.76513671875, + 329.6960144042969 + ] + ] + }, + { + "title": "7: concept Dependence", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 168.17431640625, + 40.86962890625 + ], + [ + 283.9321594238281, + 40.86962890625 + ], + [ + 283.9321594238281, + 52.36962890625 + ], + [ + 167.31298828125, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.7680206298828, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "e Structure of Some Familiar Apps", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 139.53515625, + 436.0869140625 + ], + [ + 289.2171325683594, + 434.7861328125 + ], + [ + 289.2171325683594, + 449.7060089111328 + ], + [ + 138.673828125, + 449.7060089111328 + ] + ] + }, + { + "title": "7: concept Dependence", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 167.74365234375, + 40.86962890625 + ], + [ + 283.9321594238281, + 40.86962890625 + ], + [ + 283.9321594238281, + 52.36962890625 + ], + [ + 166.88232421875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 174.20361328125, + 437.6959991455078 + ], + [ + 253.86572265625, + 437.6959991455078 + ], + [ + 253.86572265625, + 449.6959991455078 + ], + [ + 174.20361328125, + 449.6959991455078 + ] + ] + }, + { + "title": "7: concept Dependence", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 167.74365234375, + 40.86962890625 + ], + [ + 283.9322509765625, + 40.86962890625 + ], + [ + 283.9322509765625, + 52.36962890625 + ], + [ + 166.88232421875, + 52.36962890625 + ] + ] + }, + { + "title": "Concept Mapping", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 162.791015625, + 106.2142333984375 + ], + [ + 290.0099182128906, + 106.013671875 + ], + [ + 290.0099182128906, + 126.2142333984375 + ], + [ + 161.9296875, + 126.2142333984375 + ] + ] + }, + { + "title": "How to Make a Simple Concept Hard", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 148.1484375, + 497.2236328125 + ], + [ + 302.95819091796875, + 495.9228515625 + ], + [ + 302.95819091796875, + 509.6959991455078 + ], + [ + 148.1484375, + 509.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "8: concept Mapping", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 177.43359375, + 40.86962890625 + ], + [ + 274.79998779296875, + 40.86962890625 + ], + [ + 274.79998779296875, + 52.36962890625 + ], + [ + 176.572265625, + 52.36962890625 + ] + ] + }, + { + "title": "Including a User Manual in the Interface", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 144.48779296875, + 421.453125 + ], + [ + 307.8135070800781, + 420.15234375 + ], + [ + 307.8135070800781, + 434.6959991455078 + ], + [ + 144.48779296875, + 434.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.67041015625, + 40.86962890625 + ], + [ + 276.27099609375, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 151.80908203125, + 52.36962890625 + ] + ] + }, + { + "title": "Dark Paerns: Intentional Obfuscations", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 132.85986328125, + 377.2265625 + ], + [ + 295.25750732421875, + 375.92578125 + ], + [ + 295.25750732421875, + 389.6960144042969 + ], + [ + 132.85986328125, + 389.6960144042969 + ] + ] + }, + { + "title": "8: concept Mapping", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 177.21826171875, + 40.86962890625 + ], + [ + 274.80010986328125, + 40.86962890625 + ], + [ + 274.80010986328125, + 52.36962890625 + ], + [ + 176.35693359375, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 152.23974609375, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 151.37841796875, + 52.36962890625 + ] + ] + }, + { + "title": "Mapping Complex Compositions: e Mysteries of Gmail Labels", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 83.1181640625, + 242.595703125 + ], + [ + 345.2986145019531, + 241.294921875 + ], + [ + 345.2986145019531, + 254.69601440429688 + ], + [ + 82.2568359375, + 254.69601440429688 + ] + ] + }, + { + "title": "8: concept Mapping", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 177.64892578125, + 40.86962890625 + ], + [ + 274.79998779296875, + 40.86962890625 + ], + [ + 274.79998779296875, + 52.36962890625 + ], + [ + 176.78759765625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.7622833251953, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Understandable but Unusable: Backblaze Restore", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 114.1259765625, + 347.69598388671875 + ], + [ + 314.3582763671875, + 346.658203125 + ], + [ + 314.3582763671875, + 359.6960144042969 + ], + [ + 114.1259765625, + 359.6960144042969 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 103 + ], + [ + "Line", + 37 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 92 + ], + [ + "Line", + 36 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 137 + ], + [ + "Line", + 47 + ], + [ + "Text", + 5 + ], + [ + "ListItem", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 97 + ], + [ + "Line", + 34 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 57 + ], + [ + "TableCell", + 45 + ], + [ + "Line", + 26 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Table", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "TableGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 35 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 3 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 66 + ], + [ + "Line", + 26 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 87 + ], + [ + "Line", + 36 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 54 + ], + [ + "TableCell", + 48 + ], + [ + "Line", + 26 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 2 + ], + [ + "Form", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 66 + ], + [ + "Line", + 29 + ], + [ + "TableCell", + 8 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Form", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 93 + ], + [ + "Line", + 36 + ], + [ + "ListItem", + 11 + ], + [ + "SectionHeader", + 4 + ], + [ + "ListGroup", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 29 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 36 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 99 + ], + [ + "Line", + 36 + ], + [ + "Text", + 6 + ], + [ + "ListItem", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 92 + ], + [ + "Line", + 36 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 90 + ], + [ + "Line", + 34 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 136 + ], + [ + "Line", + 41 + ], + [ + "Text", + 9 + ], + [ + "SectionHeader", + 2 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 113 + ], + [ + "Line", + 38 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 104 + ], + [ + "Line", + 34 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "ListItem", + 2 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 54 + ], + [ + "Line", + 21 + ], + [ + "ListItem", + 5 + ], + [ + "Text", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 67 + ], + [ + "Line", + 29 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 53 + ], + [ + "Line", + 25 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 51 + ], + [ + "Line", + 22 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 55 + ], + [ + "Line", + 23 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 62 + ], + [ + "Line", + 27 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 90 + ], + [ + "Line", + 32 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 55 + ], + [ + "Line", + 23 + ], + [ + "TableCell", + 18 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Form", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 58 + ], + [ + "Line", + 23 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-091-120" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_10_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_10_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..08767d12353e8d79ec17d78834d20ca7cd9db11c GIT binary patch literal 21354 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 F{{!eOox=bC literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_16_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_16_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0e0e57b9a59ef0f4d40dbcbe2a6138672c81386a GIT binary patch literal 10784 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_19_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_19_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c1875786246b3e6367d831ab3aacd1b777bcdaf9 GIT binary patch literal 19789 zcmd42by!qS{4ai%r6r`4M!KYzZjo+Kfu#f_mJkV*UP3`vq+4QvrKChjDWwsR1_41z zy1TgtKk=>K?|JUMf8FJobM`EA=A4;%&pTf4*IfR%oCdCIsHm#|5C{N3z(3$}0#E|* zadGi*aq#i*@CXR-35h6)iLPBEq9LasrDULGVq~DDr@zI<&v}dGHY+_nmpJ!rK_M6n z#>6QpDbNK}z!-v#iF+(9N02UbpN(Q-X z0hqw|#DVZj{17(V6(Hcgns}8T4xq^6PJ*bQo5_GqN=8@ zVR-NU10!P-xXmM5J9`I&qlf3yXV1O7eL`Nm3=Mnr8Wj^87oU)rl$?^4jmgQ)%P)BU z@l$z4WmR>}=ceYC*0%PJ&Tj*QL&GDZKgPyqX6NRAFDx!CuWaw^?(H8O9vz=t^$P+( z|LPWa{HtUCtzTqdzp${eq1bp={eoaU2Md%88;4m4mt0XF&&rL0MK}nb@=kPS*;fKq z5rZu%YxjP_8*H!{_U)^#{ps2NUdMv}uX^@x$Nr;V;{Xv90!|*343Gy7Pq?xI3ICre zrF2Y;1oAt4$oa!dzzI$ID61}1K7y1P;s^7-1oAd7Mh)cK3SYIEHm%{+Z~mzQ&#Loo zkouVJCwd9Q{yHytcL`jZyU1xgOTPrxJt1qJMsF{HrlU)s!1WT~Y&zrF}(yj z!PXQQJC(f_&jcb*5-x!q-%FrkFmbNH<`Q7}b)kzq_zWD-^1KYqIhd3h-|QS)y!+94 zGOdQD&Fz6)|3&+%0!6>x@g=Z!QBH6PjGa4RIr0cdpJ$9jUL6A2v$A#@!C(Izu;4sQ z@>l=5Is|fLp-)v$nTk2bkw3uOTB$78<<|nr8xfa)%|4o7DPOq_8MdEy`(0xgc*&KU z(C(P$R=`GF&awL|)jCi>--H$3`K4-Z6nP22^R(4I{>~hipSlEA^>9vjiR=O8eJa<&yzKF84N)Yr7*u4ab6&TE^y3CF`+FcIbI6*v^ICpy;WO`@$*YSy-j|5{5D=@zlEP1S4;oxH#zf+jmr$+kFggw;8aAgPmw3!Y^*ta zU|6SWH9k{9ZOmB5>Iw$CRrh3^C)DESndqBKKA=GpIAD7C9e^wp*Iy;&`*qt0yke1c zGNeCJ3P?b``RkjLg=yhSVKgVY2hdekI>>jsC__pi>Z|Z@@0~4yWBdDLvyH94;>|ni zJb(3sZ3deyk7X}`@g;c%V`O*5UosUa8;aWQ zJ+fH5cvbMDyz=(?AgCh zD@GEY!R0u%`En!A!wy`_UC%ei57)=TC&h@)e?Hw*U`$k|)Pwv}EN>qfHa}-%8=m|4 zVjVBhU6{%@;vJ*_Cg3| z5|Jp?I`lF5?!&wHs}Hb}=#Ac<;UREdjqGvk-ln&WqF?KETemQ0ak0iPbw09pKZ$r< zh`5PeNBAyI{GlQ?l4pm{07AUhA^-B#xdT)XC8W#pP7Qm>@saZf24IPYekj_e8%PbH zgzR$!^@f%IIys2E1Qe;VO~&!t!}d1+zRb~5)Ko|5tKnS90456saC2c`UzD_SR+X7w z0tToj=sQ6MoRt0dOG{eIabCAV>GD^wsCN1mlujN9f9klv?2DS%A%5Q;>s(yo-Z9Ve z%U5VOK)m`~6ixI*TjlUQox`o@lLy4#->=72;ed0_G?46KNaXk{!skT~oq$k=Juq9kmw;W%j;00^O*-7Fdnkz;2i+dQ! z7!E4RAHve``bIn-l!2nj;4a2L$LbLgu#d%DzZDs>c0;VjAl;t(v`PJ}z(s~(hR;A! zu7ly*lZi)?hDXDzuc*!xvu@~pwUQxAA9hlG$uhcc9SC&SK_Z5Tb~{{2lIbfURoA@J zs9vo=N?eV@Rk;(GPYWb(JrkXpT5>Zh?oK9L7fHR~sCiS*az7GrJj$RfM8E%0tzc&- zZ=@0(>0iCe3jJxI=p3c+JT-vIPI)I2M>ERz08MDDhUth7Ys~S<2ze@6KZvc(vCKM` zK3n$|!(w)wFg^FPEB<6>-im&dZrmcaT@+&jHzK-nk4TD47bBPhPAV5zO1;Dtj3heg zhjq&Y&JHcV75zfCfAUwhH&wAsGpclVfQ$;#J!zC%J0T3#7U+rL&aF1C<&s?)ZuYMF zmeGVy^=_61zadC*+B28gHPhFod^cT@p;c}|8^L0-5N}OH+?74?Enw@tp@q5^ zYj{2c7qHla%>TMB!}&bNvDdxTHh8^DWp#CVf1$_$T*|Ke3e^O2Gs}9tX zz8WQ)Kz!Co-E5fdS@0Ml$rvdYW&0RwY32Ld%CortIE+cWsvfX!-^x&|d`tX2lNb6k zUN0bSBI5-dR%Sis$L#GYS~dMp;S$ zpR0l^q<>2qRoy+iuY!ax*GYqFXdxZB9DE7z05dLf*O#H!#B$g^lGa^^T!@Oce_dzq zdsWJ*^y6cQ{*jy!@)bPmCcDao$fiXy3fL-sJ|mWw*K~NpUG*tBQB<8ElSb86UK6=k zDd{WPr}rzK>vEOy#qo|_;8=7%!~3yt3Ai=JyEPK2z)VX|j^w`uN~dsTMd48DEBq;5 z?M>Pbri=y3rNgcrX`1}+fRslrbL5iIx z4{~~2GKeNz5+-!K?cY9AF;^JJd#J1N&|zZvMg!1S;WS!J4r?Z3Or8rmj*O#VZh)htjRl%eokUGN&6PjVBhcEbnUyw z>7V5Y#HHjzy?Mce{|BysgGuSD&IM=v&0`s?k%;u()HPs_u3w z(leI+pRK1|ZRB%VHYjUBfu|is>mAtk<7F>_%n&b-%iMVp7Jhcr`os*5TjKL?m&6A-dswFL+*X zc29oZacr$EET6bZ?Z+teoj0t;MV;SV?b5Oz=t>CC~|wBR-~e@`_kjJq!79fg6Og;ZkAF zzi=1HBk{_PP=|!4Eqp2CM%D(@vAVp3H}sNz?5&a0#uqwaY$AFt6d{|QT|Qo!BXmvn_j+ZCczIfFu?MIFaRyS{D8}=wpKsEn#27+(HEK%ndp>vPdQ5$WEB)m%XV(J{ z8ZLoIyAxEQLxY*HmcJm+@N7b0ph(Ait$}xLHxm?2^svbqIF00|I^WB2s@@dafZR%{ zpYP15{uO__>Z3v#Tf&q>FLtShHEZ4ZNTdq|z0e{hVkB!yzTzhd-cL(-#8TIDmX4*L zp47`mIA=3=-dQUgz#uahTtob>ewMcnr7K@o=5CeePrTY57reXe<&uV_o~RQCJg9VvcY_^kC&X8}(TdvPt3g|e#0cH})z zUZNY@8Jji|X!~cL+u2@thC%HK;u>GX>2J*K6<-3xYNa#vlF=aoQFS5fmQt&70>c%R z@=kTpLm4%xTxUGyylqmIufCZ4QY#a<%gKX;DljHHA>JRkwmq*}#Y~!iZ4-s)~YsbZ5Dmein_NErr36v>ZA4o;edsKNrELE9WLmPl6k0Z z@~_{F`kb=WC8{%TaQik0_f8cr?$3Sx6|rAzYr^l!)FngRw{F>CWV)5zMxI;XH1q3I zA^T9og4vD`ow)81J_fI{A6&gxEBLAywZG{#M4gf}$Usqmmkr8NaF7d)!A}Lf1N)e9@E|E-AffIOxVX^}n{jlIvCUF4cBa|4Vd@;d z#dNTxd`ntNBhU8zj}@}8^3NzeZf=o9R3`q?Wwkx{J%A4!;HkQ@4`aZlVVcBDpt zcqN$nDFLVJB=fIJV5Deb^{u8w@+0@o$GRJRZmmKTbkDYNKORyykxP`UY7H`f2;{ki zSMxpvHzq;sz1ndk+sFbJBrNDleu@#HnohikAQerz;1grJC~zH)3l+4y*E=14_1G#k zU_A)qFq1?d*z|GZHsiRZ)YzDcx5W_tPX;d0I|KV;3b9P^`r4;Z+Gf#fMEBMNd1@)9 z0(m=lFnQx8k_+!UM6^^qr^OUYq+1@$(Z%~1*?5XA;?_*+@n-%?wF{K!yi;G*wZ}T} z9v=LOL)E7*8v8jXlUw!I_uWDK+0fMaLFiE3O?REI=|Umq9i^gMcQLmg?FpdvGS$Q3 z{}?f9&_NN>3J6)%&8_Z01D-kS3iNsoP|)tZQXr*vWJC5En)xz1l^g{kXG@2Ws|6*J zy)fY2TbzRO7kyY8Iec2McllW6t!iI;8S;0j)7A5-QBKi_=Y24H7!yBa3R|ftmRNL$RFD)58(KwiF*nk6IlY)>yr&u`xcMzC9 zZCDCGfM)bi9~uZ!=wYw5BE+@%@+DWat4aw~MEXrG4l~`yV#qD4oSM_8hh{k&`4iesMRGo zYGVkP=rInaI{ikM<2Mxx^BPAIuGDcBcIN$rMbmSicIaXolI`Ig#MuT?FHRMyN=ckH zZwKaVR(O93>u{|iAkO0^#Snowm9wT}6RrNw}UOR4A!v=(VXJK^!FIdOU>)gE(nP;ZVq z#gQGsKE>@s#ha2pTDHMu(`DmBKK6->el8dB>Zen{a{(nIEA4#9s=n#(*pyG<1~l}k z_lQIczBMHYI$#ymP-&>NYxE}vn4x;olfoxD1&KX;LgB*R-~F93YZoQ4K8TWIk#h%i zPJS?nmQL8uf86-|wzE`}BS&n{2uZ+7gd^|7+e1P;1wk%o-x=p=tuY-_d&)kx%eTBC zqa+6&>jCEoNxmK*?bLVcHm;6Z*I9bFDU^+ZV?p+ zh||X-P=MJ*)GmR_UnlIVZ#Zh@Uw}A@AuRILq=899JoS)0(P47WC9A-RfK;6IP5sH^d30bRs7ndywr?~=R(ZA>PkremfMBTs5;S27NG26J#hZk^f3OEldsXOy0Y|zRC3Bo zz$n~jzvq$iqmL@u->&-}^q8xv8D87TidcxEFgJUJ=G>wp9@rch3{PMcee3<~@Q@e# z?)v1ec#fwvyI6kGTm@j%U(sbOO5n`S&S5R)c34hid13`-z|1Z+T=pCFqCO>|mFohQki(e%a?|DnZAta2eWLl~ff6(OY$Tcst}7X99D z*85si$;t5xMa^eDoWe9a_CyEg3`M=k6(b9shcA;x88D94npw59CXo+CP%G;dng)I~ z<_3yiRi+2YGA;oEs>uSD-_+rIyboAMiv{HF`Inv#j+ApmeB0I#&h~v?!fCm+I^K0q zNI-29Lx3jkdY2mPVYZO%B}SEh^S*~2xk^_l_Nc6Helo{Hx((DrBXWW9#ehXrDI;eC zAxVHE=JAC$ovf2;bH9JKUL=tE0fYD6r2RKy#HlZk_}PhJbyGS1A%B@UGbcu;-0kuPd(=Kh?^%`WqFI+7 zwtb3{A_fLfs5)|UK}3`pmeAI;>v9yxPOSm?^{R{4KC|2Ac};GYz|DWec?r7wnJX*k z-#Et4>T^SH=^Mql#yJJjUe=U5L*KZlXFc{XEHM$Gfs{7eIhZ964M_>mTTnE}!}d_~ zLK7Hn4A`gWHx0_aDF&oM)Tcreu4zaO=qnI%Z*Tpy%g)P#WBYQ3S^K`l;?83G95Gyg z2(bB^Kt=tqn;r4#Ds4!rqX>2$WXChXMB%zy)f`^{w-I40nxzk-ot3@GZY|=O~Glx1S zwkM?x3%Ye<-^VMm&Ak(|8>IX2GM8^Gv8O+gv%f{LR~&TD^NUi*@4Ne(S{Q?? zLoWfXI-F2@nof?0`Q;n7V;5+EQ=3vO`8Lu{`*+ED^oGmdoW6ecQ)hr{ z`o?=FjG5^jpZIo~TwM0^AFs5$p)y9W$Hs*q3v-J{j8uBPP$?iVVwL}Z?0OZC%TW2#=ig{U4=ljas#N0qeu zWhq^i)f~b%D-_w*NU;}^=)QiX%)@>l^Zbiys02$nUrCJD#e?~$7#y#XVg7XbJy{-a z`yXEz_mk;~o)%=pNQmO0Hro>IaXOb5aKPuPxz}K9iGGeeO)tbg5c(D_XNyf3{aD_I zK3zzGN%Ck%=;oV!Q3mXFvx1V?wo$CP)|7V1FoKY|NQ5H^`hQjR{$imeB@R#iOIMri5*7#%eSv!PpbCIXB7qQJWb)T0{=Xy>$lTQHKVq!Iqry>&=p1iwk{? zi~HEr^0Plsn&Fw=WqxhLKxtisdPOg)M$8I=#c|ViU5dK<=5VP93e09-7## z)L$?WRt!7{9p>wF*g@~p%%-ue;9fKA+GJOqGn=Zj;J&WX+j(4>J_PhUd&2k2=~)T# zPEbyU_nMP|G4>XAxW@cpz;I^Ha-&^j9;`*j5DL9@GRQ_`ME8EM9aYFWt%oE3q0O>8 zYW{SHd>QnKP0?Y5_`k~rvW7%S*#+gcC7_~tP9BW0nB!3*%9lUqQ-B>(CNH@~CEMEF z7awZAN_;gm<0@%xyAXNTl4ytD)+Ld&&hX%tE)IwAEF)R{IV?YM$)U22B*B`cKD}kv588HWXbn2slCiJD~{%}b+yB{ z(jA~5qh6xQ_^~#ei86{2<+Zak%c$;Z{m!3USQ1d@Z<$b0%K1dVeyY-$mDm{*Q9*y= zg}7F5#sy`xZF;nT8Ngig*ojfP-|3uMpeLeL`NH&rCD&%J9v9SFBHlPkQr4-rfz9Ih z)3|Z|vEHW5ruolNCzr?OUnfDF-(4!LoHm4p-N0-&RWDTF`jMBd&F#Ji zPl~3_-=_z&eSFttcC0#5`P;#E$XfC3{G&eBg;ENv2G$|S>S85Qs$F(9bNfAySM9xP zgX_d+t7$#VZ)FjraKrEcJuF6U5zVP!Z!|EVucizo8bxfqyU?)v+y5S=LV*T?^r$99 z^}O;D=oe66(gEW@{42cjs_@Q!m(}*qv%C@M2nZ=Ml&M;&`1e35^57PGacN5sZFW9p zG*(2po^&5{w~ZUu;X8Lg9NGuJI$0HhptcdJy~nQu zsy>?uhot8B_;u&ekA66l9;q6?h9H%gOL^$ytjcGUEn`FV?(vwFQT&Idpc`DdH(Oz{ z%rT3pLxuNuqYc`|;DEoPjK;aLj(2XA7A^2S`cdF-9ixHNL`NS{oq0&ez^BK|*a>ed zD}-*m+#{2eZm=2u=*n)g;qJp2A68&7xx8VLNzN?qt;@QVHE0yPqHHPTvA+-~Wok?B z2AAiu;1&BB2e%4fD!sw#2*rm0GmjWaV&^%>O zd`urrX@ARSlzaPHD|x5T!1^!z?86sGp4EyT15#p#w;ZY|DrElJUPT`}eLdKA(!Q_9 zIA8%Ub~P#a*s7`ArQNOVS%V&|70W$wTTa1!WF@PDFgw1 z0SDX*BfULS0f!@byVLh4CYH5SyBP(eG-r#oM>DHk7mbNcF9dfkff??h7fJ++m3VVz zr%y3LxiJYSKtsb&ef%m(8x*u`9@%7h%>7xFX?NlhxLfa*3wqnXb__lLb+%JMXZ!lU za7AmNUBh7M8&%vuqHUB;oIOlWu!miM@);UC8&)0+wz;YdNLTRes^MX!W@80j-_Kz{ za4T#okYq*C!T~N2z9pp^I}+RN`21p#NsKpq9X`(99xt(&iTi?esgPTV<%48LvEVUP zm)EoH$DT(?^r;@ES^BG5%Dv*O#d6||6|rvaAA-kDP}YvzRm@A!C)N8o!TJj}qP?Ak zSt_PRr>9-%%8rTD7~#79NA$Fvb>vwwyml&I ziVDXR3{$Knd5<<8t3Pl}$jDiKuq~g=!|lA!QmQsFKaNu0!zvwLs-h@aCJ289CQk2e zzki~D^=Y%>@#n(w z_qD9u##wwP)FkjzvCj~8D%|WwZ}{*d|LL7{|H9m|GP0(?h`K&pm!DX?Ub9Qa^TYLG z4BdG&T|W1Wel-qhM7;TOP@Kl{lla9U3^L(R=JG<4`b+U@F4=N~?x7QZ*ELE9dD_O} z#`v7;BqAsvCl`H6eQQx>IBAHXdd*QUiKhOHlGDm^_`1I~jPbtuL+@dF;@b#^e-MivsFwZM67xeR5r`nA){Zoz1J5ngZpJ z+me&B+6s#ord7K|Ht+^kSCN*R8&WjyN=H6wg9_IH-LF8PuA$6+1!w#Z&*RGTMqWww zKYCWX|G((j@l%ZkVSED5Zw!aWoRpl5Td61(C=l~jFzeI`7w zAS=eZk&zl3ruQQsZ#7f*!nf!&M}w7ZC0IUt`6=Fxa=z^mZb&w6<`iRQNzXL7h)pt^ zouc{5mf3hsCNk#{LNGbtnGEf4O5E@Y$n;FoY%(XKh-2)-@bY^Di1R7TCUoA*#D$W2W|e1%w;whd+OR;nq={zZS(WQ+~!H>5NN&FOkdI+HlLuv(@#WV^Es3 zyLq769~LC|V8h3#FXbYVu>kYalqu1jo=M44y3WNmzwYi?KbW4>!$a6Q(Oapv%^5x7 zDkHAOKFcb*Eg;?|>|OkZ3x2TyK*mxYK58cOH?Rr`YV~|3M4fUAPw_s^$L3k-SI@TF z;Xm}sx=}*mHk6Rs+*tP6h%bb-v-YhR^~ofFCl`e_+mXIEbxXRG?_LBREU<#ynu^!z;yu$=)DI-cUfE1hfZw>WI>3JR zUJ-G9nfBto<^?%}{Auqc;MWg^=EPx#zb=l^q^U9wgJkX(a8WZkAQz2stNcu!B+79N zaYRbfK4X=KH^G1=u5}Fr7z~4;w87uY=|9D>pdYU#Kf8cnI{0HI0Dp0iNO0>P9HtZq znYmkKh(A5D*ZD}6ij56S5gwj2_wVt^Yo%@2REE+eEBwrNzxhKCuX}vqwcP81UK_Va z;Tz)MxW7jWk9v^ZTXo#3a}d&8(eAy#2vC-DcAHB0D1%K zjBzjm;NWVNrv%-h7lvvJ7}%f!*`T&`J*yrTAzZ^EE09Wu*t{aqCfMgbt-Bl-w0^MS z7Bd81obCPTIO5AFfvewEdPOmAk&du;o*P3_d9VyqT(B^)afBDMg^<~BL;h~-d`QP{ z@BEY%6CDWb%kpE<7s|J&^7&jBXwyD6^WN2bJ0NhsM}MHafIm40`8h-eOh*?>-+?q& z&!_g`FH;S(G1k!n*wB@)1y~S!R@ATA)Y%>td zBtphei|V?l+xqKEG`5KbR)}OU1IP^|CX%Jj1Bo}H`qWYL$ zF#C$*LMR?1!gR0tI{e#taLRGvz1Z&I5)4x-H|uU`=9y;vAScZnqBM0Qz^PN{d{;|V zGt;=o&Dj=uE!D1`>Fyv-o!ESYs@ZL!4aF6(|G8n6~FNE`ev5Pm)!P)%g^hT5QN?IUhP-d;HYHef!4x4zWZ2@#`L2 zcmoqv9v#I53Wz~*VX#p8+IfVy_l9QGi?Lk~O@^4hmpxsV8z13Hp&VELx>)S&*!nVx zhv4CA(9y`VvIgG?E{IFD5c>sG6I zEXbpF(d&J^{%-U7>Q8+)CTXu4NVb#JGs8 zZMVBnP6V!e4Z{wZkc(ejSF_6o4xS7WZcjqle0B z@QUx^@WkK%kB!w63`jMW*ZB-g$fAhE^_QGpReU!7@tDo%>CB{(?pwLR=WeuZVK~p- z1L9hqrT7QmdBccT!19^b7=Qu~NRpr9G`+s%-(SU}z7CfPt#Hal#G3cAynWNO7~@N% zhbOv?*Yayj*u-Q)j)VO6N1G3LIX;Zh1+4{$KC_lDm{-&umcowXn3IMa(X}u+2w&WgV=RRW5re%m5j!_?UNe4m41^GDveLAprQr%OwMtq)`60` zl=JES91pqzs`0d)S~kWYmU7nvLI~pX{{I^b{`E^>LW%T`6IRU>QG6D`H$L_YrilJ`I#t{IDQ)+>yj( zuzjf7;BD&i7$U!s5lp_~jR0WE^&8uO&h+j5|RamjZ;M64wTiz1;GfvFZm1j|FLzw>$>ZX<+TnC}fw|Sw5B^IwS@ck8v-lz%TD&F5sTG%lY839=0sETS{D;Kk09k z=7=~5^ghVid?i*a7uXNMq^&n4G6ZtxG)Kb5bTKOPrl;MMIJ~Ba|6XVn4Kwo?`zTo zS<7;Ne%lw?jpZb+TLWU6(_0SEoNCTamA%3fr^TJ3JdXo2yHbSqvI3oTBJ7J-PR}g{ z9o+05sh}8rZIFx!L2z@SNfZ4nF9BAaoJ+ux^lTMUh~9pF_LesB+)sYD2p5gNlyjxx zxP1-uAnKaRP>T9z83Y}dz{_`k=Q-Pq?6*>ptv!F^j=;%d6c<|YAF`tb=S(Sq7sn;g zd{8A7iZNIp70yd949U2|JHfj^ild#`UQl&#MxpEaVVx}ahbtOQR7&>M-nQ6$!ni8g zmAbC0OhMQeF?OGM)Hi1of@(g z92g@PV*>6qJ_5~0mncYqRW>Jsj;FGq37KrdF1!WKceqZe8kuS=Pv;**#;e9F(B$b> z%I|c_Z$_)1Cp-9j$vEsNW+lk}27|mikG4ks9v3*B)<1ufcM0@jI9GzpTkPWQIzVqP z!4a#rc;}~-gEQy67k+%;g85O5s4QP8983v6UtN+U_R*d>tYdge81&vx55#qYslurlC2(numB zPlqQ~)IuL#Q!+9|Myc_-DgR6Et1X@u8x(LSkHN7ns4RlmRMbLQW&p~wL*DTO*C}|Y z4vJftU(r2EUMR1Jwyr1nt!8*nk6{k=&?A9~WNq!>MP2puygh?cW~9=+T9dm)8sY9z zBPsqfdj+b$V31_d*Mx4ImX3M2$-l{kB_)fKRg~|(_fViYgtPWivzXab@_bx!za3Q9 z-(KPQzOgpH67=&V^SuIAHUzPka6N)~=;Vpa+gZxuCH6|HIUeMq zaXqXT6Ue2+65;=*r-L&7YXrR52w9%G)xUT#QoeQiOA%&k^kh1GpK6cY%P6SMYW7X7 zSGhUM)VSrRHnl0Cm%XKP3iPC};j=F82fj(lb)_OAcW}k%_llHE8@QZmL{CSDu!?7r z>*g&`V+$X8;eZAg%m#%^X@Jt>x*lj4N8g7d=>T17B)uy?LqFKKIw>EISZ}rW@)AE| zO>sT<<=mmdDCROt=49i(4Gp9xtrwV6|Iq)T5366LS@Q#!AK(^C(aQ~F1oCh&_Y0^T zAeo4-{_hpaYaJj#2shmc6)s4vvaB+PL=MmgDCXr$ENf7v#8OidxyW+o#%teV6Qv{c z!dNMw#0do*Q_z!e3IW{rE(=K%IP~{WayI(m)AzChnWKmX?}QKj^iactL4-*Yk|UFb zqW91wx|G0g`g_~OLU>eCgi36bD~g&RT$^*1^x#5cU6q(%2T+H}SoNZwvR(qZpbASD z?el89Q1J(i;^5U3F7^N_EelbL^%DEJpr4i%TLlA>b2ws9xKv|joR>h%J8uj1%R0B6)bRa7t z$8^MSp&%}tDF^T_eZ@B}>%LDrJ^8u&Yl%pP;9}{V2`L>(Rz0WU4hi7kmzzGEXUo>if<&)nPPjm`Y1{Pra3G$M*weA4iU!dx!CzJq0g?rjyS`R9u z!hJ+pO$lM-b~A9HoGu4iaWU6)?o-{u3Z%Y~_Awo=f)7gb@on4*7vvq{t9K5X5dlnR zg{UBig&=UOKJ`|h5Bd@}NL>wop5}ckuH)d|`^93x>qLexDJc{nG%y^-xEH&dI>ZX3 z%B}oU4i6SG+E$bp3sK3+Ditj0T#%z2v_T)1zNRw3&d&FTN~s6cra|xL#)c>`@gLQK z)24aRz;rwUDc-!XJL_`y?>YSH2w3H&7^;JuC>E5)6=46*w`N|%qzlOaI!VpxW2m=rbCLJ$79&aI*XAMbjhL%|GBq<9@*8 z(P{u1`syI*fh$h{uBZbxw3ir${KG39zv7kV*d2KyTP1TZfzk3SVyTwl^&~XmQ))Ce zWqEZrC6ElOfmtU~0_ee!BpkJ@Kzi;WuDo@O5F{H`>(B~NzBn+8uUF5$(*g70gajDyI4X1BUB}TrUkwfA2u}gkQ!i{rYg303!m=nTkfV~Fl87Cx z&`FV_6;DW*rhJQ$8-WAnE8&eD3dFF%kqm9t6yVskHROWFMfK05kWuw{ zeL%Kq=Ywy5wX(igDGaMQ6`Dar47v&JXJ(WCKPvGrD#?F@ zW-pGITBdl1$Y3rknh!rPTP<=;+mABtZw&7m1>K(cJi@?V@oZp7MJ?HknG*yK-_E*u z$|(AuqrbUg_bfUu*UHS6>1vE@6W)do&m*2Zj<w84+BqfFNNs0?5lp+YA}DimJlS^q9FFaxhp1WI9=abSMCXNRrUl7*^Pd z7Kn^+yQ!ldip6A9#<~D^n^ED#I?AwO=BQ{Di2}kwH!USMookvXcNB0R9>>RmiXv2^ zQr6-TEdXcs9~Fn@P4Rp-UTemD?Aj_3>W;PMn&5?eHyU?5{Ij1oP^A^1Gr>PF>L_|58&0uk^Ux6qZ4~ zE~Lx{=CQ$yHs!rHT9n&rc&Mj>w9g!_8w}_X1AJVVte^-C%nr<=Ty1jGfNS+JJ76$9 z0B#aO9n&L7tIWZzjT_a{Dq)Cd3S@&v-E(wQM&lLB7~TLC&(J?CsjG8nLR24?0WDku zI1Xve*b!cl-=F+@FyBaS^MmHV{MYfQ+z^Cp50fV<76=`Pr7YLO(nk^F6$8xlqc&UF z7aIQ%`$p+~Ms2q+$kwiZ2h!p{4`hQxY1!&rIH>hNfbUPyR9662b#=;<@;KqZiAQtx z1$VK?MZL`>(5H-uHff;01frd^E`d^qOJI)-?v=}obEWY3==HeJP|7&)O;BFBg#Nea zxiCEp%dehNV|uvIc={k0=Bj<7t86AWH-Z?85Rn5*Lj(?L=aFe+1SxG$ItT}#6^fEF zKmk5OZ}bVH9msh0K|xQ6(i3v{I}dtw_f^qAodUf7FW?H=gOZ465yEHscjAqbQb5Yq&n6i^N+3=Z{SuNt6&bVUVW zz{-{I{ZoiJ5CmwfD3ClfFa+7fL+SXbUg^f?7f*woTwB`ZScc?RYe7ZX0t1?rabrP) zS8jbZISy!SS>6wS=yts7f79(EMSq-eF@fWj@ekWB@gJ1;>RcM(wB~rUZX}xzDK|V| z(y+XJLJLGv-fJ+~!*GFVD=A@BjezE#2F@&jbUM2ADqK)X$lk9o(lbN2{og*qV2_t_ zV#~RE+qY|KBR|>+u?-AUArItdoSlCCthfXkk>@_vvQ;qjt_3r=Wyap(;&;{gHrO37 zG<;cBitLrPJe>ojQh{+M#cVVT+|@KTs(SVbyt6_6WDnUiK8jpSEB$i^n)FEzP3d)} z8~eYGe>;I_0n_$XBUL3}K*Vc#3I<i)gGA_u?kP8@O z{Wzz`EAou5=Lxcl?ysAewyK^s9?x90n6Zr}btP7DYC+CCUPbOUjb0qXkWG^#m%!r7 z((@f;TNLBu=eNUGPk35-e0cSi+5%^MlTH`@>&VU6tM+RPo)c~}Z$CHLbor~rt9Ps~ zI;^~^tb5dlSNS++a?^qx91LIMOCZA(jQ_wl2U}UUzwmbfagVE3YA}2j+*egh{#5Az zYv9cufLjOUDjN?w!E}tZEG9*3^bN9UYD9iG1|van6JjacOl52v7p;4C z2qsJxiY+Ha*Vjh*0fbo%w2b3DEiOCrmH!`;0D4K|(gU;MdRRs_TZI=I4`Tmv{YDwg z6Prqpx#7D1Bp@~V|53f**(hW=fNbC~tjimty2}7@7WX+sZJ$#$&T1oi&puK1frQZ+ zV$d`#re+*Y!ar`2B>F#Lju6K_oE#_*VS=y92p}r)K3jFs3k(F&r?ofr$W7rU5`9%s zBQ`Fc?x9CwXB-aul6O%Js0D@sagNjbbRJILZ1&-da&fmLZKivePGgY2?su(T&=*YPDGkjLR4>v&-;DSv*s%en1-49kq-J}X%l&kgvpxi=4s}4sJBtZ-h=xo{TDUhRCq<<%ciFD$)RaZN^Nc@-qs(c$EXC0*YcI zJKylkU+HisCK!%2Cc06yP5X~hi>`^4t;hkRGXv{q1$(E*ahQm@xxB?5j|^%(QYtJ7 zj!BV|KD?AzlvWBs?m`qvXSPJHU4#SV7}Fz$0s^#Ya_z!XfB=U{?HëXDk;B_Cg z%3$Nq`B4A!yL1pWmwqZCo};P@dPV}K%ZK6wpCumI?h~rzY37;VeK|!yrD||*wm!0H zJh|`UMti<8w)U_mD@$%44-^g7GkvTfbG(~s*0CZ{~|G4 z0V5_^G#|G9Sb4`}BK8N#{AlKxcE1Zum(XG4L4Kx9^v5sm?NE+DnRs^{o*jfyjM74J zU5!|TwW^v~M|0%fd? zyX}bt5ow=yEnaTxDp!^bt#7VnlQsJ?C6{~l4pw-Ncw>YnUdcN2z*0mMNIG+fQIQ;R zj1E`|L+cA!Aj*cNw|~p0gjf=u6p`0NOR&xHu~Nl~aLt}yaS z2EQ9C+W0!jGj5+%(}=`#7==d$?|#>WH0`79(=@jR+9X-uR(LE(CEVK~a3(n_lBe)uA!b#i%_+&^ zx7qcpq$7-S`mte^AR8ciht0(1I&}vL1W$6)%re~BRu@N;Y}_{GIQK_5b)XK&sPqD{ zT;)$j{OgaZBs^{9=BVz5>oF5xU=(WF%rCEUDzm8+u(FZ`z{r0_Agqe_5*JFspmqDf*UgSAbW5B*~55s_8JNG$QoxlvEv_oO@9A(SA^|jknS7q9@!l^^)t!!w8Yw7nG~$JaX*qZQR8_wprXRd1Elb zI+%7n^O;pDbRd*PmgC#TfVb8UZcZ8c-Fq_n4k8R43;_=c@K9NtO!ls)E9Ip&+Nv5Z z)yIkMeImUbG{y3yTPd3rr5E3Z@7!hX*eeWRs{M%Cyjjh(jcpqisn5LgE;}eKXKsHYJxaVC7D**=?whw? zEI_JD8eWk&Dw<}^YvPh)$@4P`x4)N0mX~yP_`G5f6=JFt%km}gqnL{KY@p2k=Rsm# zM#Po73GS=ZPu24=AOy??7TzfX{0==FTp;TxyMi4n@J2!m=F*wD~alufE>4e6zPnX54CTo2`lvNTTaDdvyAQyZ@+E+wx`m zU15m^Vf)8ZLaF;DB)rMDYSgn_O2TP$Gbz6uk`f=e?>41V#O#dpmppw_K@A|^A7vuGVeKAMu9ccG$viK(S%2^oAleil4`9_NlZ_Sd?5JBN{EwhATT+Bg zRokMyuSD0yb?XLgf(7IQRNQ~yLDPr(k8J^{vC9fZ3ZZtaekF*&2f?)`CzRbm&TUskDJxfs3hrb+LXzWtV>siONIs!#k-_IC!) zKU3BN`VUWE4e&Jby!`jGgG~I<-`4eSqNS&{ip3k}JuoQjoBBxq%Jp4;;((3zqSOC& z0nduq`Y>qXEC&}~RkleDT&yC%oexedr{~RFzv|1U`8UgMmsQqzmHguRX&TWSd%xwM z;@yg(TNP1v^DYG$s1|>Ee5t|q)sw?I8*dBEH$QW@uNl}Pb@}H5+|50=h5w$#H(C4m zr*Zzk23F_x^xsmq?RKBl|D&h8+y2J2o5zgzTxPz!_3r!|v*z8YKfd_OFR2gf+vWq; z+^t^&+VD~x_+z)}y_uz1vtk5iJ~o`j=VxRX^ZwBH`yY)x?Z4gztC-Xk=O@qq(;hd~m7!2yS+cw7;;>S)zNricM&)?DZTDgmmWLI zJ&BLXhDj!C=G8xbDAt%l2KWfByyOh`rB%`@u_p=sqfaS--UY{!5^Zru(=mX7>4hn^gaH z4M@c+pbGmRL2|%G@BFvw|Na3Ru*Y87KXm^w`(HhOU;0 zLALJ_F#IMVdnWF?D?^3;A5DFs@1RJ11B|li|3sE|wtK(TsK1>F^4(dWIcq=oA30N$ z|7BAB>n%Vfz%gMo&p|E2@EmFo&{`G9dlQk92iSWCKhz&N{%6pKMa}ilhx)7)`wzuu z{xcKSM+H_2m~GWYqc>Rb2O+^mbaUlrKrOnKu^tME)$hGJ=(%nctGwjX2s3{2#Yw5Cm8UUA=ldq&E9w;gxh z{H#n*6W?3(6y4MMz0C?l(}8JWvs;QTsnE*@K+E zuJ66*Ajf6L`C~@?X;5MU=Qp5PlTlL2SD;ynKU5z9hn3(#dF^}CKC$e1G9OF()>f7- j_hj8ab7$hj)3O&g^)NM*Cf?gy1{wT89-tWv?Eg0bFO^Y* literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_20_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_20_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..8bebadac3f0fb9b57312e5bc46b7cf67b236d87a GIT binary patch literal 45001 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_22_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_22_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cca03f4b99f93f46db33faf73388e6bb4d4bd3d4 GIT binary patch literal 10921 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 UJ>>t{>i-XGRR7(nf?&V>50Ml_Hvj+t literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_29_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_29_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..781d21fb4d08529dfefc5c565cf7d522ed43ee51 GIT binary patch literal 30786 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_3_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/_page_3_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3ee074ff3a1d2ff85be54032eb87e11585312bee GIT binary patch literal 38424 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▼ | | | +| Select all folders and files | Name | Size | Modified | +| ▼ □ design book | 00-reading-guide.txt | 10.39 KB | Feb 15, 2021, 07:57 PM | +| ▶ □ archive | □ 01-why-wrote.txt | 11.52 KB | Feb 15, 2021, 08:02 PM | +| ▼ □ book copy | 02-discovering-concepts.txt | 27.51 KB | Feb 16, 2021, 02:54 PM | +| chapters |

    • 03-how-concepts-help.txt
    | 30.92 KB | Feb 15, 2021, 08:15 PM | +| ▶ ☐ images | ☐ 04-concept-structure.txt | 23.22 KB | Feb 15, 2021, 09:15 PM | +| | ☐ 05-purposes.txt | 36.41 KB | Feb 15, 2021, 09:19 PM | +| ayout | 06-composition.txt | 39.31 KB | Feb 16, 2021, 11:29 AM | +| distribution | 07-dependences.txt | 20.31 KB | Feb 16, 2021, 09:04 PM | +| ▶ ☐ ideas | 08-mapping.txt | 26.06 KB | Feb 16, 2021, 09:10 PM | + +fig. 8.8 *e Backblaze dialog for restoring les: the om and to dates lter which le versions are shown, a seemingly plausible mapping.* + +les that were modied aer that date; by seing the *to* date, you choose which version will be restored. For example, if you choose les *from* January 1, 2021 *to* March 1, 2021, you will be shown only les that were modied (or created) aer the start of the year, and the version that you restore will be the last version that was backed up at or before the start of March. + +is sounds ne, but there's a snag. Suppose you discover that an important le got corrupted somehow. You'd like to restore the last uncorrupted version. If you know on what date the corruption happened, you can just enter that date in the *to* box of the dialog. But if you don't know the date, you now have to search through old versions to nd it. + +You might start with yesterday, and move back one day at a time, restoring the le, and checking it until you nd an uncorrupted version. If you know the corruption happened sometime between January 1 and March 1, you'd start with March 1, repeatedly restoring and checking until, in the worst case, you check 60 times and go all the way back to January 1. 90 + +is might not seem like a big deal, but unfortunately, every time you change the *to* date in the dialog, you have to reload the folder tree (which takes about 20 seconds), and then, because the tree has been reset, you have to navigate down again to the le of interest. en you have to download it and examine it. + +Needless to say, this is a laborious process. e underlying concept is ne: the old le versions are all accessible; the problem is that the mapping makes it dicult to get your hands on them. One possible solution to this (adopted by other backup utilities such as Carbonite and Crashplan) is to show all the + +| Version history of "HTML Snippets.html" Back to results | | | | +|------------------------------------------------------------------|------|----------------------------------------------------------------------|--| +| ☐ MODIFIED DATE | SIZE | STATUS | | +| ☐ 2 9/30/2019 11:39 AM | 3 KB | Will restore as "HTML Snippets (Restored) 09-30-
    2019 11.39.html" | | +| ☑ @19/25/2019 10:58 AM | 3 KB | Will restore as "HTML Snippets (Restored) 09-25-
    2019 10.58.html" | | + +fig. 8.9 *e Carbonite dialog for restoring les, which shows a list of all versions of a le.* + +versions of a le together with their modication dates, and let you download them in one go (Figure 8.9). + +# *A Live Filtering Conundrum* + +Suppose an app allows you to display a collection of items, dened by some property that they all satisfy; and that, furthermore, while viewing the collection, you can modify the items. e design question is this: what happens if your modication of an item invalidates the property that made that item a member of the collection? + +Apple Mail's *flag* concept ts this paern: there are ags of seven dierent colors, which users can interpret as they please, and actions to aach a ag to a message, and to display all messages with a given ag.91 + +e *flag* concept maintains, as its state, a mapping from messages to the ags they carry. When you click on a ag icon in the sidebar on the le, the app displays all the messages that carry the ag of that color (Figure 8.10). + +You might think, at rst, that clicking on a ag maps to an action in the *flag* concept that nds all items with that ag. But it's beer to think of the click as part of a more elaborate mapping that switches the interface into a mode in which the agged items are displayed. is is beer because it allows the display to be live, updating on the y if the set of agged messages changes spontaneously (for example, because a message just arrived and got agged by a rule). + +Now the conundrum. What happens if, while viewing the list of agged messages, you select one of them, and remove its ag? A seemingly obvious solution is to remove that message immediately from the list, in order to ensure consistency (namely that the displayed messages are exactly those that carry the given ag). + +#### 8: concept Mapping + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_2_Picture_1.jpeg) + +fig. 8.10 *A skillful mapping of the ag concept in Apple Mail: messages with yellow ags are being shown. e ag has been removed om the rst message, but the message is still listed.* + +In practice though, this would be a bad mapping design. Just think what would happen if you toggled a message accidentally, removing its ag and then wanting to reinstate it. When you removed the ag, the message would disappear from the list, your selection now cleared. You may not even be able to nd that message to reinstate its ag—ironic, since you likely agged certain messages *precisely* because nding them was hard!92 + +A preferable behavior is, counterintuitively perhaps, to not update the display, and to retain all those messages that were originally shown. When you unag a message, the message remains; but if you switch out of the ag view, and return to it later, then you will notice that the message no longer appears. + +For this scheme to work, each message in the list must be agged individually. is might seem gratuitous at rst, since every message in the initial display must, by denition, be agged. But when you toggle the ag on a message, you can see the ag disappear, and the message remains right there—and still selected—allowing you to easily reinstate the ag. is is exactly how Apple Mail behaves: in the screenshot, I have unagged the message at the top, but it is still showing. + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_3_Picture_1.jpeg) + +fig. 8.11 *A mapping dilemma for the collection concept in Adobe Lightroom: with two collections showing, selecting a photo for removal does not identify which collection to remove it om.* + +# *Resolving Ambiguous Actions* + +Oen the user's gestures are easy to interpret. But sometimes they're ambiguous. is can happen especially when an action's arguments depend on previously made selections. Let's look at an example of this. + +In the *collection* concept, items can be added and removed from collections that represent a possibly overlapping classication of items. Examples of applications that use collections are: Zotero, which lets you organize citations of papers into collections; browsers such as Safari, which oer collections for bookmarks; and Adobe Lightroom, which lets you dene collections of photographs or movies. + +e distinguishing feature of the *collection* concept that makes it distinct from the *folder* concept is that an item can belong to more than one collection. Mapping the action *collection.add(i,c)*, in which item *i* is added to collection *c* is usually straightforward, and may be accomplished (for example) by leing the user drag the item to the collection. + +e action *collection.remove(i,c)*, in which item *i* is removed from collection *c*, is trickier. e problem is that, in some applications, more than one collection may be selected at once. is is an important feature, because it lets the user see the items belonging to multiple collections in a single view. In Figure 8.11, two overlapping collections of photos have been selected in Adobe Lightroom. + +Indicating the arguments for the *remove* action is now no longer straightforward. You might expect to be able to select an item, and press the delete buon (for example). But if the selected item belongs to both collections, it's not clear which to remove it from. + +#### 8: concept Mapping + + + +| Font | | New c | haracter style: | +|-------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|-----------------| +| Font Adva | nced | Name: | Emphasis | +| Cambria (Theme Body) Calibri (Theme Headings) Adobe Caslon Pro Adobe Caslon Pro Bold Adobe Caslon Pro Bold Italic Font color: Underline style: | | Fon Size | | +| Character Style Options Style Name: Emphasis Location: Basic Character Formats Font Family: Font Style: Italid | | Sha | dow: Off | +| Kerning: Y | eading: \$\circ\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightarrow\rightar | | | + +fig. 8.12 *Mapping the "none" value in partial style dialogs. Recent versions of Word and InDesign (lower le) use extended widgets, such as dropdown menus whose selected entry can then be edited as text; an earlier version of Word had a separate selector for the font that populated an editable text eld (top le); Apple Pages 09 (right) used checkboxes.* + +is is a nasty mapping problem. When I rst draed this chapter (in late 2020), Lightroom displayed an error message if you tried to do this, informing you that the deletion request was ambiguous. Now (in February 2021), it simply deletes the item from *all* the collections that it belongs to that are currently selected.93 + +# *When Standard Widgets Aren't Enough: Entering No Value* + +Some concept actions take an argument that can either be drawn from some set of values, or can be "none," indicating that no value has been chosen. In the *format* concept, for example, you may have an action *set (p, v)* that sets format property *p* to have the value *v*; if you set a property and then wanted to *undo* the setting, you might then set it to the value *none*. + +is subtlety arises in the partial styles example that I mentioned in Chapter 4. To recall, the idea is that you can dene a *style* that species the values of only some formaing properties. For example, you might dene a character style + +called *emphasis* that sets the font style to *italic*, but leaves every other font property (such as the size and choice of typeface) unchanged. + +Now consider how this might be mapped to a user interface. We'll need not only to be able to set the font style to *italic*, say, but also to *unset* it: that is, to set the font-style value to *none*, its default. at's not the same as seing it to *roman*, which would cause type already in italics to be modied. + +In recent versions of apps that oer partial styles (such as Microso Word and Adobe InDesign), this is achieved by using extended versions of the standard user interface elements ([Figure 8.12, lower le\).](#page-4-0) e boolean checkbox becomes a three-state widget (on, o, and not set), and the dropdowns are extended so that, in addition to picking a value from the dropdown menu, you can also *edit* the chosen value (as a text eld) and thus delete it (to unset it). is is less counterintuitive than it might seem, since the text eld can be used for autocomplete too, which is helpful when the menu contains many entries. + +In earlier versions of these programs, the extended user interface elements were not available, and users had to tolerate clunkier interfaces or apply workarounds. In Word, for many years, a partial style could be unset only by writing a Visual Basic script; then at a later point, a complicated dialog let you choose a font from a list, which then populated a separate text eld that you could edit [\(Figure 8.12, upper le\)](#page-4-0). In InDesign, once you set a property, there was no way to unset it, except by using the "reset to base" action which would clear *all* the properties of the style. e iWork '09 version of Apple Pages [\(Figure 8.12, right\)](#page-4-0) sidestepped the problem by adding a checkbox to each seing; this solution, while clean and clear, and not requiring fancy interface elements, was dropped, presumably because it required so much space. + +All our previous examples in this chapter would apply in any user interface framework. is last example is interesting because it exposes a limitation of contemporary user interface toolkits, which generally do not oer a way to "unset" a value that was previously selected. + +#### *Lessons & Practices* + +Some lessons from this chapter: + +· Concepts have to be *mapped* to a concrete user interface, with actions mapped to gestures such as clicking on buons and concept state mapped to display views of various sorts. + +#### 8: concept Mapping + +- · User interface design principles apply, but concepts help focus the mapping concerns. In the Java example, we saw how conating installing and uninstalling in the same dialog causes confusion, and a mapping that paid more aention to the underlying concept structure would have been clearer. +- · Some concepts are inherently more complicated, and call for more ingenuity in the mapping, and sometimes even explicit explanations in the user interface. +- · Aempts to make the user interface simpler than the underlying concepts may backre. In the Gmail example, labels are aached to messages, but the interface associates them with conversations, simplifying the visual appearance but compromising usability. +- · e mapping must take into account typical usage paerns, which as the Backblaze and Apple Mail examples suggest, may be more complicated than performing a single action. +- · Despite their expressiveness, visual interfaces may not resolve all ambiguities, and interface toolkits may constrain the mapping design. + +### And some practices you can apply now: + +- · When approaching user interface design, think rst how each concept can be mapped individually. en you can expand your view to consider how the mapped concepts t together on the screen, and what transitions and links are needed between them. +- · As you design a mapping for a concept, start by ensuring that each action is available in the interface (when relevant), and that the state of the concept is displayed (when needed) in an intelligible way. +- · Check your interface design against the concept's operational principle and the most likely ways in which users will want to use the available actions. +- · As always, a key advantage of a concept-based approach is that concepts, by factoring out generic functionality, make it easier to identify predecessors that can inform your work. So when designing the mapping for a concept, look to see how that concept is mapped in other apps. + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# Concept Specicity + +is chapter explains a simple principle that is surprisingly far-reaching in its ability to expose problems in a design. In fact, it is so simple that you may be tempted to dismiss it, but I hope the examples will convince you of its value. + +e rule says that, in the design of a soware product, concepts and purposes should be in one-to-one correspondence. at is, for every concept there should be exactly one purpose that motivates it, and for every purpose of the product, there should be exactly one concept that fullls it. + +You are probably not surprised that a concept should have at least one purpose: without one, what's the point? Or that a purpose that has been identied as signicant for a product should have a concept that delivers it. at each purpose should be delivered, avoiding redundancy, by at most one concept is surely plausible too: why waste eort? + +More radical is the suggestion that a concept should fulll at *most* one purpose. And yet that aspect of the specicity principle turns out to be one of the most useful insights of concept design, and will take most of our aention in this chapter. + +# *Concepts Without Purposes* + +A concept without a purpose is a strange beast, but we saw examples earlier (in Chapter 5): mostly cases, such as the editor buer, in which an internal mechanism is exposed to the user. is section itself thus has no purpose, since I've discussed the topic at some length already. + +# *Purposes Without Concepts* + +A critique of a design might reveal an essential purpose that has no corresponding concept to fulll it. Since all soware products evolve over time, new needs will always arise—but this is not what this category of design aw entails. Rather, it points to concepts whose absence is egregious and obvious from the start. + +If a concept is obviously missing, why would a designer not immediately add it? One reason is that it presents a challenge that is not easily resolved. For example, most email clients lack a concept of *correspondent* that would serve the purpose of identifying senders and receivers of email messages. is is easy to do within the connes of a closed email system such as Gmail, but to provide it more widely would require a universal authentication infrastructure. + +With this concept in place, the sender eld of an email message could not be forged, and spam would be much easier to control. It would also bring a more mundane but much needed benet. In Apple Mail, you can't reliably search for messages from a given sender. e search bar misleadingly oers the option of searching by "people," but that turns out to mean nothing more than matching strings in the from- and to-elds of messages. + +Most people have used more than one email address, so searching for them brings up multiple, distinct "people." And some format their name dierently in their various email accounts, so you might need to search under dierent strings to nd all the emails from a single person. In Figure 9.1, you can see that a search using my wife's name even brings up my own email address (probably because someone sent a message to my email address but with both our names in the to-eld.) + +Some more examples of purposes without concepts: + +*Deletion warnings in backup*. Most backup utilities have a disquieting loophole in their terms of service (and in the behavior of their *backup* concept). Files that are deleted from the machine being backed up will also be deleted from the backup itself aer some time period (say 30 days) has elapsed. e rationale for this policy is clear: it prevents customers from using the backup service as unlimited cloud storage. + +It's ironic, however, that one of the main reasons people need backup is that they delete les by accident. It would be helpful and reassuring for backup utilities to provide a concept that tracks deletions, and warns you when they have occurred, so that you can determine whether or not they were intentional, before it's too late and the le has been cleared from the backup before you notice. e design of this concept is nontrivial, and would also have to account for renaming. + +*Missing style concept*. Sometimes, a concept is routinely used in one class of application, and yet not available in another, even though it would be very + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_10_Picture_1.jpeg) + +fig. 9.1 *How lack of a correspondent concept in email leads to arbitrary search results.* + +useful there. e concept of *style* is ubiquitous in word processors and desktop publishing tools, but was only recently introduced in Apple's slide presentation app, Keynote; it is still missing from Microso PowerPoint. Without styles, it is not easy to maintain consistent formaing, especially for texts such as formulas, code and quotations that are usually distinguished typographically. + +*Vestigial template concept*. Occasionally, a concept is included in a design, but in such a limited form that it fails to fulll its usual purpose. Most website-building apps include the concept of a *template* (sometimes called a *theme*), whose purpose is to decouple visual design from content. is lets you concentrate on the content of your site, and separately select a template that determines the layout, colors, fonts, etc. Key to this decoupling is that you don't need to commit to a template at the outset; you can start with any one that looks reasonable, put in some content, and then try others to see how your content looks with them. + +is concept was implemented in Squarespace, but, inexplicably hobbled in version 7.1 released in early 2020, when they eliminated the ability to switch templates. is has le users in a bind because the new version brought several improvements (most notably a uniform data model across all templates, which one might have thought would have made template switching easier to implement). + +With the proliferation of technology, it's easy to think that all real problems have been solved. ese orphaned purposes suggest, reassuringly, that some of the most basic needs have yet to be fullled, and there is still important design work to be done even in the most familiar contexts. + +| ☐ Prima | ry | Social 23 new | Promotions 100+ new | + | +|---------|-----------------------|--------------------------|-------------------------------------------|-------| +| | Google | New sign-in from Cl | nrome on Mac - New sign-in from Ch @ 12:3 | 0 pm | +| | Keith Muhammad at De | eMont. DeMontrond Auto G | iroup - 14101 North Freeway Housto 12:1 | 9 pm | +| | AT&T High Speed Inter | rnet. AT&T High Speed Ir | nternet Service Activation - Your Al 10:3 | 7 am | +| | Keith Muhammad at De | eMont. DeMontrond Auto G | roup - 14101 North Freeway Housto Au | ıg 26 | +| | betterbatonrougejobs. | com Job Update 2015- | 08-26 - Looking For An Advantage W Au | ıg 26 | + +fig. 9.2 *Gmail's categories, a redundant concept.* + +# *Redundant Concepts* + +A concept is redundant when another concept already exists to serve the same purpose. is may happen because the designer initially saw two distinct purposes, but they turned out to be variants of a single, more general purpose. + +*Gmail categories*. Gmail introduced the concept of *category* whose purported purpose was to support the automatic classication of incoming emails (Figure 9.2). Rather than showing all the messages in a user's inbox in one list, the new concept oered a division into categories: "primary" (for email from personal contacts), "social" (for messages associated with social media accounts), "promotions" (for sales pitches), "updates" (for notications, bills, receipts, etc.), and "forums" (for messages associated with groups and mailing lists). + +You might have expected this new concept to have been greeted only with enthusiasm. Aer all, it provided powerful new ltering, promising to declutter inboxes and giving users more control. e new concept was met, however, with a barrage of negative articles and blog posts. And for a long time, a Google search for "Gmail categories" listed, as the rst question above the search results, "how do I get rid of categories?" + +e reason for this negativity, I believe, is that the *category* concept is redundant. Several of the critical blog posts noted that Gmail's *label* concept already met the same purpose: classication of messages. Moreover, that concept already included "system labels" (such as *sent*) that are aached without the user's intervention and could easily accommodate a new classication algorithm. + +Why then didn't Google simply implement the new categories as system labels? Had they done so, users would not have had to understand the new concept of *category* and the apparently arbitrary restrictions that distinguishes categories from labels—for example, that only categories can be assigned to tabs, or that only labels can be used to classify messages outside the inbox.94 + +*Zoom broadcast*. In the Zoom videoconferencing app, you can move the participants of a call into "breakout rooms." e host of a call can send a message to all the participants using the concept of *broadcast*. + +Why is this concept needed? Zoom already has a concept of *chat* that allows participants to exchange text messages throughout a call. e chat menu allows a participant to select whether a message is sent to a particular participant or to "everyone." Confusingly, in a breakout room, "everyone" takes on a dierent meaning and refers only to those in the room; there is no option to send a message to participants in other rooms. Moreover, the host cannot send messages to participants once they have been moved into breakout rooms; nor can participants address participants in other rooms. So the *chat* concept does not allow the host to send a message to breakout participants, which is where the *broadcast* concept comes in. + +A beer design might do away with *broadcast* entirely, and extend the *chat* concept so that chat messages can be sent across breakout rooms. Like Gmail's categories and labels, chat and broadcast messages are curiously incomparable even though they fulll the same purpose: broadcast messages ash across the screen but chat messages appear in a rolling message log; broadcasts can cross breakout rooms but messages cannot; messages persist in the message log but broadcasts disappear. Most frustratingly for users, broadcast messages only appear for a few seconds, any links they include cannot be clicked on, and their content cannot be copy-pasted. + +Ideally, the *chat* concept would oer the features of both concepts. Within a breakout room, the chat menu would let messages be directed to everyone in a room or everyone in the entire session; it would support messages to all participants individually, even if in dierent rooms; and, in particular, the host would be able to send messages to everyone in breakout rooms despite belonging to none of them.95 + +*Search and rules in Apple Mail*. Apple Mail has a search box that allows you to enter various properties of a message (such as text occurring in the body, or the name of a sender or receiver) and then lters the displayed messages accordingly (Figure 9.3). ere is also a dialog for creating a rule that lters incoming mail that allows you to select messages satisfying certain criteria (such as whether the to-eld mentioned you by name). + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_13_Picture_1.jpeg) + +fig. 9.3 *Apple Mail's lters (top) and rules (below), embody two versions of one concept.* + +Underlying these two features is a common purpose, which we might call *message ltering*, that lets you dene a subset of messages, in one case to be displayed, and in the other, to have some action applied (such as being moved to a folder). And yet this single common purpose is actually implemented twice within two distinct concepts, *rule* and *filter*, each time oering slightly dierent features. Rules but not lters can specify inexact matches (*contains* rather than *equals*, for example); rules but not lters can check the *cc* eld; lters but not rules can specify that a message is signed; and so on. Gmail, in contrast, unies rules and lters in a single concept.96 + +In all these cases, eliminating redundancy would have saved the developer work *and* given the user a simpler and more powerful tool. + +# *Overloaded Concepts* + +Now the most interesting criterion: that a concept should have at *most* one purpose. A concept cannot serve two purposes well.97 A purpose guides every aspect of a concept's design. If you have two dierent purposes, they will necessarily pull in dierent directions, and the concept design will have to compromise in favor of one over the other. More likely, the design will end up satisfying neither purpose in its entirety, because it is pulled in one way here and another way there.98 + +A concept that serves two purposes is *overloaded*. In the next few sections, I'll give examples of overloading, classied into four kinds by its cause: + +· *False convergence* occurs when a concept is designed for two dierent functions that were assumed (wrongly) to be aspects of the same purpose. + +- · *Denied purposes* are ones that were ignored by the designer, despite the desires of users. +- · *Emergent purposes* are new purposes for old concepts, oen invented by the users themselves. +- · *Piggybacking* occurs when an existing concept is adapted or extended to accommodate a new purpose. + +Each of these overloadings has its remedy: + +- · False convergence is avoided by making an eort to articulate a single purpose precisely, and checking that dierent motivations for the concept are truly reections of the same purpose. +- · Denied purposes are avoided by taking seriously the opinions and experience of users, especially those who are less technical and more reluctant in their technology adoption. +- · Emergent purposes are the hardest to avoid, since nobody can predict all the ways in which a design will impact the context of its use and create new uses. Just recognizing emergent purposes as they arise, though, allows them to be addressed, say by adding new concepts to accommodate the new purposes. +- · Finally, piggybacking is avoided by developing an awareness of the urge to "optimize" a design by puing concepts to contradictory purposes, and learning that the eort saved in such reuse leads to a complexity that eventually exacts a high price. + +# *Overloading by False Convergence* + +Sometimes two dierent purposes of a concept seem to be so well aligned that the designer treats them as a single, converged purpose, until it becomes clear that in fact the purposes are not only distinct but may be inconsistent with one another.99 + +In Facebook, for example, you might describe the purpose of the *friend* concept as "allowing two users to establish a relationship in which they can see each others' posts." e problem with this formulation is that it hides two distinct purposes. One is *ltering*: by promoting posts from your friends, Facebook saves you the trouble of siing through posts from people you're not interested in. e other is *access control*: by choosing your friends, you can choose who gets to see your posts. + +For most users these purposes are indeed oen aligned because human relationships tend to be symmetrical: if I'm happy for you to see posts about my personal life, I'm probably interested in seeing posts about yours too. But for celebrities, the symmetry breaks down. I might want to read Barack Obama's posts, but I doubt he would want to read mine. + +Recognizing this, in 2011, Facebook added the concept of *follower*, which serves only the ltering purpose and not the access control purpose. e *friend* concept still plays both roles, but you can use it solely for access control by turning o "following" for friends whose posts you don't want to see. + +# *Overloading by Denied Purpose* + +Like false convergence, *denied purpose* involves a second purpose that existed at the time of the initial design. But in this case, the designer rejected the purpose, deciding that it did not merit recognition in the design. + +Listing and then rejecting candidate purposes is oen admirable. It's a key strategy for preventing bloat in application design. It's so tempting to build a Swiss Army Knife application that solves every possible problem, but the result is not likely to be a happy one. e agile mantra to build e Simplest ing at Works applies both in selecting purposes to address and in the design of the concepts that fulll them. Sometimes, though, omiing a purpose can be an act of obstinacy and denial, ignoring the needs of the user in the name of purity of vision. + +Twier's*favorite* concept (discussed in Chapter 5) is an example of this. Prior to 2018 when Twier introduced the *bookmark* concept, its users had no way to save a tweet except by making it a favorite, and revealing this choice publicly. So the *favorite* concept was forced to serve two incompatible purposes: signaling approval and saving tweets for later. + +I have generally avoided talking about programming tools because they're not familiar to most people, but here is an example I hope I can explain convincingly. Programmers use version control systems such as Git, Subversion and Mercurial to manage team work on a codebase, and to keep track of multiple versions of les. In practice, though, many users—especially less expert ones—use these tools for backup too. + +Just think about it. All these systems allow you to frequently copy your work from your machine, which might fail at any time, to a server, and to maintain + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_16_Picture_1.jpeg) + +fig. 9.4 *Example of denied purpose: using commits for backup. e lower, gray path is a separate "branch" in which a programmer builds a new feature. She commits her work when she has set up the basic structure of the feature, and nally when it's complete. But she also commits in the middle at an incoherent point because she wants to backup her unnished work.* + +multiple versions of each le going back in time, which you can revert to at any point. Isn't that exactly what a backup system does? If you're using such a system already, why wouldn't you use it to back up the same les that are already being stored in the repository? + +Unfortunately, the designers of these tools generally do not share this view. e concept that is relevant here, the *commit*, was designed for a dierent purpose, namely for storing snapshots of a project that correspond to coherent states of development. For example, you might perform a commit when a feature is complete, or when your work is in a suciently polished state to benet from peer review. + +is purpose is not compatible with the backup purpose, because you want to back up your les as frequently as possible. If you do a large piece of unnished work, you would certainly want to back it up, but it may not be in a coherent state. So you have a dilemma. If you commit the work product, you will be misrepresenting it, and (as developers say) "polluting the commit graph" by inserting commits that have no coherent meaning and may not even compile (Figure 9.4). But if you don't commit it, it won't get copied to the cloud, and you risk losing it if your machine fails. + +# *Overloading by Emergent Purpose* + +A concept may have a single, compelling purpose at the time of its design, but may acquire additional purposes later as users discover new uses for the concept. e story of the plain old subject line of email messages is a case in point. + +e *subject line* concept can be seen as an instance of a more general concept, *precis* say, whose purpose is to make it easier to nd, lter and assimilate long + +fig. 9.5 *Subject line used for emergent purpose: identifying listserv origin.* + +texts by giving a short summary that is created along with the original text or added later. + +With these modest origins, one might not have predicted the many glorious roles the *subject line* came to play. Listserv soware added a prex to the subject line with the name of the listserv, making it easier for recipients to tell that the message was not sent directly to them, apparently replicating the purpose of the *to* eld (Figure 9.5). Later, email systems such as Gmail started using the subject line as a heuristic for grouping messages into conversations. + +ese newly emerging purposes might seem harmless, but they're not. A friend told me of a case in which someone in his department sent a message to multiple colleagues. ey blind-carbon-copied the recipients, including an email address of a listserv for a handful of departmental ocers. e listserv duly revealed itself as a target of the message in the subject line, undermining the privacy guarantee that the *bcc* concept is supposed to provide. + +e use of the subject line for conversation grouping is a known problem, because it spuriously associates messages that happen to have the same subject. One of my students told me that he likes to assign dierent labels to messages associated with dierent trips, so he can see all the messages associated with a given trip by ltering on the respective label. + +Unfortunately, his travel company uses "your upcoming trip" as the subject line for all conrmations, causing messages about dierent trips to belong to the same conversation. And since ltering on a label in Gmail brings up all messages in the same conversation as a labeled message—a design aw I explained in Chapter 8—he can't use labels to show the messages for one trip without seeing messages for other trips too. + +# *Overloading by Piggybacking* + +e most common reason for overloading is that a designer sees an opportunity to use an existing concept to support a new purpose, avoiding the need for a new concept—and thus saving the trouble of designing and implementing it. e designer might also imagine that users will appreciate the economy of + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_18_Picture_1.jpeg) + +fig. 9.6 *Epson printer driver: paper feed piggybacked onto paper size.* + +fewer (and richer) concepts, but this is oen illusory. Beer to have more concepts that are coherent and compelling than fewer concepts that are complicated and confusing. + +*Epson's unusual concept of paper size*. In Apple's macOS operating system, a printer driver can oer printer-specic seings in the print dialog. Epson photo printers oer many categories of special seings, allowing you, for example, to choose the paper type, adjust the drying time between prints, and so on. + +ese printers typically oer several dierent feed options for dierent kinds of paper: from the top, from the back or the front, from a roll of paper, and so on. How is this *paper feed* concept controlled? + +Apple has a built-in concept of *paper size* that is set in most applications through the page setup menu. e purpose of *paper size* is to make it easy to dene standard paper sizes just once, and then reuse them. In addition to the built-in paper sizes (such as standard leer size), you can dene custom sizes of arbitrary dimensions, along with margins. When you choose a paper size in an application, it sizes the page appropriately (wrapping text and respecting margins). And when you print the page, the paper size is passed to the printer so that it can check that it matches the size of the paper that is loaded in the printer. + +Sadly, rather than adding *paper feed* as a new concept, Epson choose to piggyback it on the *paper size* concept. When you open the page setup menu, the names of the paper size options include the paper feed seing (Figure 9.6)! + +is might seem to be a small hack but it creates major havoc: + +· When you choose the paper size for a document that you intend later to print on your Epson printer, you have to commit to one of these specialized + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_19_Picture_1.jpeg) + +fig. 9.7 *Shooting with a square aspect ratio: a great feature of mirrorless digital cameras.* + +options. You would rather not commit even to a particular printer (so that you can later choose which printer to use in the print dialog), let alone a feed option. + +- · Because the feed option is hard-wired into some standard paper sizes that come with the printer driver, you can't create new custom paper sizes, because the feed options are not available as a user-customizable seing. +- · Some applications use the page setup for dening presets. Adobe Lightroom has a concept of *printer preset* that lets you dene borders and layout for a given paper size. You might, for example, dene a postcard preset for creating a postcard from a photo. Because the preset relies on the paper size, if you want to print to an Epson printer, you need to choose one of the piggybacked paper sizes that includes the feed. As a result, your printer presets are now feed-specic.100 + +*Fujilm's aspect ratios*. Fujilm cameras let you set the *aspect ratio* of the image in camera. e purpose of this concept is to allow you to frame the image in the viewnder at shooting time with a particular aspect ratio for the nal image. You can choose to shoot square images (Figure 9.7), for example. + +To set the aspect ratio, you open the ominously named *image size* menu (Figure 9.8, le). You can see that I've chosen a square (1×1) ratio, but, strangely, I also had to choose the image resolution—in this case, "L" for large. + +A dierent menu called *image quality* (Figure 9.8, middle) lets you choose how the photo is recorded on the memory card: as just a raw le, or as a JPEG (in normal or ne quality), or as a combination. + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_20_Picture_1.jpeg) + +fig. 9.8 *Piggybacking in Fujilm cameras: Seing image size/aspect ratio (le); seing image quality (middle); choosing "W" as quality greys out the size option, and with it the ability to set a custom ratio (right).* + +Suppose you want to take square photos and save them only as raw les. If you switch the image quality to raw, you'll nd that the image size seing is grayed out and replaced by the word "W" (Figure 9.8, right). is makes sense for the image sizes—such as the large seing that we chose—because they don't apply to a raw le, which always includes all the sensor pixels. But why is our aspect ratio lost now too? + +ere's no good reason. e aspect ratio concept works perfectly well on raw les (elegantly saving the crop outline as editable metadata), but because it's tied to JPEG dimensions through overloading, it can't be applied to them alone. In practice, this means that if you want to just record your images in raw, and you want a custom aspect ratio, you have to choose the image quality seing that includes JPEG les with the raw les, and then delete the JPEG les later! + +e remedy is simply to provide an *aspect ratio* concept that is distinct from the *image size* concept. Making these orthogonal would make custom aspect ratios independent of the le type. e menus would also be simpler: instead of the nine entries needed for all the combinations of three image sizes and three aspect ratios, there would be two menus of three entries each. + +is might seem like a small detail, but I wonder if it's behind Fujilm's reluctance to oer more aspect ratios, which many users have requested (there's even an online petition). Without a distinct *aspect ratio* concept, however, the quadratic growth in menu options would make the image size menu grow unacceptably as new ratios are added.101 + +# *Purpose Granularity & Coherence* + +Whether a design exhibits redundancy or overloading will depend on how purposes are formulated. You may be wondering whether this isn't a rather subjective and arbitrary judgment. What if we just aempted to resolve overloading by declaring a new purpose that merges what were previously two distinct ones? Would that eliminate the problem of having two purposes for a single concept? Of course not: we need some test of *coherence* to reveal when multiple purposes are masquerading as one. + +Ideally, a purpose will be formulated without separating cases, so that its coherence is evident in the wording itself. For example, when I talked earlier in this chapter about the *template* concept used by website-building apps, I said the purpose was to "decouple visual design from content." is formulation implicitly unies a variety of activities without suggesting multiple purposes. + +But suppose I had instead described the purpose as "making it easier to build a website with aractive visual design by leing you start with a template designed by someone else, and then changing the template later without having to start again." is is certainly an inelegant purpose, and by referring to the details of particular actions it's beginning to resemble an operational principle. But it's not wrong to present this as a single purpose, because the various parts are aspects of a single and coherent purpose (albeit beer summarized in terms of decoupling). Indeed, this was my criticism of the Squarespace design, which treats each part as if it were a purpose in itself. + +If a purpose is expressed in multiple parts, then, how are we to know whether it is coherent? Here are some criteria: + +- · *Reformulation*. Is there a compelling reformulation without multiple parts? +- · *Common stakeholders*. Do the benets of each part accrue to the same stakeholders? +- · *Common mission*. If we identify a higher-level purpose for each part (which we might call a "mission" to distinguish it from the concept's immediate purpose), would the parts have the same mission? +- · *Non-conict*. Are the parts non-conicting, or can we imagine a scenario in which a user might want one but not the other? + +Let's take a look at an example to see how these criteria can be applied. + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_22_Picture_1.jpeg) + +fig. 9.9 *e like concept in Facebook: the emoticons have tooltips that identify them as "like," "love," "care," "haha," "wow," "sad," and "angry."* + +#### *Applying Coherence Criteria: Facebook Likes Has Multiple Purposes* + +When you click on the "like" buon below a Facebook post, seven emoticons are displayed, oering dierent sentiments from love to anger (Figure 9.9). If we were to treat this a concept—let's call it *like*—what would the purpose of the concept be? + +Several things come to mind. Most obviously, clicking on one of these emoticons conveys an emotional reaction from you back to the author of the post (albeit publicly). is is probably what most Facebook users have in mind as they click away. + +But there's more going on. If you play around with Facebook, you'll discover that what you like aects which posts you're shown, and the order in which they appear. By indicating which posts you like, you are curating your feed for the future, making it more likely to contain posts you will want to see. + +Less helpfully, your clicks are tracked by Facebook to build up a prole of personal data that is used to target you with advertisements. From the content of your posts, and your reactions to the posts of others, Facebook classies you on a host of metrics from hobbies to sexual orientation. + +In summary, we might say that the purpose of the *like* concept is to "convey emotional reactions, curate your newsfeed, and provide tracking data for targeted ads." Regarding these as three distinct parts, we can now apply our criteria. + +*Reformulation*. "Reacting to a post" sounds plausible, but it is not need-focused, and thus not a purpose (as explained in Chapter 5). I'm not sure I can do beer though. + +*Common stakeholders*. Facebook would no doubt argue that selling your data to advertisers to allow them to target you more eectively benets you as well, + +by showing you more relevant advertisements. But most of us would resist this claim, and see the advertisers and Facebook itself as the beneciaries. In contrast, curating your newsfeed is for you alone; and conveying emotions is a benet shared with a larger community. In short, it seems that each part bene ts a dierent group of stakeholders. + +*Common mission*. Likewise, the missions of the parts diverge. Emotional reactions serve the building of relationships and communities; curating your newsfeed serves your need for more engaging and informative content; and tracking for advertisers serves Facebook's boom line. + +*Non-conict*. Finally, the parts are in conict too. Certainly most users would like to be able to curate their feed, but would prefer not to be tracked. Sending reactions is not well aligned with curating your feed either; you might want to send a supportive gesture to a friend but prefer not to see more of their posts. e "angry" emoticon is especially confusing: are you being angry *with* the author of the post (expressing support for their outrage), or are you angry *at* the post? It seems that this reaction is used in both ways, but according to Facebook, all of the reactions have the same eect in terms of curating your feed, and indicate (as the main buon suggests) that you "like" the post, even if it makes you "angry." + +In summary, our compound purpose is revealed by the coherence criteria to be multiple purposes, and the Facebook *like* concept is therefore an example of overloading. + +# *Spliing a Concept: Facebook Likes Should Be Multiple Concepts* + +e remedy for overloading is to split a concept up, with one new concept for each purpose. In this case, we could split *like* into three concepts: *reaction*, whose purpose is to covey emotional reactions to posts; *recommendation*, whose purpose is to allow you to curate your feed; and *profiling*, which is used to construct an advertising prole for targeting ads. + +When making such a split, the most encouraging sign is that the new concepts already exist. And, indeed, the *reaction* concept (reactions without curation) appears in communication apps such as Slack and Signal; the *recommendation* concept (curation without reactions) appears in Netix, where a thumbs-up or thumbs-down inuences which movies are suggested; and the *profiling* concept + +is used by Google's Gmail service to target advertisements based on the content of your email messages.102 + +By treating these as three distinct concepts, we can now explore varying degrees of synchronization. At one end of the spectrum, we might have a free composition with almost no synchronization at all. In this version, users would have to click separate buons for each of the concepts. is is not entirely implausible, because it would give users complete control, but it would not suit Facebook's interests, since very few people would click on the proling buons. + +At the other end of the spectrum, the concepts would be fully synchronized, so that clicking on an emotional reaction corresponds also to upvoting the post for curation and contributing to your proling. is of course is how Facebook is designed now. e problem of overloading has been converted into a problem of over-synchronization. But at least with the concepts separated there is a clearer indication in the design that the concepts have been coupled together, and less risk that the concepts themselves will be corrupted in an aempt to navigate between conicting purposes. + +Between the two extremes, there are other design points. One option would be to continue to hide the *profiling* actions, but to tease apart *reaction* and *recommendation*, with one collection of buons for sending a reaction, and separate buons for upvoting or downvoting a post. + +In fact, Facebook users have asked for a "dislike" buon, and Facebook has turned the suggestion down, arguing that dislikes would introduce a negative spirit into the platform. is seems disingenuous, and it assumes that the *like* concept has not been split. With a split into *recommendation* and *reaction*, you could dislike a post (executing the *recommendation.thumbs-down* action) *without* sending any social signals. + +No doubt Facebook's designers have considered all these factors and more. What concepts bring is a new framework in which to analyze a design and make principled trade-os. Spliing concepts is valuable in large part because it allows an idiosyncratic concept (such as Facebook's *like* concept) to be decomposed into concepts that are more coherent and more familiar—and thus a beer basis for a comprehensible user experience, and a beer structure for recording and preserving design knowledge. + +# *Lessons & Practices* + +## Some lessons from this chapter: + +- · e specicity principle says that concepts should be one-to-one with purposes. is simple rule has some profound implications for concept design. +- · Concepts without purposes are rare, but can arise from exposing to the user mechanisms that should have been hidden. +- · Purposes without concepts to fulll them may indicate constraints that originate outside the designer's domain, or sometimes just egregious omissions. +- · Redundancy, when multiple concepts serve the same purpose, confuses users and wastes resources. +- · Overloading, in which a single concept has multiple purposes, arises in several ways: from false convergence, in which the designer mistakenly imagined that multiple purposes were actually one; from denied purposes, in which the designer intentionally ignored a purpose for which users then marshal an existing concept; from emergent purposes, in which concepts nd new (and oen incompatible) purposes over time; and from piggybacking, in which the designer aempts to save design and implementation effort by hitching a new purpose onto an old concept. +- · Violation of any of these results in an increase in complexity and a loss of clarity: purposeless concepts needlessly cluer the interface and confuse users; missing concepts lead the user to work around the omission with more complicated interactions; redundant concepts introduce confusing distinctions between two concepts that should be one and the same, and force the user to learn dierent ways to do the same thing; and overloaded concepts bring unexpected complexity from the coupling of unrelated purposes. +- · Unwelcome restrictions on functionality oen result too. Redundancy is often a symptom of concepts appearing in specialized contexts, perhaps by subteams, without the kind of design aention that is paid to the core concepts of an application. And overloading leads to restrictions because the second purpose is forced into the procrustean bed of an existing concept. +- · Coherence criteria help determine whether a purpose expressed as multiple parts is really one purpose or several. ey include: whether reformulation as a single purpose is possible; whether the parts have common stakeholders; + +whether they serve a common mission; and whether they conict with one another. + +And some practices you can apply now: + +- · When you're designing an app, ask yourself early on if there is an essential purpose that you have not even considered. In analyzing feedback from users, consider whether any problems that users have might be due to an omitted concept. +- · Compare each of your concepts pairwise to make sure you have no redundancy, and look more deeply to see if there are shared functions of concepts that could be factored out into their own, common concepts. +- · If a concept becomes complicated, or doesn't seem to work intuitively and exibly for your users, it may be overloaded. Formulate a purpose as precisely as you can, using the purpose criteria of Chapter 5; and if you can only express the purpose in multiple parts, apply the coherence criteria of this chapter to determine whether the parts reect distinct purposes. +- · When you determine that a concept is overloaded, try to split it into more coherent concepts, each with a more compelling and unied purpose. Be on the lookout for standard concepts that you have seen elsewhere; a composition of familiar concepts is more exible and powerful than a single, idiosyncratic concept. + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# 10 + +# Concept Familiarity + +Design novices oen imagine that expert designers have an uncanny ability to pull brand new ideas out of thin air. But what looks like momentary inspiration is more oen insight drawn from years of experience. A great designer has a repertoire of designs in mind, ready to inform each new design problem she encounters. Only when the standard solutions prove inadequate will she reach for something new.103 + +In this respect, soware is no dierent from any other design eld. To apply the lessons of previous designs, you need rst to be able to extract design ideas as reusable fragments. at's what concepts aim to do. A concept is a particular solution to a particular design problem—not a large and vague problem, but a small and well-dened need that arises repeatedly in many contexts. + +Inventing a new concept to fulll a purpose for which a perfectly good concept already exists isn't just a waste of eort. It also tends to confuse users who are likely to be familiar with the existing concept. In this chapter, we'll look at some examples of this. But rst the good case—when familiar concepts are successfully reused. + +# *Successful Reuse of Concepts* + +Concept reuse is rampant, especially in web apps. In fact, it sometimes seems as if every social media app is fundamentally the same—a variant of a ubiquitous super-app that lets you make connections with people and communities, share text, images, and video with them, and react to the contributions of other users with comments and ratings. Viewed from a lile distance, many of the popular apps—Facebook, Twier, Instagram, WhatsApp, SnapChat,, etc.—seem to be barely distinguishable, varying only in small details. + +When yet another app in this category appears, you might initially be puzzled by how it diers from existing apps. But you won't have any trouble guring out how to use it, because it will likely oer all the concepts you are already + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-121-150/_page_29_Picture_1.jpeg) + +fig. 10.1 *e Twier user with the most followers.* + +familiar with: *post*, *message*, and *comment* for creating content; *friend*, *follower*, and *group* for accessing and ltering it; *rating*, *upvote* and *moderation* for quality control; *notification*, *favorite*, and *recent activity* for highlighting content; and so on. + +e same concept may appear under dierent guises. So the old *chatroom* concept becomes a *group* in WhatsApp or Google Groups or Facebook, and a *channel* in IRC or Slack. Twier provides a nice example of connecting its design to an existing concept. Here, for example, is how it explains the concept of *follower* (Figure 10.1): + +*What does it mean to follow someone on Twier? … When you follow someone, every time they post a new message, it will appear on your Twier Home timeline.* + +In answering the question, Twier provides the concept's operational principle. It is exactly what a Twier user needs to know. e meaning of following someone isn't explained in terms of some abstract notion of liking them or even wanting to read their tweets. It's given as a simple scenario: you follow, they post, you see the message on your timeline. + +But I omied a crucial part of Twier's explanation (marked by the three dots). e full answer begins: + +*Following someone means you've chosen to subscribe to their Twier updates. When you follow someone…* + +e rst sentence is what's relevant here. Saving you the trouble of learning the concept if you already know it, it notes that *follower* is just a form of the familiar *subscription* concept, in which you subscribe to some set of events—in this case tweets from a given user—and are notied when they occur.104 \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-121-150/concepts-121-150_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/concepts-121-150_meta.json new file mode 100644 index 0000000..f131d09 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-121-150/concepts-121-150_meta.json @@ -0,0 +1,2331 @@ +{ + "table_of_contents": [ + { + "title": "8: concept Mapping", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 178.205810546875, + 40.86962890625 + ], + [ + 274.8058166503906, + 40.86962890625 + ], + [ + 274.8058166503906, + 52.36962890625 + ], + [ + 177.43359375, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.67041015625, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 151.80908203125, + 52.36962890625 + ] + ] + }, + { + "title": "A Live Filtering Conundrum", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 155.25439453125, + 227.69598388671875 + ], + [ + 271.8659362792969, + 226.6611328125 + ], + [ + 271.8659362792969, + 239.69601440429688 + ], + [ + 155.25439453125, + 239.69601440429688 + ] + ] + }, + { + "title": "8: concept Mapping", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 177.64892578125, + 40.86962890625 + ], + [ + 274.79998779296875, + 40.86962890625 + ], + [ + 274.79998779296875, + 52.36962890625 + ], + [ + 176.78759765625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Resolving Ambiguous Actions", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 153.31640625, + 227.69598388671875 + ], + [ + 273.9120178222656, + 226.6611328125 + ], + [ + 273.9120178222656, + 239.69601440429688 + ], + [ + 153.31640625, + 239.69601440429688 + ] + ] + }, + { + "title": "8: concept Mapping", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 177.64892578125, + 40.86962890625 + ], + [ + 274.8056945800781, + 40.86962890625 + ], + [ + 274.8056945800781, + 52.36962890625 + ], + [ + 176.78759765625, + 52.36962890625 + ] + ] + }, + { + "title": "When Standard Widgets Aren't Enough: Entering No Value", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 106.58935546875, + 451.37109375 + ], + [ + 346.22955322265625, + 450.0703125 + ], + [ + 346.22955322265625, + 464.6959991455078 + ], + [ + 106.58935546875, + 464.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.7622833251953, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 173.98828125, + 512.6959991455078 + ], + [ + 253.86572265625, + 512.1826171875 + ], + [ + 253.86572265625, + 524.6959991455078 + ], + [ + 173.98828125, + 524.6959991455078 + ] + ] + }, + { + "title": "8: concept Mapping", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 176.35693359375, + 40.86962890625 + ], + [ + 274.8058166503906, + 40.6494140625 + ], + [ + 274.8058166503906, + 52.36962890625 + ], + [ + 175.49560546875, + 52.36962890625 + ] + ] + }, + { + "title": "And some practices you can apply now:", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 58.5703125, + 306.91082763671875 + ], + [ + 229.36932373046875, + 305.68359375 + ], + [ + 229.36932373046875, + 318.41082763671875 + ], + [ + 57.708984375, + 318.41082763671875 + ] + ] + }, + { + "title": "Concept Specicity", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 157.623046875, + 106.2142333984375 + ], + [ + 294.57421875, + 105.36328125 + ], + [ + 294.57421875, + 126.2142333984375 + ], + [ + 157.623046875, + 126.2142333984375 + ] + ] + }, + { + "title": "Concepts Without Purposes", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 170.54296875, + 421.453125 + ], + [ + 282.0827331542969, + 420.15234375 + ], + [ + 282.0827331542969, + 434.6959991455078 + ], + [ + 169.681640625, + 434.6959991455078 + ] + ] + }, + { + "title": "Purposes Without Concepts", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 169.46630859375, + 511.857421875 + ], + [ + 282.0827331542969, + 510.556640625 + ], + [ + 282.0827331542969, + 524.6959991455078 + ], + [ + 169.46630859375, + 524.865234375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.7681121826172, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 169.681640625, + 40.86962890625 + ], + [ + 281.56201171875, + 40.86962890625 + ], + [ + 281.56201171875, + 52.36962890625 + ], + [ + 168.8203125, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "Redundant Concepts", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 170.32763671875, + 182.4345703125 + ], + [ + 256.7574157714844, + 181.1337890625 + ], + [ + 256.7574157714844, + 194.81341552734375 + ], + [ + 170.32763671875, + 194.81341552734375 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 170.1123046875, + 40.86962890625 + ], + [ + 281.5677795410156, + 40.86962890625 + ], + [ + 281.5677795410156, + 52.36962890625 + ], + [ + 169.2509765625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Overloaded Concepts", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 170.9736328125, + 392.185546875 + ], + [ + 257.6573181152344, + 390.884765625 + ], + [ + 257.6573181152344, + 404.6960144042969 + ], + [ + 170.1123046875, + 405.193359375 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 170.1123046875, + 40.86962890625 + ], + [ + 281.5679016113281, + 40.86962890625 + ], + [ + 281.5679016113281, + 52.36962890625 + ], + [ + 169.2509765625, + 52.36962890625 + ] + ] + }, + { + "title": "Overloading by False Convergence", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 157.623046875, + 391.53515625 + ], + [ + 295.33551025390625, + 390.234375 + ], + [ + 295.33551025390625, + 404.6960144042969 + ], + [ + 156.76171875, + 404.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Overloading by Denied Purpose", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 149.65576171875, + 212.69598388671875 + ], + [ + 278.4958190917969, + 211.7021484375 + ], + [ + 278.4958190917969, + 224.69601440429688 + ], + [ + 149.65576171875, + 224.69601440429688 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 169.03564453125, + 40.86962890625 + ], + [ + 281.5679016113281, + 40.86962890625 + ], + [ + 281.5679016113281, + 52.36962890625 + ], + [ + 168.17431640625, + 52.36962890625 + ] + ] + }, + { + "title": "Overloading by Emergent Purpose", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 156.76171875, + 496.248046875 + ], + [ + 295.33673095703125, + 494.947265625 + ], + [ + 295.33673095703125, + 509.6959991455078 + ], + [ + 156.76171875, + 509.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Overloading by Piggybacking", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 154.6083984375, + 512.1826171875 + ], + [ + 273.66680908203125, + 510.8818359375 + ], + [ + 273.66680908203125, + 524.6959991455078 + ], + [ + 154.6083984375, + 524.6959991455078 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 170.1123046875, + 40.86962890625 + ], + [ + 281.56201171875, + 40.86962890625 + ], + [ + 281.56201171875, + 52.36962890625 + ], + [ + 169.2509765625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 169.681640625, + 40.86962890625 + ], + [ + 281.56781005859375, + 40.86962890625 + ], + [ + 281.56781005859375, + 52.36962890625 + ], + [ + 168.8203125, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.76219177246094, + 40.86962890625 + ], + [ + 276.2377014160156, + 40.86962890625 + ], + [ + 276.2377014160156, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Purpose Granularity & Coherence", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 144.2724609375, + 77.69598388671875 + ], + [ + 283.534912109375, + 76.4208984375 + ], + [ + 283.534912109375, + 89.69598388671875 + ], + [ + 143.4111328125, + 89.69598388671875 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 169.89697265625, + 40.86962890625 + ], + [ + 281.5619812011719, + 40.86962890625 + ], + [ + 281.5619812011719, + 52.36962890625 + ], + [ + 169.03564453125, + 52.36962890625 + ] + ] + }, + { + "title": "Applying Coherence Criteria: Facebook Likes Has Multiple Purposes", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 87.64013671875, + 181.7841796875 + ], + [ + 364.40301513671875, + 181.7841796875 + ], + [ + 364.40301513671875, + 194.19601440429688 + ], + [ + 87.64013671875, + 194.19601440429688 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Spliing a Concept: Facebook Likes Should Be Multiple Concepts", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 82.6875, + 406.8193359375 + ], + [ + 346.0115051269531, + 405.5185546875 + ], + [ + 346.0115051269531, + 419.6959991455078 + ], + [ + 81.826171875, + 419.6959991455078 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 170.32763671875, + 40.86962890625 + ], + [ + 281.56781005859375, + 40.86962890625 + ], + [ + 281.56781005859375, + 52.36962890625 + ], + [ + 169.46630859375, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 174.4189453125, + 77.69598388671875 + ], + [ + 253.86582946777344, + 76.74609375 + ], + [ + 253.86582946777344, + 89.69598388671875 + ], + [ + 173.5576171875, + 89.69598388671875 + ] + ] + }, + { + "title": "Some lessons from this chapter:", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 47.373046875, + 96.908203125 + ], + [ + 184.28536987304688, + 95.607421875 + ], + [ + 184.28536987304688, + 108.467529296875 + ], + [ + 46.51171875, + 108.467529296875 + ] + ] + }, + { + "title": "9: Concept Specificity", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 169.89697265625, + 40.86962890625 + ], + [ + 281.5677185058594, + 40.86962890625 + ], + [ + 281.5677185058594, + 52.36962890625 + ], + [ + 169.03564453125, + 52.36962890625 + ] + ] + }, + { + "title": "10", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 214.26010131835938, + 65.18560791015625 + ], + [ + 238.74009704589844, + 65.18560791015625 + ], + [ + 238.74009704589844, + 101.18560791015625 + ], + [ + 213.609375, + 101.18560791015625 + ] + ] + }, + { + "title": "Concept Familiarity", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 157.15989685058594, + 106.2142333984375 + ], + [ + 295.8662109375, + 105.0380859375 + ], + [ + 295.837890625, + 126.2142333984375 + ], + [ + 156.3310546875, + 126.2142333984375 + ] + ] + }, + { + "title": "Successful Reuse of Concepts", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 168.17431640625, + 421.453125 + ], + [ + 283.6661376953125, + 420.15234375 + ], + [ + 283.6661376953125, + 434.6959991455078 + ], + [ + 168.17431640625, + 434.6959991455078 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 68 + ], + [ + "TableCell", + 48 + ], + [ + "Line", + 28 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "Table", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "TableGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 65 + ], + [ + "Line", + 28 + ], + [ + "TableCell", + 10 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "Table", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "TableGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 41 + ], + [ + "Line", + 21 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 74 + ], + [ + "Line", + 28 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 55 + ], + [ + "Line", + 20 + ], + [ + "TableCell", + 20 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 2 + ], + [ + "Form", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 97 + ], + [ + "Line", + 36 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 78 + ], + [ + "Line", + 32 + ], + [ + "ListItem", + 9 + ], + [ + "SectionHeader", + 2 + ], + [ + "ListGroup", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 52 + ], + [ + "Line", + 28 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 3 + ], + [ + "PageHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 83 + ], + [ + "Line", + 37 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 58 + ], + [ + "Line", + 27 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 30 + ], + [ + "TableCell", + 30 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Table", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "TableGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 84 + ], + [ + "Line", + 36 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 78 + ], + [ + "Line", + 26 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 87 + ], + [ + "Line", + 35 + ], + [ + "ListItem", + 7 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 2 + ], + [ + "ListGroup", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 87 + ], + [ + "Line", + 36 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 66 + ], + [ + "Line", + 33 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 79 + ], + [ + "Line", + 33 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 67 + ], + [ + "Line", + 28 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 71 + ], + [ + "Line", + 26 + ], + [ + "Text", + 4 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 63 + ], + [ + "Line", + 27 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 35 + ], + [ + "Text", + 5 + ], + [ + "ListItem", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 65 + ], + [ + "Line", + 30 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 91 + ], + [ + "Line", + 35 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 35 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 35 + ], + [ + "ListItem", + 8 + ], + [ + "SectionHeader", + 3 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 49 + ], + [ + "Line", + 22 + ], + [ + "ListItem", + 4 + ], + [ + "Text", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 55 + ], + [ + "Line", + 29 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 3 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 87 + ], + [ + "Line", + 27 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-121-150" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_0_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_0_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c1635e39b00e48b795dd5bc92bd660b7ccd3ee75 GIT binary patch literal 39073 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_10_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_10_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1db354a4d7104c2d9e5e46eac314c095d6d39a26 GIT binary patch literal 91321 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 OgsyTOO!D&oZvp_ce7(g0 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_11_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_11_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..73fa053acea5b0648538a83bfa235f2b529f1ad5 GIT binary patch literal 28700 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_14_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_14_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a333f704cd94221cfed02038c3fa0cf58b12705c GIT binary patch literal 46607 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

    HIdo5RhMJ&}$4OQYGKQ4Rk!ked1?L!juK% zK1mhY?hE%=y7)gEBaoQ_HwhwACeqpkNf;g#bD>&IT622|)mO#BwB|;oNqy7~hj;9- z>$ZARdsfMPE`R>#0oPcdZ}Y&RMMwn6Sx$3q%(m2ywy^5Sp!9t*miFwQl$@BG&Df5< z3`9TWkZQ7!)_i7fHEmYx*_L0~zVH&8fnxQX;Q0W!(4Bx`_8nj6q95OHUn=R1!}?bR z(;Km)5ktTgs zV3oz}M}ZYiD+t3Tr;4gnE6n`}ai%s;ue{(`7j+U{`w8HZXopgzBKLOMtOVJ?l~QIB zTH#g%^^3Xzx zO#8TsJw?ROJ5^=F&)r=+b@%n$gM@O8xhi#!H5 z=ar$4(e5fGsj7ZvRzQ))>g1HV_i-)>E`j&YZ+;s4>=~UN5@>*5f7H=p0(Y=|)rR>U z#86K9{#D`LE%^^}Ba`Dd9k9~3Iw7wd^HA%kwSstQc8_}mvo$JwIOSy?az_GY*3_Ro zl)y5wLV^Bu2)Ld9b-7HMAX3<#*%H<+2Q zQ7lX_WknKX797AyrraM)o(f*u9HOu5^g&E42gp=(7I#RME80XPKsrLG9<2e6_)OCH z)8tsTC~r0k<$D5*`^^i5{Hfzkq2X;HYWt^)BV*4xuJ!en{#+@I`AU#MZ9n6Q2#M~n z37H6QQrXr6Q;y|0Ggw)ShviiarRHKCo9~)WzuLy0+yQ9=h!cco6NPSH|C1>^{$D0T H!a()!2+JE{ literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_16_Figure_0.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/_page_16_Figure_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4259428e20c336ede404431e85b8cba27d901c60 GIT binary patch literal 92156 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 uZF)Iz~ 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 R`u=kyVgG;WFO;vN{~x`i=!^gW literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-151-180/concepts-151-180.md b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/concepts-151-180.md new file mode 100644 index 0000000..a2d8289 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/concepts-151-180.md @@ -0,0 +1,489 @@ +#### 10: Concept Familiarity + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-151-180/_page_0_Picture_1.jpeg) + +fig. 10.2 *Organizing slides in Keynote and PowerPoint. On the le, the Keynote group concept, which reuses the familiar concept of the tree outline; in the middle, the PowerPoint section concept, which is novel and unfamiliar; on the right, some actions on sections whose behavior is unpredictable.* + +# *Grouping Slides: Avoiding Invention* + +When a designer has a choice between reusing a generic concept or inventing a new one, it's preferable to reuse the generic one—unless there's a clear respect in which the generic concept would not fulll the purpose so eectively. + +To illustrate this, let's look at how two slide presentation tools let you structure the sequence of slides. e purpose here is to be able to organize a presentation into smaller groups of slides, so that you can work on each group separately. e expected operational principle is something like this: + +*If you group a contiguous set of slides, you can then apply actions to the entire group at once, such as showing or hiding the slides, moving them around, etc.* + +Apple Keynote provides the *slide group* concept for this purpose. A group is a sequence of slides that sits under a parent slide, shown by indenting the members of the group with respect to the parent (Figure 10.2, le). You can toggle the visibility of the group, and can move it around as a unit by dragging the parent slide. + +Microso PowerPoint provides the *section* concept for the same purpose [\(Figure 10.2, middle and right\)](#page-0-0). Each section can be given a name, and, like Keynote, has a toggle to display or hide its constituent slides. is works reasonably well, and is certainly not a terrible design. + +But the Keynote design, in my view, is more eective and easier to use. Whereas PowerPoint's sections are limited to one level of organization, you can put groups inside groups (up to six levels deep). In these sample slides, you can see that, in Keynote, slide 11 sits below the slide with the title "grouping slides," which itself sits below "concept familiarity"; in PowerPoint, there can be no structure within the section entitled "concept familiarity" because sections can't be nested. You can move sections forwards and backwards in the presentation order, but you can't put a section inside another section. + +e user interface of groups is more intuitive. To create a group, you select some slides that follow the slide that will be the parent, and you drag them to the right; to remove the group, you drag them back to the le. If you drag a slide that is in the middle of a group to the le, it will be promoted up one level (as you'd expect), and the group it previously belonged to will be split into two sibling groups. + +Creating sections is more tricky. You might have thought you could select a contiguous sequence of slides (say all the slides that are about concept familiarity) and then invoke the command "add section." If you do that, it will indeed create a section, but that section will include all the slides from the rst selected slide to the end of the entire presentation. If the selected slide is within a section, the new section will follow it; if not, a second new section (which will be named "default section") will be created for the earlier slides.105 + +is is complicated! (And tedious to read about, I admit.) But worse, it's unpredictable. ere's no reason you should have been able to guess that adding a section would do this. It would have been equally reasonable (and perhaps better) to create a new section containing just the selected slides, for example.106 + +In contrast, Keynote's behavior is mostly simple and predictable. If you start with no groups, and you drag one slide to the right, you will have created *one* group in which that slide is the child and its predecessor is the parent. Unlike with sections, no other groups appear spontaneously. Perhaps the only behavior you might not predict is what happens if you select several non-adjacent slides and drag them to the right. In that case, you see visually (as you begin to + +#### 10: Concept Familiarity + +drag) that the slides are grouped together into a single contiguous sequence, and will then become children of the same parent. + +Why was Apple able to design a beer concept? In large part, it's because they didn't start from scratch. And this is also why Apple's concept feels more intuitive. We've seen it before, in other contexts. We might call it the *outline tree* concept. Every outlining tool and word processor has it: you can make a list of items (usually short sentences or phrases) and introduce levels, so that the resulting structure is a tree with an outline item at each node. + +#### *Export Presets: When Extension Breaks Familiarity* + +Our second example of an unfamiliar concept arises in a dierent context. In this case, we'll see that the design started out with a conventional and familiar concept, but it was then extended with new functionality, and the familiarity was lost. + +e concept is *preset*. Its purpose is to save the user the trouble of entering parameters for a frequently used command. Instead, the parameters are saved as a preset, and when the command is invoked, the user can choose either to set the parameters explicitly, or to set them automatically by selecting a previously saved preset. + +Adobe Lightroom Classic uses presets eectively for many dierent commands. ere are presets for printing, for editing, and for importing and exporting images. e troublesome example that I want to focus on involves the use of the *preset* concept for exports. + +Take a look at the screenshot of the export dialog (Figure 10.3). On the right are the parameter seings; on the le is a (hierarchical) list of presets. You can adjust the parameters manually; you can also click on the name of a preset, which will cause the parameters to take the preset values, and you can then override those values if you like. All this is familiar to anyone who has used a preset dialog. + +But now if you look carefully at the preset list, you'll notice that there is checkbox next to each preset name. is, it turns out, is a powerful extension that allows you to select several presets at a time. Now you may wonder: what can this possibly mean? Well, in general, for the *preset* concept, it doesn't make much sense, because only one set of parameters can be used when a command is executed. But for this particular command, one might want multiple + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-151-180/_page_3_Figure_1.jpeg) + +fig. 10.3 *e export dialog in Adobe Lightroom, which uses an unconventional variant of the preset concept. In addition to selecting a preset by clicking on its name (le), you can also check the box (right); this allows multiple presets to be selected, which allow the same set of photos to exported multiple times, with dierent seings each time.* + +executions with dierent presets. You might, for example, export the chosen photos in both high and low resolution versions in one go. + +e goal of this new functionality—namely to allow a sequence of exports with multiple presets—is totally reasonable, and was apparently requested by many users. But squeezing it into the *preset* concept produces some strange anomalies. For example, if you select a preset by checking it, you can no longer edit its parameters. + +As you might expect, when this new functionality was added, many users posted requests for help on the app's community forum. Many (including me) didn't even realize that clicking on a preset name was dierent from clicking on the checkbox. And the graying out and the hiding of sections was puzzling to users. e presence of the "Learn more" link at the boom of the dialog suggests that Lightroom's designers are well aware of these problems, but have yet to solve them. + +#### 10: Concept Familiarity + +Applying the concept specicity principle, we might detect here two distinct purposes: (1) saving common parameter seings for commands; and (2) repeating a command with dierent, but predetermined, seings. e rst is fullled by the *preset* concept. e second probably calls for a new concept, which would be independent of *preset* but used with it: maybe one like Photoshop's *action* to dene sequences of actions as lile programs that the user can dene and invoke.107 + +# *Conformity of Concept Instances* + +When a concept that appears in a design is an instance of a familiar, generic concept, it should adhere exactly to the behavior of the generic concept—unless there are very good reasons not to, and the deviations from the standard concept are made very clear. Otherwise users who are familiar with the generic concept will be confused, having assumed that the concept behaves the same way it behaves in the other instances they have seen. + +To illustrate this, let's look at a dilemma in the design of Apple's *contact* concept. Most people use the Apple Contacts app on their phone. Aside from storing phone numbers so you don't have to remember them, it also fullls the useful function of aaching names to numbers when calls come in. Many people enter nicknames for friends and family members, so that on a certain Charles George's phone, a call from his mother might be shown with the name "Mummy" if he had failed to follow protocol and enter her name in his contacts as Her Majesty Queen Elizabeth II. + +ere's no disaster here, but if the Prince of Wales now sent an email message to his mother, he might be distressed to discover that the email would include "Mummy" in the recipient email address of the message. Awkwardly, names aached to email addresses are passed on when a user forwards or replies, so if the message were about some maer of state that involved advisors, it might make its way around all the oces of Buckingham Palace until eventually every message sent to the Queen is addressed to "Mummy." + +If the Prince were to make this mistake, I would argue that we would have to forgive him, on the grounds that he legitimately assumed that the Contacts app used a concept that we might call *nickname* that lets you use a convenient alias or nickname in place of a longer phone number or email address. at concept + +keeps the alias private, so from that perspective the behavior of the Contacts app is deviating from familiar expectations. + +In Apple's defense, we might argue that the concept never was *nickname*; from the start it was a *contact* concept that lets you store all the information you have about someone, including their full name. e Prince was misled by the fact that he happened to look up contacts by name, but Apple's app does lookups and autocompletion equally on phone numbers and email addresses. His expectations were also shaped by using contacts for phone calls (in which no name is ever sent) before he used contacts for emails.108 + +In this case, there is no right or wrong answer; the point is simply that familiarity with a concept, and the concomitant expectations it brings, are powerful factors that must be taken seriously in design. + +## *Lessons & Practices* + +Some lessons from this chapter: + +- · A good designer knows not only how to invent new concepts, but also when not to invent at all. If your purpose is addressed by an existing invention, you're beer o reusing that. +- · A concept is like any other invention in this respect. What's new is that concepts provide a way to structure knowledge and experience of soware design in small and coherent pieces, allowing more granular opportunities for reuse. +- · e easiest way to make a design usable is to build it from familiar, preexisting concepts. Using polished and well-understood concepts reduces the chance of mists, and makes the design intuitive to users. + +And some practices you can apply now: + +- · Before you invent a new concept, brainstorm existing concepts to see if there is one that meets your purpose. Remember that the concept you need may come from a very dierent domain. +- · When mapping to a user interface, a need for unconventional widgets may suggest that the underlying concept is itself baroque and unconventional. +- · If an existing concept seems to only partially meet your goal, rather than modifying or extending it, explore whether it might be composed with another familiar concept to give the functionality you need. + +#### 10: Concept Familiarity + +· When the behavior of concept actions is unpredictable, and several possibilities seem equally likely, the concept design is likely at fault. A good design has a quality of inevitability about it. + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# 11 + +# Concept Integrity + +When a system comprised of concepts executes, each concept runs as its own lile machine, controlling when an action may occur, and what its eect on the concept state will be. Synchronizations can constrain actions further, by making the actions of one concept happen together with certain actions of another concept. + +One concept cannot modify the state of another concept directly, or somehow change the behavior of one of its actions. is is critical, and what makes concepts intelligible in their own right. + +But this modularity only holds if concepts are properly composed, using the synchronization mechanism of Chapter 6. If the framework in which the concepts are implemented allows them to interact in other ways, or if there are bugs in the code, a concept may behave in an unexpected way, violating its specication. + +e designer can also break a concept, tweaking its behavior so that, in composition with other concepts, it conforms to the needs of the particular app. Some adjustments might preserve a concept's specication while adding some new functionality, but others might break it. + +For all these reasons, it is critical that the *integrity* of a concept be maintained when it is composed with other concepts. In this chapter, I'll show you some examples of integrity violations and the problems they cause. + +Some integrity violations (such as our rst one, e Revengeful Restaurateur) are blatant and easy to x once discovered. Some (such as the second, Font Formats) are subtle and represent an ongoing design struggle that has yet to be resolved. Some (such as the third, Google Drive) are unsubtle but xable only with considerable eort. + +# *A Blatant Violation: e Revengeful Restaurateur* + +Imagine a restaurant reservation app with a *reservation* concept with actions to *reserve* and *cancel* tables, and a *review* concept that lets users post ratings of restaurants they've visited. + +Each of the two concepts has its dened behavior and its operational principle: for *reservation*, that if you reserve and turn up at the right time, a table will be available; for *review*, that aggregate ratings reect the individual ratings that were previously submied. + +When these concepts are composed, the designer can synchronize them together. For example, she might decide that you can't review a restaurant until you've reserved it (or maybe even dined there). is synchronization will constrain the app by ruling out certain behaviors—in particular, ones in which a user reviews a restaurant they never made a reservation for. Despite the synchronization, every behavior of the app will still make sense when viewed through the lens of a particular concept. + +Now suppose a restaurateur, frustrated by bad ratings, decides to hack the app to punish ungrateful customers. He modies the behavior so that a customer who enters a bad rating is able to make a subsequent reservation, but then nds—even though there was never a *cancel* action—that when they arrive at the restaurant there is no record of the reservation, and thus no table. + +is hack does not correspond to any legitimate synchronization. Not only does it couple together the two concepts, but it *breaks* the *reservation* concept. e operational principle of that concept says that if you make a reservation and don't cancel it, a table will be available. With this hack, the principle no longer applies, and the app cannot be understood in terms of the original concept. is is what I will call an integrity violation. + +Suppose, on the other hand, the revengeful restaurateur hacked the app so that when any customer posts a low rating, a *cancel* action is performed on any reservation the customer has at any restaurant. e poor customer probably gets a notication (due to synchronization with the *notification* concept) of the cancellation, despite never intending to cancel. + +is behavior, however mean-spirited and annoying it might be, does *not* violate integrity because the new behavior is perfectly understandable in terms of the specication of the *reservation* concept. It might annoy the customer to + +#### 11: Concept Integrity + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-151-180/_page_10_Picture_1.jpeg) + +fig. 11.1 *e format toggle concept in the rst versions of MacWrite (1984).* + +discover that a cancellation has been issued without their consent, but the behavior is still consistent with the concept (its specication being silent on the question of *who* is allowed to cancel a reservation). + +# *Font Formats: A Long-Standing Design Problem* + +In the rst word processors, text was formaed with three simple properties: bold, italic, and underline (Figure 11.1). Each property had an associated action that toggled it, so if you applied the action *bold* to plain text, it would become bold; and if you applied it again, it would return to plain. is concept is so familiar and remains so widely deployed that it seems silly to have to name it. But for the sake of our discussion, let's call it *format toggle*. You can nd it today in thousands of apps from email clients to embedded rich text editors. + +Another important (and early) concept for formaing text is *typeface*. Its behavior is simpler: there's a list of typefaces, and you can choose one and apply it to some text. In the early days, the *format toggle* concept was implemented as a transformation that was applied to the characters provided by the *typeface* concept: a character was italicized by applying a slant to the leer form, and made bold by a dierent transformation that increased the weight. + +Real typographic italics, however, have never been just slanted versions of the roman forms, but are typically more owing and calligraphic; nor are the + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-151-180/_page_11_Picture_1.jpeg) + +fig. 11.2 *Integrity violation example in TextEdit: bolding once (second line) turns the text om light to bold; bolding again (third line) leaves the text in regular, not light.* + +bolder versions of type just faer. Computer typography advanced, and with the advent of PostScript fonts, it became common to provide distinct bold and italic versions of the typeface in separate font les, and to use transformations only for scaling. e implementers of word processors were able to maintain both concepts, *format toggle* and *typeface*, by a clever trick. When you set some text to italic, it switched to the italic font le; seing it to bold would then switch to the bold-italic font le; seing it to italic again would then switch to the bold font le; and so on. In this way, the design preserved the integrity of both concepts. + +en, with the arrival of professional fonts, trouble hit. Now, instead of just having a few variants of each typeface, a much larger collection was provided. e dierence between these and the old fonts is usually additional weights such as semibold (between roman and bold) and black (heavier than bold), as well as additional variants for use at dierent sizes, such as a display font (for text set in very large sizes), or a caption font (for text set in very small sizes). + +With these enrichments, all hell breaks loose, and *format toggle* no longer works. Figure 11.2 shows what happens in Apple's TextEdit. You can see I've selected the typeface family Helvetica, which has six variants. e rst line was set in the Light variant. I then copied the text to the second and third lines. To the second line, I applied the bold action once, and to the third line I applied it twice. If *format toggle* works correctly, applying the bold action twice should take you back to where you started, so the rst and third lines should look identical. But they don't, because applying bold once changed the type from Helvetica Light to Helvetica Bold, and applying it again changed it to Helvetica Regular (and not back to Helvetica Light). + +#### 11: Concept Integrity + +| Char | racter Style Optic | ns | | | | +|----------------------------------------------------------------------------------------------|--------------------|-----------|---------|--|--| +| | Name: Emphasis | 5 | | | | +| Basic Characte | r Formats | | | | | +| Font Family:
    Font Style: | | | | | | +| Size: | | ∨ Leadir | | | | +| Kerning: | | ∨ Trackin | ıg: 🗘 🔻 | | | +| Case: | | Position | n: | | | +|

    • ■ Underline
    • ■ Ligatures
    • ■ No Break
    • ■ Strikethrough
    | | | | | | + +fig. 11.3 *e character style dialog in Adobe InDesign: formats are specied by selecting styles such as Italic and Bold, which undermines the value of partial styles.* + +In short, the implementation of *format toggle* in TextEdit does not meet its specication, but not because there is a bug in the code. e problem is a deeper one, and involves the interaction between the two concepts. e extension to the *typeface* concept has broken the *format toggle* concept. + +Apple tried to x this problem in its productivity apps such as Pages. e dialogs looks just like TextEdit, but the bold and italic actions behave dierently. If you bold some text in Helvetica Light, it will now be in Helvetica Bold (naturally); if you bold it again, however, it will be back in Helvetica Light (in accordance with the specication of *format toggle*). But this behavior is achieved with some hidden magic, which introduces new problems.111 + +is critique might seem nitpicky, but it's actually a serious problem in desktop publishing. Figure 11.3 shows the character style dialog in Adobe InDesign. Here, I'm dening a style called *Emphasis* to be used for text that is to be emphasized. By making it a style, I am hoping to be able to factor out *whether* some text is emphasized from *how* it is emphasized (by italics, bold or even underlining, say). For an initial denition of the character style, I've selected the "font style" *Italic*. Note there is no selection for the "font family"; this is essential, because it allows the character style to be applied to text in dierent typeface families. + +At least that was my hope; in fact, it doesn't work. To apply this *Italic* seing, InDesign switches the typeface to the one whose name is the typeface family concatenated with the string "Italic." So if the text is in "Times Regular" it will + +set it to "Times Italic." So far so good. But if the text is in "Helvetica Regular" it will try to set it to "Helvetica Italic." As you can see from the TextEdit screenshot [\(Figure 11.2\)](#page-11-0), my version of Helvetica calls the italicized form "Helvetica Oblique." So the character style is *not* in fact typeface-independent, and can only be applied successfully to text in certain typefaces. + +ere have been other aempts to x this problem, but there seems to be no satisfactory solution. e *format toggle* concept just cannot be reconciled with more sophisticated typographic concepts. + +#### *Losing Your Life's Work with Google Drive* + +My wife keeps most of her work documents in Google Drive. Having seen accidents in Dropbox (Chapter 2), I was worried about her losing her work, and began looking for ways to protect it. + +I learned that Google Drive itself does not provide backup,112 so I would have to devise my own scheme. An obvious idea came to mind. I would install the Google Drive app and keep all of her cloud les synchronized to a folder in her local disk, and would then add that folder to the selection set of the backup utility that I already had running on her laptop. at way, whenever one of her Google Drive les was modied, the local version would be updated, and would then be backed up to the cloud. + +I was surprised to discover that this apparently straightforward scheme does *not* work. Searching online to see if anyone had come up with a solution to this dilemma, I came across a sad story of someone who had relied on a variant of this scheme and paid a heavy price. + +e story is illustrated in Figure 11.4. On the le is the starting state, in which there are two les, *book.gdoc* (a Google document) and *book.pdf* (a PDF export of the document), both stored in the Google cloud and synchronized to the Google folder on the local disk. Our protagonist then moves the les out of the folder on the local disk, resulting in the state shown in the middle. e Google Drive synchronizer then runs, and seeking to make the contents of the local folder and the cloud folder identical, it removes both les from the cloud. + +At this point, you might imagine that, whatever happens to Google Drive, the les are safely stored on the local disk. Sadly, this was not the case. As our hapless user reports: + +#### 11: Concept Integrity + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-151-180/_page_14_Figure_1.jpeg) + +fig. 11.4 *Integrity violation in Google Drive: the cloud-app concept breaks the synchronization concept. A user moved les out of his Google drive in order to make space in the cloud, but the les he moved turned out just to be links to les in the cloud that no longer existed.* + +*e next morning, I go to open a .gdoc le and get this error: "Sorry the le you have requested does not exist." My heart sank. What happened to the work om yesterday? I opened another le. en another. All of them the same message. I was starting to eak out.* + +Indeed, most of his les were gone, for good.113 His summary: "I lost years of work and personal memories that I saved as Google Docs les because of a poor user interface." As we shall see, though, the problem was deeper than the user interface: it was a concept integrity violation. + +Our user was relying on the behavior of *synchronization*. e purpose of this concept is to maintain consistency between two collections of items; the operational principle is that any change made to one collection is propagated to the other. Synchronization, unlike backup, also propagates deletions; this allows you to keep items organized. A fundamental property of synchronization is that the copies of the items in the two places should be identical. + +Unfortunately, the Google Drive synchronizer does *not* always create faithful copies. It does for conventional les, such as *book.pdf*. But for Google app les, such as *book.gdoc*, it doesn't copy the le's data to disk at all. Instead, it creates a le that contains just a link to the le in the cloud. at's why aempting to open the le on the local disk produced an error message: clicking on it opened a web page in the browser for a le in the cloud that no longer existed. + +In addition to *synchronization* then, there's another concept at play, which we might call *cloud app*. is concept embodies the idea of documents in the cloud that are accessed through a link. In concept terms, combining the two concepts has violated the integrity of the *synchronization* concept. + +From a concept design point of view, there is no obvious barrier to xing this problem (in contrast to the case of the *format toggle* concept). I suspect it's just not a priority for Google to implement a solution, although it's surprising that more users of Google Apps aren't more concerned about not having backups. + +#### *Lessons & Practices* + +Some lessons from this chapter: + +- · When concepts are composed to form an application, they may be synchronized (as explained in Chapter 6) so that their behaviors are coordinated. is synchronization may eliminate certain behaviors of a concept, but can never add *new* behaviors inconsistent with the concept specication. +- · But if the concepts of an application are assembled incorrectly, behaviors may result which, viewed in terms of the actions and structure of a particular concept, break that concept's specication. +- · ese *integrity violations* confuse users, because their mental models of concept behavior are broken. + +And some practices you can apply now: + +- · When designing an app using concepts, even if you are not dening synchronizations precisely, at least convince yourself that every interaction between concepts can at least in principle be viewed as a synchronization. +- · If you're having trouble using an app, or analyzing a usability problem, and you discover that a concept is behaving in an unexpected way, ask yourself whether interference from another concept may be to blame. +- · To ensure integrity, make sure that a concept that purports to be generic really is. In the Google *synchronization* example, the integrity violation is evident in the non-uniform way in which dierent types of les are handled. + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-151-180/_page_16_Figure_0.jpeg) + +fig. 11.5 *A pictographic summary of the principles of Chapters 9 to [11.](#page-8-0) A line between a purpose and a concept indicates that the concept fullls the purpose; the broken line (for the integrity violation) indicates non-fulllment, due to the interference of another concept; lines between concepts denote composition; doed boxes represent applications.* + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# Questions to Remember + +In closing, I'd like to review the key ideas of the book, and suggest how readers in dierent roles might apply them. e suggestions are organized around a series of questions. + +#### For Strategists, Analysts, and Consultants + +For those strategizing about a product and its evolution, the identication of concepts and their value dominates, with the design details of individual concepts taking a back seat. + +### *What are the key concepts?* + +Consider the system, service, or application to be built—or the one that already exists—and ask yourself what its key concepts are. By constructing an inventory of the concepts, you'll get a bird's-eye view of the functionality, a kind of landscape within which to consider your strategic moves. Arrange the concepts in a dependence diagram to see how they are related to one another, and which ones lie at the core. + +# *How old are your concepts?* + +When you look at the concepts in your existing system, determine when each concept was introduced, and investigate whether it has changed over time or remained stable. Are there concepts that have morphed dramatically (like Facebook's *post*—see Note 48) signaling a major shi in the entire system or becoming new concepts as they evolved? Have some concepts been introduced and then retired? Which have most successfully stood the test of time? + +# *What are your most valuable concepts?* + +Do you have a killer concept (like Photoshop's *layer* or the World Wide Web's *url*) that is responsible for the success of your product and your competitive + +advantage? Are some concepts (like Gmail's *label*) the linchpin of your product without which it could barely function? Are some concepts key to revenue, perhaps because they dene a premium version of your product, or because they bring the greatest value to your customers? + +#### *Do you have troubled concepts?* + +Does your product include concepts that have confused users, as evidenced by frequent help requests, or whose complexity has led to a disproportionate share of defects or system outages? If so, are these troubled concepts shared with your competitors, or might they be self-inicted wounds? + +#### *What shared concepts dene this family of products?* + +If you view several of your products as members of a single family (such as Adobe Creative Suite, or Microso Oce), can you identify the key concepts that are shared between them? Are these shared concepts implemented using a common infrastructure, or are they implemented anew in each product? Are the various instances of a shared concept consistent with one another, or are there small and perhaps arbitrary dierences between them? Do those dierences create problems as users move from one product to another? Do they cause integration and data sharing problems? + +Maybe the products belonging to the family don't currently share concepts, but they could in the future if concepts appearing in multiple products were unied. Would such a unication bring benets not only to the family as a whole, but also to the individual products? + +# *What is the purpose of each concept?* + +For each concept in your inventory, can you give a simple and compelling purpose? Do these purposes contribute to the larger goals of the product, and the vision of your organization? + +Whose purpose does each concept serve? Does the purpose serve the interests of your customers? If so, which customers does it serve—the users or the advertisers? If it serves the interests of your organization, does it exact an unnecessary cost from customers? Are the purposes that are intended to serve the interests of customers communicated eectively to them, and do they align with their true needs? + +#### *Are there missing concepts?* + +Can you identify a purpose that is not being fullled that suggests a missing concept (such as the *correspondent* concept missing from email clients)? If you can identify such a concept, is there an opportunity to add it to your product, and thus acquire a competitive advantage? + +# *What are your competitors' concepts?* + +Look at the competing products in the same domain, and inventory their key concepts. Do they dier from yours? Are the concepts that you have and that your competitors lack signicant? Do they give your product an advantage, or are they a source of needless complexity? Are the concepts that your competitors have but that you lack a threat to the future of your product? Have you adopted industry-wide concepts? If so, do they make it easier for new customers to start using your product? Or do these concepts trap you in the awed assumptions of past products? + +### For Interaction Designers & Product Managers + +Many of the questions that apply to strategists and consultants also apply to interaction designers and product managers, but there are new questions focused on the design and mapping of individual concepts, and on tracing usability problems back to concepts. + +# *Are the concepts consistently conveyed to users?* + +Does your product succeed in projecting—through its interface, user manual or help pages, training and marketing materials—a mental model that matches the actual concept model? Review the way that your product's functionality is described in the user interface and all supporting materials. Do these all present a consistent image of the product's concepts? Is there a common vocabulary for concepts and their purposes? + +# *How are concepts explained?* + +Are the product and its associated support materials organized systematically around concepts? In your support materials, do you explain what the purpose of each concept is? Do you sometimes fall into the trap of explaining in detail + +what a concept does, without explaining what it's *for*? Do you provide compelling usage scenarios, and do they highlight the operational principles that show convincingly how the design of each concept fullls its purpose? + +# *What kind of usability problems do you have?* + +Reviewing feedback from users and requests for technical support, can you identify the primary usability problems in your product? en, for each problem, can you determine what *kind* of problem it is, assigning it to one or more of the three levels of interaction design? + +#### *Which concepts make you happy or sad?* + +As a designer, you undoubtedly have a deep understanding yourself of the product and its qualities. Make a table for aspects of the design that are successful, problematic, or something in between. When you've lled up this table, review each item, assign it to a design level, and for all those items that turn out to be conceptual, name the concept that is responsible. + +# *Are any of your concepts redundant?* + +Can you nd redundant concepts (like Gmail's *category* concept) that serve the same purpose of other concepts in your product, giving you the possibility of simplifying and clarifying the design by eliminating a concept, and extending the other (if need be) to cover the functionality of the eliminated concept? + +# *Are any of your concepts overloaded?* + +Do you have concepts (like the *cropping* concept in previous versions of Photoshop—see Note 101) that seem to serve multiple purposes? If so, these might be the cause of usability problems. Can you nd scenarios in which the dierent purposes of a concept conict with each other? If not, can you formulate a coherent and compelling purpose that encompasses those apparently distinct purposes, thereby arguing that the concept is, in fact, not overloaded aer all? + +# *Can some of your concepts be split?* + +Look at your more complicated concepts, especially those that are overloaded, and consider whether you might split them (as we did with Facebook's *like* concept) into multiple concepts, each with a simpler and more compelling pur- + +#### 12: questions to remember + +pose. Might doing this give you an opportunity to use a concept more widely and uniformly in your product? For example, if you factored a *notification* concept out, could you provide notications of a wider class of events, and give the user control over which notications occur? + +# *Are familiar concepts used eectively?* + +For each of the concepts in your product, ask yourself whether there is a more familiar concept that might take its place. Are any of your concepts (like the *section* concept of Microso PowerPoint) close in purpose to existing, more familiar concepts? If so, would anything be lost by replacing them with their more familiar counterparts? And if you determine that your use of an unfamiliar concept is justied, are the ways in which it diverges from more familiar concepts made clear and understandable to users? + +#### *How are concepts composed?* + +Which concepts are tied together by synchronizations? Can you draw synchronization diagrams to show which actions are tied together? What kinds of compositions do your synchronizations achieve: free, collaborative or synergistic? How much of the power of your design comes from synchronization, and how much from the concepts themselves? + +# *Do you have under-synchronizations?* + +Are there cases in which you could spare the user some manual work by increasing the synchronization between concepts, so that some actions are performed automatically? Could such synchronizations be provided as defaults for naive users, and in a more customizable form for experts? + +# *Do you have over-synchronizations?* + +Are there cases in which concepts are synchronized too tightly, taking too much control from the user? Would more orthogonality between concepts (that is, a looser synchronization) give the user ner control, making available functionality already present in your concepts? + +### *Are you exploiting synergy?* + +Do your existing concept compositions create synergies (as with the *trash*/*folder* example), in which one concept amplies the power of another? Can you nd additional opportunities for synergy? One way to think about this: could you adjust the behavior of one concept, perhaps generalizing it slightly, so that it could incorporate some of the behavior of another concept, but oer that behavior more consistently and widely? + +#### *Are the concepts mapped eectively to the user interface?* + +Does your user interface present concepts transparently to the user, or are the concepts buried under a layer of complex controls that makes it hard to see them and keep them separate? Is it easy for the user to discover how to select actions and their arguments? Is the state of each concept visible to the user? Does your user interface make not only individual concept actions available, but also more complicated sequences of actions that users are likely to need? + +### *Have you analyzed your concept's dependencies?* + +Construct a dependence diagram for all the concepts in your product. Is the justication for each concept solid in terms of the concepts it depends on? Does the diagram suggest subsets you had not considered, perhaps for simpli cations of the product? + +# *Are the concepts assembled with integrity?* + +Each concept may be sound in isolation but undermined when combined with other concepts in the product as a whole. Does the design preserve the integrity of each concept? Or are there subtle ways in which a user's understanding of a concept has to be modied due to interference from another concept? + +# *Is your concept wisdom safely documented?* + +A concept design may evolve over many years, accruing a host of xes and re nements from multiple generations of designers. If this knowledge is captured only in the code, then—as the fate of the *range* concept in Apple Numbers suggests—it can be lost when a new programmer is unaware of subtleties, and makes a change that erases years of insight in seconds. For this reason, it's im- + +#### 12: questions to remember + +portant to maintain a design journal for a product that tracks the development of each of its concepts. A briefer concept catalog or handbook that records the distilled wisdom of each concept the company has designed can enable sharing between products and help bring new designers up to speed. + +#### For Technical Writers, Trainers & Marketers + +Some additional questions apply to those who provide the crucial materials that users turn to in order to become familiar with a product and gure out what to do if they get stuck. + +*Are the supporting materials organized around concepts?* + +Are the user manuals, help functions and technical support articles organized around the key concepts? Are the actions of a concept explained together, in a coherent way? + +*Do you give clear purposes for concepts?* + +When introducing a concept, do you explain *why* the concept exists, what it's *for*? Do the purposes you give satisfy the criteria of well formed purposes (cogent, need-focused, specic, evaluable)? Have you avoided misleading metaphors? + +*Do you explain the operational principle of each concept?* + +To explain how to use a concept, do you give a compelling operational principle, or do you just list actions and leave the user to gure out what the archetypal usage scenario is? + +*Are concepts explained in a rational order?* + +If some of your materials (a user manual, for example) are sequential, do they present concepts in an order that is consistent with the dependence diagram, so that each concept can be motivated at the point at which it is introduced without forward references to concepts that have yet to be explained? + +# For Programmers and Architects + +e above questions about the concepts, their purposes, and their relationships to one another are all fundamental for implementers too. e depen- + +dence diagram can be used to phase development incrementally, and to plan partial releases. + +*What set of concepts forms a minimum viable product?* + +is is of course a vital question for strategists too, but it has particular signi cance for implementers because they can more readily assess the costs of building the concepts. + +*Which concepts will be challenging to implement?* + +Can you identify which concepts will be the most challenging to implement? Which concepts have the most complex state, or will present performance challenges because of the volume of data they will embody? Do the operational principles of any concepts hint at consistency problems that may require distributed consensus algorithms? If so, might eventual consistency suce? + +*Can you avoid reinventing the wheel?* + +If you're implementing a familiar concept, can you nd implementations of that concept in your own organization or elsewhere that will give you guidance and help you avoid known problems? + +*Are standard library concepts used where appropriate?* + +Has your designer invented a concept that requires a non-standard library or plug-in, when a standard one might have been just as good? Is there an existing implementation that is close enough to a proposed concept that it may be worth adjusting the design to accommodate it? + +*Are concepts as generic as possible?* + +Are the concepts in the design needlessly specialized to particular datatypes, or could they be expressed generically? For example, if the design includes a *comment* concept, is the target of a comment any item, or does the design (and worse, the implementation) assume that the target is always a *post* or an *article*? + +*Can you implement the concepts as separate modules?* + +If your implementation entangles concepts together, is the lack of modularity really justied? Or are you building up technical debt that will eventually have + +#### 12: questions to remember + +to be repaid? If you have succeeded in modularizing concepts, are there code dependencies between them that can be eliminated so they can be modied and reused more easily? + +*Are there complex synchronizations between concepts?* + +If the product relies on concepts being synchronized in rich ways, does the synchronization produce complexity in the code? If so, might there be a beer way to organize it, for example using an event bus or implicit invocation architecture, or by using callbacks and dependency injection? + +*Do some concept actions involve complex conditionals?* + +Do some of your concept actions perform elaborate checks on their arguments, or have a complex conditional control ow? If so, this might be a symptom of a troubled concept. Might such an action represent multiple actions (dependent on the arguments presented) within the same concept? Could spliing into several distinct concepts simplify such actions? Is a lack of synchronization between concepts leading to inconsistent states that should not have to be handled? + +# For Researchers and Soware Philosophers + +ere are many important questions that my evolving theory of concepts cannot yet address. Maybe some of you will be inspired to take up the challenge and help build a more complete theory and method of concept design. With that in mind, here are some open questions. + +*How should a concept catalog be structured?* + +A catalog or handbook of concepts would allow designers to codify their knowledge, making it easier for novices to acquire expertise, and would encourage greater reuse of concepts and help designers avoid known pitfalls. How should such a catalog be structured? Should catalogs be domain-specic (e.g., a catalog for social media apps, and a catalog for banking) or should a catalog emphasize concepts that cross domains? + +#### *Are there composite concepts?* + +I have explained how concepts can be composed together, and how sometimes the remedy for an overloaded concept is to factor it into multiple concepts. When a concept is decomposed into smaller concepts, does the larger entity remain as a concept in its own right, and with its own purpose? + +#### *Are there dierent kinds of purpose?* + +I have given criteria for what makes a good purpose, and a coherence test for identifying when a purpose is composite. But I have neglected some important distinctions regarding the role that a purpose plays. e purpose of a concept, as I explained, motivates its inclusion a design. But inclusion can mean two different things. One is related to the general benet the concept brings; the other is the particular benet that it brings in contrast to other concepts that might have been used instead. + +For example, both the *label* and *folder* concepts fulll the purpose of organizing items, and this purpose would motivate including either of them; but only *label* fullls the purpose of organizing items into overlapping categories. It is not clear to me that this more granular distinction between concepts is even a purpose; perhaps it's a quality that distinguishes concepts with the same purpose. + +### *What issues arise with instantiation of generic concepts?* + +I've argued that concepts should be stated in a generic form when possible. Doing this allows you to get to the essence of your design, eliminating domain-specic complications that may lead to needlessly unconventional and unfamiliar concepts. When composed, generic concepts are instantiated; when the *trash* concept is composed with the *email* concept, for example, the *items* of the *trash* become *messages*. Is there a way to systematically abstract domain-specic concepts (and purposes) into generic ones? + +Instantiation of a generic concept may entail composition with a domain-specic concept. In a restaurant reservation system, the generic *reservation* concept, which knows only about resources, may be composed with a *table* concept that knows about restaurant tables. Exactly such a structure is imposed by the Google Maps reservation API, which requires restaurants to convert a table + +#### 12: questions to remember + +that can seat four to six people into three distinct abstract resources. Is this its own kind of composition? Are there general principles that lie behind it? + +*Is action synchronization enough?* + +Composition of concepts relies entirely (in this book) on action synchronization. Should concepts be allowed to synchronize on state as well? e synergistic composition of *trash* and *folder*, for example, might be expressed as an invariant that relates the items in the trash to the les and folders that are descendants of the trash folder. (See Note 71.) + +# *Can mapping principles be articulated?* + +Are there general principles for evaluating a mapping? Such principles would presumably rest on well-known principles of user interface design, but would address the connection to concepts more directly. For example, researchers have explored notions of visibility of state (especially with regard to hidden modes), but usually in the simpler seing of a single state machine. What visibility rules might apply to an app composed of concepts? + +*What role do assumptions about user behavior play in concept design?* + +Some concepts fulll their purposes only when users behave in a certain way. e *password* concept, for example, can only provide eective authentication if users pick passwords that are not guessable, remember their passwords, and do not share them. Could such assumptions be expressed as prerequisites of the operational principle? + +# *Can concept implementations be fully modularized?* + +Concept design suggests a new programming idiom. I explained (in Note 81) why a traditional object-oriented style of programming typically leads to undesirable couplings, oen producing a structure in which the dependencies point in exactly the wrong direction. A direct implementation of concepts as modules might produce a more exible and decoupled codebase (see Note 32). What kind of modularity mechanisms would allow exible synchronizations and compositions? + +Microservice architectures might be a useful basis for concept implementation in which each microservice represents a single concept, and so might be + +called a "nanoservice" instead. How are nanoservices dierent from microservices? Can they be synchronized in the manner I've described, without the usual dependencies in which the internals of one service make calls to the API of another? + +# *Can concept design aws be detected in code?* + +Ill-formed concepts confuse not only users but programmers too. When experimenting with a conceptual design issue in an application, I have oen found the application crashes or exhibits other failures not immediately related to the design issue at hand. I suspect that when concepts are unclear, the code reects the confusion and defect rates rise; this is certainly my own experience writing code. By mapping les in the codebase to concepts, could source code mining or static analysis exploit this connection? Might conceptual confusions at the design level be predicted by higher defect rates in the code? Might concept design aws suggest places in the code meriting more careful review? + +### *Can concepts be applied to internal API design?* + +Concepts are by denition user-facing. But many of the issues that arise when a program makes internal use of a service or API are similar to those faced by users. Might programs in one layer of an implementation stack be regarded, from a concept design point of view, as the "users" of concepts in the lower layers? If so, could concept design principles be applied to code design? + +#### For All of Us + +Beyond all these workplace situations, I hope that the ideas of this book will be helpful in that most common scenario—when we're struggling to make sense of yet another application or feature that isn't quite comprehensible. Maybe a lile concept analysis will reveal what's going on. At the very least, it might make our daily discussions about the technology we use more grounded and substantive, and help us see more clearly the path to beer design.114 \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-151-180/concepts-151-180_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/concepts-151-180_meta.json new file mode 100644 index 0000000..aac12d6 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-151-180/concepts-151-180_meta.json @@ -0,0 +1,2759 @@ +{ + "table_of_contents": [ + { + "title": "10: Concept Familiarity", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 167.09765625, + 40.86962890625 + ], + [ + 285.322509765625, + 40.86962890625 + ], + [ + 285.322509765625, + 52.36962890625 + ], + [ + 166.236328125, + 52.36962890625 + ] + ] + }, + { + "title": "Grouping Slides: Avoiding Invention", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 152.455078125, + 361.9423828125 + ], + [ + 299.45489501953125, + 360.6416015625 + ], + [ + 299.45489501953125, + 374.09600830078125 + ], + [ + 152.455078125, + 374.09600830078125 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "10: Concept Familiarity", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 167.09765625, + 40.86962890625 + ], + [ + 285.3226013183594, + 40.86962890625 + ], + [ + 285.3226013183594, + 52.36962890625 + ], + [ + 166.236328125, + 52.36962890625 + ] + ] + }, + { + "title": "Export Presets: When Extension Breaks Familiarity", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 120.37060546875, + 197.70599365234375 + ], + [ + 330.6895751953125, + 196.7431640625 + ], + [ + 330.6895751953125, + 209.70602416992188 + ], + [ + 120.37060546875, + 209.70602416992188 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "10: Concept Familiarity", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 166.236328125, + 40.86962890625 + ], + [ + 285.3226013183594, + 40.86962890625 + ], + [ + 285.3226013183594, + 52.36962890625 + ], + [ + 165.375, + 52.36962890625 + ] + ] + }, + { + "title": "Conformity of Concept Instances", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 159.99169921875, + 182.4345703125 + ], + [ + 292.3490295410156, + 181.1337890625 + ], + [ + 292.3490295410156, + 194.69601440429688 + ], + [ + 159.99169921875, + 194.69601440429688 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 172.91162109375, + 257.69598388671875 + ], + [ + 253.86582946777344, + 256.5791015625 + ], + [ + 253.86582946777344, + 269.6960144042969 + ], + [ + 172.91162109375, + 269.6960144042969 + ] + ] + }, + { + "title": "10: Concept Familiarity", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 166.45166015625, + 40.86962890625 + ], + [ + 285.3226013183594, + 40.86962890625 + ], + [ + 285.3226013183594, + 52.36962890625 + ], + [ + 165.59033203125, + 52.36962890625 + ] + ] + }, + { + "title": "11", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 217.0546875, + 65.18560791015625 + ], + [ + 235.33810424804688, + 65.18560791015625 + ], + [ + 235.33810424804688, + 101.18560791015625 + ], + [ + 216.193359375, + 101.18560791015625 + ] + ] + }, + { + "title": "Concept Integrity", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 163.86767578125, + 106.2142333984375 + ], + [ + 288.1539001464844, + 106.013671875 + ], + [ + 288.1539001464844, + 126.2142333984375 + ], + [ + 163.00634765625, + 126.2142333984375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.7624053955078, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "A Blatant Violation: e Revengeful Restaurateur", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 112.833984375, + 77.69598388671875 + ], + [ + 314.384765625, + 76.4208984375 + ], + [ + 314.2807312011719, + 89.69598388671875 + ], + [ + 111.97265625, + 89.69598388671875 + ] + ] + }, + { + "title": "11: Concept Integrity", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 172.48095703125, + 40.86962890625 + ], + [ + 279.6990051269531, + 40.86962890625 + ], + [ + 279.6990051269531, + 52.36962890625 + ], + [ + 171.61962890625, + 52.36962890625 + ] + ] + }, + { + "title": "Font Formats: A Long-Standing Design Problem", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 127.69189453125, + 346.9833984375 + ], + [ + 324.2342834472656, + 345.6826171875 + ], + [ + 324.2342834472656, + 359.6960144042969 + ], + [ + 127.69189453125, + 359.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.7624053955078, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "11: Concept Integrity", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 172.48095703125, + 40.86962890625 + ], + [ + 279.6990051269531, + 40.86962890625 + ], + [ + 279.6990051269531, + 52.36962890625 + ], + [ + 171.61962890625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Losing Your Life's Work with Google Drive", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 127.26123046875, + 197.69598388671875 + ], + [ + 299.77728271484375, + 196.7431640625 + ], + [ + 299.77728271484375, + 209.69601440429688 + ], + [ + 127.26123046875, + 209.69601440429688 + ] + ] + }, + { + "title": "11: Concept Integrity", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 172.6962890625, + 40.86962890625 + ], + [ + 279.6990966796875, + 40.86962890625 + ], + [ + 279.6990966796875, + 52.36962890625 + ], + [ + 171.8349609375, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.76219177246094, + 40.86962890625 + ], + [ + 276.2377014160156, + 40.86962890625 + ], + [ + 276.2377014160156, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Lessons & Practices", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 173.77294921875, + 197.69598388671875 + ], + [ + 253.86582946777344, + 196.7431640625 + ], + [ + 253.86582946777344, + 209.69601440429688 + ], + [ + 173.77294921875, + 209.69601440429688 + ] + ] + }, + { + "title": "Questions to Remember", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 141.1337890625, + 106.2142333984375 + ], + [ + 311.8738098144531, + 105.36328125 + ], + [ + 311.8738098144531, + 126.2142333984375 + ], + [ + 140.396484375, + 126.2142333984375 + ] + ] + }, + { + "title": "For Strategists, Analysts, and Consultants", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 136.951171875, + 227.9619140625 + ], + [ + 315.9543762207031, + 226.6611328125 + ], + [ + 315.9543762207031, + 239.487060546875 + ], + [ + 136.08984375, + 239.487060546875 + ] + ] + }, + { + "title": "What are the key concepts?", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 60.0, + 302.7568359375 + ], + [ + 169.03564453125, + 301.4560546875 + ], + [ + 169.03564453125, + 314.4861755371094 + ], + [ + 60.0, + 314.4861755371094 + ] + ] + }, + { + "title": "How old are your concepts?", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 60.0, + 421.7783203125 + ], + [ + 169.99749755859375, + 420.4775390625 + ], + [ + 169.99749755859375, + 434.46568298339844 + ], + [ + 59.21630859375, + 434.46568298339844 + ] + ] + }, + { + "title": "What are your most valuable concepts?", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 59.8623046875, + 542.1005859375 + ], + [ + 216.88693237304688, + 540.7998046875 + ], + [ + 216.88693237304688, + 554.4946823120117 + ], + [ + 59.8623046875, + 554.4946823120117 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Do you have troubled concepts?", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 47.373046875, + 137.8828125 + ], + [ + 174.3875732421875, + 136.58203125 + ], + [ + 174.3875732421875, + 149.49072265625 + ], + [ + 46.51171875, + 149.49072265625 + ] + ] + }, + { + "title": "What shared concepts dene this family of products?", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 47.993377685546875, + 227.9619140625 + ], + [ + 257.9132080078125, + 226.6611328125 + ], + [ + 257.9132080078125, + 239.47817993164062 + ], + [ + 47.15771484375, + 239.47817993164062 + ] + ] + }, + { + "title": "What is the purpose of each concept?", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 47.993408203125, + 437.3876953125 + ], + [ + 195.48089599609375, + 436.0869140625 + ], + [ + 195.48089599609375, + 449.43377685546875 + ], + [ + 47.15771484375, + 449.7451171875 + ] + ] + }, + { + "title": "Are there missing concepts?", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 58.78564453125, + 78.00238037109375 + ], + [ + 168.95877075195312, + 77.0712890625 + ], + [ + 168.95877075195312, + 89.50238037109375 + ], + [ + 57.92431640625, + 89.50238037109375 + ] + ] + }, + { + "title": "What are your competitors' concepts?", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 59.64697265625, + 167.150390625 + ], + [ + 210.4212188720703, + 165.849609375 + ], + [ + 210.4212188720703, + 179.49468994140625 + ], + [ + 59.64697265625, + 179.49468994140625 + ] + ] + }, + { + "title": "For Interaction Designers & Product Managers", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 123.81591796875, + 317.7158203125 + ], + [ + 328.2157287597656, + 316.4150390625 + ], + [ + 328.2157287597656, + 329.45855712890625 + ], + [ + 122.95458984375, + 329.45855712890625 + ] + ] + }, + { + "title": "Are the concepts consistently conveyed to users?", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 59.21630859375, + 406.8193359375 + ], + [ + 248.18496704101562, + 405.5185546875 + ], + [ + 248.18496704101562, + 419.4537048339844 + ], + [ + 58.35498046875, + 419.4537048339844 + ] + ] + }, + { + "title": "How are concepts explained?", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 59.431640625, + 527.1416015625 + ], + [ + 176.27658081054688, + 525.8408203125 + ], + [ + 176.27658081054688, + 539.4332580566406 + ], + [ + 59.431640625, + 539.4990234375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.7679901123047, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "What kind of usability problems do you have?", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 47.99150085449219, + 122.5986328125 + ], + [ + 232.38021850585938, + 121.2978515625 + ], + [ + 232.38021850585938, + 134.50189208984375 + ], + [ + 47.15771484375, + 134.50189208984375 + ] + ] + }, + { + "title": "Which concepts make you happy or sad?", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 47.8037109375, + 212.98941040039062 + ], + [ + 210.8418731689453, + 211.7021484375 + ], + [ + 210.8418731689453, + 224.48941040039062 + ], + [ + 47.8037109375, + 224.48941040039062 + ] + ] + }, + { + "title": "Are any of your concepts redundant?", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 47.373046875, + 317.390625 + ], + [ + 194.28184509277344, + 316.08984375 + ], + [ + 194.28184509277344, + 329.4729309082031 + ], + [ + 46.51171875, + 329.4729309082031 + ] + ] + }, + { + "title": "Are any of your concepts overloaded?", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 47.58837890625, + 406.8193359375 + ], + [ + 196.1893768310547, + 405.5185546875 + ], + [ + 196.1893768310547, + 419.4906921386719 + ], + [ + 46.72705078125, + 419.4906921386719 + ] + ] + }, + { + "title": "Can some of your concepts be split?", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 47.8037109375, + 527.1416015625 + ], + [ + 189.0615234375, + 525.8408203125 + ], + [ + 189.0615234375, + 539.4826812744141 + ], + [ + 47.8037109375, + 539.4990234375 + ] + ] + }, + { + "title": "12: questions to remember", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 160.42236328125, + 40.86962890625 + ], + [ + 292.1190185546875, + 40.86962890625 + ], + [ + 292.1190185546875, + 52.36962890625 + ], + [ + 159.56103515625, + 52.36962890625 + ] + ] + }, + { + "title": "Are familiar concepts used eectively?", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 59.21630859375, + 137.5576171875 + ], + [ + 210.15151977539062, + 136.2568359375 + ], + [ + 210.15151977539062, + 149.49468994140625 + ], + [ + 58.35498046875, + 149.49468994140625 + ] + ] + }, + { + "title": "How are concepts composed?", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 59.21630859375, + 272.8388671875 + ], + [ + 176.2598876953125, + 271.5380859375 + ], + [ + 176.2598876953125, + 284.4866638183594 + ], + [ + 59.21630859375, + 284.4866638183594 + ] + ] + }, + { + "title": "Do you have under-synchronizations?", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 59.9948844909668, + 377.2265625 + ], + [ + 211.42457580566406, + 375.92578125 + ], + [ + 211.42457580566406, + 389.4701843261719 + ], + [ + 59.21630859375, + 389.4701843261719 + ] + ] + }, + { + "title": "Do you have over-synchronizations?", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 59.21630859375, + 466.6552734375 + ], + [ + 204.8005828857422, + 465.3544921875 + ], + [ + 204.8005828857422, + 479.45770263671875 + ], + [ + 59.21630859375, + 479.45770263671875 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Are you exploiting synergy?", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 47.373046875, + 78.00238037109375 + ], + [ + 158.484375, + 76.74609375 + ], + [ + 158.30416870117188, + 89.50238037109375 + ], + [ + 46.51171875, + 89.75390625 + ] + ] + }, + { + "title": "Are the concepts mapped eectively to the user interface?", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 47.373046875, + 197.98269653320312 + ], + [ + 273.23236083984375, + 196.7431640625 + ], + [ + 273.23236083984375, + 209.48269653320312 + ], + [ + 46.51171875, + 209.48269653320312 + ] + ] + }, + { + "title": "Have you analyzed your concept's dependencies?", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 47.8037109375, + 317.7158203125 + ], + [ + 241.80288696289062, + 316.4150390625 + ], + [ + 241.80288696289062, + 329.4621887207031 + ], + [ + 46.9423828125, + 329.4621887207031 + ] + ] + }, + { + "title": "Are the concepts assembled with integrity?", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 46.9423828125, + 406.8193359375 + ], + [ + 217.0894012451172, + 405.5185546875 + ], + [ + 217.0894012451172, + 419.4496765136719 + ], + [ + 46.0810546875, + 419.4496765136719 + ] + ] + }, + { + "title": "Is your concept wisdom safely documented?", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 47.373046875, + 497.2236328125 + ], + [ + 221.20753479003906, + 495.9228515625 + ], + [ + 221.20753479003906, + 509.4372253417969 + ], + [ + 47.373046875, + 509.5810546875 + ] + ] + }, + { + "title": "12: questions to remember", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 160.85302734375, + 40.86962890625 + ], + [ + 292.20556640625, + 40.86962890625 + ], + [ + 292.11907958984375, + 52.36962890625 + ], + [ + 159.99169921875, + 52.36962890625 + ] + ] + }, + { + "title": "For Technical Writers, Trainers & Marketers", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 130.4912109375, + 137.99017333984375 + ], + [ + 321.9489440917969, + 136.9072265625 + ], + [ + 321.9489440917969, + 149.49017333984375 + ], + [ + 129.6298828125, + 149.49017333984375 + ] + ] + }, + { + "title": "For Programmers and Architects", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 154.39306640625, + 542.1005859375 + ], + [ + 297.4769592285156, + 540.7998046875 + ], + [ + 297.4769592285156, + 554.4397659301758 + ], + [ + 154.39306640625, + 554.4580078125 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2377014160156, + 40.86962890625 + ], + [ + 276.2377014160156, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "12: questions to remember", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 160.42236328125, + 40.86962890625 + ], + [ + 292.1190185546875, + 40.86962890625 + ], + [ + 292.1190185546875, + 52.36962890625 + ], + [ + 159.56103515625, + 52.36962890625 + ] + ] + }, + { + "title": "For Researchers and Soware Philosophers", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 131.3525390625, + 347.30859375 + ], + [ + 320.6849670410156, + 346.0078125 + ], + [ + 320.6849670410156, + 359.4573059082031 + ], + [ + 131.3525390625, + 359.4573059082031 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Are there composite concepts?", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 47.373046875, + 78.00238037109375 + ], + [ + 167.09765625, + 77.0712890625 + ], + [ + 166.88998413085938, + 89.50238037109375 + ], + [ + 46.51171875, + 89.50238037109375 + ] + ] + }, + { + "title": "Are there dierent kinds of purpose?", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 47.373046875, + 167.98989868164062 + ], + [ + 192.32684326171875, + 166.8251953125 + ], + [ + 192.32684326171875, + 179.48989868164062 + ], + [ + 46.51171875, + 179.48989868164062 + ] + ] + }, + { + "title": "What issues arise with instantiation of generic concepts?", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 47.8037109375, + 377.876953125 + ], + [ + 271.784912109375, + 376.576171875 + ], + [ + 271.784912109375, + 389.49468994140625 + ], + [ + 46.9423828125, + 389.583984375 + ] + ] + }, + { + "title": "12: questions to remember", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 160.85302734375, + 40.86962890625 + ], + [ + 292.20556640625, + 40.86962890625 + ], + [ + 292.11907958984375, + 52.36962890625 + ], + [ + 159.99169921875, + 52.36962890625 + ] + ] + }, + { + "title": "Can mapping principles be articulated?", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 60.00340270996094, + 212.3525390625 + ], + [ + 218.54013061523438, + 211.0517578125 + ], + [ + 218.54013061523438, + 224.49468994140625 + ], + [ + 60.00340270996094, + 224.49468994140625 + ] + ] + }, + { + "title": "Can concept implementations be fully modularized?", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 60.0037956237793, + 436.7373046875 + ], + [ + 268.8082275390625, + 435.4365234375 + ], + [ + 268.8082275390625, + 449.4906921386719 + ], + [ + 59.64697265625, + 449.4906921386719 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Can concept design aws be detected in code?", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 47.58837890625, + 137.5576171875 + ], + [ + 229.0590057373047, + 136.2568359375 + ], + [ + 229.0590057373047, + 149.5093994140625 + ], + [ + 46.72705078125, + 149.5093994140625 + ] + ] + }, + { + "title": "Can concepts be applied to internal API design?", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 47.8037109375, + 302.7568359375 + ], + [ + 236.76400756835938, + 301.4560546875 + ], + [ + 236.76400756835938, + 314.4769592285156 + ], + [ + 46.9423828125, + 314.4769592285156 + ] + ] + }, + { + "title": "For All of Us", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 186.046875, + 407.794921875 + ], + [ + 241.6963653564453, + 407.794921875 + ], + [ + 241.6963653564453, + 419.4413604736328 + ], + [ + 185.185546875, + 419.4413604736328 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 41 + ], + [ + "Line", + 21 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 76 + ], + [ + "Line", + 37 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 36 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 47 + ], + [ + "Line", + 20 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 75 + ], + [ + "Line", + 35 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 85 + ], + [ + "Line", + 35 + ], + [ + "ListItem", + 6 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "ListGroup", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 12 + ], + [ + "Line", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "Text", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 52 + ], + [ + "Line", + 27 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 93 + ], + [ + "Line", + 36 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 54 + ], + [ + "Line", + 22 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 29 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 68 + ], + [ + "TableCell", + 29 + ], + [ + "Line", + 26 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Form", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 88 + ], + [ + "Line", + 35 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 94 + ], + [ + "Line", + 39 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 90 + ], + [ + "Line", + 31 + ], + [ + "ListItem", + 6 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ], + [ + "ListGroup", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 118 + ], + [ + "Line", + 45 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 49 + ], + [ + "Line", + 26 + ], + [ + "SectionHeader", + 5 + ], + [ + "Text", + 5 + ], + [ + "PageHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 70 + ], + [ + "Line", + 34 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 4 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 62 + ], + [ + "Line", + 32 + ], + [ + "SectionHeader", + 5 + ], + [ + "Text", + 5 + ], + [ + "PageHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 32 + ], + [ + "SectionHeader", + 6 + ], + [ + "Text", + 6 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 58 + ], + [ + "Line", + 30 + ], + [ + "SectionHeader", + 5 + ], + [ + "Text", + 5 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 71 + ], + [ + "Line", + 32 + ], + [ + "SectionHeader", + 6 + ], + [ + "Text", + 5 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 63 + ], + [ + "Line", + 31 + ], + [ + "Text", + 11 + ], + [ + "SectionHeader", + 3 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 68 + ], + [ + "Line", + 31 + ], + [ + "Text", + 13 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 55 + ], + [ + "Line", + 30 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 33 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 4 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 69 + ], + [ + "Line", + 33 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 3 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 59 + ], + [ + "Line", + 29 + ], + [ + "SectionHeader", + 4 + ], + [ + "Text", + 4 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-151-180" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-181-210/_page_23_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-181-210/_page_23_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..32b0cf4a53ad1714c11337950059713c8f7cadc7 GIT binary patch literal 29593 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 +gYKTleegI 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-181-210/_page_24_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-181-210/_page_24_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fd0b91ce4873117bee7ce7ee04816f9284569f8b GIT binary patch literal 17889 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 Cqn-o+ literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-181-210/concepts-181-210.md b/raw/book/EssenceOfSoftware_Eng/concepts-181-210/concepts-181-210.md new file mode 100644 index 0000000..b3a0949 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-181-210/concepts-181-210.md @@ -0,0 +1,331 @@ +# Acknowledgments + +A few years ago, I shared a copy of my book dra with a colleague. It's prey good, he said—or at least it will be "aer a couple of rewrites." I smiled politely, thinking: it's been hard enough writing it once; it will kill me to start again. But in his gentle insistence that the book needed work, he was absolutely right, and I ended up rewriting it three times over. It's still far from perfect, but it's reached the point at which I've explained my ideas as best I can, and it's your turn my fellow researchers, practitioners and enthusiasts—to join the conversation. + +I would never have had the motivation to work on this book for so many years—I rst wrote a dra in 2013—had it not been for the ongoing, insightful critiques of friends and colleagues (and their encouragement that it was worth persisting). So many of the good ideas in the book's structure and emphasis come from them. I am, in fact, astonished at the generosity and stamina of those who read the entire book, cover to cover, sometimes more than once. Michael Coblenz, Jimmy Koppel and Michael Shiner gave me copious comments on almost every page; Kathryn Jin, Georey Li, Rob Miller, Arvind Satyanarayan, Sarah Vu, Hillel Wayne and Pamela Zave gave me excellent expository suggestions; and Jonathan Aldrich, Tom Ball, Amy Ko and Harold imbleby not only reviewed the book in detail, but read it again a second time around aer I had reshaped the book in response to their wise advice. + +e book has been tested for home use too: Akiva Jackson had a slew of brilliant suggestions for improvement that belied his lack of formal education in computer science; Rebecca Jackson, who has become the unocial editor of everything I write, gave me the benet of her magic with words; and Rachel Jackson ([hp://binahdesign.com\)](http://binahdesign.com) shared her exquisite eye for typography and book design. + +Readers will likely notice inuences on the book that I have failed to appreciate myself, and to all those whose ideas I have taken without credit, I oer apology and gratitude. In addition to the many colleagues that I cite in the endnotes, I'd like to recognize in particular Santiago Perez De Rosso, who was a sounding board for my rst ideas on concepts; who built Gitless, the rst major + +experiment in concept design; and whose Déjà Vu system embodied early notions of concept synchronization that we developed together. + +My editor, Hallie Stebbins, has given me masterful guidance and advice as I've navigated the path of publication, and has been a staunch advocate for my book from the start; Bhisham Bherwani was a meticulous copy editor; and my production editor, Jenny Wolkowicki, shepherded my book along the way, attending to every detail, and generously tolerated the complexities of dealing with an author who insisted on designing his own book. Kirsten Olson, my coach, inspired me to think of a book project not as the production of an artifact but as an extended conversation and collaboration with an ever-widening circle of colleagues and friends. + +e research that underlies this book—as those familiar with today's culture of computer science may guess—was not easy to fund, so I am especially grateful to the SUTD-MIT International Design Centre and its directors John Brisson, Jon Grith and Chris Magee who stuck with me over ve years of support. + +I have dedicated the book to my extraordinary parents. My mother, Judy Jackson, has been an inspiration with her many books and projects and her unagging enthusiasm for all of my activities. My father, Michael Jackson, has taught me so much about soware that I can barely tell where his ideas end and mine begin, and I continue to relish our frequent conversations about our eld and its history (and the design of elevators and coin-operated zoo turnstiles). + +ank you to you all of you. And nally, to my wife and biggest supporter Claudia Marbach: it's done. I'm so grateful for your wisdom, patience and encouragement, and any day now I'll be ready for that break I've been promising to take for so long… + +> *Daniel Jackson July 30, 2021* + +### *How to Read is Book* + +1. De Pomiane's Delights. De Pomiane's *French Cooking in Ten Minutes* [126] is rst of all an unexpected source of spiritual inspiration: how many contemporary cookbook writers would insist you cook your meal in ten minutes so that, with only an hour for lunch, you are still le with half an hour to drink your coee? It also contains some great recipes. My favorite is "Tomatoes Polish Style"—appropriate, as de Pomiane was born into the Polish aristocracy (as Eduard Pozerski in 1875). Melt some buer, add some nely chopped onion, and two plum tomatoes sliced in half face down; cook on high heat for ve minutes, turn over, cook ve minutes longer, and spoon over two generous tablespoons of sour cream; bring barely to the boil over, take o the heat and serve. + +is is indeed a micromaniac's delight, as it's hard to imagine a tastier dish with fewer ingredients (although I have to admit to adapting it by (a) replacing the onions by shallots, and (b) including some freshly grated nutmeg at the end—and using it as a sauce for pasta in place of de Pomiane's rather too minimal "Noodles Italian Style"). e timing of the recipe also reveals that while de Pomiane might be a micromaniac, he is no pedant. + +2. e importance of details. "e details are not the details; they make the product." is enduring aphorism by the furniture designers Charles and Ray Eames was wrien for the script of a 1961 lm short called "ECS," about Eames Contract Storage, a furniture system designed for student dormitories. e same spirit is evident in the work of Jony Ive, the famed Apple designer, who ended a charming video about shaping the edges of the Macbook laptop with the self-eacing quip "at's quite obsessive, isn't it?" + +Sorting out the details is rewarding work, but also hard. As Steve Jobs put it [150]: "To design something really well, you have to get it. You have to really grok what it's all about. It takes a passionate commitment to really thoroughly understand something, chew it up, not just quickly swallow it. Most people don't take the time to do that." + +## *Chapter 1: Why I Wrote is Book* + +3. e Alloy modeling language. Alloy is a language and analysis tool for soware design. e language itself is a simple but powerful logic based on relations that can be used to model complex data structures and behaviors with declarative constraints (that is, describing the *eects* of the behaviors rather than having to enumerate the steps that produce them). e Alloy Analyzer generates sample scenarios without the user having to write test cases, and can check that the design satises properties that the designer formulates—all completely automatically. + +Alloy was inspired by the Z specication language [136] and by the SMV symbolic model checker [23]; its goal was to combine the elegance and succinctness of Z with the analytical power of SMV. + +Alloy's technical innovation is a new analysis that achieves SMV-like automation by limiting the "scope" to nite bounds. For example, an analysis of a network protocol might consider all congurations involving up to ve nodes. By compiling into input for a SAT solver, Alloy can promise to cover the *entire* scope, that is all scenarios of that size (which for our network example would involve 32 million cases for the network connectivity graph alone!). is is why Alloy typically nds subtle errors that would elude testing. + +e latest version of Alloy [20] smoothly incorporates the operators of linear temporal logic and includes support for unbounded model checking. + +Alloy has been used in a wide range of applications, including networking, security, and electronic commerce, and has been taught in soware and formal methods courses around the world. Alloy is described in length in my 2006 book [66], and more briey, with applications, in a 2019 magazine article and video [67]. + +4. Soware design: origins of the idea. e idea of soware design, as advocated in this book—and contrasted, over the following pages, with the idea of design typical in programming, soware engineering and user interfaces—has been shaped by many people over many years. But it has never been articulated more forcefully than by Mitchell Kapor in his *A soware design manifesto*. + +Kapor's manifesto and Winograd's book. Kapor, the founder of Lotus and designer of its eponymous product, rst presented his manifesto at Esther Dyson's PC Forum in 1990, challenging his fellow soware executives to recognize the central role of design in soware development. e manifesto was printed in Dr. Dobb's Journal (in January 1991), and then appeared a few years later as the anchoring chapter of a seminal book edited by Terry Winograd entitled *Bringing De-* + +*sign to Soware* [149]. Winograd, who would later be one of the founders of Stanford's d.school, had convened a group of experts with the goal of dening the term "soware design." In the end, his book reected a diversity of views, but all sharing the conviction that such a discipline existed, albeit in a nascent form; that it had features in common with design in other disciplines; and that it was distinct from both soware engineering and user interface design. + +Kapor's vision of a new eld (and even a new profession) resonated widely, and today everyone pays at least lip service to the idea that soware needs to be designed in Kapor's sense of the word. In my view, though, we have yet to build the intellectual foundations on which this eld and profession can be based. We have learned much from other design disciplines, and from the experience of creating our own products; and the eld of human-computer interaction has ourished. But the particular, distinctive qualities of soware design have yet to be articulated. + +5. What is soware design? e term "design" is oen used loosely to refer to any activity that involves the creation of an artifact to satisfy some need while meeting some constraints. But in that sense, almost every human endeavor involves design, so the word loses any useful purchase. Some would contrast design to manufacturing, but for soware such a distinction is hard to sustain. + +I prefer to reserve "design" for the shaping of artifacts judged primarily for their utility—thus separating design from art—and intended for direct human use distinguishing it from engineering. As Kapor put it [78]: "What makes something a design problem? It's where you stand with a foot in two worlds—the world of technology and the world of people and human purposes—and you try to bring the two together." Engineering focuses instead on cost, performance, resilience, and so on—all concerns that are of great interest to human users but which are usually invisible except when they fail. + +us an architect, who *designs* a building, aims to create experiences of space and light that delight the building's occupants, and must therefore be intimately aware of their work paerns. e structural engineer, on the other hand, is responsible for ensuring that the building does not fall down in a heavy wind, and that its beams do not rust over time. e designer's analysis is qualitative and by necessity tentative, since the behavior of human users can never be fully predicted; the engineer's analysis is quantitative and denitive, and when it requires assumptions about human users they can usually be reduced to simple numeric measures (such as the maximum number of building occupants, or their average weight). + +Soware design, the subject of this book, is thus about shaping and structuring the functionality of soware to meet the needs of its users. Soware engineering, + +on the other hand, is about structuring the code that delivers this functionality, and subsumes what I refer to in the main text as the "internal design" of soware. Some soware engineering concerns, such as how fast the soware runs or how well it scales, are relevant to the user but mostly invisible, except when limits are encountered. Others, such as maintainability, are relevant only to the developers, and impact the user only to the extent that they impact the cost of development and the feasibility of new features. + +e distinction between soware design and soware engineering was pithily expressed by David Liddle, the leader of the division at Xerox PARC that built the Star workstation: "Soware design is the act of determining the user's experience with a piece of soware. It has nothing to do with how the code works inside, or how big or small the code is. e designer's task is to specify completely and unambiguously the user's whole experience. at is the key to the whole soware industry, but, in most companies, soware design does not exist as a visible function—it is done secretly, without a profession, without honor." [149] We'd put less emphasis nowadays on "complete" and "unambiguous" specication, but otherwise his comment might serve as a slogan for this book. + +In noting the lack of respect for soware design, Liddle echoed Kapor's lament in his manifesto [78]: "Today, the soware designer leads a guerrilla existence, formally unrecognized and oen unappreciated." Most soware, Kapor argued, was "merely engineered" and not designed at all. His remedy was to create a professional discipline of soware design, whose practitioners would have a solid grounding in technology but would be distinct from programmers. eir purview would be the very conception of the product, not just the user interface. + +It is for just such a designer that my book is aimed. irty years since Kapor's manifesto, the title "soware designer" is still rare. But the tasks such a designer would undertake are seen as increasingly important, even if they are discharged by people with other titles—whether program managers, architects, UX designers, or programmers themselves. + +6. Programming Knowledge. In contrast to soware design, soware engineering (or programming) has a well-established and rigorous body of knowledge. Programming as we know it originated in the late 1950s with Fortran, the rst high-level programming language. Within just a few decades, almost all the foundational ideas that we have about programming today were invented: dependencies and decoupling; specications, interfaces and invariants; abstract types, immutability, and algebraic datatypes; objects, subtypes, generics, and classes; higher-order + +functions, closures, and iterators; grammars, parsing, and stream transformations; and so on. + +Each of these ideas comes with prescriptive guidance on how to program well, and criteria for distinguishing good programs from bad ones. ree ideas, in particular, seem most signicant to me: + +*Dependences*. A *dependence* between two modules arises when the rst relies on the second to meet its specication [116], and incurs a liability, in that the rst cannot be understood (or used in a new program) without the second. Eliminating dependencies is thus a major goal of program structuring, and is the motivation for many design paerns [44]. + +*Data abstraction*. e implementation of a datatype within a module is *representation-independent* [102] if the data structure used to represent instances of the datatype can be altered without having to modify code outside the module, by ensuring that such external code relies only on the behavior of operations of the type [95]. To establish this independence, programmers must not only ensure that clients of the type use it only through its operations, but also that no "representation exposure" occurs in which a reference to an internal structure is leaked to the outside [31]. + +*Invariants*. An *invariant* is a property of a program saying that, when observed at certain points (such as before or aer particular function calls), the state of the program satises some predicate: for example, that a tree is balanced, or that the elements of an array appear in order [40]. (In databases, invariants are called "integrity constraints".) By formulating invariants, the programmer can simplify the task of understanding complex behaviors. Instead of having to consider long histories of events, she can assume that the invariant holds at each prescribed point (so long as the invariant holds at the start and is reestablished aer an operation). + +is rich theory means that programmers also have an expressive language for talking about programs. A well-trained programmer who overhears a conversation in which one programmer says to another "I'd make the key immutable, because otherwise you risk breaking the hash table's rep invariant" knows exactly what she is talking about and what the issues are. ere's no such language, yet, for soware design. + +7. Design in soware engineering research. Tim Menzies and his students analyzed the prevalence of dierent topics in soware engineering, with a dataset comprising more than 35,000 papers from top conferences and journals [99]. In 1992, the rst year of his study, design was the most popular topic; by 2016, the last year, it ranked near the boom (eighth in conferences, and not even appearing in his jour- + +nal classication). Although this study classied papers in a crude way (checking for a short list of keywords in titles and abstracts), the results match my impressions of a changing eld. + +Design in human-computer interaction research. Design seems to have had its heyday in the HCI community in the 1980s, with the arrival of the Apple Macintosh in 1984, the emergence of user-centered design, and the publication of Don Norman's *e Design of Everyday ings* [110]. e book, although not ostensibly about soware, has had a huge inuence on user interface design, most notably through Norman's notions of *aordance* and *mapping*. + +Stuart Card, Tom Moran and Allen Newell's landmark book, *e Psychology of Human-Computer Interaction* [26], showed how a model of the user as an information processor with certain parameters (for reaction time, memory capacity, etc.) could reliably predict the eciency of an interface design, and suggest improvements to it. + +In 1989, Jakob Nielsen published his paper on "discount usability," proposing a potent but inexpensive combination of user testing, prototyping and heuristic evaluation for improving the design of user interactions [106]. A year later, a fuller paper with Rolf Molich [107] on heuristic evaluation appeared, leading to the rst version of his "10 Usability Heuristics," [108] which are essentially principles of user interface design, and have been followed by several such lists, most notably Bruce Tognazzini's "First Principles of Interaction Design" [143]. + +omas Green developed a list of criteria aimed at the design of programming languages and other notations, which he called "cognitive dimensions of notations" [46, 47]. In fact, his criteria can be applied much more generally to improve usability for any kind of interface. Indeed, several—such as consistency, error-tolerance, mapping and visibility—are common to the other lists mentioned above. Like them, they can be applied synergistically with the principles of concept design. (More on cognitive dimensions in Note 19.) + +Design remains a hot topic in human-computer interaction research but it's rare to nd a paper that addresses it directly, and from which any concrete design guidance can be extracted. More oen, papers explore ethnographic or sociological issues, and don't contribute to a practical body of design knowledge. + +For example, last year's session on "Design reections and methods" in CHI, a agship HCI conference, included only ve papers (out of 748 papers in total), and their topics were: the use of design to study metaphysical ideas in philosophy; modes of reection for imagining design futures; an agenda for integrating computers with the human body; a feminist/decolonialist analysis of iterative design + +based on experiences with Aboriginal Australian communities; and the impact of automation on economies in the Global South—all no doubt topics of interest to specialists in those areas, but none of immediate relevance to the vast number of people working on the design of the soware that most people use. + +For guidance on how to design soware, students and practitioners must go to textbooks and professional books instead. I recommend in particular Harold imbleby's *Press On* [141], which combines classic HCI principles with a state machine formalism for recording and analyzing designs, and also covers wider social, psychological and ethical concerns. + +8. On verication and its cultural implications. In the early years of soware research, its pioneers—notably Bob Floyd, Edsger Dijkstra and Tony Hoare—introduced the radical idea that the behavior of a program could be precisely specied. With a specication in hand, the dierence between acceptable and unacceptable behaviors was no longer subjective, and "bugs"—defects in code that correspond to mismatches between specied and actual program behavior—became a focus of aention. + +Dijkstra contrasted the "correctness problem"—whether a program meets its specication—with the "pleasantness problem"—whether the specication is appropriate in the context of use [33]. He noted that the correctness problem can be formulated mathematically, and he thus regarded it as a suitable topic for "scientific" investigation. In contrast, the pleasantness problem, he argued, is "non-scientific" and its pursuit by computer scientists questionable. + +is distinction, and the idea of mathematically precise specication, launched the eld of program verication, bringing some dignity to our own dismal discipline. Specications have also been very benecial in their own right, but perhaps not in the way Dijkstra had expected. It turned out to be impossible to write complete, precise specications of even the simplest soware systems, or at least no easier than writing the code itself. Instead, specications found their use when applied to much smaller components within a single soware system. Such speci cations are valuable because they allow bugs to be localized—that is, to identify which component is to blame for an unexpected behavior. + +Over the years, the notion of correctness, and the eld of verication that grew around it, became a cornerstone of computer science and one of its proudest achievements. From a design perspective, however, its impact has been in some respects pernicious. By separating out the "pleasantness problem" (and giving it such a brilliantly uninspiring name), Dijkstra drew aention away from it, despite its importance. A beer name might have been the "design problem" (for creating + +the specication), contrasted with the "implementation problem" (for building an implementation that meets it). + +e implementation problem is undoubtedly a more aractive target for many researchers because it is more clearly dened and more susceptible to incremental progress. Just as the proverbial drunk looks for his lost key under the lamppost because that's where the light is brightest, so soware researchers look under many implementation lampposts even though the key to soware quality oen lies elsewhere. e result of lavishing all our aention on implementation is that we have a eld with millions of implementers but few designers, and we oen leave the most critical decisions (about what the specication should be) to non-technical people. It's as if the building industry had only civil engineers and managers but no architects [78]. + +To Dijkstra, bugs were simply defects, and he insisted that it made no sense to talk about the number of bugs in a program: either the program met its specication or it did not. Ironically, the idea of correctness led to an almost exclusive focus on bugs. If the design of the specication is a non-scientic issue, the specication itself cannot maer much, and the primary issues remaining are what bugs are present and how they can be eliminated. is view has come to pervade research in soware engineering, where major conferences are now dominated by papers focused on nding and repairing bugs, with barely any discussion of specications. + +Eliminating bugs is not the key to improving soware. Of course, soware that is riddled with bugs is bad. But soware that is supposedly bug-free is not necessarily good. It may still be unusable, unsafe, or insecure. + +In short, the argument of this book is that what maers is the fundamental structure of the design, namely the design concepts and their relationship to one another. If you get this structure right, then subsequent development is likely to ow smoothly. If you get it wrong, there's no amount of bug xing and refactoring (short of starting over) that will produce a reliable, maintainable, and usable system. + +9. Defect elimination and soware quality. e assumption that defect elimination is the key to beer soware is so widespread that it is rarely questioned (and often not even explicitly articulated). Companies that make soware like the idea of defect elimination because it can be applied incrementally, without major disruptions to their development process or to an oen shaky codebase. Tool vendors promote it because it helps sell their products. Researchers focus on it because it makes their contributions easier to measure, and because they fear being accused of utopianism if they suggest avoiding defects in the rst place. + +Defect elimination, however, is not the right focus. Turning a blind eye to egregious defects that can be easily removed is of course unwise. But defects are a symptom and not the cause of low quality. If you don't address the root cause, defects will remain however many you eliminate. And since patches oen increase complexity, a soware system can become more brile and unpredictable the more defects you aempt to remove. + +A parable about defect elimination. My family lives in a Victorian house, built in the 1880s. It's a beautiful house and it has served us well. But like any old house, it has needed extensive repairs. e biggest challenge has been to keep water out. When we bought the house, water would seep through cracks in the basement walls when there was a heavy rainfall. And aer a major snowstorm, water would collect in the sots behind the guers, run into the spaces between oors, and eventually drip through the ceilings and walls. + +In both cases, the proximate causes were clear, and they have straightforward (although not inexpensive) remedies. To x the basement leaks, you can repair the cracks in the walls, and spray them with a special waterproong sealant. You can also install underground drainage to collect the water behind the walls and pump it out. To x the guer problem, you can install a layer of rubber ice-and-water shield under the shingles at the edge of the roof, so that runo from melting snow and ice is directed away from the roof into the guer. + +Aer many years of experimenting with interventions like these, reading advice online, and talking to contractors, we learned the truth. ese kinds of remedies are inadequate (and unnecessary). ey don't actually solve the underlying problem; they just mask it. + +A beer strategy is to identify the real cause and to address that. Take the basement water problem. Water enters your house from the outside, so the best way to prevent it from coming in is to keep it away from the house in the rst place. If you grade the land carefully so that it slopes away from the house, and ensure that downspouts from the guers discharge water far enough away from the foundation, there won't be surplus water pressuring the basement walls. + +Dealing with snow on the roof is harder. e problem, it turns out—and this will be familiar to those who live in similar snowy climes—is the dreaded "ice dam." If the roof is warm, snow melts where it meets the roof; it then refreezes when the temperature drops, and a layer of ice forms and eventually grows to cover the eaves. When more melting occurs, this ice prevents water from owing away into the guer, and it ows instead under the shingles into the house. e solution, paradoxically, is to keep the roof cold so that the snow melts only when the outside + +air becomes warm. To achieve this, you can either vent the roof with a gap below the shingles through which cold air can pass, or (if you're stuck with an old house) install insulation on the inside of the roof to keep heat inside the house and away from the roof. + +In summary, both of our problems seemed to be caused by visible defects, such as cracks in the basement walls or small openings in the roof. But these defects were just symptoms, and the real causes were design aws. If a house is designed well (with the land around it well graded, and the roof vented and insulated), water won't come in. Eliminating the visible defects, it turns out, is neither sucient nor necessary. With enough water or ice buildup, even the best roof or basement wall will fail; and if the design is good, small defects will not even be tested. + +10. Empiricism in soware research. e move in soware engineering research away from broader and deeper questions to narrower and more technical ones can be traced back, in my view, to eorts to make the eld more empirical. Advocates of empiricism argued (back in the mid-1990s) that the eld would garner more respect and make more eective progress if it adopted more "scientic" standards, with experimentation playing a more central role. + +e hoped-for benets did not materialize. Researchers, forced to appease reviewers demanding empirical evidence, turned away from harder questions (especially those whose very formulation is tricky) towards simpler ones that were more amenable to evaluation, and diverted their intellectual eorts to contrived experiments with small sample sizes, oen using students as participants to evaluate tools aimed at more expert programmers. + +Raising the bar of evidence may have weeded out weaker papers, but it threw the baby out with the bathwater. No longer are submissions judged on the strength and originality of a paper's intellectual arguments and the compellingness of its examples; "results" are now the sole arbiter of acceptability. It's a sobering thought that the most inuential papers of the eld (such as David Parnas's seminal papers on information hiding and dependencies [115, 116]) could not be published in mainstream conferences today, except in a few more open-minded venues (such as the *Onward!* track of SPLASH). + +Similar concerns have been raised in the eld of human computer interaction. Saul Greenberg and Bill Buxton have observed that people not only generate research questions that are easier to evaluate, but also oen rely on scenarios that are cherry-picked to produce good results, thus proving only that an artifact is usable in *some* context (rather than in all contexts, or in the contexts that maer) [48]. + +e result, they argue, is that more promising and innovative ideas receive less attention. + +In an entertaining and revealing book [13], Laurent Bossavit analyzes a number of folklore beliefs about soware—for example, that productivity varies between programmers by a factor of 10, or that prior to agile approaches, soware was developed in a strict and inexible "waterfall" life cycle—and shows them to have no basis. To some, this is evidence in favor of greater emphasis on empirical data. But as Bossavit notes, the real problem lies not in the original papers that are cited in support of such beliefs, but rather in the game of "telephone" that followed, in which a paper's content and message were progressively degraded and misrepresented. e problem therefore is not that the original papers lack compelling data, but that they are not read critically (or indeed at all). + +Of course, not *all* empirical studies are suspect. My objections are to an unthinking preference for empirical evaluation over other forms of analysis (inspired my misleading analogies to the hard sciences), and to the assumption that all ideas benet from quantitative assessments. When targeted appropriately and conducted imaginatively, empirical investigations can of course be revealing and valuable. + +In the eld of programming languages, for example, it has long been recognized that programming is as much about communicating with other programmers as it is about conveying information to a compiler. But only recently have researchers begun to embrace the idea that programming languages are a human tool, and that questions of usability are fundamental to their design [28]. + +Jonathan Aldrich, a noted programming languages researcher who is a leader in this new area, has balanced his technical contributions to programming language semantics and theory with careful investigations of the impact of language features on users. A study led by one of his students, for example, analyzed a corpus of open-source programs, conrming that they indeed would have beneted from structural subtyping, a language feature popular in research languages but rarely deployed in practice [98]; another looked at the prevalence of object protocols in code, nding that enough modules used them to make protocol-checking tools worthwhile [9]. + +11. How concepts aid design thinking. e emergence of design thinking as a popular movement has done much to elevate the role of design in our society and set higher expectations for the design quality of everyday artifacts. It has also inspired many people to think in a more open and creative way about all aspects of their lives, by questioning assumptions, imagining radically new solutions and reevaluating needs. + +e "content-free" nature of design thinking—that the processes it advocates are independent of any domain-specic design principles, language, or strategies—makes it a good match for concept design, which can provide the substance for design thinking in the context of soware. In the neednding phase, the idea of concept purposes can be used to rene and structure needs; in divergent, ideation phases, existing concepts can be drawn on, enabling more ambitious and yet more lightweight exploration; and in convergent phases, concepts provide language for recording designs and criteria for evaluation. + +Perhaps most importantly, concepts allow a design exploration to be factored into separate explorations, one per concept (or one per purpose that a nascent concept is intended to address), which might proceed sequentially or in parallel. A design thinking project can be sunk by too large a scope that leads, in divergent phases, to an array of design ideas that is too large and unstructured to be amenable to convergence. It would make lile sense, for example, to pursue the design of a healthcare information system as a design thinking problem. By identifying individual concepts and their purposes—for example, the problem of diagnosing conditions, or triaging patients, or scheduling appointments—the design eort can be given some structure, allowing design thinking to be applied in a more granular and focused way. + +Some qualms about design thinking. Part of the appeal of design thinking has been its accessibility, and the inclusive message that it sends to all members of an organization encouraging them to engage in design activities. Broadening participation in design is surely a good idea. Time and again, designers have found that engaging with users and community members results in beer designs. For Christopher Alexander, paerns are valuable precisely because, by embodying experience and design wisdom, they make it possible for people without experience to take advantage of it. Accumulated design expertise, in other words, is the basis for democratization. + +But this enthusiasm has a downside, and has led to some misapprehensions about design. One gets the impression from the way many design thinking books talk that design is an easy and fun activity in which radically new forms are conjured out of thin air, and that a grounding in a particular design discipline is not only unnecessary but may be an impediment to fresh thinking. + +is misrepresents design in several key respects. First, the best designers don't work in a vacuum. ey are steeped in knowledge and experience of prior designs, which they draw on as they imagine new designs. Second, most designs aren't radical new forms, but are subtle modications of existing forms; the genius of design + +is more oen in the details, and in how dierent design elements are reconciled, rather than in the novelty of the design as a whole. And third, each design discipline really does call for its own sensibilities. Natasha Jen raised similar concerns about design thinking and its deemphasizing of the role of design criticism in her talk "Design inking Is Bullsh\*t" (and pillories the ubiquity of 3M Post-its as the design tool du jour) [74]. + +Design in other domains. ere is undeniably a "design mindset" that applies across domains, and my understanding of design has been enriched by many books that are not about soware. My favorites are those describing and diagnosing failures, such as *Why Buildings Fall Down* by Mario Salvadori [93]; *Why Buildings Stand Up* by Mays Levy and Salvadori [133]; Henry Petroski's *To Engineer is Human* [121]; and Charles Perrow's *Normal Accidents* [120]. + +I have wondered if it would be possible to write such a book about soware failures, but I suspect not, for a simple reason. ese books are appealing because they tell compelling stories of designs gone wrong: a plan that seemed perfect but then failed spectacularly because of an unwarranted assumption, or a aw in execution. When failures of a similar magnitude happen to soware—for example, a security breach that leaks the personal records of millions of people—the diagnosis is invariably that no reasonable safeguards were ever included in the rst place. Without any design rationale for success, there was no reason to imagine that the failure would *not* occur, and there is thus no design story to tell. A story about why companies are not incentivized to design soware more carefully can still be told, but it's about commerce and risk instead. + +Sources of inspiration. Seeking inspiration on design from other disciplines, I have been inuenced most by Michael Polanyi's notion of the "operational principle" [125] (introduced to me by Michael Jackson [72]), Nam Suh's independence axiom (from his Axiomatic Design theory in mechanical engineering [137]), and, more amorphously but no less importantly, Christopher Alexander's ideas about form, context and t, and about the role of paerns in design [3, 4, 5]. + +Books on typography and graphic design oer an enviable collection of design ideas and design theories, and are full of principles, paerns and illustrative design examples, suggesting a model for how to write about design. Traditional texts on typography frequently give prescriptive design guidance; Jan Tschichold's *e Form of the Book* [144], for example, gives a systematic treatment of page layout and advice on how to use dierent ratios in shaping the page and the text block. Most impressive is Robert Bringhurst's *e Elements of Typographic Style* [16], not + +only for the quality and quantity of the design advice that it contains, but also for the beautiful demonstration the book itself provides of how successful typographic design can be. Even if the design ideas in these books don't carry over to so ware, they inspire in the recognition that design principles are a good thing, and amplify creativity rather than constraining it. + +Soware development has long looked to other domains for inspiration. e best-known example of borrowing from older elds is the idea of reusable components or interchangeable parts, which goes back to Eli Whitney's demonstration to President John Adams in 1801 of a musket assembled from prebuilt components. e demonstration was later proven to have been faked: Whitney had marked the components and they weren't fully interchangeable. Nevertheless, this moment is oen cited as a technological turning point from handcraing to industrial production. e value of components in soware was rst articulated by Doug McIlroy at the 1968 NATO conference that launched the eld of soware engineering [101], and is important in concept design too, with concepts themselves as the reusable components. + +12. Formal specication and design. In the 1970s and 1980s, researchers developed a slew of languages for specifying the behavior of soware systems using mathematical logic. Some of these—the so-called "model-based" languages such as Z [136], VDM [75], and B [1]—abstracted away the low-level details of the soware implementation by describing the behavior in terms of actions over abstract states (comprising sets and relations, rather than the objects, classes, and linked lists of code). Others—the so-called "algebraic" languages such as OBJ [45] and Larch [51] went further, and described the behavior without any state at all, using axioms relating observers (actions that reported on the hidden state) to mutators (actions that changed the state). + +For the most part, these languages were motivated by the conviction that so ware quality means correctness: that the behavior of a program conforms to its specication. Clearly, without a precise specication, correctness cannot even be judged, let alone e ectively pursued. + +And yet, as researchers began to write formal specications, they discovered that the very activity of writing them revealed inconsistencies and confusions in the intended behavior. Far from being a simple maer of recording expectations that were already clear, the act of constructing specications was a powerful design activity in which many of the most critical decisions about a system were made. is is evident, for example, in a book of elegant case studies in the Z language [55], and was articulated as an explicit goal in a beautiful demonstration of the use + +of Larch to design the essential properties of a window manager [50]. In the eld of human-computer interaction, Harold imbleby in particular has explored the benets of formal specication, with a chapter in an early book [139] showing how algebraic properties can be applied to user interface actions, and later edited a collection of papers on the role of formal methods in HCI more generally [54]. + +My own Alloy language (see Note 3) was, from the start, intended for design exploration. It was still a surprise to us to discover as we began to use it that the most useful analyses were oen not assertion checks, in which a design is tested against expected properties, but simulations, in which arbitrary scenarios are generated, prompting the designer to consider unanticipated (and oen pathological) cases. + +13. On simplicity and clarity. Pondering Zoom's dominance in the video conferencing market (suddenly enlarged by the new working conditions of the COVID-19 pandemic), tech writer Shira Ovide aributes the company's success to the fact that its soware "just works." As she explains, "Being the rst or even the best at something may not maer." Instead, "Simplicity is the overlooked secret to success." But she recognizes that designing for simplicity is no easy task: "It's the deceptively dicult ticket to riches." [114] + +Ovide was unwiingly echoing the views of two of the most famous computer scientists, Tony Hoare and Edsger Dijkstra, both avid proponents of simplicity. Hoare's remarks on simplicity in his Turing Award Lecture [57] have become perhaps the best known quotes in soware engineering. Both criticized excessive complexity in programming language design. e rst, about Algol 68, lamented the rejection of a proposal for a simpler language: "I conclude that there are two ways of constructing a soware design: One way is to make it so simple that there are *obviously* no deciencies and the other way is to make it so complicated that there are no *obvious* deciencies." + +e second, about PL/1, noted that simplicity is elusive even when (or perhaps especially when) the resources needed to achieve it are readily available: "At rst I hoped that such a technically unsound project would collapse but I soon realized it was doomed to success. Almost anything in soware can be implemented, sold, and even used given enough determination. ere is nothing a mere scientist can say that will stand against the ood of a hundred million dollars. But there is one quality that cannot be purchased in this way—and that is reliability. e price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich nd most hard to pay." + +And here's Dijkstra [36]: "e opportunity for simplication is very encouraging, because in all examples that come to mind the simple and elegant systems + +tend to be easier and faster to design and get right, more ecient in execution, and much more reliable than the more contrived contraptions that have to be debugged into some degree of acceptability." + +Hoare and Dijkstra were concerned more with soware engineering than so ware design (although Dijkstra abhorred the former term and never used it himself), so naturally they see the benet of simplicity primarily for reliability. e benets in the realm of soware design seem even greater, since users have less tolerance for complexity than programmers. My belief is that designing soware with concepts not only results in a beer user experience, but also in more reliable so ware, because clarity in the design leads to clarity in the code. + +In Zoom's case, simplicity may not be the only explanation of the company's success: the quality of the video alone partly explains its dominance over competitors such as Skype and Google Hangouts. And, as we will see later, the Zoom app suers from several conceptual design problems. + +14. e origins of conceptual models. In a historic paper [25], Stuart Card and Tom Moran summarize their work over the years at Xerox PARC. Although most of the paper describes their pioneering cognitive model (the "human information processor") and its application to designing the primarily physical aspects of user interfaces, they also discuss the role of mental models, and advocate the view that I have adopted that the mental model is not accidental but is to be explicitly *constructed* by the designer through invention of an appropriate conceptual model. As they put it: "It is clear that users aempt to make sense—by building mental models—of the behavior of a system as they use it. If a simple model is not explicitly or implicitly provided, users formulate their own myths about how the system works… [I]f the user is to understand the system, the system has to be designed with an explicit conceptual model that is easy enough for the user to learn. We call this the intended user's model, because it is the model the designer intends the user to learn." + +In the preface of the 2002 edition of *Design of Everyday ings* [110], Don Norman lists the most important design principles in his book. First on his list is the *conceptual model*, which he illustrates with the example of a thermostat, and how a user lacking a correct model may set the temperature higher in the vain hope of geing warmer faster. (e other principles on his top-four list are giving feedback to users, imposing constraints to prevent errors, and signaling aordances.) To Norman, however, the conceptual model principle is mainly about communication: that the appearance of a device should convey its conceptual model (for more on this, see the discussion of Norman's refrigerator in Note 54). My view in + +this book is closer to Card and Moran's: that the shaping of the conceptual model is itself the primary design challenge, and the problem of conveying it (or, in my terminology, *mapping* the concepts to a concrete user interface) is secondary. + +Conceptual models of APIs. Just as a user needs a sound conceptual model to operate soware, so a programmer needs one to incorporate another programmer's code through an API (application programming interface). One study [81] of programmer comprehension of API documentation found that programmers without a basic grasp of the API's concepts struggled even to formulate search queries, or to assess the relevance of the content they found, making eective usage of the API nearly impossible. + +Fred Brooks and conceptual integrity. In 1975, Fred Brooks wrote *Mythical Man Month* [17], based on his experience managing the OS/360 project at IBM. e book became a classic, and has been extremely in +uential. One of its key ideas was "conceptual integrity," which Brooks claimed was "the most important consideration in system design." In an aerword to the 1995 anniversary edition, he re +ected on the views he'd expressed in the original edition, notably retracting his opposition to David Parnas's idea of information hiding. In this regard though, his opinion was unchanged: "I am more convinced than ever. Conceptual integrity is central to product quality." + +Brooks expressed a similar view in his in +uential *No Silver Bullet* paper [18], in which he divided the challenges of soware development into essence—"the di culties inherent in the nature of soware"—and accident—"those di culties that today aend its production but are not inherent"—and located the essence in the concepts underlying the soware: "e essence of a soware entity is a construct of interlocking concepts: data sets, relationships among data items, algorithms, and invocations of functions. is essence is abstract in that such a conceptual construct is the same under many dierent representations." Furthermore, he argued that developing the conceptual structure is the greater challenge: "I believe the hard part of building soware to be the speci cation, design, and testing of this conceptual construct, not the labor of representing it and testing the delity of the representation." + +For Brooks, conceptual integrity requires that the design of the entire system emerge from a single mind. Consistent with this view, in his latest book, *e Design of Design* [19], he de nes "style" as a set of dierent repeated microdecisions, each made the same way whenever it arises. In contrast, in the book that Brooks coauthored on computer architecture [12], the notion of conceptual integrity is given a + +brief denition as comprising three essential properties: orthogonality, propriety and generality. Brooks himself seems not to have developed these ideas further, although they have been inspirational to many others (including the author of this book). + +e eld of conceptual modeling. ere is in fact an entire subeld of computer science called "conceptual modeling," but its focus is a dierent kind of conceptual model. Here, the model captures entities and relationships in the real world; the term "conceptual" is used to distinguish the representation inside a computer from the external reality. Conceptual models of this sort are used for classical AI reasoning (e.g., in a robot planner), or for dening databases in applications (such as payroll, or indeed almost any kind of information system) that maintain data about the real world. Another, more recent, focus has been to capture the structure of knowledge in the World Wide Web. + +At its heart, conceptual modeling is a descriptive endeavor. As John Mylopoulos, one of the leaders of the eld explains: "Conceptual modelling is the activity of formally describing some aspects of the physical and social world around us for purposes of understanding and communication" [105]. In contrast, this book is about design and invention; description, while vital, is not an end in itself. + +Conceptual models themselves are thus usually data models (also called semantic ontologies) that express the fundamental elements of a problem domain and their relationships. In database development, such data models are contrasted with database schemas, which specify not only these problem domain aspects but also how they are represented in the database (for example, as a collection of tables). e most popular data model used in conceptual modeling is the entity-relationship (ER) model. e ER model itself was developed by Peter Chen in 1976 [27] as a stepping stone in database design, and was hugely inuential. Other models (for example, the Semantic Data Model [52]) oered richer features, but few of these were taken up, with one notable exception: the ability to specify that one entity is a subset of another. With this feature added, the model is known as the "extended entity-relationship model," and is the basis for the notation used in the Unied Modeling Language. + +Surprisingly, the eld does not seem to have reached consensus on what exactly a concept is; the word seems to be used only in its adjectival form. As a recent paper [117] puts it rather stridently: "e conceptual modelling community not only has no clear, general agreement on what its models model, it also has no clear picture of what the available options and their implications are. One common claim is + +that models represent concepts, but there is no clear articulation of what the concepts are." + +Most researchers would probably point to the entities in a conceptual model as comprising the "concepts." is would align the concepts of conceptual models with the concepts of formal concept analysis, which organizes concepts into a lattice (essentially a taxonomy in which a concept can have more than one parent). In this view, the associations of a conceptual model express relationships between concepts. + +But a distinction between concepts and relationships is not tenable, and depends on how the model is constructed. A conceptual model of a restaurant reservation system, for example, might have an entity called *reservation*, associated with other entities such as the table being reserved and the customer making the reservation. On the other hand, reservations might instead be encoded as an association between customers and tables. One reason to prefer treating a reservation as an entity is that aributes, such as the date of the reservation, can be added. But some modeling languages (including the original ER model) allow associations to have aributes too, so that consideration evaporates. Either way, it seems clear that a denition of concept that distinguishes entities from relationships is on shaky ground. + +A larger problem with this approach (identifying elements of the data model as concepts) is a lack of structure in the model, without which concepts proliferate. If every entity or relationship in a conceptual model is a concept, then presumably the start and end times of a reservation are concepts too. To nd a practical notion of concept in a conceptual model, I believe we need to break the model into pieces, grouping multiple entities and relationships together. is is what my concepts do: all the elements that support the booking of reservations become part of the *reservation* concept, with its own localized data model. + +Fowler's analysis paerns. My concepts are closer to (and were inuenced by) Martin Fowler's "analysis paerns" [42], which are small, reusable conceptual models. An important dierence is that concepts are primarily behavioral; their structure supports the behavior by identifying what needs to be remembered (in the state of the running concept) to produce the behavior. Fowler brings in behavior by moving towards the code, and showing methods associated with classes. As we will see, this isn't necessary, and behavior can be specied in an implementation-independent way. + +Domains, data models and domain-driven design. A related idea is "domain modeling," which advocates using a model of the problem domain as the basis for developing a soware system. An early approach to soware development that relied on explicit modeling of the problem domain is Michael Jackson's JSD [68]. In JSD, each entity of the problem domain is modeled as a context-free grammar capturing the possible sequences of events in the life of the entity. System functions are dened in terms of the model, and an implementation is obtained by a systematic transformation of the model and system functions. + +Object-oriented approaches also advocated modeling of the problem domain, although objects turned out to be too polluted with implementation decisions to be useful modeling constructs. e Object Modeling Technique [131] found an elegant way to square an object-based implementation with more faithful modeling: an entity-relationship domain model is constructed rst, and then (in a similar spirit to JSD) is transformed into object structures. + +A popular book by Eric Evans entitled *Domain Driven Design* [38] has brought domain models to practitioners, breathing new life into an old idea. In addition to domain modeling, the book renews other important but neglected ideas, such as the distinction between "entity" and "value" objects [96], the idea of a layered architecture in which a lower layer provides a language for a higher layer [32], and the importance for teams of using common terminology [151]. One key respect in which the book extends traditional approaches to domain modeling is the idea of *bounded context*: that dierent (and even incompatible) domain models may be needed for dierent areas of functionality and parts of an organization. Concept design takes this a step further, with each concept holding its relevant part of the data model. + +A similar decomposition of the problem domain into distinct subdomains plays a role in Michael Jackson's problem frames [70], which structure requirements as archetypal paerns that capture the relationships between phenomena within the system being built and phenomena in the domains with which the system interacts. In his most recent work [71], Jackson describes a system as a collection of "triplets." Each triplet consists of a machine (a program that executes on a computer); a portion of the governed world that the machine interacts with; and a behavior that results from the interaction. His approach is notable because it allows each machine to work with a *dierent* model of the governed world, recognizing that for dierent kinds of behaviors, dierent aspects of the world will be relevant (and dierent approximations will be acceptable). His machines are less granular than concepts, but like concepts they have their own data model and dynamics. + +Other researchers have explored domain modeling as the basis for requirements: Dines Bjørner, in particular, placed such emphasis on domain modeling that he referred to it as "domain engineering" [10]. + +Concepts in computer system design. e eld of computer science known as "systems," which is focused primarily on the design of infrastructural components (such as networks, le systems, etc.), tends to be case-based, with more focus on breakthrough ideas than on systematizing the variety of possible designs. Notable exceptions are the textbook by Jerry Saltzer and Frans Kaashoek [132], which identies design themes that are close in some respects to my concepts (and whose chapter on naming, in particular, inuenced my ideas), and the course notes on system design by Butler Lampson [86], which shows how the behavior of complex components (such as distributed memory) can be characterized by precise (and oen surprisingly weak) specications. + +## *Chapter 2: Discovering Concepts* + +15. e Unix origins of Dropbox's folder concept. Dropbox adopted the concept of *folder* from the Unix operating system, in which a folder is called a *directory*. is design has many elegant aspects. In particular, since the names of les and directories are *not* treated as metadata but are simply contained within directory entries, there is no need for any additional structure in the le system for maintaining this information; directories can be represented with data blocks just like les, albeit with a special interpretation. + +Allowing a le or directory to have more than one parent, a feature of Dropbox adopted from Unix (and essential for expressing sharing), is powerful but even in the single-user Unix seing brings some nasty complications. Deletion of a le does not simply eliminate it, but rather deletes a directory entry—and the le might still be linked through another directory. Consequently, reclaiming storage requires a form of garbage collection to identify inaccessible les. + +From the user's perspective, the possibility of multiple parents produces at least three other surprises. First, novice Unix users, expecting a folder to "contain" other les and folders (rather than just containing named links), look in vain to nd an option for the directory-listing command that tells you how big a directory is that is, how much disk space it occupies. Such an option does not exist, arguably for good reason (since a le can have two parent folders, so it's not clear how the le's space consumption should be assigned). Instead you need to use a dierent command (called *du*, for "disk usage") which, in classic Unix style, will generate by default a report of sizes of all reachable directories without specifying the unit of + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-181-210/_page_23_Figure_1.jpeg) + +fig. E.1 *Results of a survey testing understanding of Dropbox amongst computer science undergraduates at MIT: the bars show the proportion of correct answers to two questions.* + +measurement! Needless to say, only computer scientists would tolerate such unusable soware, so when the Unix le system was adopted by Apple for the Macintosh, this was all hidden away, and the Finder displays folder sizes as expected. + +A second surprise, which is harder to work around, and becomes a serious problem, is that changing the name of a le is indistinguishable from deleting it from a directory and then adding it back again under the new name. Tools built on top of Unix for synchronizing les across machines therefore can't tell when a le is renamed that it's the same le, and not a new one that happens to have the same contents. is makes it impossible to reliably track the history of changes to a le. If a new le has the same contents as an old le with a dierent name, was the le just renamed or was the old le deleted and a new one created that happens to have the same contents? e Git version control system, for example, guesses that the le was renamed if the le is large, on the grounds that it's less likely in that case that you'd create a new le with identical contents! Dropbox doesn't suer from this problem because, unlike Git, it can see the action in which the user renames the le, and even if the le system is Unix-based, it can interpret that renaming in its own, non-Unixy, way. + +A third surprise is that someone who has no permission to read or write a le may still be able to move it and change its name, since those actions are applied to a directory containing it, and not to the le itself. + +is *folder* concept is perhaps one of the oldest concepts in computer science. It was actually invented in the late 1960s—in the predecessor to the lab I now work + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-181-210/_page_24_Figure_1.jpeg) + +fig. E.2 *Warning message displayed by Dropbox app aer a shared folder has been deleted.* + +in at MIT—as part of an operating system called Multics. e exibility of having more than one parent was only partly present in Multics, which had two distinct ways in which one directory could refer to another. e main references were called "branches," and they always formed a tree. e others were called "links" and were unconstrained. Unix eliminated the distinction, using links (properly called "hard links") in both cases, so that when a le (or directory) is accessible from two or more directories, the situation is completely symmetrical. + +- 16. An empirical study of Dropbox users. It's not just the technologically unsophisticated who get confused by these concepts. My student Kelly Zhang surveyed about 50 computer science undergraduates at MIT, asking them rst to rate their understanding of Dropbox, and then to predict the eect of deleting a folder in two cases. e results are shown in Figure E.1. e eect of deleting a top-level shared folder (such as *Bella Party*) was understood by less than 60% of those who said they had "good knowledge" of Dropbox, by less than 40% of those with "average knowledge," and by none of those with "poor knowledge." e eect of deleting a folder contained in a shared folder (such as *Bella Plan*) was predicted correctly by about 70% of those with good knowledge, almost 80% of those with average knowledge, and only just over 40% of those with poor knowledge. In short, if you delegated control of your Dropbox to an MIT computer science undergraduate, you wouldn't do much beer than if you just tossed a coin to decide what to do. +- 17. Dropbox mitigations. To Dropbox's credit, even if you delete a le by removing the mirrored copy on your desktop (rather than deleting the cloud le more directly through your browser), a warning akin to the browser warning (Figure 2.3) is displayed, as shown in Figure E.2. But this warning is shown *aer*, not before, the le or folder has been deleted, so it's easy to miss. + +Dropbox's design also includes a variant of the *trash* concept, explained in Chapter 4, so that les and folders that are deleted are actually moved to a special temporary location and can be retrieved until 30 days have passed, a er which they are lost forever. + +- 18. Time to sue Dropbox? Given this chapter's rather critical analysis of Dropbox's design, you may wonder if I'm advocating a class action suit against the company. Far from it. When the Apple Macintosh appeared, one reviewer noted that it was the rst user interface design that was *good* enough to be criticized. Previously, the user interfaces of most computer systems were so inconsistent and arbitrary that no coherent critique was possible. roughout this book, I've picked examples from products made by leading companies, both because they are likely to be familiar to readers, and because they represent the best and not the worst examples of soware design. It would be easy to critique a straw man—an incoherent design by an unknown company. But by focusing on major products, I hope to convince you that concept design has value even for companies that seem to have nearly unlimited resources and that employ the most talented designers and engineers. If concept design can reveal serious aws even in their products, imagine how much more useful it can be for the long tail of smaller and less well resourced companies. +- 19. Levels of UX design for soware. In the late 1970s, James Foley and Andries van Dam identied four levels: lexical, syntactic, semantic and conceptual [41]. ese levels reected the structure of the implementation; indeed, the rst three correspond exactly to the classic compiler structure that had emerged in the prior decade. In contrast, my levels reect design concerns. A red buon, for example, would sit at their lexical level, but in my analysis might invoke design questions at both the physical level (will color-blind users see it clearly?) and the linguistic level (does red mean stop?). e behavior of the buon would be placed at their semantic level, but where it goes in my scheme would depend on whether the pressing of the buon is conceptually signicant (a moderator rejecting a post, for example) or not (aborting a slow query, say). And despite similar terminology, their conceptual level is dierent from mine. eirs is concerned with the user's mental model, and focuses on goals rather than details of behavior; mine embodies the essential behavior that comprises the shared understanding of user and designer alike. + +Tom Moran proposed a three-level scheme that is much closer to mine, but like Foley and van Dam's, also more inuenced by implementation structure [103]. At the boom, he places the *physical component*, which handles devices and user interface layouts; in the middle, the *communication component*, which involves interactions (such as key presses) and the syntax of the command language; and at the top, the *conceptual component*, which comprises tasks and their meanings. What is physical to Moran depends on the computer; in my scheme it depends on the perceptions of the human user. Many design aspects are like the redness of the buon and have both physical and linguistic aspects: just consider how links are signaled + +on web pages by underlining text or coloring it blue. On the other hand, Moran's conceptual level—unlike Foley and van Dam's—is similar to mine. He divides it into two sublevels, the task level (which expresses the goals of users in terms of the tasks they want to perform) and the semantic level, which comprises a collection of entities with associated operations. e innovation of this book is thus not in identifying the conceptual level but in giving shape to it. As we'll see, we can nd useful structure in the conceptual level by going beyond entities and operations. + +Bill Buxton also criticized Foley and van Dam, preferring Moran's levels [24]. He argued for more explicit consideration of "pragmatics," by which he meant the aspects of design that correspond to basic human interactions. He noted that our ability to perform mental chunking, for example, may determine how complex a command grammar can be tolerated. In the schemes of both Moran and Foley/van Dam, syntax occupies the middle level. In my scheme, in line with Buxton's view, this particular question would be placed at the physical level, because—like perceptual fusion—it belongs more to the user's cognitive rather than the linguistic characteristics. + +Ignoring UX levels. Some authors treat the user's experience of a system's interface as a single, integrated entity, and do not distinguish levels. omas Green, for example, in his rst paper on "cognitive dimensions of notations" [46] presents the slogan "system = notation + environment" precisely to suggest that the underlying semantics of the notation and the tool in which it is embedded are inseparable. + +To the extent that a designer can mitigate aws in the notation proper by more elaborate tool support (for example, functions to display otherwise hidden dependencies), this observation is helpful. But it runs counter to the fundamental premise of this book: namely that separation of levels allows for greater clarity and eectiveness in design, and that deep aws at the conceptual level cannot be remedied by linguistic and physical band-aids. For designing a notation, this would mean at the very least distinguishing between semantics, abstract syntax and concrete syntax, which (surprisingly) Green does not do. + +Finding semantics in usability. If you detected in my three-level classication a desire to emphasize semantics over syntax, you'd be correct. As one colleague quipped, parodying our eld's tendency to favor one over the other: in computer science, the term "semantic" usually just means "beer." is is a lile unfair, and I certainly recognize the critical importance of physical and linguistic design, and especially the way in which subtle choices of type, color, layout and language can + +impact the emotional experience of the user. But it would not be too reductionist to say that this book is, to a large degree, an aempt to nd semantics in usability. + +20. e dystopia of Terminal World. David Rose [130] describes a dystopia that he calls Terminal World in which every interaction we have with a physical object is through a glass slab and glowing pixels. Bret Victor has also railed against the limitations of devices that use the human hand for input but allow only pointing and sliding [146]. + +e concerns of the physical level would apply even in Terminal World, but they become more interesting when physical interactions are enriched. Although phones and computers seem (largely due to Apple) to be carrying us inexorably towards Rose's dystopia, in other areas of design, resistance to the universal interface seems to be growing. Users are tired of menus and clicking, and prefer more tactile experiences. Some camera manufacturers (notably Fujilm and Leica) have preserved classic mechanical designs in their digital cameras, with enough knobs and dials that adjustments can be made without looking at a screen. For many photographers, this feature alone makes such cameras preferable to others with more elaborate features. + +21. Fis's Law and "physical" capabilities more generally. Another example of a UX design principle grounded in the physical capabilities of the human users is Fis's Law, which predicts the amount of time it takes to move a pointing device to a target. Simplifying, the time varies inversely with the width of the target, because if the target is small, the user has to slow down and might have to move back and forth to nd exactly the right position. + +A classic application of Fis's Law demonstrates the superiority of the menu design in macOS to that of Windows. In the macOS design, the menu items at the top of the desktop present an eectively innite width: the mouse sticks as you attempt to move it past the desktop boundary. Consequently, opening a menu is faster and easier than in Windows. + +Note that the physical level of design accounts for "physical" capabilities of users in the broadest sense; it includes cognitive aspects such as the user's memory capacity. e classic work on the physical level of user interface design is *e Psychology of Human-Computer Interaction* [26], which bases a theory of interface design on an explicit model of the human user as an information processor, with parameters for reaction time, memory capacity, etc. e book actually derives Fis's Law from this model. + +- 22. Risks of linguistic misinterpretation. e icon I've used in Figure 2.5 to represent the linguistic level is a British trac sign warning drivers of road works ahead, affectionately known as "man having trouble opening umbrella," illustrating the risks of unexpected interpretations at this level. +- 23. Redundant functionality, bloat and discoverability. It's rare for apps to lack features that their users desperately need. When this happens, the users complain (or go elsewhere), and developers respond accordingly. Having too many features, or features that are too complex, is a more real concern. A mantra of agile programming is to build "e Simplest ing at Works." Another reminds you when considering complex functionality that "You Aren't Going to Need It" (abbreviated YAGNI). e wisdom in these slogans reects the painful experience of many soware teams that the most ambitious, and seemingly essential, features oen consume the lion's share of eort and end up not being used at all. On the other hand, the complaint that some very successful apps are "bloated" fails to recognize that while it may be true that only 20% of an app's functionality is essential, that 20% may be dierent for dierent users. + +e ip side of YAGNI is the recognition that for any particular purpose, you *are* likely to need the complexity that others have found necessary in fullling it. So don't try to build authentication and imagine that you don't need to let users reset their forgoen passwords; or build a shopping cart in which you can't change the count of each item at the last minute; or design almost any professional app without oering presets to store and recall complex seings. + +e only way to know what users are likely to need is through experience. Concepts help because their design embodies experience accumulated across many applications in many dierent contexts. So when you're designing your authentication mechanism, for example, you should select from established concepts and not be tempted to roll your own. at way, you won't stray too far in either direction (of excessive complexity or inadequate functionality), and you won't introduce a critical security vulnerability. + +Discoverability is a real issue. My favorite example of a concept that took me years to discover: Apple Keynote's *object list view* (introduced in Keynote 7.1, March 2017), which shows the objects on a slide in a tree and allows you to make cross-cuing selections, so you can alter formaing, animations, and so on arbitrarily, without the constraints imposed by layers and groups. PowerPoint has a similar concept called *selection pane* which was introduced earlier (in the 2007 version) but apparently also went unnoticed for years by many users (as indicated by a rhapsodic review in a blog post dated 2013). + +I suspect that an increasingly common reason that some features go unnoticed is that they are not accessible through keyboard or menu commands. Menus, despite being old-fashioned and a source of visual cluer, at least have the benet that they can be easily scanned for available actions. As interfaces have become increasingly visual and less textual, they have become harder to explore. I wonder, for example, how many users of Apple Preview (a PDF viewing and editing app) know that PDF documents can be merged by dragging thumbnails from one window to another, or that an Apple Keynote presentation can be made from a set of photos by dragging the selected le icons to the slide navigator window. + +24. Conceptual models of varying degrees of sophistication. Sometimes, the same app or system can be viewed at varying degrees of sophistication. is happens less oen than you might imagine, because in well designed apps the designer's concept is only as complex as it needs to be to support the intended purpose, and a user who fails to grasp the concept won't be able to use it eectively. A concept may have behavioral details that a user is not familiar with, but these are rarely an impediment to usability, and can oen be learned on the y. + +Such varying degrees of conceptual understanding tend to appear when a concept represents a mechanism that is hidden from most users, but may become visible either if a user's activities extend into a new realm, or if failures occur. Someone browsing the web, for example, may imagine that *amazon.com* is the name of a machine that is owned by Amazon, and that typing this name into the bar at the top of the browser, and subsequently interacting with the pages returned, causes the browser to contact this machine, sending it queries and receiving responses back. While oversimplied, this view is sucient to use a browser eectively most of the time, and might be formalized as a *web service* concept. In particular, it allows a user to understand who might have access to data that is entered into the browser. + +In contrast, a user who doesn't even have a model that distinguishes the servers owned by dierent companies won't be able to understand why entering private data is safer on some sites than others, and arguably has a conceptual model that is simply incorrect. In a survey of users' models of the Internet, one user responded to a question about where data goes as follows: "I think it goes everywhere. Information just goes, we'll say like the Earth. I think everybody has access."[77] + +A richer conceptual model would recognize that Internet servers do not have intrinsic, symbolic names, and that a name appearing in a web query is rst resolved by a domain name server (DNS) that translates the domain name to an IP address. e *domain name* concept is needed to explain why, when a new name is assigned to a server, the name might not be immediately available (since the DNS \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-181-210/concepts-181-210_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-181-210/concepts-181-210_meta.json new file mode 100644 index 0000000..03e175e --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-181-210/concepts-181-210_meta.json @@ -0,0 +1,1826 @@ +{ + "table_of_contents": [ + { + "title": "Acknowledgments", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 159.99169921875, + 75.1201171875 + ], + [ + 291.37933349609375, + 75.1201171875 + ], + [ + 291.37933349609375, + 96.2142333984375 + ], + [ + 159.13037109375, + 96.2142333984375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 122.61170196533203, + 75.7705078125 + ], + [ + 312.38970947265625, + 75.7705078125 + ], + [ + 312.38970947265625, + 96.2142333984375 + ], + [ + 121.8779296875, + 96.2142333984375 + ] + ] + }, + { + "title": "How to Read is Book", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 168.3896484375, + 143.0859375 + ], + [ + 265.5309143066406, + 143.0859375 + ], + [ + 265.5309143066406, + 155.69601440429688 + ], + [ + 168.3896484375, + 155.69601440429688 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 1: Why I Wrote is Book", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 135.6591796875, + 75.69598388671875 + ], + [ + 275.2452087402344, + 74.794921875 + ], + [ + 275.2452087402344, + 87.69598388671875 + ], + [ + 134.7978515625, + 87.69598388671875 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 156.97705078125, + 40.86962890625 + ], + [ + 295.9140319824219, + 40.86962890625 + ], + [ + 295.9140319824219, + 52.36962890625 + ], + [ + 156.11572265625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.91400146484375, + 40.86962890625 + ], + [ + 295.91400146484375, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 157.5634002685547, + 40.86962890625 + ], + [ + 295.919921875, + 40.86962890625 + ], + [ + 295.919921875, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 157.40771484375, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.54638671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.76242065429688, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 156.97705078125, + 40.86962890625 + ], + [ + 295.91400146484375, + 40.86962890625 + ], + [ + 295.91400146484375, + 52.36962890625 + ], + [ + 156.11572265625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.7681121826172, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.91400146484375, + 40.86962890625 + ], + [ + 295.91400146484375, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.76220703125, + 40.86962890625 + ], + [ + 276.27099609375, + 40.86962890625 + ], + [ + 276.2377014160156, + 52.36962890625 + ], + [ + 152.67041015625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 157.56329345703125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 2: Discovering Concepts", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 151.37841796875, + 263.70599365234375 + ], + [ + 283.2421569824219, + 262.7578125 + ], + [ + 283.2421569824219, + 275.7060241699219 + ], + [ + 151.37841796875, + 275.7060241699219 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.7622833251953, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 156.76171875, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 155.900390625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9198913574219, + 40.86962890625 + ], + [ + 295.9198913574219, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 152.67041015625, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 151.80908203125, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.91412353515625, + 40.86962890625 + ], + [ + 295.91412353515625, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 57 + ], + [ + "Line", + 31 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 58 + ], + [ + "Line", + 29 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 62 + ], + [ + "Line", + 30 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 2 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 82 + ], + [ + "Line", + 37 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 83 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 75 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 83 + ], + [ + "Line", + 39 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 82 + ], + [ + "Line", + 39 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 78 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 79 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 74 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 83 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 73 + ], + [ + "Line", + 39 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 92 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 79 + ], + [ + "Line", + 39 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 79 + ], + [ + "Line", + 39 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 41 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 37 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 39 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 85 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 55 + ], + [ + "Line", + 26 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 32 + ], + [ + "Text", + 2 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 87 + ], + [ + "Line", + 39 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "Text", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 72 + ], + [ + "Line", + 37 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 37 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 85 + ], + [ + "Line", + 39 + ], + [ + "Text", + 3 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 86 + ], + [ + "Line", + 39 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-181-210" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-211-240/_page_15_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-211-240/_page_15_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2f028ac478cb797b28f7189e1d38d6f9b735b52e GIT binary patch literal 21033 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-211-240/_page_24_Figure_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-211-240/_page_24_Figure_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..222e58c751cca979d03e265862338bddb151bc29 GIT binary patch literal 19930 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 r + available' = available - r + } +``` + +e precondition is the same (because *in* is a keyword in Alloy already), but does not need the keyword (because preconditions are implicit in Alloy). e last two lines dene the new values of the two state components (denoted by priming their names) in terms of their old values. (e priming, by the way, is a shorthand introduced to Alloy by the Electrum [20] extension.) + +If I were designing a new language for concepts (which I hope to do), I would prefer a more operational syntax in which relations can be updated on particular domain elements, writing something more like this: + +``` +reserve (u: User, r: Resource) + when r in available + u.reservations += r + available -= r +``` + +with exactly the same intended meaning. Following the programming language CLU, this uses C-style shorthands in a generalized way, so a statement of the form + +*e1 op= e2* stands for *e1' = e1 op e2*. e second line above is thus short for an update constraint along with an implicit frame condition: + +``` +u.reservations' = u.reservations + r +all p: User | p != u implies p.reservations' = p.reservations +``` + +Traces and state observations. e state machine formulation has a simple and mechanistic quality to it, but in practice a more abstract view is helpful. We can de ne the *traces* of the concept to be the set of all the nite histories of action instances that are possible. So for the *trash* concept, these include: + +``` +<> + + + + +… +``` + +and so on. In addition to observing these traces, the user of a concept can observe the state at any point. at is, there's some function + +``` +state: Trace → State +``` + +that maps each trace to the state that it produces. e state produced by the empty trace, *state(<>)*, is of course just the initial state. e state aer a longer trace can be computed by applying each action in turn, following the rules given in the action denitions. So aer deleting an item we nd it in the trash: + +``` +state () = {accessible: {}, trashed: {i0}} +``` + +and aer emptying the trash, the item is permanently removed (and coincidentally we're back in the initial state): + +``` +state () = {accessible: {}, trashed: {}} +``` + +System actions and determinism. Concepts are assumed to be *deterministic*. is means that the transition relation associated with each action is functional: given a particular state and set of argument values for which an action is enabled, at most *one* state can result from executing it. + +is is what justies the denition of the state function: a trace always leads to exactly one state. Another consequence of determinism is that an action cannot be refused arbitrarily; whether it can occur is dened (by its precondition) in terms of the state in which it is invoked, so if you know the trace that has occurred up to some point in time, you can predict whether a given action can follow. + +Not all actions need be performed by the user. In general, dierent categories of users will perform dierent subsets of actions. System actions, performed spontaneously without any user participation are possible too, and in a full concept nota- + +tion might be marked with a special keyword. For example, in a ight reservation system, the *seat allocation* concept may have an action + +``` +system assign-seat (c: Customer, s: Seat, f: Flight) +``` + +that assigns to customer *c* the seat *s* on ight *f*. Since the system (and not the user) selects the seat, this allows us to describe the scenario in which a user, having bought a ticket, gets a seat assigned, apparently arbitrarily. In some sense this is a non-deterministic outcome of the user's request, but because the choice of seat is visible in the argument of the action that the system takes, the concept remains deterministic. And indeed, in practice—in a good design at least, even if not the design that many airlines choose—such an action would be synchronized with a notication leing the user know which seat had been assigned. + +A logic of operational principles. Operational principles can also be readily formalized. Dierent kinds of temporal logic might be used; here I will illustrate how they might be expressed in *dynamic logic* [53] because it most closely matches the style of the informal denitions that I have shown. + +e basic forms of dynamic logic are *[a]p*, which says that aer performing the action *a*, the predicate *p* always holds, and *
    p*, which says that aer performing the action *a*, the predicate *p* may hold. For the operational principles we'll write, only the rst form is needed, and I'll drop the modal operator, writing *a{p}* instead of *[a]p*. + +Actions can be combined into compound actions using *sequential composition*, with *a;b* denoting the *a* followed by *b*; *repetition*, with *a\** denoting zero or more occurrences of *a*; *choice*, with *a or b* denoting an occurrence of either *a* or *b*; and *negation*, with *not a* denoting any action that is not the action *a*. I'll also assume a special operator *can* that extracts the precondition of an action; thus *can a* holds in a state in which the action *a* can happen. + +With these operators in hand, we can formalize the operational principles of this chapter. For the *trash* concept, the principle wrien informally as + +``` +after delete(x), can restore(x) and then x in accessible +``` + +becomes two separate formal assertions: + +``` +delete(x) {can restore(x)} +delete(x); restore(x) {x in accessible} +``` + +For the *style* concept, the informal principle + +``` +after define(s, f), assign (e1, s), assign (e2, s) and define (s, f'), e1 and e2 have format f' +becomes +``` + +``` +define(s, f); assign (e1, s); assign (e2, s); define (s, f') {e1.format = e2.format = f'} +And for the reservation concept, the informal principle +``` + +``` +after reserve(u, r) and not cancel(u,r), can use(u, r) +becomes + reserve(u, r); (not cancel(u, r))* {can use(u, r)} +``` + +ere's some latitude in exactly how the operational principle is expressed, and formalizing it brings the various options to mind. For example, you might wonder why, given that the principle for *reservation* allowed for actions between reserving and using a resource (while stipulating that no cancellation occur), the same exibility wasn't expressed in the *trash* concept's principle. In the laer case, we might have wrien instead + +``` +delete(x); (not (restore(x) or empty()))* {can restore(x)} +``` + +saying that aer deleting an item, you can perform any other actions prior to restoring it except for restoring it (since you can't restore it twice) and emptying the trash. + +My (admiedly imsy) justication for not expressing it this way was that the scenario expressed by my original principle for the *trash* is not rare: it's common to delete an item by mistake and restore it immediately. But for the *reservation* concept, a scenario in which a reservation leads to a use without any intervening reservations occurring is impractical and thus a poor exemplar. + +A linear-temporal logic version. e operational principle might also be expressed in *linear temporal logic* (LTL) [123]. LTL and dynamic logic are not equivalent in their expressiveness, but both can express the general form of our operational principles—namely, that aer some possible sequences of actions, some condition holds. In the newest version of Alloy [20], which includes LTL operators, the operational principle for the *reservation* concept + +``` +after reserve(u, r) and not cancel(u,r), can use(u, r) +can be wrien + all u : User, r : Resource | + always reserve[u, r].then [can_use[u, r].while [not cancel[u, r]]] + } +having dened the then and while operators as macros: +``` + +``` +let then [a,b] {a implies after b} +let while [a,b] {not b releases a} +``` + +Although this formulation seems to me a bit less intuitive than the one in dynamic logic, it has the great advantage of being usable right now in Alloy, and can be executed and checked automatically. (ank you to Alcino Cunha for providing this example.) + +Real actions in temporal logic. In fact, neither dynamic logic nor linear temporal logic exactly captures my intended meaning for operational principles, because both treat the occurrence of an action as equivalent to its state transition. + +In the operational principle of the *reservation* concept (Figure 4.7), for example, the expression *cancel(u,r)* matches—in both logics—*any* transition resulting from an execution of the *cancel* action with arguments *u* and *r*. If the *retract* action were dened (dierently) to allow a resource to be retracted even if reserved, then, after the action *reserve(u,r)*, the actions *retract(r)* and *cancel(u,r)* would have exactly the same eect (namely undoing the reservation of resource *r* by user *u*). And yet we might want the mention of *cancel(u,r)* in the operational principle to apply only in a case in which a reservation by user *u* of resource *r* is dropped due to a cancellation and *not* a retraction. To make this distinction, a richer semantics is required in which the *names* of actions are signicant. + +Incidentally, although its title might suggest otherwise, the Temporal Logic of Actions [85], an elegant logic devised by Leslie Lamport and supported by a powerful model checker, also doesn't represent actions explicitly, and, like Alloy's temporal logic, might be more accurately (if less catchily) described as a "logic of state transitions." + +Classication of objects. I've talked about an action instance such as *create(i0)* happening, but I haven't explained what kind of thing the object *i0* is. Because identifying and organizing objects is such an important part of the design process, it's useful to classify objects into dierent kinds. I'll describe three dierent dimensions along which objects can be classied: by role, by mutability, and by interpretability. + +Object roles. Objects play three dierent roles in a soware system. First, an object may play the role of an *asset*. An asset has inherent value, although the value may be dierent for dierent users at dierent times and for dierent purposes. Some assets—photos, audio tracks, blog posts, comments—correspond to familiar objects in the physical world; others, especially those associated with security—certicates, permissions, capabilities, passwords, etc.—are more abstract. + +Second, an object may play the role of a *name*. Names are used to locate or identify other objects. Sometimes these named objects are physical: a social security number names a person; a serial number names a camera; a mailing address names a building. Sometimes they exist in the world but are not physical: a date names a day in the past or the future, and a product code names a product category (corresponding, for example, to all Roxbury russet apples). And sometimes they are virtual, and exist only inside a computer: an email address names an email account, a domain name names a server, a le system path names a le or folder. + +A name is usually intended to be unambiguous, pointing to exactly one object, but its interpretation will oen depend on context. A small company, for example, may name its members using rst name/last name combinations (until the day a second John Smith comes along). A name for one object may be used as a proxy name for another; it's common, for example, to use phone numbers as names for people, since almost everyone now has a unique mobile phone number. + +e third role of an object is as a simple *value*. Values, unlike assets and names, carry no meaning of their own; their meaning comes from their relationship to other objects. e number 80, for example, may be a person's age, or the temperature of water in a lake, or the number of hits a website has received in the last hour. + +Figuring out what role an object plays is an essential part of design, and prompts some immediate design questions. For an asset: Who owns it? Is privacy a concern? How would you search for it? For a name: What context is it interpreted in? Is it indeed unique? How long is it valid for? For a value: What does it describe? Does it have units? Can two dierent values be usefully compared? + +e same object can play dierent roles in dierent concepts. On the Hacker News website, users upvote and comment on posts that comprise no more than a link to a web page. For the *post* concept itself (and most other concepts of the site), a post is an *asset*; but to the *url* concept that provides the functionality of following links, a post is a *name*. + +Object mutability. A mutable object is one that changes over time. For such a notion to make sense, we need to distinguish the *identity* of the object from its *value*. (I'm using "value" here as it's conventionally used in programming, and not with the specialized meaning of "simple value" in the role classication just discussed.) To "change" means that the value associated with a given identity at one point in time diers from the value associated with the same identity at another point in time. + +Where exactly the identities lie, and which values are replaced, is usually a subtle question, and is determined more by choices of description than by any objective reality. Take, for example, an image in Photoshop that is comprised of some two-dimensional array of pixels. Suppose we apply an adjustment to the image that makes it appear darker. Did we change the value of the image itself, so that now it contains a dierent array of pixels? Did we keep the array but change which pixels it contains? Or did we keep both the array and its pixels, and change the values of the pixels themselves? An examination of the code might reveal which of these is correct from the perspective of the programmer. But for the user, it's hard to argue that one is more compelling than the other. + +Identities, by the way, are not the same as names. e relationship between an object's identity and its value is more like that between a box and its contents. A name allows you to *refer* to an object, and oen also to *nd* it. An identity, in contrast, merely allows you to *distinguish* one object from another. + +Since concepts communicate only by the synchronization of actions (as will be explained in Chapter 6), objects that are passed as arguments of actions are required to be immutable. If they were not, an action in one concept might mutate an object shared by another, leading to a hidden communication. is would open up the kinds of complications (such as aliasing) that plague programming languages and have led language designers to control if not eliminate mutability whenever possible. + +Within a concept, the user is free to interpret the concept state in terms of mutable objects. Such an interpretation is no more valid, however, than one in which all objects are immutable and changes involve only the relations between them. In our description of the *reservation* concept (Figure 4.7), for example, there is no explicit "reservation" object; instead, a reservation is represented as a tuple in the relation *reservations* from users to resources. + +Interpreted and uninterpreted types. e third and nal dimension along which objects can be classied is whether they are *interpreted* or not. Most of the objects involved in a concept are treated as if they were opaque. e concept behavior only recognizes equality: that is, whether an object held in one variable or state component is the same object as that held in another. + +For example, the *cancel(u,r)* action of the *reservation* concept (Figure 4.7), which cancels user *u*'s reservation of resource *r* compares the objects named *u* and *r* with the objects it stores in the *reservations* relation. From the action's point of view, users and resources could be anything so long as one user or resource can be distinguished from another. + +In contrast, consider a *rating* concept with an action *rate(i,n)* in which a user rates an item *i* with a number *n* (between 0 and 5, say). In this case, the item is uninterpreted, but the number *n* is interpreted as an integer, and contributes to the computation of the item's average rating. + +Why does this distinction maer? If the same type ows from one concept to another—by synchronization, as explained in Chapter 6—the two concepts will need to treat the objects of that type in a consistent way. For uninterpreted types, it's trivial; they must simply agree on which references to an object denote the same object and which do not. But for interpreted types, it's more challenging, because the two concepts must give the same interpretation to each object. If the + +shared object is a date in the form 050721, for example, the concepts would have to agree on whether this represents May 7 (following the typical American order of mm/dd) or July 5 (following the British order of dd/mm). + +e distinction between interpreted and uninterpreted types can be formalized in terms of *permutation invariance*. Each type *T* that appears in a concept description has some set *Objs(T)* of objects associated with it, comprising the objects that variables of that type can hold. e permutations of *T* are all the one-to-one functions from the set *Objs(T)* to itself. + +Applying a permutation *p* to an action instance *a (x 0 , x 1 , …)* in which argument *x 0* has type *T 0* , *x 1* has type *T 1* , etc., gives the instance *a (y 0 , y 1 , …)* in which *yi* is *p(xi )* if *Ti = T* and *xi* otherwise. Permutations are lied over traces and states in the obvious way. + +Now can we express the invariance property: a type *T* is uninterpreted in a concept *C* if, for every permutation *p* of *T*, and for every trace *t* of *C*, the permuted history *p(t)* is also a trace of *C*, and *state(p(t)) = p(state(t))*. + +For example, given this trace of the *reservation* concept and its associated end state + +``` + + available: {r0}, reservations: {} +applying the permutation that swaps resources r0 and r1 gives + + available: {r1}, reservations: {} +``` + +which is also a valid trace and end state. Since this invariance condition would hold for any permutation of *User* or *Resource* and for any trace, both types are uninterpreted. + +is is hardly surprising, since these types are generic type variables, so by de nition the concept can assume nothing about their objects. But a regular, non-generic type can be uninterpreted too. e *Task* type in the *todo* concept (Figure 6.2) is uninterpreted, for example, because the concept includes no functionality such as searching for tasks with given content, or checking spelling, which would require looking "inside" a task. + +To check whether a type is interpreted, one need only look at the operations performed on its objects in the state updates of the actions: if they include only the "logical" operations of sets and relations and equality comparisons, the type is uninterpreted. (Alfred Tarski, who invented the relational calculus that forms the basis of Alloy, characterized "logical notions" as being exactly those whose meaning is invariant over permutations of the universe [138].) + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-211-240/_page_24_Figure_1.jpeg) + +fig. E.4 *Data models for the style concept (le) and labels in Gmail (right).* + +### 45. e power of relations in data modeling. In dening a derived state component in the *style* concept (Figure 4.4), I wrote + +*format = assigned.defined* + +which says that the relation *format* is the relational composition or "join" of the relations *assigned* and *defined*. Such constraints can be given a nice diagrammatic interpretation (Figure E.4, le): the path comprising the arrow labeled *format* is equivalent to the path comprising the arrows labeled *assigned* and then *defined*. + +Or in words, more laboriously: to get the *Format* associated with an *Element*, you can either follow the *format* relation in one step, or you can get the associated *Style* by following the *assigned* relation in a rst step (geing the style assigned to that element), and then follow the *defined* relation in a second step (geing the format de ned by that style). e diagram also makes clear, incidentally, how the design exploits indirection: see *Concepts have rich states* in Note 48. + +inking of relations as arrows and paths in a graph is intuitive and helpful when you get the hang of it, and is reason alone to describe your data model in terms of relations (and to draw it as a diagram). Just looking at a data model diagram and considering how paths might be related is an easy way to discover possible constraints. Figure E.4 (right) shows a similar situation for labels in Gmail, in which a constraint of the same form applies (and turns out to be the source of some serious problems, as explained in Chapter 8). + +is style of modeling is the essence of Alloy [66], and was inspired by Z [136], which pioneered it. Most other notations do not support this kind of navigational thinking. In rst-order logic, you'd need quantiers: + +∀ *e: Element, f: Format | (format(e, f)* ⇔∃ *s: Style | style(e, s)* ∧ *defined(s, f))* + +In an object-oriented style, you might think you could write something like this: + +∀ *e: Element | e.format = e.assigned.defined* + +but it would be ill-formed because of the cases in which *e.assigned* is undened. A solution to this problem is to treat such an expression as denoting a *set* of values + +(which is empty when an element is not mapped), and to li navigations over sets. is is exactly what Alloy does, by treating the mappings as relations and the dot as relational join. + +- 46. Near misses aren't necessarily bad. Calling a concept a near miss doesn't mean that it's necessarily a bad design. e *style* concept brings some real complexity in the structure that must be maintained. Apple's color picker oers a system-wide palee, so a document in a particular application would need somehow to name this external palee, introducing a dependence that has its own liabilities. +- 47. Bad conict detection: an airline reservation example. A common feature in variants of the *reservation* concept is *conict detection*, in which users are prevented from making reservations that inherently conict, in order to prevent them from gaming the system and making reservations they're likely to cancel. + +Sometimes the conict rules get in the way of reasonable usage. My wife once wanted to y from Boston to Cincinnati on a Sunday morning for a wedding that aernoon, and to return home that night. A round-trip ticket wasn't available, but there were open ights in both directions. So she tried to make two reservations, one for the outgoing ight and one for the return ight. e airline's system wouldn't allow her to reserve both ights at once, and displayed a message saying that you couldn't take ights from two dierent cities on the same day! + +48. Concept characteristics. Because the main text only hints at some of the essential qualities and characteristics of concepts, I thought it might be helpful to elaborate these for readers wanting more detail. + +Concepts are inventive. When philosophers talk about concepts, they're usually referring to the way we categorize things that already exist in the world. us we use concepts like "dog" and "cat" to classify animals. In the early 18th century, Carl Linnaeus developed the taxonomy we still use today for classifying biological organisms, by dening concepts based on characteristics. Birds, for example, lay eggs, have feathers, have warm, dark blood, and "y in the air and sing." + +(Linnaeus's contribution was more the idea of classication than the classication itself. e *Ornithological Dictionary; Or, Alphabetical Synopsis of British Birds* of 1831 complained that his classication wasn't entirely accurate, noting that "more than two-thirds of the known species of birds *never sing*; and that many birds, such as the cassowary, the ostrich, and the penguin, *cannot y* for want of sucient wings.") + +In contrast, when we talk about the concepts of a soware app or service, we're referring to things that were themselves *invented*. ey might not have been invent- + +ed by the designers of the app, but they were invented by somebody at some time. Your tax preparation app didn't originate the concept of *social security number*. at concept was not just "out there" in the world along with dogs and cats, however. It was invented, in 1936, to keep track of the earnings of American workers for administering their benets under the new Social Security program. + +e *trash* concept was invented by Apple, and was a focus of its legal struggles with Microso and Hewle Packard. In the end, Apple lost its claim to ownership of the concept but retained the right to the name (which was why it was called the "recycle bin" in Windows). + +e *style* concept was invented by Larry Tesler and Tim Mo at Xerox PARC in the early 1970s. Styles were introduced in Bravo, the rst WYSIWYG document preparation system, developed at Xerox PARC in the early 1970s by a team led by Butler Lampson and Charles Simonyi. PARC's Larry Tesler and Tim Mo had visited Ginn, a traditional printer in Boston, to learn about how text was marked up, and conceived the idea of styles, which Simonyi subsequently included in Bravo, and then took to Microso, where he led the development of Word. + +e *reservation* concept appears to have been invented, at least for restaurants, in the 19th century, when big city restaurants began to oer advance bookings for both tables and private rooms. It's a fun game identifying concepts that are essential pieces of our social infrastructure and uncovering their origins. Alexis Madrigal, a writer for *e Atlantic*, researched the restaurant reservation, with help from historian Rebecca Spang. Why reservations took o only at the turn of the 20th century isn't clear, but seems to be related more to social changes that made restaurant dining more pervasive than to the advent of the telephone. (See: Alexis Madrigal, "Where restaurant reservations come from: A journey into the mysterious origins of the pre-arranged table." *e Atlantic*, July 23, 2014.) + +Concepts evolve. As the benets and limitations of concepts become clear over time, their designs evolve. Small improvements may accrue over years or even decades. e *style* concept was quite primitive when it rst appeared in the Bravo text editor at Xerox PARC. ere was a xed collection of built-in styles, and although users could adjust the formaing properties of a style, they could not create new styles. (is is actually the situation in the Google Docs app today.) e same restriction carried over to the rst version of Microso Word, but eventually the concept expanded to include user-dened styles, as well as stylesheets for packaging collections of styles. + +A nice example of a design improvement that took many years to come can be found in the *group* concept. Used in all drawing and layout programs, it allows the + +user to bind multiple objects together so they can subsequently be treated (in many respects) as a single object. For many years, however, the design had an annoying aw. If you grouped some objects together, and later wanted to make a slight adjustment to one of the constituent objects, you had no choice but to ungroup the objects, select and modify the object in question, and then regroup them. is was especially burdensome if there were many objects in the group, and if the group object itself had its own assigned properties (such as animation order) that were lost when ungrouped. + +About ten years ago, decades aer the introduction of the *group* concept, Apple designed a clever solution that has since become universal. A single click will select an object, and if the object belongs to a group, the entire group will be selected as a single object. A double click will select an object *within* a group, which can then be individually edited, essentially "opening" the group. A click on another object within the group will select that object; a click on an object outside the group, or on the background, will unselect the grouped object and "close" the group, leaving it in its previous state all but for the modications made to the constituent objects. + +Some concepts evolve in a dierent way, with their behavior responding to a changing purpose. Consider Facebook's *post* concept, for example. Initially, posts were limited to 160 characters. e limit was progressively extended, to 420 characters in March 2008; to 5,000 in September 2011; and then beyond 60,000 in November 2011, only two months later. e *post* concept thus morphed from providing a short message to supporting publishing of long articles—a very dierent purpose. Indeed, in advertising the latest limits, Facebook noted that a typical novel of 500,000 characters could be shared in 9 posts. + +is evolution of the *post* concept corresponded to a subtle but signicant change in Facebook's *profile* concept. When Facebook was rst deployed, the intent was that users would visit each other's prole pages, and look at the information and photos placed on them. Users notied each other of changes to their proles through *status update*s. ese status updates, which later came to be called posts, grew in size and signicance and became the content themselves. Now when you visit a Facebook user's prole, the main araction is no longer the *profile* but the *timeline*, which oers a chronological sequence of the user's posts. + +Concepts are purposive. Concepts have purposes; that's why they were invented. e purpose of *trash* is to allow undoing of deletions; the purpose of *style* is to help maintain consistent formaing; the purpose of *reservation* is to achieve ecient use of resources. + +If you can't identify a compelling purpose, you probably don't have a concept. is will mean that sometimes apparently central notions in a soware design turn out not to be concepts. e user of a system is not a concept; if there's data associated with users, it's probably there for concepts that have easily identiable purposes, such as *authentication* (identify users of a resource) and *account* (aggregate the transactions of a single user). + +Novices oen assume that entities that are important in the real world context of a design must be concepts. If you're designing a soware system for a bank, you might imagine that *bank* itself should be a concept. But you'd almost certainly be wrong. In your data model (and in the code of the system), there may well be *bank* objects. But the structures associated with these objects will likely be in support of other concepts. Most banks have an FDIC certicate number; this is a key identi er for the concept of *fdic insurance*. Likewise, a bank's ABA number is not an inherent property of the bank akin to the number of legs of an animal or the vintage of a wine; it's an identier that's assigned for a particular role, namely to support the concept of *interbank transfer*. + +Of course banks were invented for a purpose, but this purpose is not the reason for including the notion of a bank in the system. is is a rather subtle point. Just because something has a purpose in the world doesn't mean that it becomes a concept in a soware system that refers to it. Purposes become relevant only when they are also purposes in the soware design itself. So *reservation* is a concept in a restaurant reservation system not just because the concept has a purpose in the external world, but because the concept has the *same* purpose within the system. + +To see this distinction more clearly, imagine a system used by banks for managing loans. Clearly such a system will have concepts such as *loan* and *collateral*. But suppose that to determine whether someone is creditworthy the bank collects information about the real estate, bank accounts, and stocks that they hold. Would these be concepts? Almost certainly not. In a stock trading system, *stock* will almost certainly be a concept. But in the loan management system, the purpose of the *stock* concept is not relevant; a borrower's stocks or other holdings are just *assets* that are used to evaluate them. e behavior of stocks in support of their purpose is of no interest in this system; all that maers is that the borrower holds some property whose value uctuates with time. And so while *stock* would likely not be a relevant concept, *asset* would be; its purpose is for evaluating loan risk (and maybe also to act as collateral). + +e same object or collection of objects can thus be viewed as belonging to different concepts depending on the context. A stock holding may be an *equity* in a + +trading system and an *asset* in a lending system; a book may be a *publication* in a desktop publishing system and a *holding* in a library system. + +is is not a new idea. In the 1970s, the Turing Award winner Charles Bachman developed the *role model*, an extension to the network database model that augmented entities with "role segments." A role, according to Bachman, is a "behavior paern which may be assumed by entities of dierent kinds" [7]. Classifying things according to their *behavior* is likewise the essence of concepts. e idea of roles has appeared repeatedly in programming and soware development since then. It motivates the notion of cross-cuing types dened by their operations (such as Java's interfaces), and is the focus of an entire development method known as Object Oriented Role Analysis and Modeling (OOram) [128]. + +Concepts are behavioral. e concepts we've looked at have both static structure (in their state) and dynamic behavior (in their actions), but it's behavior that really denes a concept. To the user of the *trash* concept, the fact that the trash contains items is secondary to the more important fact that those items can be restored or permanently removed. To the user of the *style* concept, what maers is that if you change a style, all paragraphs that have been assigned that style are updated in concert; that the word processor must remember the style of each paragraph is just a prerequisite to this important behavior. And nally, the restaurant customer wants to be able to book a table, turn up and nd it available; that the restaurant chooses to use a reservation book is of no interest to the customer. + +is quality of concepts leads to a simple rule of thumb: if there's no behavior, there's no concept. If you're designing a photo editing app, you might be tempted to identify *pixel* as a concept. It's certainly a concept in the informal sense of the word. But what behavior is associated with pixels? Asking this question moves you towards the real design concepts. Perhaps the behavior is that you can take a photo comprising an array of pixels and edit it by making all the pixels darker or lighter; in that case, the concept might be *adjustment*. Or perhaps the behavior is that you can split a pixel into its constituent red, blue and green components, and edit just one of those components for all the pixels in the image; in that case, the concept might be *channel*. Or the behavior is building up an image by combining pixels from multiple overlapping pixel arrays; then the concept might be *layer*. + +Identifying behavior rst is useful from a design point of view because without behavior there's very lile to design. All the complexity of a soware app comes from its behavior. Suppose you're designing a photo library in which each photo has a collection of metadata elds that include camera seings, capture time, location, and so on. Storing and retrieving this metadata will obviously be import- \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-211-240/concepts-211-240_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-211-240/concepts-211-240_meta.json new file mode 100644 index 0000000..f80834b --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-211-240/concepts-211-240_meta.json @@ -0,0 +1,1874 @@ +{ + "table_of_contents": [ + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 156.97705078125, + 40.86962890625 + ], + [ + 295.9197082519531, + 40.86962890625 + ], + [ + 295.9197082519531, + 52.36962890625 + ], + [ + 156.11572265625, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 3: How Concepts Help", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 154.39306640625, + 486.1669921875 + ], + [ + 280.4147033691406, + 486.1669921875 + ], + [ + 280.4147033691406, + 499.7060089111328 + ], + [ + 153.53173828125, + 499.7060089111328 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9198303222656, + 40.86962890625 + ], + [ + 295.9198303222656, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.7680206298828, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9197082519531, + 40.86962890625 + ], + [ + 295.9197082519531, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.486328125, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 157.55751037597656, + 40.86962890625 + ], + [ + 295.91400146484375, + 40.86962890625 + ], + [ + 295.91400146484375, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 157.56320190429688, + 40.86962890625 + ], + [ + 295.9197082519531, + 40.86962890625 + ], + [ + 295.9197082519531, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 4: Concept Structure", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 157.623046875, + 500.150390625 + ], + [ + 277.2889099121094, + 498.849609375 + ], + [ + 277.2889099121094, + 513.7060089111328 + ], + [ + 157.623046875, + 513.7060089111328 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 156.97705078125, + 40.86962890625 + ], + [ + 295.919677734375, + 40.86962890625 + ], + [ + 295.919677734375, + 52.36962890625 + ], + [ + 156.11572265625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9198913574219, + 40.86962890625 + ], + [ + 295.9198913574219, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 157.55758666992188, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.7681121826172, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.91400146484375, + 40.86962890625 + ], + [ + 295.91400146484375, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.67041015625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 157.40771484375, + 40.86962890625 + ], + [ + 295.91400146484375, + 40.86962890625 + ], + [ + 295.91400146484375, + 52.36962890625 + ], + [ + 156.54638671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.7681121826172, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 157.40771484375, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.54638671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.7681121826172, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 157.40771484375, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.54638671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 156.76171875, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 155.900390625, + 52.36962890625 + ] + ] + }, + { + "title": "45. e power of relations in data modeling. In dening a derived state component \nin the style concept (Figure 4.4), I wrote", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 44.14306640625, + 196.0927734375 + ], + [ + 395.1000061035156, + 194.7919921875 + ], + [ + 395.1000061035156, + 221.519775390625 + ], + [ + 43.28173828125, + 221.519775390625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9198303222656, + 40.86962890625 + ], + [ + 295.9198303222656, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2378845214844, + 40.86962890625 + ], + [ + 276.2378845214844, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.91412353515625, + 40.86962890625 + ], + [ + 295.91412353515625, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 93 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 96 + ], + [ + "Line", + 37 + ], + [ + "ListItem", + 3 + ], + [ + "Text", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 87 + ], + [ + "Line", + 39 + ], + [ + "Text", + 4 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 78 + ], + [ + "Line", + 39 + ], + [ + "Text", + 4 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 95 + ], + [ + "Line", + 39 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 39 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 71 + ], + [ + "Line", + 38 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 85 + ], + [ + "Line", + 38 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 97 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 92 + ], + [ + "Line", + 38 + ], + [ + "Text", + 4 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 39 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 97 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 105 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 107 + ], + [ + "Line", + 37 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "Equation", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 89 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "Code", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 98 + ], + [ + "Line", + 39 + ], + [ + "Text", + 8 + ], + [ + "Code", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 142 + ], + [ + "Line", + 39 + ], + [ + "Text", + 8 + ], + [ + "Code", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 91 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "Code", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 114 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 93 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 116 + ], + [ + "Line", + 39 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 172 + ], + [ + "Line", + 51 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 1 + ], + [ + "Code", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 128 + ], + [ + "Line", + 39 + ], + [ + "Text", + 9 + ], + [ + "SectionHeader", + 2 + ], + [ + "Figure", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "FigureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 101 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 93 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 101 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 104 + ], + [ + "Line", + 39 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 98 + ], + [ + "Line", + 39 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-211-240" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-241-270/_page_27_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-241-270/_page_27_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..66e82ce9435c390db9ffc86f74274c270d9616ec GIT binary patch literal 27299 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[](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-241-270/_page_27_Picture_1.jpeg) + +fig. E.5 *e layer and mask concepts in Photoshop. I've created a layer to whiten the apple in the image; its associated mask ensures that the adjustment is applied only to the apple and not its surroundings (note the white spot in the mask corresponding to the apple).* + +colors, since the entire channel only corresponds to a single color. In short, a channel is a gray-scale image. + +Another concept in Photoshop is the *selection*, which allows you to select a collection of pixels, and then apply adjustments only to those pixels. What is unusual about this concept, and what distinguishes it from other variants of the *selection* concept (as used, for example, to select a subset of les or email messages for subsequent moving or deletion), is that the selection is not binary: a pixel can be partially selected. When an adjustment is applied, it is aenuated in proportion to the selection: applied in full to the pixels that are fully selected, not applied at all to pixels that are not selected, and applied in part to pixels in between. To make partial selections, the user can apply a brush, with each sweep of the brush increasing the degree of selection (using a feature called "ow"); they also arise naturally when the user denes a selection by drawing a boundary, along with a "feathering" option that produces so edges so that subsequent adjustments blend in. e essential point is that a selection assigns a value between 0% and 100% to each pixel, and this can be treated as a lightness value. In other words, a selection is a grayscale image. + +Photoshop's *layer* concept, which I highlighted in Chapter 3 as the concept that, more than any other, led to the product's success, allows you to apply an adjustment to an image in a non-destructive way. A collection of adjustments can be built as a stack of layers, and each layer can be turned on and o, activating and deactivating its adjustment. You can associate with each layer a *mask* that determines + +which pixels of the underlying image the adjustment is applied to (see [Figure E.5\)](#page-27-0). You can probably guess where this is going: the selection can be partial, and the mask is itself… a gray-scale image. + +e synergy of these concepts—the fact that channels, masks and selections are all gray-scale images—brings enormous power to the Photoshop user. As an example, suppose you wanted to lighten the skin in a portrait without aecting detail areas such as the eyes, hair, lips, etc. You could open a channel and apply the "nd edges" lter to it; this gives a gray-scale image in which the detail pixels are dark. You can now save this image into the copy buer, and paste it into the mask of a brightness adjustment layer. Don't worry if this seems complicated: it is. But it's what you need to understand to be a Photoshop guru. + +Synergistic composition, synchronized states and views. All the compositions I've described can be understood in terms of action synchronizations. For example, the composition of *channel* and *pixel array* in Photoshop synchronizes each edit of a channel with a corresponding edit of the associated pixel array, and vice versa. + +But in some of these examples, the net eect of the synchronization might be more easily understood as a synchronization of states. us in Photoshop there is an invariant that relates each color pixel to its corresponding gray-scale pixels in the channels; in the RGB case, for example, the lightness value of a pixel in the red channel is exactly the red value of the pixel in the color image. + +is suggests an alternative, or additional, form of synchronization, in which concepts are combined by constraints not on their actions but on their states. In this approach, concepts might be identied by projecting the full state of an app into components, and formulating invariants that relate them. In a word processor, for example, the state of a document might be broken into a text component comprising just the characters, and a formaing component that assigns a format to each character independently. More interestingly, a view of the document as a sequence of paragraphs might be separated from a view as a sequence of characters. Inserting a paragraph break adds a new paragraph in the former, but just adds a character in the laer—from an action synchronization perspective, a pinning together of the *add-paragraph* action in one and the *insert-character* action in the other. + +is kind of synchronization is related to view structuring, an active area of research in the past which sought to nd beer ways to modularize systems as overlapping views of a single state in specications [2, 153] and implementations [109]. In an early paper preguring these ideas about concept composition, I used text editing as an example, showing how breaking the specication into two views linked by an invariant makes it possible to write simple specs for actions such as in- + +serting a character and moving the cursor up or down, neither of which could be described easily in one canonical view [61]. + +- 72. Early design of the trash in Windows. Microso introduced the "Recycle Bin" in Windows 95, but, in contrast to Apple's trash, it was not able to store entire folders, and when a folder was deleted, it was disaggregated into individual les. If, however, the user selected for restoring the entire batch of les that had belonged to a folder, the folder was apparently restored with its contents. (See: [hps://en.wiki](https://en.wikipedia.org/wiki/Trash_(computing))[pedia.org/wiki/Trash\\_\(computing\)](https://en.wikipedia.org/wiki/Trash_(computing))) +- 73. More composition glitches: when emptying doesn't remove trashed items. Here's another example of a problem with the trash/folder synergy in macOS. Recall from our discussion of the *unix folder* concept (in Note 15) that an item can have more than one parent folder. Since this is the folder concept used in the Macintosh, it means that a le that has been trashed may remain in another folder. Emptying the trash will remove the le from the trash folder itself, but the le will not have been permanently deleted, and its space will not be reclaimable. + +is is an example of an integrity violation (Chapter 11), but it's not especially troublesome because it's not possible (in macOS) to put a le in two folders through the graphical user interface—you need to issue a Unix *ln* command in the console. at said, it is possible that some installed soware might come with les linked in two places, and to get rid of them you'd need to track them down in both. + +An unwise synergy in Outlook. Aempts at obtaining synergy can also miss the mark. In Outlook, Microso's email system, when synchronization between the email client and the message server fails, an error message is wrien to a log. To store this log and its messages, the designers of Outlook chose to use the existing structure of email folders and messages. + +is might have seemed to be a promising synergy between the *log* and *folder* concepts, since it allows the log to be manipulated using the existing tools available for email messages. But the decision created a ra of new problems. Users are surprised to see new mail folders spontaneously appear, and nd themselves confused by the large number of messages generated, and frustrated that they can't remove them. Some users have complained that they get into a situation in which their email client aempts to synchronize these error log folders with the server which fails, of course, because the folders were created as a result of synchronization not working correctly! And system administrators are frustrated because the error logs are generally kept only at the client, so they cannot access them to di- \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-241-270/concepts-241-270_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-241-270/concepts-241-270_meta.json new file mode 100644 index 0000000..2c3efca --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-241-270/concepts-241-270_meta.json @@ -0,0 +1,1835 @@ +{ + "table_of_contents": [ + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 157.55760192871094, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.919921875, + 40.86962890625 + ], + [ + 295.919921875, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 157.56329345703125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 5: Concept Purposes", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 147.15721130371094, + 501.1259765625 + ], + [ + 263.84283447265625, + 499.8251953125 + ], + [ + 263.84283447265625, + 513.7160034179688 + ], + [ + 147.15721130371094, + 513.7160034179688 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 157.55758666992188, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9142150878906, + 40.86962890625 + ], + [ + 295.9142150878906, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 156.97705078125, + 40.86962890625 + ], + [ + 295.9142150878906, + 40.86962890625 + ], + [ + 295.9142150878906, + 52.36962890625 + ], + [ + 156.11572265625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2378845214844, + 40.86962890625 + ], + [ + 276.2378845214844, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.76239013671875, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.7681884765625, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 6: Concept Composition", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 138.45849609375, + 291.69598388671875 + ], + [ + 272.3818359375, + 290.724609375 + ], + [ + 272.3818359375, + 303.6960144042969 + ], + [ + 138.45849609375, + 303.6960144042969 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 157.40771484375, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.54638671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 157.56338500976562, + 40.86962890625 + ], + [ + 295.9198913574219, + 40.86962890625 + ], + [ + 295.9198913574219, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.76800537109375, + 40.86962890625 + ], + [ + 276.2434997558594, + 40.86962890625 + ], + [ + 276.2434997558594, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 157.5634002685547, + 40.86962890625 + ], + [ + 295.9198913574219, + 40.86962890625 + ], + [ + 295.9198913574219, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 27, + "polygon": [ + [ + 152.76251220703125, + 40.86962890625 + ], + [ + 276.2380065917969, + 40.86962890625 + ], + [ + 276.2380065917969, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9141845703125, + 40.86962890625 + ], + [ + 295.9141845703125, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.76231384277344, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 91 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 39 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 115 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 85 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 82 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 87 + ], + [ + "Line", + 39 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 89 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 75 + ], + [ + "Line", + 37 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 73 + ], + [ + "Line", + 39 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 83 + ], + [ + "Line", + 38 + ], + [ + "Text", + 3 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 88 + ], + [ + "Line", + 37 + ], + [ + "Text", + 6 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 73 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 93 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 92 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 94 + ], + [ + "Line", + 38 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 77 + ], + [ + "Line", + 39 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 80 + ], + [ + "Line", + 38 + ], + [ + "Text", + 4 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 82 + ], + [ + "Line", + 37 + ], + [ + "Text", + 9 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 100 + ], + [ + "Line", + 38 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 2 + ], + [ + "Code", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 102 + ], + [ + "Line", + 38 + ], + [ + "Text", + 7 + ], + [ + "Code", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 123 + ], + [ + "Line", + 38 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 121 + ], + [ + "Line", + 39 + ], + [ + "Text", + 10 + ], + [ + "Code", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 89 + ], + [ + "Line", + 37 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "Equation", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 97 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 91 + ], + [ + "Line", + 37 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 89 + ], + [ + "Line", + 37 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 57 + ], + [ + "Line", + 27 + ], + [ + "Text", + 3 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "Reference", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 86 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 87 + ], + [ + "Line", + 37 + ], + [ + "Text", + 4 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-241-270" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_12_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_12_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d6666b09be05220bb5ea3deba210813241e522a8 GIT binary patch literal 28742 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 TRN4By=4Q~QIp|`>tn6;qOr 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_16_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_16_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7c9584bc6379a975fa5c75d78ce08cca7cc60127 GIT binary patch literal 62138 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 IY-`~E0SRsU*#H0l literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_25_Picture_1.jpeg b/raw/book/EssenceOfSoftware_Eng/concepts-271-300/_page_25_Picture_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4730094d8b181703dc1d7842d51e76ffbcb87684 GIT binary patch literal 30865 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

    XdvY~H; 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 literal 0 HcmV?d00001 diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-271-300/concepts-271-300.md b/raw/book/EssenceOfSoftware_Eng/concepts-271-300/concepts-271-300.md new file mode 100644 index 0000000..0aa524b --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-271-300/concepts-271-300.md @@ -0,0 +1,396 @@ +agnose problems between the client and server. (See: [hps://thoughtsofanidle](https://thoughtsofanidlemind.com/2012/08/29/outlook-sync-issue)[mind.com/2012/08/29/outlook-sync-issue\)](https://thoughtsofanidlemind.com/2012/08/29/outlook-sync-issue) + +Poor synergies are oen examples of a violation of the specicity principle (Chapter 9) in which a concept is *overloaded* with multiple purposes. In the Outlook example, the message *folder* is given a new purpose (storing synchronization logs) that is distinct from, and incompatible with, that of classifying messages. + +74. A Google mystery due to over-synchronization. I myself was a hapless victim of this strange synchronization aw. While I was working on this book, I wanted to experiment with Gmail to explore some design issues. So I created a couple of Gmail accounts for ctitious characters named Alice, Bob, and Carol. Sometime later, I noticed that my display name in all my Google apps (in Google Drive, Google Groups, etc.) had switched from Daniel to Alice. + +Eventually I gured out what had happened. I had inadvertently created one of the ctitious Gmail accounts in the context of my primary Google account. is had reset my username to "Alice Abalone"—a name that I once thought funny, but since becoming my ocial name in every professional context in which I used my Google account, was distinctly unamusing. + +Amazingly, the change was irreversible. Unable to undo it, I was forced to create a new Google account and switch all my memberships to it. is experience occurred in 2018; hopefully it's been xed since. + +75. Adobe reverts an update. is story highlights some of the dicult design tradeos the Lightroom team faced. While expert users were upset to lose some synchronizations, the developers had reasonably been concerned for less sophisticated users about the extra complexity of the preference seings that controlled the synchronizations. + +In a rather remarkable and humble blog post, Tom Hogarty, the head of the Lightroom development team wrote: "We plan to restore the old import experience in our next update… I'd like to personally apologize for the quality of the Lightroom 6.2 release we shipped on Monday. e simplication of the import experience was also handled poorly. Our customers, educators and research team have been clear on this topic: e import experience in Lightroom is daunting. It's a step that every customer must successfully take in order to use the product and overwhelming customers with every option in a single screen was not a tenable path forward. We made decisions on sensible defaults and placed many of the controls behind a seings panel. At the same time we removed some of our very low usage features to further reduce complexity and improve quality." + +Somewhat surprisingly, one of the most frequent and anguished complaints was that Adobe had eliminated the synchronization that allowed the ash card or external drive holding the source images to be ejected automatically when the import was complete. + +You might have imagined that this was not a major design issue. Aer all, a user could always eject the card manually in a couple of clicks. It turned out, however, that for many professional users this additional step made the task of uploading photos from a large number of cards feel more burdensome. Complainers also noted that automatically ejecting the card prevents accidental deletions from the card. is entire episode fascinated me: it was a very rare case of a company reverting a change, and an interesting illustration of how sensitive users can be to seemingly small design decisions. Lightroom also happens to be, in my view, one of the very best apps ever. + +It should be noted that the update also introduced a bug that was not resolved prior to release; the presence of this bug was also undoubtedly part of the reason for reverting the change. (See: [hps://blogs.adobe.com/lightroomjour](https://blogs.adobe.com/lightroomjournal/2015/10/lightroom-6-2release-update-and-apology.html)[nal/2015/10/lightroom-6-2-release-update-and-apology.html\)](https://blogs.adobe.com/lightroomjournal/2015/10/lightroom-6-2release-update-and-apology.html) + +- 76. Under-synchronization in Google Forms. e lack of synchronization between the visualization and the spreadsheet associated with a Google Form has caught me out a few times. I've oen created an anonymous survey, and included at the end an opportunity for responders to add a comment and an email address if they'd like a reply. e submied email addresses then appear in the summary visualization, compromising their anonymity, but removing them manually from the spreadsheet has no eect. I am thus prevented from sharing the summary with a community that submied data that was anonymous in every other respect. +- 77. Another synchronization issue in Zoom. e *zoom session* concept allows a single identier to be used for multiple conversations that occur at dierent times. e Zoom web portal synchronizes this concept with a conventional *calendar event*, so when you create a session, you are prompted to specify a date and time for it, or a recurring series of dates and times. is synchronization is more complicated than it seems, however. A *zoom session* may have a limit on the number of times it may recur, and will expire if the time between recurrences exceeds some bound. Confusingly, a session scheduled as a single event can recur just like a session scheduled as a recurring event, albeit with a shorter expiry (30 days rather than 365 days). Sessions scheduled as a one-time or recurring event can recur at most 50 times, unless they are scheduled as "recurring events with no xed time," in which case there is + +no limit. My guess is that this synchronization is designed to balance the resource cost of storing session identiers with the desire to give exibility to users, but I wonder if it might be accomplished in a simpler way (for example, by listing all unexpired sessions owned by a user in their prole, and encouraging them to delete the ones they do not intend to use again). + +78. Lessons from the erac-25. Nancy Leveson and Clark Turner provided a thorough account and analysis of the erac-25 accidents [92]. Shockingly, the synchronization aw that I described (and which is explained more fully in the paper) was not discovered aer the rst accident, which was aributed instead to a hardware glitch; the failure to investigate the accident properly led to multiple additional accidents before it was nally diagnosed correctly. + +Leveson and Turner rightly note that accidents like this happen due to a complex web of missteps, and that it is naive to imagine that soware will ever be free of bugs. Nevertheless, the synchronization aw was indeed the proximate cause of the accidents. e only path to safety (or security) for soware-intensive systems runs through simplicity of design, which means using robust concepts whose mis ts are well understood (see "Concepts Ensure Safety and Security" in Chapter 3; "Mists: When Purposes Aren't Fullled" in Chapter 5; and Notes 60 and 61). + +## *Chapter 7: Concept Dependence* + +79. New concepts must address real problems. To counter the tendency to complicate a design with unnecessary concepts, each time you are tempted to add a new concept, a good question to ask is: what problem with the existing design does this new concept solve? + +Here are two examples. Netix added the *profile* concept to its movie-viewing app in 2013, six years aer it began online streaming. e problem was straightforward. Dierent family members watched dierent movies on the same account, which messed up both recommendations (since my recommendations were based on your prior selections) and placemarks (since my watching a movie cleared the memory that you'd watched only half of it). e *profile* concept nicely solves all these problems by giving each family member essentially their own account contained in one larger account for billing purposes. + +e Netix prole concept is really just a second instantiation of the *user* concept in the same app, and thus an example of synergy. Proles even include a rudimentary form of authentication: the account owner can add a PIN to control access to a prole. is allows the proles to be used also for parental control of a child's viewing, by limiting a prole to movies with certain ratings. Apparently, customers + +also use proles as roles: dening, for example, a "documentary" prole and a "date night" prole to keep movie lists and recommendations separate. + +Apple's slide presentation app, Keynote, added the *style* concept about ten years aer the rst release. Keynote already had a *master* concept that allows you to create master slides that dene the styling of a slide's heading, text levels, etc., so a *style* concept might seem unnecessary. Presumably this is why Microso PowerPoint still has no *style* concept. In fact, though, the *master* concept is insucient. It won't let you dene a style for things like quotations (which don't occupy a xed level in a master slide) or indeed any text that appears outside the text body of a master slide; nor does it allow you to maintain consistency across masters (e.g., with a single heading style). + +- 80. An example of concept as dierentiator. e *identification* concept is what I called a *dierentiator* in Chapter 3: a novel concept that the designer hopes will not only be the linchpin of the product but will also dierentiate it from competitors. As I noted there, the dierentiator may be a technological tour de force: examples are Adobe Photoshop's *layer* concept (which allows non-destructive editing of images), Google Slides's *auto caption* (which generates remarkably accurate captioning on the y), and WhatsApp's *call* (which gives users free phone calls that require little enough bandwidth that they can run over cellular networks). But dierentiators can also be, like our *identification* concept, neither especially subtle nor technologically complex—consider the Tiktok app, for example, whose very successful dierentiator is the simple *shared song* concept, which allows users to create videos based on the soundtracks of other users' videos. +- 81. Parnas's dependence diagram. My dependence diagram is inspired by the work of David Parnas, but diers from it in some key respects. e original idea of dependencies was introduced by Parnas in his seminal paper "Designing soware for ease of extension and contraction" [116], where he calls it the "uses relation." + +e dependencies are *dened* by the code itself, so whether *A* depends on *B* is determined by how *A* is wrien (and whether, for example, it includes a call to *B*). Roughly, *A* depends on *B* if the correct execution of *A* relies on the correct execution of *B*. e consistent subsets that dene the product line then *follow* from this denition, because if *A* relies on *B*, a subset that includes *A* but not *B* will simply not execute properly. + +Parnas's proposed strategy is to design the code to have the desired impact in the product line. His methodological principle is this: you should design *A* to use + +*B* only if you can't imagine a subset that includes *A* but not *B*, and furthermore, the use of *B* should make *A* easier to build. + +Rening Parnas's dependencies. In an early paper of mine, I explained why conventional notions of dependence are not sucient and may not even make sense [63]. Parnas, to his credit, had foreseen many of these issues, and notes in his original paper, for example, that *A* calling *B* is neither necessary nor sucient for *A* depending on *B*. But despite widespread use of the idea of dependencies, these issues have never been fully resolved. More recently, Jimmy Koppel and I proposed a new model of dependence [84] that overcomes some of the problems I raised there (and more), basing the notion of dependence on counterfactual causality. + +Concept dependencies vs. code dependencies. Concept dependencies are similar to Parnas dependencies in dening possible subsets, so that the concept dependence diagram (like Parnas's uses relation) characterizes not one application but an entire family. + +But concept dependencies dier in a key respect. Concepts are always freestanding and never rely on other concepts for their correct operation. Whereas a code module's dependence is induced by its inherent nature—namely the code inside it, and the calls it makes to other modules—a concept's dependence is a result only of the context of usage. + +Concept dependencies are thus more subjective, and embody the designer's assumptions about what makes a consistent app. For the bird song app, maybe *you* thought it was preposterous to even consider an app with questions and answers but without user authentication. In that case, *your* dependence diagram would include not only a dependence of *user* on *q&a*, but also a dependence of *q&a* on *user*, ensuring that any app regarded as consistent include both concepts. + +is freedom to use dependencies as a way to express design options comes from the fact that the connections between concepts are expressed in a synchronization when the concepts are composed, and not in the concepts themselves. It also means that removing a concept that is not needed for consistency may involve an adjustment to the synchronizations; for Parnas, in contrast, a module on which a subset does not depend can (theoretically) be simply deleted, and the subset recompiled without it. + +In summary: for Parnas, the subsets *follow* from a more basic notion of dependence; for concepts, the subsets *dene* dependence. + +Does object-orientation violate the dependence principle? Parnas's methodological principle (see above) is oen violated. Worse, these violations may be in- + +herent to the way we program, especially in object-oriented code: our most common and familiar idioms seem even to militate *against* Parnas's principle. + +Imagine that you're implementing a forum that includes a *post* concept and a *comment* concept, in a language like Java. What would be the standard object-oriented way to implement these concepts? You'd have *Post* and *Comment* classes, with the *Post* class oering methods such as *addComment* and *getComments*. is would induce a dependence (in Parnas's terms) of *Post* on *Comment*. + +Now consider the subsets that you'd like your codebase to support. Obviously, it makes sense to have posts without comments, but not to have comments without posts. So the dependence diagram *should* show a dependence of *Comment* on *Post*—just as the concept dependence diagram would show a dependence of the *comment* concept on the *post* concept. So the dependence is the wrong way round, and object-oriented programming seems to have led us to a structure that's upside-down. + +How did this happen? e root of this problem is that object-oriented programs are usually structured around control ow. Because the user interface will need to nd the comments associated with a post when the post is displayed—and oer a buon next to a post to add a comment—it is natural to want to include commenting functionality inside the *Post* class. + +In fact, the principles of object-oriented programming make it hard to do anything else. We could give the *Comment* class an internal table that maps posts to comments to support a method like *getComments*, but this time inside *Comment* rather than *Post*, so it would take a post as an argument. Such a table would violate the o-quoted rule that static state is inimical to object orientation, and classes should not have static components. Another option might be to create a separate class, *Forum* say, that contains tables mapping posts to comments and vice versa. Using such a class would violate other object-oriented principles, however. For example, the fact that a method would need to call a method of *Forum* to obtain a list of comments on a post, and then call their methods to display them, would violate the Law of Demeter [94]. + +is suggests to me that new programming idioms are needed in which concepts are supported in a more direct and modular fashion in the code. It's not just about dependencies, but also about how the code is organized. Note that in the rst object-oriented idiom that I suggested—the naive one that every novice would use, in which *Post* has an *addComment* method—the implementation of the *comment* concept is unfortunately split across classes, since the *Post* class includes the mapping between posts and comments, a structure that belongs to the *comment* + +concept and not to the *post* concept. A code structure more faithful to the concept design would instead isolate each concept within its own module. + +- 82. Dependencies emerge from detailed design. Dependencies rely on quite deep knowledge of the design. In BirdSong 0.1, it's possible that the individual identi cations could be upvoted: maybe if an answer said "at's an #american-goldnch or a #lesser-goldnch" users could upvote the two identication tags separately. Or maybe users could also upvote recordings just to say they like them. If so, these would produce additional dependencies (of *upvote* on *recording* and *identification* too). +- 83. A note about primary and secondary dependencies. A subset might still form a consistent app if a secondary dependence (a doed edge) points out of the subset, or if a primary dependence (a solid edge) points out but a secondary dependence is included. + +is reects the following interpretation of dependencies: each concept depends on *all* of the primary dependees, or on any one of the secondary dependees. A richer notation would let you express fully general dependencies: that a concept depends on a set *C* of sets of concepts *Ci* , with the dependence satised if whenever the concept is included there is at least a set of concepts that covers one of the *Ci* . (is corresponds to a disjunctive normal form, and could express any logical combination of dependencies.) + +Feature diagrams. A feature diagram [76] is usually an and/or tree showing the features of a product family, and the combinations that are legal. In terms of specifying combinations, it's comparable to this richer notation (and thus more expressive than my basic diagram). But it doesn't express dependencies directly, so it's less useful from a design point of view. + +84. Facebook's concepts. e dependence diagram simplies the concepts of Facebook and their relationships. e *friend* concept has a second purpose, namely to lter which posts a user sees; this is technically an overloading (as explained in Chapter 9). + +In Facebook, you can *tag* a photo to say who's in it (a feature introduced in December 2005), but you can also tag a post or a comment (September 2009). To simplify, I've le the *photo* concept out of the diagram. + +Facebook introduced the *reply* concept in March 2013. Previously, a user could not respond to a comment without adding another comment at the end of the comment list, losing context. Replies introduced threading, so that users could respond directly to a comment. Arguably, *reply* was not a distinct concept from *comment*, but rather an enrichment of the *comment* concept to allow comments not only + +on posts but also on comments. To represent this in the diagram, we could just give *reply* the new name *threaded comment*, and remove its dependence on *comment*, making it clear that a subset could choose one of the two options: at comments or threaded comments. + +e *like* concept was introduced in February 2009, ve years aer Facebook's debut. It's now hard to imagine any social media app without an *upvote* or *like* or *reaction* concept, since these concepts are so central to two insidious aspects of the platforms: the psychological stimulus of small rewards that has addictive eect on users, and the value that the platform owner derives from extracting personal information from user preferences. + +85. A paradox in Safari's concepts. e *private browsing* concept is a bit of a paradox at rst sight, but not that puzzling once you understand concept dependencies. It depends on the *cookie*, because if there were no cookies, there would be no need for a concept of private browsing! at is, a subset with *private browsing* but not *cookie* would make no sense. But its very essence is that when private browsing is enabled (in Safari, by opening a private window), cookies aren't used! + +Why Safari needs more synergy. My proposed synergy would produce a structure in which *favorite*, *frequently visited* and *reading list* all depend on *bookmark* and are seen as extensions of its functionality, and not independent variants. e *favorite* concept is already largely synergistic: favorites are just a predened folder within the bookmark collection. e others, however, are largely disjoint. So you can't organize your reading list into folders, for example—that's a bookmark feature, not a reading list feature—and you can't save regular bookmarks for oine reading. As evidence of the confusion that all these related but incomparable concepts produces, I would point to the many articles online that explain the subtle dierences between them. + +86. Keynote's concepts. Keynote actually oers a *character style* concept as well as a *paragraph style* concept. e *shape style* of a shape seems to also store the *paragraph style* of its rst paragraph. + +e choice of which dependence is primary is sometimes a bit arbitrary. For example, *animation* is given a primary dependence on *special block* because animations are most oen used to play the bulleted points in a *special block*. A richer diagrammatic notation that allows multiple dependence sets (without prioritization) could be easily devised but the complexity seems unwarranted (see Note 83). + +Two aspects of Keynote's design seem to indicate unresolved design challenges. One is that the *transition* concept, which governs transitions between slides, is dis- + +tinct from the *animation* concept, leading to some confusion especially when transitions also animate objects (as in the "magic move" transition), and when the presentation is played automatically. e other troublesome aspect revolves around the *special block* concept, which allows paragraphs to be organized in a hierarchy of levels, but is restricted in various ad hoc ways: there can be only one special "body" block on a slide (and regular text blocks cannot have levels), and special blocks can't be grouped. e rationale for these constraints, I believe, is to allow the text in special blocks to be entered in outline mode. In other words, the *special block* concept only makes sense because of the *outline* concept (and thus depends on it). + +## *Chapter 8: Concept Mapping* + +87. Dark paerns. Harry Brignull, a British user experience designer, coined the term "dark paerns" in 2010 for the recurring motifs that websites employ to deceive their users [15]. Most dark paerns involve mapping of concepts to user interfaces. e "Roach Motel" paern, for example, makes it easy to sign up for something (such as a subscription with a free-trial period) but hard to cancel it. + +Usually, the underlying concepts themselves are not implicated. I'm curious to explore, however, whether there are concepts that are themselves designed with ill intent. I have yet to nd a convincing example of such a "dark concept" that is used by legitimate companies. But in the security domain, many aacks (such as phishing, cross-site request forgery, injection, and cross-site scripting) might be regarded as dark concepts. + +88. Label mapping in Gmail. One workaround to the *label* mapping problem in Gmail is simply to switch o the *conversation* view (via a toggle in the preferences). is is not very satisfying, because then you lose the advantage of the conversation structuring. + +In its current design, Gmail shows some messages as collapsed and some as expanded. Initially I hoped this might correspond to which messages have the queried label. But this feature seems to be used in multiple, inconsistent ways including showing the most recent message, showing messages that have been recently modied (e.g., by being starred), and, in the case of the sent message lter, showing messages with that particular label. + +Apple Mail has similar issues in the interaction between its *conversation* concept and its *folder* concept. But its conversation seing can be turned on and o on a folder-by-folder basis. By default, conversations are turned *on* for the inbox and *o* for the sent messages folder, so when you ask to see sent messages, that's all you see. is solution would not work in Gmail because it would not generalize to l- + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-271-300/_page_9_Picture_1.jpeg) + +fig. E.6 *Trepanning: a metaphor for small design aws? (om Hieronymus Bosch,* e Extraction of the Stone of Madness*).* + +tering on label combinations. (e designers of Gmail have tried to combine the advantages of labels and folders by using label actions to emulate folder actions [129], but this example illustrates one of the limitations of that approach.) + +89. Small design aws as symptoms of greater pain. A skeptic might complain that many of the design aws that I discuss in this book are relatively minor. In response, I would note rst that limiting my corpus of examples to major products from leading companies introduces a selection bias, and a larger sample that included products earlier in their development, and products from less capable companies, would reveal larger problems. + +I also suspect that many of the design aws I have discussed, while seemingly small to the onlooker, might have caused considerable pain to the developers who had to deal with the complications they produced in the code. Some of these aws are thus like trepanning holes, which appear as small defects in exhumed skulls, but are reminders of the pain suered during their formation (Figure E.6). + +90. Beer Backblaze strategies. ere are more ecient ways to search for old les. Instead of looking back one day at a time, you could do a binary search. Say you want to nd the latest version of a le before a corruption occurred, and you know the corruption happened sometime between January 1 and March 1. You'd pick February 1 rst; then if that version is corrupted, you'd try January 15; if that version is uncorrupted, you'd try February 15 in the hope of nding a later version. + +is would reduce your search from 60 to six steps. You might also exploit the le modication date. If the backup of February 1 shows a modication date of January 5, say, there's no point checking January 15; you might as well check January 5 next. + +- 91. Flags versus labels. e *flag* and *label* concepts are similar. Flags are usually predened, and mutually exclusive (a maximum of one ag per item). e same ltering conundrum that I describe for ags applies to labels, and indeed, to any concept that involves ltering items by mutable properties. +- 92. e live ltering conundrum in Lightroom. e seemingly obvious mapping for a ltered list of items—in which exactly the items satisfying the lter are displayed—is used in Adobe Lightroom Classic. e usability problems that follow provide a nice case study in the challenges of mapping design. + +In Lightroom, a very powerful ltering bar lets you select photos that have been labeled or agged in various ways, or whose metadata has certain properties, such as including particular keywords, or having been converted to black-andwhite. Some of these properties are xed—for example, the metadata properties that identify the camera or the shooting parameters such as aperture and shuer speed—but most of them can be modied by the user. Adopting the simpler form of mapping, namely maintaining the lter results so they always correspond to the lter seing, even as the items are modied, has some unfortunate consequences. + +Here are two examples. Suppose you lter a set of photos to show only those that have been converted to black-and-white. You select one of them from the grid of thumbnails, and, intending to explore dierent renderings of the image, you open it in "develop mode." If you exit develop mode, you'll return to the thumbnail view, with the photo still selected. e photo being edited is thus always the currently selected image in the collection. + +Now, with the photo open in develop mode, you can adjust the tonality, crop the image, and so on. But suppose you select the option to switch the image to color rather than black-and-white. Lightroom permits this adjustment, but now the photo no longer satises the criterion for membership in the collection. Not only is the photo instantly removed from the collection (invisibly, since you're still in develop mode), but to maintain the invariant that the photo being edited is always the selected photo in the collection, the develop window suddenly goes blank and displays the message "no photo selected." is is disconcerting and extremely inconvenient: you can't change it back to black-and-white because you're no longer even editing the image! Lightroom's wonderful undo facility can rescue you from this state, although interestingly only by returning you to the thumbnail mode. + +at example illustrates a problematic interaction when the user makes a mistake (albeit one that is very easy to make). My second example arises in the context of a task that I oen want to perform, and for which, due to this design, I needed to invent a workaround. In Lightroom, you can aach keywords to your images. I do this to identify people in pictures. A common task I want to perform is to check a particular keyword, or perhaps replace it by another one. So let's suppose I keyworded images of my daughter with the keyword "Rebecca" but I want to replace it by the keyword "Becca." So I lter for images carrying the rst (old) keyword; to these, I then add the second (new) keyword in bulk. So far so good. en I remove the old keyword, and all the images disappear, because they no longer carry the keyword of the lter. is is a serious problem, because I want to complete the task by saving the keyword edits in all these photos to their les on disk. Now, without the photos selected, I cannot execute the save command. + +(e workaround, incidentally, is to rst lter the photos on the required keyword; then to select all; then to turn o the lter, revealing a larger collection in which the relevant photos are still selected. Now they can be edited in bulk without any disappearing as their keywords are changed.) + +Following Apple's design of marking the items in the original ltering with their properties would not work here, since the ltering is more sophisticated (allowing multiple properties to be combined). A solution might be to gray out photos that no longer match the lter aer they have been edited. e user could then easily see which photos satisfy the lter, but can still select those that do not. + +93. e selection concept and singleton actions. A similar problem arises with the *selection* concept, which allows a user to select multiple items and then apply an action to them all in aggregate. is is used, for example, in desktop le managers like the macOS Finder, in which you can select multiple les and then delete them all with one click. If there is an action that can only be applied to a single item, invoking that action when more than one item has been selected is problematic. + +One solution is simply to block such actions; the Finder does this if you select two les and then try to apply the *rename* action. Another solution is for the selection to mark, in addition to the set of items selected, a single item (within the selected set) that will be the target of such actions. In Lightroom, for example, when you select multiple thumbnails, one of them is highlighted with a slightly brighter frame, and there are user interface actions to cycle through the selection, changing which thumbnail plays this role. is approach could be used to resolve the Lightroom collection-deletion ambiguity problem: when you select multiple col- + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-271-300/_page_12_Picture_1.jpeg) + +fig. E.7 *What's the dierence between labels and categories? Gmail help isn't too helpful.* + +lections, one of them would be distinguished. But this solution seems to me to be overkill in this case, and likely to be confusing to users. + +## *Chapter 9: Concept Specicity* + +- 94. Google's inadvertent humor. Seeking to understand the dierence between labels and categories in Gmail, I looked up "labels" in Google's help documentation. e article began "Labels help you organize your messages into categories…" (Figure E.7). +- 95. Why Zoom has a redundant concept. Why would Zoom's developers have gone to the trouble of creating an extra concept (*broadcast*) rather than extending an existing one (*chat*)? My hypothesis is that, rather than aempting to integrate the *breakout* concept fully into the app, its engineers opted for a quick-and-dirty solution in which each breakout room is treated as a separate Zoom call. is would explain why "everyone" in the chat of a breakout room refers to only the participants in that room, and why the chat messages of a breakout room are lost when the breakout room is closed. +- 96. Apparent redundancy due to distinct purposes. An apparent redundancy between two concepts may disappear on closer examination, turning out to be a re ection of a genuine dierence in purposes. In Adobe Lightroom Classic, the *flag* and *star* concepts appear at rst to serve the same purpose: they both let you assign some measure of approval to a photo, and then to lter accordingly. + +In fact, however, the two concepts serve dierent purposes. ere are two ag types, "pick" and "rejected," and a dedicated action for deleting all rejected photos. Flags are not saved to the metadata in the photo le itself, so they are intended only + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-271-300/_page_13_Picture_1.jpeg) + +fig. E.8 *Nail clippers: with function sharing (le) and without (right) (om [145]).* + +for temporary use. Stars, on the other hand, range from zero to ve, oer actions to increase and decrease, and can be saved to les. + +ese dierences are consistent with the dierent purposes of the two concepts. e *flag* concept is for selecting and rejecting images as a precursor to deletion; the *star* concept is for rating images that remain, along with their stars, stored over a longer period. + +In an earlier version of Lightroom, ags were collection-specic, so you could have separate collections for printing and web display (for example), with dierent photos agged in each. I suspect that Lightroom's developers dropped this useful feature because it was confusing to some users. + +- 97. Concepts in the New Testament. e Gospel of Mahew seems to have preempted the principle that a concept cannot fulll two purposes: "No one can serve two masters. Either you will hate the one and love the other, or you will be devoted to the one and despise the other." [Mahew 6:24] +- 98. Overloading in mechanical design. In the design of mechanical systems, it is common to design a single component to have multiple purposes. e sheet metal body of a car not only provides structural support, but also keeps the weather out, and provides an aerodynamic prole. It also acts as the electrical ground for the car. + +Karl Uhrich imagined what a nail clipper would look like if no single component was allowed to provide multiple functions, in contrast to the conventional design in which a single metal strip acts both as a spring (through bending) and a cutter (through its sharpened edge) (Figure E.8). + +Mechanical designs, in other words, seem to revel in overloading. But soware is dierent. Overloading can be benecial for mechanical designs because it simplies the design, saves manufacturing costs, and by reducing size and weight, may lead to beer performance. For soware, no such considerations apply; two orthogonal concepts are easier to understand than a single concept that serves in- + +compatible purposes, and there is no cost in performance or complexity to a few extra lines of code. + +Even in mechanical engineering, overloading can be problematic, and it is advantageous to ensure that dierent purposes are separated into separately controllable design parameters. *Axiomatic design* [137] is a theory of mechanical design that aims to produce more malleable designs, by ensuring that a change in one functional requirement never requires a change to a design parameter that also in uences another functional requirement. + +99. Overloading in social concepts. Some of the principles of concept design seem to apply not only to soware but also to concepts that are executed by people that is to social structures and policies. I've noticed that overloading by false convergence seems to cause problems particularly in policies related to evaluation and feedback. + +Many academic departments (including my own) assign mentors to junior faculty. e mentor is supposed to give encouragement, advice and moral support. When it comes time to consider promotion, the mentor is oen one of the rst people asked to comment on the case—on the grounds that they have greater knowledge of the candidate's achievements. + +By playing these two roles, however, the mentor is put in an untenable position. What if the candidate has revealed inadequacies and concerns that negatively color the mentor's assessment of whether the promotion should go ahead? ere is a basic conict of interest here, which could be eliminated by excluding the mentor from any promotion decisions, or at least instructing the mentor to act, during promotion discussions, only with the interests of the candidate in mind. + +In other words, there are two distinct purposes here—providing support and advice on the one hand and helping to assess the candidate on the other—and they are mutually incompatible. Two dierent roles are needed to serve the two purposes. + +e same conict between assessment and guidance arises in the concept of *review* that conferences use to respond to paper submissions. One purpose of a review is to provide helpful feedback to the author of a paper. A quite dierent purpose is to decide which papers should appear at the conference. A reviewer cannot satisfy both at once. Even if you rate a paper highly, and would like it to be accepted, if you make constructive suggestions pointing out ways in which the paper might be improved, you run the risk of other commiee members using these suggestions as reasons to reject the paper. + +To expose such false convergences, you need a clear articulation of the purpose. If the purpose of a submission review is to "review the paper" (merely repeating the name of the concept) or to "solicit expert advice" (which has no value in itself), the issue won't arise. You need to articulate honest and straightforward purposes such as "choose which papers to accept" and "give helpful feedback to authors" to make these conicts apparent. + +Another example of overloading in social seings is provided by Kieran Egan whose pedagogical theory [37] starts from the observation that the three conventional purposes of education—socializing students to prevailing norms, teaching them to seek higher truths and transcend prejudices, and helping them fulll their own personal potential—are fundamentally incompatible. Egan insinuates, more generally, that the success of any social institution may rest on the degree to which its purposes are aligned. Prisons, for example, are problematic because their purposes—punishment and rehabilitation—are in direct opposition, and achieving one can only come at the expense of the other. + +100. More on Epson's overloading. You might think that the overloading in Epson's printer driver that binds the *paper feed* seing to the *paper size* is mitigated by the ability to choose the paper feed in the printer dialog itself. + +is is in fact possible, but the Epson driver won't let you pick a value that is incompatible with the value in the paper size seing. Needless to say, this confuses many users, who don't realize that their paper size selection determined the feed choice and are then puzzled that their preferred feed option is grayed out in the dialog. e overloading aw is thus exacerbated by Epson's excessive conservatism in saving the user from errors (explained in the *Over Synchronization* section of Chapter 6). + +101. Overloading in Photoshop's cropping function. For photography acionados, here's a richer example of overloading that was eventually xed by Adobe. + +Adobe Photoshop has a *cropping* concept. Its purpose is to allow you to trim the edges o an image so you can remove unwanted parts of a photograph. e operational principle is: you create a cropping frame within the image whose dimensions and position you can adjust; then if you issue the crop command, the pixels outside the frame are removed. + +Or at least that is the operational principle in the current version of the app. Until a few years ago, cropping in Photoshop was much more complicated than this. Let's look in particular at one part of the user interface (Figure E.9). + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-271-300/_page_16_Picture_1.jpeg) + +fig. E.9 *Cropping in Photoshop CS5.* + +Notice that there are elds in which you can enter a width and height for the cropping frame. is supports an important feature: the ability to maintain a xed aspect ratio. If you want to print on paper of a certain shape, or you want to maintain consistency between the images in a portfolio, you might want your image to conform to a particular aspect ratio—such as 2×3. + +By using the width and height elds, you can set a xed aspect ratio. As you now adjust the cropping frame, the aspect ratio will be maintained. If you look carefully at these elds, however, you'll notice that the values that are entered include not only the numbers but also the *units*. In this example, the units are set to inches, so what I've actually specied is not 6×4 but 6 *in*×4*in*. + +Cropping now has two, independent consequences. One is that you remove the pixels outside the cropping frame. e other is that the new image will be resized to have the given dimensions. If the photo was not 6 *in*×4 *in* before, it will be aerwards. at will aect the default printing size in many applications. + +But wait, there's yet more complexity! If a resolution is specied in the dialog, the cropping action will preserve the resolution of the le. Since the dimensions in inches are being changed, and the resolution is xed, that means that there will have to be a change in the number of pixels, by either upsampling or downsampling the image. + +Suppose the image were 6 *in*×4 *in* to start with, and 200 pixels per inch. en the image had 800×1200 = 960,000 pixels. If I crop away half of the image, half the original pixels will be removed. But if both the dimensions and the resolution are to be maintained, the overall pixel count cannot change, so the image will need to be resampled. + +One rather surprising consequence of this is that if you dene the cropping frame to include the entire image—that is, with no pixels outside the frame—the cropping action may still modify the le! + +e problem here is that there is a separate concept of *resampling* which has been piggybacked onto the *cropping* concept. e result is not only a confusingly complicated interface for non-experts, but also the strange inability to set a xed aspect ratio without modifying the image dimensions. + +is design aw was xed in Adobe Photoshop CS6 (2012) by teasing apart the two concepts. e features of the *resampling* concept no longer appear in the dialog for *cropping*, and there is a new aspect ratio option that allows you to set the aspect ratio in dimensionless units. + +102. Recommendation, upvote, and karma concepts. In my analysis of the Facebook *like* concept, I identied the *recommendation* concept and not the *upvote* concept as serving the purpose of curating your newsfeed. e *upvote* concept aggregates approvals and disapprovals of an item to rank that particular item; this is how newspapers sort reader comments, and forums such as Reddit and Hacker News highlight the most popular posts. e *recommendation* concept, in contrast, uses approvals of items in the past to predict the relevance of items in the future. It is related to the concept of *karma*, in which posts in a public forum are ranked according to the reputation of the contributor, measured by aggregating ratings of their prior contributions. + +Would my Facebook solution really work? I suggested that the Facebook *like* concept be split up so that the user has separate control over sending reactions and curating their feed. In Facebook's case, I actually doubt this would help, because the curation algorithm is so opaque that Facebook users don't have any understanding of how posts are selected and ordered in their newsfeed, so they would be unlikely to take the extra trouble of providing separate information for that purpose. Perhaps in a new platform that is more commied to the interests of the user, and less driven by advertising (if such a thing were possible), this division would be useful. I will note also in its defense that it could be mapped to two clicks—one to select + +the emotional reaction and one for thumbs up or down—which is no more than the Facebook design currently takes. + +A design problem with the upvote concept. e *upvote* concept suers from an overloading problem in many cases, since it is oen used to *signal* support or antagonism. is purpose is in conict with the purpose of obtaining accurate measures of approval, but I don't know of any concept split to resolve it, assuming that the vote tally must be public. e problem, by the way, is related to a problem that arises in student evaluations of teachers, in which a small number of angry students submit an articially low rating in order to bring down a teacher's overall average. In my own experience, such cases can be spoed in the response data because such students give the lowest possible rating to *every* aspect of the teacher and the course, and in their informal comments frequently reveal that they felt unfairly graded. + +### *Chapter 10: Concept Familiarity* + +103. Normal and radical design. In *What Engineers Know and How ey Know It* [147], Walter Vincenti distinguishes between "normal" and "radical" design. Normal design involves the renement and extension of an accepted, standard design. A car designer, for example, takes the essential structure for granted: that the car will have four wheels, a conventional gasoline or hybrid engine, a gearbox, etc. Because normal design uses familiar components in familiar ways, and relies on a large body of experience, the designer can be condent that the design will perform as expected. + +Radical design is much rarer. It's what NASA's engineers did when they designed the lunar module of Apollo 11. Nobody had ever designed such a thing before, and they could not be sure that it would work at all. In fact, as the lunar module descended, it generated alarms indicating that the computer was overloaded and had to shed some tasks (fortunately not including the ones that were needed to ensure a safe landing). + +In soware, the obviously normal designs are the countless "CRUD" applications being built using content-management platforms such as Drupal and WordPress. (Of course, like all normal designs, these were at one time radical.) Radical designs include the rst graphical user interfaces (invented at Xerox PARC and then realized commercially by Apple), the rst spreadsheet (Dan Bricklin's VisiCalc), and the rst relational databases (based on Edgar Codd's design). + +In practice, the distinction is not binary, and most designs—including soware applications—lie between the two extremes. Sometimes a design is radical in its + +scope and overall purpose, despite the reuse of normal concepts—Tim Berners Lee's invention of the World Wide Web, for example, which exploited decades-old concepts (notably *hypertext* and *markup*) to dramatic new eect. Sometimes a design is not radical in its purpose but introduces concepts that change the game entirely; Adobe Photoshop did this with the introduction of its *layer* and *mask* concepts. + +Not all novelty in a product is the result of radical design. In soware, new concepts emerge over time, in response to new uses and new opportunities. Twier's *hashtag* concept solidied and extended an idea that users had invented. is follows a paern that Eric von Hippel [56] has argued is typical in many industries: that innovation oen comes not from the suppliers or products, but from their users, who rst feel the need for new functionality, and oen even create it in prototype for themselves. + +e key point is that radical design is atypical. Normal design is what almost all designers do day to day. is doesn't mean designers just reinvent the wheel. Even in a normal design, there are many opportunities for small innovations, resulting over time in dramatic technological advances. It also doesn't mean that design does not maer. On the contrary, the quality of a normal design can spell the dierence between success and failure, for any product, including soware. + +To be radical, a design does not need to change everywhere. Changing one critical component can make a design radical, while keeping others xed to reduce risk. e designers of the rst hybrid car switched the engine but they didn't replace the steering wheel with a joystick, or use acrylic in place of glass for the windows, or alter the shape of the cabin. + +In soware, similarly, one new concept can make a design radical. e radical move in the design of the World Wide Web—in my view the key insight of its inventor—was, as I argued in Chapter 3, the concept of the *url*, whose purpose is to provide a distinct and persistent name for each resource that is independent of where and how the resource is stored. is was what made the Web dierent from all its predecessors (such as HyperCard), making possible a massive shared information infrastructure. + +On a smaller scale, Adobe Lightroom's designers based image editing not on Photoshop's *layer* and *mask* concepts, but on the concept of an *action*—an image adjustment that is stored in the image's metadata as part of a history, making possible exible and non-destructive image editing. e implications of this change are enormous. Interaction becomes simpler; non-destructive edits become easy; modications can be stored as metadata in the image les themselves; and the le sizes are dramatically reduced. + +104. Alexander's design paerns. e idea of capturing design expertise in generic "design paerns" that can be instantiated in dierent contexts originated in the work of the architect Christopher Alexander [4, 5]. Alexander is known to computer scientists through the "Gang of Four," whose inuential collection of design paerns in object-oriented programming [44] cited him as an inspiration. + +Concepts are in fact closer to Alexander's design paerns than the Gang of Four paerns are, because, like Alexander's paerns, concepts are driven by the needs of users, and shape users' experiences of the product; the Gang of Four paerns, on the other hand, are motivated mostly by the needs of programmers (in particular making code easier to evolve over time). At heart, however, design paerns and concepts have a lot in common, and the Gang of Four deserve credit for changing the way we think about programming. + +For Alexander, paerns address the fundamental challenge of design, namely the unknowability of context that results in unanticipated mists (see Note 60). Because paerns represent normalized design (see Note 103), they embody long experience in coping with the mists that typically arise, and save you from the design mistakes you would make if you were designing from scratch. + +Computer scientists who have encountered Alexander only secondhand through the literature on design paerns in soware may be surprised to discover, on reading Alexander's work, that he writes not so much as a designer, let alone as an engineer, but more as a poet, reveling in the spirituality of good design (especially in his latest books [6]). e spiritual and aesthetic components of concept design have yet to be explored, but may be essential if we want to go beyond so ware that works to soware that delights and inspires. + +105. Why does PowerPoint have a cursor? In my discussion of PowerPoint's *section* concept, I referred to "the selected slide." Even behind this simple phrase lurks a conceptual design question. Many apps involve manipulating a sequence of items by insertion, deletion, and moving. All of them have some concept of *selection*; what distinguishes them is whether you can select more than one item, and if so, whether those items must be contiguous. + +Many also have a concept of *cursor*, which marks the point at which an insertion will occur. In text editors, the relationship between the cursor position and the current selection is quite complicated; in the editor I'm typing this text in (BBEdit), for example, if I select a word, the cursor disappears; advancing the cursor (with the right arrow key) then places it aer the word, and moving it back (with the le arrow key) places it before the word. + +One reason that text editors have a cursor in addition to selections is to support replacements: if you make a selection, and then start typing, the new characters *replace* the characters that were selected. Placing the cursor without a selection allows you to insert without making any replacements. + +is complication—of having both a cursor and allowing selections—works well in text editors but doesn't seem necessary in a slide presentation app. So Keynote has no cursor; if you select a slide and add a new slide, the new one just appears aer the selected slide (without replacing it, of course). But both PowerPoint and Google slides include both cursor and selections. Unlike in a text editor, where a simple click always sets the cursor, in these apps you have to click quite carefully *between* slides to place the cursor without selecting a slide. + +I'm not sure why this complication is useful. You might think that it makes adding slides a lile more intuitive, because you don't need to remember whether the new slide comes before or aer the selected one. So to add a new slide at the beginning of a section in PowerPoint, you might place the cursor just before that slide. Sadly, you can't do that though: the cursor can only be placed between slides within a section or aer the last slide. + +Perhaps this whole discussion seems nitpicky. But while any one small complexity like this might not maer, the accumulation of many such needless complexities exacts a heavy price, from programmer and user alike. + +106. Inevitability as a design principle. e PowerPoint example illustrates a general design principle. Consider how the *add section* command might have behaved. ere are so many dierent possibilities: to include or exclude the subsequent slides from the newly created section; if a slide is currently selected, to include or exclude that particular slide; to allow the action to be executed when non-contiguous slides are selected or not; and so on. + +Whenever a design decision is made from such a set of possibilities, and when those possibilities seem equally plausible—or at least none stands out as obviously beer than the others—the designer runs the risk of making a non-optimal choice. So the very presence of all those options leads to a fragile design process, in which at every step the designer is likely to make a mistake, following a path along which arbitrary decisions take the designer towards a more idiosyncratic and incoherent design. Each of these choice points is faced by the poor user too, who has to guess how the design will behave from amongst the equally plausible options. + +ese decision points are thus a symptom of a bad design. In a good design, the design decisions seem to be *inevitable*. Only one of the options is plausible, and if more than one is plausible, the choice is resolved by following a general rule or sen- + +sibility that applies uniformly to all decisions within the product. e user will be able to predict which behavior is most likely at any point, either because only one makes sense, or because the user will be aware (perhaps only subconsciously) of, and guided by, the general rules and sensibilities that have been conveyed by the design and the detailed behaviors the user has encountered so far. + +For the designer, this raises a question. When you reach a decision point at which there seem to be many possibilities, what do you do? You should start, of course, by evaluating the options. If one is clearly and demonstrably superior to the others—which means that in a team you will have consensus—you should probably choose that option. If not, you can try to formulate a general principle that would favor one over the others. If you're able to do that, and can apply that principle throughout your design, choosing that one option may be justied. If you can't do that, you have no choice in my view but to back o: to undo the previous decision that brought you to this point of confusion. + +e inevitability of your design move at each point, in other words, is not only a mark of design quality, but evidence that the decisions you have made so far have been sound. + +107. More on Lightroom's unconventional export presets. e unusual semantics of the augmented *preset* concept is reected also in its mapping to the user interface. In the standard checkbox widget, the label that sits next to the box is not usually selectable as a separate control. is is what Don Norman would call an aordance problem: the preset names don't signify that they have a clicking aordance distinct from toggling the checkbox. + +Complex concepts confuse technical writers. e complexity of the *preset* concept is evident in the documentation too. e help page includes an FAQ with the question "Why are some sections hidden when presets are checked?" e answer given is as follows: "When you select one or more export presets in the Export dialog, Post-Processing section and other sections created by third-party plug-in are hidden in the Export Seings. However, the export seings dened for Post Processing and other sections from third-party plug-ins in the export preset are respected and images are exported accordingly." Hmm. + +Complex concepts confuse programmers. While experimenting with the preset dialog in order to understand it beer, I found that the entire application sometimes became unresponsive and I had to force quit it and restart. It seems likely to me that the conceptual complexity of the design has resulted in some untamed + +complexity in the code, and Adobe may be experiencing some trepanning here (Note 89). + +108. Using nicknames in contacts. As evidence that many people use nicknames and not real names for their contacts, consider the fact that NokNok, an Israeli startup, actually marketed an app to exploit this. Users who downloaded the app were connected and shown the nicknames others used for them in their contacts. Perhaps not surprisingly, the company eventually switched business areas and is now focused on providing free VOIP calls. + +Apple's Contacts app in fact supports the *nickname* concept. You can select "nickname" from a set of elds that can be added to a contact. What you enter there appears to be private: if you start typing a nickname in an email message, the address is completed but the nickname does not appear in the message that is sent. With this feature, our Prince can safely call the Queen "Mummy" aer all. + +## *Chapter 11: Concept Integrity* + +109. Robustness of mental models. In early and inuential work on mental models, Johan de Kleer and John Seely Brown argued that only certain kinds of models served users well, allowing them to reliably predict behavior (especially in novel situations). ese models, which they termed "robust," had to satisfy certain "aesthetic principles" [80]. + +eir rst and most important principle, which they called "no-function-instructure," required that the behavior of the components of a system be context free. is would mean, for example, that the explanation of how a switch works could not refer to the function of other parts of the circuit (even though of course whether a component is activated may depend on whether the switch is on or o). + +It is reassuring that this principle, emerging from a psychological perspective, aligns so closely with the idea of concepts as independently explainable units of functionality, and with the integrity principle (see "Concepts are freestanding" in Note 48). + +110. Feature interactions and integrity. Concept integrity is strongly related to the idea of feature interaction in telephony (see "How concepts dier from features" in Note 48). + +One particular formulation—which appears as the denition of feature interaction in [122], and as the last of a series of possible denitions in [22]—associates a system-level specication with each feature, and then says that an interaction exists if the presence of one feature causes the specication of another to no longer hold. + +is is exactly the denition of concept integrity. Ruling out such interactions is, by the standards of the feature interaction literature, quite extreme. But it seems essential to preserving the nature of concepts; without it, concepts would not be understandable in their own right, because their behavior would depend on the context in which they are deployed. + +In practice, concept integrity does not seem to impose unreasonable demands, for several reasons. First, not all features need be implemented as concepts. Classic telephony features such as "call forward on busy" and "voice mail on busy" would probably be beer represented as synchronizations of concepts than as concepts in their own right. Second, distinct features in telephony (such as "selective call acceptance" and "selective call rejection") may be contained within a single concept (in this case one that manages accepting and rejecting calls based on preference lists). + +ird, a concept specication only governs its own actions, so when concepts are synchronized in collaborative composition, one concept need not impinge on the behavior of another. For example, if call forwarding is described in terms of mapping phone numbers to phone lines, and regular calling involves only making connections between lines (and has nothing to say about numbers), the two can be composed without risk of integrity violation. + +Finally, when concepts are composed, the mapping to a user interface can change which actions are exposed to the user. For example, an *email* concept might have a *delete* action for permanently deleting messages. When composed with the *trash* concept, however, the deletion buon in the user interface will no longer be associated with the *email.delete* action, but rather with *trash.delete*, the deletion action of the *trash* concept. In such a case, it might appear to the user that integrity is violated—deletion no longer permanently removes a message. But once the user understands the mapping of user interface controls to concept actions, integrity is recovered. + +111. Font magic in Apple Pages and other delights of format-toggle. In Apple Pages, if you bold some text in Helvetica Light, it will be in Helvetica Bold; bolding again takes you back to Helvetica Light. And if you start in Helvetica Regular, and apply bold twice, it will take you back to Helvetica Regular. is sounds nice, because it preserves the toggling, until you realize that the text that was supposedly in Helvetica Bold is treated dierently in the two cases! e app is apparently remembering more about the format seing than is evident in the formaing dialog, and so integrity is violated for other reasons. + +![](03.Resource(책임X,%20정보,학습)/30.%20Concept%20Garden%20Development/EssenceOfSoftware_Eng/concepts-271-300/_page_25_Picture_1.jpeg) + +fig. E.10 *An aempted solution to the formatToggle integrity problem, in Apple Pages '09.* + +(You can reveal that something funny is going on as follows. Start with some text in Helvetica Light, say. Now bold it. If you bold again, you'll be back to Helvetica Light. But if before you do that, you pull down the font style menu showing Bold, and you click on that highlighted menu item, you will now have cleared the hidden state, and it will revert to Regular when bolded again.) + +It's important to note that Apple's style mechanism does *not* permit partial styles to be dened, losing the key benet of separating out bold and italic as settings independent of the font subfamily. e 2009 version of Apple's productivity apps *did* allow partial styles (see Figure 8.12 in Chapter 8), but this had other problems. Instead of treating a professional font as a single typeface family, it broke the family down into "subfamilies"—a classication dened for both TrueType and OpenType fonts. In the screenshot of Apple Pages '09 (Figure E.10), you can see that the "font" is set to "Magma Light," which represents one of the subfamilies of the Magma typeface. If the subfamily has exactly the four variants (regular, bold, italic, bold italic), this works nicely. But some subfamilies (like Magma Light) are dened by their weight, so they don't have a bold variant! + +Adobe InDesign does have the *format toggle* concept insofar as having bold and italic actions. ese suer from the same problem as TextEdit's. But unlike in Apple's productivity apps, bold and italic are not available as seings for styles, so are missing where they would be most useful. + +112. No backup in Google drive. Google Drive has no built-in backup facility. It does save old versions of les—a valuable feature—but if the le itself is deleted, the old + +versions are deleted along with it. Google's synchronization utility is confusingly called "Backup and Sync," but the backup refers to backing up les from your computer to the Google Drive, not to backing up in the other direction. + +113. More on the Google Drive accident. When Google Drive synchronizes a folder that is empty on your local machine, it doesn't permanently delete the les in the cloud, but instead moves them to the trash. Unfortunately, in the scenario I described, the user emptied the trash: "I was organizing my les on my local computer. I moved them around and out of my Google Drive folder which syncs les. I didn't think anything of it. In the process I got an email from Google saying I'm running out of storage. So I go to the Google Drive site and empty the trash. I didn't think anything of it." + +e trash is hardly a protection for the problem described here, because an unsuspecting user might aempt to move les out of a synchronized folder *precisely* to allow the trash to be emptied and thus to gain space in their drive. + +For the full sad story, see the web page [hp://googledrivesucks.com.](http://googledrivesucks.com) Perhaps one measure of the seriousness of a usability problem is whether it causes enough pain for someone to go to the trouble of registering a domain in protest. + +114. is book's website and forum. To spare you the trouble of registering your own domain to complain about this book, I have created a website that includes a link to a discussion forum for topics related to the book and to concept design. Please visit [hps://essenceofsoware.com](https://essenceofsoftware.com). I look forward to your participation. + +תושלב"ע + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# References + +- [1] Jean-Raymond Abrial. *e B-Book: Assigning Programs to Meanings*. Cambridge University Press, 2005. +- [2] M. Ainsworth, A. H. Cruikchank, P. J. L. Wallis, and L. J. Groves. Viewpoint speci cation and Z. *Information and Soware Technology*, 36(1):43–51, 1994. +- [3] Christopher Alexander. *Notes on the Synthesis of Form*. Harvard University Press, 1964. +- [4] Christopher Alexander. *A Paern Language: Towns, Buildings, Construction*. Oxford University Press, 1977. +- [5] Christopher Alexander. *Timeless Way of Building*. Oxford University Press, 1979. +- [6] Christopher Alexander. *e Nature of Order: An Essay on the Art of Building and the Nature of the Universe* (4 volumes). Center for Environmental Structure, 2002. +- [7] Charles Bachman and Manilal Daya. e Role Concept in Data Models. *Proceedings of the ird International Conference on Very Large Data Bases*, Tokyo, Japan, Oct. 6–8, 1977, pp. 464–476. +- [8] Don Batory and Sean O'Malley. e design and implementation of hierarchical so ware systems with reusable components. *ACM Transactions on Soware Engineering and Methodology*, Vol. 1:4, Oct. 1992, pp. 355–398. +- [9] Nels E. Beckman, Duri Kim, and Jonathan Aldrich. An empirical study of object protocols in the wild. *Proceedings of the European Conference on Object-Oriented Programming* (ECOOP '11), 2011. +- [10] Dines Bjørner. Soware systems engineering—From domain analysis via requirements capture to soware architectures. *Asia-Pacic Soware Engineering Conference*, 1995. +- [11] Dines Bjørner. *Domain Engineering: Technology Management, Research and Engineering*. Japan Advanced Institute of Science and Technology ( JAIST) Press, March 2009. +- [12] Gerrit A. Blaauw and Frederick P. Brooks. *Computer Architecture: Concepts and Evolution*. Addison-Wesley Professional, 1997. +- [13] Laurent Bossavit. *e Leprechauns of Soware Engineering: How Folklore Turns into Fact and What to Do about It*, 2017. +- [14] Douglas Bowman. *Goodbye, Google*. 20 March, 2009. At [hps://stopdesign.com/](https://stopdesign.com/archive/2009/03/20/goodbye-google.html) [archive/2009/03/20/goodbye-google.html.](https://stopdesign.com/archive/2009/03/20/goodbye-google.html) +- [15] Harry Brignull. Dark Paerns. A[t hps://www.darkpaerns.org.](http://www.darkpatterns.org) +- [16] Robert Bringhurst. *e Elements of Typographic Style*. Hartley & Marks, 1992 +- [17] Frederick P. Brooks. *e Mythical Man-Month*. Addison-Wesley, Reading, Mass., 1975; Anniversary edition, 1995. + +- [18] Frederick P. Brooks. No silver bullet—essence and accident in soware engineering. *Proceedings of the IFIP Tenth World Computing Conference*, 1986, pp. 1069–1076. +- [19] Frederick P. Brooks. *e Design of Design: Essays om a Computer Scientist*. Addison-Wesley Professional, 2010. +- [20] Julien Brunel, David Chemouil, Alcino Cunha and Nuno Macedo. e Electrum Analyzer: Model checking relational rst-order temporal specications. *Proceedings of the 33rd ACM/IEEE International Conference on Automated Soware Engineering* (ASE 2018), Association for Computing Machinery, New York, NY, USA, pp. 884–887, 2018. +- [21] Jerome Bruner. *Toward a eory of Instruction*. Harvard University Belknap Press, 1974. +- [22] Glenn Bruns. Foundations for features. In S. Rei-Marganiec and M.D. Ryans (eds.), *Feature Interactions in Telecommunications and Soware Systems VIII*, IOS Press, 2005. +- [23] Jerry R. Burch, Edmund M. Clarke, Kenneth L. McMillan, David L. Dill and L. J. Hwang. Symbolic model checking: 1020 states and beyond. *Information & Computation* 98(2): 142–170, 1992. +- [24] William Buxton. Lexical and pragmatic considerations of input structures. *ACM SIGGPH Computer Graphics*, Vol. 17:1, January 1983. +- [25] Stuart Card and omas Moran. User technology—From pointing to pondering. *Proceedings of e ACM Conference on e History of Personal Workstations* (HPW '86), 1986, pp. 183–198. +- [26] Stuart K. Card, omas P. Moran, and Allen Newell. *e Psychology of Human-Computer Interaction*, Lawrence Erlbaum Associates, 1986. +- [27] Peter Chen. e entity-relationship model—Toward a unied view of data. *ACM Transactions on Database Systems*, Vol. 1:1, March 1976, pp. 9–36. +- [28] Michael Coblenz, Jonathan Aldrich, Brad A. Myers, and Joshua Sunshine. Interdisciplinary programming language design. *Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reections on Programming & Soware* (Onward! 2018), 2018. +- [29] Richard Cook and Michael O'Connor. inking about accidents and systems. In K. ompson and H. Manasse (eds.), *Improving Medication Safety*, American Society of Health-System Pharmacists, 2005. +- [30] Nigel Cross. *Design inking: Understanding How Designers ink and Work*, Bloomsbury Academic, 2011. +- [31] David L. Detlefs, K. Rustan M. Leino and Greg Nelson. Wrestling with rep exposure, SRC Report 156, Digital Systems Research Center, July 29, 1998. +- [32] Edsger W. Dijkstra. e Structure of the "THE"–multiprogramming system. *ACM Symposium on Operating System Principles*, Gatlinburg, Tennessee, October 1–4, 1967. +- [33] Edsger W. Dijkstra. A position paper on soware reliability (EWD 627). 1977. At [hp://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD627.html.](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD627.html) \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-271-300/concepts-271-300_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-271-300/concepts-271-300_meta.json new file mode 100644 index 0000000..b524825 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-271-300/concepts-271-300_meta.json @@ -0,0 +1,1909 @@ +{ + "table_of_contents": [ + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9198303222656, + 40.86962890625 + ], + [ + 295.9198303222656, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.67041015625, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 151.80908203125, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 156.97705078125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.11572265625, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 7: Concept Dependence", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 152.46710205078125, + 333.0 + ], + [ + 282.53271484375, + 331.69921875 + ], + [ + 282.53271484375, + 345.7160339355469 + ], + [ + 152.46710205078125, + 345.7160339355469 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.7680206298828, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 157.40771484375, + 40.86962890625 + ], + [ + 295.9197082519531, + 40.86962890625 + ], + [ + 295.9197082519531, + 52.36962890625 + ], + [ + 156.54638671875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 157.56329345703125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 7, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.23779296875, + 40.86962890625 + ], + [ + 276.23779296875, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 157.40771484375, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.54638671875, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 8: Concept Mapping", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 158.0537109375, + 203.572265625 + ], + [ + 276.9356994628906, + 202.271484375 + ], + [ + 276.9356994628906, + 215.69601440429688 + ], + [ + 158.0537109375, + 215.69601440429688 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2380065917969, + 40.86962890625 + ], + [ + 276.2380065917969, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9198913574219, + 40.86962890625 + ], + [ + 295.9198913574219, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.76820373535156, + 40.86962890625 + ], + [ + 276.24371337890625, + 40.86962890625 + ], + [ + 276.24371337890625, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 157.40771484375, + 40.86962890625 + ], + [ + 295.9141845703125, + 40.86962890625 + ], + [ + 295.9141845703125, + 52.36962890625 + ], + [ + 156.54638671875, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 9: Concept Specicity", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 156.3310546875, + 266.3349609375 + ], + [ + 278.54522705078125, + 265.0341796875 + ], + [ + 278.54522705078125, + 278.4960021972656 + ], + [ + 156.3310546875, + 278.4960021972656 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 13, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.768310546875, + 40.86962890625 + ], + [ + 276.2438049316406, + 40.86962890625 + ], + [ + 276.2438049316406, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 157.55760192871094, + 40.86962890625 + ], + [ + 295.9140930175781, + 40.86962890625 + ], + [ + 295.9140930175781, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2438049316406, + 40.86962890625 + ], + [ + 276.2438049316406, + 52.36962890625 + ], + [ + 151.59375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 157.56350708007812, + 40.86962890625 + ], + [ + 295.9200134277344, + 40.86962890625 + ], + [ + 295.9200134277344, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 10: Concept Familiarity", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 150.94775390625, + 263.69598388671875 + ], + [ + 282.9239196777344, + 262.7578125 + ], + [ + 282.9239196777344, + 275.6960144042969 + ], + [ + 150.94775390625, + 275.6960144042969 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.7624053955078, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 157.5633087158203, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.76171875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 156.97705078125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.11572265625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 152.76229858398438, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Chapter 11: Concept Integrity", + "heading_level": null, + "page_id": 23, + "polygon": [ + [ + 145.564453125, + 263.69598388671875 + ], + [ + 264.4068298339844, + 262.4326171875 + ], + [ + 264.4068298339844, + 275.6960144042969 + ], + [ + 145.564453125, + 275.6960144042969 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 24, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.9197998046875, + 40.86962890625 + ], + [ + 295.9197998046875, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 25, + "polygon": [ + [ + 152.7624053955078, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Explorations & Digressions", + "heading_level": null, + "page_id": 26, + "polygon": [ + [ + 157.1923828125, + 40.86962890625 + ], + [ + 295.91400146484375, + 40.86962890625 + ], + [ + 295.91400146484375, + 52.36962890625 + ], + [ + 156.3310546875, + 52.36962890625 + ] + ] + }, + { + "title": "References", + "heading_level": null, + "page_id": 28, + "polygon": [ + [ + 188.5107879638672, + 59.5107421875 + ], + [ + 264.49078369140625, + 58.2099609375 + ], + [ + 264.49078369140625, + 79.97406005859375 + ], + [ + 187.98486328125, + 79.97406005859375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 29, + "polygon": [ + [ + 152.76242065429688, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 81 + ], + [ + "Line", + 38 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 88 + ], + [ + "Line", + 38 + ], + [ + "Text", + 3 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 85 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 137 + ], + [ + "Line", + 37 + ], + [ + "Text", + 4 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 101 + ], + [ + "Line", + 38 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 121 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 113 + ], + [ + "Line", + 40 + ], + [ + "Text", + 6 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 125 + ], + [ + "Line", + 38 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 96 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 62 + ], + [ + "Line", + 24 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 82 + ], + [ + "Line", + 38 + ], + [ + "Text", + 4 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 78 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 67 + ], + [ + "Line", + 26 + ], + [ + "ListItem", + 3 + ], + [ + "SectionHeader", + 2 + ], + [ + "Text", + 2 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 69 + ], + [ + "Line", + 31 + ], + [ + "Text", + 5 + ], + [ + "ListItem", + 2 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 75 + ], + [ + "Line", + 38 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 88 + ], + [ + "Line", + 37 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 57 + ], + [ + "Line", + 22 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 103 + ], + [ + "Line", + 37 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 82 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 90 + ], + [ + "Line", + 39 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 86 + ], + [ + "Line", + 38 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 84 + ], + [ + "Line", + 39 + ], + [ + "Text", + 7 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 82 + ], + [ + "Line", + 37 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 83 + ], + [ + "Line", + 37 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 2 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 86 + ], + [ + "Line", + 38 + ], + [ + "Text", + 5 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 65 + ], + [ + "Line", + 25 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "Picture", + 1 + ], + [ + "Caption", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "PictureGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 58 + ], + [ + "Line", + 24 + ], + [ + "Text", + 6 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 28, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 137 + ], + [ + "Line", + 37 + ], + [ + "ListItem", + 17 + ], + [ + "SectionHeader", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 29, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 141 + ], + [ + "Line", + 43 + ], + [ + "ListItem", + 16 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-271-300" +} \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-301-328/concepts-301-328.md b/raw/book/EssenceOfSoftware_Eng/concepts-301-328/concepts-301-328.md new file mode 100644 index 0000000..9be5823 --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-301-328/concepts-301-328.md @@ -0,0 +1,682 @@ +#### references + +- [34] Edsger W. Dijkstra. On the role of scientic thought (EWD 447). 1974. At [hp://](http://www.cs.utexas.edu/users/EWD/ewdxx/EWD447.PDF) [www.cs.utexas.edu/users/EWD/ewd04xx/EWD447.PDF.](http://www.cs.utexas.edu/users/EWD/ewdxx/EWD447.PDF) Also in: Edsger W. Dijkstra, *Selected Writings on Computing: A Personal Perspective*, Springer-Verlag, 1982, pp. 60–66. +- [35] Edsger W. Dijkstra. On anthropomorphism in science (EWD936), 25 September 1985. At [hps://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/EWD936.html) [EWD936.html.](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/EWD936.html) +- [36] Edsger W. Dijkstra. e tide, not the waves. In *Beyond Calculation: e Next Fiy Years of Computing*, Peter J. Denning and Robert M. Metcalfe (eds.), Copernicus (Springer-Verlag), 1997, pp. 59–64. +- [37] Kieran Egan. *e Educated Mind: How Cognitive Tools Shape Our Understanding*. e University of Chicago Press, 1997. +- [38] Eric Evans. *Domain-Driven Design: Tackling Complexity in the Heart of Soware*. Addison-Wesley, 2004. +- [39] Rolf A. Faste. Perceiving needs. *SAE Journal*, Society of Automotive Engineers, 1987. +- [40] Robert W. Floyd. Assigning meanings to programs. *Proceedings of Symposia in Applied Mathematics*, Vol. 19, 1967, pp. 19–32. +- [41] James D. Foley and Andries van Dam. *Fundamentals of Interactive Computer Graphics*. Addison-Wesley Publishing Company, 1982. +- [42] Martin Fowler. *Analysis Paerns: Reusable Object Models*. Addison-Wesley Professional, 1997. +- [43] Richard Gabriel. Designed as designer. *23rd ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications* (OOPSLA '08), Oct. 2008. +- [44] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. *Design Paerns: Elements of Reusable Object-Oriented Soware*. Addison-Wesley Professional, 1994. +- [45] Joseph A. Goguen and Malcolm Grant (eds.). *Soware Engineering with OBJ*. Springer, 2000. +- [46] omas R. G. Green. Cognitive dimensions of notations. In A. Sutclie and L. Macaulay (eds.), *People and Computers*. Cambridge University Press, pp. 443–460, 1989. +- [47] omas R. G. Green and Marian Petre. Usability analysis of visual programming environments: a 'cognitive dimensions' framework. *Journal of Visual Languages & Computing*, June 1996. +- [48] Saul Greenberg and Bill Buxton. Usability evaluation considered harmful (some of the time). *Proceedings of Computer Human Interaction* (CHI 2008), Apr. 2008. +- [49] Carl A. Gunter, Elsa L. Gunter, Michael Jackson and Pamela Zave. A reference model for requirements and specications. *IEEE Soware*, Vol. 17:3, May 2000, pp. 37–43. +- [50] John Guag and J. J. Horning. Formal specication as a design tool. *Proceedings of the 7th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages* (POPL '80), 1980, pp. 251–261. + +- [51] John V. Guag and James J. Horning. *Larch: Languages and Tools for Formal Speci cation*. Springer, 1993 (reprinted 2011). +- [52] Michael Hammer and Dennis McLeod. Database description with SDM: A semantic database model. *ACM Transactions on Database Systems*, Vol. 6:3, Sept. 1981, pp. 351–386. +- [53] David Harel. Dynamic logic. In Gabbay and Guenthner (eds.), *Handbook of Philosophical Logic*. Volume II: Extensions of Classical Logic, Reidel, 1984, p. 497–604. +- [54] Michael Harrison and Harold imbleby (eds.). *Formal Methods in Human-Computer Interaction*. Cambridge University Press, 2009. +- [55] Ian Hayes (ed.). *Specication Case Studies*. Prentice Hall International, 1987. +- [56] Eric von Hippel. *Free Innovation*. MIT Press, 2017. Full text at [hps://papers.ssrn.](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2866571) [com/sol3/papers.cfm?abstract\\_id=2866571.](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2866571) +- [57] C.A.R. Hoare. e emperor's old clothes. *Communications of the ACM*, Vol. 24:2, 1981, pp. 75–83. +- [58] C.A.R. Hoare. *Communicating Sequential Processes*. Prentice-Hall, 1985. +- [59] Walter Isaacson. *Steve Jobs*. Simon & Schuster, 2011. +- [60] Edwin Hutchins, James Hollan and Donald Norman. Direct Manipulation Interfaces. *Human-computer Interaction*. Vol. 1:4, Dec. 1985, pp. 311–338. +- [61] Daniel Jackson. Structuring Z specications with views. *ACM Transactions on So ware Engineering and Methodology*, Vol. 4:4, 1995, pp. 365–389. +- [62] Daniel Jackson and Craig A. Damon. Elements of style: analyzing a soware design feature with a counterexample detector. *IEEE Transactions on Soware Engineering*, Vol. 22:7, July 1996, pp. 484–495. +- [63] Daniel Jackson. Module dependencies in soware design. *9th International Workshop on Radical Innovations of Soware and Systems Engineering in the Future* (RISSEF 2002), Venice, Italy, Oct. 2002, pp.198–203. +- [64] Daniel Jackson, Martyn omas, and Lynnee Mille, eds. *Soware for Dependable Systems: Sucient Evidence?* National Research Council. National Academies Press, 2007[. hp://books.nap.edu/openbook.php?isbn=0309103940](http://books.nap.edu/openbook.php?isbn=0309103940). +- [65] Daniel Jackson. A direct path to dependable soware. *Communications of the Association for Computing Machinery*, Vol. 52:4, Apr. 2009, pp. 78–88. +- [66] Daniel Jackson. *Soware Abstractions*. MIT Press, 2012. +- [67] Daniel Jackson. Alloy: A language and tool for exploring soware designs. *Communications of the ACM*, Vol. 62:9, Sept. 2019, pp. 66–76. At [hps://cacm.acm.org/](https://cacm.acm.org/magazines/2019/9/238696-alloy) [magazines/2019/9/238969-alloy](https://cacm.acm.org/magazines/2019/9/238696-alloy). +- [68] Michael Jackson. *System Development*. Prentice Hall, 1983. +- [69] Michael Jackson. *Soware Requirements and Specications: A Lexicon of Practice, Principles and Prejudices*. Addison-Wesley, 1995. +- [70] Michael Jackson. *Problem Frames: Analysing & Structuring Soware Development Problems*. Addison-Wesley Professional, 2000. + +#### references + +- [71] Michael Jackson. *e World and the Machine*. At [hps://www.theworldandthema](http://www.theworldandthema-chine.com)[chine.com.](http://www.theworldandthema-chine.com) +- [72] Michael Jackson. e operational principle and problem frames. In Cli B. Jones, A. W. Roscoe and Kenneth R. Wood (eds.), *Reections on the Work of C.A.R. Hoare*, Springer Verlag, London, 2010. +- [73] Ivar Jacobson. *Object Oriented Soware Engineering: A Use Case Driven Approach*. Addison-Wesley Professional, 1992. +- [74] Natasha Jen. *Design inking Is Bullsh\*t*. 99U Conference, 2017. Video online at: [hps://99u.adobe.com/videos/55967/natasha-jen-design-thinking-is-bullshit](https://99u.adobe.com/videos/55967/natasha-jen-design-thinking-is-bullshit) +- [75] Cli B. Jones. *Systematic Soware Development Using VDM*. Prentice Hall, 1990. +- [76] Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak and A. Spencer Peterson. *Feature-Oriented Domain Analysis (FODA) Feasibility Study*. Technical Report CMU/SEI-90-TR-021, Soware Engineering Institute, Carnegie Mellon University, 1990. +- [77] Ruogu Kang, Laura Dabbish, Nathaniel Fruchter and Sara Kiesler. My data just goes everywhere: User mental models of the internet and implications for privacy and security. *Symposium on Usable Privacy and Security* (SOUPS), Jul. 2015. +- [78] Mitchell Kapor. A soware design manifesto. Reprinted as Chapter 1 of [149]. +- [79] Tom Kelley and David Kelley. *Creative Condence: Unleashing the Creative Potential Within Us All*. Crown Business, 2013. +- [80] Johan de Kleer and John Seely Brown. Mental models of physical mechanisms and their acquisition. In J. R. Anderson (ed.), *Cognitive Skills and eir Acquisition*, Lawrence Erlbaum, 1981, pp. 285–309. +- [81] Amy J. Ko and Yann Riche. e role of conceptual knowledge in API usability. *IEEE Symposium on Visual Languages and Human-Centered Computing* (VL/HCC), 2011, pp. 173–176. +- [82] Amy J. Ko. e problem with "learnability" in human-computer interaction. *Bits and Behavior Blog*, February 16, 2019. At [hps://medium.com/bits-and-behavior/](https://medium.com/bits-and-behavior/the-problem-with-learnability-in-human-computer-interaction-91e598aed795) [the-problem-with-learnability-in-human-computer-interaction-91e598aed795.](https://medium.com/bits-and-behavior/the-problem-with-learnability-in-human-computer-interaction-91e598aed795) +- [83] Amy J. Ko, with contributions from Rachel Franz. *Design Methods*. Full text at [hps://faculty.washington.edu/ajko/books/design-methods.](https://faculty.washington.edu/ajko/books/design-methods) +- [84] James Koppel and Daniel Jackson. Demystifying dependence. *Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reections on Programming & Soware* (Onward! 2020), 2020. +- [85] Leslie Lamport. e temporal logic of actions. *ACM Transactions on Programming Languages and Systems*, Vol. 16:3, May 1994, pp. 872–923. +- [86] Butler W. Lampson. *Principles of Computer Systems*, 2006. At [hp://www.bwlamp](http://www.bwlampson.site/48-POCScourse/48-POCS2006.pdf)[son.site/48-POCScourse/48-POCS2006.pdf.](http://www.bwlampson.site/48-POCScourse/48-POCS2006.pdf) +- [87] Axel van Lamsweerde. Goal-oriented requirements engineering: A guided tour. *Fih IEEE International Symposium on Requirements Engineering* (RE'01), 2001. + +- [88] Axel van Lamsweerde and Emmnuel Letier. Handling obstacles in goal-oriented requirements engineering. *IEEE Transactions on Soware Engineering*, Vol. 26:10, Oct. 2000, pp. 978–1005. +- [89] Axel van Lamsweerde. *Requirements Engineering: From System Goals to UML Models to Soware Specications*. Wiley, 2009. +- [90] Bruno Latour. Where are the missing masses? e sociology of a few mundane artifacts. In Wiebe Bijker and John Law (eds.), *Shaping Technology/Building Society: Studies in Sociotechnical Change*, MIT Press, 1992, pp. 225–258. +- [91] Michael Legge. e evolution of Gmail labels. July 1, 2009. At [hps://googleblog.](https://googleblog.blogspot.com/2009/07/evolution-of-gmail-labels.html) [blogspot.com/2009/07/evolution-of-gmail-labels.html.](https://googleblog.blogspot.com/2009/07/evolution-of-gmail-labels.html) +- [92] Nancy G. Leveson and Clark S. Turner. An investigation of the erac-25 accidents. *Computer*, Vol. 26:7, July 1993, pp. 18–41. +- [93] Mahys Levy and Mario Salvadori. *Why Buildings Fall Down: How Structures Fail*. Norton, 1992. +- [94] Karl J. Lieberherr and Ian Holland. Assuring good style for object-oriented programs. *IEEE Soware*. Vol. 6:5, Sept. 1989, pp. 38–48. +- [95] Barbara Liskov and Stephen Zilles. Programming with abstract data types. *Proceedings of the ACM SIGPLAN Symposium on Very High Level Languages*, 1974, pp. 50–59. +- [96] Barbara Liskov and John Guag. *Abstraction and Specication in Program Development*. MIT Press, 1986. +- [97] Vernon Loeb. 'Friendly re' deaths traced to dead baery. *Washington Post*, March 24, 2002. +- [98] Donna Malayeri and Jonathan Aldrich. Is structural subtyping useful? An empirical study. *Proceedings of the European Symposium on Programming* (ESOP '09), March 2009. +- [99] George Mathew, Amritanshu Agrawal, and Tim Menzies. Trends & topics in so ware engineering. Presentation at Community Engagement Session, *International Conference on Soware Engineering* (ICSE'17), 2017. At [hp:// tiny.cc/tim17icse.](http://tiny.cc/tim17icse) +- [100] Steve McConnell. *Code Complete: A Practical Handbook of Soware Construction*, 2nd Edition. Microso Press, 2004. +- [101] Malcolm Douglas McIlroy. Mass produced soware components. *Soware Engineering: Report of a Conference Sponsored by the NATO Science Commiee*, Garmisch, Germany, 7–11 Oct. 1968. +- [102] George H. Mealy. Another look at data. *Proceedings of the Fall Joint Computer Conference* (AFIPS '67), 1967, pp. 525–534. +- [103] omas P. Moran. e command language grammar: A representation for the user interface of interactive computer systems? *International Journal of Man-Machine Studies*, Vol. 15:1, Jul. 1981, pp. 3–50. +- [104] Steven J. Murdoch, Saar Drimer, Ross Anderson and Mike Bond. Chip and PIN is Broken. *31st IEEE Symposium on Security and Privacy* (S&P 2010), 2010. + +#### references + +- [105] John Mylopoulos. Conceptual modeling and Telos. In P. Loucopoulos and R. Zicari (eds.), *Conceptual Modelling, Databases and CASE: An Integrated View of Information Systems Development*, McGraw Hill, New York, 1992. +- [106] Jakob Nielsen. Usability engineering at a discount. *3rd International Conference on Human-Computer Interaction*, Sept. 1989. +- [107] Jakob Nielsen and Rolf Molich. Heuristic evaluation of user interfaces. *Proceedings of the SIGCHI Conference on Human Factors in Computing Systems* (CHI '90), 1990. +- [108] Jakob Nielsen. 10 Usability Heuristics for User Interface Design. 1994. At [hps://](http://www.nngroup.com/articles/ten-usability-heuristics) [www.nngroup.com/articles/ten-usability-heuristics](http://www.nngroup.com/articles/ten-usability-heuristics). +- [109] Robert L. Nord. *Deriving and Manipulating Module Interfaces*. Doctoral Dissertation, School of Computer Science, Carnegie Mellon University, 1992. +- [110] Donald Norman. *e Design of Everyday ings*. Originally published under the title *e Psychology of Everyday ings*. Basic Books, 1988. +- [111] Donald Norman. *e Design of Everyday ings: Revised and Expanded Edition*. Basic Books, 2013. +- [112] Donald Norman and Bruce Tognazzini. How Apple is giving design a bad name. *Codesign*, November 10, 2015. At [hp://www.fastcodesign.com/3053406/how-ap](http://www.fastcodesign.com/3053406/how-ap-ple-is-giving-design-a-bad-name)[ple-is-giving-design-a-bad-name.](http://www.fastcodesign.com/3053406/how-ap-ple-is-giving-design-a-bad-name) +- [113] Omnicognate Blog. In CSS, "px" is not an angular measurement and it is not non-linear. January 7, 2013. At [hps://omnicognate.wordpress.com/2013/01/07/in-css-px](https://omnicognate.wordpress.com/2013/01/07/in-css-pxis-not-an-angular-measurement-and-it-is-not-non-linear)[is-not-an-angular-measurement-and-it-is-not-non-linear](https://omnicognate.wordpress.com/2013/01/07/in-css-pxis-not-an-angular-measurement-and-it-is-not-non-linear). +- [114] Shira Ovide. No, the best doesn't win. *New York Times*, April 27, 2020. At [hps://](http://www.nytimes.com/2020/04/27/technology/no-the-best-doesnt-win.html) [www.nytimes.com/2020/04/27/technology/no-the-best-doesnt-win.html](http://www.nytimes.com/2020/04/27/technology/no-the-best-doesnt-win.html). +- [115] David L. Parnas. On the criteria to be used in decomposing systems into modules. *Communications of the ACM*, Vol. 15:12, Dec. 1972, pp. 1053–1058. +- [116] David L. Parnas. Designing soware for ease of extension and contraction. *IEEE Transactions on Soware Engineering*, Vol. 5:2, March 1979. +- [117] Chris Partridge, Cesar Gonzalez-Perez and Brian Henderson-Sellers. Are conceptual models concept models? *Proceedings of the 32nd International Conference on Conceptual Modeling* (ER 2013), Volume 8217, Springer-Verlag, 2013. +- [118] Santiago Perez De Rosso and Daniel Jackson. Purposes, concepts, mists, and a redesign of git. *ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications* (OOPSLA 2016), 2016, pp. 292–310. +- [119] S. Perez De Rosso, D. Jackson, M. Archie, C. Lao, and B. McNamara III. Declarative assembly of web applications from predened concepts. *Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reections on Programming & Soware* (Onward! 2019), 2019. +- [120] Charles Perrow. *Normal Accidents: Living with High-Risk Technologies*. Princeton University Press. Revised edition, 1999. +- [121] Henry Petroski. *To Engineer Is Human: e Role of Failure in Successful Design*. Vintage Books, 1985. + +- [122] Malte Plath and Mark Ryan. Feature integration using a feature construct. *Science of Computer Programming*, 41(1):53–84, 2001. +- [123] Amir Pnueli. e temporal logic of programs. *Proceedings of the 18th Annual Symposium on Foundations of Computer Science* (FOCS), Nov. 1977. +- [124] Michael Polanyi. *e Tacit Dimension*, University of Chicago Press, 1966. +- [125] Michael Polanyi. *Personal Knowledge: Towards a Post-Critical Philosophy*. University of Chicago Press, 1974. +- [126] Edouard de Pomiane. *French Cooking in Ten Minutes: Adapting to the Rhythm of Modern Life*. Original, 1930; English translation, Farrar, Strauss and Giroux, 1977. +- [127] Colin Pos. Using schematic scenarios to understand user needs. *ACM Symposium on Designing interactive Systems: Processes, Practices and Techniques* (DIS'95), Aug. 1995. +- [128] Trygve Reenskaug with Per Wold and Odd Arild Lehne. *Working with Objects: e OOram Soware Engineering Method*. Manning/Prentice Hall, 1996. +- [129] Kerry Rodden and Michael Legge. Best of both worlds: Improving gmail labels with the aordances of folders. *ACM Conference on Human Factors in Computing Systems* (CHI 2010), Apr. 2010. +- [130] David Rose. *Enchanted Objects*. Scribner, 2014. +- [131] James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy and William Lorensen. *Object-Oriented Modeling and Design*. Prentice Hall, 1994. +- [132] Jerome H. Saltzer and M. Frans Kaashoek. *Principles of Computer System Design: An Introduction*. Morgan Kaufmann, 2009. +- [133] Mario Salvadori. *Why Buildings Stand Up: e Strength of Architecture*. Norton, 1980. +- [134] Ben Shneiderman, Catherine Plaisant, Maxine Cohen, Steven Jacobs and Niklas Elmqvist. *Designing the User Interface: Strategies for Eective Human-Computer Interaction*, Sixth Edition, Pearson, 2016. +- [135] Herbert A. Simon. e architecture of complexity. *Proceedings of the American Philosophical Society*, Vol. 106:6, Dec. 1962, pp. 467–482. +- [136] John Michael Spivey. *e Z Notation: A Reference Manual*. International Series in Computer Science (2nd ed.), Prentice Hall, 1992. Full text at [hps://spivey.oriel.](https://spivey.oriel.ox.ac.uk/wiki/files/zrm/zrm.pdf) [ox.ac.uk/wiki/les/zrm/zrm.pdf.](https://spivey.oriel.ox.ac.uk/wiki/files/zrm/zrm.pdf) +- [137] Nam P. Suh. *e Principles of Design*. Oxford Series on Advanced Manufacturing (Book 6), Oxford University Press, 1990. +- [138] Alfred Tarski and John Corcoran (ed.). What are logical notions? *History and Philosophy of Logic*, 7:143–154, 1986. +- [139] Harold imbleby. *User Interface Design*, ACM Press, 1980. +- [140] Harold imbleby, Jeremy Gow and Paul Cairns. Misleading behaviour in interactive systems. *Proceedings of the British Computer Society HCI Conference*, Research Press International, 2004. +- [141] Harold imbleby. *Press On: Principles of Interaction Programming*, MIT Press, 2007. + +#### references + +- [142] Harold imbleby. *Fix IT: See and Solve the Problems of Digital Healthcare*. Oxford University Press, 2021. +- [143] Bruce Tognazzini. *First Principles of Interaction Design*, revised & expanded, 2014. At [hps://asktog.com/atc/principles-of-interaction-design.](https://asktog.com/atc/principles-of-interaction-design) +- [144] Jan Tschichold. *e Form of the Book: Essays on the Morality of Good Design*. Hartley & Marks, 1975. +- [145] Karl Ulrich. *Computation and Pre-parametric Design*. Doctoral Dissertation, Department of Mechanical Engineering, MIT, July 1988. +- [146] Bret Victor. *A Brief Rant on the Future of Interaction Design*, November 8, 2011. At [hp://worrydream.com/ABrief RantOneFutureOf InteractionDesign.](http://worrydream.com/ABriefRantOnTheFutureOfInteractionDesign) +- [147] Walter G. Vincenti. *What Engineers Know and How ey Know It*. Johns Hopkins University Press, 1990. +- [148] Forrest Wickman. What was "poking"? Maybe even Mark Zuckerberg doesn't know. *Slate*, February 4, 2014. At [hps://slate.com/technology/2014/02/facebooks](https://slate.com/technology/2014/02/facebookspoke-function-still-a-mystery-on-the-social-networks-10th-anniversary.html)[poke-function-still-a-mystery-on-the-social-networks-10th-anniversary.html.](https://slate.com/technology/2014/02/facebookspoke-function-still-a-mystery-on-the-social-networks-10th-anniversary.html) +- [149] Terry Winograd with John Benne, Laura De Young, and Bradley Harteld (eds.), *Bringing Design to Soware*. Addison-Wesley, 1996. +- [150] Gary Wolf. Steve Jobs: e next insanely great thing. *Wired Magazine*, February 1, 1996. A[t hps://www.wired.com/1996/02/jobs-2.](https://www.wired.com/1996/02/jobs-2) +- [151] Edward Yourdon. *Modern Structured Analysis*. Prentice Hall, 1989. Chapter 10: Data Dictionaries. +- [152] Eric S. K. Yu. Towards modeling and reasoning support for early-phase requirements engineering. *Proceedings of the 3rd IEEE International Symposium on Requirements Engineering* (RE '97), 1997. +- [153] Pamela Zave and Michael Jackson. Conjunction as composition. ACM Transactions on Soware Engineering and Methodology, Vol. 2:4, 1993. +- [154] Pamela Zave. Secrets of call forwarding: A specication case study. In *Formal Techniques for Networked and Distributed Systems (FORTE)*, 1995. +- [155] Pamela Zave and Michael Jackson. Four dark corners of requirements engineering. *ACM Transactions on Soware Engineering and Methodology*, Vol. 6:1, Jan. 1997, pp. 1–30. + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +# Index of Applications + +| Adobe Illustrator 53 | Calendly 34 | +|---------------------------------------------|-----------------------------------------------| +| Adobe InDesign 31, 51, 53, 121–122, 161– | Carbonite 117 | +| 162, 244, 265–266, 296 | change.org 112 | +| Adobe Lightroom 95, 120–121, 138, 151– | Chip and PIN 70, 258 | +| 153, 247, 271–272, 281–282, 282, 290, 293 | Crashplan 117 | +| Adobe Photoshop 33, 34, 68, 90, 211, 250, | CSS 256–257 | +| 267–269, 274, 286–288, 290 | Dropbox 17–23, 40, 50, 203–205, 205–206 | +| Amazon Prime 113 | Drupal 214, 289 | +| Apple Calendar 92–94 | | +| Apple Color Picker 54, 236 | Emacs 31 | +| Apple Contacts 153–154, 294 | Epson (printer) 94, 137, 286 | +| Apple Finder 243, 282 | | +| Apple HyperCard 290 | Facebook 13, 29, 69, 104, 133–139, 141–143, | +| Apple iCloud 40 | 147, 148, 238, 251, 277, 288 | +| Apple iPhone 215 | Fujilm (camera) 138–139, 208 | +| Apple iPod 212, 214 | | +| Apple iTunes 214–215 | Git 134, 204, 254 | +| Apple Keynote 73, 106, 129, 149–151, 209, | Gitless 254 | +| 210, 274, 278 | Gmail 37, 50, 89, 93, 114–116, 123, 128, 130, | +| Apple Lisa 33, 47 | 132, 136, 136–139, 143, 213, 243, 266, 271, | +| Apple Macintosh 12, 24, 33, 47, 90, 188, | 279–280, 283 | +| 204, 206 | Google Apps 25, 93, 164, 271 | +| Apple Mail 50, 60, 118–119, 123, 128, 131, | Google Calendar 92–94 | +| 279 | Google Docs 60, 61, 237 | +| Apple Numbers 74–76 | Google Drive 50, 162–164, 296, 297 | +| Apple Pages 51, 53, 121–122, 161–162, 295– | Google Forms 95, 272 | +| 296 | Google Groups 94–96, 148 | +| Apple Photos 40 | Google Hangouts 73, 198 | +| Apple Podcasts 88 | Google Sheets 95 | +| Apple Preview 210 | Google Slides 274 | +| Apple Safari 105, 278 | | +| Apple TextEdit 160–162, 224, 296 | Hacker News 288 | +| Apple Trash 47–51, 91–92, 212, 220, 243, | Instagram 147 | +| 264, 270 | | +| Atom 31 | LaTeX 32 | +| | LinkedIn 41 | +| Backblaze 16–17, 111–112, 116–118, 123, 280 | Linux 50 | +| BBEdit 31, 291 | | +| Bravo 237 | Mastermatic 266 | + +Mercurial 134 Microso Outlook 270–271 Microso PowerPoint 53, 129, 149–151, 209, 274, 291–292, 292 Microso Publisher 31 Microso Teams 73 Microso Windows 24, 90, 208, 237, 270 Microso Word 31, 51, 53, 121–122, 211, 237, 243, 247, 265 Moira 89, 266 Multics 205 Netix 142, 273 NokNok 294 Open Oce 31 OpenTable 251, 265 Oracle Java 109–111 OS X (macOS) 208 El Capitan 50 Lion 51, 64 Mountain Lion 255 PayPal 114 Piazza 101 PostScript 160 Reddit 288 Scribus 31 Signal 142 Skype 198 Slack 142, 148 SnapChat 147 Squarespace 129 StackExchange 101 Sublime 31 Subversion 134 Teabox 267 erac-25 96, 273 TikTok 274 Todoist 81 Tumblr 93 Twier 29, 65, 93, 134, 147, 148, 255–256, 290 Unix 12, 203–205 VisiCalc 34, 289 WhatsApp 147, 148, 274 WordPerfect 31 WordPress 289 + +QuarkXPress 31, 53 Quora 70, 101 + +Zoom 73, 96, 131, 197, 272–273, 283 + +Zotero 120 + +### Index of Concepts + +access control 86, 261 account 239 action 153, 290 adjustment 240 administrative group 89 adverse interaction 216 animation 106, 278, 279 article 174 aspect ratio 138, 139 asset 239, 240 audio mute 96 auditing 41 authentication 41, 239, 241 authorization 41 auto caption 274 available funds 66 backup 16, 17, 111, 128 bank 239 ba ery 73, 260 BCC 136 bookmark 61, 66, 105, 134, 278 boxing 254 branch 254 breakout 283 broadcast 131, 283 cache 105 calendar event 92, 272 call 15, 274 call forwarding 62, 87 capability 41 category 130, 170 cellular 88 certi cate 35, 105 channel 90, 148, 211, 240, 267 –270 chapter 31 character 31 character style 278 chat 131, 283 chatroom 148 chip 70 class (CSS) 53 cleared check 67 cloud app 164 collateral 239 collection 120 color theme 53 comment 29, 93, 104, 148, 174, 246, 246 – 247, 276 –277, 277 commit 135 contact 87, 153, 154 conversation 30, 114, 279 cookie 105, 278 correspondent 128, 169 coupon 267 cropping 170, 286, 288 cursor 291 delegate forwarding 63 direct ight 71 directory 203 domain name 87, 210 donation 113 do not disturb 112 dose 42, 216 editor bu er 64, 254 email 30, 85, 86, 176, 261, 263, 295 email address 93 equity 239 event type 34 existence coupling 84 favorite 65 –66, 105, 134, 148, 255, 278 FDIC insurance 239 lter 132, 281–282 ag 118, 281, 283, 284 folder 15, 30, 90 –92, 120, 172, 176, 177, 203, 204, 243, 270, 271, 279 follower 134, 148 + +follow-me forwarding 63 format 32, 121, 211, 225, 244 format toggle 159–162, 164, 296 formula 34 free sample 89 frequent yer 36, 114, 212 frequently visited 105, 278 friend 30, 86, 104, 133, 134, 148, 277 group 38, 44, 148, 237–238 group directory 94 hashtag 290 holding 240 HTML 34 HP 87 hypertext 290 identication 101–104, 274, 277 image quality 138 image size 67–69, 138, 139, 256–257 index 254 install 110 interbank transfer 239 invitation 38, 92 karma 288 keyword 282 label 30, 37, 81–85, 85–88, 88–90, 99, 114– 116, 130, 168, 176, 213, 262, 263, 266, 279– 280, 281 layer 33, 34, 106, 167, 211, 240, 250, 268, 274, 290 like 13, 29, 66, 105, 141–143, 170, 278, 288 line 31 link 34 loan 239 log 270 mailbox 30 mailing list 89 markup 290 mask 33, 34, 90, 211, 268, 290 master 266 master page 265 master slide 106, 274 message 148 metadata 21, 241 moderation 38, 39, 148 nickname 153, 154, 294 no-show 56 notication 38, 69, 87, 97, 148, 158, 171, 243, 245 object list view 209 outline tree 151, 279 page 32 page cache 35 paper feed 137, 286 paper option 94 paper size 137, 286 paper source 94 paragraph 31, 32, 106, 211, 225, 244 paragraph style 278 password 177, 241 permission 94 petition 112–114, 113 phone call 87 photo 277 PIN 70 pixel 240 pixel array 67, 68, 267, 269 podcast 88 poke 63, 251 post 29, 38, 86, 87, 93, 104, 105, 148, 167, 174, 232, 238, 243, 246, 247, 276, 277 precis 135 prescription 216 preset 138, 151–153, 293–294 preset station 253 private browsing 35, 105, 278 prole 238, 273 proling 142, 143 publication 240 push poll 71 Q&A 101–102, 102–104, 275 + +#### index of concepts + +| raised hand 96 | stylesheet 106 | +|------------------------------------------------|-------------------------------------------------| +| range 74, 74–76, 172 | style (TextEdit) 54 | +| rating 148, 233 | subject line 135, 136 | +| reaction 141–143, 278 | subscription 148 | +| | | +| reading list 106, 278 | swatch (Illustrator) 53, 54 | +| recent activity 148 | synchronization 40, 163, 164, 214–215, 297 | +| recommendation 142, 143, 288 | table 176 | +| recording 101, 103, 104, 277 | tag 69, 102, 104, 277 | +| reference 34 | target 73 | +| reply 104, 277, 278 | template 129, 140 | +| request 38 | text block 106 | +| resampling 288 | text ow 32 | +| reservation 15, 55–57, 58, 72, 158, 176, 201, | | +| 220, 223, 227, 229, 230, 231, 233, 234, 236, | text style 106 | +| 237, 238, 239, 243, 245, 251, 263, 264, 265 | theme 106, 129 | +| review 158, 265, 285 | this object 255 | +| rule 132 | threaded comment 278 | +| | timeline 238 | +| save as 255 | title 93 | +| seat 36 | todo 81, 82, 83, 84, 85, 86, 88, 99, 234, 262 | +| seat allocation 229 | transition 278 | +| section 31, 60, 61, 150, 171, 212, 291 | trash 33, 34, 47–51, 61, 74, 89, 90–92, 172, | +| selection 90, 268, 282, 291 | 176, 177, 205, 219–220, 220–221, 223, 225, | +| selection pane 209 | 228, 229, 230, 237, 238, 240, 243, 245, 262, | +| shape 106 | 295, 297 | +| shape style 278 | tweet 93 | +| shared song 274 | two-factor authentication 41, 215 | +| sharing 21 | typeface 159, 160, 161 | +| shopping cart 89 | | +| slide 106 | Unix folder 22, 270 | +| slide group 149–151 | unread 87 | +| slideshow 73 | upvote 15, 39, 66, 87, 101, 102, 103, 104, 109, | +| social security number 237 | 141–143, 148, 241, 277, 278, 288, 289 | +| song 36, 212 | URL 34, 105, 167, 232, 290 | +| special block 106, 278, 279 | user 70, 101, 102, 103, 104, 105, 273, 275 | +| staging area 254 | username 93 | +| star 283, 284 | | +| stash 254 | VIP 60 | +| status update 238 | web service 210, 211 | +| stock 239 | Wi-Fi 88 | +| style 32, 51–54, 106, 121, 129, 211, 220, 223, | | +| 224, 225, 229, 235, 236, 237, 238, 240, 241, | Zoom session 272 | +| 243, 244, 245, 253, 263, 265, 266, 274 | | +| | | + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +## Index of Names + +Adams, President John 196 Aldrich, Jonathan 193 Alexander, Christopher 9, 194, 195, 258, 291 + +Bachman, Charles 240 Batory, Don 247 Berners-Lee, Tim 290 Bjorner, Dines 203 Bossavit, Laurent 193 Bricklin, Dan 34, 289 Brignull, Harry 279 Bringhurst, Robert 195 Brooks, Fred 100, 199–200 + +Bruns, Glen 248 Buxton, Bill 192, 207 + +Card, Stuart 188, 198, 199 Charles, Prince of Wales 153, 294 + +Chen, Peter 200 Codd, Edgar 289 Constantine, Larry 258 Cunha, Alcino 230 + +Dijkstra, Edsger 197, 213, 264 + +Dorsey, Jack 41 + +Eames, Charles 183 Eames, Ray 183 Egan, Kieran 286 + +Elizabeth II, Queen 153, 294 + +Evans, Eric 202 + +Faste, Rolf 249 Floyd, Bob 189 Foley, James 206 Fowler, Martin 201 Fu, Kevin 215 + +Greenberg, Saul 192 Green, omas 188, 207 Gunter, Carl 249 Gunter, Elsa 249 + +Hoare, Tony 189, 197, 263 + +Hollan, Jim 252 Hutchins, Ed 252 + +Ingram, Mahew 255 Isaacson, Walter 212 Ive, Jony 183 + +Jackson, Michael 11, 195, 202, 213, 222, 249, + +250, 259 Jackson, Tim 219 Jacobson, Ivar 224 Jen, Natasha 195 Jobs, Steve 36, 183, 212 + +Kaashoek, Frans 203 Kapor, Mitchell 184, 185, 186 + +Kleer, Johan de 294 Ko, Amy 211 Koppel, Jimmy 275 + +Lampson, Butler 203, 237 Latour, Bruno 264 Leveson, Nancy 273 Levy, Mays 195 Liddle, David 186 Linnaeus, Carl 236 + +Madrigal, Alexis 237 McIlroy, Doug 196 McKim, Robert 249 Menzies, Tim 187 Mitnick, Kevin 215 Molich, Rolf 188 + +Moran, Tom 188, 198, 199, 206 + +Mo, Tim 237 + +Mylopoulos, John 200 + +Newell, Allen 188 Newton, Casey 255 Newton, Isaac 222 Nielsen, Jakob 188 + +Norman, Don 26, 43, 188, 198, 216, 219, 251, 252, 293 + +Olson, Kirsten 13 Ostroy, Andy 65 Ovide, Shira 197 + +Parnas, David 192, 247, 274, 276 Perez De Rosso, Santiago 214, 254 Perrow, Charles 195 Petroski, Henry 195 Polanyi, Michael 195, 222 Pomiane, Edouard de 1, 5, 183 + +Rose, David 208 Rumsfeld, Donald 259 + +Saca, Chris 255 Saltzer, Jerry 203 Seely Brown, John 294 Seward, Don 258 Shneiderman, Ben 216 Simon, Herb 258 Simonyi, Charles 237 Spang, Rebecca 237 + +Suh, Nam 195 + +Tesler, Larry 237 + +imbleby, Harold 189, 197, 216, 223 + +Tognazzini, Bruce 188 Tschichold, Jan 195 Turner, Clark 273 + +Uhlrich, Karl 284 + +van Dam, Andries 206 van Lamsweerde, Axel 250 + +Victor, Bret 208 Vincenti, Walter 289 von Hippel, Eric 290 + +Wheeler, David 241 Whitney, Eli 196 Winograd, Terry 184 + +Yu, Eric 258 + +Zave, Pamela 249, 251 Zhang, Kelly 205 + +# Index of Topics + +| abstraction 25–26 | call forwarding 62–63, 87, 251, 295 | | | +|--------------------------------------|--------------------------------------------|--|--| +| access control 86 | cognitive dimensions of notations 188, 207 | | | +| accessibility 24 | commit graph 134–139 | | | +| action 49 | compatibility 241 | | | +| ambiguous 120 | composition 79–97 | | | +| formalized 227 | collaborative 85–88 | | | +| inferred 87 | conventional 79–80 | | | +| not in logic 231 | free 81–85 | | | +| overcomplicated 175 | preserves concept behavior 261 | | | +| aordance 188, 293 | semantics 260–264 | | | +| Afghanistan 72 | state-based 269–270 | | | +| agile development 11, 209, 224 | synchronization 80 | | | +| airlines 36, 113, 212, 236 | synergistic 88–90, 114 | | | +| Alloy (language) 9, 184 | views and, 269–270 | | | +| automation and, 11 | concept | | | +| concepts and, 225 | abstract type vs. 246–247 | | | +| exploration and, 197 | actions 49, 175, 227 | | | +| operational principle in, 230 | age 167 | | | +| analytics 86 | API design and, 178 | | | +| anthropomorphism 264 | basis of design critique 42 | | | +| assurance case 259 | behavior 57, 240–241 | | | +| auditing 86 | catalog 173, 175 | | | +| authentication 35 | competitors' 169 | | | +| | complicated 145 | | | +| backup | composite 176 | | | +| cloud storage and, 40 | composition 79–97, 99 | | | +| confusing 16–17, 111–112 | conformity 153–154 | | | +| deletion and, 128 | consistent subset 103 | | | +| Google Drive 297 | core 35–36, 167 | | | +| restore 116–118, 280 | | | | +| version control and, 134–139 | costs & benets 37–38 | | | +| baery failure 72–73 | data model 58 | | | +| benecent diculty 250 | denes app 29–31 | | | +| B (formal method) 196 | denes app family 31–33 | | | +| bird song app 100–101 | denes business 35–36 | | | +| bloat, in applications 209 | dependence 99–107, 102–104, 172, 174, | | | +| bounded context 202 | 246, 275–277 | | | +| Bringing Design to Soware (book) 185 | dependence diagram 102–104 | | | +| browser 35, 105 | deterministic 228 | | | +| bugs, and verication 189 | dishonest 36 | | | +| | evolving 237–248 | | | + +| concept, continued | concept, continued | +|-------------------------------------------|--------------------------------| +| explanation order 104, 173 | shared across family 168 | +| familiarity 147–155, 171 | specicity 127–145, 153 | +| feature vs. 247–248 | spliing 171 | +| aw in code 178 | state 48, 52 | +| freestanding 99–107, 157, 245–246, 275, | stateful 241–242 | +| 294 | structure 47–58 | +| generic 13, 101–102, 123, 164, 174, 176, | synchronization 157, 175 | +| 234, 243–245 | synergy 172 | +| handbook 39, 173, 175 | tricky 34–35 | +| happy and sad 170 | troubled 168 | +| identifying usability snags 40 | vocabulary 169 | +| implementation 174–175 | conceptual integrity 199–200 | +| integrity 157–164, 172, 261 | conceptual modeling | +| inventive 236–238 | eld 200–201 | +| inventory 36, 100–101 | origins 198–200 | +| key characteristics 236–248 | concreteness fading 243 | +| localizes data model 242–243 | consistency 25 | +| localizes design 47 | correctness 189 | +| mapping 109–123, 172, 199, 281–282 | critical systems 215 | +| medical 216 | crowdsourcing 101, 103 | +| mental concept vs. 248 | CSP (Communicating Sequential | +| mist 154 | Processes) 263–264 | +| missing 169 | | +| modularity 177–178 | dark paern 112–114 | +| most valuable 168 | data model 58 | +| name 48, 221 | defect elimination | +| near miss 236 | focus of research 10 | +| one-to-one with purpose 127–145 | parable 191–192 | +| operational principle 49, 51, 56, 61, 74, | soware quality and, 190–192 | +| 110, 113, 123, 158, 170, 221–222 | Demeter, Law of 276 | +| overloaded 132–139, 144, 145, 170 | dependability case 259 | +| product dierentiator 33–34, 274 | dependence | +| purpose 48, 59–77, 168, 173 | between concepts 99–107 | +| purposeless 127, 144, 254 | concept vs. code 275–277 | +| purposive 238–240 | diagram 102–104, 174 | +| redundant 130–132, 144, 145, 170, 283 | emerges from details 277 | +| responds to problem 273–274 | module vs. concept 245 | +| reuse 39, 147–151 | Parnas denition 274–275 | +| security and safety 41–42, 215 | primary vs. secondary 277, 278 | +| seed 101 | signicant idea 187 | +| semantics 225–226, 225–231 | design | +| separating concerns 38 | axiomatic 195, 285 | +| | clarity and, 11–12 | + +#### index of topics + +| design, continued | engineering, vs. science 222 | +|-------------------------------------|-------------------------------------------| +| critique 42 | entity-relationship diagram 58 | +| democratization of 194 | | +| domain-driven 202–203 | failures, of soware 195 | +| expert vs. novice 147 | familiarity, of concepts 147–155, 171 | +| HCI research 188–189 | family, of applications 103, 168, 247–248 | +| importance of details 183, 195 | faucet 63–64, 252 | +| inevitability 292–293 | feature | +| internal, of soware 10, 186 | concept vs. 247–248 | +| levels 23–26, 206–207 | diagram 277 | +| meaning of term 9, 185–186 | interaction 248, 294–295 | +| normal vs. radical 289–290 | Fis's law 24, 208 | +| novelty 195 | fonts, professional 160 | +| origins of soware 184–186 | formal methods | +| other domains 195 | automation and, 11 | +| paern 194, 195, 291 | benets of modeling alone 11 | +| principles 216–219 | in general 9 | +| reuse and, 194 | model-based 196 | +| safety 41–42, 216 | specication languages 196–197 | +| security 41–42, 215 | verication 189–190 | +| soware engineering research 187 | write-only 11 | +| teams 38 | formal methods, specic | +| top-down 213 | Alloy 9, 11, 184, 197, 225, 230, 235 | +| | B 196 | +| typography 195 | Electrum 184, 227 | +| user-centered 188 | Larch 196, 197 | +| design journal 173 | OBJ 196 | +| Design of Everyday ings (book) 198, | TLA 231 | +| 216, 219, 251, 252 | VDM 196, 225 | +| design thinking | Z 184, 196, 225, 235 | +| aided by concepts 193–194 | | +| domain-independent 11, 193–194 | generated inputs 262–263 | +| qualms about 194–195 | GenVoca (framework) 247 | +| desktop publishing apps 32–33 | goal, vs. purpose 219–220 | +| determinism 228 | gulfs of execution and evaluation 252–254 | +| digital transformation 35–36 | | +| discoverability 209 | heuristic evaluation 43, 188 | +| domain modeling 202–203 | human-computer interaction | +| d.school 185, 249 | design and, 10–11, 188–189 | +| | design principles 216–219 | +| Electrum (language) 184, 227 | empiricism and, 10, 217 | +| email 30, 132 | formal methods and, 197 | +| empiricism | mapping and, 109 | +| research and, 10, 192–193 | psychology and, 208 | +| soware design and, 3 | | + +| IDEO (company) 249 | model | +|---------------------------------------|----------------------------------------| +| i* framework 258 | conceptual 12, 210–211 | +| incremental development 99–100 | data 221, 242–243 | +| indirection 241 | domain 242 | +| inevitability, in design 292–293 | entity-relationship 200, 201 | +| inscription 264 | localized data 202 | +| invariants, in programming 187 | mental 164, 169, 206, 294 | +| JSD ( Jackson System Development) 202 | role 240
    semantic data 200 | +| Larch specication language 196, 197 | Mythical Man Month (book) 199 | +| learnability 211 | nail clipper 284 | +| levels of design 23–26 | names, role in design 221 | +| conceptual 25 | nanny scam 66–67 | +| linguistic 24 | near-miss concept 236 | +| physical 23 | neednding 248–249 | +| listserv 136 | no-function-in-structure principle 294 | +| liveness property 261 | none, as value 121–122 | +| logging 86 | Notes on the Synthesis of Form (book) | +| logic | 258–259 | +| dynamic 229 | | +| rst order 235 | object | +| linear temporal 230 | classication 231–234 | +| temporal 250 | entity vs. value 202 | +| | identity 232 | +| mapping | mutability 232 | +| live ltering 281–282 | roles 231–234 | +| Norman's usage 43, 188 | object-oriented programming 246–247, | +| overview 109–123 | 275–277 | +| principles 177 | OBJ (specication language) 196 | +| questions 172 | OOram (Object-oriented Role Analysis | +| mental model 12, 26–27, 198, 248, 294 | and Modeling) 240 | +| metaphor | operational principle 49 | +| inscription vs. 264 | anthropomorphism and, 264 | +| misleading 173, 220 | elaborate 51 | +| unhelpful 76, 250 | explanation and, 56 | +| micromaniac 1, 5 | formalizing 229–231 | +| minimum viable product 99, 174 | fullls purpose 61 | +| mist 71–76 | liveness and, 262 | +| from context 267 | mapping and, 123 | +| origins 258 | origins 195, 222 | +| safety and, 273 | partial theorem and, 223 | +| verication and, 259 | subtle 74 | +| mobile phone 88 | support materials and, 170 | +| | | + +#### index of topics + +| theorem and, 221 | purpose 48, 59–77 | +|-----------------------------------------|-----------------------------------| +| unclear 113 | clarity of 60–61 | +| use case vs. 224–225 | coherence of 145 | +| violated 158 | concept without 63–65 | +| workows and, 110 | conict of 140 | +| overloading 132–139 | confusing 66–67 | +| consequences 144 | criteria for 61–62 | +| denied purpose 132–133, 134–135 | deceitful 70–71 | +| emergent purpose 132–133, 135–136 | essential 145 | +| false convergence 132–133, 133–139, 286 | goal vs. 219–220 | +| mechanical design 284–285 | granularity & coherence 140 | +| piggybacking 132–133, 137–307 | importance 238–240 | +| social concepts 285–286 | kinds of 176 | +| suggests spliing 145 | misleading 69–70 | +| summarized 144 | reformulation of 140 | +| synergy and, 271 | resolves design puzzles 62–63 | +| upvote concept 289 | stakeholder for 140 | +| | unfullled due to mists 71–72 | +| partial theorem 223 | without concept 127–129, 144, 145 | +| paern | | +| analysis 201 | radiotherapy 96 | +| dark 212, 279 | redundant concepts 130–132 | +| design 194, 195, 291 | refactoring 225 | +| Gang of Four 291 | refrigerator controls 251 | +| perceptual fusion 24 | relational join 235–236 | +| permutation invariance 234 | representation exposure 187 | +| phishing 35 | representation independence 187 | +| pleasantness problem 189 | requirements | +| PLGR (precision lightweight GPS | Alexander's method 258 | +| receiver) 72–73, 259–260 | belong to domain 202 | +| Post-its 195 | complete 258 | +| precondition 226–227 | negative 72, 258 | +| integrity and, 262 | overview 249–250 | +| operator 229 | use cases and, 224 | +| problem frames 202 | reservation | +| product line 103 | conicts 236 | +| programming language | networking 57 | +| Algol-68 197 | railway 57 | +| Fortran 186 | restaurant 56, 223, 239, 264 | +| Java 240, 254, 276 | resolution, of image 67–69 | +| JavaScript 255 | revengeful restaurateur 158–159 | +| PL/1 197 | | +| Psychology of Human-Computer Interac | safety-critical systems 215 | +| tion (book) 188, 208 | safety property 261 | + +| search 128 | state 48, 52 | +|------------------------------------|-------------------------------------| +| security 41–42, 215 | function 228 | +| semantics | memory and, 221 | +| composition 260–264 | mutable objects and, 233 | +| concept 225–231 | state machine 225–226 | +| usability and, 207 | style | +| separation of concerns 88, 213–214 | inheritance 54, 223 | +| simplicity 40, 197–198 | linked to page master 266 | +| slideshow 73–74 | next 244 | +| SMV (model checker) 184 | override 54 | +| soware engineering | partial 54, 121–122, 296 | +| best quotes 197 | user-dened 237 | +| body of knowledge 186 | synchronization 80–97 | +| components 196 | actions enough? 177 | +| defect elimination and, 190 | complex 175 | +| design vs. 10–11, 185 | concept of 40 | +| empiricism and, 10 | mitigation 87 | +| empiricism in, 192 | over 92–94, 171, 271 | +| folklore beliefs in, 193 | removes executions 84–85 | +| requirements 249–250 | semantics 260–264 | +| research narrowed 10, 187 | staging 87 | +| specication | suppression 86 | +| abstraction and, 25 | under 94–96, 171 | +| correctness and, 189 | synergy 88–90 | +| dependences and, 187 | Apple Trash 90, 177, 270 | +| design and, 190, 196–197 | Gmail 89, 114, 266 | +| essential knowledge 186 | Google Forms 95 | +| feature interaction and, 294 | imperfect 90, 91–92, 267 | +| integrity and, 261 | Netix 273 | +| languages 11 | Outlook 270 | +| liveness and, 261 | Photoshop 90, 267–269 | +| mist and, 259 | proliferation suggests 106 | +| operational principle vs. 50 | questions 172 | +| pleasantness and, 189 | Safari 278 | +| preserving, of concept 157 | state-based 269–270 | +| requirement vs. 249 | trade-o example 266 | +| safety and, 261 | system image 26 | +| top-down and, 213 | | +| verication and, 189 | Terminal World 208 | +| views 269 | testing 10, 72 | +| spreadsheet 34 | text messaging 30 | +| staging 87 | TLA (Temporal Logic of Actions) 231 | + +#### index of topics + +toaster 222 trace 228 trac light 259 training materials 173 transition relation 226–227 trepanning 280, 294 type abstract data 246–247 interpreted vs. uninterpreted 233–234 + +USB key 50, 74 use cases and user stories 224–225 user manual 169, 173, 293 uses relation 274–275 + +VDM (Vienna Development Method) 196, 225 + +verication + +does not prevent mists 259 equated to soware quality 10 history 189–190 + +waterfall process 193 WIMP (windows, icons, menus, pointer) 33, 253 word processors 32–33 World Wide Web 34, 290 + +Xerox PARC 33, 198, 237, 289 + +Z (specication language) 184, 196, 225 + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +| | | Draft: not for distribution or quotation. © 2018 DanielJackson | +|--|--|----------------------------------------------------------------| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +| | | Draft: not for distribution or quotation. © 2018 DanielJackson | +|--|--|----------------------------------------------------------------| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | + +| Draft: not for distribution or quotation. © 2018 DanielJackson | | | +|----------------------------------------------------------------|--|--| +| | | | +| | | | +| | | | +| | | | +| | | | +| | | | \ No newline at end of file diff --git a/raw/book/EssenceOfSoftware_Eng/concepts-301-328/concepts-301-328_meta.json b/raw/book/EssenceOfSoftware_Eng/concepts-301-328/concepts-301-328_meta.json new file mode 100644 index 0000000..45d48dd --- /dev/null +++ b/raw/book/EssenceOfSoftware_Eng/concepts-301-328/concepts-301-328_meta.json @@ -0,0 +1,1406 @@ +{ + "table_of_contents": [ + { + "title": "references", + "heading_level": null, + "page_id": 0, + "polygon": [ + [ + 198.32080078125, + 40.86962890625 + ], + [ + 254.73779296875, + 40.86962890625 + ], + [ + 254.62448120117188, + 52.36962890625 + ], + [ + 197.45947265625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 1, + "polygon": [ + [ + 152.7680206298828, + 40.86962890625 + ], + [ + 276.2435302734375, + 40.86962890625 + ], + [ + 276.2435302734375, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "references", + "heading_level": null, + "page_id": 2, + "polygon": [ + [ + 198.32080078125, + 40.86962890625 + ], + [ + 254.73779296875, + 40.86962890625 + ], + [ + 254.63027954101562, + 52.36962890625 + ], + [ + 197.45947265625, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 3, + "polygon": [ + [ + 152.76812744140625, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "references", + "heading_level": null, + "page_id": 4, + "polygon": [ + [ + 198.3826141357422, + 40.86962890625 + ], + [ + 254.63027954101562, + 40.86962890625 + ], + [ + 254.63027954101562, + 52.36962890625 + ], + [ + 197.6748046875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 5, + "polygon": [ + [ + 152.7624969482422, + 40.86962890625 + ], + [ + 276.2380065917969, + 40.86962890625 + ], + [ + 276.2380065917969, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "references", + "heading_level": null, + "page_id": 6, + "polygon": [ + [ + 198.32080078125, + 40.86962890625 + ], + [ + 254.73779296875, + 40.86962890625 + ], + [ + 254.6302490234375, + 52.36962890625 + ], + [ + 197.45947265625, + 52.36962890625 + ] + ] + }, + { + "title": "Index of Applications", + "heading_level": null, + "page_id": 8, + "polygon": [ + [ + 60.0, + 66.0146484375 + ], + [ + 206.79795837402344, + 64.7138671875 + ], + [ + 206.79795837402344, + 86.2142333984375 + ], + [ + 59.21630859375, + 86.2142333984375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 9, + "polygon": [ + [ + 152.23974609375, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.23974609375, + 52.36962890625 + ] + ] + }, + { + "title": "Index of Concepts", + "heading_level": null, + "page_id": 10, + "polygon": [ + [ + 60.0, + 65.689453125 + ], + [ + 186.35800170898438, + 65.689453125 + ], + [ + 186.35800170898438, + 86.2142333984375 + ], + [ + 60.0, + 86.2142333984375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 11, + "polygon": [ + [ + 152.0244140625, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.0244140625, + 52.36962890625 + ] + ] + }, + { + "title": "index of concepts", + "heading_level": null, + "page_id": 12, + "polygon": [ + [ + 182.1708984375, + 40.86962890625 + ], + [ + 275.472900390625, + 40.86962890625 + ], + [ + 275.472900390625, + 52.36962890625 + ], + [ + 182.1708984375, + 52.36962890625 + ] + ] + }, + { + "title": "Index of Names", + "heading_level": null, + "page_id": 14, + "polygon": [ + [ + 60.0, + 58.8603515625 + ], + [ + 168.37799072265625, + 58.8603515625 + ], + [ + 168.37799072265625, + 79.97406005859375 + ], + [ + 60.0, + 79.97406005859375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 15, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.24359130859375, + 40.86962890625 + ], + [ + 276.24359130859375, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "Index of Topics", + "heading_level": null, + "page_id": 16, + "polygon": [ + [ + 60.0, + 58.53515625 + ], + [ + 165.59799194335938, + 58.53515625 + ], + [ + 165.59799194335938, + 79.97406005859375 + ], + [ + 59.431640625, + 79.97406005859375 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 17, + "polygon": [ + [ + 152.67041015625, + 40.86962890625 + ], + [ + 276.2379150390625, + 40.86962890625 + ], + [ + 276.2379150390625, + 52.36962890625 + ], + [ + 152.67041015625, + 52.36962890625 + ] + ] + }, + { + "title": "index of topics", + "heading_level": null, + "page_id": 18, + "polygon": [ + [ + 186.69287109375, + 40.86962890625 + ], + [ + 265.0307922363281, + 40.86962890625 + ], + [ + 265.0307922363281, + 52.36962890625 + ], + [ + 185.83154296875, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 19, + "polygon": [ + [ + 152.76809692382812, + 40.86962890625 + ], + [ + 276.2436218261719, + 40.86962890625 + ], + [ + 276.2436218261719, + 52.36962890625 + ], + [ + 152.67041015625, + 52.36962890625 + ] + ] + }, + { + "title": "index of topics", + "heading_level": null, + "page_id": 20, + "polygon": [ + [ + 186.26220703125, + 40.86962890625 + ], + [ + 265.0307922363281, + 40.86962890625 + ], + [ + 265.0307922363281, + 52.36962890625 + ], + [ + 186.26220703125, + 52.36962890625 + ] + ] + }, + { + "title": "the essence of software", + "heading_level": null, + "page_id": 21, + "polygon": [ + [ + 152.455078125, + 40.86962890625 + ], + [ + 276.2378234863281, + 40.86962890625 + ], + [ + 276.2378234863281, + 52.36962890625 + ], + [ + 152.455078125, + 52.36962890625 + ] + ] + }, + { + "title": "index of topics", + "heading_level": null, + "page_id": 22, + "polygon": [ + [ + 186.4775390625, + 40.86962890625 + ], + [ + 265.0309143066406, + 40.86962890625 + ], + [ + 265.0309143066406, + 52.36962890625 + ], + [ + 186.4775390625, + 52.36962890625 + ] + ] + } + ], + "page_stats": [ + { + "page_id": 0, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 142 + ], + [ + "Line", + 42 + ], + [ + "ListItem", + 17 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 1, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 166 + ], + [ + "Line", + 42 + ], + [ + "ListItem", + 20 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 2, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 148 + ], + [ + "Line", + 42 + ], + [ + "ListItem", + 17 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 3, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 150 + ], + [ + "Line", + 42 + ], + [ + "ListItem", + 17 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 4, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 149 + ], + [ + "Line", + 43 + ], + [ + "ListItem", + 17 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 5, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 164 + ], + [ + "Line", + 42 + ], + [ + "ListItem", + 20 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 6, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 115 + ], + [ + "Line", + 33 + ], + [ + "ListItem", + 14 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ], + [ + "ListGroup", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 7, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 8, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 267 + ], + [ + "TableCell", + 80 + ], + [ + "Line", + 72 + ], + [ + "SectionHeader", + 1 + ], + [ + "Table", + 1 + ], + [ + "Text", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 9, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 178 + ], + [ + "Line", + 51 + ], + [ + "Text", + 4 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 10, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 293 + ], + [ + "Line", + 86 + ], + [ + "SectionHeader", + 1 + ], + [ + "Text", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 11, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 300 + ], + [ + "Line", + 82 + ], + [ + "SectionHeader", + 1 + ], + [ + "Text", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 12, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 350 + ], + [ + "TableCell", + 90 + ], + [ + "Line", + 82 + ], + [ + "SectionHeader", + 1 + ], + [ + "Table", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 13, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 14, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 231 + ], + [ + "Line", + 73 + ], + [ + "Text", + 25 + ], + [ + "SectionHeader", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 15, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 128 + ], + [ + "Line", + 41 + ], + [ + "Text", + 15 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 16, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 260 + ], + [ + "TableCell", + 84 + ], + [ + "Line", + 80 + ], + [ + "SectionHeader", + 1 + ], + [ + "Table", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 17, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 284 + ], + [ + "Line", + 88 + ], + [ + "TableCell", + 88 + ], + [ + "SectionHeader", + 1 + ], + [ + "TableOfContents", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 18, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 276 + ], + [ + "TableCell", + 90 + ], + [ + "Line", + 86 + ], + [ + "SectionHeader", + 1 + ], + [ + "TableOfContents", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 19, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 255 + ], + [ + "TableCell", + 86 + ], + [ + "Line", + 85 + ], + [ + "SectionHeader", + 1 + ], + [ + "TableOfContents", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 20, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 265 + ], + [ + "TableCell", + 88 + ], + [ + "Line", + 87 + ], + [ + "SectionHeader", + 1 + ], + [ + "TableOfContents", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 21, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 277 + ], + [ + "Line", + 85 + ], + [ + "TableCell", + 84 + ], + [ + "SectionHeader", + 1 + ], + [ + "TableOfContents", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 22, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "Span", + 89 + ], + [ + "Line", + 28 + ], + [ + "Text", + 8 + ], + [ + "SectionHeader", + 1 + ], + [ + "PageFooter", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 23, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 24, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 25, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 26, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + }, + { + "page_id": 27, + "text_extraction_method": "pdftext", + "block_counts": [ + [ + "TableCell", + 33 + ], + [ + "Form", + 1 + ] + ], + "block_metadata": { + "llm_request_count": 0, + "llm_error_count": 0, + "llm_tokens_used": 0, + "previous_text": "", + "previous_type": "", + "previous_order": 0 + } + } + ], + "debug_data_path": "debug_data\\concepts-301-328" +} \ No newline at end of file diff --git a/wiki/index.md b/wiki/index.md index fd7275a..bfd67bd 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -32,6 +32,14 @@ updated: 2026-04-30 - [[SDF-ch5-evaluation]] — Hanson & Sussman, Ch5, 제네릭 인터프리터·lazy eval·amb·call/cc - [[SDF-ch6-layering]] — Hanson & Sussman, Ch6, 레이어드 데이터/프로시저로 단위·의존성 추적 - [[SDF-ch7-propagation]] — Hanson & Sussman, Ch7, 전파 모델·부분 정보 결합·의존성 지향 백트래킹 +- [[EOS-overview]] — Daniel Jackson (2021), 책, "The Essence of Software" 전체 개요·설계 3수준·개념 정의 +- [[EOS-part1-motivations]] — Jackson, Part I (Ch1–3), 왜 개념 설계인가·Backblaze·Dropbox 사례·개념의 역할 +- [[EOS-ch4-concept-structure]] — Jackson, Ch4, 개념 5요소(이름·목적·상태·행동·운영원칙)·trash·style·reservation +- [[EOS-ch5-concept-purposes]] — Jackson, Ch5, 좋은 목적의 기준·목적 없는 개념·미스피트 +- [[EOS-ch6-concept-composition]] — Jackson, Ch6, 자유·협력·시너지 조합·동기화·과잉/과소 동기화 +- [[EOS-ch7-concept-dependence]] — Jackson, Ch7, 개념 의존 다이어그램·BirdSong·Facebook·Safari·Keynote 구조 +- [[EOS-ch8-concept-mapping]] — Jackson, Ch8, 개념→UI 매핑·다크 패턴·Gmail 레이블 이슈·라이브 필터링 +- [[EOS-part3-principles]] — Jackson, Part III (Ch9–11), 특정성·친숙성·무결성 원칙·과부하·중복·무결성 위반 ## Patterns — 설계 패턴 diff --git a/wiki/log.md b/wiki/log.md index 440a969..c583d40 100644 --- a/wiki/log.md +++ b/wiki/log.md @@ -26,6 +26,20 @@ title: Wiki Operation Log - `wiki/sources/SDF-ch7-propagation.md` — 전파 모델, 셀/전파기, 부분 정보, 의존성 지향 백트래킹 - `wiki/index.md` Sources 섹션에 생성된 8개 페이지 등록 +## 2026-04-30 (3차) + +- [EOS wiki 일괄 생성] "The Essence of Software" (Daniel Jackson 2021) 파트/챕터별 wiki 페이지 8개 생성 + - 원본 파일 11개(`concepts-001-030` ~ `concepts-151-180`) 전량 정독 후 작성 + - `wiki/sources/EOS-overview.md` — 전체 개요: 설계 3수준, 개념 정의, 파트 구조, 핵심 원칙 요약 + - `wiki/sources/EOS-part1-motivations.md` — Part I (Ch1–3): 저자 동기, Backblaze/Dropbox 개념 오해 사례, 설계 3수준, 개념의 다양한 역할 + - `wiki/sources/EOS-ch4-concept-structure.md` — Ch4: 개념 5요소, trash/style/reservation 예시, 제네릭 개념 + - `wiki/sources/EOS-ch5-concept-purposes.md` — Ch5: 좋은 목적의 4기준, call forwarding 퍼즐, 목적 없는 개념, Twitter favorite, Nanny Scam, 미스피트 사례들 + - `wiki/sources/EOS-ch6-concept-composition.md` — Ch6: 자유·협력·시너지 조합, trash+folder 시너지, 과잉/과소 동기화 사례(Therac-25 포함) + - `wiki/sources/EOS-ch7-concept-dependence.md` — Ch7: 의존 다이어그램, BirdSong/Facebook/Safari/Keynote 구조 분석, 제네릭 개념의 중요성 + - `wiki/sources/EOS-ch8-concept-mapping.md` — Ch8: 매핑 개념, Java 다이얼로그 사례, 다크 패턴, Gmail 레이블 이슈, Backblaze 복원 UI, Apple Mail 라이브 필터링 + - `wiki/sources/EOS-part3-principles.md` — Part III (Ch9–11): 특정성(중복·과부하 4유형·Facebook like 분석), 친숙성(Twitter follower·PowerPoint section vs Keynote), 무결성(복수심 식당·font format·Google Drive) +- `wiki/index.md` Sources 섹션에 생성된 8개 페이지 등록 + ## 2026-04-30 (2차) - [SDF 개념 페이지 일괄 생성] 8개 SDF 소스 페이지를 읽고 2개 이상 챕터에서 반복 등장하는 핵심 개념 8개를 wiki/concepts/ 아래 작성 diff --git a/wiki/sources/EOS-ch4-concept-structure.md b/wiki/sources/EOS-ch4-concept-structure.md new file mode 100644 index 0000000..29fa863 --- /dev/null +++ b/wiki/sources/EOS-ch4-concept-structure.md @@ -0,0 +1,118 @@ +--- +title: "EOS Ch4 — 개념의 구조" +tags: [source, EOS] +source: "The Essence of Software, Daniel Jackson (2021)" +chapter: "Ch4 Concept Structure" +updated: 2026-04-30 +--- + +# EOS Ch4 — 개념의 구조 + +## 핵심 아이디어 + +개념(concept)은 다섯 가지 구성 요소로 정밀하게 정의할 수 있다: 이름(name), 목적(purpose), 상태(state), 행동(actions), 운영 원칙(operational principle). 이 구조는 개념을 서로 독립적으로 이해·설계·구현할 수 있게 하며, 재사용성의 토대가 된다. Jackson은 *trash*, *style*, *reservation* 세 개념을 예시로 구조를 설명한다. + +## 개념 정의의 5요소 + +| 요소 | 설명 | +|------|------| +| **이름(name)** | 개념 이름과 타입 파라미터 (제네릭) | +| **목적(purpose)** | 개념이 존재하는 이유를 한 문장으로 | +| **상태(state)** | 개념이 기억하는 데이터 구조 | +| **행동(actions)** | 상태를 변경하는 동작과 전제 조건 | +| **운영 원칙(operational principle)** | 목적이 실제로 달성되는 전형적 사용 시나리오 | + +운영 원칙은 가장 단순한 시나리오가 아니라, **목적의 성취를 증명하는 최소 시나리오**다. + +## 예시 1: trash 개념 + +Apple이 1982년 Lisa 컴퓨터를 위해 발명한 *trash* 개념. + +**목적**: 삭제의 취소(undoing of deletions)를 허용한다. + +**상태**: `accessible` (접근 가능한 아이템 집합), `trashed` (삭제됐지만 영구 제거 전 아이템 집합) + +**주요 행동**: +- `delete(x)` — x를 accessible에서 trashed로 이동 (전제: x가 accessible에 있을 것) +- `restore(x)` — x를 trashed에서 accessible로 이동 +- `empty()` — trashed의 모든 항목 제거 + +**운영 원칙**: +``` +after delete(x), can restore(x) and then x in accessible +after delete(x), can empty() and then x not in accessible or trashed +``` + +> "The real innovation… is not that you can move things *into* the trash, but that you can then move them *out*." + +### Trash 개념의 설계 결함과 수정 + +- **문제 1**: macOS에 trash가 하나뿐이라, 외장 드라이브의 파일을 지워도 영구 삭제가 안 됨. OS X El Capitan(2015)에서 "즉시 삭제" 액션으로 해결. +- **문제 2**: trash 안 파일을 삭제 날짜순으로 정렬할 수 없었음. OS X Lion(2011)에서 "added date" 정렬로 해결 (folder 개념의 synergy). + +## 예시 2: style 개념 + +Adobe InDesign, Microsoft Word 등 문서 편집 도구의 *style* 개념. + +**목적**: 요소들의 일관된 서식(formatting) 적용을 쉽게 한다. + +**상태**: +- `assigned: Element -> one Style` (요소에 할당된 스타일) +- `defined: Style -> one Format` (스타일에 정의된 서식) +- `format: Element -> one Format = assigned.defined` (파생 상태) + +**주요 행동**: +- `assign(e, s)` — 요소 e에 스타일 s 할당 +- `define(s, f)` — 스타일 s의 서식을 f로 정의 (생성 또는 업데이트) + +**운영 원칙**: s를 서식 f로 정의하고, e1·e2에 s를 할당한 뒤 s를 f'로 재정의하면, e1과 e2 모두 f'로 변경된다. + +### Style이 아닌 것들 + +- Apple color picker: 색상 수정 불가 → 운영 원칙 실패 → *style* 개념 아님 +- Apple TextEdit의 "style": 스타일을 적용해도 단락에 지속적으로 연결되지 않음 → *style* 개념 아님 + +## 예시 3: reservation 개념 + +소프트웨어 이전부터 존재하는 *reservation* 개념. + +**목적**: 한정된 자원의 효율적 사용을 관리한다. + +**상태**: +- `available: set Resource` +- `reservations: User -> set Resource` (1:다 매핑) + +**주요 행동**: +- `reserve(u, r)` — r이 available일 때, u에게 r을 예약 +- `cancel(u, r)` — u의 r 예약 취소, r을 available로 반환 +- `use(u, r)` — u가 예약한 r 사용 + +**운영 원칙**: `after reserve(u, r) and not cancel(u,r), can use(u, r)` + +### 설계 이슈들 + +- 자원은 시간대에 종속될 수 있음 (레스토랑 좌석 예약) +- no-show 처리 — 계정 정지 등 +- 충돌 예약 방지 (같은 날 밤 두 레스토랑 동시 예약) +- 철도 신호 시스템, 네트워크 RSVP 프로토콜에도 동일 개념 적용 + +## 개념의 제네릭성 + +개념 이름 옆의 타입 파라미터(예: `trash [Item]`)는 개념이 제네릭임을 나타낸다. *trash*의 Item은 파일 시스템에서는 파일, 이메일 클라이언트에서는 메시지가 된다. 제네릭성은: +- 재사용을 가능하게 한다 +- 개념을 본질로 추출하도록 강제한다 + +## 핵심 인용 + +> "A concept definition includes its name, purpose, state, actions and operational principle. The operational principle, showing how the behavior fulfills the purpose, is the key to understanding a concept." + +> "Most concepts in widespread use have undergone extensive development and refinement over time." + +> "Concepts can be designed and understood independently of one another, simplifying software design by allowing a design to be broken into distinct subproblems." + +## 관련 개념 + +- [[EOS-ch5-concept-purposes]] — 목적(purpose)에 대한 심층 논의 +- [[EOS-ch6-concept-composition]] — 개념 조합과 동기화 +- [[EOS-part3-principles]] — 특정성·친숙성·무결성 원칙 +- [[EOS-overview]] — 전체 개요 diff --git a/wiki/sources/EOS-ch5-concept-purposes.md b/wiki/sources/EOS-ch5-concept-purposes.md new file mode 100644 index 0000000..ab6f481 --- /dev/null +++ b/wiki/sources/EOS-ch5-concept-purposes.md @@ -0,0 +1,95 @@ +--- +title: "EOS Ch5 — 개념의 목적" +tags: [source, EOS] +source: "The Essence of Software, Daniel Jackson (2021)" +chapter: "Ch5 Concept Purposes" +updated: 2026-04-30 +--- + +# EOS Ch5 — 개념의 목적 + +## 핵심 아이디어 + +모든 개념에는 명확한 목적(purpose)이 있어야 한다. 목적은 개념의 설계를 정당화하고, 사용자가 개념을 배울 수 있게 하며, 개념이 제대로 동작하는지 평가하는 기준이 된다. 목적이 불명확하거나 없거나 사용자에게 숨겨진 경우, 개념은 혼란·오용·악용의 원인이 된다. "미스피트(misfit)"는 개념이 맥락에서 목적을 충족하지 못하는 현상이다. + +## 좋은 목적의 기준 4가지 + +| 기준 | 설명 | +|------|------| +| **Cogent (명확)** | 사용자의 이해 가능한 필요를 명확히 표현해야 한다 | +| **Need-focused (필요 중심)** | 행동 자체가 아닌 사용자의 필요를 표현해야 한다 | +| **Specific (구체적)** | 다른 개념과 구별될 만큼 구체적이어야 한다 | +| **Evaluable (평가 가능)** | 운영 원칙이 이 목적을 충족하는지 판단 가능해야 한다 | + +**나쁜 예**: bookmark의 목적 = "페이지를 저장하다" (행동 반복) +**좋은 예**: bookmark의 목적 = "나중에 페이지를 쉽게 재방문하기 위해" + +## 목적이 설계 퍼즐을 해결한다: 통화 전환 + +*call forwarding* 개념 설계 문제: A→B, B→C로 전환 설정 시 A에 온 전화는 B에 가는가, C에 가는가? + +목적을 분리하면 두 개의 다른 개념임이 드러난다: +- **delegate forwarding**: "다른 사람에게 전화를 위임한다" — A→B→C로 두 단계 전환 (연쇄 적용) +- **follow-me forwarding**: "내가 다른 장소로 이동했다" — A에서 B 위치로만 전환 (단일 전환) + +하나의 개념에 두 목적을 섞으면 불합리한 동작이 나온다. + +## 목적 없는 개념 + +### 수도꼭지 비유 + +구식 혼합 수도꼭지(온수·냉수 별도 손잡이): 각 손잡이에 명확한 목적이 없다. 사용자가 원하는 것은 온도와 수량의 조절인데, 두 손잡이는 그 필요에 직접 대응하지 않는다. + +신식 단일 손잡이: 회전 = 온도, 상하 = 수량. 목적과 제어가 1:1 대응한다. + +### 에디터 버퍼 + +*editor buffer* 개념: 메모리에 텍스트를 유지하다가 저장 명령으로 디스크에 씀. 이 개념의 목적은 사용자가 아닌 구현의 필요에서 비롯됐다. Apple은 OS X Lion(2011)에서 이 개념을 제거했다. "저장"은 이제 파일에 이름을 붙이는 것이 됐고, "다른 이름으로 저장"도 사라졌다. + +**원칙**: 개념은 내부 구현 메커니즘이 아닌 사용자 필요에서 비롯되어야 한다. + +## 목적이 불명확한 개념: Twitter의 favorite + +Twitter의 *favorite* 개념 문제: 사용자들이 개념을 "나중에 볼 트윗 저장"으로 잘못 이해했다. 실제 목적은 "공개적으로 승인 표시"(like/upvote에 해당). 2018년 Twitter는: +- *favorite* → *like*로 이름 변경 (목적과 일치) +- *bookmark* 개념 신규 도입 (사적 저장 목적) + +## 기만적 목적: Nanny Scam + +*available funds* 개념과 *cleared check* 개념이 혼동됨. 은행 앱이 수표 처리 전에 일부 금액을 "사용 가능"으로 표시하는 것은 의회 법령에 따른 것인데, 사용자들은 이를 "수표가 청산됐다"고 오해한다. 사기꾼들은 이 개념 오해를 악용해 먼저 "수표 받기" → "초과분 반환 요청" → 수표 부도로 피해를 입힌다. + +## 분명한 목적을 숨기는 설계들 + +| 앱/개념 | 표명된 목적 | 실제 목적 | +|---------|-----------|-----------| +| Facebook *notification* | 사용자에게 알림 | 사용자 참여(engagement) 증가 | +| Facebook *tag* | 게시물 검색 편의 | 소셜 그래프 확장 | +| Quora 로그인 강제 | "커뮤니티 기여" | 사용자 데이터 수집·광고 타겟팅 | +| Direct flight 개념 | 편의성 | 예약 시스템 검색 우선 노출 | + +## 미스피트(Misfits): 목적이 실현되지 않을 때 + +소프트웨어 설계는 "형태(form)"를 "맥락(context)"에 맞추는 것이다. 미스피트는 이 맞춤이 실패하는 지점이다. 미스피트는 예측하기 어렵다: + +1. **설계 결함으로 인한 미스피트**: PLGR GPS 기기 — 배터리 교체 후 재부팅 시 좌표가 기기 자신의 위치로 리셋됨 → 오폭 사고. *battery* 개념과 *target* 개념의 상호작용을 설계 시 고려했다면 방지 가능했다. + +2. **맥락 변화로 인한 미스피트**: 팬데믹으로 화상 회의가 일반화되자, *slideshow* 개념의 전체 화면 모드가 화상 회의 앱의 패널을 가리는 문제 발생. Apple Keynote는 "창 모드로 재생" 옵션 추가로 해결. + +3. **구버전에서 작동했던 것이 다시 안 됨**: Apple Numbers의 *range* 개념 — 구버전은 범위 마지막 행 아래에 행 추가 시 범위에 포함됐지만, 새 버전에서는 포함되지 않아 실무에 큰 불편. Microsoft Excel도 동일한 결함. + +**교훈**: 개념 카탈로그에 설계 통찰을 기록해야 버전 업데이트 시 지식이 유실되지 않는다. + +## 핵심 인용 + +> "Purposes matter in all aspects of life because they help us set direction, explain ourselves to others, and reach consensus in collaborations." + +> "In software especially, with its capacity for boundless complexity, it's easy to get mired in details and lose track of the big picture. Thinking about purposes helps you draw back and regain your bearings." + +> "Concepts, unlike internal mechanisms, are always user-facing, and must have purposes that make sense not only to the programmer but also to the user." + +## 관련 개념 + +- [[EOS-ch4-concept-structure]] — 개념 구조 (purpose가 5요소 중 하나) +- [[EOS-part3-principles]] — Ch9 특정성: 목적과 개념의 1:1 대응 +- [[EOS-ch6-concept-composition]] — 목적 단위로 개념을 분리하면 조합이 쉬워짐 +- [[EOS-overview]] — 전체 개요 diff --git a/wiki/sources/EOS-ch6-concept-composition.md b/wiki/sources/EOS-ch6-concept-composition.md new file mode 100644 index 0000000..556c3bd --- /dev/null +++ b/wiki/sources/EOS-ch6-concept-composition.md @@ -0,0 +1,136 @@ +--- +title: "EOS Ch6 — 개념의 조합" +tags: [source, EOS] +source: "The Essence of Software, Daniel Jackson (2021)" +chapter: "Ch6 Concept Composition" +updated: 2026-04-30 +--- + +# EOS Ch6 — 개념의 조합 + +## 핵심 아이디어 + +소프트웨어 앱은 다수의 개념이 조합된 것이다. 개념들은 기본적으로 독립적으로 실행되다가 **동기화(synchronization)**를 통해 연결된다. 동기화는 실행 가능한 동작의 범위를 제한(제거)할 뿐 새로운 동작을 추가하지 않는다. Jackson은 자유 조합·협력 조합·시너지 조합의 세 단계를 구분하며, 과잉·과소 동기화의 위험을 실제 사례로 보여준다. + +## 전통적 조합이 개념에 맞지 않는 이유 + +전통적 소프트웨어 컴포넌트는 클라이언트-서비스 형태로 조합된다. 그러나 개념은: +- 정의상 **사용자를 향한다** — 한 개념이 다른 개념 뒤에 숨을 수 없다 +- **자기완결적이어야 한다** — 다른 개념의 내부에 의존하면 독립적 이해와 재사용이 불가능해진다 + +## 개념 조합의 메커니즘 + +개념들은 기본적으로 독립 실행된다(역 순서로 인터리빙 허용). 동기화(sync)는 한 개념의 행동이 발생할 때 다른 개념의 행동도 함께 발생하도록 묶는다. + +**핵심 성질**: 동기화는 기존 실행 시퀀스를 _제거_만 할 뿐 _추가_하지 않는다. + +## 조합의 3가지 유형 + +### 1. 자유 조합(Free Composition) + +개념들이 대부분 독립적으로 동작하며, 최소한의 동기화(주로 데이터 일관성 유지용)만 존재. + +**예시**: Todoist의 *todo* + *label* 조합 + +``` +app todo-label +include + todo + label [todo.Task] +sync todo.delete (t) + label.clear (t) +``` + +동기화 하나: 태스크 삭제 시 해당 태스크의 레이블도 자동 제거. 이 동기화가 없으면, 삭제된 태스크가 레이블 검색 결과에 나타나는 이상 동작이 발생한다. + +**"존재 결합(existence coupling)"**: 두 개념이 동일한 객체 집합을 참조한다는 사실만 공유. 나머지는 완전히 독립. + +### 2. 협력 조합(Collaborative Composition) + +동기화가 두 개념을 연결해 어느 개념도 홀로 제공하지 못했던 새 기능을 만든다. + +**예시**: Todoist의 이메일 주소로 태스크 추가 + +``` +app todo-label-mail +include + todo + label [todo.Task] + email +sync todo.delete (t) + label.clear (t) +sync email.receive (todo-user, m) + todo.add (m.content) +``` + +*email* 개념의 `receive` 행동과 *todo* 개념의 `add` 행동이 동기화돼, 특정 이메일 주소로 메일을 보내면 자동으로 태스크가 추가된다. + +**협력 조합의 활용 패턴**: +- **Logging**: 이벤트 추적 개념과 다른 개념 조합 +- **Suppression**: 접근 제어 개념이 특정 행동을 차단 +- **Staging**: 연락처 → 전화번호 → 전화 연결 등 단계 분리 +- **Notification**: 이벤트 발생 시 알림 트리거 +- **Mitigation**: 허용되지 않는 동작 방지 +- **Inference**: 명시적 행동 대신 다른 행동에서 추론(예: 메시지 열면 "읽음" 자동 처리) + +### 3. 시너지 조합(Synergistic Composition) + +더 촘촘한 동기화를 통해 한 개념의 기능이 다른 개념의 목적 달성을 도와 전체 가치가 부품의 합을 초과한다. + +**예시 1**: *todo* + *label* 시너지 — `pending` 레이블을 내장 레이블로 사용 + +``` +sync todo.add (t) + label.affix (t, 'pending') +sync todo.complete (t) + label.detach (t, 'pending') +sync label.detach (t, 'pending') + todo.complete (t) +``` + +이제 레이블 쿼리 언어로 "pending AND urgent" 같은 복합 조회가 가능해진다. + +**예시 2**: Gmail의 *label* + *trash* 시너지 — 삭제 시 *deleted* 레이블 자동 부착, 레이블 제거 시 복원. + +**예시 3**: Macintosh의 *trash* + *folder* 시너지 — trash가 folder의 인스턴스로 작동해: +- 별도 목록 인터페이스 불필요 (folder의 정렬·검색 재사용) +- 복원은 단순히 trash 폴더에서 파일을 꺼내는 것 +- "date added" 정렬 기능이 삭제 날짜 정렬로 자연스럽게 동작 + +**시너지는 완전하지 않다**: trash 폴더는 일반 폴더와 달리 `empty` 버튼이 있고, 여러 볼륨의 파일을 한 폴더에 담는 특수성도 있다. + +## 과잉 동기화(Over-Synchronization) + +동기화가 너무 많으면 사용자의 제어권이 줄어든다. + +**사례 1**: Apple Calendar — 이벤트 삭제 시 초대 거절 알림이 자동 발송됨. 스팸 이벤트 삭제 시 스패머에게 이메일 주소 유효성을 알려주는 역효과. (2017년 수정됨) + +**사례 2**: Tumblr — 게시물 제목 끝에 `?`를 붙이면 자동으로 댓글이 활성화됨. + +**사례 3**: Therac-25 방사선 치료기 — 전자빔 전류 값과 평탄화 필터 위치 동기화 결함으로 과다 조사 사망 사고 발생. + +## 과소 동기화(Under-Synchronization) + +동기화가 부족하면 사용자에게 불필요한 작업을 떠넘기거나 위험한 동작이 허용된다. + +**사례 1**: Google Groups — "가입 허용" 설정과 "그룹 디렉토리 공개" 설정이 연동되지 않아, 가입 요청 페이지 자체에 접근이 불가능했음. + +**사례 2**: Adobe Lightroom 6.2 — 전문 사진가들이 의존하던 가져오기 동기화 옵션을 제거. 사용자 반발로 업데이트 롤백. + +**사례 3**: Zoom — 손 든 참가자가 발언 후 마이크를 껐을 때 손이 자동으로 내려가지 않음 → 손 올린 상태 방치 → 혼란. + +## 핵심 인용 + +> "Synchronization is an essential part of software design. Not enough synchronization can lead to inappropriate or confusing behaviors, and miss opportunities for automation; too much can limit the user's options." + +> "Composition offers an opportunity for creative design even when the concepts themselves are familiar. Synergy is often the very essence of a design, bringing unexpected power from the combination of simple parts." + +> "Automation doesn't do new things that you could not previously have done manually; it just makes them inevitable." + +## 관련 개념 + +- [[EOS-ch4-concept-structure]] — 개념 구조 (조합 전에 각 개념이 독립적으로 정의됨) +- [[EOS-ch7-concept-dependence]] — 조합 내에서 개념들 간의 의존 구조 +- [[EOS-ch8-concept-mapping]] — 조합된 개념들을 UI에 매핑하는 문제 +- [[EOS-part3-principles]] — Ch11 무결성: 조합 시 각 개념 명세 유지 +- [[EOS-overview]] — 전체 개요 diff --git a/wiki/sources/EOS-ch7-concept-dependence.md b/wiki/sources/EOS-ch7-concept-dependence.md new file mode 100644 index 0000000..187bcae --- /dev/null +++ b/wiki/sources/EOS-ch7-concept-dependence.md @@ -0,0 +1,129 @@ +--- +title: "EOS Ch7 — 개념의 의존" +tags: [source, EOS] +source: "The Essence of Software, Daniel Jackson (2021)" +chapter: "Ch7 Concept Dependence" +updated: 2026-04-30 +--- + +# EOS Ch7 — 개념의 의존 + +## 핵심 아이디어 + +개념들은 본질적으로 독립적이지만, 앱의 맥락 안에서는 **의존(dependence)** 관계가 발생한다. A 개념이 없다면 B 개념을 포함할 이유가 없을 때, "B는 A에 의존한다"고 말한다. 의존 관계를 다이어그램으로 표현하면 앱의 구조를 한눈에 파악하고, 설계·구현·설명의 순서를 결정하는 데 도움이 된다. + +## 개념 독립성 vs. 앱 내 의존성 + +모순처럼 보이지만 실제 모순이 아니다: +- **개념 독립성**: 각 개념은 다른 개념 없이도 이해·구현 가능하다 +- **앱 내 의존성**: 특정 앱에서 어떤 개념을 포함할 근거는 다른 개념의 존재에서 비롯된다 + +의존성은 개념 자체의 속성이 아니라 **앱 설계 결정의 결과**다. + +## 의존 다이어그램(Dependence Diagram) + +의존 다이어그램은: +- 각 개념을 노드로 표현 +- 한 개념이 다른 개념에 의존하면 화살표로 연결 +- **주 의존(primary)**: 실선 화살표 — 가장 핵심적인 의존 +- **부 의존(secondary)**: 점선 화살표 — 부가적 의존 + +## BirdSong 앱 예시 + +새 울음소리로 새 종을 식별하는 앱 설계: + +**핵심 개념들**: +- *q&a*: 커뮤니티가 질문에 답변하도록 지원 +- *recording*: 오디오 파일 업로드 허용 +- *upvote*: 개인 평가로 기여도 순위 결정 +- *identification*: 크라우드소싱 기반 객체-카테고리 할당 +- *user*: 콘텐츠와 행동 인증 + +**의존 구조**: +- *upvote* → *q&a* (주): 업보트할 대상(답변)이 있어야 한다 +- *user* → *q&a* (주): 질문·답변 작성자 인증이 핵심 +- *user* → *upvote* (부): 이중 투표 방지에도 활용 가능 +- *recording* → *q&a*: 오디오를 질문에 첨부 +- *identification* → *recording*: 식별 결과를 녹음과 연결 + +**다이어그램이 주는 것들**: + +1. **핵심 개념 식별**: *q&a*는 모든 개념이 직·간접으로 의존. 없으면 앱 자체가 불가능 +2. **일관된 부분집합**: 의존 화살표가 집합 밖으로 나가지 않는 부분집합만 독립 앱 가능 + - 가능: {*q&a*, *recording*, *upvote*} + - 불가능: {*identification*, *q&a*} — *identification*이 *recording*에 의존하므로 +3. **개발 단계화**: 일관된 부분집합 순으로 구현하면 언제나 테스트 가능한 상태 유지 +4. **설명 순서**: 의존 방향대로 설명해야 개념 도입이 자연스럽다 + - 좋은 순서: *q&a* → *upvote* → *user* → *recording* → *identification* + - 나쁜 순서: *upvote* 먼저 → 업보트할 대상이 없어 설명 불가 + +## 실제 앱 구조 분석 + +### Facebook + +핵심 구조: +- *post* (기반 개념) +- *comment* → *post* +- *reply* → *comment* +- *user* → *post* (주), *comment*, *reply*, *tag*, *like* (부) +- *friend* → *user* + *post* (포스트 접근 제어 + 사용자 인증 필요) +- *tag* → *user* + *post* +- *like* → *post* (주), *comment*, *reply* (부) + +### Apple Safari + +핵심 구조: +- *url* (기반 개념 — 중앙) +- *html* → *url* +- *cache* → *url* (속도 향상) +- *certificate* → *url* (서버 인증) +- *cookie* → *url* +- *private browsing* → *cookie* +- *bookmark*, *favorite*, *frequently visited*, *reading list* → *url* (상단) + +**Safari 분석 통찰**: bookmark 변형 개념들(*favorite*, *frequently visited*, *reading list*)이 서로 매우 유사하다. 오프라인 읽기와 읽음 표시를 모든 bookmark에 추가하고, 자주 방문한 사이트를 일반 bookmark 폴더로 통합하면 더 시너지적 설계가 가능하다. + +### Apple Keynote + +핵심 구조: +- *slide* (기반) +- *special block* → *slide*: 제목·본문·슬라이드 번호 +- *text block* + *shape* → *slide* +- *paragraph* → *text block* +- *text style* + *shape style*: *style* 개념 인스턴스 +- *master* → *special block* (기본 서식 제공) +- *theme* → *master* + *text style* (스타일 모음) +- *layer* → *shape* + *text block* +- *animation* → *special block* (주) + *shape*, *text block* (부) + +## 제네릭 개념의 중요성 + +의존 다이어그램은 개념들이 **제네릭**으로 표현될 때 가장 유용하다. BirdSong 앱에서 *upvote*는 "새 소리 답변에 좋아요"가 아니라 "기여도에 대한 개인 평가"로 일반화돼야 다른 앱에서도 재사용 가능하다. 제네릭 표현: +- 설계 지식의 재사용을 가능하게 한다 +- 과도한 도메인 특화를 방지해 설계를 단순하게 유지한다 + +## 점진적 성장(Growing the Product) + +의존 다이어그램은 앱을 점진적으로 성장시키는 로드맵이다: +- **추가**: 새 개념 + 의존 관계 추가 +- **제거**: 예상보다 덜 유용하거나 결함이 심한 개념 제거 +- **정제**: 기존 개념 개선 +- **시너지 발견**: 기존 조합에서 새 가치 도출 + +Fred Brooks의 "second-system effect" 경고: 작지만 성공적인 시스템을 대규모로 재설계할 때 과신이 비대하고 불필요하게 복잡한 결과를 낳는다. + +## 핵심 인용 + +> "Concepts are freestanding, and independent of one another: a concept can be understood, designed and implemented by itself." + +> "In the context of a software product, dependencies arise—not that one concept relies on another for its correct operation, but because inclusion of one concept may make sense only if another is present." + +> "The dependence diagram gives a succinct summary of a product's concepts and the motivations for including them." + +## 관련 개념 + +- [[EOS-ch6-concept-composition]] — 개념 조합의 메커니즘 +- [[EOS-ch8-concept-mapping]] — 의존 구조가 UI 설계에 주는 시사점 +- [[EOS-ch4-concept-structure]] — 개념 구조 (독립성의 토대) +- [[EOS-part3-principles]] — 특정성·친숙성·무결성 원칙 +- [[EOS-overview]] — 전체 개요 diff --git a/wiki/sources/EOS-ch8-concept-mapping.md b/wiki/sources/EOS-ch8-concept-mapping.md new file mode 100644 index 0000000..af22006 --- /dev/null +++ b/wiki/sources/EOS-ch8-concept-mapping.md @@ -0,0 +1,101 @@ +--- +title: "EOS Ch8 — 개념의 매핑" +tags: [source, EOS] +source: "The Essence of Software, Daniel Jackson (2021)" +chapter: "Ch8 Concept Mapping" +updated: 2026-04-30 +--- + +# EOS Ch8 — 개념의 매핑 + +## 핵심 아이디어 + +개념은 사용자 인터페이스의 뒤에서 실행된다. UI 설계는 개념의 행동과 상태를 버튼·뷰 등 물질적 형태로 연결하는 **매핑(mapping)** 설계다. 개념 자체가 단순하더라도 매핑이 잘못되면 사용하기 어렵고, 반대로 복잡한 개념도 훌륭한 매핑으로 이해하기 쉬워진다. 또한 의도적 또는 무의도적 매핑 설계 결함이 다크 패턴을 낳는다. + +## 매핑이란 + +UI 설계자는 다음을 결정한다: +- 개념의 **행동(action)** → 사용자의 제스처(버튼 클릭, 드래그 등) +- 개념의 **상태(state)** → 화면에 표시되는 뷰 + +매핑 설계는 개념 설계와 독립적으로 이루어질 수 있어야 한다. 먼저 개념을 설계하고, 그다음 매핑을 설계한다. + +## 단순한 개념도 잘못된 매핑으로 어려워진다 + +**Oracle Java 설치 다이얼로그 예시**: "Install"과 "Remove" 두 버튼이 있는 다이얼로그. "Remove"가 기본 선택으로 강조돼 있어 업그레이드하러 온 사용자가 혼란에 빠진다. *install* 개념의 두 운영 원칙(설치 vs. 제거)을 별도 워크플로로 분리했다면 명확했을 것이다. + +**개선 방향**: +- 설치와 제거를 별도 탭이나 흐름으로 분리 +- "Remove"보다 "Uninstall"이 의미를 더 정확히 전달 +- 업그레이드 프롬프트 후 실행했으므로 설치가 기본값이어야 함 + +## 복잡한 개념은 UI에 설명을 내장해야 한다 + +**Backblaze 백업 메시지**: "You are backed up as of: Today, 1:05 pm"이라는 메시지는 오해를 낳는다. 더 나은 표현: "Last backup: Today, 1:05pm — This backup included all files saved prior to the scan that began at 12:48pm." + +Apple의 "Do Not Disturb" 개념도 "repeated calls" 옵션 아래에 작은 글씨로 해설 문장을 붙여 의미를 보완한다. + +## 다크 패턴: 의도적 매핑 왜곡 + +### change.org 사례들 + +1. **서명 수 조작**: 페이지 로드 시 실제 서명 수보다 낮은 숫자에서 시작해 실제 수까지 실시간으로 올라가는 애니메이션 — 가짜 실시간 활동 인상 조작. +2. **기부 오해 유도**: 서명 후 나타나는 "기부" 요청이 청원 주최자에게 가는 것처럼 보이지만, 실제로는 change.org의 광고 비용. 개념의 운영 원칙을 숨김. + +### Amazon Prime 사례 + +두 버튼("Try Prime FREE" — 노란색, "Continue with FREE One-Day Delivery" — 파란색)이 모두 Prime 가입 액션에 연결됨. 가입 거부 옵션은 훨씬 작은 파란색 링크로 숨겨짐. 두 개의 버튼이 실제로는 하나의 행동을 공유한다는 사실을 매핑이 숨긴다. + +## 복잡한 조합 매핑: Gmail 레이블의 수수께끼 + +Gmail은 *label* 개념과 *conversation* 개념을 조합하면서, **레이블은 메시지에 부착하지만 레이블 표시는 대화(conversation)에 표시**한다. + +이 불일치로 인한 이상 현상: +- 대화가 "hacking"과 "meetups" 두 레이블을 갖는 것처럼 보임 +- 그러나 각각의 레이블로는 검색 결과에 나타나지만, 두 레이블을 동시에 검색하면 결과 없음 (두 레이블이 서로 다른 메시지에 부착돼 있기 때문) + +실무적 문제: *sent* 뷰를 보면 내가 보낸 메시지가 포함된 대화 전체가 보이고, 내가 보내지 않은 메시지들도 포함된다. 설계자들이 이 문제를 인지했지만 아직 완전히 해결되지 않았다. + +## 명확하지만 사용하기 어려운 매핑: Backblaze 복원 + +파일 버전을 복원하는 흐름: 날짜 범위 설정 → 폴더 트리 로딩(~20초) → 파일 선택 → 다운로드. 손상된 파일의 마지막 정상 버전을 찾으려면 날짜를 하루씩 소급해가며 반복해야 하는데, 매번 폴더 트리가 리셋된다. + +**개선 방향**: Carbonite나 Crashplan처럼 파일의 모든 버전 목록(수정 날짜 포함)을 한 번에 보여주는 방식. + +## 라이브 필터링 딜레마: Apple Mail의 Flag + +플래그된 메시지 목록을 보는 중, 한 메시지의 플래그를 해제하면 그 메시지를 즉시 목록에서 제거해야 할까? + +**직관적 답변(제거)**: 일관성 있어 보이지만 실용적으로 나쁘다. 실수로 플래그 해제 후 메시지를 찾을 수 없게 됨. + +**실제 Apple Mail 동작(유지)**: 플래그가 해제돼도 메시지가 목록에 남아있어, 즉시 재플래그 가능. 뷰를 나갔다 돌아오면 그때 목록이 갱신됨. + +**교훈**: 매핑은 단순한 액션-상태 연결이 아니라 **전형적 사용 시나리오와 사용 패턴**을 고려해야 한다. + +## 모호한 액션 해소: Adobe Lightroom 컬렉션 + +*collection* 개념: 아이템이 여러 컬렉션에 동시에 속할 수 있음. + +두 컬렉션이 동시에 선택된 상태에서 한 아이템을 제거하려 하면 어느 컬렉션에서 제거할지 모호하다. Lightroom은 처음에 에러 메시지를 표시하다가, 나중에 선택된 모든 컬렉션에서 동시에 제거하도록 변경했다. 이 문제는 UI 위젯 설계의 한계에서 비롯된다. + +## 비표준 위젯 필요: "없음" 값 입력 + +*partial style* 개념: 서식의 일부 속성만 지정하는 스타일. 예: 이탤릭만 지정하고 폰트 크기는 지정 안 함. + +문제: 기존에 설정된 속성을 "설정 안 함(none)"으로 되돌리는 UI 요소가 없다. 3상태 체크박스(on/off/not-set), 값 편집 가능한 드롭다운 등 비표준 위젯이 필요하다. 이 요구는 현재 UI 툴킷의 한계를 드러낸다. + +## 핵심 인용 + +> "The design of mappings has been extensively studied by human-computer interaction researchers, and the guidelines that have been developed—mostly at the physical and linguistic levels of design—apply equally well to systems that have been designed with concepts." + +> "Attempts to make the user interface simpler than the underlying concepts may backfire." + +> "The mapping must take into account typical usage patterns, which… may be more complicated than performing a single action." + +## 관련 개념 + +- [[EOS-ch6-concept-composition]] — 조합된 개념을 매핑할 때의 복잡성 +- [[EOS-ch4-concept-structure]] — 개념의 행동·상태가 매핑의 대상 +- [[EOS-part3-principles]] — Ch9 특정성: 매핑에서의 목적 명확성 +- [[EOS-part1-motivations]] — Ch2: 설계 3수준 (물리·언어·개념) +- [[EOS-overview]] — 전체 개요 diff --git a/wiki/sources/EOS-overview.md b/wiki/sources/EOS-overview.md new file mode 100644 index 0000000..ac13bed --- /dev/null +++ b/wiki/sources/EOS-overview.md @@ -0,0 +1,77 @@ +--- +title: "The Essence of Software — 전체 개요" +tags: [source, EOS] +source: "The Essence of Software, Daniel Jackson (2021)" +chapter: overview +updated: 2026-04-30 +--- + +# The Essence of Software — 전체 개요 + +## 핵심 아이디어 + +소프트웨어의 복잡도 근원은 "개념(concept)"의 혼재와 뒤엉킴에 있다. 개념을 명확히 분리·정의하고 그 목적(purpose)을 정확히 지정하면, 사용하기 쉽고 설계하기 좋은 소프트웨어를 만들 수 있다. 저자 Daniel Jackson은 Alloy 언어 연구에서 출발해, 소프트웨어 설계의 "개념 수준(conceptual level)"이 물리·언어 수준과 독립적으로 다루어져야 한다는 이론을 제시한다. + +## 책 구조 + +| 파트 | 챕터 | 주제 | +|------|------|------| +| Part I: Motivations | Ch1–3 | 왜 개념 설계인가; 개념의 발견과 활용 | +| Part II: Essentials | Ch4–8 | 개념의 구조, 목적, 조합, 의존, 매핑 | +| Part III: Principles | Ch9–11 | 특정성, 친숙성, 무결성 원칙 | +| Resources | Explorations & Digressions | 심화 주석·참고문헌 | + +## 설계의 3 수준 + +저자는 소프트웨어 설계를 세 수준으로 분류한다: + +1. **물리 수준(Physical level)** — 버튼 레이아웃, 제스처, 접근성 등 물리적 속성 +2. **언어 수준(Linguistic level)** — 아이콘, 메시지, 용어 등 의사소통 관련 속성 +3. **개념 수준(Conceptual level)** — 사용자가 상호작용하는 행동과 상태의 본질 + +개념 수준이 가장 중요하다. 물리·언어 수준의 문제는 종종 사실 개념 수준의 설계 결함에서 비롯된다. + +## 개념(Concept)이란 + +소프트웨어는 개념들의 합성으로 이루어진다. 각 개념은: + +- **자기완결적 기능 단위** — 다른 개념과 독립적으로 이해할 수 있다 +- **목적(purpose)** — 개념이 존재하는 이유 +- **상태(state)** — 개념이 기억하는 정보 구조 +- **행동(actions)** — 상태를 변경하는 동작들 +- **운영 원칙(operational principle)** — 목적이 어떻게 달성되는지를 보여주는 전형적 사용 시나리오 + +예시 개념: *trash*, *style*, *reservation*, *label*, *todo*, *email*, *upvote*, *friend*, *bookmark*, *folder* 등. + +## 주요 원칙 요약 + +| 챕터 | 원칙 | 핵심 내용 | +|------|------|----------| +| Ch9 | 특정성(Specificity) | 개념과 목적은 1:1 대응이어야 한다 | +| Ch10 | 친숙성(Familiarity) | 기존에 알려진 개념을 재사용하라 | +| Ch11 | 무결성(Integrity) | 개념 조합 시 각 개념의 명세를 위반하지 마라 | + +## 책의 목표 + +1. 소프트웨어 설계자가 즉시 적용할 수 있는 실용적 기법 제공 +2. 소프트웨어를 기능 덩어리가 아닌 개념의 체계적 조합으로 바라보는 새 관점 제공 +3. 소프트웨어 설계가 지적으로 충분한 독자적 분야임을 증명 + +## 핵심 인용 + +> "A software product—from the smallest app that runs on your phone to the largest enterprise system—is made of *concepts*, each a self-contained unit of functionality." + +> "Clarity is good not only for finding design flaws after the fact. It is also the key to good design in the first place." + +> "The real problem runs deeper. It's in the very essence of how files and folders are named… This is what I call a *conceptual* design issue." + +## 관련 개념 + +- [[EOS-part1-motivations]] — Part I: 동기 챕터들 +- [[EOS-ch4-concept-structure]] — 개념의 구조 정의 +- [[EOS-ch5-concept-purposes]] — 개념의 목적 +- [[EOS-ch6-concept-composition]] — 개념 조합 +- [[EOS-ch7-concept-dependence]] — 개념 의존 +- [[EOS-ch8-concept-mapping]] — 개념 매핑 +- [[EOS-part3-principles]] — Part III: 원칙들 +- [[SDF-overview]] — "Software Design for Flexibility" 개요 (같은 선반) diff --git a/wiki/sources/EOS-part1-motivations.md b/wiki/sources/EOS-part1-motivations.md new file mode 100644 index 0000000..678ab3c --- /dev/null +++ b/wiki/sources/EOS-part1-motivations.md @@ -0,0 +1,116 @@ +--- +title: "EOS Part I — 동기: 왜 개념 설계인가" +tags: [source, EOS] +source: "The Essence of Software, Daniel Jackson (2021)" +chapter: "Part I (Ch1–3)" +updated: 2026-04-30 +--- + +# EOS Part I — 동기: 왜 개념 설계인가 + +## 핵심 아이디어 + +Part I(Ch1~3)은 왜 소프트웨어 설계의 핵심이 "개념"이어야 하는지를 동기 부여한다. Ch1은 저자의 연구 여정과 문제 의식을, Ch2는 구체적인 개념 예시와 설계 3 수준을, Ch3는 개념이 소프트웨어 설계 전반에서 수행하는 다양한 역할을 설명한다. + +## Ch1 — Why I Wrote This Book + +### 소프트웨어 설계의 공백 + +저자는 Alloy(소프트웨어 설계 언어·분석 도구) 연구자로서, 공식 명세보다 설계(design) 자체에 더 흥미를 느꼈다. 설계는 "형태(form)를 맥락(context)에 맞추는" 활동이다(Christopher Alexander). + +소프트웨어 공학과 HCI(인간-컴퓨터 상호작용) 연구 모두 설계 자체보다 결함 제거·경험적 방법으로 이동했다. 결과적으로 소프트웨어 설계는 이론적 토대 없이 일화적 경험칙에 의존해 왔다. + +### 명료함(Clarity)의 중요성 + +소프트웨어 개발 성패를 결정하는 것은 언어, 도구, 관리 방법론이 아니다. **무엇을 만들려고 하는지 명확히 아는 것**이다. 설계가 명확하면 코드도 명확하고, 문제도 명확히 진단된다. + +### 개념의 기원 + +1960년대부터 "개념적 모델(conceptual model)"의 중요성은 인정받았다. 그러나 개념적 모델을 사용자의 멘탈 모델로 전달하는 것에만 집중했지, 그 자체를 설계 대상으로 다루지 않았다. + +## Ch2 — Discovering Concepts + +### 개념이란 + +> "A software product… is made of *concepts*, each a self-contained unit of functionality." + +개념은 앱의 "분자"다. 화학 혼합물처럼 결합되지만, 각 개념의 속성과 행동은 어디에서나 동일하다. + +### 예시 1: Backblaze 백업 개념의 오해 + +저자는 파일이 지속적으로 업로드·복원 가능하다고 가정했지만, 실제 Backblaze의 *backup* 개념은: (1) 주기적 스캔으로 변경 파일 목록 작성 → (2) 목록 기반 업로드 → (3) 스테이징 영역에서 복원 영역으로 이동의 세 단계를 거친다. 멘탈 모델과 실제 개념 간의 불일치가 혼란을 유발했다. + +### 예시 2: Dropbox의 unix folder 개념 + +Dropbox는 이름(name)을 파일 자체의 메타데이터가 아닌, 부모 폴더의 항목(entry)에 귀속시키는 *unix folder* 개념을 사용한다. 이로 인해: +- 최상위 공유 폴더 이름 변경 → 본인에게만 변경 +- 중첩 공유 폴더 이름 변경 → 모두에게 변경 +- 삭제 시 동작도 이에 따라 달라짐 + +이것은 버그가 아니라 *개념 설계* 문제다. + +### 설계의 3 수준 + +| 수준 | 내용 | 관심사 | +|------|------|--------| +| 물리(Physical) | 버튼, 레이아웃, 접근성 | 인간의 물리·인지 능력 | +| 언어(Linguistic) | 아이콘, 메시지, 용어 | 문화·언어적 차이 | +| 개념(Conceptual) | 행동과 상태의 본질 | 개념 구조의 설계 | + +개념 수준이 가장 근원적이다. 언어·물리 수준의 문제처럼 보여도 사실 개념 수준의 결함인 경우가 많다. + +### 멘탈 모델과 개념 설계 + +- 사용자의 멘탈 모델이 소프트웨어 실제 개념과 불일치할 때 사용성 문제가 생긴다. +- 해법은 사용자 교육이 아니라 **단순·유연·명확한 개념을 설계**하고, 사용자 인터페이스가 그 개념을 올바르게 표현하도록 하는 것이다. + +## Ch3 — How Concepts Help + +### 개념이 앱을 정의한다 + +앱을 설명하는 가장 좋은 방법은 핵심 개념을 나열하는 것이다. Facebook = *post* + *comment* + *like* + *friend*; Gmail = *email* + *label* + *conversation*; Web = *url* + *html* + *cache* + *bookmark*. + +앱 간 차이도 개념으로 설명된다. 문자 메시지 앱은 *conversation* 개념을 쓰고, 이메일은 *mailbox*/*folder* 개념을 쓴다. + +### 개념이 제품 차별화 요소 + +| 앱/서비스 | 핵심 차별화 개념 | +|-----------|-----------------| +| Apple Macintosh (1984) | *trash* — 삭제의 취소 | +| Photoshop | *layer* + *mask* — 비파괴 편집 | +| VisiCalc (스프레드시트) | *formula* + *reference* | +| Calendly | *event type* | +| World Wide Web | *url* — 전역 고유 명칭 | + +### 개념이 복잡성을 드러낸다 + +Photoshop의 *layer*·*mask*, 브라우저의 *certificate*·*private browsing*·*page cache* 같은 복잡한 개념들이 무엇인지 알면, 파워 유저가 되기 위해 무엇을 배워야 하는지 명확해진다. + +### 디지털 전환에서의 개념 + +디지털 전환의 핵심은 새 기술 도입이 아니라 **핵심 비즈니스 개념을 식별·통합·확장**하는 것이다. Apple의 *song* 개념처럼, 개념 하나가 전체 고객 경험을 통합할 수 있다. + +### 개념이 관심사를 분리한다 + +*group* 하나에 모든 기능을 넣는 대신, *group*(멤버십) + *post*(메시지 작성) + *invitation*(초대) + *notification*(알림) + *moderation*(관리) 등으로 분리하면: +- 설계자가 한 번에 하나의 측면에 집중할 수 있다 +- 팀원들이 병렬로 작업할 수 있다 +- 각 개념을 독립적으로 재사용할 수 있다 + +### 개념이 안전·보안을 담보한다 + +보안 설계의 핵심은 *authentication*, *authorization*, *auditing* 등의 개념을 올바르게 설계하는 것이다. 예: two-factor authentication의 *capability* 개념과의 상호작용이 피싱 취약점을 만든다. + +## 핵심 인용 + +> "Concepts characterize individual apps, app classes, and entire product families." + +> "Investing in core concepts is less flashy but likely to be more effective." + +> "Concepts are the essence of design for safety and security, where picking the right concepts and understanding their implications is paramount." + +## 관련 개념 + +- [[EOS-overview]] — 전체 책 개요 +- [[EOS-ch4-concept-structure]] — 개념 구조 정의 (Part II 시작) +- [[SDF-ch1-flexibility]] — SDF의 가산적 프로그래밍 철학과 비교 diff --git a/wiki/sources/EOS-part3-principles.md b/wiki/sources/EOS-part3-principles.md new file mode 100644 index 0000000..7a325a4 --- /dev/null +++ b/wiki/sources/EOS-part3-principles.md @@ -0,0 +1,192 @@ +--- +title: "EOS Part III — 개념 설계 원칙: 특정성·친숙성·무결성" +tags: [source, EOS] +source: "The Essence of Software, Daniel Jackson (2021)" +chapter: "Part III (Ch9–11)" +updated: 2026-04-30 +--- + +# EOS Part III — 개념 설계 원칙: 특정성·친숙성·무결성 + +## 핵심 아이디어 + +Part III(Ch9~11)는 좋은 개념 설계를 위한 세 가지 핵심 원칙을 제시한다. **특정성(Specificity)**: 개념과 목적은 1:1로 대응해야 한다. **친숙성(Familiarity)**: 새 개념보다 기존 친숙한 개념을 재사용하라. **무결성(Integrity)**: 개념 조합 시 각 개념의 명세가 훼손되지 않아야 한다. 이 세 원칙의 그림 요약은 Ch11 마지막의 Fig.11.5에 도식화돼 있다. + +--- + +## Ch9 — 개념 특정성(Concept Specificity) + +### 원칙 + +개념과 목적은 **1:1 대응**이어야 한다: +- 모든 개념에 정확히 하나의 목적이 있어야 한다 +- 모든 목적에 정확히 하나의 개념이 대응해야 한다 + +이 원칙은 네 가지 위반 유형을 낳는다: 목적 없는 개념, 개념 없는 목적, 중복 개념, 과부하 개념. + +### 목적 없는 개념(Concepts without purposes) + +내부 구현 메커니즘이 사용자에게 노출될 때 발생한다(예: *editor buffer*). 이미 Ch5에서 다루었으므로 Ch9에서는 간략히 언급. + +### 개념 없는 목적(Purposes without concepts) + +명백히 필요하지만 구현되지 않은 개념들: + +- **Email *correspondent* 개념 부재**: 발신자를 고유하게 식별하는 개념이 없어 Apple Mail에서 동일인을 여러 이름으로 검색해야 함. 오픈 이메일 시스템에서 구현이 어렵다는 기술적 제약이 있다. +- **백업의 삭제 경고 개념 부재**: 대부분의 백업 유틸리티는 원본 기기에서 삭제된 파일이 30일 후 클라우드에서도 삭제된다. 의도치 않은 삭제를 탐지·경고하는 개념이 없다. +- **PowerPoint의 *style* 개념 부재**: Keynote는 최근 추가했지만 PowerPoint는 여전히 없어 일관된 서식 유지가 어렵다. +- **Squarespace의 *template* 개념 퇴화**: 버전 7.1에서 템플릿 전환 기능을 제거해, 개념의 핵심 목적(콘텐츠와 시각 설계 분리)이 훼손됨. + +### 중복 개념(Redundant concepts) + +두 개 이상의 개념이 동일한 목적을 서비스할 때. + +**Gmail *category* vs. *label*** 중복: +- *category*: 받은 편지함을 Primary/Social/Promotions 등으로 자동 분류 +- *label*: 이미 메시지 분류를 담당하는 기존 개념. 시스템 레이블(*sent*, *trash*)로도 자동 분류가 가능했다 +- 결과: 두 개념 간 임의적 제약(카테고리만 탭 할당 가능, 레이블만 받은 편지함 외 분류 가능 등)으로 사용자 혼란 + +**Zoom *broadcast* vs. *chat*** 중복: +- *chat*: 참가자 간 메시지 교환 +- *broadcast*: 호스트가 전체 참가자(브레이크아웃 룸 포함)에게 메시지 전송 +- 두 개념이 같은 목적인데 서로 다른 기능(지속성, 클릭 가능한 링크, 복사 불가 등) 차이가 임의적 + +**Apple Mail *filter* vs. *rule*** 중복: +- *filter*: 표시할 메시지 부분집합 정의 +- *rule*: 조건에 맞는 메시지에 액션 적용 +- 공통 목적(메시지 필터링)인데 기능이 불완전하게 겹침. Gmail은 이를 단일 개념으로 통합. + +### 과부하 개념(Overloaded concepts) + +하나의 개념이 여러 목적을 가질 때. 4가지 원인: + +| 원인 | 설명 | 사례 | +|------|------|------| +| **False convergence** | 두 목적이 하나라고 착각 | Facebook *friend* = 필터링(봐야 할 것) + 접근 제어(봐도 될 것) | +| **Denied purpose** | 설계자가 사용자의 목적을 무시 | Twitter *favorite* = 승인 표시 + 저장(사용자가 원했지만 무시됨) | +| **Emergent purpose** | 시간이 지나며 새 목적이 생김 | 이메일 *subject line* = 요약 → listserv 출처 표시 → 대화 그룹화 | +| **Piggybacking** | 기존 개념에 새 목적 얹기 | Epson 프린터 드라이버: *paper size* 개념에 *paper feed* 붙이기 | + +### Facebook *like* 개념 분석 + +Facebook *like*는 세 목적을 동시에 가진다: +1. **감정 반응 전달** (저자, 친구에게) +2. **뉴스피드 큐레이션** (사용자 자신에게) +3. **광고 프로파일링** (Facebook과 광고주에게) + +일관성 테스트를 통한 복합 목적 판별: +- **재표현 가능성**: "게시물에 반응하기"로 통합하기 어려움 +- **공통 이해관계자**: 각 부분이 다른 집단에 혜택 +- **공통 미션**: 각 부분의 미션이 다름 (관계 구축 / 콘텐츠 참여 / 광고 수익) +- **비충돌성**: "화남(angry)" 반응이 좋아요로 해석되는 모순 + +**해결책**: 세 개념으로 분리 — *reaction* + *recommendation* + *profiling* + +--- + +## Ch10 — 개념 친숙성(Concept Familiarity) + +### 원칙 + +기존에 알려진 개념이 목적을 충족하면, 새 개념을 발명하지 마라. 친숙한 개념을 사용하면: +- 사용자가 이미 개념을 알기 때문에 배우는 비용이 없다 +- 기존 개념의 검증된 설계 지식을 활용할 수 있다 +- 미스피트 가능성이 줄어든다 + +### 성공적 재사용: Twitter *follower* + +Twitter는 *follower* 개념을 소개하면서 이미 알려진 *subscription* 개념임을 명시한다: "Following someone means you've chosen to **subscribe** to their Twitter updates." — 운영 원칙을 직접 제공하며, 기존 개념과의 연결로 학습 부담 제거. + +### 재발명의 실패: PowerPoint *section* vs. Keynote *slide group* + +같은 목적(슬라이드 그룹화)을 위한 두 설계 비교: + +| 측면 | Keynote *slide group* | PowerPoint *section* | +|------|----------------------|----------------------| +| 기반 개념 | *outline tree* (친숙) | 신규 발명 (생소) | +| 중첩 | 6단계까지 가능 | 불가능 | +| 생성 방법 | 슬라이드를 오른쪽으로 드래그 | 복잡한 메뉴, 예측 불가 결과 | +| 행동 예측성 | 직관적, 예측 가능 | 추가 시 범위 외 슬라이드가 자동 생성되는 등 예측 불가 | + +Keynote가 더 효과적인 이유: 처음부터 새로 만든 것이 아니라 친숙한 *outline tree* 개념을 재사용했기 때문. + +### 확장이 친숙성을 깨뜨린 경우: Lightroom 내보내기 프리셋 + +*preset* 개념은 반복 명령의 파라미터를 저장하는 친숙한 개념이다. Adobe Lightroom의 내보내기 다이얼로그는 여기에 "여러 프리셋 체크로 복수 내보내기" 기능을 추가했다. 결과: 프리셋 이름 클릭과 체크박스 클릭이 다른 동작을 함 → 사용자 혼란. 해법: *action* 개념처럼 별도의 "명령 시퀀스" 개념을 분리했어야 했다. + +### 개념 인스턴스는 표준 동작을 따라야 한다 + +친숙한 개념의 인스턴스라면, 표준 동작에서 벗어날 때는 명확한 이유가 있어야 하고 그 차이를 사용자에게 분명히 알려야 한다. + +**Apple Contacts 사례**: 왕세자가 어머니를 "Mummy"로 저장 → 이메일 수신자 주소에 "Mummy"가 포함돼 전달됨. *nickname* 개념처럼 비공개로 동작할 것이라는 기대와 달리, Contacts는 *contact* 개념으로 모든 정보를 공유한다. 개념 인스턴스의 동작이 기대와 다를 때 생기는 혼란. + +--- + +## Ch11 — 개념 무결성(Concept Integrity) + +### 원칙 + +개념들이 조합될 때, **각 개념의 명세(specification)가 위반되지 않아야 한다**. 동기화는 개념의 기존 행동을 제거할 수는 있지만, 개념 명세에 위배되는 새로운 행동을 추가해서는 안 된다. + +### 무결성 위반이란 + +동기화가 아닌 방식으로 개념 간 상호작용이 발생해, 한 개념의 행동이 그 개념의 명세와 불일치하는 현상. + +### 명백한 위반: 복수심에 찬 식당 주인 + +*reservation* + *review* 조합에서: +- 식당 주인이 나쁜 리뷰를 남긴 고객의 예약을 cancel 없이 무효화 → *reservation* 개념의 운영 원칙("예약 후 취소 없으면 자리 보장") 위반 → 무결성 위반 + +반면, 나쁜 리뷰 시 cancel 액션을 자동 실행하도록 동기화하는 것은 비윤리적이지만 무결성 위반은 아니다. *reservation* 명세 안에 있는 cancel 액션을 트리거한 것이기 때문. + +### 미묘한 위반: 폰트 서식 + +초기 *format toggle* + *typeface* 조합은 작동했다: 이탤릭 적용 시 이탤릭 폰트 파일로 전환, 볼드 적용 시 볼드-이탤릭 파일로 전환 (toggle 명세 유지). + +전문 폰트 등장 이후 문제: Helvetica Light에 볼드를 두 번 적용해도 Light로 돌아오지 않고 Regular가 됨 → *format toggle*의 "두 번 적용하면 원래 상태로 복귀" 운영 원칙 위반. + +- **Apple TextEdit**: 위반 그대로 +- **Apple Pages**: 숨겨진 매직으로 복귀 동작 구현 → 다른 문제 유발 +- **Adobe InDesign**: 문자 스타일이 특정 폰트 패밀리에만 적용되는 비표준 동작 + +이 문제는 근본적으로 해결되지 않았다. *format toggle* 개념과 더 정교해진 타이포그래피 개념들은 원천적으로 조화가 어렵다. + +### 중대한 위반: Google Drive 동기화 + +*synchronization* 개념의 운영 원칙: "한 컬렉션의 변경이 다른 컬렉션에 전파됨. 두 장소의 아이템 복사본은 동일해야 함." + +Google Drive는 `.gdoc` 같은 Google 앱 파일을 로컬 디스크에 저장할 때, **실제 파일 데이터가 아닌 클라우드 링크를 저장**한다. 사용자가 로컬 폴더에서 파일을 이동하면: +1. Google Drive 동기화가 클라우드에서도 파일을 삭제 +2. 사용자는 로컬 디스크의 파일(사실 링크)을 열려고 하지만 클라우드 파일이 이미 없어서 오류 + +이것은 *synchronization* 개념과 *cloud app* 개념(문서가 링크로 접근)의 조합이 *synchronization* 명세("복사본이 동일해야 함")를 위반한 무결성 위반이다. + +> "I lost years of work and personal memories that I saved as Google Docs files because of a poor user interface." (피해 사용자의 증언) + +기술적으로 수정 가능한 문제이나 Google이 아직 우선순위를 두지 않고 있다. + +### 세 원칙의 그림 요약 (Fig.11.5) + +- 목적과 개념 사이의 선: 개념이 목적을 충족 +- 점선: 다른 개념의 간섭으로 충족 불가 (무결성 위반) +- 개념 간 선: 조합(composition) +- 점선 박스: 앱 + +--- + +## 핵심 인용 + +> "The specificity principle says that concepts should be one-to-one with purposes. This simple rule has some profound implications for concept design." + +> "A good designer knows not only how to invent new concepts, but also when not to invent at all." + +> "When concepts are composed to form an application, they may be synchronized… This synchronization may eliminate certain behaviors of a concept, but can never add *new* behaviors inconsistent with the concept specification." + +## 관련 개념 + +- [[EOS-ch4-concept-structure]] — 목적(purpose)과 운영 원칙의 정의 +- [[EOS-ch5-concept-purposes]] — 좋은 목적의 기준 +- [[EOS-ch6-concept-composition]] — 동기화 메커니즘 (무결성 원칙의 전제) +- [[EOS-ch7-concept-dependence]] — 의존 다이어그램과 최소 제품 선택 +- [[EOS-ch8-concept-mapping]] — 매핑과 친숙성의 관계 +- [[EOS-overview]] — 전체 개요