Headline

An imaginary HRMS system

Description

System:Company is an imaginary 'Human resource management system (HRMS)' (i.e., an information system) implementations of which ('contributions') are documented on 101wiki. The system is supposed to model the company structure in terms of employees and possibly the hierarchical structure of departments. Employees are modeled in terms of their names, addresses, salaries, and possibly additional properties. The system is supposed to meet certain functional requirements such as totaling all salaries in the company. The system may also be subjected to non-functional requirements such as persistence or distribution. Features are not collected for the sake of an interesting HRMS system. Instead, features are designed to exercise interesting characteristics of software languages and software technologies. Most features are optional so that contributions have the freedom of choice to focus on features that are particularly interesting for a certain objective of language or technology demonstration.

There are the following features:

  • Company: Companies, department, employees
  • Total: Total the salaries of employees
  • Median: Compute the median of the salaries
  • Cut: Cut the salaries of employees in half
  • Depth: Compute nesting depth of departments
  • COI: Conflicts of interests for employees
  • Mentoring: Associate mentors and mentees
  • Ranking: Enforce salary to correlate with ranks
  • Singleton: Constrain for a single company
  • History: Maintain and analyze company history
  • Serialization: De-/serialize companies
  • Persistence: Persist companies
  • Mapping: Map companies across technological space
  • Distribution: Distribute companies
  • Parallelism: Total or cut in parallel
  • Logging: Log company changes
  • Browsing: Browse companies interactively
  • Editing: Edit companies interactively
  • Restructuring: Restructure companies interactively
  • Web UI: Operate on companies in a web browser
  • Parsing: Parse companies in concrete syntax
  • Unparsing: Pretty print companies
The set of all features can also be arranged in a feature model as defined by the following constraints:

This specification is under construction.

We use the following informal notation here:

  • f? means that the feature f is optional.
  • f (OR) means that f is an OR feature; any operands may be chosen, but at least one, unless f is optional.
  • f (XOR) means that f is an XOR feature; either of its operands must be selected, but not several of them.
  • f1 => f2 means that if f1 is selected then f2 must be selected.
  • f (i.e., f with strikethrough) means that the feature is only emerging or already vanishing.

Illustration

The following UML class diagram models the basic structure of the system.

media:https://github.com/101companies/101repo/raw/master/contributions/argoUML/composition.jpg

See Theme:Starter for a few very simple contributions in varying languages. These are mostly implementations of the system in varying programming languages, but a UML-based model (as shown above) is also included.


Ralf Lämmel edited this article at Tue, 27 Jun 2017 12:05:40 +0200
Compare revisions Compare revisions

User contributions

    This user never has never made submissions.

    User edits

    Syntax for editing wiki

    For you are available next options:

    will make text bold.

    will make text italic.

    will make text underlined.

    will make text striked.

    will allow you to paste code headline into the page.

    will allow you to link into the page.

    will allow you to paste code with syntax highlight into the page. You will need to define used programming language.

    will allow you to paste image into the page.

    is list with bullets.

    is list with numbers.

    will allow your to insert slideshare presentation into the page. You need to copy link to presentation and insert it as parameter in this tag.

    will allow your to insert youtube video into the page. You need to copy link to youtube page with video and insert it as parameter in this tag.

    will allow your to insert code snippets from @worker.

    Syntax for editing wiki

    For you are available next options:

    will make text bold.

    will make text italic.

    will make text underlined.

    will make text striked.

    will allow you to paste code headline into the page.

    will allow you to link into the page.

    will allow you to paste code with syntax highlight into the page. You will need to define used programming language.

    will allow you to paste image into the page.

    is list with bullets.

    is list with numbers.

    will allow your to insert slideshare presentation into the page. You need to copy link to presentation and insert it as parameter in this tag.

    will allow your to insert youtube video into the page. You need to copy link to youtube page with video and insert it as parameter in this tag.

    will allow your to insert code snippets from @worker.