This site is 100% ad supported. Please add an exception to adblock for this site.

Object-oriented: Basics

Terms

undefined, object
copy deck
What is object-orientation (high-level view)?
A programming technology based on objects and classes.
Object-orientation applies to what areas of software development lifecycle?
Analysis, design, implementation.
Use of objects distinguishes object-orientation from which other techniques?
- Traditional structured methods
- Knowledge-based systems
- Mathematical models
What are 4 ways to look at object-orientation?
- View of the world: A better approach
- Process
- Methods
- Implementation
Why did OO arise?
Improvement over older structured techniques
For organization, OO provides superior means of:
- Problem analysis/requirements
- Better software development practice
- Superior metrics
- Web presence & utilization
- Software reuse
- Software use
- Enterprise engineering
- 3rd party software is often OO
What was the first object-oriented language?
Simula, 1967.
What was the next big OO language, after Simula?
Smalltalk
What are the main OO languages today?
- C++
- Java
- VB.NET
- C#
What are the main differences between C++ and Java (high-level)?
- Java is simplification of C++
- Java is machine independent
- Java - write-once, run-anywhere
What is the main object-oriented methodology today?
UML, Rational process
What are the benefits of object-orientation?
- Exploit power of OOP
- Reuse of software & designs, frameworks
- Systems more change resilient, evolvable
- Reduced development risks, integration spread out
- Appeals to human cognition
What is Open Source software?
Software systems and code given away freely
Open Source most commonly written in which language?
Java
Which operating system is open source?
Linux
Which common web server is open source?
Apache
What are some advantages of open source?
- Often Java-based and OS-independent
- Bugs can be fixed when required
- Fully understand API when documentation not available
- Mailing lists/groups w/high quality support
- Can easily extend the software
What are the 2 major new object-oriented technologies?
J2EE and .NET
Recent Gartner report says that J2EE and .NET will each have __% of distributed system market?
40%
J2EE is comprised of what 3 pieces?
- JSP: dynamic HTML views from server side
- Servlets: for control
- Beans & EJB: business logic
What is .NET's primary programming language?
C#
.NET also supports which languages (4)?
- C++
- Java
- J#
- VB
What is .NET's primary intention?
Provide strong IDE to facilitate rapid development in a distributed environment (Web Services).
What are Web Services?
Object-oriented technology, based on SOAP & XML/Schemas for distributed application computing.
What other technology, besides Web Services, attempts to provide distributed application environment?
CORBA
What standards are Web Services based on (3)?
- SOAP
- WSDL
- UDDI
How are parameters to Web Services handled?
Serialized as SOAP XML messages
Web Services send messages using what standard?
SOAP / XML
Web Services leverage which Internet transport mechanism?
HTTP
Which technolgoy is more complex: Web Services or CORBA?
CORBA
When is use of CORBA appropriate, rather than Web Services?
For large data sets, with complex requirements
Which technology replaced XML DTDs?
XML Schema
How do Web Services make use of SOAP?
SOAP messages are sent between client & server.
What is WSDL?
Web Service Description Language
What is the purpose of WSDL?
Defines Web Service and possible SOAP messages.
What is UDDI?
Universal Description, Discovery and Integration
What is the purpose of UDDI?
A way of looking up Web Services of interest
What is an object (Booch94, 3 parts)?
- Object has state, behavior and identity
- Structure & behavior of similar objects defined in their common class
- Terms "instance" & "object" are interchangeable
What is Encapsulation also known as?
Information Hiding
What is Encapsulation?
- Compartmentalizing structure & behavior of an abstraction
- Such interface for the abstraction is separate from its implementation
What is a Class (3)?
A specification, for objects, of:
- A structure
- Behavior
- Inheritance
What is a Class (general)?
A collection of objects sharing structure and behavior, each of which has a unique identity
What is a Class (Booch94)?
A set of objects that share a common structure and a common behavior
How are objects and classes related?
A single object is an instance of a particular class.
What is a meta-class?
A class' class
What is the "Infinite Regress of Objects and Classes"?
- Idea of infinite organization: object is instance of class, class is instance of meta-class, meta-class instance of meta-meta-class, etc.
- Silly
- Chain can be broken if meta-class is instance of itself
What does MOP stand for?
Meta-Object Protocol
What is a MOP?
(Meta-Object Protocol)
A system with meta-classes accessible to users.
What is Inheritance?
A relationship between classes, where one class is a parent, that represents a is-a relationship between the classes
Derived class is a _____ of the base class.
Specialization
What is multiple inheritance?
When a class inherits from more than one parent class
What are the problems associated with multiple inheritance?
Hard to resolve ambiguity of duplicate names that occur in more than one parent class(es)
What is the argument for the need for multiple inheritance?
- In the real world, many classes of objects inherit from >1 parent class
- Absence of multiple inheritance leads to wrapping other clases or duplicating code
What is dynamic inheritance?
Ability to add/delete/change parents from objects.
Why should we use inheritance?
- It's a natural way to model the world
- Allows for code & structural reuse
What is differential programming?
Inheriting from a class in order to slightly modify the behavior of the parent object
Why don't some people like inheritance?
- Some don't like coupling of classes
- Some complain that multiple inheritance is too complicated
-
What is generalization?
To factor out common parts of derived classes into a common base
What is overriding?
Redefining a method in a derived class, providing specialized behavior
What is the difference between object-based and object-oriented?
Object-Based Programming:
- Objects without inheritance
- Abstract data types, but no classes

Object-Oriented Programming:
- Includes inheritance and polymorphism
When is language considered object-oriented (Cardelli85)?
- Objects that are data abstractions w/interface of named operations & hidden local state
- Objects have an associated type
- Types may inherit attributes from super-types

=> Data abstraction + object types + type inheritance
When is a language object-oriented (Coad91)?
- Classes & objects
- Inheritance
- Communication w/messages
Is a class an object?
- In C++, no: classes not accessible to programs
- In Java, yes: all classes are instances of a meta-class
Is an object a class?
- In C++, no
- In Java, some: instances of a meta-class are both objects and classes
What is a method?
Function or procedure defined in a class that implements some behavior and can access internal state of an object of that class
What is OOP?
Object-oriented programming
What do OOA/OOD stand for?
Object-oriented Analysis / Object-oriented Design
What is Object-Oriented Analysis?
Understanding a problem domain in terms of object-oriented concepts (classes and objects).
What is Object-Oriented Design?
Designing a system by modeling the components of the system using object-oriented concepts (classes & objects)
What is the basic outline of a Waterfall lifecycle?
- Analysis
- Design
- Programming
What is the basic outline of a Spiral lifecycle model?
- Analysis, prototyping, risk mgmt
- Design, prototyping, risk mgmt
- Programming, prototyping, risk mgmt
What is the basic outline of an Incremental lifecycle model?
- A little analysis
- A little design
- A little programming
- Repeat
What does CMM stand for?
Capability Maturity Model
What is the CMM (Capability Maturity Model)?
Process-based model for assessing level of an organization's software development skills/abilities
What are the 5 levels of the CMM?
1. Initial - ad hoc, chaotic
2. Repeatable - every project handled similarly
3. Defined - standard processes defined/used
4. Managed - measurable basis for all improvements to process
5. Optimizid - emphasis on continued improvement on process
What is polymorphism (in terms of variable)?
The use of a variable whose class is not known at compile time and which responds at run time according to the actual class of the object to which it refers.
What is polymorphism (in terms of classes)?
Processing objects differently, depending on their specific data type, by redefining methods for derived classes
Is VB6 polymorphic?
Yes, in that it supports interface-based polymorphism, though it does not support inheritance-based polymorphism
What are the two main types of polymorphism (___-based)?
- Inheritance-based polymorphism (e.g. C++)
- Interface-based polymorphism (e.g. VB6)
What are the two main types of polymorphism (2nd version)?
- Ad hoc polymorphism
- Parametric polymorphism
What is Ad Hoc Polymorphism?
Functions and data structures with parameters that can take on values of many different types
What is Parametric Polymorphism?
Functions and data structures that parametrize over arbitrary values (e.g. list of anything)

Deck Info

82

permalink