Free Computer and I.T. Books

January 30, 2011

Computer and Programming eBooks

Here many downloadable computer and programming ebooks,, in the areas listed and linked below. These will help you learn more about these programming technologies and topics. Most of them are in pdf format.

Computer eBook Categories:

 - Ada
 - C and C++ programming
 - Flash -
 - General .NET
 - Java and JSP
 - JavaScript
 - Linux
 - Lisp
 - PHP and MySQL
 - Python
 - Perl
 - Ruby
 - SQL
 - System Administration
 - UML
 - Unix
 - Visual Basic
 - Wed Design
 - XML
 - iPod

Tags for this post>> | | | | | | | | | | | |

Filed under: Free Computer and I.T. Books — computer_teacher @ 10:53 pm

April 27, 2010

Phoenix eBook Library

Update: This site no longer hosts any of these ebooks.

Phoenix eBook Library hosts many, many freely downloadable computer, I.T., and programming ebooks in many areas, as linked here below. These computer ebooks are mostly in pdf format.

eBook Categories for Phoenix eBook Library:

 - Artificial Intelligence
 - Audio Books
 - C and C++ programming
 - Computer Science
 - Cryptography
 - Database and SQL
 - Discrete Mathematics
 - Ebooks.For.Dummies.Collection
 - Encryption
 - Java programming
 - Linux
 - Load Balancing
 - Misc
 - Mobile Wireless Development
 - Networking
 - PHP
 - Parallel Programming
 - Patterns
 - Project Management
 - Python programming
 - Requirement Engineering
 - SNMP Networking
 - Storybooks
 - UML
 - Visual Studio .NET
 - XML & Web Services
 - jQuery

Tags for this post>> | | | | | | | |

Filed under: Free Computer and I.T. Books — computer_teacher @ 9:10 pm

January 21, 2010

UML, Requirements, Modeling, and Design References and Tutorials

Here are some very good tutorials, references, and documents on UML, Requirements, Modeling, and Design, located at These are good references and support documents for both novice and expert application developers and programmers. These learning and support materials discuss various topics such as metrics, business modeling, data modeling, UML, use cases, traceability studies, entity relationship modeling, and statecharts. These are in pdf format. Here is a google search for many of these documents, this is an easy way to find them.

 - Designing a Home Alarm using the UML And implementing it using C++
 - Using Use Cases for Requirements Capture
 - UML Example Profiles
 - A Pattern Language for Building Stable Analysis Patterns
 - Metrics Definitions
 - Business Modeling and UML Reality vs. Hype Business Modeling and
 - Mapping Object to Data Models with the UML
 - Model-Driven Testing with UML 2.0
 - Microsoft PowerPoint - OO Design Principles & Metrics - exercises
 - Advanced Object Modeling
 - Microsoft PowerPoint - OO Design Principles & Metrics
 - UML Data Modeling Profile
 - The UML and Data Modeling
 - UML Tutorial: Collaboration Diagrams
 - UML - A Universal Modeling Language?
 - Microsoft PowerPoint - UML Quiz II
 - UML for Managers Jason Gorman Chapter 4
 - Dealing with Properties
 - (Microsoft PowerPoint - UML Puzzle \226 Part I)
 - A Pattern Language for Building Stable Analysis Patterns
 - The meaning of requirements
 - View complete book as PDf file - Pattern Depot
 - Security Engineering with Patterns
 - IBM Rational Rapid Developer Scalability and Performance Benchmark
 - Principles: Ground Rules for the Workshop
 - A Use Case Template
 - How to Make Statecharts workfor you.
 - Design Patterns of Communicating Extended Finite State Machines in SDL
 - IBM Rational Rapid Developer Technical Overview
 - UML Java Programmers
 - Modeling Web Application Architectures with UML
 - The Estimation of Effort Based on Use Cases
 - Applying UML in The Unified Process
 - Functional Requirements and Use Cases
 - UML meets XP
 - Using UML for Modeling Complex Real-Time Systems
 - Conceptual, Logical, and Physical design of Persistent Data Using UML
 - IBM Rational Rose XDE Modeler
 - Using IBM Rational XDE and IBM Rational ClearCase Together
 - Software-platform-independent, Precise Action Specifications for
 - UML Use Case Diagrams
 - Use Cases in Object-Oriented Software Development
 - Literate Modelling — Capturing Business Knowledge with the UML
 - Using Rational Rose UML CASE Tool
 - Using Rational Rose UML CASE Tool
 - UML for Real-Time Overview Abstract Introduction Modeling Perspectives
 - Software Architecture and the UML
 - Use Case Management with Rational Rose and Rational RequisitePro
 - Rational Rose RealTime
 - Entity Relationship Modeling with UML
 - Managing Use Cases During Goal-Driven Requirements Engineering
 - Enterprise Application Development Using UML, Java Technology and XML
 - Formal Verification of UML Statecharts with Real-Time Extensions
 - User Interface Prototyping based on UML Scenarios and High-level
 - Using UML for Modeling a Distributed Java
 - ApplyingRequirements Management with Use Cases
 - Competitive Analysis, Modeling, Design
 - Modelling Web Navigation by Statechart
 - Comparing Use Case Writing Guidelines
 - Defining Electronic Data Interchange Transactions with UML
 - Modeling Complex Behavior Simply or How Much is Too Much? Modeling
 - UML for Real-Time Overview Abstract Introduction Modeling Perspectives
 - Constructing Useful Use Cases
 - The Rational Edge -- December 2002 -- An Integrated Approach to
 - The Rational Edge -- November 2002 -- Accelerating J2EE
 - User Interface Design: Tips and Techniques
 - Beyond Use Cases
 - Finite State Machines 2
 - Traceability Studies for Managing Requirements with Use Cases

Tags for this post>> |

Filed under: Best New Free Computer IT Training Tutorial Resources — computer_teacher @ 9:33 pm

March 28, 2009

106 Computer and Programming eBooks

Here is a site repository of 106 Computer and Programming eBooks covering many technical areas and programming technologies, as listed below.

eBook Topics:

 - C++ programming
 - Networking
 - Java, J2EE, EJB
 - JBoss
 - Perl
 - PHP
 - Java Server Pages (JSP)
 - Design Patterns
 - Database Design
 - XML
 - SQL
 - PostgreSQL
 - MySQL
 - PHP
 - Linux
 - .Net (dotNet)
 - C# (C Sharp)
 - VB .NET
 - VBA
 - Active Directory
 - Windows XP
 - UML
 - Use Cases
 - Project Management
 - Cryptography
 - Data Mining
 - Borland Delphi
 - Artificial Intelligence
 - Assembly

Tags for this post>> | | | | | | | | |

Filed under: Free Computer and I.T. Books — computer_teacher @ 9:20 pm

January 17, 2007

Best UML Tutorials

Here are some of the best UML Tutorials on the web today. UML is short for Unified Modeling Language and is used to model business processes and work flows so they can be designed and developed into software applications.

Best UML Tutorials

Introduction to OMG's Unified Modeling Language (UML)

UML Tutorial Slide Presentations:

Practical UML: A Hands-On Introduction for Developers

This tutorial provides a quick introduction to the Unified Modeling Language and presents some of its important features. At the center of the UML are its nine kinds of modeling diagrams, which are described here. 

UML Tutorial
This tutorial provides a technical overview of the UML, which defines the notation and semantics for the following domains. Part 2 of this tutorial expands on how you use the UML to define and build actual systems.

UML 2.0 Tutorial
Diagrams supported by Enterprise Architect.UML 2 semantics are explained in detail in this tutorial. UML 2 defines 13 basic diagram types, divided into two general sets.

1. Structural Modeling Diagrams

2. Behavioral Modeling Diagrams

UML Modeling Tutorials from Sun
These UML tutorials apply to Sun Java Studio Enterprise, which is built on the open-source NetBeans IDE.

Technorati Tags: , , ,

Tags for this post>>

Filed under: Best New Free Computer IT Training Tutorial Resources — computer_teacher @ 10:49 pm

September 11, 2006

2 Excellent UML Tutorials

Here are 2 excellent and well written UML Tutorials, one hosted by (UML Tutorial), and the other by (Practical UML: A Hands-On Introduction for Developers). These will give anyone unfamiliar with the UML a thorough understanding and kick start to using this modeling language.

UML Tutorial

The Unified Modeling Language (UML) has quickly become the de-facto standard for building Object-Oriented software. This tutorial provides a technical overview of the 13 UML. diagrams supported by Enterprise Architect.UML 2 semantics are explained in detail in the new UML 2.0 tutorial.

But first... What is UML?

The OMG specification states:

"The Unified Modeling Language (UML) is a graphical language for visualizing,
specifying, constructing, and documenting the artifacts of a software-intensive system.
The UML offers a standard way to write a system's blueprints, including conceptual
things such as business processes and system functions as well as concrete things such
as programming language statements, database schemas, and reusable software

The important point to note here is that UML is a 'language' for specifying and not a method or procedure. The UML is used to define a software system; to detail the artifacts in the system, to document and construct - it is the language that the blueprint is written in. The UML may be used in a variety of ways to support a software development methodology (such as the Rational Unified Process) - but in itself it does not specify that methodology or process.

UML defines the notation and semantics for the following domains:

- The User Interaction or Use Case Model - describes the boundary and interaction between the system and users. Corresponds in some respects to a requirements model.
- The Interaction or Communication Model - describes how objects in the system will interact with each other to get work done.
- The State or Dynamic Model - State charts describe the states or conditions that classes assume over time. Activity graphs describe the workflow's the system will implement.
- The Logical or Class Model - describes the classes and objects that will make up the system.
- The Physical Component Model - describes the software (and sometimes hardware components) that make up the system.
- The Physical Deployment Model - describes the physical architecture and the deployment of components on that hardware architecture.

The UML also defines extension mechanisms for extending the UML to meet specialized needs (for example Business Process Modeling extensions).

See also Business Process Modeling (pdf) .

If you have any suggestions or comments on the material here, please forward your thoughts to

UML Tutorial - Continued - Use the UML to Define and Build Systems

We have established in Part 1 that the UML is a language for specifying the artifacts and interactions of a software system. We have also seen that it deals with 6 major domains - from Use Case models, through dynamic and logical models to the final physical deployment model - and that extension mechanisms have been included to allow for specialised additions to the model notation.

So... How do you use the UML?

The UML is typically used as a part of a software development process, with the support of a suitable CASE tool, to define the requirements, the interactions and the elements of the proposed software system. The exact nature of the process depends on the development methodology used. An example process might look something like the following:

1. Capture a Business Process Model. This will be used to define the high level business activities and processes that occur in an organization and to provide a foundation for the Use Case model. The Business Process Model will typically capture more than a software system will implement (ie. it includes manual and other processes).
2. Map a Use Case Model to the Business Process Model to define exactly what functionality you are intending to provide from the business user perspective. As each Use Case is added, create a traceable link from the appropriate business processes to the Use Case (ie. a realisation connection). This mapping clearly states what functionality the new system will provide to meet the business requirements outlined in the process model. It also ensures no Use Cases exist without a purpose.
3. Refine the Use Cases - include requirements, constraints, complexity rating, notes and scenarios. This information unambiguously describes what the Use Case does, how it is executed and the constraints on its execution. Make sure the Use Case still meets the business process requirements. Include the definition of system tests for each use case to define the aceptance criteria for each use case. Also include some user acceptance test scripts to define how the user will test this functionality and what the acceptance criteria are.
4. From the inputs and outputs of the Business Process Model and the details of the use cases, begin to construct a domain model (high level business objects), sequence diagrams, collaboration diagrams and user interface models. These describe the 'things' in the new system, the way those things interact and the interface a user will use to execute use case scenarios.
5. From the domain model, the user interface model and the scenario diagrams create the Class Model. This is a precise specification of the objects in the system, their data or attributes and their behaviour or operations. Domain objects may be abstracted into class hierarchies using inheritance. Scenario diagram messages will typically map to class operations. If an existing framework or design pattern is to be used, it may be possible to import existing model elements for use in the new system. For each class define unit tests and integration tests to thoroughly test i) that the class functions as specified internally and that ii) the class interacts with other related classes and components as expected.
6. As the Class Model develops it may be broken into discrete packages and components. A component represents a deployable chunk of software that collects the behaviour and data of one or more classes and exposes a strict interface to other consumers of its services. So from the Class Model a Component Model is built to define the logical packaging of classes. For each component define integration tests to confirm that the component's interface meets the specifcation given it in relation to other software elements.
7. Concurrent with the work you have already done, additional requirements should have been captured and documented. For example - Non Functional requirements, Performance requirements, Security requirements, responsibilities, release plans & etc. Collect these within the model and keep up to date as the model matures.
8. The Deployment model defines the physical architecture of the system. This work can be begun early to capture the physical deployment characteristics - what hardware, operating systems, network capabilities, interfaces and support software will make up the new system, where it will be deployed and what parameters apply to disaster recovery, reliability, back-ups and support. As the model develops the physical architecture will be updated to reflect the actual system being proposed.
9. Build the system: Take discrete pieces of the model and assign to one or more developers. In a Use Case driven build this will mean assigning a Use Case to the development team, having them build the screens, business objects, database tables, and related components necessary to execute that Use Case. As each Use Case is built it should be accompanied by completed unit, integration and system tests. A Component driven build may see discrete software components assigned to development teams for construction.
10. Track defects that emerge in the testing phases against the related model elements - eg. System test defects against Use Cases, Unit Test defects against classes & etc. Track any changes against the related model elements to manage 'scope creep'.
11. Update and refine the model as work proceeds - always assessing the impact of changes and model refinements on later work. Use an iterative approach to work through the design in discrete chunks, always assessing the current build, the forward requirements and any discoveries that come to light during development.
12. Deliver the complete and tested software into a test then production environment. If a phased delivery is being undertaken, then this migration of built sofware from test to production may occur several times over the life of the project.

Note that the above process is necessarily brief in description, leaves much unsaid and may not be how you work or follow the process you have adopted. It is given as an example of how the UML may be used to support a software development project.

Practical UML: A Hands-On Introduction for Developers

by Randy Miller
Abstract: This tutorial provides a quick introduction to the Unified Modeling Language™

The heart of object-oriented problem solving is the construction of a model. The model abstracts the essential details of the underlying problem from its usually complicated real world. Several modeling tools are wrapped under the heading of the UML™, which stands for Unified Modeling Language™. The purpose of this course is to present important highlights of the UML.

At the center of the UML are its nine kinds of modeling diagrams, which we describe here.

Some of the sections of this course contain links to pages with more detailed information. And every section has short questions. Use them to test your understanding of the section topic.

Why is UML important?

Let's look at this question from the point of view of the construction trade. Architects design buildings. Builders use the designs to create buildings. The more complicated the building, the more critical the communication between architect and builder. Blueprints are the standard graphical language that both architects and builders must learn as part of their trade.

Writing software is not unlike constructing a building. The more complicated the underlying system, the more critical the communication among everyone involved in creating and deploying the software. In the past decade, the UML has emerged as the software blueprint language for analysts, designers, and programmers alike. It is now part of the software trade. The UML gives everyone from business analyst to designer to programmer a common vocabulary to talk about software design.

The UML is applicable to object-oriented problem solving. Anyone interested in learning UML must be familiar with the underlying tenet of object-oriented problem solving -- it all begins with the construction of a model. A model is an abstraction of the underlying problem. The domain is the actual world from which the problem comes.

Models consist of objects that interact by sending each other messages. Think of an object as "alive." Objects have things they know (attributes) and things they can do (behaviors or operations). The values of an object's attributes determine its state.

Classes are the "blueprints" for objects. A class wraps attributes (data) and behaviors (methods or functions) into a single distinct entity. Objects are instances of classes.

Technorati Tags: ,

Tags for this post>>

Filed under: Best New Free Computer IT Training Tutorial Resources — computer_teacher @ 1:10 pm

September 16, 2005

Unified Modeling Language (UML) Tutorial Course

Here is an online tutorial course that teaches you how to use the Unified Modeling Language (UML). The UML is used to assist analysts, designers, and developers build better software applications. It uses diagrams, analysis techniques, and use cases to help the designers see clearly how the program to be created will act and function.

Unified Modeling Language (UML) Tutorial in 7 days:

Day 1: Introducing the UML:

Modeling of systems, old way vs. new way
RAD(Rapid Application Development)
UML Components

Day 2: Class and Use Case Diagrams:

Class Diagrams
-- Visualising a Class
-- Associations
-- Inheritance & Generalization
-- Aggregations
-- Interfaces & Realizations
-- Visibility
-- Class diagram - Example

Use Case Diagrams
-- Introducing a Use Case Model
-- Relationships Among Use Cases
-- Use Case Diagram - Example

Day 3: State, Sequence, and Collaboration Diagrams:

State Diagrams
-- State Details and Transitions
-- State Diagram - Example

Sequence Diagrams
-- Ways of Creating Sequences
-- Sequence Diagram - Example

Collaboration Diagrams
-- Writing Collaboration Diagrams
-- Collaboration Diagram - Example

Day 4: Activity. Component, and Deployment Diagrams:

Activity Diagrams
-- Building an Activity Diagram
-- Activity Diagram - Example

More About Interfaces and Components
-- Component Diagrams
-- Compoment Diagram - Example

Deployment Diagrams
-- Deployment Diagram - Example

UML Diagram Set of Symbols

Day 5: Business Processes and Domain Analysis:

Discovering Business Processes 1
Discovering Business Processes 2

Domain Analysis
-- Forming Associations
-- Filling Out the Classes
-- Developing the Vision

JAD Session

Day 6: Analysis , Use Cases, GUI, Integration with other Systems:

Analysis of the System

Developing the Use Cases
-- The Use Case Analysis 1 and 2
-- Refine the Class Diagram

Interactions in the System 1 and 2
Analyze Integration with Cooperating Systems

Designing Look (GUI)

Tags for this post>>

Filed under: Best New Free Computer IT Training Tutorial Resources — computer_teacher @ 5:38 pm

August 16, 2005

Free Technical Tutorials and Quick Reference Cards

Digilife hosts some good training, learning and tutorial content on their site, among which are Books, Papers & Tutorials, and Quick Reference Cards. The following is a linked list of all the papers, tutorials, and quick references they provide:

Papers & Tutorials:

Build your own Java Library

Building a Java Applet

A Coding Style Guide for Java

Building Java HTTP Servlets

Developing XML Solutions with JSP Technology 

Enterprise JavaBeans Fundamentals

Functional Requirements and Use Cases

Fundamentals of the JavaMail API

Introducing the Java Message Service

Introduction to Java Distributed Objects - Using RMI and CORBA

Introduction to Java IO

Introduction to XML Messaging

J2ME Step by step

Java Code Conventions

Java Collections Framework

Java Debugging

Java Sockets

The C++ IOStreams Library

The Function Pointer Tutorials

The Standard Template Library Tutorial

Understanding DOM

Understanding SAX

Understanding the Java ClassLoader

Using JDBC to extract data into XML

Validating XML

XML messaging with SOAP

Quick Reference Cards:

Ada Reference Card

Ada Syntax Card

AMSTeX Reference Card

Apache Quick Reference Card

Bash Quick Reference

C Reference Card (ANSI)

Cascading Style Sheets 1.0

CVS Quick Reference Card

CVS Quick Reference Card - Large

Delphi Technical Reference Card 7.20

DOC ++ Reference Card

EJB 2.0 Matrix

Exception Handling in EJB 2.0

Extensible Stylesheet Language (XSL) 1.0

GNU Calc Reference Card

Java Programming Guide - Quick Reference

Java Quick Reference

JSP Quick Reference Card

JSP Syntax

JUnit Quick Reference

Linux Admin Quick Reference

Linux Security Quick Reference Guide

Linux System Call Quick Reference

Microsoft Foundation Classes (MFC) Quick Reference

mod_perl Quick Reference Card


Oracle Server 8i Quick Reference Card

Oracle Server Architecture

Perl Win32 Quick Reference

PHP Reference Card

SAX 2.0 for Java (Core)

SAX 2.0 for Java (Extensions and Helpers)

STL Quick Reference 1.26

TeX Reference Card

The One Page Linux Manual

UML Quick Reference Card

UML Reference Card

Unix commands reference Card

Vi Quick Reference

Vi Reference Card

Vi Reference Card (HP)

VIM Quick Reference Card

VisiBone Web Designer's HTML Card

XEmacs Reference Card

XML Path Language 1.0

XML - Data Types

XML - Data Structures

XML Syntax Quick Reference

XSL Transformations (XSLT) 1.0

XSLT and XPath Quick Reference

Tags for this post>>

Filed under: Best New Free Computer IT Training Tutorial Resources — computer_teacher @ 2:45 pm

June 6, 2005

3 Free Software Development Training and Coaching Sites

Here are 3 excellent free software development training and coaching sites.

Object Mentor Articles:

Better Software - By Lecture, demonstration, and by example. This site provides you with experts to show you how to succeed.


UML Tutorials:
This site is no longer online. You can view it at here:
A selected list of UML tutorials that are available online, by UML Forum contributing editors for their completeness, accuracy and quality.


AgileAlliance Articles

Here you can access many articles from around the web that detail how agile programming is accomplished. This is similar to extreme programming.

Tags for this post>> |

Filed under: Best New Free Computer IT Training Tutorial Resources — computer_teacher @ 9:51 pm

Powered by WordPress