|
This page contains links to a number of useful documents and resources for students in the unit.
Unit Documents
-
Unit Outline (PDF)
-
C++ LOC Standard
(PDF)
-
McCall's Software
Quality Checklist (PDF)
-
Past Exam Papers
Note that answers supplied are suggested answers only:
other solutions are possible. Note also that the answers are
often over-complete: the question might ask for n
things, but more than n possible responses are
suggested. In the exam, you would of course need to give only
n.
Interesting Articles
-
"Languages, levels, libraries, and longevity",
John R. Mashey, ACM Queue, Dec/Jan 2004/2005.
-
"The
Value of Modeling", Gary Cernosek, IBM Rational Software Design
and Construction Products, June 2004.
"This white paper discusses the value
of modeling in the context of software development. The
concepts presented here are not new: savvy software
professionals have practiced modeling for years. But in the
mainstream software development community, only a fraction of
software developers formally model their software. This white
paper examines the basics of what motivates the practice of
modeling software. For those who are knowledgeable of software
modeling, those who know nothing about it or those who know of
it but have never embraced it, this white paper intends to
explain the benefits and values that this practice can offer."
-
"Death by UML Fever",
Alex E. Bell, ACM Queue, March 2004.
UML is a notational and modeling tool, not a
solution in itself.
-
"'The
Demise of the Waterfall Model Is Imminent' and Other Urban Myths",
Phillip A. Laplante and Colin J. Neill, ACM Queue, February 2004.
"About two years ago, we asked ourselves
the question, "What practices are really being used in the
specification and design of software systems?" We were under the usual
impressions about the demise of the use of the Waterfall model and the
adoption of various best practices... we thought that a survey of
practitioners from a diverse group of small and large companies in
defense, pharmaceutical, chemical, telecommunications, banking, and
government industries (including several Fortune 500 companies) would
be enlightening."
- "The
Agile Manifesto", Martin Fowler and Jim Highsmith, Software Development, August
2001.
-
The
Lost Arts of Programming, Gene Callahan, Dr. Dobb's Journal, January
1999.
"A couple of months ago, as I reached for
a book I needed from a large pile of others, a second book accidentally
tumbled to the floor. Picking it up, I found that it was Meilir
Page-Jones' 1980 classic, The Practical Guide to Structured Systems
Design ... Reading the book, I was amazed at how much knowledge has
been lost in a rush to embrace OOP, RAD, visual programming, and other
modern technologies."
-
Less
is More: Jump-Start Productivity with Small Teams, Steve
McConnell, Software
Development, October 1997, pp. 28-34. Includes U.S. Department
of Defense Project Formality Worksheet.
-
A
Cautionary Tale In E-Trade's Glitch; Crash Shows Internet's
Vulnerability, Mark Leibovich, The Washington Post. Washington, D.C.: Feb 22, 1999. pg. A.01.
-
Report on the Therac-25 Accidents and their software causes.
-
No Silver Bullet: Essence and Accidents of Software Engineering, Frederick P. Brooks, Jr., IEEE
Computer, 20(4), April 1987, pp. 10-19.
-
Go
To Statement Considered Harmful, Edsger W. Dijkstra, Communications
of the ACM, 11(3), March 1968, pp. 147-148.
One of the classics that started the whole SE thing!
User Interface Design Articles and Links
-
The Theory Behind User Interface Design, Part One, Mauro Marinilli, On-line article at http://www.developer.com, 20 November, 2002.
-
The Theory Behind User Interface Design, Part Two, Mauro Marinilli, On-line article at http://www.developer.com, 6 January, 2003.
-
Mastering Interaction Modes, Mauro Marinilli, On-line article at http://www.developer.com, 3 February, 2003.
-
"Oops! Coping with human error in IT systems", Aaron B. Brown, ACM Queue, November 2004.
-
IBM's Ease of Use Web Site. See especially the "Design" section.
-
Human-Computer Interaction (HCI) Index
-
ACM Interactions Magazine
-
Alertbox:
Jakob Nielsen's column on web usability. Lots of good articles - the
"top tens" of web design mistakes are well worth reading.
-
Bad
Human Factors Designs: A collection of examples of poor design. Not
necessarily computer interfaces, but interesting all the same.
Structured Analysis and Design Resources
-
Just
Enough Structured Analysis On-line, updated and condensed version of Ed
Yourdon's Modern Structured Analysis of 1989. Why are we still
doing this? There's still a large base of systems designed this way. A 1995
NASA analysis revealed that
"Structured analysis continues to be the
highest rated development methodology in terms of awareness, training,
and actual use. Object-oriented design in well known throughout NASA
but used only moderately".
Amusing, given that Yourdon says "You don't
have to be a rocket scientist to appreciate that a lot has changed
since the late 1980s..."
-
Cohesion,
Meilir Page-Jones, Ch. 6 of The Practical Guide to Structured
Systems Design, 1998
OO and UML Resources
-
A collection
of witty aphorisms on good software craftmanship.
-
The Object-Oriented Thought Process, a series of
articles by Matt Weisfeld available at http://www.developer.com.
Note sure that you really "got" all that
stuff in CSE2305? Read this:
"Some software professionals were first
introduced to object orientation by presentations that included
object models using UML... Learning UML before OO concepts is
similar to learning how to read an electrical diagram without
first knowing anything about electricity." CSE3308
assumes that you know OO concepts - so read this stuff now.
-
The
Object-Oriented Thought Process, 28 January, 2004.
-
Moving from Procedural to Object-Oriented Development, 25 February, 2004.
-
The
Object-Oriented Thought Process (III),
29 March, 2004.
-
Thinking in Objects, 30 April, 2004.
-
Furthering the Object-Oriented Mindset, 27 May, 2004.
-
Exploring Encapsulation, 30 June, 2004.
-
Hiding Data within Object-Oriented Programming, 29 July, 2004.
-
Protecting Data through Object Oriented Programming, 30 December, 2004.
-
Putting an Object in a Safe State, 26 January, 2005.
-
The Components of a Class, 10 March, 2005.
-
The Evolution of Object-Oriented Languages, 31 March, 2005.
-
Design
Principles and Design Patterns, Robert Martin, 2000. Further C++ Report articles on these topics by Robert Martin, from articles available at Object Mentor.
-
"The Tipping Point: Stability and Instability in OO Design",
Robert C. Martin, Software Development, March 2005.
Principles of good module design
-
Object Management Group UML specification
- v.1.3, June 1999. (pdf 3.5Mb) (ps.gz 1.5Mb) (the one your texts are most likely to have used)
- v.1.4, September 2001. (pdf 4.7Mb) (ps.gz 1.6Mb)
- v.1.5, March 2003. (pdf 6.4Mb) (ps.gz 2.7Mb)
- IBM Rational UML
Resource Center
Design and Analysis Patterns
-
What
Are Design Patterns?, James W. Cooper, On-line article at http://www.developer.com,
12 March, 2004.
-
What Are Design Patterns and Do I Need Them?, James Maioriello, On-line article at http://www.developer.com, 2 October, 2002.
-
A Survey of Common Design Patterns, James Maioriello, On-line article at http://www.developer.com, 18 November, 2002.
-
Patterns
Home Page - resource for patterns and pattern languages. Has links to
many other resources, including pattern catalogues
-
Patterns and Software: Essential Concepts and Terminology
- article summarizing important information about patterns. Has lots of
links.
-
Organizational Structures (Accountability), Martin Fowler, new version of Ch.2 of Analysis Patterns: Reusable Object Models, 1996
CASE and drawing tools
-
(Old)
Student Edition of Rational Rose CASE Tool (9.2Mb ZIP file), Rational
Software was the home of the developers of UML, and Rational
Rose. It was acquired by IBM in 2003. Evaluation versions are
available for both Windows and Linux - but they're huge! (Windows,
344Mb, Linux 119Mb).
-
SmartDraw
drawing tool for PCs. Very useful for structured analysis and
design.
-
Dia
- GTK-based diagram drawing program. An open-source drawing tool
that is included in many Linux installations. A variety of
modelling languages is supported. There is also a Windows
version.
-
Glade
- an open-source visual interface builder for GTK+ and
GNOME.
-
Qt
Designer
- a GUI builder from Trolltech.
Qt Designer generates C++ code, and runs natively on Windows,
X11, Mac and embedded Linux. It is shipped with many Linux
distributions. Try typing designer at the command
line.
Project Management
|