The Guide to the Software Engineering Body of Knowledge

Sponsor Advertisement

My image
  • Author: P. Bourque, R. Dupuis, A. Abran, J. W. Moore, and L. L. Tripp
  • Format: PDF, online HTML
  • Price: free

The software engineering body of knowledge is an all-inclusive term that describes the sum of knowledge within the profession of software engineering. Since it is usually not possible to put the full body of knowledge of even an emerging discipline, such as software engineering, into a single document, there is a need for a Guide to the Software Engineering Body of Knowledge. This Guide will seek to identify and describe that subset of the body of knowledge that is generally accepted, even though software engineers must be knowledgeable not only in software engineering, but also, of course, in other related disciplines.
Chapters include:

  • Introduction to the Guide
  • Software Requirements
  • Software Design
  • Software Construction
  • Software Testing
  • Software Maintenance
  • Software Configuration Management
  • Software Engineering Management
  • Software Engineering Process
  • Software Engineering Tools and Methods
  • Software Quality
  • Related Disciplines of Software Engineering

HTML: https://www.computer.org/web/swebok/
PDF: http://www.computer.org/portal/web/store?product_id=RN0000001&category_id=ReadyNotes

Getting Real: The smarter, faster, easier way to build a successful web application

Sponsor Advertisement

My image
  • Author: 37signals
  • Format: online HTML
  • Price: free

Getting Real details the business, design, programming, and marketing principles of 37signals. The book is packed with keep-it-simple insights, contrarian points of view, and unconventional approaches to software design.

This is not a technical book or a design tutorial, it’s a book of ideas. Anyone working on a web app — including entrepreneurs, designers, programmers, executives, or marketers — will find value and inspiration in this book.

37signals used the Getting Real process to launch five successful web-based applications (Basecamp, Campfire, Backpack, Writeboard, Ta-da List), and Ruby on Rails, an open-source web application framework, in just two years with no outside funding, no debt, and only 7 people (distributed across 7 time zones).

Over 500,000 people around the world use these applications to get things done. Now you can find out how they did it and how you can do it too. It’s not as hard as you think if you Get Real.

Chapters include:

  • Introduction
  • The Starting Line
  • Stay Lean
  • Priorities
  • Feature Selection
  • Process
  • The Organization
  • Staffing
  • Interface Design
  • Code
  • Words
  • Pricing and Signup
  • Promotion
  • Support
  • Post-Launch
  • Conclusion

http://gettingreal.37signals.com/toc.php

Watch What I Do: Programming by Demonstration

Sponsor Advertisement

My image
  • Editor: Allen Cypher
  • Format: online HTML
  • Price: free

This book grew out of a workshop on Programming by Demonstration that was held at Apple Computer in March, 1992. The workshop was an opportunity for current researchers to discuss their work with the pioneers in the field. David Smith demonstrated a HyperCard simulation of his Pygmalion system, which was the first system for programming by demonstration and the inspiration for the work that has followed. Henry Lieberman ported his classic Tinker system to the Macintosh so that he could give a live demonstration at the workshop. This was followed by classic videos of the early systems, live demonstrations of the newer systems, and open discussion on topics in the field.

This book is not only intended for individuals who are actively working in the field of programming by demonstration. We have aimed to make this material accessible and interesting to a larger audience: students and researchers with an interest in end user programming, and individuals interested in user interface design and agent-based systems. It is not a book about machine learning or artificial intelligence. Rather, the focus is on ways to create the appropriate human-computer interaction so that end users can gain more control of their personal computers.

The motivation behind Programming by Demonstration is simple and compelling: if a user knows how to perform a task on the computer, that should be sufficient to create a program to perform the task. It should not be necessary to learn a programming language like C or BASIC. Instead, the user should be able to instruct the computer to “Watch what I do”, and the computer should create the program that corresponds to the user’s actions. This book investigates the various issues that arise in trying to make this idea practical. The first section of the book describes 18 computer implementations of Programming by Demonstration, and the second section discusses the problems and opportunities for Programming by Demonstration (PBD) in more general terms.

Chapters include:

I Systems

  • Pygmalion: An Executable Electronic Blackboard
  • Tinker: A Programming by Demonstration System for Beginning Programmers
  • A Predictive Calculator
  • Rehearsal World: Programming by Rehearsal
  • SmallStar: Programming by Demonstration in the Desktop Metaphor
  • Peridot: Creating User Interfaces by Demonstration
  • Metamouse: An Instructible Agent for Programming by Demonstration
  • TELS: Learning Text Editing Tasks from Examples
  • Eager: Programming Repetitive Tasks by Demonstration
  • Garnet: Uses of Demonstrational Techniques
  • The Turvy Experience: Simulating an Instructible Interface
  • Chimera: Example-Based Graphical Editing
  • The Geometer’s Sketchpad: Programming by Geometry
  • Tourmaline: Text Formatting by Demonstration
  • A History-Based Macro by Example System
  • Mondrian: A Teachable Graphical Editor
  • Triggers: Guiding Automation with Pixels to Achieve Data Access
  • The AIDE Project: An Application-Independent Demonstrational Environment

II Components

  • A History of Editable Graphical Histories
  • Graphical Representation and Feedback in a PBD System
  • PBD Invocation Techniques: A Review and Proposal
  • A System-Wide Macro Facility Based on Aggregate Events: A Proposal
  • Making Programming Accessible to Visual Problem Solvers
  • Using Voice Input to Disambiguate Intent

III Perspectives

  • Characterizing PBD Systems
  • Demonstrational Interfaces: A Step Beyond Direct Manipulation
  • Just-in-time Programming

http://www.acypher.com/wwid/

Philip and Alex’s Guide to Web Publishing

Sponsor Advertisement

My image
  • Author: Philip Greenspun
  • Format: online HTML
  • Price: free

This book is a catalog of the mistakes that I’ve made while building more than 100 Web sites in the last five years. I wrote it in the hopes that others won’t have to repeat those mistakes.

In a society that increasingly rewards specialists and narrowness, Web publishing is one of the few fields left where the generalist is valuable. To make a great site, you need to know a little bit about writing, photography, publishing, Unix system administration, relational database management systems (RDBMS), user interface design, and computer programming. I have thus assumed no specific technical background among my readers and have tried to make the text self-contained.

Chapters include:

  • Envisioning a site that won’t be featured in suck.com
  • So you want to join the world’s grubbiest club: Internet entrepreneurs
  • Scalable systems for on-line communities
  • Static site development
  • Learn to program HTML in 21 minutes
  • Adding images to your site
  • Publicizing your site
  • So you want to run your own server
  • User tracking
  • Sites that are really programs
  • Sites that are really databases
  • Database management systems
  • Interfacing a relational database to the Web
  • ecommerce
  • Case studies
  • Better living through chemistry
  • A future so bright you’ll need to wear sunglasses

http://philip.greenspun.com/panda/index.html

IBM Redbooks

Sponsor Advertisement

My image
  • Author: IBM
  • Format: PDF
  • Price: free

A searchable list of the most recently published IBM Redbooks.

IBM Redbooks are developed and published by the IBM International Technical Support Organization, ITSO. The ITSO develops and delivers skills, technical know-how, and materials to IBM technical professionals, Business Partners, clients, and the marketplace in general.

The ITSO works with IBM Divisions and Business Partners in the process of developing IBM Redbooks, Redpapers, Technotes, workshops, and other materials. The ITSO is part of the IBM Global Content Services organization within IBM Sales & Distribution.

The ITSO’s value-add information products address product, platform, and solution perspectives. They explore integration, implementation, and operation of realistic client scenarios that include PeopleSoft, Linux, Windows, SAP, Oracle, and others.

IBM Redbooks are the ITSO’s core product. They typically provide positioning and value guidance, installation and implementation experiences, typical solution scenarios, and step-by-step “how-to” guidelines. They often include sample code and other support materials that are also available as downloads.

http://www.redbooks.ibm.com/redbooks.nsf/redbooks/

Object-Oriented System Development

Sponsor Advertisement

My image
  • Author: Dennis de Champeaux, Douglas Lea, and Penelope Faure
  • Format: online HTML
  • Price: free

This book is intended to help the reader better understand the role of analysis and design in the object-oriented software development process. Experiments to use structured analysis and design as precursors to an object-oriented implementation have failed. The descriptions produced by the structured methods partition reality along the wrong dimensions. Classes are not recognized and inheritance as an abstraction mechanism is not exploited.

However, we are fortunate that a multitude of object-oriented analysis and design methods have emerged and are still under development. Core OO notions have found their home place in the analysis phase. Abstraction and specialization via inheritance, originally advertised as key ingredients of OO programming, have been abstracted into key ingredients of OO analysis (OOA). Analysis-level property inheritance maps smoothly on the behavior inheritance of the programming realm.

While the book is mostly self-contained, people report that it does not serve as an introductory OO text. It helps to have had some previous exposure to basic OO concepts.

Chapters Include:

Part 1: Analysis

  • Introduction to Analysis
  • Object Statics
  • Object Relationships
  • Object Dynamics
  • Object Interaction
  • Class Relationships
  • Instances
  • Ensembles
  • Constructing a System Model
  • Other Requirements
  • The Analysis Process
  • Domain Analysis
  • The Grady Experience

Part II: Design

  • From Analysis to Design
  • Description and Computation
  • Attributes in Design
  • Relationships in Design
  • Designing Transitions
  • Interaction Designs
  • Dispatching
  • Coordination
  • Clustering Objects
  • Designing Passive Objects
  • Performance Optimization
  • From Design to Implementation

http://g.oswego.edu/dl/oosd/

Subversion Version Control: Using the Subversion Version Control System in Development Projects

Sponsor Advertisement

My image
  • Author: William Nagel
  • Format: online PDF (print edition available at amazon.com)
  • Price: free (print edition $24.30)

In any software development project, many developers contribute changes over a period of time. Using a version control system to track and manage these changes is vital to the continued success of the project. This book introduces you to Subversion, a free, open-source version control system, which is both more powerful and much less complex than its predecessor CVS.

In this practical, hands-on guide, you will learn how to use Subversion and how to effectively merge a version control system within your development process. As a seasoned Subversion user, William Nagel draws on lessons learned through trial and error, providing useful tips for accomplishing tasks that arise in day-to-day software development.

Nagel clearly explains how to expand on the built-in abilities of Subversion, making the system work better for you. He organizes Subversion commands by activity to allow for quick task reference. Using example scripts and configurations, he also includes development approaches that you can customize to fit your own environment.

Chapters include:

  • An Introduction to Version Control
  • An Introduction to Subversion
  • Installing Subversion
  • Basic Subversion Usage
  • Working with a Working Copy
  • Using Properties
  • Configuring the Client
  • Integrating with Other Tools
  • Organizing Your Repository
  • Administrating the Repository
  • The Joy of Automation
  • Development Process Policies
  • Integrating SVN with the Development Process
  • Case Studies in Development Processes
  • Command Reference

http://www.phptr.com/content/images/0131855182/downloads/Nagel_book.pdf

User Interface Design for Programmers

Sponsor Advertisement

My image
  • Author: Joel Spolsky
  • Format: online HTML, (print edition available for purchase at amazon.com)
  • Price: free (print edition $19.77)

User interface design is straightforward, easy, and most of all fun. There is no reason to be afraid. It is all about making people happy by providing them with what they expect. The rules are simple, and all you have to do is follow them. This book will explain what those rules are, so you can design user interfaces that work and behave as expected and cause less frustration to the user.

Chapters include:

  • Controlling Your Environment Makes You Happy
  • Figuring Out What They Expected
  • Choices
  • Affordances and Metaphors
  • Consistency and Other Hobgoblins
  • Designing for People Who Have Better Things To Do With Their Lives
  • Designing for People Who Have Better Things To Do With Their Lives, Part Two
  • Designing for People Who Have Better Things To Do With Their Lives, Part Three
  • The Process of Designing a Product

Print edition contains 7 new chapters not found in the online edition.
http://www.joelonsoftware.com/uibook/fog0000000249.html

The Programmers’ Stone

Sponsor Advertisement

  • Author: Alan & Colston
  • Format: online HTML (formatted for easier printing)
  • Price: free

This book is an eight day beginner level course, non language specific, delivered two days a week for four weeks. The goal is to put the fun into programming while you are learning and to help the reader either become a better programmer, understand what less experienced programmers are struggling with, or communicate more effectively with other experienced programmers.

Chapters include:

  • Thinking about Thinking
  • Thinking about Programming
  • The Programmer at Work
  • Customs and Practices
  • Design Principles
  • Prudence and Safety
  • Some Weird Stuff…

Read

Mirror

Structure and Interpretation of Computer Programs

Sponsor Advertisement

  • Author: Harold Abelson, Gerald Jay Sussman, Julie Sussman
  • Format: online HTML
  • Price: free

An excellent computer science text used in introductory courses at MIT. So called because of the wizard on the jacket. One of the bibles of the LISP/Scheme world. Also, less commonly, known as the Purple Book.
from The New Hacker’s Dictionary, 2nd edition
(MIT Press, 1993)

On the site you will find the full text of the book, sample programming assignments, source code, and free implementations of the MIT Scheme programming environment.

Chapters include:

  • Building Abstractions with Procedures
  • Building Abstractions with Data
  • Modularity, Objects, and State
  • Metalinguistic Abstraction
  • Computing with Register Machines
  • References
  • List of Exercises

Read

Mirror

Buy Print Edition (paid link)

As an Amazon Associate I earn from qualifying purchases made through Amazon links appearing on this website.