Software Architecture: Pespectives on an Emerging Discipline