Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Architecture
Feng Zhiyong
Tianjin University
Apr 16, 2004
Introduction
Software
Architecture
Component
Relationship
View
Functional Property
Non-functional Property
Software Design
Software Architecture
Component(1/4)
A
Component(2/4)
The following figure shows three different components:
Component(3/4)--categorize
Elements:
Processing elements
Data elements
Connecting elements
Component(4/4)--categorize
Another
categorization of components
developed for the object-oriented programming
paradigm Is as follows:
Controller components
Coordinator components
Interface components
Service provider components
Information holder components
Structuring components
Relationship(1/2)
A
Relationship(2/2)
View(1/3)
A
View(2/3)
Description[SNH95]
View(3/3)
Logical view: the design's object model, or a
corresponding model such as an entity relationship
diagram.
Process view: concurrency and synchronization
aspects.
Physical view: the mapping of the software onto the
hardware and its distributed aspects.
Development view: the software's static
organization in its development environment.
SEE UML
Changeability
Interoperability
Efficiency
Reliability
Testability
Reusability
Software Design
Methodologies
Methodologies provide many useful steps and
guidelines for constructing high-quality software. The
implementation sections of our patterns loosely follow
these steps, adapted to the needs of the specific
problems the patterns address.
These methods define an overall process for software
development that you can adapt and extend to integrate
your use of patterns.
Patterns complement the existing analysis and design
methods with a set of concrete techniques for solving
very specific but recurring design problems.
Software Processes(1/2)
The
Architectural Styles
Frameworks
Abstraction
Encapsulation
Information Hiding
Modularization
Separation of Concerns
Coupling and Cohesion
Completeness and
Primitiveness
Separation of Policy and Implementation
Separation of Interface and
Implementation
Single Point of Reference
Divide-and-Conquer
Abstraction
Encapsulation
Encapsulation
Information Hiding
Modularization
Separation of Concerns(1/2)
Divide-and-Conquer
We use this principle heavily in software architecture. Topdown design, for example, divides a task or component into
smaller parts that can be designed independently.
The Whole-Part pattern approaches this technique at the
pattern level. Other patterns also concentrate on such
subdivision, although more specifically than the generic WholePart.
The Microkernel pattern, for example. subdivides what once
might have been a monolithic block of code. Divide-andConquer also often provides a way to realize the principle of
separation of concerns.
Changeability
We
Maintainability.
Extensibility.
Restructuring.
Portability.
Interoperability
Efficiency
Efficiency
Reliability
Testability
A software
Reusability
Reusability
6.5 Summary(1/3)
Patterns
6.5 Summary(2/3)
6.5 Summary(3/3)