Misplaced Pages

Z notation

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In computer science , formal specifications are mathematically based techniques whose purpose are 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. 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.

#789210

22-580: The Z notation / ˈ z ɛ d / is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general. In 1974, Jean-Raymond Abrial published "Data Semantics". He used a notation that would later be taught in the University of Grenoble until the end of the 1980s. While at EDF ( Électricité de France ), working with Bertrand Meyer , Abrial also worked on developing Z. The Z notation

44-696: A convenient manner. Because Z notation (just like the APL language , long before it) uses many non- ASCII symbols, the specification includes suggestions for rendering the Z notation symbols in ASCII and in LaTeX . There are also Unicode encodings for all standard Z symbols. ISO completed a Z standardization effort in 2002. This standard and a technical corrigendum are available from ISO free: In 1992, Oxford University Computing Laboratory and IBM were jointly awarded The Queen's Award for Technological Achievement "for

66-456: A problem area for information systems implementation efforts. Users and information systems specialists tend to have different backgrounds, interests, and priorities. This is referred to as the user-designer communications gap. These differences lead to divergent organizational loyalties, approaches to problem solving, and vocabularies. Examples of these differences or concerns are below: Social scientific research on implementation also takes

88-405: A project manager using project management methodologies. Software Implementations involve several professionals that are relatively new to the knowledge based economy such as business analysts , software implementation specialists, solutions architects , and project managers. To implement a system successfully, many inter-related tasks need to be carried out in an appropriate sequence. Utilising

110-461: A specification. 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

132-568: A step away from the project oriented at implementing a plan, and turns the project into an object of study. Lucy Suchman 's work has been key, in that respect, showing how the engineering model of plans and their implementation cannot account for the situated action and cognition involved in real-world practices of users relating to plans: that work shows that a plan cannot be specific enough for detailing everything that successful implementation requires. Instead, implementation draws upon implicit and tacit resources and characteristics of users and of

154-408: A well-proven implementation methodology and enlisting professional advice can help but often it is the number of tasks, poor planning and inadequate resourcing that causes problems with an implementation project, rather than any of the tasks being particularly difficult. Similarly with the cultural issues it is often the lack of adequate consultation and two-way communication that inhibits achievement of

176-741: 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 (Web services quality of service ). Some tools are: Implementation Implementation

198-407: 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

220-556: Is the realization of an application, execution of a plan , idea, model , design , specification , standard , algorithm , policy , or the administration or management of a process or objective . In the information technology industry, implementation refers to the post-sales process of guiding a client from purchase to use of the software or hardware that was purchased. This includes requirements analysis, scope analysis, customizations, systems integrations, user policies, user training and delivery. These steps are often overseen by

242-453: Is to use probably correct refinement steps to transform a specification into a design, which is ultimately transformed into an implementation that is correct by construction . It is important to note that 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

SECTION 10

#1732797846790

264-542: Is used in the 1980 book Méthodes de programmation . Z was originally proposed by Abrial in 1977 with the help of Steve Schuman and Bertrand Meyer . It was developed further at the Programming Research Group at Oxford University , where Abrial worked in the early 1980s, having arrived at Oxford in September 1979. Abrial has said that Z is so named "Because it is the ultimate language!" although

286-438: The paradoxes of naive set theory . Z contains a standardized catalogue (called the mathematical toolkit ) of commonly used mathematical functions and predicates, defined using Z itself. It is augmented with Z schema boxes, which can be combined using their own operators, based on standard logical operators, and also by including schemas within other schemas. This allows Z specifications to be built up into large specifications in

308-455: The activity or program being implemented is described in sufficient detail so that independent observers can detect its presence and strength. In computer science, implementation results in software, while in social and health sciences, implementation science studies how the software can be put into practice or routine use. System implementation generally benefits from high levels of user involvement and management support. User participation in

330-515: The design and operation of information systems has several positive results. First, if users are heavily involved in systems design, they move opportunities to mold the system according to their priorities and business requirements, and more opportunities to control the outcome. Second, they are more likely to react positively to the change process. Incorporating user knowledge and expertise leads to better solutions. The relationship between users and information systems specialists has traditionally been

352-410: The desired results. Implementation is defined as a specified set of activities designed to put into practice an activity or program of known dimensions. According to this definition, implementation processes are purposeful and are described in sufficient detail such that independent observers can detect the presence and strength of the "specific set of activities" related to implementation. In addition,

374-577: The development of ... the Z notation, and its application in the IBM Customer Information Control System ( CICS ) product." Formal specification 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

396-622: 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. This may be for a variety of reasons, some of which are: Other limitations: Formal specification techniques have existed in various domains and on various scales for quite some time. 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

418-414: The following attributes: adequate, internally consistent, unambiguous, complete, satisfied, minimal. A good specification will have: One of the main reasons there is interest in formal specifications is that they will provide an ability to perform proofs on software implementations. These proofs may be used to validate a specification, verify correctness of design, or to prove that a program satisfies

440-563: 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. 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

462-452: The name " Zermelo " is also associated with the Z notation through its use of Zermelo–Fraenkel set theory . In 1992, the Z User Group (ZUG) was established to oversee activities concerning the Z notation, especially meetings and conferences. Z is based on the standard mathematical notation used in axiomatic set theory , lambda calculus , and first-order predicate logic . All expressions in Z notation are typed , thereby avoiding some of

SECTION 20

#1732797846790

484-437: The software life cycle they have been introduced. These types of models can be categorized into the following specification paradigms: 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. They do so by applying a divide-and-conquer approach. The Z notation

#789210