Download presentation
Presentation is loading. Please wait.
Published byRoss Hunter Modified over 9 years ago
1
Software Engineering Lecture 6 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: http://user.rol.ru/~vsafonov
2
(C) Vladimir O. Safonov, 20042 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
3
(C) Vladimir O. Safonov, 20043 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
4
(C) Vladimir O. Safonov, 20044 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;
5
(C) Vladimir O. Safonov, 20045 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
6
(C) Vladimir O. Safonov, 20046 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
7
(C) Vladimir O. Safonov, 20047 Home task to lecture 6 Please try to formulate the best features and the issues of OOP
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.