Knowledge

Functional specification

Source đź“ť

122: 1513: 25: 840:
written instructions can be added for each number on the screen example. For example, a login screen can have the username field labeled '1' and password field labeled '2,' and then each number can be declared in writing, for use by software engineers and later for beta testing purposes to ensure that functionality is as intended. The benefit of this method is that countless additional details can be attached to the screen examples.
1503: 839:
One popular method of writing a functional specification document involves drawing or rendering either simple wire frames or accurate, graphically designed UI screenshots. After this has been completed, and the screen examples are approved by all stakeholders, graphical elements can be numbered and
125:
Systems engineering model of Specification and Levels of Development. During system development a series of specifications are generated to describe the system at different levels of detail. These program unique specifications form the core of the configuration baselines. As shown here, in addition
830:
When the team agrees that functional specification consensus is reached, the functional spec is typically declared "complete" or "signed off". After this, typically the software development and testing team write source code and test cases using the functional specification as the reference. While
126:
to referring to different levels within the system hierarchy, these baselines are defined at different phases of the design process.Note: There is one minor (and ironic) typo in the image above. SI&T is "System Integration and Test" not "System Integration and Text".
762:
There are many purposes for functional specifications. One of the primary purposes on team projects is to achieve some form of team consensus on what the program is to achieve before making the more time-consuming effort of writing
826:
the functions will be realized using a chosen software environment. In non industrial, prototypical systems development, functional specifications are typically written after or as part of requirements analysis.
720:
stage. On more complex systems multiple levels of functional specifications will typically nest to each other, e.g. on the system level, on the module level and on the level of technical details.
749:) and the software system. When the user provides input to the system by clicking the OK button, the program responds (or should respond) by closing the dialog window containing the OK button. 732:
specification does not define the inner workings of the proposed system; it does not include the specification of how the system function will be implemented.
664: 740:
When the user clicks the OK button, the dialog is closed and the focus is returned to the main window in the state it was in before this dialog was displayed.
705:
is a document that specifies the functions that a system or component must perform (often part of a requirements specification) (ISO/IEC/IEEE 24765-2010).
618: 989: 1549: 708:
The documentation typically describes what is needed by the system user as well as requested properties of inputs and outputs (e.g. of the
585: 831:
testing is performed, the behavior of the program is compared against the expected behavior as defined in the functional specification.
657: 437: 89: 849: 791: 61: 42: 1592: 68: 779:
on the project at hand after having negotiated a cost-effective way to achieve the requirements the software needs to fulfill.
575: 427: 1506: 1372: 1301: 650: 550: 306: 291: 1195: 1098: 928: 570: 75: 901: 608: 982: 923: 881: 517: 281: 1542: 1175: 1042: 1027: 384: 108: 57: 864: 507: 502: 258: 1956: 891: 712:
system). A functional specification is the more technical response to a matching requirements document, e.g. the
636: 1709: 1602: 1577: 1331: 1258: 1248: 1093: 1022: 527: 240: 220: 46: 389: 1668: 1582: 1516: 1382: 1311: 1253: 975: 854: 713: 326: 316: 266: 1951: 1930: 1535: 1321: 1180: 1047: 918: 896: 613: 341: 157: 1745: 1658: 1243: 1238: 1052: 432: 404: 1607: 1438: 1286: 1281: 1233: 1210: 1190: 555: 399: 286: 276: 215: 82: 1755: 1740: 1443: 1433: 869: 321: 301: 1961: 1770: 1643: 1587: 1346: 1128: 1037: 462: 331: 311: 1617: 1612: 1296: 1140: 859: 798: 776: 590: 472: 351: 225: 35: 1892: 1597: 1351: 1108: 1103: 729: 532: 442: 394: 336: 1826: 1796: 1572: 1170: 1123: 947: 717: 356: 172: 162: 962: 1917: 1887: 1468: 1306: 1165: 1155: 1067: 1012: 998: 886: 819: 702: 452: 296: 230: 197: 177: 138: 121: 8: 1897: 1882: 1851: 1558: 1488: 1473: 1341: 1205: 1113: 1057: 698: 447: 366: 192: 1907: 1902: 1653: 1622: 1478: 1118: 565: 1861: 1801: 1392: 1150: 1866: 1836: 1765: 1760: 1699: 1684: 1463: 1407: 1185: 1077: 1072: 746: 522: 485: 467: 457: 182: 1912: 1811: 1806: 1750: 1725: 1689: 1483: 1336: 1316: 1200: 1062: 811: 409: 361: 245: 167: 1841: 1831: 1786: 1730: 1627: 1387: 1291: 1032: 735:
A functional requirement in a functional specification might state as follows:
1945: 1821: 1816: 1791: 1663: 1367: 1135: 152: 1856: 1402: 1397: 1326: 913: 745:
Such a requirement describes an interaction between an external agent (the
235: 764: 775:. Typically, such consensus is reached after one or more reviews by the 1846: 1412: 1377: 967: 784: 1527: 948:
ISO/IEC/IEEE 24765:2010 Systems and software engineering — Vocabulary
772: 768: 187: 24: 1160: 709: 560: 512: 497: 492: 1704: 963:
Painless Functional Specifications, 4-part series by Joel Spolsky
1694: 1017: 875: 271: 1217: 346: 1735: 1428: 810:
In the ordered industrial software engineering life-cycle (
580: 843: 49:. Unsourced material may be challenged and removed. 752: 1943: 1543: 983: 658: 876:Types of software development specifications 716:"PRD". Thus it picks up the results of the 1550: 1536: 990: 976: 665: 651: 850:Advanced Microcontroller Bus Architecture 109:Learn how and when to remove this message 1593:Earth systems engineering and management 1181:Software development process/methodology 997: 691:functional specifications document (FSD) 120: 1557: 1944: 814:), functional specification describes 619:Electrical and electronics engineering 1531: 971: 844:Examples of functional specifications 695:functional requirements specification 1502: 1196:Software verification and validation 1099:Component-based software engineering 929:Software verification and validation 47:adding citations to reliable sources 18: 902:Software Requirements Specification 13: 924:Specification (technical standard) 882:Bit specification (disambiguation) 14: 1973: 1628:Sociocultural Systems Engineering 1176:Software configuration management 1043:Search-based software engineering 1028:Experimental software engineering 956: 818:has to be implemented. The next, 545:Standards and bodies of knowledge 1512: 1511: 1501: 865:Real-time specification for Java 23: 892:Diagnostic design specification 753:Functional specification topics 637:Outline of software development 34:needs additional citations for 1710:Systems development life cycle 1603:Enterprise systems engineering 1578:Biological systems engineering 1023:Empirical software engineering 941: 1: 1669:System of systems engineering 1583:Cognitive systems engineering 934: 855:Extensible Firmware Interface 714:Product Requirements Document 1048:Site reliability engineering 919:Software development process 897:Product design specification 7: 1746:Quality function deployment 1659:Verification and validation 1053:Social software engineering 907: 801:know what they are getting. 723: 10: 1978: 1608:Health systems engineering 1191:Software quality assurance 834: 805: 771:, followed by a period of 757: 400:Software quality assurance 58:"Functional specification" 1926: 1875: 1779: 1756:Systems Modeling Language 1718: 1677: 1636: 1565: 1497: 1456: 1421: 1360: 1274: 1267: 1226: 1086: 1005: 870:Single UNIX Specification 1771:Work breakdown structure 1649:Functional specification 1644:Requirements engineering 1588:Configuration management 1347:Model-driven engineering 1146:Functional specification 1129:Software incompatibility 1038:Requirements engineering 679:functional specification 385:Configuration management 1618:Reliability engineering 1613:Performance engineering 1141:Enterprise architecture 860:Multiboot Specification 794:know what tests to run. 609:Artificial intelligence 1957:Software documentation 1893:Industrial engineering 1598:Electrical engineering 1352:Round-trip engineering 1109:Backward compatibility 1104:Software compatibility 533:Infrastructure as code 379:Supporting disciplines 127: 1827:Arthur David Hall III 1797:Benjamin S. Blanchard 1573:Aerospace engineering 1171:Software architecture 1124:Forward compatibility 718:requirements analysis 390:Deployment management 124: 1918:Software engineering 1888:Computer engineering 1469:Computer engineering 1166:Software archaeology 1156:Programming paradigm 1068:Software maintenance 1013:Computer programming 999:Software engineering 887:Design specification 820:Systems architecture 703:software development 210:Paradigms and models 139:Software development 43:improve this article 1952:Systems engineering 1898:Operations research 1883:Control engineering 1852:Joseph Francis Shea 1559:Systems engineering 1489:Systems engineering 1474:Information science 1254:Service orientation 1206:Structured analysis 1114:Compatibility layer 1058:Software deployment 822:document describes 787:know what to build. 699:systems engineering 133:Part of a series on 1908:Quality management 1903:Project management 1731:Function modelling 1654:System integration 1623:Safety engineering 1479:Project management 1244:Object orientation 1211:Essential analysis 1119:Compatibility mode 528:Release automation 405:Project management 128: 1939: 1938: 1862:Manuela M. Veloso 1802:Wernher von Braun 1525: 1524: 1452: 1451: 1393:Information model 1297:Incremental model 1151:Modeling language 675: 674: 566:ISO/IEC standards 119: 118: 111: 93: 1969: 1867:John N. Warfield 1837:Robert E. Machol 1766:Systems modeling 1761:Systems analysis 1700:System lifecycle 1685:Business process 1552: 1545: 1538: 1529: 1528: 1515: 1514: 1505: 1504: 1464:Computer science 1272: 1271: 1186:Software quality 1078:Systems analysis 1073:Software testing 992: 985: 978: 969: 968: 950: 945: 667: 660: 653: 614:Computer science 523:Build automation 130: 129: 114: 107: 103: 100: 94: 92: 51: 27: 19: 16:Type of document 1977: 1976: 1972: 1971: 1970: 1968: 1967: 1966: 1962:Software design 1942: 1941: 1940: 1935: 1922: 1913:Risk management 1871: 1812:Harold Chestnut 1807:Kathleen Carley 1775: 1751:System dynamics 1726:Decision-making 1714: 1690:Fault tolerance 1673: 1632: 1561: 1556: 1526: 1521: 1493: 1484:Risk management 1448: 1417: 1356: 1337:Waterfall model 1307:Prototype model 1302:Iterative model 1263: 1239:Aspect-oriented 1222: 1201:Software system 1082: 1063:Software design 1001: 996: 959: 954: 953: 946: 942: 937: 910: 878: 846: 837: 812:waterfall model 808: 760: 755: 726: 683:functional spec 671: 642: 641: 632: 624: 623: 604: 596: 595: 546: 538: 537: 488: 478: 477: 423: 415: 414: 410:User experience 380: 372: 371: 262: 251: 250: 211: 203: 202: 148: 147:Core activities 115: 104: 98: 95: 52: 50: 40: 28: 17: 12: 11: 5: 1975: 1965: 1964: 1959: 1954: 1937: 1936: 1934: 1933: 1927: 1924: 1923: 1921: 1920: 1915: 1910: 1905: 1900: 1895: 1890: 1885: 1879: 1877: 1876:Related fields 1873: 1872: 1870: 1869: 1864: 1859: 1854: 1849: 1844: 1842:Radhika Nagpal 1839: 1834: 1832:Derek Hitchins 1829: 1824: 1819: 1814: 1809: 1804: 1799: 1794: 1789: 1787:James S. Albus 1783: 1781: 1777: 1776: 1774: 1773: 1768: 1763: 1758: 1753: 1748: 1743: 1738: 1733: 1728: 1722: 1720: 1716: 1715: 1713: 1712: 1707: 1702: 1697: 1692: 1687: 1681: 1679: 1675: 1674: 1672: 1671: 1666: 1661: 1656: 1651: 1646: 1640: 1638: 1634: 1633: 1631: 1630: 1625: 1620: 1615: 1610: 1605: 1600: 1595: 1590: 1585: 1580: 1575: 1569: 1567: 1563: 1562: 1555: 1554: 1547: 1540: 1532: 1523: 1522: 1520: 1519: 1509: 1498: 1495: 1494: 1492: 1491: 1486: 1481: 1476: 1471: 1466: 1460: 1458: 1457:Related fields 1454: 1453: 1450: 1449: 1447: 1446: 1441: 1436: 1431: 1425: 1423: 1419: 1418: 1416: 1415: 1410: 1405: 1400: 1395: 1390: 1388:Function model 1385: 1380: 1375: 1370: 1364: 1362: 1358: 1357: 1355: 1354: 1349: 1344: 1339: 1334: 1329: 1324: 1319: 1314: 1309: 1304: 1299: 1294: 1292:Executable UML 1289: 1284: 1278: 1276: 1269: 1265: 1264: 1262: 1261: 1256: 1251: 1246: 1241: 1236: 1230: 1228: 1224: 1223: 1221: 1220: 1215: 1214: 1213: 1203: 1198: 1193: 1188: 1183: 1178: 1173: 1168: 1163: 1158: 1153: 1148: 1143: 1138: 1133: 1132: 1131: 1126: 1121: 1116: 1111: 1101: 1096: 1090: 1088: 1084: 1083: 1081: 1080: 1075: 1070: 1065: 1060: 1055: 1050: 1045: 1040: 1035: 1033:Formal methods 1030: 1025: 1020: 1015: 1009: 1007: 1003: 1002: 995: 994: 987: 980: 972: 966: 965: 958: 957:External links 955: 952: 951: 939: 938: 936: 933: 932: 931: 926: 921: 916: 909: 906: 905: 904: 899: 894: 889: 884: 877: 874: 873: 872: 867: 862: 857: 852: 845: 842: 836: 833: 807: 804: 803: 802: 795: 788: 759: 756: 754: 751: 743: 742: 725: 722: 673: 672: 670: 669: 662: 655: 647: 644: 643: 640: 639: 633: 630: 629: 626: 625: 622: 621: 616: 611: 605: 602: 601: 598: 597: 594: 593: 588: 583: 578: 573: 568: 563: 558: 556:IEEE standards 553: 547: 544: 543: 540: 539: 536: 535: 530: 525: 520: 515: 510: 505: 500: 495: 489: 484: 483: 480: 479: 476: 475: 470: 465: 460: 455: 450: 445: 440: 435: 430: 424: 421: 420: 417: 416: 413: 412: 407: 402: 397: 392: 387: 381: 378: 377: 374: 373: 370: 369: 364: 359: 354: 349: 344: 339: 334: 329: 324: 319: 314: 309: 304: 299: 294: 289: 284: 279: 274: 269: 263: 261:and frameworks 257: 256: 253: 252: 249: 248: 243: 238: 233: 228: 223: 218: 212: 209: 208: 205: 204: 201: 200: 195: 190: 185: 180: 175: 170: 165: 160: 155: 149: 146: 145: 142: 141: 135: 134: 117: 116: 31: 29: 22: 15: 9: 6: 4: 3: 2: 1974: 1963: 1960: 1958: 1955: 1953: 1950: 1949: 1947: 1932: 1929: 1928: 1925: 1919: 1916: 1914: 1911: 1909: 1906: 1904: 1901: 1899: 1896: 1894: 1891: 1889: 1886: 1884: 1881: 1880: 1878: 1874: 1868: 1865: 1863: 1860: 1858: 1855: 1853: 1850: 1848: 1845: 1843: 1840: 1838: 1835: 1833: 1830: 1828: 1825: 1823: 1822:Barbara Grosz 1820: 1818: 1817:Wolt Fabrycky 1815: 1813: 1810: 1808: 1805: 1803: 1800: 1798: 1795: 1793: 1792:Ruzena Bajcsy 1790: 1788: 1785: 1784: 1782: 1778: 1772: 1769: 1767: 1764: 1762: 1759: 1757: 1754: 1752: 1749: 1747: 1744: 1742: 1739: 1737: 1734: 1732: 1729: 1727: 1724: 1723: 1721: 1717: 1711: 1708: 1706: 1703: 1701: 1698: 1696: 1693: 1691: 1688: 1686: 1683: 1682: 1680: 1676: 1670: 1667: 1665: 1664:Design review 1662: 1660: 1657: 1655: 1652: 1650: 1647: 1645: 1642: 1641: 1639: 1635: 1629: 1626: 1624: 1621: 1619: 1616: 1614: 1611: 1609: 1606: 1604: 1601: 1599: 1596: 1594: 1591: 1589: 1586: 1584: 1581: 1579: 1576: 1574: 1571: 1570: 1568: 1564: 1560: 1553: 1548: 1546: 1541: 1539: 1534: 1533: 1530: 1518: 1510: 1508: 1500: 1499: 1496: 1490: 1487: 1485: 1482: 1480: 1477: 1475: 1472: 1470: 1467: 1465: 1462: 1461: 1459: 1455: 1445: 1442: 1440: 1437: 1435: 1432: 1430: 1427: 1426: 1424: 1420: 1414: 1411: 1409: 1408:Systems model 1406: 1404: 1401: 1399: 1396: 1394: 1391: 1389: 1386: 1384: 1381: 1379: 1376: 1374: 1371: 1369: 1366: 1365: 1363: 1359: 1353: 1350: 1348: 1345: 1343: 1340: 1338: 1335: 1333: 1330: 1328: 1325: 1323: 1320: 1318: 1315: 1313: 1310: 1308: 1305: 1303: 1300: 1298: 1295: 1293: 1290: 1288: 1285: 1283: 1280: 1279: 1277: 1275:Developmental 1273: 1270: 1266: 1260: 1257: 1255: 1252: 1250: 1247: 1245: 1242: 1240: 1237: 1235: 1232: 1231: 1229: 1225: 1219: 1216: 1212: 1209: 1208: 1207: 1204: 1202: 1199: 1197: 1194: 1192: 1189: 1187: 1184: 1182: 1179: 1177: 1174: 1172: 1169: 1167: 1164: 1162: 1159: 1157: 1154: 1152: 1149: 1147: 1144: 1142: 1139: 1137: 1136:Data modeling 1134: 1130: 1127: 1125: 1122: 1120: 1117: 1115: 1112: 1110: 1107: 1106: 1105: 1102: 1100: 1097: 1095: 1092: 1091: 1089: 1085: 1079: 1076: 1074: 1071: 1069: 1066: 1064: 1061: 1059: 1056: 1054: 1051: 1049: 1046: 1044: 1041: 1039: 1036: 1034: 1031: 1029: 1026: 1024: 1021: 1019: 1016: 1014: 1011: 1010: 1008: 1004: 1000: 993: 988: 986: 981: 979: 974: 973: 970: 964: 961: 960: 949: 944: 940: 930: 927: 925: 922: 920: 917: 915: 912: 911: 903: 900: 898: 895: 893: 890: 888: 885: 883: 880: 879: 871: 868: 866: 863: 861: 858: 856: 853: 851: 848: 847: 841: 832: 828: 825: 821: 817: 813: 800: 796: 793: 789: 786: 782: 781: 780: 778: 774: 770: 766: 750: 748: 741: 738: 737: 736: 733: 731: 721: 719: 715: 711: 706: 704: 700: 696: 692: 688: 684: 680: 668: 663: 661: 656: 654: 649: 648: 646: 645: 638: 635: 634: 628: 627: 620: 617: 615: 612: 610: 607: 606: 600: 599: 592: 589: 587: 584: 582: 579: 577: 574: 572: 569: 567: 564: 562: 559: 557: 554: 552: 549: 548: 542: 541: 534: 531: 529: 526: 524: 521: 519: 516: 514: 511: 509: 506: 504: 501: 499: 496: 494: 491: 490: 487: 482: 481: 474: 471: 469: 466: 464: 461: 459: 456: 454: 451: 449: 446: 444: 441: 439: 436: 434: 431: 429: 426: 425: 419: 418: 411: 408: 406: 403: 401: 398: 396: 395:Documentation 393: 391: 388: 386: 383: 382: 376: 375: 368: 365: 363: 360: 358: 355: 353: 350: 348: 345: 343: 340: 338: 335: 333: 330: 328: 325: 323: 320: 318: 315: 313: 310: 308: 305: 303: 300: 298: 295: 293: 290: 288: 285: 283: 280: 278: 275: 273: 270: 268: 265: 264: 260: 259:Methodologies 255: 254: 247: 244: 242: 239: 237: 234: 232: 229: 227: 224: 222: 219: 217: 214: 213: 207: 206: 199: 196: 194: 191: 189: 186: 184: 181: 179: 176: 174: 171: 169: 166: 164: 161: 159: 156: 154: 153:Data modeling 151: 150: 144: 143: 140: 137: 136: 132: 131: 123: 113: 110: 102: 91: 88: 84: 81: 77: 74: 70: 67: 63: 60: â€“  59: 55: 54:Find sources: 48: 44: 38: 37: 32:This article 30: 26: 21: 20: 1857:Katia Sycara 1741:Optimization 1648: 1403:Object model 1398:Metamodeling 1327:Spiral model 1227:Orientations 1145: 943: 914:Benchmarking 838: 829: 823: 815: 809: 799:stakeholders 777:stakeholders 761: 744: 739: 734: 727: 707: 694: 690: 686: 682: 678: 676: 513:UML Modeling 508:GUI designer 173:Construction 163:Requirements 105: 99:October 2008 96: 86: 79: 72: 65: 53: 41:Please help 36:verification 33: 1094:Abstraction 790:To let the 783:To let the 765:source code 231:Prototyping 226:Incremental 198:Maintenance 178:Engineering 1946:Categories 1847:Simon Ramo 1413:View model 1378:Data model 935:References 785:developers 769:test cases 730:functional 603:Glossaries 193:Deployment 69:newspapers 1637:Processes 1566:Subfields 1422:Languages 773:debugging 422:Practices 246:Waterfall 221:Cleanroom 188:Debugging 158:Processes 1931:Category 1678:Concepts 1517:Category 1383:ER model 1249:Ontology 1161:Software 1087:Concepts 908:See also 724:Overview 710:software 631:Outlines 561:ISO 9001 503:Profiler 498:Debugger 493:Compiler 468:Stand-up 1705:V-Model 1507:Commons 1332:V-model 835:Methods 806:Process 797:To let 792:testers 758:Purpose 681:(also, 302:Lean SD 241:V model 183:Testing 83:scholar 1780:People 1695:System 1268:Models 1018:DevOps 1006:Fields 576:SWEBOK 297:Kanban 272:DevOps 236:Spiral 168:Design 85:  78:  71:  64:  56:  1719:Tools 1444:SysML 1368:SPICE 1361:Other 1322:Scrum 1282:Agile 1234:Agile 1218:CI/CD 697:) in 687:specs 571:PMBOK 486:Tools 347:SEMAT 342:Scrum 216:Agile 90:JSTOR 76:books 1736:IDEF 1429:IDEF 1373:CMMI 1259:SDLC 816:what 767:and 747:user 701:and 586:IREB 581:ITIL 551:CMMI 428:ATDD 337:SAFe 307:LeSS 282:DSDM 62:news 1439:USL 1434:UML 1312:RAD 1287:EUP 824:how 591:OMG 518:IDE 473:TDD 463:SBE 453:DDD 438:CCO 433:BDD 357:TSP 352:TDD 332:RUP 327:RAD 322:PSP 317:MSF 312:MDD 292:IID 287:FDD 277:DAD 267:ASD 45:by 1948:: 1342:XP 1317:UP 728:A 693:, 689:, 685:, 677:A 458:PP 448:CD 443:CI 367:XP 362:UP 1551:e 1544:t 1537:v 991:e 984:t 977:v 666:e 659:t 652:v 112:) 106:( 101:) 97:( 87:· 80:· 73:· 66:· 39:.

Index


verification
improve this article
adding citations to reliable sources
"Functional specification"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message

Software development
Data modeling
Processes
Requirements
Design
Construction
Engineering
Testing
Debugging
Deployment
Maintenance
Agile
Cleanroom
Incremental
Prototyping
Spiral
V model
Waterfall

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑