1 Methods of Experimental Particle Physics Alexei Safonov Lecture #20.
Software Engineering Lecture 6 Vladimir Safonov, Professor, head of laboratory St. Petersburg...
-
Upload
ross-hunter -
Category
Documents
-
view
216 -
download
0
Transcript of Software Engineering Lecture 6 Vladimir Safonov, Professor, head of laboratory St. Petersburg...
SoftwareEngineering
Lecture 6
Vladimir Safonov,Professor, head of laboratory
St. Petersburg University
Email: [email protected]
WWW: http://user.rol.ru/~vsafonov
(C) Vladimir O. Safonov, 2004 2
Object-oriented programming.History of C++ (1/2)
• 1979, Oslo, Norway – B. Stroustrup is an intern at Norway Computing Center; his subject is research on the SIMULA-67 compiler. Idea of extensing C by SIMULA classes
• Inefficiency of garbage collection, etc. => B. Stroustrup comes to the conclusion on replacing the object reference model by the “container” approach, for efficiency reasons
• “C with classes” – 1979
(C) Vladimir O. Safonov, 2004 3
Object-oriented programming.History of C++ (2/2)
• 1984: AT & T got interested in the new approach; commercial support of the project. The language is announced as C++. The first 5,000 users
• 1989 – new version of C++: exceptions; references; templates
• 1993 – yet another version of C++: namespaces, RTTI• (Only in) 1997 – the ANSI standard of C++ issued• The C++ standard committee : 70 people• Turbo C++ (Borland) – 1990• Visual C++ (Microsoft) – 1990s
(C) Vladimir O. Safonov, 2004 4
Object-oriented programming
• The Smalltalk language (Xerox PARC) – 1972 – 1980
• The Eiffel language (Dr. Bertrand Meyer, 1985) – classes; objects; Design-by-Contract paradigm
public double Remainder (int x, int y)
require y > 0;
return (x mod y);
ensure Remainder(x, y) == x mod y;
end Remainder;
(C) Vladimir O. Safonov, 2004 5
Pitfalls of OOP
• Conceptual explosion
• Unpredictable behavior, due to development on top of a VERY deep tree of other classes
• Implementation inheritance – a way to break encapsulation (what to do? – replace it by “interface inheritance” only – Dr. J. Gosling)
• Knowledge, generally speaking, is not limited to taxonomies only (in general, semantic nets required)
• Some concerns cannot be implemented by a “generalized procedure” only
• Post Object Programming (POP) techniques needed
(C) Vladimir O. Safonov, 2004 6
Aspect-oriented programming (AOP)
• Common concerns and cross-cutting concerns
• Prof. Adolph L. Fouxman (Rostov University, 1979): the vertical cut technology – the predecessor of AOP
• 1995, Xerox PARC: Gregor Kichales & his team – basic notions of AOP; first release of AspectJ – an AOP tool to support AOP Java extension
• Fall of 1990s, IBM Research: HyperJ – multi-dimensional separation of concerns; another AOP Java extension
• A lot of other AOP tools – ANGIE, AMT, … Aspect.NET
(C) Vladimir O. Safonov, 2004 7
Home task to lecture 6
• Please try to formulate the best features and the issues of OOP