Unit 7_ Design and Implementation
Unit 7_ Design and Implementation
1
Architectural Design {Review}
Need of Architecture
Architectural Patterns
Box and Line Diagram
MVC
Layered Architecture
Repository Architecture
Client Server Architecture
P2P architecture
Multiprocessor Architecture
Application Architecture
2
3
Design and implementation
4
Design and implementation
5
Build or buy
6
Software reuse landscape
Approach Description
Design patterns Generic abstractions that occur across applications are represented
as design patterns showing abstract and concrete objects and
interactions.
Component-based Systems are developed by integrating components (collections of
development objects) that conform to component-model standards
Application frameworks Collections of abstract and concrete classes are adapted and
extended to create application systems.
Legacy system wrapping Legacy systems are ‘wrapped’ by defining a set of interfaces and
providing access to these legacy systems through these interfaces.
7
O
b
j An object-oriented design process
e
c
t
-
o
r
i
e
n
t
e
d
d
e
s
i 8
g
T
h
e Process stages
r
e
a
r
e
v
a
r
i
e
t 9
y
System context and interactions
10
Context and interaction models
11
System context for the weather station
12
Weather station use cases
13
O
n
c Architectural design
e
i
n
t
e
r
a
c
t
i
o
n
s
14
b
High-level architecture of the weather station
15
Architecture of data collection system
16
I
d
e Object class identification
n
t
i
f
y
i
n
g
o
b
j
e
c
t 17
U
s
e Approaches to identification
g
r
a
m
m
a
t
i
c
a
l
18
a
Weather station description
When a command is issued to transmit the weather data, the weather station
processes and summarises the collected data. The summarised data is transmitted to
the mapping computer when a request is received.
19
C
l
a Weather station Classes
s
s
i
d
e
n
t
i
f
i
c
a
t
i 20
o
Weather station object classes
21
D
e
s Design models
i
g
n
m
o
d
e
l
s
s
h
o
w 22
S
u
b Examples of design models
s
y
s
t
e
m
m
o
d
e
l
s
t 23
h
S
h
o Subsystem models
w
s
h
o
w
t
h
e
d
e
s
i 24
g
S
e
q Sequence models
u
e
n
c
e
m
o
d
e
l
s
s
h
o
w 25
Sequence diagram describing data collection
26
S
t
a State diagrams
t
e
d
i
a
g
r
a
m
s
a
r
e
u 27
s
Weather station state diagram
28
O
b
j Interface specification
e
c
t
i
n
t
e
r
f
a
c
e
s
29
h
Weather station interfaces
30
A
d Design patterns
e
s
i
g
n
p
a
t
t
e
r
n
i 31
s
A
d Design patterns
e
s
i
g
n
p
a
t
t
e
r
n
c 32
a
Design patterns
• Chain of Responsibility - The objects become parts of a chain and the request is sent from one
object to another across the chain until one of the objects will handle it.
• Interpreter - Given a language, define a representation for its grammar along with an
interpreter that uses the representation to interpret sentences in the language
• Iterator - Provide a way to access the elements of an aggregate object sequentially without
exposing its underlying representation
• Observer - Define a one-to-many dependency between objects so that when one object
changes state, all its dependents are notified and updated automatically
• Visitor - Visitor lets you define a new operation without changing the classes of the elements on
which it operates.
Design problems
To use patterns in your design, you need to recognize that any design
problem you are facing may have an associated pattern that can be applied.
39
Implementation issues
40
Reuse
From the 1960s to the 1990s, most new software was developed from
scratch, by writing all code in a high-level programming language.
The only significant reuse or software was the reuse of functions and objects in
programming language libraries.
Costs and schedule pressure mean that this approach became increasingly
unviable, especially for commercial and Internet-based systems.
An approach to development based around the reuse of existing software
emerged and is now generally used for business and scientific software.
41
Reuse levels
42
Configuration management
43
Configuration management activities
44
Host-target development
45
Open source development
46
Open source issues
Should the product that is being developed make use of open source
components?
Should an open source approach be used for the software’s development?
47
Open source business
More and more product companies are using an open source approach to
development.
Their business model is not reliant on selling a software product but on
selling support for that product.
They believe that involving the open source community will allow software to
be developed more cheaply, more quickly and will create a community of
users for the software.
48
Open source licensing
49
License models
The GNU General Public License (GPL). This is a so-called ‘reciprocal’ license that
means that if you use open source software that is licensed under the GPL license,
then you must make that software open source.
The GNU Lesser General Public License (LGPL) is a variant of the GPL license
where you can write components that link to open source code without having to
publish the source of these components.
The Berkley Standard Distribution (BSD) License. This is a non-reciprocal license,
which means you are not obliged to re-publish any changes or modifications made
to open source code. You can include the code in proprietary systems that are sold.
50
License management
51