Tuesday, May 16, 2006

7 February 2006

9:30 – 10:46

Unit Descriptions

Aims, Learning Outcomes

Syllabus Outline

Teaching and Learning Strategy

Student-centred Learning
Group discussion
Personal research
Extensive reading

Assessment

Credit Points 10
100% coursework (no exam)
Both individual and group work
Assessing both theory and practical skills.

Reading

Course material and recommended reading
http://www.tech.port.ac.uk/staffweb/chandlej/PAFSD.html

A blog for this unit can be found
http://pafsd.blogspot.com/

(4) Courseworks

-
-
criticize,
What do you think about it? You have to explain. Why?

How do you go to learn Java?
You must be happy you learn yourself
Somebody help you?
I’m going to teach you

11:00 – 13:00

Introduction to Patterns

Pattern – a introduction
Patterns in Software Engineering
Comparison with other reusable tools
Types of patterns

Christopher Alexander

All buildings are the results of applying sets of rules. When this expertise fails to be passed on, bad buildings and broken communities result.

Result of this is birth of ‘the concept of Patterns

Alexander codified best building practice by mean of 253 individual but related Patterns

Alexander’s word

Each pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice”

Pattern Language.
Towns/ Buildings/ Construction, 1977 New York Oxford University Press.

Data Structure
Reusable concepts
J2EE
Pattern is a concept
A project/ problem should be document
They don’t need to break their head

Pattern in Real Life ‘an analogy to Pattern.

Context: You are a student living at Waterloo, London and need to get to CBAD lecture at St.Patricks College London, in less than an hour. RMT Union announce strike – only limit tube services are available. Travelling by bus would take too long because of traffic jams and you don’t have access to a bike. You only have a limited amount of money and need to buy much, pay some library fines and get home some how. You could take a taxi, but that costs …

Problem: How do you get to class on time?

Solution: Walk to college

Consequences: Living within your financial, temporal and physical limits you can get to class.

Example/ known use: It might take 20 minutes to walk to Oxford Street.

Related Patterns: Avoid Library Fine and Lunch to catch Black Taxi, Buy a Bike.
Pattern in plain English

Patterns are found in real systems, as well-tried solutions to real problems.
A Pattern is a formalized instruction that says;
“if you encounter this problem then solve it like that”
Patterns help to:
Reduce the need for redesign
Produce reusable design problems.
Acts as templates
Pass on knowledge from experts to novices.
Patterns support the modularity. So that changes can be made internally …

Why use patterns?

Instead of re-inventing the wheel for any project, capitatise an existing work and deploy it
Benefits:
Reduced maintenance costs as one improvement will improve all projects
Improved quality because of through testing in a variety of situations
They help through learning by example.
Pass knowledge on from expert to novice
Magic words reuse.

What patterns are not

Untested theories
Solutions that have worked only once
Applicable to every context
The answer to every software design problem

How to preserve the patterns?

Element of components of Patterns can be used to document the newly identified patterns.
Which can be called as pattern catalogue.

Element of Patterns

Name
Problem
Context
Forces
Solution
Examples
Resulting Context
Rationale
Related Patterns
Known uses

Recommended reading book:

This book contains 23 patterns, each with a solution for a recurring problem faced in object-oriented design.

Gamma, E., Helm, R., Johnson R. and Vlissides, J., Design Patterns: Elements of Reusable Object-oriented Software, Addison Wesley, 1994, 02 0163 3612, Y

14:00 – 15:00

Patterns in Software Engineering

Patterns in Software Development

Software Engineering adapt the Pattern concept from construction Engineering.

It is the New Paradigm in Software Development

Entity Modelling
Object Oriented Modelling
Pattern Oriented Modelling

New systems analysis and design technique for reuse software architecture and design
Pattern represent solutions to problems that arise when developing software within a particular context.
“Pattern = (Problem + Solution) in a context”

How Pattern can be apply?

Gamma’s definition: “descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context”

A object-oriented design pattern systematically names, explains and evaluates an important and recurring design in object-oriented systems.

Why use patterns in Software Design?

These patterns make OO Design more flexible, elegant, and ultimately reusable.
Pattern capture the static and dynamic structures and collaborations of successful solutions to problems that arise when building applications a particular domain
Patterns help to improve key software quality. Factors such as reuse, extensibility, modularity, performances.

Types of Software Patterns

Architectural Patterns
Design Patterns
Idioms

Other types of Patterns in Software Industry

Process
Analysis Patterns
Protocols Patterns
Data Structure Patterns
Algorithmic Patterns
Cognitive Patterns
Organisational Patterns

Origin of Software Patterns

Christopher Alexander

Several books

Gang of Four (GoF)

Design Patterns: Elements of reusable.

Gang of Five (GoV)



Conferences on Patterns languages of Program Design (PLoP or PLoPD)

GoF and GoV



No Confusion

Patterns are not
Business objects
Frameworks
Algorithms
Components
Libraries
Packages

Patterns is the reusable design concept.

15:30 – 17:00

Group Discussion: Differences/ Compare between Design Patterns and Java Packages

Group No.(6)

http://groups.yahoo.com/group/group-discussion/

Email: group-discussion@yahoogroups.com

Lorraine Scbata
Sipiwe Magoche
Manyozo Phiri
Basco Abor
Frederick Abayeta
Kwame Ako – Aboagye
Nu Lwin Soe

Packages

Class
Many Classes
Collection of Program

Patterns

We use in design
Concept
Implementation & Coding State

No comments: