functional specification 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 to referring to different levels within the system hierarchy these baselines are defined at different phases of the design processnote there is one minor and ironic typo in the image above sit is system integration and test not system integration and text software development core activities processes requirements design engineering construction testing debugging deployment maintenance paradigms and models agile cleanroom incremental prototyping spiral v model waterfall methodologies and frameworks asd devops dad dsdm fdd iid kanban lean sd less mdd msf psp rad rup safe scrum semat tsp up xp supporting disciplines configuration management documentation software quality assurance sqa project management user experience practices atdd bdd cco ci cd ddd pp standup tdd tools compiler debugger profiler gui designer modeling ide build automation release automation infrastructure as code testing standards and bodies of knowledge babok cmmi ieee standards iso 9001 isoiec standards pmbok swebok itil glossaries artificial intelligence computer science electrical and electronics engineering vte a functional specification also functional spec specs functional specifications document fsd functional requirements specification in systems engineering and software development is a document that specifies the functions that a system or component must perform often part of a requirements specification isoiecieee 247652010 the documentation typically describes what is needed by the system user as well as requested properties of inputs and outputs eg of the software system a functional specification is the more technical response to a matching requirements document eg the product requirement document prd thus it picks up the results of the requirements analysis stage on more complex systems multiple levels of functional specifications will typically nest to each other eg on the system level on the module level and on the level of technical details overview a functional 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 instead it focuses on what various outside agents people using the program computer peripherals or other computers for example might observe when interacting with the system a functional requirement in a functional specification might state as follows 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 such a requirement describes an interaction between an external agent the user 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 functional specification topics purpose 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 timeconsuming effort of writing source code and test cases followed by a period of debugging typically such consensus is reached after one or more reviews by the stakeholders on the project at hand after having negotiated a costeffective way to achieve the requirements the software needs to fulfill to let the developers know what to build to let the testers know what tests to run to let stakeholders know what they are getting process in the ordered industrial software engineering lifecycle waterfall model functional specification describes what has to be implemented the next systems architecture document describes how 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 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 testing is performed the behavior of the program is compared against the expected behavior as defined in the functional specification methods 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 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 examples of functional specifications advanced microcontroller bus architecture extensible firmware interface multiboot specification realtime specification for java single unix specification types of software development specifications bit specification disambiguation design specification diagnostic design specification product design specification software requirements specification benchmarking software development process specification technical standard verification and validation software painless functional specifications 4part series by joel spolsky vtesoftware engineeringfields computer programming requirements engineering software deployment software design software maintenance software testing systems analysis formal methods concepts data modeling enterprise architecture functional specification modeling language orthogonality programming paradigm software software archaeology software architecture software configuration management software development methodology software development process software quality software quality assurance software verification and validation structured analysis orientations agile aspectoriented object orientation ontology service orientation sdlc modelsdevelopmental agile eup executable uml incremental model iterative model prototype model rad up scrum spiral model vmodel waterfall model xp other spice cmmi data model er model function model information model metamodeling object model systems model view model languages idef uml usl sysml softwareengineers victor basili kent beck grady booch fred brooks barry boehm peter chen danese cooper ward cunningham tom demarco edsger w dijkstra delores m etter martin fowler adele goldstine margaret hamilton c a r hoare lois haibt mary jean harrold grace hopper watts humphrey michael a jackson ivar jacobson alan kay nancy leveson stephen j mellor bertrand meyer david parnas trygve reenskaug winston w royce james rumbaugh mary shaw peri tarr elaine weyuker niklaus wirth edward yourdon related fields computer science computer engineering project management risk management systems engineering category commons vtesystems engineeringsubfields aerospace engineering biological systems engineering configuration management earth systems engineering and management electrical engineering enterprise systems engineering performance engineering reliability engineering safety engineering processes requirements engineering functional specification system integration verification and validation design review concepts business process system system lifecycle vmodel systems development life cycle tools decisionmaking function modelling idef optimization quality function deployment system dynamics systems modeling language systems analysis systems modeling work breakdown structure people james s albus ruzena bajcsy benjamin s blanchard wernher von braun kathleen carley harold chestnut wolt fabrycky barbara grosz arthur david hall iii derek hitchins robert e machol radhika nagpal simon ramo joseph francis shea katia sycara manuela m veloso john n warfield related fields control engineering computer engineering industrial engineering operations research project management quality management risk management software engineering category 