A motivational text for an entity on 101wiki
At this stage, a 'motivation' is used specifically within feature descriptions of System:Company features.
An imaginary HRMS system
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.
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.