Showing posts with label Object Oriented Programming. Show all posts
Showing posts with label Object Oriented Programming. Show all posts

Tuesday, August 3, 2010

Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns

0 comments
This book presents a complete methodology for adaptive programming in any object-oriented language. Lieberherr's method provides a new approach to object-oriented program design that goes beyond object encapsulation and hard-coded navigation paths to achieve more flexible interactions among objects. Designers using this adaptive method work at a higher, more schematic level of abstraction to design software programs. Graph notation is used to represent the class structure of the program, and a "propagation pattern" language describes how to distribute meaningful methods (including navigation) across the program's structure. Using this method, software designers can create programs that are easily modified and adaptable as needs evolve.

Reviews: Amazon.com

"Unfortunately, apart from highlighting the problems of OO successfully, he singularly failed to convince me of the adaptive OO approach."

Author(s) : Karl J. Lieberherr
Publication date : August 1995
ISBN : 0-534-94602-X
Pages : 616
Publisher : PWS Publishing Co.

View/Download Adaptive Object-Oriented Software

Building Skills in Object-Oriented Design - Step-by-Step Construction of A Complete Application

0 comments
Some software developers find themselves stalled when trying to do object-oriented (OO) design. As programmers, they've understood the syntax of a programming language, and pieced together small examples. However, it is often difficult to take the next step to becoming a designer. Because this transition from guided learning of language features to self-directed design work is often ignored, programmers are left to struggle through their first design projects without appropriate skills or support. While it is critically important to examine examples of good design, a finished product doesn't reveal the author's decision-making process that created the design.

The most notable consequence of this skills gap is the creation of software that is far more complex than necessary to effectively solve a given problem. This, in turn, leads to software with high maintenance costs stemming from the low quality. It also leads to an unfair indictment of OO technology; this is usually voiced as “we tried OO programming and it failed.

The intent of this book is to help the beginning designer by giving them a sequence of interesting and moderately complex exercises in OO design. This book can also help managers develop a level of comfort with the process of OO software development. The applications we will build are a step above trivial, and will require some careful thought and design. Further, because the applications are largely recreational in nature, they are interesting and engaging. This book allows the reader to explore the processes and artifacts of OO design before project deadlines make good design seem impossible.

Author : Steven F. Lott
Publication Date : 2005
Free License : Creative Commons License Attribution-Noncommercial-No Derivative Works 2.0 Generic

View/Download Building Skills in Object-Oriented Design | Single HTML | PDF

Introduction to Object-Oriented Programming Using C++

0 comments
This is a collection of lectures in the on-line course Introduction to Object-Oriented Programming Using C++. In this course, object-orientation is introduced as a new programming concept which should help you in developing high quality software. Object-orientation is also introduced as a concept which makes developing of projects easier.

However, this is not a course for learning the C++ programming language. If you are interested in learning the language itself, you might want to go through other tutorials, such as C++: Annotations by Frank Brokken and Karel Kubat. In this tutorial only those language concepts that are needed to present coding examples are introduced.

Author(s) : Peter Müller
Publication date : Aug 1997

View/Download Introduction to Object-Oriented Programming Using C++

Java Au Naturel - Guide to Object Oriented Design, 4th Edition

0 comments
This book focuses on software development with an object-oriented approach. Java is used for the implementation, since it's well suited for learning and doing object-oriented software development.

Programmer only learns by doing. In this book, readers will work with many different situations where software development is necessary. Readers should not start by learning Java's eight different primitive types or its five different control statements. They should start by seeing how to develop software for a particular realistic situation. And they should learn the language features they need for the situation as the need arises.

This book starts by introducing the objects that make drawings. In this context readers will learn to send messages to objects to carry out simple tasks. More importantly, this book shows readers how to "teach" those objects to put together a sequence of simple actions to perform a complex task. These "better-trained" objects have new capabilities in addition to the ones they inherit from the original specifications. This inheritance technique eventually makes the job much easier. Bigger jobs can be completed with less work and less chance of getting it wrong if there are new objects that take over most of the work. When objects are used this way, they should be thought of as the agents or executive assistants.

Intended Audience:

This book does not require any knowledge of programming or any mathematics beyond elementary algebra and (in a few places) a bit of trigonometry.

Author : Dr. William C. Jones, Jr., Department of Computer Science, Central Connecticut State University
Publication Date : May 26, 2004

View/Download Java Au Naturel - Guide to Object Oriented Design, 4th Edition

Java: An Object First Approach

0 comments
Java: An Object First Approach provides a thorough introduction to the production of software artefacts, a process known as software development, using the programming language Java. The book is intended for use with readers/students starting their software development education and can also be used at a more advanced level as an Object-Oriented book.

The author uses a spiral approach to present object-oriented concepts and techniques. The development of a class hierarchy is utilized, stressing a design, build, test cycle. An extensive case study at the conclusion of the book pulls the concepts together.

Author(s) : Fintan Culwin
Publication date : Oct 1997
ISBN : 0-138-58457-5
Pages : 393
Publisher : Prentice Hall

View/Download Java: An Object First Approach

Object-Oriented Programming And The Objective-C Language

0 comments
Object-oriented programming, like most interesting new developments, builds on some old ideas, extends them, and puts them together in novel ways. The result is many-faceted and a clear step forward for the art of programming. An object- oriented approach makes programs more intuitive to design, faster to develop, more amenable to modifications, and easier to understand. It leads not only to new ways of constructing programs, but also to new ways of conceiving the programming task.

Nevertheless, object-oriented programming presents some formidable obstacles to those who would like to understand what it's all about or begin trying it out. It introduces a new way of doing things that may seem strange at first, and it comes with an extensive terminology that can take some getting used to. The terminology will help in the end, but it's not always easy to learn. Moreover, there are as yet few full-fledged object-oriented development environments available to try out. It can be difficult to get started.

That's where this book comes in. It's designed to help the reader become familiar with object-oriented programming and get over the hurdle its terminology presents. It spells out some of the implications of object-oriented design and tries to give the reader a flavor of what writing an object-oriented program is really like. It fully documents the Objective-C language, an object-oriented programming language based on standard C, and introduces the most extensive object-oriented development environment currently available -- OpenStep.

Intended Audience:

Because this isn't a book about C, it assumes some prior acquaintance with that language. However, it doesn't have to be an extensive acquaintance. Object-oriented programming in Objective-C is sufficiently different from procedural programming in standard C that the reader won't be hampered if he/she is not an experienced C programmer.

View/Download Object-Oriented Programming And The Objective-C Language | Download from gnustep.org

Object Oriented Analysis and Design - Course Notes

0 comments
Object modelling is useful for designing computer systems, whether those systems are to be implemented in object-oriented languages or not. Most designs are likely to need more than an object-oriented language, such as a database. Therefore, do not think that this is a wasted exercise if you cannot convince your manager to let you use C++, Smalltalk or whatever flavour of the month language is out there.

Object modelling also has a use outside of the design of computer systems. It is an excellent analysis method, and it can be used in business process reengineering, in social science research, or any complex environment where it is important to capture the structure and functionality of some world.

This course aims to provide you with:

1. A simple, clear, analysis and design notation.
2. A good basic understanding of the concepts of object oriented systems.
3. A method for construction of analyses and designs.
4. Some discussion of the implementation of designs.

View/Download Object Oriented Analysis and Design - Course Notes

Learning Object Oriented Programming with Delphi

0 comments
An object is a separate, self-contained, encapsulated entity, and the term encapsulation is important in OO. This means that an object has data that it can keep private from the outside world and that it has specific behaviour. It manipulates its data and implements its behaviour through its methods.

Writing the code that defines an object's methods has many similarities with structured programming, and so uses many structured programming principles such as structured selection (If..then..else, Case) and repetition (While..do and For loops).

In this module we assume that students are familiar with these concepts and so concentrate on principles that apply specifically to OO programming.

Delphi as a Learning Environment:

This course uses Delphi to teach object orientation. Delphi's roots lie in Pascal, and so it has a sound, structured foundation. It is also strongly object oriented and provides many OO characteristics such as class inheritance, static binding and dynamic binding, and reference semantics.

The module makes extensive use of graded, worked examples to give students hands-on experience in the implementation of OO code. This helps to bridge the gap between the seemingly simple OO principles and the ramifications of these principles in practice. Through the inductive sequencing of concepts and through the extensive use of worked examples, this module strongly supports independent study, and has been prepared with distance learning students in mind.

In the first two chapters of this module we use Delphi's RAD facilities to start exploring various aspects of OO.

Then we apply these same principles to code that we ourselves write. We start exploring how to define and instantiate classes by looking at the way Delphi builds up a 'Form', which is the name Delphi uses for a window in a graphical interface environment.

Author : John Barrow; edited by Zarko Gajic
Publication Date : November 2007

View/Download Learning Object Oriented Programming with Delphi

Seamless Object-Oriented Software Architecture - Analysis And Design of Reliable Systems

0 comments
This book shows how a consistent set of object-oriented abstractions can be applied throughout the entire software construction process, based on three major ideas: seamlessness, reversibility, and contracting.

Seamlessness, as in the first word of the title, follows from the observation that the similarities between the tasks to be carried out at the various steps of a project far outweigh their inevitable differences, making it possible to obtain a continuous process that facilitates communication between the various actors involved, ensures a direct mapping between a problem and its software solution, and results in a high level of quality for the final product.

Reversibility means that the seamless procedure must work in both directions: if one modifies a system that has already reached the implementation phase - a frequent case in practice - it must be possible to reflect the modification back to the higher levels of design, specification, and analysis.

The contract model was introduced to a wider audience as early as 1988 by Bertrand Meyer in his introductory book Object-Oriented Software Construction (OOSC), which quickly became, and still is, the standard reference on basic object-oriented concepts. In a sense, this book is a continuation of OOSC, carrying some of its software engineering ideas to their logical conclusion in the area of analysis and design. The result is a method called BON (Business Object Notation) which contains a set of concepts and corresponding notations to support object-oriented modeling centered around the three principles of seamlessness, reversibility, and software contracting.

Intended Audience:

The book is intended for software professionals as well as for students at the graduate and undergraduate levels. This book can be read by anyone who has acquired a general understanding of the problems of software engineering, and who has some inclination for abstract thinking.

Author : Kim Waldén and Jean-Marc Nerson
Publication Date : September 1994
Publisher : Prentice Hall

View/Download Seamless Object-Oriented Software Architecture - Analysis And Design of Reliable Systems | Book's Webpage

Objective-C 2.0 Essentials

0 comments
On the surface this sounds like an odd opening sentence for a programming book. After all, if this were a book about JavaScript or PHP I'd be safe in assuming that you planned to develop some kind of web site or web application. Similarly, if this were a Visual Basic book it'd be a good bet that you had plans to write a Windows application. Indeed, had I asked this question a few years ago, I could have guessed with a reasonable level of confidence that you wanted to learn Objective-C in order to develop some software to run on Apple's Mac OS X operating system. Now, however, there is a greater likelihood that you plan to develop an application to run on the iPhone.

The iPhone, after all, runs a special version of Mac OS X. Given that Objective-C is the programming language of choice for this operating system it should come as no surprise that before you can develop iPhone applications you first need to learn how to program in Objective-C.

The objective of this book is to teach the skills necessary to program in Objective-C using a style that is easy to follow, rich in examples and accessible to those who have never used Objective-C before. Topics covered include the fundamentals of Objective-C such as variables, looping and flow control. Also included are details of object oriented programming, working with files and memory and the Objective-C Foundation framework.

Those who have developed using other programming languages such as C, C++, C# or Java will find much about Objective-C that is familiar. That said, there are aspects of the language syntax that are unique to Objective-C. Even experienced programmers should therefore expect to spend some time transitioning to this increasingly popular programming language before embarking on a major development project.

Whatever your background and experience, we have worked hard to make this book as useful and helpful as possible as you traverse the Objective-C learning curve.

Author : Neil Smyth
Publication Date : January 2010

View/Download Objective-C 2.0 Essentials

Object-Oriented System Development

0 comments
Object-Oriented System Development is written for professionals involved in the development of medium, large, and distributed systems. Rather than subscribing to a particular object-oriented method, the authors give instructions on how to put key object-oriented concepts to work in software construction. Many examples, including a full banking system, are developed throughout the book to illustrate the process of object-oriented software development from analysis, through design and into implementation.

Each chapter concludes with exercises. Although one can read this book while bypassing the exercises, they are recommended. Some exercises ask you to operationalize the concepts in this book. Others are quick 'thought questions', sometimes even silly sounding ones, that may lead you into territory that you have not explored.

Author(s) : Dennis de Champeaux, Douglas Lea, and Penelope Faure
Publication date : May 1993
ISBN : 0-201-56355-X
Pages : 532
Publisher : Addison-Wesley Pub Co

View/Download Object-Oriented System Development

Object-Oriented Software Composition

0 comments
Object-Oriented Software Composition adopts the viewpoint that object-oriented technology is essentially about composing flexible software applications from software components. Although object-oriented languages, tools and methods have come a long way since the birth of object-oriented programming, the technology is not yet mature. This book presents the results of a series of research projects related to object-oriented software composition that were carried out within the Object Systems Group at the University of Geneva, or by partners in collaborative research projects, during a period of about ten years. As such, this book is an attempt to synthesize and juxtapose ideas that were developed by a group of people working closely together over several years.

Although many different topics are treated, by presenting them together, the authors intend to show how certain ideas and principles are closely related to software composition, whether one considers programming language design, formal specification, tools and environments, or application development. Common threads running throughout the book include plug compatibility as a way of formalizing valid ways of composing components, active objects as being fundamental to the development of open systems, protocols as a necessary aspect of plug compatibility for active objects, higher-order functional composition as complementary to object composition, and evolution of objects and object frameworks as an essential aspect to capture in the software lifecycle.

This book should appeal to researchers and practitioners familiar with object-oriented technology, who are interested in research trends related to software composition. Although this book was not designed as a textbook, it would be suitable for an advanced seminar on object-oriented research. Individual chapters can be read independently. The order of presentation has been selected mainly to illustrate a progression of ideas from programming language design issues to environments and applications. Not only is the "Geneva view" of object-oriented development presented, but considerable effort has gone into placing the work in context, and several of the chapters contain extensive surveys of related work.

Author(s): Oscar Nierstrasz and Dennis Tsichritzis
Publication Date: 1995
Publisher: Prentice Hall

View/Download Object-Oriented Software Composition | Book's homepage | SCG Archive