Specifications
- Specifications Definition
- Specifications Types
- Specifications Dictionary
- Torque Specifications
- Specifications Definition
Global Nav Open Menu Global Nav Close Menu; Apple; Shopping Bag +. On January 29, 2007, Adobe announced its intent to release the full Portable Document Format (PDF) 1.7 specification to AIIM, the Enterprise Content Management Association, for the purpose of publication by the International Organization for Standardization (ISO).
USDA Foods meet high standards for quality and wholesomeness and must be produced and processed according to detailed USDA specifications.
Specifications by Product:
Fruits
Canned Fruit
Frozen Fruit
Fresh Citrus Fruit
Fresh Fruit
Dried Fruit
- Commodity Specifications for Dried Fruit, September 2017 (pdf), Amendment 1, December 2017 (pdf)
Vegetables
- Commodity Specification for Canned Vegetables, January 2020 (pdf), Amendment 1 February 2020 (pdf)
- Commodity Specifications for Canned Vegetables, May 2017 (pdf), Amendment 1, January 2018 (pdf), March 2019 (pdf)
Frozen Vegetables
- Commodity Specification for Frozen Vegetables, June 2017 (pdf), Amendment 1, April 2018 (pdf), Amendment 2, May 2018 (pdf), March 2019 (pdf)
- Commodity Specification for Fresh Vegetables – May 2019, Commodity Specification for Fresh Vegetables, October 2014 (pdf), Amendment 1, June 2018 (pdf)
Dehydrated Potato Products
- Commodity Specification for Dehydrated Potato Products, May 2019 (pdf), Amendment 1, July 2020 (pdf)
Frozen Potato Products
Miscellaneous Fruit and Vegetables Products
Bulk Products for Further Processing (Miscellaneous Products)
- Commodity Specification for Bulk Products for Further Processing, August 2012 (pdf); Amendment 1 (pdf); Amendment 2 (pdf); Amendment 3, (pdf), Amendment 4 (pdf)
Juices
- Commodity Specification for Frozen Fruit Juices, June 2014 (pdf), Amendment 1 September 2015 (pdf), Amendment 2, April 2016 (pdf)
Bottled Fruit Juices
Concentrated Fruit Juice for Manufacturing
Nuts, Beans, Peas & Lentils
- Commodity Specifications for Canned Dried Beans, September 2014 (pdf); Amendment 1, April 2016 (pdf)
Dry Edible Beans, Peas, and Lentils
- Commodity Specification for Dry Edible Beans, Peas and Lentils, June 2014 (pdf), Amendment 1, October 2015 (pdf)
In Shell and Shelled Nuts
- Commodity Specification for Shelled Tree Nuts – April 2020 (pdf) Amendment 1, August 2020 (pdf)
- Commodity Specifications for Shelled Nuts, August 2014 (pdf), Amendment 1, October 2018 (pdf)
Beef
Miscellaneous Beef Products (Frozen Beef Roasts, Diced Beef)
Frozen Ground Beef Products
Fresh Boneless Beef Products
Beef Special Trim
Frozen Cooked Beef and Pork Products
Pork
Ham, Boneless, Fully-Cooked, Water-Added
Fish and Other Seafood Products
Frozen Wild Shrimp
Frozen Atlantic GroundfishSalmon Products
Tuna Products (Canned)
- Supplement 511 Frozen Catfish Products, April 2016 (pdf); Amendment 1, March 2018 (pdf)
Frozen Walleye
Other Red Meat and Poultry Products
Other Red Meat Products
Technical Requirements (Specifications) for these commodity products are incorporated into the following Supplements to the AMS Master Solicitation. More information about technical requirements can be found here.
Frozen Bison and Buffalo Products
- Supplement 603 – Frozen Bison and Buffalo Products, June 2012 (pdf); Amendment 1, February 2015 (pdf)
Frozen Lamb Products
Chicken
Turkey
Eggs
Fresh Shell Eggs
Egg Products
Grain and Oilseed Products
- Bakery Flour Products (BF13) (pdf) effective January 20, 2016
- Bakery Flour Mix (BFM4) (pdf) effective April 1, 2016
- Corn Products (CP12) (pdf) effective January 20, 2016
- Cracker Products (pdf) effective March 2020
- Fortified R-T-E- Cereal Products (FC11) (pdf) effective February 22, 2019
- Frozen Pancakes (PAN2) (pdf) effective April 15, 2016
- Frozen Tortillas (TOR2) (pdf) effective April 15, 2016
- Macaroni and Cheese (MC10) (pdf) effective January 13, 2016
- Macaroni and Cheese (MC11) (pdf) effective October 2019
- Pasta Products and Egg Noodles (PA13) (pdf) effective January 13, 2016
- Processed Cereals (PC13) (pdf) effective October 11, 2017
- Processed Cereals (PC14) (pdf) effective September 14, 2018
- Peanut Products (PP16) (pdf) effective October 2019
- Rice Products (RP6) (pdf) effective October 2019
- Vegetable Oil Products (VP10) (pdf) effective September 2019
- Wheat Flour Products (WF16) (pdf) effective April 19, 2017
- Wild Rice (WR2) (pdf) effective July 28, 2016
Dairy
Dairy Products Purchase Specs:
- Evaporated Milk (EVD4) (pdf) effective Jul 29, 2013
- Infant Formula (IFD4) (pdf) effective Aug 16, 2013
- Instant Nonfat Dry Milk (IMD4) (pdf) effective Aug 8, 2013
- Fluid Milk (DFM1) (pdf) effective August 28, 2018
- Fluid Milk (DFM2) (pdf) effective November 15, 2018
- Mozzarella Cheese (DMOZ6) (pdf) effective Sep 13, 2018
- Mozzarella Cheese (DMOZ7) (pdf) September 2019
- Natural American Cheese (DNAC5) (pdf) effective Sep 26, 2018
- Natural American Cheese (DNAC6) (pdf) effective September 2019
- Natural Pepper Jack Cheese (pdf) effective January 2020
- Packaged Butter (pdf) effective March 2020
- Packaged Butter (PBD7) (pdf) effective October 2019
- Pasteurized Process American Cheese (DPPC4) (pdf) effective Sep 20, 2018
- Pasteurized Process American Cheese (DPPC5) (pdf) effective September 2019
- Natural Swiss Cheese (pdf) effective August 2020
- Ultra-High Temperature Milk (UHD5) (pdf) effective May 07, 2014
- Yogurt Products (pdf) effective October 2020
- Yogurt Products (DYO3) (pdf) effective October 2019 - October 2020
Soups
Additional Resources
- Commercial Item Descriptions (CIDs) - a set of industry standards for fruits, vegetables and specialty crops.
- Institutional Meat Specifications (IMPS) - a series of meat product specifications used by Federal, State, and Local Government agencies, schools, restaurants, hotels, and other food service entities to procure products.
Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements. It is applied in the context of agile software development methods, in particular behavior-driven development. This approach is particularly successful for managing requirements and functional tests on large-scale projects of significant domain and organisational complexity.[1]
Specification by example is also known as example-driven development, executable requirements, acceptance test–driven development (ATDD[2] or A-TDD[3]), Agile Acceptance Testing,[4] Test-Driven Requirements (TDR).
Advantages[edit]
Human brains are generally not that great at understanding abstractions or novel ideas/concepts when first exposed to them, but they’re really good at deriving abstractions or concepts if given enough concrete examples.[citation needed] The more examples we are given, the more likely we are to correctly understand the intended meaning. Also, by using concrete examples, they become more familiar and relatable to something similar to our past experiences, which generally makes them easier to understand.
Successful application of Specification by example is documented[1] to significantly reduce feedback loops in software development, leading to less rework, higher product quality, faster turnaround time for software changes and better alignment of activities of various roles involved in software development such as testers, analysts and developers.
Examples as a single source of truth[edit]
A key aspect of specification by example is creating a single source of truth about required changes from all perspectives. When business analysts work on their own documents, software developers maintain their own documentation and testers maintain a separate set of functional tests, software delivery effectiveness is significantly reduced by the need to constantly coordinate and synchronise those different versions of truth. With short iterative cycles, such coordination is often required on weekly or biweekly basis. With Specification by example, different roles participate in creating a single source of truth that captures everyone's understanding. Examples are used to provide clarity and precision, so that the same information can be used both as a specification and a business-oriented functional test. Any additional information discovered during development or delivery, such as clarification of functional gaps, missing or incomplete requirements or additional tests, is added to this single source of truth. As there is only one source of truth about the functionality, there is no need for coordination, translation and interpretation of knowledge inside the delivery cycle.
When applied to required changes, a refined set of examples is effectively a specification and a business-oriented test for acceptance of software functionality. After the change is implemented, specification with examples becomes a document explaining existing functionality. As the validation of such documents is automated, when they are validated frequently, such documents are a reliable source of information on business functionality of underlying software. To distinguish between such documents and typical printed documentation, which quickly gets outdated,[4] a complete set of specifications with examples is called Living Documentation.[1]
Key practices[edit]
Teams that apply Specification by example successfully commonly apply the following process patterns:[1]
- Deriving scope from goals
- Specifying collaboratively - through all-team specification workshops, smaller meetings or teleconference reviews
- Illustrating requirements using examples
- Refining specifications
- Automating tests based on examples
- Validating the underlying software frequently using the tests
- Evolving a documentation system from specifications with examples to support future development
Specifications Definition
Software teams that apply specification by example within a Scrum framework typically spend 5%-10% of their time in refining the product backlog, including specifying collaboratively, illustrating requirements using examples and refining examples.[3]
Specifications Types
Applicability[edit]
Specification by example applies to projects with sufficient organisational and domain complexity to cause problems in understanding or communicating requirements from a business domain perspective. It does not apply to purely technical problems or where the key complexity is not in understanding or communicating knowledge. There are documented usages of this approach in domains including investment banking, financial trading, insurance, airline ticket reservation, online gaming and price comparison.[1] A similar approach is documented also in a nuclear-power plant simulation project.[3]
Tests based on shared examples fit best in the category of tests designed to support a team while delivering software from a business perspective (see Agile Testing Quadrants[5]) - ensuring that the right product is built. They do not replace tests that look at a software system from a purely technical perspective (those that evaluate whether a product is built the right way, such as unit tests, component or technical integration tests) or tests that evaluate a product after it was developed (such as security penetration tests).
History[edit]
The earliest documented usage of realistic examples as a single source of truth, requirements and automated tests, on software projects is the WyCash+ project, described by Ward Cunningham in the paper A Pattern Language of Competitive Development [6][7] in 1996. The name Specification by Example was coined by Martin Fowler in 2004.[8]
Specification by Example is an evolution of the Customer Test[9] practice of Extreme Programming proposed around 1997 and Ubiquitous Language[10] idea from Domain-driven design from 2004, using the idea of black-box tests as requirements described by Weinberg and Gause[11] in 1989.
Derived works[edit]
Example Mapping[edit]
Example Mapping is a simple technique that can steer the conversation and derive Acceptance criteria within 30 minutes .The process involves breaking each stories into Rules and Examples and documented in the form of Specification by examples. Example Mapping was first introduced by Matt Wynne in the 2015 Agile alliances conference and is one of the wildly used techniques in the BDD world .
SHEQC grooming[edit]
Similar to 'Example mapping' SHEQC [12] grooming enables teams to groom a complex user story in less than 30 to 45 min using a concept called as continuous grooming using design thinking techniques. SHEQC uses Specification by example as the standard for documenting scenarios. The process involves the double diamond[13] rule for brainstorming and the out come is a set of question and Acceptance criteria again documented in the form of Specification by example for the story. SHEQC grooming was first introduced in the Innovations in software engineering conference ISEC2019, WESSEE [14] by Ranjith Tharayil and later published in XP2019 conference as one of the core methods for continuous grooming.[15]
Automation[edit]
Successful application of Specification by example on large scale projects requires frequent validation of software functionality against a large set of examples (tests). In practice, this requires tests based on examples to be automated. A common approach is to automate the tests but keep examples in a form readable and accessible to non-technical and technical team members, keeping the examples as a single source of truth. This process is supported by a class of test automation tools which work with tests divided into two aspects - the specification and the automation layer. The specification of a test which is often in a plain text or HTML form and contains the examples and auxiliary descriptions. The automation layer connects the example to a software system under test. Examples of such tools are:
Specifications Dictionary
References[edit]
- ^ abcdeAdzic, Gojko (2011). Specification by example: How successful teams deliver the right software. Manning. ISBN9781617290084.
- ^Pugh, Ken (2011). Lean-Agile Acceptance Test Driven Development: Better Software Through Collaboration: A Tale of Lean-Agile Acceptance Test Driven Development. Addison Wesley. ISBN978-0-321-71408-4.
- ^ abcLarman, Craig; Vodde, Bas (2010). Practices for Scaling Lean and Agile Development: Large, Multisite, and Offshore Product Development with Large-Scale Scrum. Pearson. ISBN978-0-321-63640-9.
- ^ abAdzic, Gojko (2009). Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing. Neuri. ISBN0-9556836-1-0.
- ^Crispin, Lisa; Gregory, Janet (2008). Agile Testing: A Practical Guide for Testers and Agile Teams. Addison Wesley. ISBN978-0-321-53446-0.
- ^Pattern Languages of Program Design 2. Addison-Wesley. 1996. ISBN978-0-201-89527-8.
- ^Ward Cunningham. 'EPISODES: A Pattern Language of Competitive Development Part I'. C2.com. Retrieved 2014-01-08.
- ^Martin Fowler 18 March 2004 (2004-03-18). 'SpecificationByExample'. Martinfowler.com. Retrieved 2014-01-08.
- ^Beck, K. (1999). Extreme Programming Explained: Embrace Change. Addison-Wesley. ISBN978-0-321-27865-4.
- ^Evans, Eric (2004). Domain-Driven Design:Tackling Complexity in the Heart of Software. Addison-Wesley. ISBN0-321-12521-5.
- ^Weinberg, Gerald; Gause, Donald (1989). Exploring Requirements: Quality Before Design. Dorset House. ISBN0-932633-13-7.
- ^Tharayil, Ranjith (2019-02-09). 'SHE QC A story grooming technique'. confengine.com. Retrieved 2019-06-06.
- ^'The Double Diamond: Strategy + Execution of the Right Solution'. ThoughtWorks. 2015-02-03. Retrieved 2019-06-06.
- ^Tharayil, Ranjith. 'ISEC2019 : WESEE 2019'. sites.google.com. Retrieved 2019-06-06.
- ^Tharayil, Ranjith. 'XP2019 SHEQC'. xp2019.sched.com. Retrieved 2019-06-06.