心肌缺血吃什么药效果最好| 四大美女是什么生肖| 什么降胆固醇| 物以类聚是什么意思| 夏占生女是什么意思| 右束支传导阻滞是什么病| 头疼去医院挂什么科| 十指纤纤尽夸巧是什么生肖| 菠萝与凤梨有什么区别| 肾结石什么东西不能吃| 生理曲度变直什么意思| 什么主食含糖量低| 膝盖痛吃什么| 什么叫碳水化合物| 什么叫声母什么叫韵母| 女人喜欢黑色代表什么| 赫依病是什么病| 大人有大量是什么意思| 班禅是什么意思| 血脂高胆固醇高吃什么食物最好| 屁多还臭是什么原因| 什么是痤疮图片| 女性安全期是什么时候| 黄瓜敷脸有什么作用与功效| 出岫是什么意思| aj和nike什么关系| HPV高危亚型52阳性什么意思| 扩词是什么| 有机食品是什么意思| 蛋白过敏是什么症状| 女人辟邪带什么最好| 流口水是什么原因| 带状疱疹不能吃什么食物| 飞刃是什么意思| 是的什么意思| 518是什么星座| 雪对什么| 卵泡破裂是什么意思| 吃了狗肉不能吃什么| amv是什么意思| bpo是什么| 母亲ab型父亲o型孩子什么血型| lmy是什么意思| 白完念什么| 二甲医院是什么级别| 霉菌感染用什么药好| shake是什么意思| mac是什么牌子| 糟卤对身体有什么危害| 乳头经常痒是什么原因| 赊账是什么意思| super star是什么意思| 女生胸部长什么样| 买什么样的老花镜好| cachecache是什么牌子| 口香糖是什么材料做的| 心悸吃什么药| jk什么意思| 拜阿司匹林和阿司匹林有什么区别| 检查肝脏应该挂什么科| us什么意思| 3月16日什么星座| 为什么文化大革命| 上火吃什么好| phoenix是什么牌子| 北京市副市长是什么级别| 上海有什么好玩的地方| 长痣是什么原因| 什么看果园越看越少| 专项变应原筛查是什么| 77年的蛇是什么命| 阿莫西林不能和什么药一起吃| 快的反义词是什么| 咽喉炎吃什么药好得快| 喝什么茶对睡眠有帮助| 手指发痒是什么原因| 什么是善| nadh是什么| 膏肓是什么意思| 早搏是什么感觉| 股癣用什么药膏| 压箱底是什么意思| 吃什么容易拉肚子| 月亮杯是什么东西| 米粉是什么做的| csco是什么意思| 西瓜红是什么颜色| 脚气是什么症状| 85年属于什么生肖| 苓是什么意思| 寒疾现代叫什么病| 小肠气是什么症状| 贡米是什么米| 为什么要努力读书| 七情六欲指什么| 死精是什么样的颜色| 早上起来口干口苦是什么原因| 狗狗打疫苗前后要注意什么| 理工男是什么意思啊| rt表示什么意思| abo是什么血型| 大什么什么针| 老人说胡话是什么征兆| 黑豆熟地水功效是什么| 腹腔积水是什么原因造成的| 肛裂出血和痔疮出血有什么区别| 什么啊| 嘴麻是什么原因| ba是什么| 牛肚是什么部位| 西安有什么区| dr钻戒什么档次| 嫩模是什么意思| 穹窿是什么意思| 血亏什么意思| 呼吸不过来要喘大气是什么情况| 经常放屁是什么原因造成的| 事宜是什么意思| 岍是什么意思| 移花接木什么意思| 淼念什么| 宫颈肥大伴纳氏囊肿是什么意思| 男生13厘米属于什么水平| 马克笔是什么笔| 明朝什么时候灭亡| 益生菌有什么功效| 私生饭是什么意思| 多汗症吃什么药| 公司监事是干什么的| 孙膑原名叫什么| 用什么泡脚可以脸上祛斑| 右肩膀痛是什么原因| 宇宙之外是什么| 为什么会得脂溢性皮炎| 脚发烫是什么原因| 背疼是什么原因引起的女人| 扎巴依是什么意思| 野兔子吃什么| 手指甲发白是什么原因| 双喜临门的临是什么意思| 少帅是什么军衔| 小腹胀痛是什么原因| 女人出汗多是什么原因| 田七煲汤配什么材料| 内脏吃多了有什么危害| 药流后需要注意什么| 脸色苍白没有血色是什么原因| 疏离感是什么意思| 内分泌科属于什么科| 赤脚走路有什么好处| 秦始皇的名字叫什么| 软冷冻室一般放什么东西| 今天穿什么| 高血压1级是什么意思| 肝阳上亢吃什么药| 脚后跟痛什么原因| 柏拉图式恋爱是什么意思| 生物素是什么| 水泻拉肚子是什么原因| 无水奶油是什么| usd什么意思| 四个火读什么字| 公筷是什么意思| 小狗可以吃什么水果| 大圆脸适合什么发型| 尿带血什么原因| 画像是什么意思| 发炎不能吃什么东西| 什么叫抑郁症| 什么叫疱疹| 委曲求全是什么生肖| 看病人带什么水果| 三农是什么| 陪跑什么意思| 心绪不宁的意思是什么| 辛弃疾字什么| cto是什么意思| 二尖瓣关闭不全是什么意思| 额头上长小疙瘩是什么原因| 为什么要延迟退休| hg是什么意思| 优生十项是检查什么| 来大姨妈喝什么汤比较好| 80年五行属什么| 什么是生辰八字| 雌激素过高是什么原因造成的| 烧心吃什么食物好得快| 足银999是什么意思| 三个水念什么| 什么叫心悸| pv值是什么意思| 百叶是什么| 吃什么对脾胃好| 胆囊壁增厚是什么意思| 身体出虚汗是什么原因| 裙带菜不能和什么一起吃| 屏保什么意思| 金鸡独立是什么意思| sa什么意思| 咳嗽吐白痰是什么病| 彩铅是什么| 美帝是什么意思| 为什么会生化妊娠| 力争是什么意思| 黑皮肤适合穿什么颜色的衣服| 血小板减少是什么原因造成的| 多潘立酮片治什么病| 什么病不能坐飞机| 车前草有什么功效和作用| 复方阿胶浆适合什么样的人喝| 2026年是什么生肖年| 做梦梦见大火是什么意思| 射手男和什么座最配对| 什么最赚钱| 北斗星代表什么生肖| 524是什么意思| 滑肠是什么意思| 打喷嚏代表什么| 什么去甲醛最快有效| 一视同仁什么意思| 过敏有什么症状| 银耳有什么作用| 特别出演什么意思| 酸菜鱼是用什么鱼| 天蝎座什么象星座| 时间单位是什么| 谭咏麟属什么生肖| dv是什么牌子| 致癌是什么意思| 师参谋长是什么军衔| 什么时候看到的月亮最大| 西瓜又什么又什么填空| 直升是什么意思| 世界上什么动物牙齿最多| 什么叫朋友| 吃了狗肉不能吃什么| 肠道长息肉是什么原因造成的| 人参适合什么人吃| 导管是什么意思| 痰培养是检查什么的| 什么时候喝蜂蜜水最好| 鸡汤炖什么菜好吃| 过敏性鼻炎用什么药效果好| 血液四项检查是什么| 什么食物化痰| 山茱萸有什么功效| 喝酒容易醉是什么原因| 脚后跟麻木是什么原因| fop是什么意思| 刘备的马叫什么名字| 拉肚子出血是什么原因| mr检查是什么意思| 打喷嚏流鼻涕属于什么感冒| 红斑是什么皮肤病| 卫校学什么专业最好| 一什么对联| 盘尼西林是什么药| 乐器之王是什么乐器| 总胆红素高是什么意思| 7.9什么星座| 入职体检70元一般检查什么| 双脚麻木是什么病的前兆| 9月21号是什么日子| 西湖醋鱼是什么菜系| 百度

继续统治450cc的节奏 外媒解读2017款本田CRF450R

百度 《危机公关道与术》中说危机是:危中藏机,机中含危,负阴抱阳,对立统一,周而复始,运行不息。

Software documentation is written text or illustration that accompanies computer software or is embedded in the source code. The documentation either explains how the software operates or how to use it, and may mean different things to people in different roles.

Documentation is an important part of software engineering. Types of documentation include:

  • Requirements – Statements that identify attributes, capabilities, characteristics, or qualities of a system. This is the foundation for what will be or has been implemented.
  • Architecture/Design – Overview of software. Includes relations to an environment and construction principles to be used in design of software components.
  • Technical – Documentation of code, algorithms, interfaces, and APIs.
  • End user – Manuals for the end-user, system administrators and support staff.
  • Marketing – How to market the product and analysis of the market demand.

Types

edit

Requirements documentation

edit

Requirements documentation is the description of what a particular software does or should do. It is used throughout development to communicate how the software functions or how it is intended to operate. It is also used as an agreement or as the foundation for agreement on what the software will do. Requirements are produced and consumed by everyone involved in the production of software, including: end users, customers, project managers, sales, marketing, software architects, usability engineers, interaction designers, developers, and testers.

Requirements come in a variety of styles, notations and formality. Requirements can be goal-like (e.g., distributed work environment), close to design (e.g., builds can be started by right-clicking a configuration file and selecting the 'build' function), and anything in between. They can be specified as statements in natural language, as drawn figures, as detailed mathematical formulas, or as a combination of them all.

The variation and complexity of requirement documentation make it a proven challenge. Requirements may be implicit and hard to uncover. It is difficult to know exactly how much and what kind of documentation is needed and how much can be left to the architecture and design documentation, and it is difficult to know how to document requirements considering the variety of people who shall read and use the documentation. Thus, requirements documentation is often incomplete (or non-existent). Without proper requirements documentation, software changes become more difficult — and therefore more error prone (decreased software quality) and time-consuming (expensive).

The need for requirements documentation is typically related to the complexity of the product, the impact of the product, and the life expectancy of the software. If the software is very complex or developed by many people (e.g., mobile phone software), requirements can help better communicate what to achieve. If the software is safety-critical and can have a negative impact on human life (e.g., nuclear power systems, medical equipment, mechanical equipment), more formal requirements documentation is often required. If the software is expected to live for only a month or two (e.g., very small mobile phone applications developed specifically for a certain campaign) very little requirements documentation may be needed. If the software is a first release that is later built upon, requirements documentation is very helpful when managing the change of the software and verifying that nothing has been broken in the software when it is modified.

Traditionally, requirements are specified in requirements documents (e.g. using word processing applications and spreadsheet applications). To manage the increased complexity and changing nature of requirements documentation (and software documentation in general), database-centric systems and special-purpose requirements management tools are advocated.

In Agile software development, requirements are often expressed as user stories with accompanying acceptance criteria. User stories are typically part of a feature, or an epic, which is a broader functionality or set of related functionalities that deliver a specific value to the user based on the business requirements.

Architecture design documentation

edit

Architecture documentation (also known as software architecture description) is a special type of design document. In a way, architecture documents are third derivative from the code (design document being second derivative, and code documents being first). Very little in the architecture documents is specific to the code itself. These documents do not describe how to program a particular routine, or even why that particular routine exists in the form that it does, but instead merely lays out the general requirements that would motivate the existence of such a routine. A good architecture document is short on details but thick on explanation. It may suggest approaches for lower level design, but leave the actual exploration trade studies to other documents.

Another type of design document is the comparison document, or trade study. This would often take the form of a whitepaper. It focuses on one specific aspect of the system and suggests alternate approaches. It could be at the user interface, code, design, or even architectural level. It will outline what the situation is, describe one or more alternatives, and enumerate the pros and cons of each. A good trade study document is heavy on research, expresses its idea clearly (without relying heavily on obtuse jargon to dazzle the reader), and most importantly is impartial. It should honestly and clearly explain the costs of whatever solution it offers as best. The objective of a trade study is to devise the best solution, rather than to push a particular point of view. It is perfectly acceptable to state no conclusion, or to conclude that none of the alternatives are sufficiently better than the baseline to warrant a change. It should be approached as a scientific endeavor, not as a marketing technique.

A very important part of the design document in enterprise software development is the Database Design Document (DDD). It contains Conceptual, Logical, and Physical Design Elements. The DDD includes the formal information that the people who interact with the database need. The purpose of preparing it is to create a common source to be used by all players within the scene. The potential users are:

When talking about Relational Database Systems, the document should include following parts:

  • Entity - Relationship Schema (enhanced or not), including following information and their clear definitions:
    • Entity Sets and their attributes
    • Relationships and their attributes
    • Candidate keys for each entity set
    • Attribute and Tuple based constraints
  • Relational Schema, including following information:
    • Tables, Attributes, and their properties
    • Views
    • Constraints such as primary keys, foreign keys,
    • Cardinality of referential constraints
    • Cascading Policy for referential constraints
    • Primary keys

It is very important to include all information that is to be used by all actors in the scene. It is also very important to update the documents as any change occurs in the database as well.

Technical documentation

edit

It is important for the code documents associated with the source code (which may include README files and API documentation) to be thorough, but not so verbose that it becomes overly time-consuming or difficult to maintain them. Various how-to and overview documentation guides are commonly found specific to the software application or software product being documented by API writers. This documentation may be used by developers, testers, and also end-users. Today, a lot of high-end applications are seen in the fields of power, energy, transportation, networks, aerospace, safety, security, industry automation, and a variety of other domains. Technical documentation has become important within such organizations as the basic and advanced level of information may change over a period of time with architecture changes. There is evidence that the existence of good code documentation actually reduces maintenance costs for software.[1]

Code documents are often organized into a reference guide style, allowing a programmer to quickly look up an arbitrary function or class.

Technical documentation embedded in source code

edit

Often, tools such as Doxygen, NDoc, Visual Expert, Javadoc, JSDoc, EiffelStudio, Sandcastle, ROBODoc, POD, TwinText, or Universal Report can be used to auto-generate the code documents—that is, they extract the comments and software contracts, where available, from the source code and create reference manuals in such forms as text or HTML files.

The idea of auto-generating documentation is attractive to programmers for various reasons. For example, because it is extracted from the source code itself (for example, through comments), the programmer can write it while referring to the code, and use the same tools used to create the source code to make the documentation. This makes it much easier to keep the documentation up-to-date.

A possible downside is that only programmers can edit this kind of documentation, and it depends on them to refresh the output (for example, by running a cron job to update the documents nightly). Some would characterize this as a pro rather than a con.

Literate programming
edit

Respected computer scientist Donald Knuth has noted that documentation can be a very difficult afterthought process and has advocated literate programming, written at the same time and location as the source code and extracted by automatic means. The programming languages Haskell and CoffeeScript have built-in support for a simple form of literate programming, but this support is not widely used.

Elucidative programming
edit

Elucidative Programming is the result of practical applications of Literate Programming in real programming contexts. The Elucidative paradigm proposes that source code and documentation be stored separately.

Often, software developers need to be able to create and access information that is not going to be part of the source file itself. Such annotations are usually part of several software development activities, such as code walks and porting, where third-party source code is analysed in a functional way. Annotations can therefore help the developer during any stage of software development where a formal documentation system would hinder progress.

User documentation

edit

Unlike code documents, user documents simply describe how a program is used.

In the case of a software library, the code documents and user documents could in some cases be effectively equivalent and worth conjoining, but for a general application this is not often true.

Typically, the user documentation describes each feature of the program, and assists the user in realizing these features. It is very important for user documents to not be confusing, and for them to be up to date. User documents do not need to be organized in any particular way, but it is very important for them to have a thorough index. Consistency and simplicity are also very valuable. User documentation is considered to constitute a contract specifying what the software will do. API Writers are very well accomplished towards writing good user documents as they would be well aware of the software architecture and programming techniques used. See also technical writing.

User documentation can be produced in a variety of online and print formats.[2] However, there are three broad ways in which user documentation can be organized.

  1. Tutorial: A tutorial approach is considered the most useful for a new user, in which they are guided through each step of accomplishing particular tasks.[3]
  2. Thematic: A thematic approach, where chapters or sections concentrate on one particular area of interest, is of more general use to an intermediate user. Some authors prefer to convey their ideas through a knowledge based article to facilitate the user needs. This approach is usually practiced by a dynamic industry, such as Information technology.[4]
  3. List or Reference: The final type of organizing principle is one in which commands or tasks are simply listed alphabetically or logically grouped, often via cross-referenced indexes. This latter approach is of greater use to advanced users who know exactly what sort of information they are looking for.

A common complaint among users regarding software documentation is that only one of these three approaches was taken to the near-exclusion of the other two. It is common to limit provided software documentation for personal computers to online help that gives only reference information on commands or menu items. The job of tutoring new users or helping more experienced users get the most out of a program is left to private publishers, who are often given significant assistance by the software developer.

Composing user documentation

edit

Like other forms of technical documentation, good user documentation benefits from an organized process of development. In the case of user documentation, the process as it commonly occurs in industry consists of five steps:[5]

  1. User analysis, the basic research phase of the process.[6]
  2. Planning, or the actual documentation phase.[7]
  3. Draft review, is a self-explanatory phase where feedback is sought on the draft composed in the previous step.[8]
  4. Usability testing, whereby the usability of the document is tested empirically.[9]
  5. Editing, is the final step in which the information collected in steps three and four is used to produce the final draft.

Marketing documentation

edit

For many applications it is necessary to have some promotional materials to encourage casual observers to spend more time learning about the product. This form of documentation has three purposes:

  1. To excite the potential user about the product and instill in them a desire to become more involved with it.
  2. To inform them about what exactly the product does, so that their expectations are in line with what they will be receiving.
  3. To explain the position of this product with respect to other alternatives.

Documentation and agile development controversy

edit

"The resistance to documentation among developers is well known and needs no emphasis."[10] This situation is particularly prevalent in agile software development because these methodologies try to avoid any unnecessary activities that do not directly bring value. Specifically, the Agile Manifesto advocates valuing "working software over comprehensive documentation", which could be interpreted cynically as "We want to spend all our time coding. Remember, real programmers don't write documentation."[11]

A survey among software engineering experts revealed, however, that documentation is by no means considered unnecessary in agile development. Yet it is acknowledged that there are motivational problems in development, and that documentation methods tailored to agile development (e.g. through Reputation systems and Gamification) may be needed.[12][13]

Docs as Code

edit

Docs as Code is an approach to documentation that treats it with the same rigor and processes as software code. This includes:

  1. Version Control: Using systems like Git to track changes and manage versions.
  2. Continuous Integration: Automating the process of documentation generation and updates.
  3. Collaboration: Enabling multiple contributors to work on documentation simultaneously, similar to code development.

Benefits of Docs as Code

edit
  • Consistency: Documentation can be kept in sync with the codebase, ensuring accuracy.
  • Automation: Automated tools can handle repetitive tasks, such as formatting and deployment.
  • Collaboration: Encourages contributions from various team members, including developers, testers, and product managers.Combining Docs as Code with Agile methodologies creates a robust framework for maintaining high-quality, up-to-date documentation. Here's how to integrate the two:
  1. Setup Version Control: Start by placing your documentation in a version control system. Structure it similarly to your codebase.
  2. Automate Processes: Implement CI/CD tools to automate the generation and deployment of documentation.
  3. Define Roles: Assign roles and responsibilities for documentation within the Agile team. Ensure everyone understands the importance of documentation.
  4. Regular Reviews: Schedule regular documentation reviews as part of the sprint retrospectives.

See also

edit

Notes

edit
  1. ^ "How to get a budget for code documentation".
  2. ^ RH Earle, MA Rosso, KE Alexander (2015) User preferences of software documentation genres. Proceedings of the 33rd Annual International Conference on the Design of Communication (ACM SIGDOC). 16 July 2015. pp. 1–10. doi:10.1145/2775441.2775457. ISBN 978-1-4503-3648-2.
  3. ^ Woelz, Carlos. "The KDE Documentation Primer". Retrieved 15 June 2009.
  4. ^ Microsoft. "Knowledge Base Articles for Driver Development". Microsoft. Retrieved 15 June 2009.
  5. ^ Thomas T. Barker, Writing Software Documentation, Preface, xxiv. Part of the Allyn & Bacon Series in Technical Communication, 2nd ed. Upper Saddle River: Pearson Education, 2003. ISBN 0321103289 Archived May 13, 2013, at the Wayback Machine
  6. ^ Barker, pg. 118.
  7. ^ Barker, pg. 173.
  8. ^ Barker, pg. 217.
  9. ^ Barker, pg. 240.
  10. ^ Herbsleb, James D. and Moitra, Dependra. In: IEEE Software, vol. 18, no. 2, pp. 16-20, Mar/Apr 2001
  11. ^ Rakitin, Steven. , "Manifesto elicits cynicism." IEEE Computer, vol. 34, no. 12, p. 4, 2001
  12. ^ Prause, Christian R., and Zoya Durdik. "Architectural design and documentation: Waste in agile development?" In: International Conference on Software and System Process (ICSSP), IEEE, 2012.
  13. ^ Selic, Bran. "Agile documentation, anyone?" In: IEEE Software, vol. 26, no. 6, pp. 11-12, 2009
junior什么意思 老实是什么意思 柚子不能和什么一起吃 深柜是什么意思 天涯海角是什么生肖
什么是疖肿 在忙什么 巴结是什么意思 经常腿麻是什么原因 为什么十二生肖老鼠排第一
区块链是什么 1977年五行属什么 弟是什么结构的字 血清铁蛋白低说明什么 人活着有什么意思
甲状腺双叶回声欠均匀是什么意思 化学学什么 眼皮老跳是什么原因 风向标是什么意思 一个月一个泉是什么字
耳鸣是什么原因导致的hcv9jop1ns9r.cn 247什么意思hcv9jop0ns8r.cn olayks是什么牌子hcv9jop1ns7r.cn 对酒当歌是什么生肖hcv8jop6ns1r.cn 老人过生日送什么礼物好hcv8jop4ns8r.cn
梦见给死人烧纸钱是什么意思hcv9jop3ns9r.cn 牛有几个胃分别叫什么hcv8jop8ns3r.cn 7.21是什么日子helloaicloud.com 限行是什么意思hcv8jop6ns0r.cn 骑单车锻炼什么好处hcv7jop9ns4r.cn
hpv73阳性是什么意思hcv8jop7ns7r.cn 宁字五行属什么的hcv8jop3ns0r.cn 鸡胗是什么hcv8jop6ns1r.cn 促销员是做什么的aiwuzhiyu.com 11月份生日是什么星座hcv8jop4ns2r.cn
or发什么音hcv7jop6ns5r.cn 上胸围90下胸围80是什么罩杯bjhyzcsm.com 中之人什么意思0735v.com 用什么泡脚能减肥hcv8jop9ns7r.cn 高血压降不下来是什么原因xjhesheng.com
百度