Architecture Design

advertisement
Architecture Design
Speaker: Kuan-Ta Lu
Date: March 31
Software Engineering Phases – The
Design Phase
• In the design phase the architecture(結構) is
established. This phase starts with the requirement
document delivered by the requirement phase and
maps the requirements into an architecture.
• The architecture defines the
– Components
– interfaces
– behaviors
2
(1)Architecture
• The architecture defines the components(元件),
interfaces, and behaviors of the system.
• The components are composed with other
components using their interfaces.
• An interface forms a common boundary of two
components. The interface is the architectural
surface where independent components meet and
communicate with each other. Over the interface,
components interact and affect each other.
3
(2)Implementation Plan
• The implementation plan establishes the schedule
and needed resources. It defines implementation
details including programming languages, platforms,
programming environments, debuggers, and many
more.
• The implementation(執行) plan could be considered
as part of the design, which is the position taken
here, or it could be considered as the first
accomplishment in the implementation phase.
4
(3)Critical Priority Analysis
• The critical priority analysis generates a list of
critical tasks. It is absolutely necessary to
successfully accomplish a critical(關鍵) task. The
project will succeed or fail based on the outcome of
these tasks. Some projects may have more than one
critical task.
• There are two major categories of critical tasks.
– One category of tasks are associated with the building of
the system.
– The other category of critical tasks are associated with the
system itself.
5
(4)Performance Analysis
• Once given the typical scenarios from the
requirement document, the system can be designed
to meet performance(效能) objectives(目標).
• Different system architectures will yield different
predicted(預測) performance characteristics(特徵)
for each typical scenario.
6
(5)Test Plan
• The test plan defines the testing necessary to
establish quality for the system.
• Ideally, 100 percent test coverage of the entire
system would be nice, but this is seldom achieved.
Creating a test suite that covers 90 percent of the
entire system is usually simple. Getting the last 10
percent requires significant amount of development
time.
• Systems are full of undiscovered bugs. The customer
becomes a logical member of the testing team and
bug fixes are pushed off to the next release.
7
Data Flow Diagrams (DFD)
• Data Flow Diagrams are used for functional modeling.
As the name suggests, it is a diagram depicting the
flow of data through the system.
• DFDs (also called data flow graphs) are commonly
used during problem analysis. DFDs are quite general
and are not limited to problem analysis for software
requirements specification(規範).
• DFDs are very useful in understanding a system and
can be effectively used during analysis.
8
Data Flow Diagrams (DFD) (con.)
• The DFD aims to capture the transformations that
take place within a system to the input data so that
eventually the output data are produced.
• The agent that performs the transformation of data
from one state to another is called a process (or a
bubble). So a DFD shows the movement of data
through the different transformation or process in
the system.
9
Data Flow Diagrams (DFD) (con.)
• DFDs are basically of 2 types:
– Physical DFDs are used in the analysis phase to study the
functioning of the current system.
– Logical DFDs are used in the design phase for depicting the
flow of data in proposed system.
10
(1)Elements of Data Flow Diagrams
• Data Flow Diagrams are composed of the four
basic symbols shown below.
– The External Entity symbol represents sources of data
to the system or destinations of data from the system.
– The Data Flow symbol represents movement of data.
– The Data Store symbol represents data that is not
moving (delayed data at rest).
– The Process symbol represents an activity that
transforms or manipulates the data (combines,
reorders, converts, etc.).
11
(1)Elements of Data Flow Diagrams
(con.)
• External Entities
– External entities determine the system boundary.
– They are external to the system being studied.
– They are often beyond the area of influence of the
developer.
– These can represent another system or subsystem.
– These go on margins/edges of data flow diagram.
12
(1)Elements of Data Flow Diagrams
(con.)
• Data Flow
– Data flow represents the input (or output) of data to (or
from) a process ("data in motion").
– Data flows only data, not control.
– Represent the minimum essential data the process needs.
Using only the minimum essential data reduces the
dependence between processes
– Data flows must begin and/or end at a process.
– Data flows are always named. Name is not to include the
word "data".
13
(1)Elements of Data Flow Diagrams
(con.)
• Data Stores
– Data Stores are repository for data that are temporarily or
permanently recorded within the system.
– It is an "inventory" of data.
– These are common link between data and process models.
Only processes may connect with data stores.
– Data stores are named with an appropriate name, not to
include the word "file”.
OR
14
(1)Elements of Data Flow Diagrams
(con.)
• Processes
– Processes are work or actions performed on incoming data
flows to produce outgoing data flows.
– These show data transformation or change.
– Data coming into a process must be "worked on" or
transformed in some way. Thus, all processes must have
inputs and outputs.
15
(2)An Example of a DFD for a System
That Pays Workers
DFD of a system that pays workers.
16
(3)Conventions(常規) used when
drawing DFD's
• It should be pointed out that a DFD is not a flowchart. A
DFD represents that flow of data, while flow chart shows
the flow of control.
• A DFD does not represent procedural information.
• Following are some suggestion for constructing a data
flow graph
– Klork your way consistently from the inputs to the outputs, or
vice versa(反之亦然). If you get stuck(問題), reverse direction.
Start with a high level data flow graph with few major
transforms describing the entire(整個) transformation from the
inputs to outputs and then refine each transform with more
detailed transformation.
17
(3)Conventions used when drawing
DFD's (con.)
– Never try to show control logic. If you find yourself
thinking in terms of loops and decisions, it is time to stop
and start again.
– Label each arrow with proper data elements. Inputs and
outputs of each transform should be carefully identified.
– Make use of * and + operation and show sufficient detail in
the data flow graph.
– Try drawing alternate data flow graphs before setting on
one.
18
Structure Charts
• In modular programming, the complete system is
coded as small independent interacting modules.
Each module is aimed at doing one specific task.
• The design for these modules is prepared in the form
of structure charts.
• A structure chart is a design tool that pictorially(形象
地) shows the relation between processing modules
in computer software.
• Describes the hierarchy of components modules and
the data are transmitted between them.
19
Structure Charts (con.)
Fig 6.2 - Notation used in structure charts.
20
Structure Charts (con.)
Fig 6.3 – Annotations(註解) and data passing in structure charts
21
Structure Charts (con.)
• Data passing
– When one module calls another, the calling module can
send data to the called module so that it can perform(執行)
the function described in its name.
– Two types of data are transmitted.
• The first, parameter data, are items of data needed in the called
module to perform the necessary work.
• In addition, control information (flag data) is also passed. Its
purpose is to assist(協助) in the control of processing by indicating
the occurrence(發生) of, say, errors or end-of-conditions.
22
Data Modeling and Data
Requirements
• The data model focuses on what data should be
stored in the database while the function model
deals with how the data is processed.
Fig 7.1 - Elements of conceptual design
23
Data Modeling and Data
Requirements (con.)
Fig 7.2 - Overall Database Design Process
24
E-R Data Modeling Technique
• The ER model is a conceptual(概念上) data model
that views the real world as a construct of entities
and associations or relationships between entities.
• A basic component of the model is the EntityRelationship diagram, which is used to visually
represent data objects.
• The constructs used in ER model can easily be
transformed into relational tables.
25
E-R Model concept
• Entities
– An entity is any distinguishable(可區別的) object about
which information is stored.
– Another classification of entities can be independent or
dependent (strong or weak) entity.
• An independent entity is one, which does not rely on another
entity for identification.
• A dependent entity is one that relies on another entity for
identification.
Fig 7.6 - Physical and Abstract Entity
26
E-R Model concept (con.)
• Attributes
– Attributes are basically properties of entity. We can use
attributes for identifying and expressing entities.
Fig 7.7 - Entity and its attributes
Fig 7.8 - Employee entity and its attribute values
27
Types of Attributes
• Key or non-key Attributes
– Identifiers(標籤), more commonly called keys or key
attributes uniquely identify an instance(實例) of an entity.
– A descriptor(敘述) describes a non-unique characteristic of
an entity instance.
– An entity usually has an attribute whose values are distinct
for each individual entity.
– There may be a case when one single attribute is not
sufficient to identify entities. Then a combination of
attributes can solve this purpose.
28
Types of Attributes (con.)
• Required or optional Attributes
– When it's required, we must have a value for it, a value
must be known for each entity occurrence.
– When it‘s optional(可選擇的), we could have a value for it,
a value may be known for each entity occurrence.
29
Types of Attributes (con.)
• Simple and composite Attributes
– Composite(組合) attributes can be divided into smaller
subparts. These subparts represent basic attributes with
independent meanings of their own.
– Attributes that can’t be divided into subparts are called
Simple or Atomic attributes.
Composite Attributes
30
Types of Attributes (con.)
• Single-valued and multi-valued Attributes
– Attributes that can have single value at a particular
instance of time are called single-valued.
– A multi-valued attribute can have more than one value at
one time.
• Stored, coded, or derived Attributes
– The attribute from which another attribute value is derived
is called stored attribute.
– Derived attributes are usually created by a formula or by a
summary operation on other attributes.
– A coded value uses one or more letters or numbers to
represent a fact.
31
Entity Types
• An entity set is a set of entities of the same type that
share the same properties, or attributes.
• Entity sets don’t need to be disjointed.
Fig. 7.10 Two entity types and some of the member entities of each
32
Designing basic model and E-R
Diagrams
• In order to begin constructing the basic model, the
modeler must analyze the information gathered
during the requirement analysis for the purpose of:
and
– classifying data objects as either entities or attributes,
– identifying and defining relationships between entities,
– naming and defining identified entities, attributes, and
relationships,
– documenting this information in the data document.
– Finally draw its ER diagram.
33
Designing basic model and E-R
Diagrams (con.)
• E-R diagrams constructs
ENTITY TYPE
WEAK ENTITY TYPE
RELATIONSHIP TYPE
ATTRIBUTE
KEY ATTRIBUTE
34
Designing basic model and E-R
Diagrams (con.)
MULTIVALUED ATTRIBUTE
DERIVED ATTRIBUTE
TOTAL PARTICIPATION OF E2 IN R
Cardinality Ratio 1:N FOR E1:E2 IN R
Structural Constraint(Min,Max) On
Participation Of E In R
35
Designing basic model and E-R
Diagrams (con.)
Fig. 7.13 E-R Diagram of Library Management System.
36
The End~
37
Download