1 / 17

Addressing Non-Functional Properties in Software Architecture using ADL

ASWEC 2005 Brisbane. Addressing Non-Functional Properties in Software Architecture using ADL. Christopher Van Eenoo Osama Hylooz Khaled Khan University of Western Sydney. Contents. Motivation Current state of ADL Proposed approach Wright ADL Major issues Proposed constructs

ciqala
Download Presentation

Addressing Non-Functional Properties in Software Architecture using ADL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASWEC 2005 Brisbane Addressing Non-Functional Properties in Software Architecture using ADL Christopher Van Eenoo Osama Hylooz Khaled Khan University of Western Sydney

  2. Contents • Motivation • Current state of ADL • Proposed approach • Wright ADL • Major issues • Proposed constructs • Limitations.

  3. Motivation • Software architecture reveals the aspects related to systems functionality, their collaboration, and structure • Non functional aspects are rarely addressed at the architecture level • Lack of integration between functional and non-functional aspects in the architecture • Most ADLs do not incorporate quality attributes • Software architecture needs to describe non-functional properties as well as behavioural attributes.

  4. Current state • Architectural Definition Language (ADL) specifies the structural composition • Limitations of current ADL features • Non-functional properties are often too abstract and stated informally • Separation of the non-functional requirements from the functional ones is not simple • Non-functional issues are often considered as an ‘after thought’ of the development process.

  5. Proposed approach • We propose some ADL constructs using a combination of Wright and CSP notations • ADLs incorporate the non-functional properties • We explore how non-functional issues could be addressed at the ADL level • Not formal yet.

  6. ADL Wright • Designed around three basic software architectural elements: • Components • Interface • Ports: interactions with the environment in terms of events • Computation • What actually a component does in terms of events specified in ports • Connectors • Role: behaviour of the participants in an interaction • Glue: how the participants work together to create a composition • Configurations • Instances • Attachment: put together instances • Heavily based on CSP.

  7. An example of Wright Systems name Configuration XYZ Component X-Type Port Out = ā→Out § Computation = Out.a→Computation § Component Y-Type Port In = c→Inٱ§ Computation = In.c→b→Computationٱ§ Connector Z-type Role Get = ā→Get § Role Set = c→Set ٱ§ Glue = Get.a→Set.c→Glueٱ§ Instances x:X-type y:Y-Type z:Z-Type Attachments x.Out as z.Get y.In as z.Set End XYZ a component specification a component specification a connector specification The configuration between two components x and y via the connector z

  8. Issues addressed • Specification of non-functional properties • Differentiate between the required properties from the ensured properties • Handling of multiple number of properties in one interface element.

  9. Base construct • Base construct Non-functional Prop = (REQUIRES {provider.rrqmt}, ENSURES {port/role.erqmt}) • Is read as “The non-functional property Proprequires rrqmt from provider and ensures erqmt on port/role.” • Non-functional, REQUIRES, andENSURESare Wright reserved words • Propis a variable to be replaced with a non-functional property • REQUIRESindicates that the component or connector must receive from its environment • ENSURESindicates that component or connector must provide to its environment • a CSP notation for ‘contains’

  10. Furthering the construct • Multiple Unrelated Requirements Non-functional Prop = (REQUIRES {providera.rrqmta}, REQUIRES {providerb.rrqmtb}, ENSURES {port/role.erqmt}) • Multiple Related Requirements Non-functional Prop = (REQUIRES {providera.rrqmta; providera.rrqmtb; providera.rrqmtc}, ENSURES {port/role.erqmt})

  11. Furthering the construct – cont’d • Empty Set & Mathematical Notation Non-functional Prop = (REQUIRES {}, ENSURES {port/role.erqmt > x}) • “All” operator Non-functional Prop = (REQUIRES {all.rrqmt}; ENSURES {all.erqmt})

  12. Example • Fictional e-healthcare system • 3 components, 3 connectors

  13. Example – cont’d • Components - Existing Component GP Port authenticate = authenticate?x  authenticate Port write = start  accept!x  write Computation authenticate.authenticate?x  write.start  computation Component SP Port patient_test_data = data?x  patient_test_data Port compute_diagnosis = start  data!x  compute_diagnosis Computation=patient_test_data.data?xcompute_diagnosis.startcomputation Component PH Port diagnosis = diagnosis?x  diagnosis Port prescription=start  diagnosis!x  prescription Computation = diagnosis.diagnosis?x  prescription.start  computation

  14. Example – cont’d • Components with Construct Component GP Port auth = authenticate?x  auth Port write = start  accept!x  write Computation auth.authenticate?x  write.start  computation Non-functional Security = (REQUIRES {Remote_Procedure_Call.encryption}, ENSURES {auth.authentication}) Component SP Port patient_test_data = data?x  patient_test_data Port compute_diagnosis = start  data!x  compute_diagnosis Computation = patient_test_data.data?x  compute_diagnosis.start  computation Non-functional Performance = (REQUIRES {Pipe.BufferSize ≥ 50KB; Pipe.ReadSpeed ≥ 1MB/sec}, ENSURES {}) Component PH Port diagnosis = diagnosis?x  diagnosis Port prescription = start  prescription!x  prescription Computation = diagnosis.diagnosis?x  prescription.start computation Non-functional Security = (REQUIRES {}, ENSURES {Prescription.encryption})

  15. Exmaple – cont’d • Connectors - Existing Connector Shared_Variable Role GetTestData = accept?x  GetTestData Role GiveTestData = data!x  GiveTestData Glue = GetTestData.accept?x  GiveTestData.data!x  Glue Connector Pipe Role GetDiagnosis = data?x  GetDiagnosis Role GiveDiagnosis = diagnosis!x  GiveDiagnosis Glue = Getdiagnosis.data?x  GiveDiagnosis.diagnosis!x  Glue Connector Remote_Procedure_Call Role GetDiagnosis = diagnosis?x  GetDiagnosis Role GivePrescription = prescription!x  GivePrescription Glue = GetDiagnosis.diagnosis?x  GivePrescription.prescription!x  Glue

  16. Example – cont’d • Connectors with Construct Connector Shared_Variable Role GetTestData = accept?x  GetTestData Role GiveTestData = data!x  GiveTestData Glue = GetTestData.accept?x  GiveTestData.data!x  Glue Non-functionalSecurity =(REQUIRES{GP.authentication}, ENSURES{}) Availability = (REQUIRES {}, ENSURES {GetTestData.WhenRead != GiveTestData.Write; GiveTestData.WhenWrite != GetTestData.Read}) Connector Pipe Role GetDiagnosis = data?x  GetDiagnosis Role GiveDiagnosis = diagnosis!x  GiveDiagnosis Glue = Getdiagnosis.data?x  GiveDiagnosis.diagnosis!x  Glue Non-functional Performance = (REQUIRES {}, ENSURES {GiveDiagnosis.BufferSize ≥ 50KB; GiveDiagnosis.ReadSpeed ≥ 1MB/sec}) Connector Remote_Procedure_Call Role GetDiagnosis = diagnosis?x  GetDiagnosis Role GivePrescription = prescription!x  GivePrescription Glue = GetDiagnosis.diagnosis?x  GivePrescription.prescription!?x  Glue Non-functional Security = (REQUIRES {}, ENSURES {.encryption })

  17. Lacks formal rigidity String-like representation of non-functional properties Possibility for redundancy when one requirement pertains to more than one non-functional attribute Difficulty in defining and quantifying the non-functional properties in terms of a continuos scale. Limitations

More Related