close

Вход

Забыли?

вход по аккаунту

?

Язык программирования Java

код для вставкиСкачать
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
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
2
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
3
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
4
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
5
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 – multidimensional separation of concerns; another AOP Java
extension
• A lot of other AOP tools – ANGIE, AMT, … Aspect.NET
(C) Vladimir O. Safonov, 2004
6
Home task to lecture 6
• Please try to formulate the best features and
the issues of OOP
(C) Vladimir O. Safonov, 2004
7
Документ
Категория
Презентации
Просмотров
7
Размер файла
70 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа