| Field | Value |
|---|---|
| Standard | OMG Automated Function Points (AFP) 1.0 |
| OMG Formal Document | formal/14-01-03 |
| OMG Specification | omg.org/spec/AFP/1.0 |
| Machine-Readable | AutomatedFunctionPoint.xmi (admtf/12-09-02) |
| ISO Adoption | ISO/IEC 19515:2019 |
| Authority | Object Management Group (Architecture-Driven Modernization), CISQ, IFPUG compatibility |
| npm Package | @amlhubs/afp |
| npm Version | 0.0.1 |
| Peer Dependencies | @amlhubs/smm@^0.0.2, @amlhubs/uml@^0.0.2 |
| License | UNLICENSED |
Automated Function Points (AFP) is the OMG specification that automates the IFPUG Function Point Counting Practices Manual rules over a Knowledge Discovery Metamodel (KDM) representation of a software application. AFP 1.0 was adopted by the OMG in December 2013 (formal/14-01-03) and adopted as an international standard by ISO/IEC JTC 1 as ISO/IEC 19515:2019. The specification replaces the subjective judgments traditionally required of a certified IFPUG counter with deterministic counting rules that an automated tool can execute against a KDM model of the application under test.
The AFP specification is published as a Structured Metrics Metamodel (SMM) 1.2 measurement library — a single SmmModel carrying one MeasureLibrary ("AutomatedFunctionPointLibrary") that owns every AFP measure, scope, characteristic, and KDM-recognizer operation. AFP introduces no new metaclasses; every artefact is an instance of an SMM 1.2 metaclass already typed by @amlhubs/smm. The @amlhubs/afp package therefore surfaces the AFP library as a set of typed, ID-stamped TypeScript instance constants and one frozen library aggregator that preserves every AFP §x.y citation in JSDoc, making each constant an auditable projection of the specification rather than an internal invention.
Function-point sizing has been the dominant pre-implementation software-effort estimation technique for forty years. Every major software-cost estimation model — COCOMO II, the International Software Benchmarking Standards Group (ISBSG) repository, SEER-SEM, SLIM, TruePlanning — accepts unadjusted function points (UFP) as a primary input. AFP makes that input deterministic: a counted application yields the same UFP value irrespective of counter, whereas a manual IFPUG count exhibits up to 30% inter-counter variance per ISBSG calibration studies. A regulated procurement program — a federal IT contract subject to FAR 52.232-7, a healthcare modernization subject to HHS Acquisition Manual cost-realism review, a defense program subject to DoD 5000 earned-value baselines — that adopts AFP as its sizing convention immunizes the cost baseline from counter-variance disputes that otherwise stall payment milestones.
ISO adoption turns AFP into a regulator-recognized artefact. ISO/IEC 19515:2019 sits in the ISO/IEC JTC 1/SC 7 software-engineering portfolio alongside ISO/IEC/IEEE 12207 (software lifecycle), ISO/IEC 25010 (software quality), and ISO/IEC/IEEE 29119 (software testing). A vendor that delivers an AFP-compliant counting pipeline can cite the ISO standard in audit responses without translating internal jargon into standards language. For ageni's customers, this means @amlhubs/afp plus @amlhubs/smm plus @amlhubs/uml is the executable-typed-artefact backbone of an ISO-traceable software-sizing service.
The second business lever is agentic runtime leverage. Ageni's Probabilistic Reduction Engine consumes the AFP library as the deterministic substrate over which the counting agent reasons. A counting agent that writes an AFP score against the typed Measure instances exported here cannot fabricate a measure that does not exist in the AFP §6–§7 inventory, cannot mis-relate EOCsum to anything other than FTR_EO and DET_EO, and cannot mis-attribute the wILF weight table without TypeScript flagging the deviation at compile time. Structural hallucinations that would otherwise slip past a natural-language review (inventing a measure, mis-typing a complexity tier, misidentifying a KDM-recognizer predicate) are caught at tsc time, and every surviving reference traces to an AFP §-section through the JSDoc header.
The third lever is compounding reuse across estimation domains. A typed AFP library composes upward into a Software Cost Estimation Profile (SCE) implementation, into a SysML Requirement traceability surface that links function-point counts to user requirements, and into a VDML value-delivery analysis that ties measured size to monetized business outcomes. Every downstream ageni venture — illummaa.com's modular-housing software-platform sizing estimates, dealsempire's pitch-generation cost calibration, lesvolsarabais.ca's subscription-engine effort baseline — can reuse the same @amlhubs/afp typed surface as its costing input without rebuilding the AFP semantics for each venture.
The fourth lever is composability across the OMG measurement stack. AFP 1.0 is the first OMG-formalised industrial application of SMM 1.2; adopting it through a typed package makes every subsequent OMG-formalised SMM library — Automated Quality Characteristic Measures (AQCM), Automated Technical Debt (ATDM), Automated Source Code Maintainability (ASCMM), Automated Source Code Reliability (ASCRM), Automated Source Code Performance Efficiency (ASCPEM), Automated Source Code Security (ASCSM) — installable through the same @amlhubs/{name} pattern this package establishes, with zero metamodel rework per addition.
The package exports the complete AFP 1.0 measurement library as typed SMM 1.2 instance constants. Every constant carries a JSDoc header citing the precise AFP §-section that defines it.
| AFP Concept | §Section | SMM Metaclass | Instances Surfaced |
|---|---|---|---|
| Measurement Category | §6 | MeasureCategory |
FunctionalMeasures |
| Trait / Characteristic | §6 | Characteristic |
General, ExternalOutputSize, ExternalInputSize, InternalLogicalFileSizeAndExternaInterfaceFileSize, AutomatedFunctionPointSize |
| Scope (KDM-bound) | §6 | Scope |
Element, EO, EI, LF, Segment |
| KDM Recognizer Operation | §6 | Operation |
isEO, getEOs, isEI, getEIs, isILF, getILFs, isEIF, getEIFs, isLF |
| Base Dimensional Measure | §7 | DimensionalMeasure |
FTR, DET, RET |
| Tier-Mapped Rescaled Measure | §7 | RescaledMeasure |
FTR_EO, DET_EO, EOC, wEO, FTR_EI, DET_EI, EIC, wEI, RET_LF, DET_LF, DFC, wILF, wEIF |
| Two-Input Sum | §7 | BinaryMeasure |
EOCsum, EICSum, DFCsum |
| Aggregated Size | §7 | CollectiveMeasure |
EOs, EIs, ILFs, EIFs, AFPs |
| Measure Relationship Edges | §7 | RescaledMeasureRelationship, Base1MeasureRelationship, Base2MeasureRelationship, BaseMeasureRelationship |
17 edges connecting the measures above |
The complete enumeration lives in afp.ts. The frozen library aggregator at the bottom of the file binds every measure, scope, characteristic, and operation under the canonical AFP MeasureLibrary named AutomatedFunctionPointLibrary (XMI id _XW4E8POaEeGAl6dCCRBZ4Q, per the OMG-published AutomatedFunctionPoint.xmi).
@amlhubs/uml (UML 2.5.1 — root)
▲
│ peerDependency
└── @amlhubs/smm (SMM 1.2 — measurement metamodel)
▲
│ peerDependency
└── @amlhubs/afp (this package — typed AFP measurement library)
The edges are load-bearing. @amlhubs/afp imports IMeasureCategory, ICharacteristic, IScope, IOperation, IDimensionalMeasure, IRescaledMeasure, IBinaryMeasure, ICollectiveMeasure, IMeasureLibrary, ISmmModel, IBaseMeasureRelationship, IBase1MeasureRelationship, IBase2MeasureRelationship, and IRescaledMeasureRelationship from @amlhubs/smm. It re-exports the AFP MeasureLibrary instance plus every owned measure, scope, characteristic, and operation as typed TypeScript constants.
npm install @amlhubs/afpimport { afp } from '@amlhubs/afp';
// Resolve any AFP measure by its canonical name
console.log(afp.measure.afps.name); // 'AFPs'
console.log(afp.measure.afps.shortDescription); // 'Automated Function Point Size'
// Walk the AFP library
for (const measureId of afp.library.measureElementIds) { /* … */ }
// Bind to a KDM-recognizer
console.log(afp.operation.isEO.description); // KDM Element predicate for External OutputThe source artifact is afp.ts. Every constant JSDoc header declares @standard OMG AFP 1.0 -- formal/14-01-03 and an @section §x.y reference to the AFP specification.
- OMG AFP 1.0 specification — formal/14-01-03 (December 2013)
- OMG AFP machine-readable XMI — admtf/12-09-02
- ISO/IEC 19515:2019 — ISO adoption
- OMG Structured Metrics Metamodel (SMM) 1.2 — formal/2018-01-01 (upstream metamodel)
- OMG Knowledge Discovery Metamodel (KDM) — measurand metamodel referenced by AFP
Scope.scopeClass - IFPUG Function Point Counting Practices Manual — original counting practices AFP automates
- Object Management Group home
- CISQ — Consortium for Information & Software Quality — AFP co-author