Z ist der Name einer Notation zur formalen Spezifikation von Software-Systemen und -Modulen.
Z basiert auf der Zermelo-Fraenkel-Mengenlehre und der Prädikatenlogik erster Stufe. Spezifikationen für komplexe Software-Systeme in Z werden durch die hierarchische Komposition von Schemata erreicht. Ein Schema besteht dabei aus einer Anzahl typisierter Variablen und Bedingungen, welche an die Belegungen der Variablen gestellt werden.
Z wurde von Jean-Raymond Abrial Ende der 1970er Jahre geschaffen und durch die Programming Research Group im Oxford University Computing Laboratory weiterentwickelt. Im Jahr 2002 wurde Z durch die ISO (ISO 13568) standardisiert.

Object-Z ist eine objektorientierte Erweiterung, die an der University of Queensland, Australien, entwickelt wurde. Sie erweitert Z durch Sprachkonstrukte, die den objektorientierten Paradigmen ähneln. Im Wesentlichen sind dies Klassen, Vererbung und Polymorphismus.
Object-Z ist zwar nicht so populär wie Z selbst, doch es erhielt erhebliche Aufmerksamkeit von der formalen Spezifikations-Gemeinschaft. Untersuchungen über verschiedene Aspekte der Sprache erfolgen derzeit, einschließlich-Sprachen, die Object-Z nutzen und diverser Tool-Unterstützungen (z. B. durch das Community Z-Tools-Projekt).
Z++ ist eine objektorientierte Erweiterung der Z-Notation.