ohjelmistoarkkitehtuurit harjoitus 3