3 # dev-work-flow-diagram
\r
4 =======================
\r
6 the colored object in 'top usecase diagram' is the entrance launched by an
\r
7 actor in developing. others show the steps in developing. and they are
\r
8 described in other diagrams in detail. view the diagram of *-procedure.
\r
9 all those develop steps is described in section of 'develop step'.
\r
16 it brings design conception and work into a src-pkg, although it's simple,
\r
17 easy and weakness, it helps developer to follow the regular procedure.
\r
18 the meaning of the design work is for auto-sync between design and src-code,
\r
19 by the same processing method.
\r
21 SA(structured analysis)
\r
22 @ list program or device operator and IO object in ExternalList.txt.
\r
23 @ writing function feature list in TODO.
\r
24 @ list the data processing procedure in program in file of DataProcessing.txt.
\r
25 @ writing the function feature module invoking sequence in file
\r
28 SD(structured design)
\r
29 @ writing program module list in xxx.catalog accroding to file of 'TODO'.
\r
30 @ writing module variable and function list in xxx.catalog, accroding to the
\r
31 file of 'DataProcessing.txt' and 'ModuleInvoking.txt'.
\r
32 @ generate or sync xxx.catalog design file to dir of 'src'.
\r
34 the rest thing is like normal, coding and testing until done.
\r
51 the meaning of this design work is providing a method how to generate design
\r
52 files for code generation.
\r
53 SE, software engineering design, is similar with compact design. actually,
\r
54 the procedure of compact design is referenced from this. but SE design use
\r
55 graphical utilities for design, the content can be descripted in detail and
\r
56 more humen readable.
\r
66 dev-initial-procedure:
\r
78 @ new-demond-action:
\r
80 @ initial-dev-launch:
\r
81 @ new-feature-dev-launch:
\r
82 @ complete-estimate:
\r
83 @ publish-estimate:
\r
84 @ testing-estimate:
\r
87 @ usr-bug-report-action:
\r
89 @ works of bugfix, testing, document, translation:
\r
90 @ tasks of analysis, design, coding, testing, document, translation:
\r
102 it's sourced from the behaviour-action list, then translated to the work
\r
104 some of the work task can be combined in a procedure, it can be mentioned
\r
105 repeatly in other place.
\r
107 actor ==> behaviour action ==> procedure ==> work task ==> dev-step
\r
109 all the work translated to dev-step, any actor followed with the step,
\r
110 src-pkg will be developed.
\r
111 those develop procedure below are used in developing under devspec, and it
\r
112 is a note for usecase diagrams.
\r
114 @ new src-pkg creating
\r
115 # download and install pkg-builder,
\r
116 # check the develop environment works well.
\r
117 # create a soft-pkg by templete.
\r
118 # create web home pages by program or guide documents.
\r
119 # first-version-dev-env-chk: create the start version of the soft-pkg, compile,
\r
120 and comit to code repo, and publist the initial blank version of soft pkg for
\r
123 @ initial-dev-launch(for new project develop)
\r
124 # tag-doc. record the function feature or idea for a soft-pkg.
\r
125 # trimp the tag-doc, and output a feature list to be developed.
\r
126 # catalog. writing function module for soft-pkg by using .catalog file.
\r
127 # generate code framwork automatically by using codegen. compile and fix
\r
128 compile bug, output an executables.
\r
129 # modulized design:
\r
130 + write unit test code, and coding for single function module,
\r
131 + unit test by using cunit or scripttest.
\r
132 + coding ... until the code of function module is tested ok.
\r
133 # integrate testing by scripttest.
\r
134 # performence testing accroding to the demand of design. memory leakage, code
\r
135 coverage, and code optimization.
\r
136 # multi-lang support accroding to the demand of design.
\r
137 # first version testing, and bug-report, bug-fix, re-testing.
\r
138 # document: manual-helper-doc, dev-api-doc, tutorial/animation, example, and so
\r
140 # publish for src-pkg, binary install pkg, relative resource file pkg, web
\r
141 pages, documents, by using utility programs in devutils.
\r
143 @ new-feature-dev-launch(part of code develop)
\r
144 # get the develop task from task list, and clear what to be developed.
\r
145 # create unit test code, coding for task.
\r
146 # unit test, and fix-bug, re-test.
\r
147 # inegerate test, or function feature loop-back test.
\r
150 # send issue by email to the maintainer, maybe with the patch code. or ideas
\r
151 from the author of soft-pkg.
\r
152 # view the issue by maintainer, append a feature in tag-doc if it is needed for
\r
155 @ new feature branch marge
\r
156 # fork a new branch from main version, modify code on it until it is done.
\r
157 # check if the code of main version
\r
158 # get the corresponding version of code forked from mainline. get the current
\r
159 newest version of code, and compare them.
\r
160 # combine the compared modification code into new branch.
\r
161 # loop-back testing
\r
162 # commit if the ocde of main version is not updated since it is used for
\r
163 comparing. if new modification commited, compare and combine again.
\r
166 # send mail to the maintainer. it's better to bring test environment
\r
167 description, even if the patch code.
\r
168 # record the bug-report info, and append the bug re-testing task.
\r
169 # tester or some one get the task of bug re-testing in current version, and
\r
170 test in various long time support version.
\r
171 # record the bug-report and bug-testing info, append a bug-fix task, and
\r
172 specify the version code to be fixed, and record patch version publish
\r
173 demaond if the fixed-bug is need to be publish as a patch version.
\r
175 @ new feature develop
\r
176 # get a intreast task from feature list by developer, or assign task to a
\r
177 developer by the maintainer.
\r
178 # developer get the task, and the relative documents. do develop works
\r
179 accroding 'part of code develop'.
\r
180 # check if all features developed in new version feature list, and publish
\r
184 # create a task for bug-fixing.
\r
185 # developer get the task, and the relative description text. do develop works
\r
186 accroding 'part of code develop'.
\r
187 # fix and test in other versions listed in task.
\r
188 # publish patch version if needed.
\r
191 # check feature list that has been developed, check bug list that has been
\r
193 # build soft-pkg, generate documents.
\r
194 # function feature loop-back testing, documents checking, fix-bug if needed.
\r
195 # output changelog and news automatically by tag-doc. delete task record and
\r
196 bug record that has been done. trimp documents in tag-doc.
\r
197 # upload src-pkg and bin-pkg, update web pages by utility programs in devutils.
\r
198 view the web pages, and test downloading, build and running loop-back test.
\r
200 the develop of soft-pkg is driven by task and develop step. the maintainer
\r
201 put developer on a task, or a developer is intreasting in some feature, or
\r
202 willing to fix some bug. it push the step for soft-pkg developing.
\r
204 here impmort a conception of 'procedure'. it's the step serial for works
\r
214 + topÓÃÀýͼ£º°üº¬user¡¢softwareÖ®¼ä¹ØÁªµÄ´óÌå¿òͼ¡£²àÖØÓÚÓû§behaviour£¬¼°¶ÔÓ¦
\r
215 µÄ¹¦ÄÜÄ£¿é¡£¶ÔÓÚÒ»¸öÃüÁîÐгÌÐò£¬Í¨³£ÊÇÃüÁîÐвÎÊý¼°¶ÔÓ¦µÄ¹¦ÄÜ¡£ÔÚÓÃÀýͼÖаüº¬pkgÐÅÏ¢£¬²»ÁíÍâ»æÖÆpkgͼ¡£
\r
216 + pkgÓÃÀýͼ£º°üº¬Ò»¸öpkg»òһЩ¹¦ÄÜÏà½üµÄpkgµÄuserºÍoperationÖ®¼äµÄ¹Øϵͼ¡£Èç¹û
\r
217 ³ÌÐò½Ï¸´ÔÓ£¬°üº¬¶à¸ösub-pkg£¬»ò°üº¬¶à¸öexe³ÌÐòʱ£¬¶Ôpkg»òexeµÄÓÃÀýÃèÊö¡£
\r
220 + £¡¹¦Äܵ÷Óùý³Ìͼ(function-invoking-procedure-diagram)¡£
\r
221 ´ÓÍⲿÊäÈëµ½¹¦ÄÜ´¦ÀíµÄÔËÐйý³Ìͼ¡£ÓëÊý¾ÝÁ÷ͼÏà¶ÔÓ¦µÄ¹¦ÄÜÔËÐйý³Ìͼ¡£ÀýÈç´Ó
\r
222 Óû§ÊäÈëÃüÁîÐеÄij¸ö²ÎÊýµ½¹¦ÄÜʵÏֵŦÄÜÄ£¿éµ÷Óá£Ò»¸ö¹¦ÄÜÄ£¿é¿ÉÒÔÊÇÒ»¸ö
\r
223 module£¬Ò²¿ÉÒÔÊǺ¯Êý¡£
\r
224 + ¹¦ÄÜÌØÐÔÁбíÎļþ(function-feature-list-file)
\r
225 ÓÃÓÚ¹¦ÄÜÌØÐÔÐèÇóµÄtracer¡£Í¬Ê±ÓÃÓÚÊä³öTODOÎļþ¡£TODOÎļþµÄ¹¦ÄÜʵÏÖºó£¬ÓÃÓÚ
\r
226 changelogºÍnewsÎļþµÄÊä³ö¡£
\r
227 ¶Ô¹¦ÄÜÐèÇó»ò¹¦ÄÜÌØÐÔµÄÃèÊö¡£¸ù¾ÝuserµÄ²Ù×÷£¬ÒÔ¼°¹¦ÄÜÄ£¿éµ÷Óùý³Ì£¬Êä³ö¹¦ÄÜ
\r
228 ÌØÐÔÁбíÎļþ£¬ÓÃÓڼǼ¹¦ÄÜÐèÇ󡣸ù¾Ý¡®¹¦Äܵ÷Óùý³Ìͼ¡¯ÖÐʹÓõŦÄÜÄ£¿é£¬ÂÞÁÐÒ»
\r
229 ¸ötable½á¹¹µÄÁбíÎļþ¡£²¢¸ù¾Ý¹¦ÄÜÄ£¿éÖ®¼äµÄ¹ØÁª¹Øϵ£¬ÒÔĿ¼½á¹¹±íʾ¹¦ÄÜÄ£¿éÁÐ
\r
231 + £¡Êý¾ÝÁ÷ͼ(DFD, data-flow-diagram)¡£
\r
232 ¸ù¾ÝÈí¼þÓëÍⲿÎïÀíʵÌåµÄÊý¾Ý½»»¥£¬·ÖÎö¼°»æÖÆÊý¾Ý´¦Àí¹ý³Ì¡£
\r
234 ϸ»¯¹¦ÄÜÄ£¿éÖ®¼äµÄµ÷Óùý³Ì£¬
\r
236 + Êý¾Ý×Öµä(data-dict)¡£DFDÖÐÿ¸öÊý¾ÝÌõÄ¿µÄ¼¯ºÏ¡£ÓÃÓÚE-RͼµÄÊý¾ÝÏî¡£E-RͼÊä³öÊý¾Ý±í¼°Êý¾ÝÄÚÈݵĶ¨Òå¡£
\r
237 + E-Rͼ(ER-diagram)£¬ÊµÌå¶ÔÏóͼ¡£ÓÃÓÚÊä³öÊý¾Ý¿â±í½á¹¹¶¨Òå¡£
\r
240 + °üͼ/×é¼þͼ/²¿Êðͼ£¬ÓÃÓÚ±íʾ²»Í¬level¹æÄ£µÄÈí¼þÄ£¿é¡£×é¼þͼÓÃÓÚ±íʾϵͳ¼¶³ÌÐò
\r
241 Ì×¼þ£¬²¿ÊðͼÓÃÓÚ±íʾ²»Í¬³ÌÐòÔÚ¶à»ú»·¾³µÄ°²×°²¿Ê𡣶ÔÓÚ°üͼµÄ¹¦ÄÜ£¬ÔÚc/cppÖеÄ
\r
242 Èí¼þ°üÓëjÖеIJ»ÍêÈ«Ïàͬ¡£
\r
243 + ʵ¼ÊÔÚc/cpp¿ª·¢ÖУ¬Êä³öbuild-destÁÐ±í£¬Êä³öinstall-pkgÁÐ±í£¬Êä³ösrc-pkgÁÐ±í£¬
\r
244 ÕâЩÁбíÓÃÓÚ¹¦ÄÜÄ£¿éÁбíÎļþµÄtop-levelÉè¼Æ£¬src-pkgµ½exec-pkgµ½build-dest¡£
\r
245 һЩsrc-pkgµÄexec-pkg½Ï¶àʱ£¬»ò½«exec-pkg¶ÔÓ¦µÄsrcת»»Îªsub-src-pkg¡£
\r
246 + ¸ù¾ÝÕâЩÁÐ±í£¬top-levelµÄ¡®¹¦ÄÜÄ£¿éÁбíÎļþ¡¯¡£ÔÚcodegenʱ£¬Êä³ösrc-pkg£¬¼°ÆäÄ¿
\r
247 ¼·ÖÀ࣬ÒÔ¼°Ò»¸ösrc-pkgÖеÄinstall-pkgºÍbuild-dest¡£
\r
250 + top-level¹¦ÄÜÄ£¿éÁбíÎļþ
\r
251 ÓÃÓÚÈí¼þ´úÂ빤³Ì³õʼ»¯Ê±£¬Êä³ö²»Í¬µÄsrc-pkg¡£
\r
252 + ¹¦ÄÜÄ£¿éÁбíÎļþ(function-module-list-file)
\r
253 ¸ÃÎļþÓÃÓÚcodegenÊä³ö´úÂë¿ò¼Ü£¬ÒÔ¼°²âÊÔÓÃÀý¡£
\r
254 ²»Í¬ÓÚ¹¦ÄÜÌØÐÔÁбíµÄÊÇ£¬ÕâÊÇÒ»¸ö³ÌÐò´úÂëÄ£¿éµÄ»®·Ö¡£¶ø¹¦ÄÜÌØÐÔÁбíÊǶԹ¦ÄÜ
\r
255 ÐèÇ󣬹¦ÄÜÌØÐÔµÄÃèÊö¡£ÔÚ¡®¹¦ÄÜÌØÐÔÁбíÎļþ¡¯ÖУ¬½«Ä£¿éÃû³ÆÌí¼Óµ½¶ÔÓ¦µÄ¹¦ÄÜÌØÐÔÃèÊöÖУ¬Ê¹Á½¸öÁбíÄÚÈÝÉÏ¿Éͬ²½¼°¹ØÁª¡£
\r
256 ʹÓÃ.catalogÎļþ±àд£¬ÃèÊöÒ»¸öĿ¼½á¹¹µÄ¹¦ÄÜÄ£¿éÁÐ±í¡£ÔÚcpp³ÌÐòÉè¼Æʱ£¬»¹¿É
\r
257 ʹÓÃ.umlÀàͼ¡£¸ÃÎļþÓÃÓÚÊä³ö³ÌÐò´úÂë¿ò¼Ü¡£
\r
258 Èí¼þ½Ï¸´ÔÓʱ£¬°üº¬¶à¸ö¹¦ÄÜÄ£¿éÁбíÎļþ¡£
\r
259 topÎļþ°üº¬µÄÊÇÈí¼þdeploymentÏà¹ØµÄÉè¼ÆÐÅÏ¢¡£Ò»¸ösoftware¶ÔÓ¦Ò»¸ötopÉè¼ÆÎÄ
\r
260 ¼þ£¬Ò»¸ösoftwareÖаüº¬¶à¸ösrc-pkg£¬Ò»¸ösrc-pkgÖпɰüº¬¶à¸öinstall-pkg£¬Ò»¸ö
\r
261 install-pkgÖпɰüº¬¶à¸öbuild-dest¡£¸ù¾ÝÈí¼þµÄʵ¼ÊÇé¿ö£¬ÒÔ²»Í¬µÄ½á¹¹×éÖ¯¡£
\r
262 Ò»¸öbuild-dest¶ÔÓ¦×ÅÒ»¸ö¶þ½øÖƳÌÐò£¬ÒÔ¼°ÏàÓ¦µÄcatalogÎļþ¡£
\r
263 ÕâÀïµÄtop-catalogÎļþÔÚ³õʼ»¯Ô´Â빤³ÌÎļþʱʹÓã¬ÆäËücatalogÎļþcopyµ½¶ÔÓ¦
\r
265 ¸ù¾Ý¡®¹¦Äܵ÷Óùý³Ìͼ¡¯ÖеÄÄ£¿é£¬Êä³ö¹¦ÄÜÄ£¿éÁÐ±í¡£¸ù¾ÝͼÖеIJÙ×÷Á÷ºÍÊý¾ÝÁ÷£¬
\r
266 Êä³öÄ£¿éµÄ½Ó¿Úº¯Êý¼°²ÎÊý£¬Êä³öÄ£¿éÖ®¼äµÄ¹«ÓÃÊý¾Ý£¨Îļþ£¬db-tbl£¬global
\r
267 variable£©¡£ÕâЩÄÚÈÝÊä³öµ½Ò»¸öcatalogÎļþ£¬µÈͬÓÚÒ»¸ö´øĿ¼½á¹¹µÄÀàͼ¡£
\r
268 + ¹¦ÄÜÄ£¿é½á¹¹Í¼(function-module-struct-diagram)/¼Ü¹¹Í¼£¨architech-diagram£©
\r
269 ²ã´Î»¯Éè¼ÆµÄ¿òͼ¡£¸ù¾Ý¹¦Äܹý³Ìµ÷ÓÃͼºÍÊý¾ÝÁ÷ͼ¶øµÃ¡£
\r
270 ʹÓÃcatalogÎļþÒ²¿É±íʾ¹¦ÄÜÄ£¿éµÄ²ã´Î»¯½á¹¹¡£
\r
271 + Ààͼ(class-diagram)
\r
272 ¸ù¾Ý¹¦Äܹý³Ìµ÷ÓÃͼºÍÊý¾ÝÁ÷ͼÖеÄÄ£¿é£¬Êä³ö¹¦ÄÜÄ£¿éµÄÀàͼ¡£ÒÔ¼°Êý¾ÝºÍ¹¦Äܵ÷
\r
273 ÓùØϵ£¬Êä³ö±äÁ¿ºÍº¯ÊýµÄ¶¨Òå¡£cÓïÑÔ³ÌÐòÉè¼Æʱ£¬Ò²¿ÉʹÓÃcatalogÎļþ´úÌæÀàͼ¡£
\r
275 Óë³ÌÐò¿âÖÐÒÑÓÐÈí¼þÉè¼Æ½á¹¹µÄmatching£¬ÓÃÓÚÊä³öÏàͬµÄÉè¼Æ½á¹¹µÄÉè¼Æ´úÂë¡£
\r
278 + ³ÌÐòÃüÁîÐвÎÊýÉè¼ÆÎļþ(cmd-args-design)¡£
\r
279 + ³ÌÐòÔËÐвÎÊýÉè¼ÆÎļþ(running-param-design)¡£
\r
280 + txtÎı¾Êý¾ÝµÄ´Ê·¨/Óï·¨¸ñʽ¶¨ÒåÎļþ(.lex/.gmr)£¬ÓÃÓÚÎļþ»òͨÐÅÐÒé¸ñʽÃèÊö¡£
\r
281 + hex¶þ½øÖÆÊý¾ÝµÄ½á¹¹»¯¸ñʽ¶¨ÒåÎļþ¡£Ê¹ÓÃhexfmt(.type)£¬ÓÃÓÚÎļþ»òͨÐÅÐÒé¸ñʽ
\r
283 + ͨÐÅÐÒéµÄtime-sequenceͼ¡£
\r
284 + UIÈË»ú½»»¥½çÃæµÄÉè¼ÆÎļþ(.ui)¡£Ê¹ÓÃscript»òRAD¿ª·¢Èí¼þ½øÐнçÃæÉè¼ÆºÍÏÔʾ¡£
\r
285 + ÊäÈëÊä³öÐźÅ/Êý¾ÝµÄtime-sequenceͼ¡£
\r
286 + Óû§Êý¾ÝÊý¾ÝÎļþ¡£E-Rͼ£¬tbl½á¹¹¡£
\r
289 + Èí¼þ°ü¹¤³ÌĿ¼´´½¨£¬²¢±àдGNUÈí¼þ°üÏà¹ØµÄÎļþ¡£
\r
290 + code-gen¸ù¾Ý.catalog»ò.umlÀàͼ´´½¨´úÂë¿ò¼Ü¡£
\r
291 + ¸ù¾Ý¿ª·¢Ï°¹ßºÍÐèÒª£¬Ê¹ÓÃRADÈí¼þ¿ª·¢demo¡£
\r
292 + ¹¦ÄÜÄ£¿éunitµÄ²âÊÔÓÃÀý¡¢±àÂë¡¢²âÊÔ¿ª·¢¡£
\r
293 + ¹¦ÄÜÄ£¿é¼¯³ÉµÄ±àÂë¡¢²âÊÔ¡£
\r
295 + doc£¬tutorial£¬webdoc¡£
\r
296 + °æ±¾ÉèÖã¬src-pkgºÍexe-pkgµÄÖÆ×÷¡£
\r
299 + pkgÔÚrepoµÄsync¡£
\r
300 + ÏÂÔØ£¬±àÒ룬loop-back²âÊÔ¡£
\r
301 + webdocµÄpublish¡£
\r
305 # different scale of developing
\r
306 ================================
\r
308 most of the src-pkg is developed by one developer, and others provide
\r
309 ideas, suggestion, bug-report, bug-fix-patch, maybe write a part of code. all actor is the same peron, the author/maintainer of the src-pkg.
\r
310 if the soft-pkg is complex, it need many developer work together for
\r
311 developing. the actor fills with an actual person. all developer cooperate to
\r
312 develop the soft-pkg.
\r
313 if the software is an system, such as operating system, the software is
\r
314 consisted by various src-pkgs.
\r
316 the example of different scale software.
\r
318 @ linux operating system. not the linux kernel, it is consisted by lots of pkgs
\r
319 with different function feature.
\r
320 @ linux kernel. it's a complex software, but all it is in one src-pkg.
\r
321 @ putty terminal program. it's an example of general application programs with
\r
322 GUI. it consisted by some of src-pkg.
\r
323 @ libxml2. it's a src-pkg with lib and executables. libc is a well known lib
\r
324 for this type of src-pkg.
\r
325 @ sed. it's a classic program, and only one utility program with docs.
\r
349 ## first, writing note
\r
350 ======================
\r
351 writing note for function feature description, for the operation user would
\r
352 do, for anything author want to record about the src-pkg, and tag the doc with
\r
353 a tag-name, which is used for category and index.
\r
357 ======================
\r
398 **TBD** it's the behaviour and action description of different actors. task is
\r
402 - new-idea-action, new-demand-action.
\r
403 - initial-dev-launch: create a src-pkg, and develop for it's first version.
\r
404 - analysis-action. analysis idea doc, and translate them into feature
\r
406 - new-feature-dev-launch. get the task in file of 'todo' in a version,
\r
407 put them into task list(todolist) of this src-pkg, and add other tasks like
\r
408 document writing, translation, testing, publish, and so on. 'devtask launch
\r
409 <task-id>' will do this work automatically with version id. the task
\r
410 generated in todolist can be modify manually.
\r
411 - complete-estimate: check if the task launched is done.
\r
412 - publish-launch: decide to publish one version of code.
\r
413 - publish-estimate: decide if the src-pkg should be published.
\r
414 - publish-task: loop-back testing, put src-pkg and install-pkg on web, update
\r
416 - but not do other the actual develop work.
\r
418 - same as the maintainer if willing to do some of that.
\r
419 - design-task: do work of the design task in new feature develop procedure.
\r
420 writing or modifying program module list file. append module, ethod/function
\r
421 and variable to .catalog file, develop task dispatching, and so on. design
\r
422 work is the important work for developing.
\r
423 - bugfix-estimate. check if the bug should not be fixed juest now. by default,
\r
424 the bug reported will be fixed, and put bugfix info into 'todolist' from
\r
426 - testing-estimate: after testing bug-report, estimate the bugs, and decided
\r
427 if it will be fix or not. end task or do next task.
\r
428 - get task from task list (todolist), do the actual develop or other works.
\r
429 - same work as a normal developer.
\r
431 - task-work: get coding tasks in src-pkg task list(todolist). maybe it is a
\r
432 new feature job, or a bug-fix job.
\r
433 - writing unit test code, or test script for bug testing.
\r
434 - document and tutorial writing, especially for design document. any thing
\r
435 a documentor will do.
\r
437 - task-work: test schem write with script for tool of 'scripttest'.
\r
438 - white box testing.
\r
439 - black box testing.
\r
440 - bug-report-task: put bug description string into 'bugs', put bug detail
\r
441 info into .tagdoc file, or pkg-record file under doc/testing/<version-id>/.
\r
443 - use-action: download, build, install, and use.
\r
444 - usr-bug-report-action: send bug-report by email, or on the webpages,
\r
445 sometimes with code patch file.
\r
446 - new-demand-action:
\r
448 - task-work: translation of documents by getting translation task in
\r
451 - task-work: getting task from task list about document.
\r
453 - user manual in different file format.
\r
454 - man or info helper file.
\r
455 - generate and check webpages.
\r
456 - cmdline tutorial if needed.
\r
473 # analysis and design
\r
474 =====================
\r
478 ## classical app feature design
\r
479 ===============================
\r
481 it's a topic of program style in charpter of 'prog-style'.
\r
482 classical app design helps developer to develop programs rapidly.
\r