疱疹用什么药最好| 梦见自己会开车了是什么意思| 牙周康又叫什么名字| 手书是什么意思| 属马的和什么属相不合| 失眠有什么特效药| 神经内科和神经外科有什么区别| 颈肩综合症有什么症状| 12月3日什么星座| 班门弄斧是什么意思| 屁股两边疼是什么原因| 梦见手抓屎是什么意思| 患难见真情的上一句是什么| 柒牌男装什么档次| 对立面是什么意思| 心衰挂什么科| 10月10号是什么日子| 姿态万千的意思是什么| 肠梗阻是什么病| 微创是什么| 早上口苦是什么原因| 精子吃了有什么好处| 2月出生是什么星座| 呆若木鸡的意思是什么| 朝鲜冷面是什么面| 女生diy什么意思| 电解质什么意思| 氨味是什么味道| 什么情况下要打破伤风| 青光眼用什么眼药水| 爱情是什么感觉| 逍遥丸治什么病| 晚上胃疼是什么原因| 皮肤长癣是什么原因引起的| 去化是什么意思| 爸爸的姐姐应该叫什么| 466是什么意思| 老年人适合吃什么| 人工荨麻疹是什么原因引起的| 耳朵烧是什么原因| 挂件是什么意思| 什么运动瘦肚子最快| 胆囊炎要吃什么药| 吃红萝卜有什么好处| 屠苏是什么意思| 女性私处长痘痘是什么原因| 黄芪是什么| 四联用药是些什么药| 孕妇贫血吃什么补血最快| 少阳证是什么意思| 一般什么意思| 矫正视力是什么意思| 孕妇吸氧对胎儿有什么好处| 国二是什么意思| 深海鱼油起什么作用| 11月10号是什么星座| 黄金有什么作用与功效| 樵夫是什么生肖| 什么对雨| 百香果什么时候成熟| 惘然什么意思| 椭圆机是什么| 你说什么| 今天吃什么菜好呢| 梦见大蛇是什么意思| 光阴荏苒是什么意思| 祸不单行什么意思| 割包皮有什么好处| 什么的后羿| 转氨酶异常有什么症状| 治疗早泄吃什么药| 猪头猪脑是什么生肖| 视频是什么意思| classic是什么意思| 身上有异味是什么原因| n字鞋子是什么牌子| 大鼻是什么生肖| 调侃什么意思| 大脚趾外翻是什么原因| 一国两制什么时候提出的| 检查脑袋应该挂什么科| 手指月牙代表什么意思| 包拯属什么生肖| 腿浮肿是什么原因引起的| 琥珀是什么颜色| 子不教父之过是什么意思| 腱鞘炎看什么科| 什么同道合| 羊肉饺子馅配什么蔬菜最好吃| 大腿肌肉跳动是什么原因| 血压高是什么原因| 什么是英语自然拼读| 天珠是什么材质| 吃什么拉什么完全不能消化怎么办| 吃brunch是什么意思啊| 来月经是黑色的是什么原因| 什么是碳水食物有哪些| 什么水果对肝脏好| 得性病有什么症状| 春的五行属性是什么| 拉屎出血是什么原因| 遍体鳞伤是什么意思| 手发抖是什么原因引起的年轻人| 上呼吸道感染吃什么药| 痛风挂号什么科| 总爱睡觉是什么原因| 纵欲什么意思| 桃花什么时候开| 乙状结肠管状腺瘤是什么意思| 95年的属什么生肖| 6月11日什么星座| 宫腔镜是检查什么的| 伽利略是什么学家| 火头鱼是什么鱼| 送命题是什么意思| 干咳吃什么药好| 排骨蒸什么好吃| 愚痴是什么意思| 男人吃什么更持久| 痔疮的症状是什么| 大连是什么海| 甲子年是什么意思| 脑供血不足是什么原因| 月经期吃什么好| 86属什么生肖| 貔貅是什么生肖| 梦到鹦鹉预示着什么| 什么是风湿病| 父母都是b型血孩子是什么血型| 脂肪疝是什么病| 百鸟归巢什么意思| puma是什么意思| 考护士资格证需要什么条件| 1月18是什么星座| 雪茄为什么不过肺| 牙神经痛吃什么药| 1909年属什么生肖| 孕酮低吃什么药| 松石绿是什么颜色| 什么是中产阶级| 水丸是什么意思| 离经之血是什么意思| 哈尔滨有什么好吃的| 什么是形而上学| 披靡是什么意思| 09属什么生肖| 水蛭是什么| 盆腔炎有什么明显症状| 大象喜欢吃什么食物| 梦见掉了三颗牙齿是什么意思| 寻常疣是什么样子图片| sls是什么| 子宫肌瘤有什么症状| 红楼梦什么朝代| 草菅人命是什么意思| 恋童癖是什么意思| 尿白细胞弱阳性什么意思| 军国主义是什么意思| 1月3号是什么星座| 小孩的指甲脱落是什么原因| 舟字五行属什么| 风言风语是什么意思| 小乌龟死了有什么预兆| 怀孕血糖高有什么症状| 甲状腺回声不均匀什么意思| 排查是什么意思| bebe是什么意思| hvp阳性是什么病| 欧巴什么意思| 烧伤的疤痕怎么去除用什么法最好| 祥林嫂是什么样的人| 专车是什么意思| 海肠是什么动物| 代用茶是什么意思| 鬼打墙什么意思| 鼻子歪了是什么原因| 人生于世上有几个知己是什么歌| 手指发麻是什么原因引起的| 什么叫肺结节| 无菌性前列腺炎吃什么药效果好| 十二月九号是什么星座| 心急如焚是什么意思| 舌头生疮是什么原因引起的| ed2k用什么下载| 侧写是什么意思| 立春是什么意思| 姊是什么意思| 口腔医学技术可以考什么证| 上午九点半是什么时辰| 是什么拼音| 连长是什么级别| 防蓝光眼镜有什么用| 面肌痉挛吃什么药效果好| 黄瓜敷脸有什么效果| ch4是什么气体| 体检前要注意什么| 经常口腔溃疡吃什么药| 什么映雪| 菡什么意思| pola是什么牌子| 恶心反胃想吐吃什么药| 为什么会血脂高| 商朝之后是什么朝代| 嘴唇发黑什么原因| 中医调理身体挂什么科| 颈椎引起的头晕是什么症状| 阑尾炎吃什么水果| 杀青是什么意思| 什么补血效果最好最快| 地头蛇比喻什么样的人| 什么是珠心算| 女生有喉结是什么原因| 什么是笑气| 洁身自好什么意思| 水鱼煲鸡汤放什么药材| 世界的尽头是什么| 青储是什么| 山川是什么意思| 什么邮箱最好用最安全| 膝盖积水是什么原因造成的| 角质增生是什么意思| 狗狗发烧吃什么药| 被螨虫咬了非常痒用什么药膏好| mark是什么牌子| 虎与什么生肖相合| 拉肚子恶心想吐吃什么药| 祎是什么意思| 剖腹产后可以吃什么水果| 早起嘴巴苦什么原因| 孩子嗓子有痰吃什么药| 公务员是干什么的| hr医学上是什么意思| 胃胀是什么感觉| 胃湿热吃什么中成药| 绚丽夺目的意思是什么| 山芋是什么| 大鱼际疼是什么原因| 韧带损伤挂什么科| 观音菩萨原名叫什么名| 过命之交是什么意思| colorful是什么牌子| 手是什么生肖| 胆红素三个指标都高是什么原因| 落井下石什么意思| sp是什么意思| 为什么不能用红笔写名字| 三点水加个有字念什么| 血小板减少有什么危害| 什么是英语自然拼读| 25岁属什么生肖| 徐娘半老是什么意思| 阴道有味道是什么原因| 尿味重是什么原因| 梦见死人笑什么预兆| 喝什么茶减肥| 缺心眼是什么意思| 中出是什么意识| 异常的反义词是什么| 来大姨妈为什么会拉肚子| 梦见死人的场面是什么兆头| 任达华属什么生肖| 鬼佬是什么意思| 检查怀没怀孕挂什么科| 什么东西可以去口臭呀| 百度Jump to content

【本田CR-V俊雅红外观图片】本田CR-V

From Wikipedia, the free encyclopedia
百度   对此,高孟秋解释,肺结核病在普通招生或就业体检中只有通过胸片这一体检项目被发现,并不会影响其他指标。

In computer science, formal specifications are mathematically based techniques whose purpose is to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verifying key properties of interest through rigorous and effective reasoning tools.[1][2] These specifications are formal in the sense that they have a syntax, their semantics fall within one domain, and they are able to be used to infer useful information.[3]

Motivation

[edit]

In each passing decade, computer systems have become increasingly more powerful and, as a result, they have become more impactful to society. Because of this, better techniques are needed to assist in the design and implementation of reliable software. Established engineering disciplines use mathematical analysis as the foundation of creating and validating product design. Formal specifications are one such way to achieve this in software engineering reliability as once predicted. Other methods such as testing are more commonly used to enhance code quality.[1]

Uses

[edit]

Given such a specification, it is possible to use formal verification techniques to demonstrate that a system design is correct with respect to its specification. This allows incorrect system designs to be revised before any major investments have been made into an actual implementation. Another approach is to use provably correct refinement steps to transform a specification into a design, which is ultimately transformed into an implementation that is correct by construction.

A formal specification is not an implementation, but rather it may be used to develop an implementation. Formal specifications describe what a system should do, not how the system should do it.

A good specification must have some of the following attributes: adequate, internally consistent, unambiguous, complete, satisfied, minimal.[3]

A good specification will have:[3]

  • Constructability, manageability and evolvability
  • Usability
  • Communicability
  • Powerful and efficient analysis

One of the main reasons there is interest in formal specifications is that they will provide an ability to perform proofs on software implementations.[2] These proofs may be used to validate a specification, verify correctness of design, or to prove that a program satisfies a specification.[2]

Limitations

[edit]

A design (or implementation) cannot ever be declared “correct” on its own. It can only ever be “correct with respect to a given specification”. Whether the formal specification correctly describes the problem to be solved is a separate issue. It is also a difficult issue to address since it ultimately concerns the problem constructing abstracted formal representations of an informal concrete problem domain, and such an abstraction step is not amenable to formal proof. However, it is possible to validate a specification by proving “challenge” theorems concerning properties that the specification is expected to exhibit. If correct, these theorems reinforce the specifier's understanding of the specification and its relationship with the underlying problem domain. If not, the specification probably needs to be changed to better reflect the domain understanding of those involved with producing (and implementing) the specification.

Formal methods of software development are not widely used in industry. Most companies do not consider it cost-effective to apply them in their software development processes.[4] This may be for a variety of reasons, some of which are:

  • Time
    • High initial start-up cost with low measurable returns
  • Flexibility
    • A lot of software companies use agile methodologies that focus on flexibility. Doing a formal specification of the whole system up front is often perceived as being the opposite of flexible. However, there is some research into the benefits of using formal specifications with "agile" development[5]
  • Complexity
    • They require a high level of mathematical expertise and the analytical skills to understand and apply them effectively[5]
    • A solution to this would be to develop tools and models that allow for these techniques to be implemented but hide the underlying mathematics[2][5]
  • Limited scope[3]
    • They do not capture properties of interest for all stakeholders in the project[3]
    • They do not do a good job of specifying user interfaces and user interaction[4]
  • Not cost-effective
    • This is not entirely true; by limiting their use to only core parts of critical systems they have shown to be cost-effective[4]

Other limitations:[3]

Paradigms

[edit]

Formal specification techniques have existed in various domains and on various scales for quite some time.[6] Implementations of formal specifications will differ depending on what kind of system they are attempting to model, how they are applied and at what point in the software life cycle they have been introduced.[2] These types of models can be categorized into the following specification paradigms:

  • History-based specification[3]
    • behavior based on system histories
    • assertions are interpreted over time
  • State-based specification[3]
    • behavior based on system states
    • series of sequential steps, (e.g. a financial transaction)
    • languages such as Z, VDM or B rely on this paradigm[3]
  • Transition-based specification[3]
    • behavior based on transitions from state-to-state of the system
    • best used with a reactive system
    • languages such as Statecharts, PROMELA, STeP-SPL, RSML or SCR rely on this paradigm[3]
  • Functional specification[3]
    • specify a system as a structure of mathematical functions
    • OBJ, ASL, PLUSS, LARCH, HOL or PVS rely on this paradigm[3]
  • Operational Specification[3]
    • early languages such as Paisley, GIST, Petri nets or process algebras rely on this paradigm[3]
  • Multi-paradigm languages
    • FizzBee is a multi-paradigm specification language that allows for transition/action based specification, behavioral specifications with non-atomic transitions and also has actor model.

In addition to the above paradigms, there are ways to apply certain heuristics to help improve the creation of these specifications. The paper referenced here best discusses heuristics to use when designing a specification.[6] They do so by applying a divide-and-conquer approach.

Software tools

[edit]

The Z notation is an example of a leading formal specification language. Others include the Specification Language (VDM-SL) of the Vienna Development Method and the Abstract Machine Notation (AMN) of the B-Method. In the Web services area, formal specification is often used to describe non-functional properties[7] (Web services quality of service).

Some tools are:[4]

References

[edit]
  1. ^ a b Hierons, R. M.; Bogdanov, K.; Bowen, J. P.; Cleaveland, R.; Derrick, J.; Dick, J.; Gheorghe, M.; Harman, M.; Kapoor, K.; Krause, P.; Lüttgen, G.; Simons, A. J. H.; Vilkomir, S. A.; Woodward, M. R.; Zedan, H. (2009). "Using formal specifications to support testing". ACM Computing Surveys. 41 (2): 1. CiteSeerX 10.1.1.144.3320. doi:10.1145/1459352.1459354. S2CID 10686134.
  2. ^ a b c d e Gaudel, M.-C. (1994). "Formal specification techniques". Proceedings of 16th International Conference on Software Engineering. pp. 223–227. doi:10.1109/ICSE.1994.296781. ISBN 978-0-8186-5855-6. S2CID 60740848.
  3. ^ a b c d e f g h i j k l m n o Lamsweerde, A. V. (2000). "Formal specification". Proceedings of the conference on the future of Software engineering - ICSE '00. pp. 147–159. doi:10.1145/336512.336546. ISBN 978-1581132533. S2CID 4657483.
  4. ^ a b c d Sommerville, Ian (2009). "Formal Specification" (PDF). Software Engineering. Retrieved 3 February 2013.
  5. ^ a b c Nummenmaa, Timo; Tiensuu, Aleksi; Berki, Eleni; Mikkonen, Tommi; Kuittinen, Jussi; Kultima, Annakaisa (4 August 2011). "Supporting agile development by facilitating natural user interaction with executable formal specifications". ACM SIGSOFT Software Engineering Notes. 36 (4): 1–10. doi:10.1145/1988997.2003643. S2CID 2139235.
  6. ^ a b van der Poll, John A.; Paula Kotze (2002). "What design heuristics may enhance the utility of a formal specification?". Proceedings of the 2002 Annual Research Conference of the South African Institute of Computer Scientists and Information Technologists on Enablement Through Technology. SAICSIT '02: 179–194. ISBN 9781581135961.
  7. ^ S-Cube Knowledge Model: Formal Specification
[edit]
更年期提前是什么症状 mlf操作是什么意思 编程属于什么专业 五月一日是什么节日 看破红尘什么意思
创始人是什么意思 黄金属于五行属什么 40年什么婚 6.22什么星座 淋巴细胞百分比低是什么意思
宫颈转化区三型是什么意思 梦见别人怀孕了是什么意思 gln是什么氨基酸 荆州有什么大学 口腔异味挂什么科
什么是溶血症 8.19是什么星座 醋泡黑豆有什么功效 拉黑色大便是什么原因 等不到天黑烟火不会太完美什么歌
眼睛疼用什么药hcv8jop2ns1r.cn he是什么hcv7jop5ns5r.cn 海柳什么颜色最贵的hcv9jop6ns4r.cn 新疆人信仰什么教hcv8jop7ns7r.cn 什么耳什么聋hcv7jop6ns5r.cn
牙周炎用什么药最见效hcv8jop7ns2r.cn 什么情况下需做肠镜hcv8jop1ns1r.cn 肾阴虚有什么症状表现hcv8jop2ns5r.cn 前列腺增大是什么意思hcv8jop4ns0r.cn 肺和大肠相表里是什么意思hcv9jop7ns5r.cn
实体店是什么意思imcecn.com 中性粒细胞百分比低是什么原因hcv9jop6ns1r.cn 4月5号是什么星座jasonfriends.com 什么长什么去hcv8jop6ns6r.cn 何炅和谢娜是什么关系hcv8jop0ns8r.cn
什么的街道jiuxinfghf.com 犀牛吃什么hcv9jop5ns2r.cn 为什么玉镯不能戴左手xinjiangjialails.com 女人八卦是什么意思hcv9jop6ns4r.cn 为什么白带是绿色hcv8jop8ns2r.cn
百度