• No results found

Chapter 1: Introduction

N/A
N/A
Protected

Academic year: 2021

Share "Chapter 1: Introduction"

Copied!
20
0
0

Loading.... (view fulltext now)

Full text

(1)

Usin

g

UM

L

, Pa

tt

e

rn

s,

a

n

d

Ja

va

Object

-Or

iented

S

oftwar

e

E

ngineer

(2)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

Objectifs des cours

Apprécier les fondammentales du Génie Logiciel:

Methodologies

Techniques de description et de modelisation

Analyse du système - Ingénierie des exigences

Conception du système

Implementation: Principe de développement du

système.

(3)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

Prérequis pour le cours

Prérequis :

Vous avez déjà fait de la COO

vous avez des bases en UML

(4)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

Focus: Acquire Technical Knowledge

Different methodologies (“philosophies”) to

model and develop software systems

Different modeling notations

Different modeling methods

Different software lifecycle models (empirical

control models, defined control models)

(5)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

Outline of Today’s Lecture

The development challenge

Dealing with change

(6)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

(7)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

(8)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

(9)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

Can you develop this system?

The impossible

Fork

(10)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

Why is Software Development difficult?

The problem is usually ambiguous

The requirements are usually unclear and changing

when they become clearer

The problem domain (called application domain) is

complex, and so is the solution domain

The development process is difficult to manage

Software offers extreme flexibility

(11)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

Software Development is

more than just

Writing Code

It is

problem solving

Understanding a problem

Proposing a solution and plan

Engineering a system based on the

proposed solution using a good design

It is about

dealing with complexity

Creating abstractions and models

Notations for abstractions

It is

knowledge management

Elicitation, analysis, design, validation of

the system and the solution process

It is

rationale management

(gestion du raisonement)

Making the design and development

decisions explicit to all stakeholders

involved.

(12)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

Can we not use the Scientific Method?

Not exactly, we need ideas and hypotheses

The scientific method, unfortunately, has never quite

gotten around to saying exactly where to pick up these

hypotheses.

The traditional scientific method has always been

at the very best, 20-20 hindsight

It's good for seeing where you've been. It's good for

testing of what you think you know

But

it can't tell you where you should to go

Creativity, originality, inventiveness, intuition,

imagination – "unstuckness," in other words – are

completely outside the domain of the scientific

method

Robert Pirsig, Zen and the Art of Motorcycle Maintenance, p. 251,

(13)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

Techniques, Methodologies and Tools

Techniques:

Formal procedures for producing results using

some well-defined notation

Methodologies:

Collection of techniques applied across

software development and unified by a

philosophical approach

Tools:

Instruments or automated systems to

accomplish a technique

Interactive Development Environment (IDE)

Computer Aided Software Engineering (CASE)

(14)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

Computer Science vs. Engineering

Computer Scientist

Assumes techniques and tools have to be developed.

Proves theorems about algorithms, designs languages,

defines knowledge representation schemes

Has infinite time…

Engineer

Develops a solution for a problem formulated by a client

Uses computers & languages, techniques and tools

Software Engineer

Works in multiple application domains

Has only 3 months...

…while changes occurs in the problem formulation

(requirements) and also in the available technology.

(15)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

20

Challenge: Dealing with complexity and

change

Software Engineering is a collection of techniques,

methodologies and tools that help with the

production of

A high quality

software system developed with a

given

budget

before a given

deadline

while

change

occurs

Software Engineering: A Working

Definition

(16)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

Software Engineering:

A Problem Solving Activity

Analysis:

Understand the nature of the problem and break the

problem into pieces

Synthesis:

Put the pieces together into a large structure

For problem solving we use techniques,

methodologies and tools.

(17)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Course Outline

Dealing with Complexity

Notations

(UML, OCL)

Requirements Engineering

,

Analysis and Design

OOSE

Testing

Vertical and horizontal testing

Dealing with Change

Rationale Management

Knowledge Management

Patterns

Release Management

Configuration Management,

Continuous Integration

Software Life Cycle

Linear models

(18)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

(19)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

Que faire ensuite ?

Lire les lectures obligatoire et conseillée

Obligatoire : Chapter 2 Bruegge&Dutoit,

Object-Oriented Software Engineering

2.1, 2.2,

Conseillée : Chapter 1 Bruegge&Dutoit

2.3, 2.4 (long !)

1.1, 1.2, 1.3, 1.4

Visiter le portail de GL

(20)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

Lecture

Bernd Bruegge, Allen H. Dutoit

Object-Oriented Software Engineering:

Using UML, Patterns and Java, 3

rd

Edition

Pearson New International Edition, 3/E

ISBN-10: 1292024011

References

Related documents

Unified Modelling Language (UML) is a modelling standard for software built using object-oriented programming techniques. UML emerged because of the need for a

E MOOSE (the AOSD Advanced Software Advanced Software- Advanced Distributed Object- Object-Oriented European Master in Engineering Engineering Software Oriented Systems;

E MOOSE (the AOSD Advanced Software Advanced Software- Advanced Distributed Object- Object-Oriented European Master in Engineering Engineering Software Oriented Systems;

Analysis and Design with UML Software Engineering Winter 2011/2012 Basics of Object-Oriented Modeling Dr.?. Tools for OO

GRASP (  (G General eneral R Responsibility esponsibility A Assignment ssignment S Software oftware P Patterns) encompass nine object‐oriented atterns) encompass nine

NLP: Natural Language Processing. POS: Parts of Speech. OOA: Object-Oriented Analysis. UML: Unified Modelling Language. CASE: Computer Added Software Engineering. SRS:

– CSE 12: Basic Data Structures and Object-Oriented Design using C++ and/or Java... Introduction to

• Optional Case Study: Using the UML to Develop an Object-Oriented Design and Java Implementation of an ATM.. The UML™ (Unified Modeling Language™) is the industry-standard