Insiue for Sofware Technology Qualiy Assurance in Sofware Developmen Qualiässicherung in der Sofwareenwicklung A.o.Univ.-Prof. Dipl.-Ing. Dr. Bernhard Aichernig Insiue for Sofware Technology Graz Universiy of Technology Ausria Summer Term 2016 1 / 10
Insiue for Sofware Technology Agenda 1 Model-based Specificaions Example: Alarm Sysem 2 / 10
Insiue for Sofware Technology Model-based Specificaions Moivaion: Observaion: pre- and poscondiions are closely coupled o he inner daa represenaion of a class. Advanage: Pecise descripion of he inner behaviour of he implemenaion. Precise documenaion of he represenaion invarian. Disadvanage: When changing a variable of a class, also he specificaions mus be changed. The variables of a class mus be declared before he specificaion. No suiable for specifying absrac classes and inerfaces! Conclusion We need absracions of daa represenaions models 3 / 10
Insiue for Sofware Technology Model-based Specificaion in C# In model-based specificaions so called model variables are used for modelling a sysem on an absrac level. Model variables are absracions of one or more concree variables Some resricions apply: Unlike JML, he Code Conracs framework does no know model variables. In C# we can use (1) generic absrac classes or (2) generic absrac conrac classes for modelling he absrac sae wih (collecions of) inerfaces using ses (ISe), sequences (ILis), maps (IDicionary) o absrac from efficien implemenaion represenaions. 4 / 10
Insiue for Sofware Technology Anforderungen für ein Alarmsysem Eine chemische Fabrik is mi einer Anzahl von Überwachungseinrichungen ausgerüse, welche abhängig vom Zusand der Fabrik Alarme auslösen können. Wird ein Alarm ausgelös, muß ein Expere angeforder werden. Experen haben verschiedene Qualifikaionen um mi verschiedenen Alarmen umgehen zu können. 5 / 10
Insiue for Sofware Technology Anforderungen für ein Alarmsysem (con.) R1 Es is ein compuerbasieres Sysem zu enwickeln, welches die Alarme in dieser Fabrik managed. R2 Vier Aren von Qualifikaionen werden gebrauch um mi den Alarmen umzugehen. Diese sind elekrische, mechanische, biologische und chemische Qualifikaionen. R3 Es müssen während allen fesgelegen Zeiperioden Experen abrufberei sein. R4 Jeder Expere ha eine Lise von Qualifikaionen. 6 / 10
Insiue for Sofware Technology Anforderungen für ein Alarmsysem (con.) R5 Jeder Alarm, der an das Sysem gemelde wird ha eine zugeordnee Qualifikaion und eine Beschreibung des Alarms, die ein Expere versehen kann. R6 Wann immer ein Alarm vom Sysem empfangen wird, soll ein Expere mi der richigen Qualifikaion gefunden werden, so daß er angepaged werden kann. R7 Die Experen sollen die Sysemdaenbank abfragen können, um zu überprüfen wann sie abrufberei sein werden/müssen. R8 Es muß möglich sein die Anzahl der abrufbaren Experen abzufragen. 7 / 10
Insiue for Sofware Technology Mögliche Klassen und Mehoden Klassen (Typen) IAlarmSysem IQualificaion IAlarm IPeriod IExper (Descripion) Mehoden ExperToPage ExperIsOnDuy NumberOfExpers 8 / 10
Insiue for Sofware Technology Deklaraion der Mehoden R6: public in NumberOfExpers(IPeriod p); R7: public IPeriod[] ExperIsOnDuy(IExper e); R8: public IExper ExperToPage(IAlarm a, IPeriod p); 9 / 10
Insiue for Sofware Technology C# Example AlarmSysem.cs (Specificaion using an Absrac Class) AlarmSysemInerface.cs (Specificaion using an Inerface) 10 / 10