System:
Company
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
- Data requirements
- Functional requirements
- Non-functional requirements
- UI requirements
- More constraints
- Emerging and vanishing features
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.
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.
Backlinks
User contributions
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.