The Design Phase - School of Computer Science

advertisement
Large Scale Systems Design
G52LSS
Lecture 18 – The Design Phase
•Elements
of Design
•User Interface Design
•Data Storage Design
•Architecture Design
•Program Design
Learning outcomes: describe the most important aspects of the
design phase in the SDLC; understand interface structure design as
a tool for user interface design; understand structure chart as a tool
for program design.
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
1
Elements of Design
Design Selection
Architecture Design
Interface Design
Data Storage Design
Program Design
System Specification
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
2
Three main design strategies:
•
Develop a custom application in-house – builds technical skills
and functional knowledge within the organisation
•
Develop the application by customising of-the-shelf software
products – customisation by workaround or systems integration
•
Outsource the development of the application – risk to
compromise confidential information, no skills learn from
development
Consideration aspects when selecting a design strategy:
•
Business need – unique, common, critical for business?
•
In-house experience – does functional/technical experience exist?
•
Project skills – strategic/non-strategic/desirable?
•
Project management – skilled/non-skilled?
•
Time frame – flexible/short/tight?
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
3
Physical Models
Logical process (DFDs) and data (ERDs) models are
converted to physical process and data models, which
show implementation details including:
•
Actual, specific technology – available for the system?
•
Format of information – files/databases/emails/reports?
•
Human interaction with system – details
Transition from logical to physical DFD
•
Add implementation references
•
Draw a human-machine boundary
•
Add system-related data stores, data flows and processes
Update data elements in the data flows
• Update the metadata in the CASE repository
•
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
4
Example 18.1 Physical Level 0 DFD for Health Club Membership System
update request
verbal form
1
Maintain
member details Members
Details
paper form SQL code
member record
member updates
delete member request
manual (keep paper record)
database
D1 Members
member to delete
member record
Member
renewal offer
renew details
request
3
Maintain
electronic form
Club Usage
(entry card)
Records
club visit info
JAVA code
2
Maintain
Memberships
Details
SQL code
renew details request
usage details
Club
Manager
new membership details
current membership
details
renewal details
club visit
University of Nottingham
School of Computer Science
current membership
new member request
file
D2 Memberships
club usage report printed and
email form
database
D3 Club usage
Large Scale Systems Design
Dr Dario Landa-Silva
5
User Interface Design
Interaction of the system with external entities:
user interfaces
• system interfaces
•
Aims of good user interface design:
pleasing to the eye
• simple to use
• minimise user’s effort to accomplish tasks
•
Principles of user interface design:
Layout – consistency throughout the system
• Content awareness – for status of system
• Aesthetics – functional vs. pleasing the user
• User experience – easy to use vs. easy to learn
• Consistency – in functionality throughout the system
• Minimal user effort – simple to use
•
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
6
Interface Structure Design – shows the components of the
interface and their interaction.
0
Main menu
1
Manage members
2
Manage memberships
3
Generate reports
1.1
Add member
2.1
Add membership
3.1
Memberships
1.2
Edit member
2.2
Renew membership
3.2
Members
1.3
Show member
2.3
Show membership
3.3
Usage
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
7
User Interface Design Principles
Navigation – the goal is to make the system as simple as
possible to use.
• Prevent
mistakes – e.g. don’t display commands that
cannot be used
• Simplify recovery from mistakes – e.g. the typical ‘undo’
option
• Use consistent grammar order – e.g. object then action or
vice-versa
The system should provide (clear, concise and complete)
navigation messages to the user in order to respond to
users’ action and inform of the status of the interaction:
error messages, confirmation messages, acknowledge
messages, delay message, help message.
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
8
Input – the goal is to simply and easily capture accurate
information.
• Adequate
online and batch processing – is real time
information needed?
• Capture data at the source – avoid intermediary collection
• Minimise keystrokes – minimise cost in time and money
• Validate input – very important to ensure accuracy
Output – the goal is to present information to users so
they can accurately understand it with the least effort.
• Understand
report usage – design accordingly to users
needs
• Manage information load – not all information, not a data
dump
• Minimise bias – ways of sorting records, highlighting
fields, etc.
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
9
Data Storage Design
Step 1 Select format of data storage: files, databases or a
combination of these two.
Criteria for selection:
• Data
types
• Type
of application system
• Existing
• Future
software formats
needs
Step 2 Optimise performance of data storage.
• Optimise
storage efficiency
• Optimise
access speed
• Estimate
adequate storage size
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
10
Types of files:
• master
files – store core information to the business
• look-up files – store static values used commonly for
validation
• transaction files – information to update the master file
• audit files – records the ‘before’ and ‘after’ images of data
• history files – stores past transactions
Types of databases:
• legacy
– based on older technology
• relational – based on collection of tables each with a
primary key
• object-oriented – based on the object oriented paradigm
• multi-dimensional – used for data warehousing for decision
making support systems
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
11
Architecture Design
Software (basic functions)
•
Data storage
•
Data access logic
•
Application logic
•
Presentation logic
Hardware (basic components)
•
Client computers
•
Servers
•
Network
The goal of architecture design is to decide on the
assignment of software components to hardware.
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
12
Non-functional requirements play an important role in
the architecture design:
• Operational requirements
• Operating systems, other information systems.
• Performance requirements
• Response time, processing/storage capacity, reliability
• Security Requirements
• Accessibility to data, encryption, authentication,
viruses
• Cultural/political requirements
• Specific to location, multilingual, norms, legal
requirements, disability
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
13
Program Design
Coding without prior planning and design often leads to
inefficient programs, non-reusable code and systems
that are not functional.
Traditional top-down modular approach:
• Structure
chart – high-level diagram showing organisation
and interactions of the various pieces of code. For each
component, the structure chart shows sequence (order for
calling the modules), selection (conditions for calling a
module) and iteration (how often a component is repeated).
• Program
specifications – communicate the basic logic and
structure of the pieces of code to help reduce logical and
syntactical errors during the implementation phase.
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
14
Guidelines for good program design:
•
Build modules with high cohesion – cohesion refers to how well
the lines of code relate to each other; module performing only one
task for high cohesion
•
Build modules that are loosely coupled – coupling refers to how
closely modules are interrelated; design interrelation between
modules for independency to avoid changes affecting multiple
modules
•
Create high fan-in – refers to the number of modules that call or
use the given module; high fan-in indicates module is reused in
many places indicating is well written generic code
•
Avoid high fan-out – refers to the number of subordinate
modules that are associated to a single control module; the less
subordinate modules (around 8), the more effective control
•
Assess the structure chart for quality – there are defined
guidelines and standards based on the above recommendations
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
15
Example 18.2 Example of a structure chart with low fan-in
and high fan-out (which is undesirable).
1.0
Reserve
Room
Guest Record
Re
co
rd
es
t
Gu
ID
Re
co
er R
ecor
d
rd
rd
co
Re
Gu
es
t
tom
d
University of Nottingham
School of Computer Science
es e
rv a
t io n
Cus
ce
en
1.2
Read
Guest
Record
1.3
Edit New
Guest
Information
dR
r
efe
ll
co r
Re
l Fu
dat
e
Upd
ated
Pr
1.1
Locate
Available
Room
te
Ho
ion
vat
ser
Re
te
Da
Up
1.4
Edit Old
Guest
Information
1.5a
Assign
Room
1.5b
Assign
Preference
Information
Large Scale Systems Design
Dr Dario Landa-Silva
1.6
Write
Updated
Customer
Record
1.8
Print
Reservation
Confirmation
1.7
Write
New
Reservation
16
Additional Reading
Chapter 8 to 12 of (Dennis et al., 2006)
Chapter 16 of (Kendall and Kendall, 2005)
University of Nottingham
School of Computer Science
Large Scale Systems Design
Dr Dario Landa-Silva
17
Download