Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Look up keyword or section
Like this

Table Of Contents

Two circle objects Source code
Return values
Understanding class definitions
Main concepts to be covered
BlueJ example: Ticket machine
Ticket machine –internal view
Basic class structure
Passing data via parameters Assignment
Accessor methods
Mutator methods
Printing from methods
Improving basic ticket machines
Making choices
Local variables
Object interaction
A digital clock
Abstraction and modularization
Modularizing the clock display
Implementation -NumberDisplay
Implementation -ClockDisplay
Source code: NumberDisplay
Objects creating objects
Method calling
Passing state between objects
Method calls
The requirement to group objects
Example: a personal notebook
Class libraries
Adding a third note Features of the collection
Using the collection
Retrieving an object
Removal may affect numbering
Iterating over a collection
Fixed-size collections
Creating an array object
Using an array
The Java class library
Reading class documentation
Interface vs implementation
Using inheritance
Inheritance in Java
Inheritance and constructors Inheritance and constructors
Superclass constructor call
Subclasses and subtyping
Subtyping and assignment
The Object class
The do …while loop
The switch statement
Example of switch
Primitive data types (1)
Primitive data types (2)
Strings: a common trap
Identity vs equality 1
Identity vs equality 2
Identity vs equality 3
Identity vs equality (Strings)
Identity vsequality (Strings)
How hard can it be?
How hard can it be …
Why is the world complicated?
How hard can it be … …to define a physical system?
Design and uncertainty
What is the problem?
Design and ignorance
Learning by building models
Unified Modeling Language
Outline for the rest of the course
Older terminology: the “waterfall”
Modern alternative: the “spiral”
Exam questions
Inception phase
Pioneers –Tom DeMarco
Analysing requirements
Interaction design bugs Interaction design bugs
The psychological approach
The anthropological approach
Ethnographic field studies
Design ‘ethnography’
User Personas
Objects in a scenario
Example of problem description
Extracted nouns & verbs
Scenario structure: CRC cards
Typical CRC card
Partial example
Refinement of usage model
Pioneers –Peter Chen
Review of objects and classes
Typical classes and associations
Association and aggregation
Implementing association in Java
Multiple association in Java
Class design from CRC cards
Refining class interfaces
Dividing up a design model
Pioneers –David Parnas
Information hiding in OO models
Cohesion in OO models
UML Collaboration diagram
Loose coupling
Responsibility-driven design
Interfaces as specifications
Interfaces in Java
Alternative implementations
Causes of error situations
Defensive programming
Argument values
Example of diagnostic return
Client response to diagnostic
Example of argument exception
Error response and recovery
Example of recovery attempt
Error avoidance
Construction inside objects
Pioneers –Edsger Dijkstra
Most-wanted holder
One-way flag
Verifying variables by role
Type-checking as modeling tool
Language support for user types
Construction of data lifecycles
UML Statechart diagram UML Statechart diagram
Maintaining valid system state
Pioneers –Tony Hoare
Formal models: Z notation
Advantages of formal models
Disadvantages of formal models
Language support for assertions
Construction using objects
UML Component diagram Component documentation
Elements of documentation
What is the goal of testing?
Testing and quality
Remember design as learning?
Learning through testing
Testing principles
Unit testing priorities
How to do it: testing strategies
Pioneers –Michael Fagan
Software inspections
Inspection by yourself
Black box testing
White box testing
Stress testing
Random testing
Regression testing
Test automation
Unit testing
Fixing bugs –‘debugging’
Debugging strategy
Print statements
Debugging walkthroughs
If all else fails …
Classic testing advice
Myers’10 principles
Myers’10 principles (cont.)
Meyer’s 7 principles
Meyer’s 7 principles (cont.)
Cost of testing
When to stop testing
Other system tests
Testing efficiency: optimisation
User interface efficiency
Experimental usability testing
Debugging user errors
Usability testing in the field
Iterative Development
UML Deployment diagram The Waterfall Model
Prototyping product concepts
Prototypes without programming
Software continues changing
Configuration management
Version control
Change control
Variants from branch fixes
Builds and Releases
Localizing change
Refactoring and testing
Beyond waterfalls and spirals
User-centred Design
Participatory Design
Xtreme Programming’(XP)
Would XP have helped CAPSA?
CAPSA project
CAPSA mistakes
CAPSA lessons
The ‘quick and dirty’version
0 of .
Results for:
No results containing your search query
P. 1
Software Design 2009

Software Design 2009

Ratings: (0)|Views: 33|Likes:
Published by Rica Abaigus

More info:

Published by: Rica Abaigus on Jul 18, 2011
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





You're Reading a Free Preview
Pages 5 to 51 are not shown in this preview.
You're Reading a Free Preview
Pages 56 to 80 are not shown in this preview.

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->