CSE2305
Object-Oriented Software Engineering
Synopsis
GNU Development environment: Make, g++, gdb
- Your practical work is to be completed using the standard GNU development
environment consisting of the programs
Make
(program builder), g++
(C++ compiler)
and gdb
(debugger).
- This tutorial covers
all these programs and should be completed by the end of your first prac
class. It is a hurdle requirement to complete this tutorial (shared with
CSE2302)
Makefile
- make(1) is a command
line utility used to build programs (and lots of other things) - it manages
complex dependencies and compilation options.
- You can type "man make"
at the unix prompt to get basic information on make.
- Another
Makefile tutorial
- GNU Make manual
(the most complete and detailed description)
gdb
- gdb is used for debugging.
Like make, it is a command
line utility. You can step through your program line by line and look at values
of variables and data-structures. You can set breakpoints based on certain
conditions and also look at the state of your program when it crashed.
- GNU gdb manual
- The gdb
and make tutorial you should do the tutorial on how to use debugger
gdb and organiser of multiple-file
programs make in your own time before the start of your first lab session.
It will be reviewed in the first lab session.
C++
- QT is an
excellent C++ OO framework for building platform independent, open source
applications. Even better, its free for open source development!
- Document your code semi-automatically with DOxygen.
- Extend the capabilities of the C++ standard library with Boost – a useful
set of classes for representing Date and Time, Serialisation, Smart Pointers
and much more.
- Marshall Cline's comprehensive C++ Frequently Asked Questions at http://www.cerfnet.com/~mpcline/c++-faq-lite/,
and mirrored
locally.
- Information and documentation on the Standard
Template Library (STL) from Silicon Graphics.
- More online Standard
Template Library (STL) documentation by Dinkumware
- If you want to see full chapter-and-verse on what is and isn't legal C++,
you'll need to look up the Draft
ANSI/ISO C++ Standard . But beware, it's highly technical and heavy
going (even for C++ experts!)
- If you're sufficiently technically-minded you can download
the latest version of g++ (you'll actually need to download the
gcc distribution, which now incorporates g++).
- If you're a Macintosh user you can download
the developer tools to get gcc ready
to go.
- The Yahoo
index has numerous C++-related links of varying relevance.
Introduction to Linux
Object-oriented Software
Engineering
- Cetus Links
is a vast collection of hyperlinks covering all aspects of object-oriented
programming, including C++ and Design Patterns (Idioms).
- Stephen Block's software engineering¤site
has a wealth of wisdom regarding software engineering¤.
It's well worth a read (and a think!)
- Shari Lawrence Pfleeger also provides a great deal of useful material at
her book-related site.
- The classic Design
Patterns: Elements of Reusable Object-Oriented Software, book by the "gang
of four": Gamma, Helm, Johnson, & Vlissides.
- Also here is the Patterns Home Page
- Andy Bloucher maintains a comprehensive list of
object-oriented C++ links for CSE3400.
Newsgroups
This material is part of the CSE2305 - Object-Oriented
Software Engineering course.
Copyright © Jon McCormack, 2005. All rights reserved.
Last modified:
October 2, 2005