450 likes | 646 Views
Introduction. . Introduction Themes and variations Paradigms of programming The object-oriented software life-cycle Trends and technologies Summary Q/A Literature . Themes and Variations. . Subsections: Object Terminology Object Computation Des
E N D
1. Principles of Object-Oriented Software Development Introduction
2. Introduction
3. Themes and Variations
4. Themes and Variations
abstraction -- the object metaphor
modeling -- understanding structure and behavior
software architecture -- mastering complexity
frameworks -- patterns for problem solving
components -- scalable software
5. Object Terminology objects -- packet containing data and procedures
methods -- deliver service
message -- request to execute a method
class -- template for creating objects
instance -- an object that belongs to a class
encapsulation -- information hiding by objects
inheritance -- allowing the reuse of class spec.s class
hierarchy -- tree structure inheritance relations
polymorphism -- to hide different implementations
6. Features of OOP information hiding: state, autonomous behavior
data abstraction: emphasis on what rather than how
dynamic binding: binding at runtime, polymorphism , virtual functions
inheritance: incremental changes (specialization), reusability
7. Benefits of OOP OO = encapsulation + inheritance
modularity -- autonomous entities, cooperation through exchanges of messages
deferred commitment -- the internal workings of an object can be redefined without changing other parts of the system
reusability -- refining classes through inheritance
naturalness -- object-oriented analysis/design, modeling
8. Object Computation
10. Design by Contract
16. Paradigms of programming
19. Procedural programming
20. Data abstraction
21. Object-oriented programming
22. The object-oriented software life-cycle
23. The software life-cycle Analysis -- Conceptual Model, System Requirements
Design -- System Design, Detailed Design
Implementation -- Coding, Testing
24. Requirements -- user needs are constantly evolving Reliability -- incremental development, reuse, synthesis
Adaptability -- evolutionary prototyping
Maintainability -- incremental development, synthesis
Performance -- incremental development, reuse
25. Software Development Models rapid throwaway prototyping -- quick and dirty
incremental development -- slowly evolving
evolutionary prototyping -- evolving requirements
reusable software -- reduces cost and time
automated software synthesis -- one level of abstraction higher
26. Analysis
27. Analysis Methods Functional Decomposition = Functions + Interfaces
Data Flow Approach = Data Flow + Bubbles
Information Modeling = Entities + Attributes + Relationships
Object-Oriented = Objects + Inheritance + Message passing
28. Design
29. Design assignments
30. IDA
31. MASS
33. Implementation
34. Errors, bugs TeX [A] -- algorithm awry
[B] -- blunder
[C] -- structure debacle
[F] -- forgotten function
[L] -- language liability
[M] -- mismatch between modules
[R] -- reinforcement of robustness
[S] -- surprises
[T] -- a trivial typo
36. Beyond Object-Orientation?
38. Challenges in O-O vertical framework development -- finance, medical care, insurance
separation of 'logic' from 'control' -- business rules
distributed object technology -- heterogeneous systems
visualisation -- structure and processes
knowledge intensive applications -- declarative
heterogeneous systems - fragmented applications
39. Summary
40. Themes and Variations terminology -- all phrases
object computation -- message passing
contracts -- for constructing and validating software
41. Paradigms ofprogramming styles of programming -- as a family of conventions
data abstraction -- and its possible realizations
polymorphism -- and the features of inheritance
42. The object-orientedsoftware life-cycle software development models -- in particular the role of prototyping
software quality -- in relation to reuse and maintenance
programming languages -- the choice of a vehicle
43. Beyond object-orientation? modeling -- patterns, UML
components -- CORBA, (D)COM, Java
heterogeneous systems -- separating logic and control
44. Questions
46. Further reading