Writing a Design Document

Creating a design document is one of the tasks in a software development project. A Design Document is a comprehensive plan for the project. It should present both a high level and a detailed design for the application. The high level design should provide an overview of the approach. The detailed design should provide all the information that is needed to implement the solution.

There is no single approach in documenting a design. However, when I develop a Design Document, I always ask myself these:

- Can one develop the envisioned application with this Design Document and its corresponding Requirements Document?

- If this Design Document is given to several teams to implement, would the resulting application work the same way?

I believe, if a Design Document is well written the answer to both questions will be "Yes".

A sample outline could include the following:

1.0 Introduction
1.1 Project Background
Brief Description of the project including the system owner.

1.2 Document Objectives
Briefly describe the objectives the Design Document; Explain that the design document is a living document during the project life cycle

1.3 References
Identify sources of information used to develop this document; this could include the Requirements Document, Design Decision Documentation and other Requirements Traceability Matrix.

1.4 Glossary
Define the terms used in the document and in the project

2.0 System Overview
2.1 Business Process
Describe the business processes that will be modeled by the system.

2.1.1 Logical Process Flow
The logical process flow is meant to visually describe the logic and flow of an application process. The purpose of the Logical Process Flow document is to communicate and confirm expected functionality.

2.1.2 Business Process Model
This model should define every business rule that needs to be implemented. Use the logical process flow to help group all the business rules.

2.2 System Users
Identify the potential system users and levels of expertise needed by the various user types; Indicate how each user type will interact with the system

2.3 Dependencies and Limitations
List any dependecies and limitations of the application

3.0 Overall Architecture

3.1 Structure
Decompose the system into design entities that will interact with and transform data

3.2 Data Design and Control
Identify specific data elements and logical data groupings that are stored and processed by the design entities in 3.1

3.3 Security
Describe the application Security

4.0 User Interface
Describe the user interface and the operating environment, including the menu hierarchy, data entry screens, display screens, online help, and system messages.

5.0 Database Design

5.1 Data Flow Diagrams

5.2 Data Model

5.3 Data Mapping

6.0 Requirements Cross Reference
Tie back the document to the requirements

Getting the Specs Right

We're currently working on a project where the business need was years old, and the RFP spec was written four years before getting funding - and was done by a consultant who didn't bother to understand the customer's business.

As a result we're doing a full business process analysis/strategic planning gig on top of the contracted work. And what was specified as a stand-alone app in multiple locations interfacing with a main frame through flat files, has become a full-blown enterprise app with a central Oracle server, Oracle Enterprise Application Server for Wireless and EAI (Open Source Jetstream) to the mainframe app.

It has become a much more exciting project, but a lot more work in the same time frame.

But we're gaining lots of "lessons learned" for the customer, as well as ourselves. &#59;)

The first lesson is a renewed appreciation for how powerful a wiki(flowchart, business process flow chart) can be. For the first time in 30 years, silos of knowledge within the customer's organization are being unified into the "big picture". And the JAD sessions have caused both the business and IT stake-holders to open up and share their knowledge of their piece of the puzzle.

The second lesson has been to combine presentations of the process analysis (current state and future state) with the UI prototyping JAD sessions.

It has been great working with the customer's folk, and their excitement about finally getting a wireless logistics system has made all the extra work worthwhile.

The third lesson? Bad specs make for a lot of extra work. But this isn't really new is it? :))

So, in a relatively short period of time, we're turning out-dated specs based upon a poor understanding of the customer's working day and deprecated wireless standards, into a complete business process model, data flow model, enterprise data model and system architecture... And having a lot of fun doing it. :>>

What are new or updated features in Oracle 10g that are directly related to database performance?

What are some enhancements in Oracle 10g that are directly related to database performance? Here is a summary of new or updated features in 10g based on
Oracle Database Performance Tuning Guide 10g Release 1 (10.1)

1. Automatic Performance Diagnostic and Tuning Features
10g has the following Diagnostic and Tuning tools:
- Automatic SQL Tuning Advisor
- Automatic Database Diagnostic Monitoring (ADDM)
- Automatic Optimizer Statistics Collection
- Automatic Workload Repository (AWR)

2. Oracle Trace Obsolescence
Oracle Trace as a functionality is no longer available. For the tracing of database activity, SQL Trace or TKPROF should be used instead.

3. Rule-based Optimization (RBO) Obsolescence
RBO is no longer supported in 10g. It is available as a non-supported feature to provide backwards compatibility. Oracle Metalink provides desupport notices and related articles.

4. Automatic Shared Memory Management
Automatic Shared Memory Management utilizes self-tuning algorithms to put Oracle in control of allocating memory within the SGA. Normally, SGA is controlled by DB_CACHE_SIZE (default block size), SHARED_POOL_SIZE, LARGE_POOL_SIZE, JAVA_POOL_SIZE. To utilize Automatic Shared Memory Management, the STATISTICS_LEVEL is set to TYPICAL or ALL and the SGA_TARGET is set to a value other than "0". The SGA_TARGET parameter sets the amount of memory available to the SGA.

5. Wait Model Improvements
The following views have been modified:
The following are new views:

6. Optimizer Hints
The following are new Hints:
- "SPREAD_MIN_ANALYSIS": specifies analysis options for spreadsheets
- "USE_NL_WITH_INDEX": specifies a nested loops join.
- "QB_NAME": specifies a name for a query block.
- "NO_QUERY_TRANSFORMATION": causes the optimizer to skip all query transformations.
- "NO_USE_NL", "NO_USE_MERGE", "NO_USE_HASH", "NO_INDEX_FFS", "NO_INDEX_SS", and "NO_STAR_TRANSFORMATION": cause the optimizer to exclude various operations from the execution plan
- "INDEX_SS", "INDEX_SS_ASC", and "INDEX_SS_DESC": cause the optimizer to use index skip scan operations in the execution plan
The following have been deprecated:

7. Hash Partitioned Global Indexes
Hash Partitioned Global Index can improve performance of indexes where a small number leaf blocks in the index have high contention in multiuser OLTP environment. With the support for hash partitioned global indexes, index entries are hashed to different partitions based on partitioning key and the number of partitions. This results in increased throughput because it spreads out contention over number of defined partitions.

8. Automatic Optimizer Statistics Collection
Automated statistics collection reduces the chances of getting poor execution plans because of missing or stale statistics. Automated statistics collection allow Oracle to gather the statistics on all database objects automatically and maintains those statistics in a regularly-scheduled maintenance job.

MySQL Error 1130 when connecting from MySQL Control Center

I am running MySQL control center on a Windows 2000 box and trying to connect to a newly installed mysql database on a Linux box. How do I solve this error:
[mysql] ERROR 1130: Host 'HOSTNAME' is not allowed to connect to this MySQL server ?

Issue the following:

$ mysql -uUSERNAME -pPASSWORD mysql
mysql> grant all on * to 'USERNAME' identified by 'PASSWORD';

This will give the user, specified by 'USERNAME', all the privileges on all the tables and be able to connect from any host. Hence, if you issue:

mysql> select user, host from user;

The result will be something like:
| user | host |
| admin | % |
| admin | localhost |
| blogmaster | localhost |
| horde | localhost |
| surveymaster | localhost |

So, you may want to modify the SQL statement if you don't want to grant the user all the privileges. :)

Installing & Securing Windows XP

Fran├žois PLANQUE recently wrote in his blog about the trials and tribulations of moving, especially in regards to his computer and networking equipment. In his "Installing & Securing Windows XP" article, he focused on the problems associated with recovering a PC and upgrading to Windows XP at the same time. I recently had a similar experience (caused by a laptop monitor dying rather than by a move) and found the following helpful.

Jerry Pournelle, Ph.D. published a good "crib sheet" for installing a new system in the "Hot House Computing" article of the Chaos Manor column for DDJ. I've adapted it here, from my own experiences.

  1. The drive software, or other start-up software from the manufacturer's boot disk.
  2. Windows XP.
  3. Windows XP SP-1a from a CD.
  4. Intel chipset information from the motherboard disk for a new installation or driver software.
  5. Intel Ethernet from that disk for a new installation or more driver software from the manufacturer's CD.
  6. A firewall or hide behind a router.
  7. Any good Anti Virus from the Intel startup disk (includes NAV) or other non-online source.
  8. Intel Active Monitor from the Intel startup disk, if required.
  9. Other stuff from the Intel startup disk.
  10. Windows updates, then Office updates (if used) then your applications and their updates.

PC World magazine has had some helpful articles and product reviews as well.

Symantec's Norton wiki(Firewall) and Internet Security Suite are always highly rated, though I've had many problems (crashing Windows, ccApp.exe failing, loosing connection with Outlook 2002) with the 2004 version of NIS. We're planning on trying Trend Micro's PC-cillin internet security suite when the next NIS subscription runs out.

In addition to AdAware and Spybot - Search & Destroy, we've found the Yahoo Toolbar Anti-spy to be useful.

Of course, I would rather being doing something fun - analyzing and designing a large Oracle database application, like the wireless Logistics Barcode system we're doing for a regional transportation district here in the Bay Area with our partner Eleusinian Enterprises.

October 2019
Mon Tue Wed Thu Fri Sat Sun
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
 << <   > >>
The TeleInterActive Press is a collection of blogs by Clarise Z. Doval Santos and Joseph A. di Paolantonio, covering the Internet of Things, Data Management and Analytics, and other topics for business and pleasure. 37.540686772871 -122.516149406889



The TeleInterActive Lifestyle

Yackity Blog Blog

The Cynosural Blog

Open Source Solutions


The TeleInterActive Press

  XML Feeds


Our current thinking on sensor analytics ecosystems (SAE) bringing together critical solution spaces best addressed by Internet of Things (IoT) and advances in Data Management and Analytics (DMA) is updated frequently. The following links to a static, scaleable vector graphic of the mindmap.

Recent Posts

Bootstrap back-end