diff --git a/Lectures/L27_SpecViaUML/DataSetInterface/bin/experiment b/Lectures/L27_SpecViaUML/DataSetInterface/bin/experiment index 0c43baf47bd779116b67b8d70b9304773e5e2853..e1e8c00d74884768128abb8a40ccd58f9e5e95ba 100755 Binary files a/Lectures/L27_SpecViaUML/DataSetInterface/bin/experiment and b/Lectures/L27_SpecViaUML/DataSetInterface/bin/experiment differ diff --git a/Lectures/L27_SpecViaUML/DataSetInterface/experimentation/main.cpp b/Lectures/L27_SpecViaUML/DataSetInterface/experimentation/main.cpp index 324358ba4bfa32866dd855648adf06e63df855ba..362986cb668629a69d411c318f794a4c2ed69402 100644 --- a/Lectures/L27_SpecViaUML/DataSetInterface/experimentation/main.cpp +++ b/Lectures/L27_SpecViaUML/DataSetInterface/experimentation/main.cpp @@ -1,4 +1,5 @@ #include "PointT.h" +#include "BankAccount.h" #include "DataSetInterface.h" #include <iostream> @@ -7,12 +8,13 @@ using namespace std; int main() { - DataSetInterface ds; + //Test Data Set Inteface with PointT PointT p1(0.0, 0.0); PointT p2(3.0, 4.0); PointT p3(7.0, 24.0); PointT p4(5.0, 12.0); - + + DataSetInterface ds; ds.add(&p1); ds.add(&p2); ds.add(&p3); @@ -20,13 +22,30 @@ int main() cout << "average = " << ds.getAverage() << "\n"; - Measurable* maxM = ds.getMaximum(); + Measurable *maxM = ds.getMaximum(); - PointT* maxP = (PointT*) maxM; + PointT *maxP = (PointT*) maxM; + + cout << "maximum = " << *maxP << "\n"; + + //Test Data Set Inteface with Bank Account + + BankAccount b1; + b1.deposit(300); + BankAccount b2; + b2.deposit(100); + + DataSetInterface dsBank; + dsBank.add(&b1); + dsBank.add(&b2); + + cout << "average = " << dsBank.getAverage() << "\n"; + + maxM = dsBank.getMaximum(); + + BankAccount *maxB = (BankAccount*) maxM; + + cout << "maximum = " << *maxB << "\n"; - //maxP = dynamic_cast<PointT*>(maxM); - - cout << "maximum = " << maxP << "\n"; - return 0; } diff --git a/Lectures/L27_SpecViaUML/DataSetInterface/include/BankAccount.h b/Lectures/L27_SpecViaUML/DataSetInterface/include/BankAccount.h new file mode 100644 index 0000000000000000000000000000000000000000..70a52a482779aa306f125a7d8132faabbfdf8fb1 --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetInterface/include/BankAccount.h @@ -0,0 +1,24 @@ +#ifndef BANKACCOUNT_H +#define BANKACCOUNT_H + +#include "Measurable.h" + +#include <iostream> + +class BankAccount : public Measurable +{ + public: + BankAccount(); + void deposit(double amount); + void withdraw(double amount); + double getBalance(); + + friend std::ostream& operator<< (std::ostream &out, const BankAccount &ba); + + double getMeasure(); + + private: + double balance; +}; + +#endif diff --git a/Lectures/L27_SpecViaUML/DataSetInterface/include/DataSetInterface.h b/Lectures/L27_SpecViaUML/DataSetInterface/include/DataSetInterface.h index 5e23bca56e907e33d18b0d3a960176741fed9051..ae93b2308f729be1ab4bfd1ee4ba900aa37fe1fb 100644 --- a/Lectures/L27_SpecViaUML/DataSetInterface/include/DataSetInterface.h +++ b/Lectures/L27_SpecViaUML/DataSetInterface/include/DataSetInterface.h @@ -7,14 +7,14 @@ class DataSetInterface { private: double sum; - Measurable* maximum; + Measurable *maximum; int count; public: DataSetInterface(); - void add(Measurable* x); + void add(Measurable *x); double getAverage(); - Measurable* getMaximum(); + Measurable *getMaximum(); }; #endif diff --git a/Lectures/L27_SpecViaUML/DataSetInterface/src/BankAccount.cpp b/Lectures/L27_SpecViaUML/DataSetInterface/src/BankAccount.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2abe22d20604df3233bde6a7c4cb606104e5ab69 --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetInterface/src/BankAccount.cpp @@ -0,0 +1,34 @@ +#include "BankAccount.h" + +BankAccount::BankAccount() +{ + this->balance = 0.0; +} + +void BankAccount::deposit(double amount) +{ + this->balance += amount; +} + +void BankAccount::withdraw(double amount) +{ + this->balance -= amount; +} + +double BankAccount::getBalance() +{ + return balance; +} + +double BankAccount::getMeasure() +{ + return balance; +} + +std::ostream& operator<< (std::ostream &out, const BankAccount &ba) +{ + //From http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/ + out << "BankAccount(" << ba.balance << ") "; + + return out; +} diff --git a/Lectures/L27_SpecViaUML/DataSetInterface/src/DataSetInterface.cpp b/Lectures/L27_SpecViaUML/DataSetInterface/src/DataSetInterface.cpp index d52db9d853dd6a9b5ba1b909d3dde5e182dcb8fc..83204b04c836f9141f78ca1b44ee43e53bc25b4e 100644 --- a/Lectures/L27_SpecViaUML/DataSetInterface/src/DataSetInterface.cpp +++ b/Lectures/L27_SpecViaUML/DataSetInterface/src/DataSetInterface.cpp @@ -7,7 +7,7 @@ DataSetInterface::DataSetInterface() : maximum() this->count = 0; } -void DataSetInterface::add(Measurable* x) +void DataSetInterface::add(Measurable *x) { this->sum += x->getMeasure(); if (count == 0 || maximum->getMeasure() < x->getMeasure()) maximum = x; @@ -20,7 +20,7 @@ double DataSetInterface::getAverage() else return sum/count; } -Measurable* DataSetInterface::getMaximum() +Measurable *DataSetInterface::getMaximum() { return maximum; } diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/Makefile b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d2c5aca0dd4a53631812d8d1109cd0107104b023 --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/Makefile @@ -0,0 +1,53 @@ +SRC_DIRS := src +C_SRCS := $(foreach srcdir,$(SRC_DIRS),$(wildcard $(srcdir)/*.c)) +CXX_SRCS := $(foreach srcdir,$(SRC_DIRS),$(wildcard $(srcdir)/*.cpp)) +C_OBJS := ${C_SRCS:.c=.o} +CXX_OBJS := ${CXX_SRCS:.cpp=.o} +OBJS := $(C_OBJS) $(CXX_OBJS) +INCLUDE_DIRS := include +LIBRARY_DIRS := +LIBRARIES := + +prog_NAME := experiment +prog_DIR := bin +prog_FULL := $(prog_DIR)/$(prog_NAME) +prog_SRC_DIRS := experimentation +prog_C_SRCS := $(foreach srcdir,$(prog_SRC_DIRS),$(wildcard $(srcdir)/*.c)) +prog_CXX_SRCS := $(foreach srcdir,$(prog_SRC_DIRS),$(wildcard $(srcdir)/*.cpp)) +prog_C_OBJS := ${prog_C_SRCS:.c=.o} +prog_CXX_OBJS := ${prog_CXX_SRCS:.cpp=.o} +prog_OBJS := $(prog_C_OBJS) $(prog_CXX_OBJS) +prog_INCLUDE_DIRS := +prog_LIBRARY_DIRS := +prog_LIBRARIES := + +all_OBJS := $(OBJS) $(prog_OBJS) $(test_OBJS) +DEP := $(all_OBJS:%.o=%.d) + +CXXFLAGS += -std=c++11 +CXXFLAGS += $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) +LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) +LDFLAGS += $(foreach library,$(LIBRARIES),-l$(library)) + +.PHONY: experiment src clean + +experiment: CXXFLAGS += $(foreach includedir,$(prog_INCLUDE_DIRS),-I$(includedir)) +experiment: LDFLAGS += $(foreach librarydir,$(prog_LIBRARY_DIRS),-L$(librarydir)) +experiment: LDFLAGS += $(foreach library,$(prog_LIBRARIES),-l$(library)) + +experiment: $(prog_FULL) + ./$(prog_FULL) + +$(prog_FULL): $(prog_OBJS) $(OBJS) + $(LINK.cc) $^ -o $@ + +-include $(DEP) + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -MMD -c $< -o $@ + +clean: + @- $(RM) $(prog_FULL) + @- $(RM) $(prog_OBJS) + @- $(RM) $(OBJS) + @- $(RM) $(DEP) diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/bin/.gitkeep b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/bin/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/bin/experiment b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/bin/experiment new file mode 100755 index 0000000000000000000000000000000000000000..6d4c70fa59ee5d0634c23861f7c618e64f8cd435 Binary files /dev/null and b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/bin/experiment differ diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/experimentation/main.cpp b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/experimentation/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..de0e6cf8e696e6599e44b257fc1171b580e2cd0a --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/experimentation/main.cpp @@ -0,0 +1,31 @@ +#include "PointMT.h" +#include "DataSetInterface.h" + +#include <iostream> +using namespace std; + +int main() +{ + + //Test Data Set Inteface with PointT + PointMT p1(0.0, 0.0); + PointMT p2(3.0, 4.0); + PointMT p3(7.0, 24.0); + PointMT p4(5.0, 12.0); + + DataSetInterface ds; + ds.add(&p1); + ds.add(&p2); + ds.add(&p3); + ds.add(&p4); + + cout << "average = " << ds.getAverage() << "\n"; + + Measurable *maxM = ds.getMaximum(); + + PointMT *maxP = (PointMT*) maxM; + + cout << "maximum = " << *maxP << "\n"; + + return 0; +} diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/DataSetInterface.h b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/DataSetInterface.h new file mode 100644 index 0000000000000000000000000000000000000000..ae93b2308f729be1ab4bfd1ee4ba900aa37fe1fb --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/DataSetInterface.h @@ -0,0 +1,20 @@ +#ifndef DATASETINTERFACE_H +#define DATASETINTERFACE_H + +#include "Measurable.h" + +class DataSetInterface +{ + private: + double sum; + Measurable *maximum; + int count; + + public: + DataSetInterface(); + void add(Measurable *x); + double getAverage(); + Measurable *getMaximum(); +}; + +#endif diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/Measurable.h b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/Measurable.h new file mode 100644 index 0000000000000000000000000000000000000000..16c20c1a00f08018823afa2f7e31d86f7cd168cf --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/Measurable.h @@ -0,0 +1,10 @@ +#ifndef MEASURABLE_H +#define MEASURABLE_H + +class Measurable +{ + public: + virtual double getMeasure() = 0; +}; + +#endif diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/PointMT.h b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/PointMT.h new file mode 100644 index 0000000000000000000000000000000000000000..c8c28f14ebfd71a684632969396aa4305bf6aa17 --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/PointMT.h @@ -0,0 +1,14 @@ +#ifndef POINTMT_H +#define POINTMT_H + +#include "PointT.h" +#include "Measurable.h" + +class PointMT : public PointT, public Measurable +{ + public: + PointMT(double x, double y); + double getMeasure(); +}; + +#endif diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/PointT.h b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/PointT.h new file mode 100644 index 0000000000000000000000000000000000000000..ce3f800ecd4af22fe4c37714023a797d48500acd --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/include/PointT.h @@ -0,0 +1,21 @@ +#ifndef POINTT_H +#define POINTT_H + +#include <iostream> + +class PointT +{ + public: + PointT(double x, double y); + double xcoord(); + double ycoord(); + double distToOrigin(); + + friend std::ostream& operator<< (std::ostream &out, const PointT &point); + + private: + double xc; + double yc; +}; + +#endif diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/DataSetInterface.cpp b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/DataSetInterface.cpp new file mode 100644 index 0000000000000000000000000000000000000000..83204b04c836f9141f78ca1b44ee43e53bc25b4e --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/DataSetInterface.cpp @@ -0,0 +1,26 @@ +#include "DataSetInterface.h" +#include "Measurable.h" + +DataSetInterface::DataSetInterface() : maximum() +{ + this->sum = 0.0; + this->count = 0; +} + +void DataSetInterface::add(Measurable *x) +{ + this->sum += x->getMeasure(); + if (count == 0 || maximum->getMeasure() < x->getMeasure()) maximum = x; + count++; +} + +double DataSetInterface::getAverage() +{ + if (count == 0) return 0; + else return sum/count; +} + +Measurable *DataSetInterface::getMaximum() +{ + return maximum; +} diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/PointMT.cpp b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/PointMT.cpp new file mode 100644 index 0000000000000000000000000000000000000000..efc60b99b498ff7e05225b6d5819b6542c7bc56a --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/PointMT.cpp @@ -0,0 +1,11 @@ +#include "PointMT.h" +#include "Measurable.h" + +PointMT::PointMT(double x, double y) : PointT(x, y) +{ +} + +double PointMT::getMeasure() +{ + return this->distToOrigin(); +} diff --git a/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/PointT.cpp b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/PointT.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3f1d5014514b00c70bbffe4c957e03fa9eb3ef62 --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetMultipleInheritance/src/PointT.cpp @@ -0,0 +1,38 @@ +#include "PointT.h" +#include <cmath> + +PointT::PointT(double x, double y) +{ + this->xc = x; + this->yc = y; +} + +double PointT::xcoord() +{ + return this->xc; +} + +double PointT::ycoord() +{ + return this->yc; +} + +double PointT::distToOrigin() +{ + double dx; + double dy; + + dx = this->xc; + dy = this->yc; + + return sqrt(pow(dx,2.0) + pow(dy,2.0)); +} + +std::ostream& operator<< (std::ostream &out, const PointT& point) +{ + //From http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/ + // Since operator<< is a friend of the Point class, we can access Point's members directly. + out << "PointT(" << point.xc << ", " << point.yc << ")"; + + return out; +} diff --git a/Lectures/L27_SpecViaUML/DataSetsAggregation.pdf b/Lectures/L27_SpecViaUML/DataSetsAggregation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ed80247d83342071c054fdf831d2926ed83d3585 Binary files /dev/null and b/Lectures/L27_SpecViaUML/DataSetsAggregation.pdf differ diff --git a/Lectures/L27_SpecViaUML/DataSetsAggregation.xml b/Lectures/L27_SpecViaUML/DataSetsAggregation.xml new file mode 100644 index 0000000000000000000000000000000000000000..f91e3926ef0881cc883ec5224a7b9bfcbef09b55 --- /dev/null +++ b/Lectures/L27_SpecViaUML/DataSetsAggregation.xml @@ -0,0 +1 @@ +<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:58.0) Gecko/20100101 Firefox/58.0" version="8.4.6" editor="www.draw.io" type="device"><diagram id="51d45c3b-694b-ad9c-a1ca-de0ff4b50e78" name="Page-1">1VZdb8IgFP01fV3aslZ99HN7WbJEk7lHVq4tsS0GUdv9+lGhtohdzDJd5oPhHuDAOZdjdNA4K5443iQvjEDq+C4pHDRxfD8YhPK7AkoFoIGvgJhToiCvAeb0EzToanRHCWyNhYKxVNCNCUYszyESBoY5Zwdz2Yql5qkbHIMFzCOc2ugbJSJRaD9wG/wZaJzUJ3uunvnA0TrmbJfr8xwfrY4fNZ3hmkuv3yaYsEMLQlMHjTljQo2yYgxpZW1tm9o365g93ZtDLq7ZoNuyx+lOS59ggecgXhmVDOqOoqx9SUSWypHnoJHeCFxA0Xm4d5IkXwqwDAQv5ZLC7HZplofGca/GkpbbdRewbnJ8Im6EyoHWelk3snQfBS9urNh3/07yoyXZEgs5GVbpkRWhOGM5WSQ0l9LlxIxWzBNXVTqykhSNWhZJG3i5bBfv1Z6HoCoLKpY1gxw3M+oeQKxMntkq78p2PAKjhQLzGETrNdvmt90NtZMcUizo3jzxkr2aTueh4+n2z/qj7tlkaNZF0/ueR4mzeI6tPgm8qvtBV9BHOF8Po7tn/Z4vP7S0K9GR/J2+tW4r8fcU3vtvkW/nO7TzHVzt/u0j7/1W5i2iH4dels0/B7W8+XeGpl8=</diagram></mxfile> \ No newline at end of file diff --git a/Lectures/L27_SpecViaUML/MeasurableInterface.pdf b/Lectures/L27_SpecViaUML/MeasurableInterface.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c59665831ba138e22f2922cb4862e65f424fd183 Binary files /dev/null and b/Lectures/L27_SpecViaUML/MeasurableInterface.pdf differ diff --git a/Lectures/L27_SpecViaUML/MeasurableInterface.xml b/Lectures/L27_SpecViaUML/MeasurableInterface.xml new file mode 100644 index 0000000000000000000000000000000000000000..eb2f1155fbd26c568079747d74e7207c81fea151 --- /dev/null +++ b/Lectures/L27_SpecViaUML/MeasurableInterface.xml @@ -0,0 +1 @@ +<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:58.0) Gecko/20100101 Firefox/58.0" version="8.4.6" editor="www.draw.io" type="device"><diagram id="375c196d-1333-2840-e13d-7bbed8fb0d51" name="Page-1">3VbLbqMwFP0atiPAIWqWTdLHplKlVJp26eAbsAI4MiaP+fox2AaMSScaDYo0WUT28fXjnHuujYdW+fmF40P6xghkXuiTs4fWXhhGi7n8r4GLAtA8VEDCKVFQ0AEb+gs06Gu0ogRKK1Awlgl6sMGYFQXEwsIw5+xkh+1YZu96wAk4wCbGmYv+pESkCn2I/A5/BZqkZufA1yNbHO8TzqpC7+eFaNf81HCOzVo6vkwxYacehJ48tOKMCdXKzyvIammNbGre85XR9twcCnHLBJ2WI84qTX2NBd6A0McTFyNJKvJMtgIPLd1N9L5H4ALOPUhv+gIsB8EvMkSPzjT/1h+6f+rUDowZ0p7SJgNYJzhpV+5IyobmOc4ZOZy9cI7zg2SWiYZev0cLAXyHY2jhxAoyvSZ4y2WrQd4AlxXHWynftEreJGU4kZQzR8p3JgX7mJgzCmzOs4cRzv5EnCOH8xIX+8c4llU/ddkEizsSX4zUzYAtFOSxvn5lj1Ccs4J8pLSQ3OXAM61XXvuqp+986SC07GkEZyo+TZRsf9XtH1EzRx7304TVnW7sqrIlq3gMVtkLzBMQ1u0HxHoNXPX76pry4pBhQY/2gzEmr16uKYxe2aJB2S4GGVJH17P6N/hgoaElomGqFWFnoSbbLcebDBC45f6dA7YZi/cyOwSXKZA2c+NGCMIrRlDJN1boG6Hniy+rxAb5/KMzItcZ6G5GmA3zd6sR0PBumNAI7h34XxhhdlcjRIP8/e2N4LyO4b8ygux2n6YqvPv8R0+/AQ==</diagram></mxfile> \ No newline at end of file diff --git a/Lectures/L27_SpecViaUML/MeasurableInterfaceInheritance.pdf b/Lectures/L27_SpecViaUML/MeasurableInterfaceInheritance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2056af399a59ee51edcb762a067c7ad744d232de Binary files /dev/null and b/Lectures/L27_SpecViaUML/MeasurableInterfaceInheritance.pdf differ diff --git a/Lectures/L27_SpecViaUML/MeasurableInterfaceInheritance.xml b/Lectures/L27_SpecViaUML/MeasurableInterfaceInheritance.xml new file mode 100644 index 0000000000000000000000000000000000000000..e73ededf5d30385b0b29858bfe341b3b2ecbcd28 --- /dev/null +++ b/Lectures/L27_SpecViaUML/MeasurableInterfaceInheritance.xml @@ -0,0 +1 @@ +<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:58.0) Gecko/20100101 Firefox/58.0" version="8.4.6" editor="www.draw.io" type="device"><diagram id="375c196d-1333-2840-e13d-7bbed8fb0d51" name="Page-1">3VfLbqMwFP0atiPAgTbLpmk7m0gjpdK0SwffgBXAkeO85uvHYPMwJg2KhkaaLCL7+NrmnHuuDQ56zk5vHG+TBSOQOr5LTg6aO74fTEP5XwBnBaDQV0DMKVGQ1wBL+gc06Gp0TwnsjEDBWCro1gQjlucQCQPDnLOjGbZmqbnrFsdgAcsIpzb6mxKRKPQxcBv8J9A4qXb2XD2ywtEm5myf6/0cH63LnxrOcLWWjt8lmLBjC0IvDnrmjAnVyk7PkBbSVrKpea8XRuvn5pCLIRN0Wg443WvqcyzwEoR+PHGuJElElsqW56CZvYne9wBcwKkF6U3fgGUg+FmG6NGJ5l/7Q/ePjdpeZYakpXSVAawTHNcrNyRlQ/Ps54wszo4f4mwrmaWipNfu0VwAX+MIajg2gqpeGbzislUiC8C7PccrKd+4Sg6S0h9Jyokl5S8mBVu8j0waeSbpyWMPaXck0oFFeobzzVMUybIfu2686R2JT3sKp8MWcvJUnL+yRyjOWE7eE5pL7nLglRYrz13V04e+tBCatTSCExUfVZRsfxbtH0E5Rz7uRxVWdJqxi8ru2J5HYNS9wDwGYRx/QIzrwFa/rW5VXxxSLOjBvDH65NXLlZXRqlvUqdtpJ0Pq0fWs9hHeWahriaCbakXYWqjMds1xkAE8u96/csAqZdFGZofgXQKkzly/ETz/ghFU8isrtI3Q8sWnUWKdfF51RmA7A93NCJNu/oYaAXXPhhGNYJ+B/4URJnc1QtDJ360ngnU7+uMZIbSMUC474AXAuvR6sjP4BSB4+MZ70Hu4yf0ti4eW/68a3vvC8O6/NLxK6bc4vvPqGk5uNLzvXlnoZsPLbvMxpsKbD1708hc=</diagram></mxfile> \ No newline at end of file diff --git a/Lectures/L27_SpecViaUML/src/DataSetInterface.java b/Lectures/L27_SpecViaUML/src/DataSetInterface.java index dcc8738027c62331b44e18584912c22be1db8e29..7f0a3895fd34f93d326ebbb557d9a90bf610e419 100644 --- a/Lectures/L27_SpecViaUML/src/DataSetInterface.java +++ b/Lectures/L27_SpecViaUML/src/DataSetInterface.java @@ -1,7 +1,7 @@ public class DataSetInterface { private double sum; - private Measurable maximum; + private Measurable* maximum; private int count; public DataSetInterface() @@ -23,4 +23,4 @@ public class DataSetInterface public Measurable getMaximum() { return maximum; } -} \ No newline at end of file +}