Domain 4 capstone: a placement recommender that states what it cannot decide

capstone · 120 min · Objective 4.2

Task

Assemble the domain into a recommender: given a stated requirement, it returns a deployment model, a service model and the responsibilities that come with them -- and returns NOT DETERMINED when the requirement does not settle it. A recommender that always answers will confidently answer wrongly.

Steps

  1. Write lab/place/rules.csv with header condition,implies,model_axis,source with at least ten rules -- for example 'data may not leave the premises implies private'.
  2. Write lab/place-recommender.sh that reads a requirement file, applies the rules, and prints a deployment model, a service model and the customer's retained responsibilities.
  3. It must print NOT DETERMINED and name the missing information when the rules do not settle an axis. Three outcomes per axis, not two.
  4. Write lab/place/requirements.txt with six requirements, at least two of which are deliberately under-specified, and run the recommender on each.
  5. Record the results in lab/place/results.csv with header requirement,deployment,service,determined,missing_info and write lab/place/characteristics.csv with header characteristic,definition,how_you_would_observe_it for the five essential characteristics.

Verify

awk -F, 'NR>1 && NF>=4 {n++} END {print n" placement rule(s)"}' lab/place/rules.csv
test -s lab/place-recommender.sh && echo "recommender present"
grep -c 'NOT DETERMINED' lab/place-recommender.sh
grep -c . lab/place/requirements.txt
awk -F, 'NR>1 && NF>=5 {n++} END {print n" requirement(s) processed"}' lab/place/results.csv
awk -F, 'NR>1 && tolower($4)=="no" {n++} END {print n+0" left undetermined"}' lab/place/results.csv
awk -F, 'NR>1 && NF>=3 {n++} END {print n" characteristic(s)"}' lab/place/characteristics.csv

Ten or more rules, a recommender containing the NOT DETERMINED path, six requirements processed of which at least two are undetermined, and five characteristics with an observable each. A recommender that determined all six was given six easy requirements.

Notes

The how_you_would_observe_it column is what stops the characteristics being recited. Measured service is observable in a bill; elasticity is observable in capacity changing without anybody asking; on-demand self-service is observable in whether a human has to fulfil a request.

This is an independent study companion for CompTIA A+ Core 1 220-1201 and is not produced by or endorsed by CompTIA.