Windows
Architecture
Analyzing
Requirements and Defining Solution
Architectures
1. BUSINESS REQUIREMENTS
ANALYSIS
PROJECT
SCOPE
(Analysing Requirements)
Define Project Responsibilities then
-
Divide
Responsibilities into individual tasks
-
Determine how many
Geographical Areas will be involved
-
Get estimate of number
of people who will be using your application
-
Understand how quickly
client wants the application implemented
ANALYZE THE EXTENT OF
BUSINESS REQUIREMENTS (Design dealing with client's
line of business)
|
Establish Business Requirements
(Rules)
|
-
Description of a
specific task in client's business work flow. e.g.,
inventory control, inventory falling below a
certain amount, re-order stock.
|
|
Establish Type of Problem
|
|
|
Establish Customer Quality
Requirements
|
|
|
Cost-Effectiveness
|
|
ANALYZE CURRENT
PLATFORM AND INFRASTRUCTURE
-
Analyze the technology
already in use
-
Consider input from
staff (part of infrastructure) and should be part of
solution
ANALYZE THE IMPACT OF
TECHNOLOGY MIGRATION
-
Schedule time required
for migration process
-
Test the effects of
migration
-
Minimize business
interrupts during Migration
-
Familiarize personnel
with new changes
-
Prepare contingency
plans for unexpected failure
-
Establish an
Application environment
-
Infrastructure
Company's every part that is not a computer, cables,
etc.
-
Hardware and
software constraints and requirements to run
Applications
-
Identify
Organisational Constraints
-
Identify your
audience
-
Establish an
Implementation Schedule
ANALYZE SECURITY
REQUIREMENTS
-
Consider
-
Which groups
requires access
-
Which data should
each group be given access to
-
What kind of access
should each group be given
-
Identify roles of
Administrators, Groups, Guests and Clients
-
Establish level of
Fault Tolerance / Security Context
-
Identify Impact of
Security
-
Plan for
Maintainability
-
Plan distribution of a
security Database
-
Plan for Auditing /
Logging
-
Identify required
level of security needed
-
Analyze existing
Security Policies
ANALYZE PERFORMANCE
REQUIREMENTS
-
Consider
-
Interoperability
with existing standards
-
Response Time
expectations
-
Transactions /
minute
-
Bandwidth
-
Capacity
-
Bottlenecks
-
Peak vs. Average
requirements
ANALYZE
MAINTAINABILITY REQUIREMENTS
-
Consider
-
Deployment
-
Maintenance
-
Redeployment
ANALYZE EXTENSIBILITY
REQUIREMENTS
ANALYZE AVAILABILITY
REQUIREMENTS
-
Consider
-
Hours of
operation
-
Level of
availability
-
Geographic scope
-
Impact of downtime
ANALYZE HUMAN
FACTORS
ANALYZE INTEGRATION
REQUIREMENTS
ANALYZE EXISTING
BUSINESS PRACTICES
-
Consider
-
Current business
practices
-
Customer's needs
-
Budget
-
Implementation and
training
-
Quality control
requirements
-
Process
engineering
-
Legal issues
ANALYZE SCALABILITY
REQUIREMENTS
2. TECHNICAL SOLUTIONS /
ARCHITECTURE
IDENTIFY THE APPROPRIATE SOLUTION TYPE /
TIER
Single-Tier Application Model

-
-
Two-Tier
Application Model
-
Business rules (B/R)
and user interface (U/I) is on client
-
Client makes
intelligent queries and processes them
-
Database (Data) is
only kept on server for central storage
-
Advantages
-
N-Tier / Multiple
Tier Application Model

MEETING USE CASE
SCENARIOS
(Which technologies are appropriate for
implementation of a given business solution?)
|
ELECTRONIC DATA INTERCHANGE (EDI)
|
|
|
THE INTERNET
|
|
|
POSIX
(PORTABLE OPERATING SYSTEM INTERFACE FOR
UNIX)
|
|
|
SOLUTIONS IN USE CASE SCENARIOS
|
-
Enterprise
Solutions
-
Distributed
Solutions
-
Centralized
Solutions
-
Collaborative
Solutions
|
CHOOSING DATA STORAGE
ARCHITECTURE
FEASIBILITY
TESTING
CONCEPTUAL AND LOGICAL
DESIGN
DEVELOP AN APPROPRIATE
EDPLOYMENT STRATEGY
-
Break down application
in series of phases/versions
-
Plan test environment
for each test phase
-
After testing plan a
test rollout Dry run of how you will implement
product
-
Execute the test
rollout
-
Deploy this phase to
the production environment
-
Collect and analyze
bug reports
-
Fix Bugs
-
Repeat from second
step (Plan test ...) for next phase of product
3. DEVELOPING DATA MODELS
DBMS (Database Management
System) - Computer Application providing the means and
methods to permit a user to interact efficiently with a data
source
Types of DBMS
Methodologies
Flat-File
-
e.g. Telephone
directory
-
Data is stored in one
large file
-
Relies on standard
file I/O processes
-
Contains only one
record structure
-
Uses no links between
separate records
-
Relatively fast
-
Can become very big
and hold redundant data
-
Hierarchical
Database
-
Single flat file is
replaced with series of tables linked in a structured
relationship
-
Child record can be
linked to only one parent
-
Link between a child
and parent record is permanent
-
Child records can only
be reached through a parent record
-
Relational
Database
-
Stores data in one or
more tables which can be linked to any other table
-
Consists of Entities
(Tables), Fields (Columns) and Records (Rows)
Types of DBMS
Methodologies
-
Analysing the
relational data structure of a database use ERA
-
ERA assists in
defining three things about data:
-
The entities
described
-
Kernel entity
describe only one entity, not used to define
relationships
-
Associative
entity ties kernel entities together
-
Characteristic
entity provides additional information about a
specific kernel/associative entity
-
The attributes of
the entities
-
Relationship between
the entities
-
Linking one table
with another for queries
-
Makes use of two keys
-
Primary Key
Unique value for each record in the entity,
referenced by,
-
Foreign Key -
Corresponds to PK of another entity
-
One-To-One
Relationship
-
One-To-Many
Relationship
-
Many-To-Many
Relationship
-
Joining entities -
five types
-
Inner Join -
Relates two tables together and returns all records from each table that have a matching
record in another table
-
Left Outer Join
- All records in the left table are returned, but
only matching records from the right table are displayed.
-
Right Outer Join
- Opposite to Left Outer
-
Full Outer Join
- Returns all matching records from both tables, but nulls are placed where other records are
retrieved, but do not match
-
Cross Join - Two
tables are related but a set of fields to relate to is not provided. All possible combinations of
all rows in the table is made = Cartesian
Product
APPLYING
NORMALIZATION
(Process of removing redundancies from
stored data)
|
Advantages
|
|
|
Rules
of Normalization = Normal Forms:
|
-
First Normal
Form
-
No repeating
groups. Data in rows and columns must contain
only one value
Every record
in the table must be unique and no duplicates are permitted
-
PK must
satisfy several conditions
-
All data must
be non decomposable the data can not be
broken down into simpler pieces
-
Second Normal
Form
-
Third Normal
Form
|
|
Denormalization
|
-
Restore
attributes
-
Restore
duplicate keys
|
APPLYING DATA
INTEGRITY (Refers to the accuracy and consistency of
the data contained in a database)
|
Entity integrity
|
|
|
Referential integrity
|
-
Guarantees the
logical consistency of the database by ensuring the
values for PK and FK pointing to PK are always
in agreement
-
Three rules that
can be imposed when updating PK:
-
Restrict
Delete / Update on PK not allowed
-
Cascade Any
change to PK is automatically applied to all
FK
-
Nullify
Before update is done to PK all corresponding FK
values are set to null
-
CONSIDER
BUSINESS RULES AND CONSTRAINTS
|
4. PRINCIPLES OF USER INTERFACE
DESIGN
WHAT MAKES A GOOD
DESIGN?
|
User
Control
|
The
user must be able to control everything about the
application.
|
|
Directness
|
The
user must see direct results that they take in your
application.
|
|
Consistency
|
The
Environment must be consistent eg: Windows 95/98
environment.
|
|
Forgiveness
|
Tell
users before they make mistakes; e.g., Min/Close
button in Windows, difference in closing and
minimising.
|
|
Feedback
|
Application must communicate with users, when
busy, etc.
|
|
Aesthetics
|
Interface must be visually
appealing.
|
|
Simplicity
|
Only
show user what he needs, hide more complex concepts
until asked for = progressive
disclosure.
|
|
Accelerator keys
|
Use of
shortcut keys, eg: Alt & Ctrl A
keys.
|
|
Choose
the correct controls
|
-
TabStrips
-
Tool, Progress
& StatusBars
-
Tree and
ListViews
-
Sliders, text
boxes, labels, etc.
|
|
Using
MDI's / SDI's
|
|
|
Adding
Shell extensions
|
-
File Object
Any item within the shell, e.g. Printers
-
File Class
Owner of particular type of object e.g. MS Excel
file is a file class
-
Handler Code
that implements a specific shell extension
-
Some shell
extension types include:
-
Context Menu
Editor Context menu appears when user clicks
on a file object with the secondary mouse
button
-
Icon Handler
Adds icons to the classes for a specific file
object
-
Property
Sheet Handler Adds property sheet specific to
a file class or file object
-
Will you use
Console Applications?
-
Accessibility
Visual/hearing impaired or spelling impaired
consideration for users
-
Deployment
Platform Consider
-
32 Bit
Windows or 16 Bit Windows
-
Internet or
Intranet, Browser compatibility, etc. must be
kept in mind
-
User
assistance:
-
Fully indexed
and searchable help topics
-
Context-sensitive help pressing F1
-
"What's this"
Help, ToolTips, Status Bars
|
5. DERIVING THE LOGICAL &
PHYSICAL DESIGN
-
Logical design =
Theory and planning behind the design and implementation
(Physical Design)
-
Logical design is
concerned with behaviour from an abstract perspective
-
Physical Design is
concerned with the actual implementation of the design
-
Logical design is
independent of technology constraints
-
Physical design must
consider system hardware and software where the interface
will be employed
DERIVING THE
LOGICAL/CONCEPTUAL DESIGN
-
Requires that you
begin with a structured base and evolve a solution that
will provide a physical implementation satisfying
business requirements
-
Make use of the
following models to structure your design
|
1. Context
Model |
-
The process that
surrounds your application
-
Consider
external interactions, draw a diagram of the
interaction between your application and other
business processes |
|
2. Work-Flow
Model |
|
|
3.
Task-Sequence Model
|
-
Describes
internal flow of operation inside the
application
-
Reference the
previous two models to generate this model
-
The
task-sequence model describes what your application
needs to do to generate the proper inputs and
outputs in a proper sequence
-
Tasks in this
model differs from the ones in the work-flow model
in that these tasks are internal to your
application, while the tasks in the work-flow model
are external
-
Focus on what
the application does, rather than on what the users
need it to do
-
Draw a flow
chart to outline the process
-
Actions(Rectangular boxes) to be
performed
-
Decision
points(Diamonds), contains a question with all
possible answers
-
Connections(Arrows between action and
decision points), direction of arrow shows
sequence of the elements
|
|
1.
Identifying business objects and services
|
|
|
2.
Interface design
|
|
|
3.
Business object interdependencies
|
|
|
4.
Employing usage scenarios to validate logical
design
|
|
|
5.
Design Revisions
|
-
Producing a
complete logical design does not happen in one
step
-
Begin by
creating an initial design, then criticise and
dissect it, refining the design and adding detail
|
-
Logical Design Risk
Factors to Consider
-
Behaviour of the
logical design does not match usage scenarios
-
Logical design must
be co-ordinated with the enterprise architecture (Hardware/software)
-
Must not depend on
external systems
-
Baselining the Logical
Design
-
Asses the potential
impact of the logical design by considering
-
Performance
-
Maintainability
-
Extensibility
-
Scalability
-
Availability
-
Security
DERIVING THE PHYSICAL
DESIGN
-
Means translating the
logical design into a cost effective solution
-
Roles filled by teams
in a physical design
-
Product Management
Governs the physical design process
-
Development
Creates the design
-
QA/Testing Plans
test process
-
Logistics Plans
appropriate distribution
-
User Education
Plans training programs
-
Assessing the impact
of the design, consider
-
Performance
-
Maintainability -
considering:
-
Good three tier
design
-
Designing for
change
-
Business rules
-
Code
readability
-
Extensibility How
new functionality can be added to the system with minimum cost and time impact
-
Scalability e.g.,
Must perform the same if 10 or 1000 users makes use of
the system. Consider
-
Component state
-
Just in time
activation
-
Clustering
-
Resource
pooling
-
Availability How
often the system is able to perform, measured by MTBF (mean time between failure) and MTTR (mean time
to recovery); consider
-
Security
-
Physical design as a
process: The process of
turning a logical design into a physical solution and
involves a sequence of events
-
Allocating services
to components
-
Distributing
components across the network
-
Refine component
packaging and distribution
-
Define component
interfaces as a mechanism for implementing the service relationship between components
-
Determine physical
media storage, how data will be accessed and distribution of physical data
-
Validate the design
to ensure the physical design is consistent with the logical design and overall enterprise design
6. THE SOLUTIONS FRAMEWORK
Composed of seven
models
|
1.
Team Model
|
-
For building
high performance teams that deliver
-
Team must know
who does what
-
Must know who is
in charge |
|
2. Process Model
|
-
Judging
development trade-offs
-
Addresses
explicit accountability for teams
-
Addresses
project risks early in the planning stages
-
Defines critical
milestones for tracking development
-
Characteristics
-
Envisioning
Vision statement provides product/service
goals
-
Planning
Defines customer expectations
-
Developing
Establish series of interim milestones, debugging,
testing, etc.
-
Stabilisation
Rigid operational requirements for thorough
testing
|
|
3.
Development /Application Model
|
|
|
4.
Solutions Design Model
|
|
|
5.
Enterprise Architecture Model
|
|
|
6. Infrastructure Model
|
|
|
7.
Total Cost of Ownership Model
|
|
7. DEPLOYMENT ISSUES
-
Method of distributing
your application
-
Deployment
Medium
|