Domain 4 capstone: a placement recommender that states what it cannot decide
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
- Write
lab/place/rules.csvwith headercondition,implies,model_axis,sourcewith at least ten rules -- for example 'data may not leave the premises implies private'. - Write
lab/place-recommender.shthat reads a requirement file, applies the rules, and prints a deployment model, a service model and the customer's retained responsibilities. - It must print
NOT DETERMINEDand name the missing information when the rules do not settle an axis. Three outcomes per axis, not two. - Write
lab/place/requirements.txtwith six requirements, at least two of which are deliberately under-specified, and run the recommender on each. - Record the results in
lab/place/results.csvwith headerrequirement,deployment,service,determined,missing_infoand writelab/place/characteristics.csvwith headercharacteristic,definition,how_you_would_observe_itfor 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.