Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI-383 Object-Oriented Programming & Design Lecture 1.

Similar presentations


Presentation on theme: "CSCI-383 Object-Oriented Programming & Design Lecture 1."— Presentation transcript:

1 CSCI-383 Object-Oriented Programming & Design Lecture 1

2 Course Overview Class webpage: (go over syllabus) http://www.stfx.ca/people/igondra/csci383

3 Programming Paradigm A way of conceptualizing what it means to perform computation and how tasks to be carried out on the computer should be structured and organized Imperative : Machine-model based Functional : Equations; Expression Evaluation Logical : First-order Logic Deduction Object-Oriented : Programming with Data Types

4 What is OOP? Object-Oriented Programming (OOP) is a programming paradigm in which one models a problem in terms of the entities and concepts found in the problem domain

5 Why Use OOP? OOP is a tool that helps developers manage better the increasingly complex software projects they face today

6 Software Today The economies of ALL developed nations are dependent on software More and more systems are software controlled –It has been said that modern aircrafts are simply computers with wings. E.g., the Boeing 777 has more than 4 million lines of code to control subsystems and aid pilots in flight management

7 Software Development It’s hard! Important to distinguish “easy” systems (e.g., one developer, one user) from “hard” systems (e.g., multiple developers, multiple users, products) Experience with “easy” systems is misleading. One person techniques do not scale up The problem is complexity. Many sources, but size is key

8 Flexibility Leads to Complexity Software offers the ultimate flexibility A developer can express almost any kind of abstraction While the construction industry has uniform building codes and standards, few such standards in the software industry

9 Our task: engineer the illusion of simplicity!

10 The “software crisis” We’ve been in the midst of a “software crisis” ever since the 1968 NATO meeting –Difficulties of building big software loomed so large that in 1968 the NATO Science Committee convened some 50 top programmers, computer scientists and captains of industry to plot a course out of what had come to be known as the software crisis Refers to our inability to produce or maintain high-quality software at a reasonable price and on schedule. Basically, we suck

11 A Solution - Software Engineering Greater emphasis on systematic development A concentration on finding out the user’s requirements Formal/Semi Formal specification of the requirements of a system Greater emphases on trying to ensure error free code

12 OOP for Complexity Control Usually, we use “complexity” to mean “run-time complexity” or “space complexity” However, measures of complexity can take other forms, such as –Development time and costs –Maintenance time and costs –Error time and costs OOP is a complexity control tool

13 Understanding the Problems Considering the problems in software development and the goals that software development seeks to achieve. These are: –Meeting the user’s needs –Low cost of production –High performance –Portability –Low cost of maintenance –High reliability –Delivery on time

14 Software Quality External Quality Factors –User/Client perspective Correctness, Speed, Ease of use, etc Internal Quality Factors – Designer / Implementer perspective Modularity, Readability, etc Internal Quality is a means to achieve External Quality

15 Expressive Power vs Naturalness Object-oriented techniques do not provide any new computational power that permits problems to be solved that cannot, in theory, be solved by other means (Church-Turing Hypothesis) But object-oriented techniques do make it easier and more natural to address problems in a fashion that tends to favor the management of large software projects

16 Types of OOP Languages Languages, such as Smalltalk, are called pure object-oriented languages –Everything in the language is an object –All execution takes place by means of message passing Languages such as C++ are called hybrid object-oriented languages –Combine OOP with traditional languages

17 What is “object-oriented”? A system is said to be object-oriented if it exhibits 4 categories of traits –Abstraction and classification –Encapsulation and data hiding –Inheritance and polymorphism –Message passing


Download ppt "CSCI-383 Object-Oriented Programming & Design Lecture 1."

Similar presentations


Ads by Google