npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ucp-estimator

v1.0.0

Published

Module for quick estimation given number of use cases.

Downloads

3

Readme

ucp-estimator

A package for software cost estimation using use case points given the number of use cases and actors. This can be useful when including estimation to your organization's landing page.

This estimator is patterned after the estimation sheet available here. If you want to know more about the estimation method and logic, you may refer to the same link.

Usage and Functions

All functions are accessible using the object UcpEstimator.

Estimate

UcpEstimator.estimate(usecases, actors)

Returns an object with the estimated man-hours and cost given that your organization uses a flat rate (e.g. { ManHours: 234, Cost: 117420 }).

usecases - Array of number of use cases grouped an arranged by complexity. For instance, given [3, 2, 0], the application has 3 simple use cases, 2 average use cases,and 0 complex use case. For additional information on how to assess use cases, please refer to primary reference linked above.

actors - Array of number of actors grouped and arranged by type. For instance, given [1, 2, 1], the application has 1 simple actor, 2 average actors, and 1 complex actors. For additional information on how to assess actors, please refer to primary reference linked above.

Estimate Man-hours

UcpEstimator.estimateManHours(usecases, actors)

Returns the estimated man-hours.

Parameters are the same with UcpEstimator.estimate().

Estimate Cost

UcpEstimator.estimateCost(usecases, actors)

Returns the estimated cost given that your organization uses a flat rate.

Parameters are the same with UcpEstimator.estimate().

Configuration

The configuration used by the estimator is accessible through UcpEstimator.config. Default values were set with reference to the downloadable estimation sheet and consideration to the ideal scenario of a ground up project.

This can be altered depending on you or your organizations view of a typical project.

|Key|Long Name|Format/Description|Default Value| |---|---------|------------------|-------------| |envFactors|Environmental Factors| Array of values corresponding to the following in order:Familiarity with the Project Application Experience OO Programming Experience Lead Analyst Capability Motivation Stable Requirements Part Time Staff Difficult Programming Language | [5, 0, 5, 5, 5, 0, 0, 0] | |techFactors|Technical Factors|Array of values corresponding to the following in order:Distributed System Required Response Time Is Important End User Efficiency Complex Internal Processing Required Reusable Code Must Be A Focus Installation Ease Usability Cross-Platform Support Easy To Change Highly Concurrent Custom Security Dependence On Third-Party Code User Training|[1, 1, 1, 1, 1, 0, 2.5, 2.5, 1, 1, 1, 1, 1]| |envMultipliers|Environment Factor Multipliers|Default multipliers for environment factors in the estimation sheet.|[1.5, 0.5, 1, 0.5, 1, 2, -1, -1]| |techMultipliers|Technial Factor Multipliers|Default multipliers for technical factors in the estimation sheet.|[2, 1, 1, 1, 1, 0.5, 0.5, 2, 1, 1, 1, 1, 1]| |ucMultipliers|Use Case Multipliers|Default multipliers for use cases arranged from Simple to Complex.|[5, 10, 15]| |actMultipliers|Actor Multipliers|Default multipliers for actors arranged from Simple to Complex.|[1, 2, 3]| |hoe|Hours of Effort per Use Case|In favor of the best case, this is set to 20.|20| |[Optional]flatRt|Flat Rate|Only useful if you or your organization uses a flat rate for costing. The value is just a sample.|500|