Sunday, April 27, 2008

First week with Jens.

So this was our first week with Jens lecturing for this paper. We started with an overview of the history of object oriented programming language. Where they came from and their various evolution. (i.e., Java;s syntax is similar to C++ but works with more smalltalk like principles.)

Carrying on from that came the principles of OOP: Overloading and Polymorphism, Inheritance, Separating Implementation and Declaration, Encapsulation etc.

We were told about other programing 'things': Null, what it is and what in tales. The principles of equality vs identity that Some objects may have the same value but are the same identical (to to with memory pointers etc.) These 'things are common to most programming languages not just java, C++, and other OOP programming languages.

We also covered exception handling, object/class life cycles,advanced and nonstandard features etc.
Thorough out the lectures on these point these were brought back to the real world implications with the business use cases etc. And how their development affects business and how business affect the development of languages ant their use.

Most of the things that were discussed were things that I generally understand however good to go over again. Actually a lot of this I have covered with Jens in 159.201 (algorithms and data structures) earlier in the semester. Every time you go over some thing it cements it further so it is easier to utilise and or avoid gotchyas in the future (and therefore build better quality software).

Sunday, April 20, 2008

UML [351]

So in the past week we have been learning about modeling. Modeling with UML and we touched on extending it with OCL. We learnt about how UML defines itself. It was kind of confusing concept to understand at first but it is like how we define English using English. (I wonder if it would be possible for a child to argue that they refuse to do their English home work because it esoteric, recursively reasoned, and is not a scientifically shown proof. I guess they would get give detention; supervised by the maths teacher.)

So the way things go is that you have a system (which is the real world thing we want to create) then we have a model of that system showing the various class instances and attributes etc. Then we have a model of the model showing the the classes (of which various class instances in the model etc., will be instances of). Then we have a model of the model of the model. This models what models and attributes are. Finally we have a model of the model of the model of the model. This defines what how models showing classes etc are modeled. This final part seems the most confusing but is most similar to the concept of modeling the English language using English.

UML was also discussed how It can be used in Business process modeling. When you think about it money, products (and components being manufactured into products) services and systems all are very similar to how information is passed around and how you have instances of objects etc (e.g., people , casting and forging plants etc.) and there for can be model easily using UML.
We also discussed how due to the limitations we cant just use a model (UML) and just feed that into a system and have it generate code directly. That it still is ambiguous and is not able to do this with out human intervention. That it is easy to for systems to get things syntacticly correct but not able to create something that is semantically what we want.


We also discussed some of the previous exams and what type of answers that are expected, and what is going to be looked for in them.