HOME COMPUTER ARCHITECTURE NETWORKING COMPUTER GRAPHICS SOFTWARE DATA MANAGEMENT ARTIFICIAL INTELLIGENCE HUMAN COMPUTER INTERACTION CONTACT US REVIEW COPY SHOP MK

TEXTBOOKS for
Software Engineering Courses


Semantic Web for the Working Ontologist Effective Modeling in RDFS and OWL

Semantic Web for the Working Ontologist, 2nd Edition
Effective Modeling in RDFS and OWL

Dean Allemang
James Hendler

ISBN: 9780123859655
Copyright 2011

Semantic Web models and technologies provide information in machine-readable languages that enable computers to access the Web more intelligently and perform tasks automatically without the direction of users. These technologies are relatively recent and advancing rapidly, creating a set of unique challenges for those developing applications. Semantic Web for the Working Ontologist is the essential, comprehensive resource on semantic modeling, for practitioners in health care, artificial intelligence, finance, engineering, military intelligence, enterprise architecture, and more. Focused on developing useful and reusable models, this market-leading book explains how to build semantic content (ontologies) and how to build applications that access that content.... [more]

API Design for C++

API Design for C++
Martin Reddy
ISBN: 9780123850034
Copyright 2011

Martin Reddy draws from his experience on large scale, collaborative software projects to present patterns and practices that provide real value to individual developers as well as organizations. API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. --Eric Gregory, Software Architect, Pixar Animation Studios

The design of application programming interfaces can affect the behavior, capabilities, stability, and ease of use of end-user applications. With this book, you will learn how to design a good API for large-scale long-term projects. With extensive C++ code to illustrate each concept, API Design for C++ covers all of the strategies of world-class API development. Martin Reddy draws on over fifteen years of experience in the software industry to offer in-depth discussions of interface design, documentation, testing, and the advanced topics of scripting and plug-in extensibility. Throughout, he focuses on various API styles and patterns that will allow you to produce elegant and durable libraries... [more]

Engineering a Compiler, 2nd Edition

Engineering a Compiler, 2nd Edition
Keith Cooper
Linda Torczon

ISBN: 9780120884780
Copyright 2011

This entirely revised second edition of Engineering a Compiler is full of technical updates and new material covering the latest developments in compiler technology. In this comprehensive text, students will learn important techniques for constructing a modern compiler. Leading educators and researchers Keith Cooper and Linda Torczon combine basic principles with pragmatic insights from their experience building state-of-the-art compilers. They will help your students fully understand important techniques such as compilation of imperative and object-oriented languages, construction of static single assignment forms, instruction scheduling, and graph-coloring register allocation...[more]

An Introduction to Parallel Programming

An Introduction to Parallel Programming
Peter Pacheco
ISBN: 9780123742605
Copyright 2011

Author Peter Pacheco uses a tutorial approach to show students how to develop effective parallel programs with MPI, Pthreads, and OpenMP. The first undergraduate text to directly address compiling and running parallel programs on the new multi-core and cluster architecture, An Introduction to Parallel Programming explains how to design, debug, and evaluate the performance of distributed and shared-memory programs. User-friendly exercises teach students how to compile, run and modify example programs.... [more]

System Assurance Beyond Detecting Vulnerabilities

System Assurance
Beyond Detecting Vulnerabilities

Nikolai Mansourov
Djenana Campara

ISBN: 9780123814142
Copyright 2010

In this day of frequent acquisitions and perpetual application integrations, systems are often an amalgamation of multiple programming languages and runtime platforms using new and legacy content. Systems of such mixed origins are increasingly vulnerable to defects and subversion.

System Assurance: Beyond Detecting Vulnerabilities addresses these critical issues. The book teaches students how to use the Object Management Group's (OMG) expertise and unique standards to obtain accurate knowledge about existing software and compose objective metrics for system assurance. OMG's Assurance Ecosystem provides a common framework for discovering, integrating, analyzing, and distributing facts about existing enterprise software. Its foundation is the standard protocol for exchanging system facts, defined as the OMG Knowledge Discovery Metamodel (KDM). In addition, the Semantics of Business Vocabularies and Business Rules (SBVR) defines a standard protocol for exchanging security policy rules and assurance patterns. Using these standards together, students will learn how to leverage the knowledge of the cybersecurity community and bring automation to protect systems... [more]

A Practical Guide to SysML (Revised Printing) The Systems Modeling Language

A Practical Guide to SysML (Revised Printing)
The Systems Modeling Language

Sanford Friedenthal
Alan Moore
Rick Steiner

ISBN: 9780123786074
Copyright 2009

A Practical Guide to SysML, provides a comprehensive and practical guide for modeling systems with SysML, including a full description of the language along with a quick reference guide, and examples to help readers understand how SysML can be used in practice. It offers guidance on how an organization or project can transition to model based systems engineering using SysML, with considerations for processes, methods, tools, and training.... [more]

Programming Language Pragmatics, 2nd Edition

Programming Language Pragmatics, 3rd Edition
Michael Scott
ISBN: 9780123745149
Copyright 2009

Programming Language Pragmatics is the most comprehensive programming language textbook available today. Taking the perspective that language design and language implementation are tightly interconnected, and that neither can be fully understood in isolation, this critically acclaimed and bestselling book has been thoroughly updated to cover the most recent developments in programming language design. With a new chapter on run-time program management and expanded coverage of concurrency, this new edition provides both students and professionals alike with a solid understanding of the most important issues driving software development today... [more]

Why Programs Fail: A Guide to Systematic Debugging

Why Programs Fail, 2nd Edition
A Guide to Systematic Debugging

Andreas Zeller
ISBN: 9780123745156
Copyright 2009

Why Programs Fail, winner of the Jolt Productivity Award, has been freshly updated to bring readers up-to-speed on all the new methodologies that will help save them, their companies, and consumers a lot of headaches. Find out about bugs in computer programs, how to find them, how to reproduce them, and how to fix them in such a way that they do not occur anymore. A new edition of the first comprehensive book on systematic debugging, covers a wide range of tools and techniques ranging from hands-on observation to fully automated diagnoses, and includes instructions for building automated debuggers. This discussion is built upon a solid theory of how failures occur and how to fix them, rather than relying on seat-of-the-pants techniques, which are of little help with large software systems or to those learning to program... [more]

Systems Engineering with SysML/UML

Systems Engineering with SysML/UML
Modeling, Analysis, Design

Tim Weilkiens
ISBN: 9780123742742
Copyright 2008

Systems Engineering with SysML/UML provides an introduction to and instruction on how implement SysML. Tim Weilkiens is a member of the SysML working group and has written sections of the specification. This book takes a special focus on comparing SysML and UML as well as explaining how both can work together... [more]

Pixels, Patterns, and Processing

Learning Processing
A Beginner's Guide to Programming Images, Animation, and Interaction

Daniel Shiffman
ISBN: 9780123736024
Copyright 2008

This book introduces programming concepts in the context of computer graphics and visual art, in a more accessible format than traditional programming textbooks. It uses the open source programming language Processing as the basis for all discussion and examples, focusing on the fundamentals such as variables, conditionals, loops, arrays, and objects in a highly visual manner. The book will also introduce advanced topics such as data mining, networking, image processing, computer vision, and 3D graphics. It will also introduce using Processing for "tangible media"; communicating with microcontrollers to interact with the physical environment. Processing is based on the programming language Java, and so is an excellent introduction to Java and object-oriented programming, and will help prepare the student for study of more advanced object-oriented languages such as Java or C++... [more]

The Art of Multiprocessor Programming

The Art of Multiprocessor Programming
Nir Shavit
Maurice Herlihy

ISBN: 9780123705914
Copyright 2008

Multiprocessor programming, also known as Multicore programming, requires new principles, algorithms, and programming tools. Multicore programming has been practiced on single processor machines for some time. When multicore processing is performed on the new crop of multiprocessor machines though, it becomes much more complex. The key difference is the need to understand how separate processors coordinate with one another, which is called multiprocessor synchronization. The Art of Multiprocessor Programming is the first comprehensive presentation of the principles and tools available for programming multiprocessor machines. It will be of immediate use to programmers working with the new architectures. For example, the next generation of computer game consoles will all be multiprocessor-based, and the game industry is currently struggling to understand how to address the programming challenges presented by these machines... [more]

Groovy Programming: An Introduction for Java Developers

Groovy Programming
An Introduction for Java Developers

Kenneth Barclay
John Savage

ISBN: 9780123725073
Copyright 2007

Groovy Programming is an introduction to the Java-based scripting language Groovy. Groovy has much in common with popular scripting languages such as Perl, Python, and Ruby, but is written in a Java-like syntax. And, unlike these other languages, Groovy is sanctioned by the Java community for use on the Java platform. Since it is based on Java, applications written in Groovy can make full use of the Java Application Programmer Interfaces (APIs). This means Groovy can integrate seamlessly with applications written in Java, while avoiding the complexities of the full Java language. This bare-bones structure also means Groovy can be used as an introduction to Java and to programming in general. Its simpler constructions and modern origins make it ideal as a first language and for introducing principles such as object-oriented programming... [more]

Practical Model-Based Testing: A Tools Approach

Practical Model-Based Testing
A Tools Approach

Mark Utting
Bruno Legeard

ISBN: 9780123725011
Copyright 2007

Practical Model-Based Testing gives a practical introduction to model-based testing. This book shows how to write models for testing purposes and how to use model-based testing tools to generate test suites. The book focuses on the mainstream practice of functional black-box testing and covers different styles of models, especially transition-based models (UML state machines) and pre/post models (UML/OCL specifications and B notation). The steps of applying model-based testing are demonstrated on examples and case studies from a variety of software domains, including embedded software and information systems... [more]

C# Annotated Standard

Annotated C# Standard
Jon Jagger
Peter Sestoft
Nigel Perry

ISBN: 9780123725110
Copyright 2007

Standards, while being definitive, do not usually serve as the best reference to the use of a programming language. Books on languages usually are able to explain usage better, but lack the definitive precision of a standard. Annotated C# Standard combines the two; it is the standard with added explanatory material. This book includes the full text of the 2006 ECMA 335 Standard combined with the notes of acclaimed experts who contributed to the writing of the standard itself. Annotated C# Standard provides programmers and students with necessary information that will improve and speed their C# programs... [more]

Distributed Systems Architecture: A Middleware Approach

Distributed Systems Architecture
A Middleware Approach

Arno Puder
Kay Römer
Frank Pilhofer

ISBN: 9781558606487
Copyright 2006

Middleware is the bridge that connects distributed applications across different physical locations, with different hardware platforms, network technologies, operating systems, and programming languages. Distributed Systems Architecture describes middleware from two different perspectives: from the viewpoint of the systems programmer and from the viewpoint of the applications programmer. It focuses on the use of open source solutions for creating middleware and the tools for developing distributed applications. The design principles presented are universal and apply to all middleware platforms, including CORBA and Web Services. The authors have created an open-source implementation of CORBA, called MICO, which is freely available on the web. MICO is one of the most successful of all open source projects and is widely used by demanding companies and institutions, and has also been adopted by many in the Linux community... [more]

Software Design Methodology: From Principles to Architectural Styles

Software Design Methodology
From Principles to Architectural Styles

Hong Zhu
ISBN: 9780750660754
Copyright 2005

Exploring the theory of software architecture and concentrating on general design principles rather then specific methods, Software Design Methodology helps students to analyse and evaluate software architectural designs, whilst broadening their knowledge of large-scale software systems. Numerous case studies and examples demonstrate how important factors, such as globalisation, modelling, coding, testing and maintenance, need to be addressed when creating a modern information system.

Written with an emphasis on high level design for software engineering and computer science undergraduates and graduates on Msc conversion courses, the book also includes advanced topics suitable for postgraduate courses. Each chapter contains expected learning outcomes, a summary of key points and exercise questions to test knowledge and skills... [more]

Higher-Order Perl: Transforming Programs with Programs

Higher-Order Perl
Transforming Programs with Programs

Mark Jason Dominus
ISBN: 9781558607019
Copyright 2005

Most Perl programmers were originally trained as C and Unix programmers, so the Perl programs that they write bear a strong resemblance to C programs. However, Perl incorporates many features that have their roots in other languages such as Lisp. These advanced features are not well understood and are rarely used by most Perl programmers, but they are very powerful. They can automate tasks in everyday programming that are difficult to solve in any other way. One of the most powerful of these techniques is writing functions that manufacture or modify other functions. For example, instead of writing ten similar functions, a programmer can write a general pattern or framework that can then create the functions as needed according to the pattern. For several years Mark Jason Dominus has worked to apply functional programming techniques to Perl. Now Mark brings these flexible programming methods that he has successfully taught in numerous tutorials and training sessions to a wider audience... [more]

Object-Oriented Design with UML and Java

Object-Oriented Design with UML and Java
Kenneth Barclay
John Savage

ISBN: 9780750660983
Copyright 2003

Object-Oriented Design with UML and Java presents an integrated introduction to object-oriented design with the Unified Modeling Language and the Java programming language. It demonstrates that Java applications, no matter how small, can benefit from some design during their construction. Fully road-tested by students on the authors' own courses, this book shows how these complementary technologies can be used effectively to create quality software. No prior knowledge of object orientation is assumed, though some experience of Java is required. Two appendices provide assistance to those with experience of other programming languages. The UML has been incorporated into a graphical design tool called ROME, which can be downloaded from the book's website. This object modeling environment allows readers to prepare and edit various UMl diagrams. ROME can be used alongside a Java compiler to generate Java compiler to generate Java code from a UML class diagram then compile and run the resulting application for hands-on learning... [more]

Compaq Visual Fortran

Compaq Visual Fortran
A Guide to Creating Windows Applications

Norman Lawrence
ISBN: 9781555582494
Copyright 2001

Compaq Visual Fortran: A Guide to Creating Windows Applications is the only book that shows developers how to create Windows applications using Visual Fortran software. It complements the successful reference, Digital Visual Fortran Programmer's Guide. The book teaches CVF programming progressively, beginning with simple tasks and building up to writing professional-level Win32 applications. Readers will learn about the powerful new CVF graphical user interface, as well as the intricacies of Windows development from a CVF perspective. They can master QuickWin, the Win32 APIs including multiple document interfaces, and Open GL with 3D and interactive graphics... [more]

C# Annotated Standard


Java Made Simple, 2nd Edition
P.K. McBride
ISBN: 9780750653398
Copyright 2001

Java is a programming language designed for use on networks, in particular the Internet, and can also be used to write full-scale applications. It is based upon C++ and is very similar in its style and structure. Java Made Simple 2nd edition concentrates on getting the reader started and assumes no prior programming knowledge. Once the essentials have been mastered, it provides the confidence to go deeper into the language and broaden and develop invaluable programming skills... [more]

Linkers and Loaders

Linkers and Loaders
John Levine
ISBN: 9781558604964
Copyright 2000

Whatever your programming language, whatever your platform, you probably tap into linker and loader functions all the time. But do you know how to use them to their greatest possible advantage? Only now, with the publication of Linkers & Loaders, is there an authoritative book devoted entirely to these deep-seated compile-time and run-time processes. The book begins with a detailed and comparative account of linking and loading that illustrates the differences among various compilers and operating systems. On top of this foundation, the author presents clear practical advice to help you create faster, cleaner code.... [more]

Digital Visual FORTRAN Programmer's Guide


Digital Visual FORTRAN Programmer's Guide
Michael Etzel
Karen Dickinson

ISBN: 9781555582180
Copyright 1999

Written by key technical writers from the Digital Visual Fortran product team, Digital Visual Fortran Programmer's Guide presents in printed form the critical portions of the official programmer's guide, previously only available online. The result is the authoritative book on Digital Visual Fortran's features and how to use them to create effective applications. Digital Visual Fortran is the language of choice for computation-intensive scientific and engineering applications, financial applications, and other programs. Digital recently acquired Fortran technology and rights from Microsoft that allows them to use the Microsoft Developer Studio Integrated Development Environment, which is featured in Microsoft's Visual C++ and Visual Basic. The result is that Digital Visual Fortran is much easier to use and looks and works much like Microsoft's industry-leading programming products for other market segments... [more]

Understanding UML: The Developer's Guide

Understanding UML
The Developer's Guide

Mark Watson

ISBN: 9781558604650
Copyright 1997

The Unified Modeling Language (UML) is a third generation method for specifying, visualizing, and documenting an object-oriented system under development. It unifies the three leading object-oriented methods and others to serve as the basis for a common, stable, and expressive object-oriented development notation. As the complexity of software applications increases, so does the developer's need to design and analyze applications before developing them. Understanding UML is a practical introduction to UML providing software developers with an overview of this powerful new design notation, and teaches Java programmers to analyze and design object-oriented applications using the UML notation... [more]

Parallel Programming with MPI

Parallel Programming with MPI
Peter Pacheco
ISBN: 9781558603394
Copyright 1996

A hands-on introduction to parallel programming based on the Message-Passing Interface (MPI) standard, the de-facto industry standard adopted by major vendors of commercial parallel systems. Parallel Programming with MPI, based on the C language, contains many fully-developed examples and exercises. The complete source code for the examples is available in both C and Fortran 77. Students and professionals will find that the portability of MPI, combined with a thorough grounding in parallel programming principles, will allow them to program any parallel system, from a network of workstations to a parallel supercomputer... [more]

Software Engineering Courses
To find textbooks click the course headings below.

Introduction to Programming (CS1) courses:

  • C# Programming - Introductory
  • FORTRAN — Programming
  • Java — Programming for Technology

Intermediate/Advanced Programming courses:

  • Java — Intermediate / Advanced Programming

Other Programming Languages courses:

  • PL/1—Programming
  • Other Languages — Programming

Algorithms/Advanced Data Structures (CS7) courses:

  • Java — Algorithms

Compilers courses:

  • Compiler Construction

Object-Oriented Programming courses:

  • Object-Oriented Design
  • Unified Modeling Language (UML)

Operating Systems (OS) courses:

  • Operating Systems (OS)
  • Distributed Systems

Parallel Computing courses:

  • Parallel Algorithms
  • Parallel Computing
  • Parallel Programming / Concurrent Programming

Programming Languages and Theory courses:

  • Programming Languages / Comparative Languages
  • Theory of Programming Languages

Software Engineering courses:

  • Programming Methodology
  • Software Reliability
  • Software Testing and Verification

Web Programming and Design
courses:

  • PERL — Programming

Other courses:

  • Systems Analysis and Design
  • Systems Analysis and Design — Advanced
Terms of Use | Privacy Policy | Copyright © 2007 Elsevier All rights reserved.