1 / 45

Principles of Object-Oriented Software Development

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

ata
Download Presentation

Principles of Object-Oriented Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    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 of programming styles of programming -- as a family of conventions data abstraction -- and its possible realizations polymorphism -- and the features of inheritance

    42. The object-oriented software 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

More Related