Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable...

48

Transcript of Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable...

Page 1: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Introduction

ENGI 5895: Software Design

Andrew Vardy

Faculty of Engineering & Applied Science

Memorial University of Newfoundland

January 9, 2011

Andrew Vardy Introduction

Page 2: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

What is this course about?

Many people can program, but are they Software Engineers? A

Software Engineer is someone who can do the following:

Ensure the correctness of their software

Develop e�cient solutions

Design systems which are �exible, reusable, and

maintainable

Communicate the design and behaviour of a software system

This course focusses on the last two points, but we will always be

mindful of correctness and e�ciency.

Andrew Vardy Introduction

Page 3: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

What is this course about?

Many people can program, but are they Software Engineers? A

Software Engineer is someone who can do the following:

Ensure the correctness of their software

Develop e�cient solutions

Design systems which are �exible, reusable, and

maintainable

Communicate the design and behaviour of a software system

This course focusses on the last two points, but we will always be

mindful of correctness and e�ciency.

Andrew Vardy Introduction

Page 4: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

What is this course about?

Many people can program, but are they Software Engineers? A

Software Engineer is someone who can do the following:

Ensure the correctness of their software

Develop e�cient solutions

Design systems which are �exible, reusable, and

maintainable

Communicate the design and behaviour of a software system

This course focusses on the last two points, but we will always be

mindful of correctness and e�ciency.

Andrew Vardy Introduction

Page 5: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

What is this course about?

Many people can program, but are they Software Engineers? A

Software Engineer is someone who can do the following:

Ensure the correctness of their software

Develop e�cient solutions

Design systems which are �exible, reusable, and

maintainable

Communicate the design and behaviour of a software system

This course focusses on the last two points, but we will always be

mindful of correctness and e�ciency.

Andrew Vardy Introduction

Page 6: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

What is this course about?

Many people can program, but are they Software Engineers? A

Software Engineer is someone who can do the following:

Ensure the correctness of their software

Develop e�cient solutions

Design systems which are �exible, reusable, and

maintainable

Communicate the design and behaviour of a software system

This course focusses on the last two points, but we will always be

mindful of correctness and e�ciency.

Andrew Vardy Introduction

Page 7: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

What is this course about?

Many people can program, but are they Software Engineers? A

Software Engineer is someone who can do the following:

Ensure the correctness of their software

Develop e�cient solutions

Design systems which are �exible, reusable, and

maintainable

Communicate the design and behaviour of a software system

This course focusses on the last two points, but we will always be

mindful of correctness and e�ciency.

Andrew Vardy Introduction

Page 8: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

What is this course about?

Many people can program, but are they Software Engineers? A

Software Engineer is someone who can do the following:

Ensure the correctness of their software

Develop e�cient solutions

Design systems which are �exible, reusable, and

maintainable

Communicate the design and behaviour of a software system

This course focusses on the last two points, but we will always be

mindful of correctness and e�ciency.

Andrew Vardy Introduction

Page 9: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Flexibility, Reusability, and Maintainability

You have developed software that behaves correctly and e�ciently

in scenarios A, B, and C.

Flexibility: Your boss adds scenario D. How much e�ort does

it take to make it work?

Reusability: You realize that part of your code might actually

be useful in scenarios X, Y, and Z. How much e�ort does it

take to isolate the parts that you need?

Maintainable: Over time features are added and bugs are

corrected. How much e�ort does it take to make these changes

and to continue making similar changes in the long-run?

We will discuss object-oriented design principles and patterns to

address these concerns.

Andrew Vardy Introduction

Page 10: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Flexibility, Reusability, and Maintainability

You have developed software that behaves correctly and e�ciently

in scenarios A, B, and C.

Flexibility: Your boss adds scenario D. How much e�ort does

it take to make it work?

Reusability: You realize that part of your code might actually

be useful in scenarios X, Y, and Z. How much e�ort does it

take to isolate the parts that you need?

Maintainable: Over time features are added and bugs are

corrected. How much e�ort does it take to make these changes

and to continue making similar changes in the long-run?

We will discuss object-oriented design principles and patterns to

address these concerns.

Andrew Vardy Introduction

Page 11: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Flexibility, Reusability, and Maintainability

You have developed software that behaves correctly and e�ciently

in scenarios A, B, and C.

Flexibility: Your boss adds scenario D. How much e�ort does

it take to make it work?

Reusability: You realize that part of your code might actually

be useful in scenarios X, Y, and Z. How much e�ort does it

take to isolate the parts that you need?

Maintainable: Over time features are added and bugs are

corrected. How much e�ort does it take to make these changes

and to continue making similar changes in the long-run?

We will discuss object-oriented design principles and patterns to

address these concerns.

Andrew Vardy Introduction

Page 12: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Flexibility, Reusability, and Maintainability

You have developed software that behaves correctly and e�ciently

in scenarios A, B, and C.

Flexibility: Your boss adds scenario D. How much e�ort does

it take to make it work?

Reusability: You realize that part of your code might actually

be useful in scenarios X, Y, and Z. How much e�ort does it

take to isolate the parts that you need?

Maintainable: Over time features are added and bugs are

corrected. How much e�ort does it take to make these changes

and to continue making similar changes in the long-run?

We will discuss object-oriented design principles and patterns to

address these concerns.

Andrew Vardy Introduction

Page 13: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Flexibility, Reusability, and Maintainability

You have developed software that behaves correctly and e�ciently

in scenarios A, B, and C.

Flexibility: Your boss adds scenario D. How much e�ort does

it take to make it work?

Reusability: You realize that part of your code might actually

be useful in scenarios X, Y, and Z. How much e�ort does it

take to isolate the parts that you need?

Maintainable: Over time features are added and bugs are

corrected. How much e�ort does it take to make these changes

and to continue making similar changes in the long-run?

We will discuss object-oriented design principles and patterns to

address these concerns.

Andrew Vardy Introduction

Page 14: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Flexibility, Reusability, and Maintainability

You have developed software that behaves correctly and e�ciently

in scenarios A, B, and C.

Flexibility: Your boss adds scenario D. How much e�ort does

it take to make it work?

Reusability: You realize that part of your code might actually

be useful in scenarios X, Y, and Z. How much e�ort does it

take to isolate the parts that you need?

Maintainable: Over time features are added and bugs are

corrected. How much e�ort does it take to make these changes

and to continue making similar changes in the long-run?

We will discuss object-oriented design principles and patterns to

address these concerns.

Andrew Vardy Introduction

Page 15: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 16: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 17: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 18: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 19: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 20: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 21: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 22: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 23: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communication

This course is also about communication. Software gets very

complicated very quickly! How can you communicate the essential

ideas behind your design...

to yourself, when you look at your code two years from now

You pepper your code with comments, but what's the bigpicture?

to your peers

How can they use, modify, or extend your code? Is it so hardto explain that you might as well make the changes yourself?

to your boss, to explain the di�culty of the problem you are

addressing

�What do you mean you need more time? Can't you just makeit work?�

In this course you will learn to describe your designs using the

Uni�ed Modelling Language (UML).

Andrew Vardy Introduction

Page 24: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 25: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 26: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 27: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 28: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 29: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 30: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 31: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 32: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 33: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Deliverables

Four assignments (35%):

Complete individually or in pairsAssign. 1: Implement a given designAssign. 2: Design a systemAssign. 3: Design a systemAssign. 4: Implement the system from assign. 3

Project (65%):

Teams of two (at most one trio)Choose your own stand-alone software system to implement(e.g. game, simulation, application,...)Project includes both design and implementation, but thedesign has a higher weight

Andrew Vardy Introduction

Page 34: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communicating your design

You will document your designs in carefully written reports

that include helpful UML diagrams

In the project, there will be design review meetings where you

will present your design and explain its rationale and history

It is your responsibility to highlight and explain the

principles and patterns utilized in your design!

You will demo your working programs and submit clean and

carefully documented source code

Andrew Vardy Introduction

Page 35: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communicating your design

You will document your designs in carefully written reports

that include helpful UML diagrams

In the project, there will be design review meetings where you

will present your design and explain its rationale and history

It is your responsibility to highlight and explain the

principles and patterns utilized in your design!

You will demo your working programs and submit clean and

carefully documented source code

Andrew Vardy Introduction

Page 36: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communicating your design

You will document your designs in carefully written reports

that include helpful UML diagrams

In the project, there will be design review meetings where you

will present your design and explain its rationale and history

It is your responsibility to highlight and explain the

principles and patterns utilized in your design!

You will demo your working programs and submit clean and

carefully documented source code

Andrew Vardy Introduction

Page 37: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Communicating your design

You will document your designs in carefully written reports

that include helpful UML diagrams

In the project, there will be design review meetings where you

will present your design and explain its rationale and history

It is your responsibility to highlight and explain the

principles and patterns utilized in your design!

You will demo your working programs and submit clean and

carefully documented source code

Andrew Vardy Introduction

Page 38: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 39: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 40: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 41: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 42: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 43: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 44: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 45: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 46: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 47: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction

Page 48: Introduction - cs.mun.ca · Design systems which are exible , reusable , and maintainable Communicate the design and behaviour of a software system This course focusses on the last

Course outline

Introduction

Brief introduction to Java

The Uni�ed Modelling Language (UML)

Class and sequence diagrams; use cases

Development Processes

Design Principles

e.g. The Single-Responsibility Principle: �A class should haveonly one reason to change�

Design Patterns

e.g. Iterator

Various bits of technology needed for the project:

GUI, graphics, networking, etc...

Andrew Vardy Introduction