Saturday, October 27, 2007

UML Design tools/sample

Check following URL for smaples of UML 2.0 diagrams

-Microsoft: VISO
-IBM: Rational Rose
-Visual Paradigram

Friday, October 26, 2007

What is Agile Software Development

Agile Software Development is a conceptual framework for software engineering that promotes development iterations throughout the software development life circle.

-Customoer satisfaction by rapid and continous delivery of useful (working) software
-Working software is deliveryed frequently (weeks rather than months)
-Late change of requirements are welcomed
-Regular adaption to changing circumastances
-Projects are built around motivated and trusted indiduals
-Face to face conversation is the best form of communication
-Close,daily,cooperation between business people and developers

Comparation with other method
Adaptive --> Predective
Short time period : in weeks --> in months
Progess mesuring: working program --> deliverable articrafts
Project size: <40 --> any size

DSDM -- Dynamic Systems Development Method
FDD -- Feature Drived Development

Big Challenge:
-database structure changes when new features added
Agile data structure: XML data field
-document update

Software testing

To undertsnad what is software testing, you need to answer following quesitons

1. What is differency between software testing and SQA(Software Quality Asurance)

2. What levels of testing can you imagine?
Unit testing
Functional testing
Integration testing
System testing
System integration testing
Acceptance testing
Alpha testing -- a group of potential users or a tema of tester on developer side
Beta testing -- customer, end user, open publicly or open partially

3. What is Black/White/Grey Box Testing? and their differences.

4. What is a test case/suite/scenario?
Case ID, Category, prerequisite, Event, Action, Input, Expected Result, Actual Result

5. What is test script
test case, test procedure, test data

6. What is a testing circle
.requirement analisys/design
.test planning, test strategy, test bed creation
.test development: test procedures, test cases, test scenrio
.test execution
.test reporting
.retesting the defects

7. What is "Code coverage of testing"?

Thursday, October 25, 2007

Software Architecture

Software architecture is structure of software of system, it is organizaed in views, just like diferent type of blueprint of boulding architectutre.

Architecture Design == Stragitic Design == Global Design ==? High Level Design
Detailed Design == Tactic Design == Local Design ==? Low Level Design

Views of software architecutre:
1. Functional view or logical view
2. Development view or structral view
3. Code view
4. Physical view or deployment veiw
5. Concurrency/process/thread view
6. User action/feedbak view

Architecture Framework
4+1 -->logic,development,process,physical + use cases/scenarios
Zachman framework
Feaderal Enterprise Architecture

Architectural Styles / Patterns
Database-centric architecture
Distributed computing
Event Driven Architecture
Implicit invocation
Monolithic application
Pipes and filters
Representational State Transfer
Structured (module-based but usually monolithic within modules)
Software componentry (strictly module-based, usually object-oriented programming within modules, slightly less monolithic)
Service-oriented architecture
Search-oriented architecture
Space based architecture
Shared nothing architecture
Three-tier model

Wednesday, October 24, 2007

WBS-Work Breakdown Structures

A Work Breakdown Structure is a results-oriented family tree that captures all the work of a project in an organized way.


there are two type of WBS chart.

1. Product Oriented or Deliverable Oriented WBS
based on the achievement and objectives of the project

2. Process Oriented or Task Oriented WBS
based on the tasks

Generating a WBS from Microsoft Project
There is a third-party add-on software application for MS-Project called WBS Chart Pro that will convert your Gantt chart task list with indents into a standard WBS graphic in a few clicks. You can also use this application to create a WBS and transfer it back MSP. I have found this software very valuable in organizing project work into a WBS, reviewing the scope of proposed projects, and helping managers visualize the WBS implicit in their MS-Project schedules

Principles of project management

Project management principles are most often learned from experience, and they have universal validity for all projects. It is up to you to apply them intelligently to your project. I woulld like to put those principiles in following 6W and 6-ations.

1st-W. Why? -- You must ask why do we have to do this project.
What business you are in for this project
What business value will the poroject bring to customer
What business value will the project bring to you
Undertand the "why" will help you understand requirements of customers.

keywords: business value, business needs

2nd-W. What? -- You must unserdtand clearly what the customer requirements are.
You must document all requirements and get it under version control.
You must also expect the changes of requirement and have proper change control
Software requirement specificaion(SRS), Requirement Tracking Matrix

Keywords: SRS, RTM

3rd-W. How? -- You must be able to answer to asnwer "How"
development project RESONABLE plan (project scope, schedule, cost, ...)
development project cost estimation correctly.
specify the development methodology and your approch for the project

keywords: plan, feasibility, WBS(work breakdown structure),
PMTproject management traiangle(cost,schedule,technical objectives)

4th-W. Who? -- You must establish a very clear ownership of you each tasks
create the ptoject teams, and have each task to have an owner.

Keywords: the Motivation Triangle(3T):task ownership/timely feedback/tools and training

5th-W. Where? -- this important especially for outsourcing offshore projects.
You must clearly define where the task should be conducted. The location, department, or teams

6th-W. When --
project deadline, milestone dateline, task deadkines

1st-ation: Communication -- keep the project wide visibility
Good Communication is very very important facotor.
each memebr of be easy to know/understand the progress of the projects.
Milestone review, weekly/montly reviews
management tools
good documents, feedback,

2nd-ation: Configuration -- project baseline control and configurarion management
baseline the project (cost-schedule-objectives) and get it under control
configuration manager / change control board

3rd-ation: Documentation -- write down all important stuff, save and share it
good documents are key and basic to have a good communications betwwen members.
especially for offshore projects.
requirements,design, schedule,review meeting minutes, implementation ideas,
writing agreement from customer

"it is not documented" == "it did not happen".

4th-ation: verification -- it means testing,
all requirement/fuucntions must be tested and verified.

"It is not tested" == "it does not work"

5th-ation: Satisfaction of customer
If your output/result does not satisfy customer, it means failure.
Keep the customer's real needs and requirements continuously in view
Expect and reflect requirement changes

6th-ation: Preparation -- get prepared for any potential risk
Risk management
identifying all risks(leave no stone unturned) and find a solution for each risk
solve problems as they arise

Tuesday, October 23, 2007

Important things to assure success offsite development.

Communication problem is always the bg problem.

- mis-understanding of requirement/specification
--> the outout result is not what you wanted
- information and confirmation and questiom can not reply quickly
--> effectiveness is bad

1. Good Documentation
avoid mis-unserdtanding of requirement and specification
2. Visible work-in-progress
Development management tools -- status visible at any stage
3. Reviews and report periodically
4. Information relay, each step, someone from prev stage will follow
Assign on-site engineer, answer questions promptly.

Tips to Evaluate your IT Solution Provider

6 Tips to evaluate your development partner

As the customer, how would you ensure that you are dealing with a service provider who can manage your requirements accurately? Sometimes even you are not absolutely clear as to what the requirements for your software product are.

Here are some tips on how to evaluate your development partner or service provider.

Examine the development partner/service provider for good documentation practices. Good Documentation is very important for effectively managing and implementing projects. A Requirements document is mandatory.

Examine your service provider's requirements document and verify that it truly reflects your needs.

Evaluate the development methodology for good processes. Ask your service provider/developer to submit their methodology and project plan. You can be assured that if your partner has well-developed processes, you will have a quality output.

In outsource models, communication is a very crucial aspect. Please ensure that your developer has clear and excellent communication channels.

Ensure that the scope of the project is well defined. Often, there are conflicts resulting out of poor understanding of the scope by either party.

Evaluate your development partner to see if they understand your business model. A service provider who sees the bigger picture of your business is always the better choice. His value additions can go beyond your specifications.

All the above information has been compiled from our experience and learning through interaction with over 125 clients across the globe, in building dynamic websites anchored in different business models for them. Read more about the services we offer.

If you are interested in hiring us for our consulting expertise, or helping you set up business on the Internet or to add value to your existing online presence, please contact us and tell us more about your business here.

Tuesday, October 16, 2007

Create Bootable USB Flash Drive

The following contents was copied from fillowing URL, just in case the url will becomes in-available some day.

Create Bootable USB Flash Drive
A computer with a BIOS that allows for booting from a USB port.
I used a Dell Optiplex GX260 that has a Phoenix ROM BIOS Plus version 1.10 revision A05.
A Bootable floppy disk or CD.
I used a Windows 98 bootable CD. For those who have Dell systems, you can also use the bootable Dell Optiplex Resource CD that is used to reinstall your system with Windows 98.
Utilities with the ability to create a master boot record, create partitions, set active partitions, and format and transfer boot files to the active partition
I used the DOS FDISK and FORMAT that are on the Windows 98 CD.
Of course, the USB drive that you want to make bootable
I used a 256MB SanDisk Cruzer Mini USB Flash Drive.
Make the USB drive the first in the drive sequence.
Why?? fdisk does not allow for a partition to be set as ACTIVE (bootable) unless it is the first drive. It is most likely that your hard drive(s) is set as the first drive. This needs to be changed.
How?? Setting your USB drive to be the first in the drive sequence can be done by following ONE of the methods below. No matter which method you follow, the computer MUST be booted with the USB drive plugged in into the computer. Take a note of how the options that you are about to change were set before, as they will need to be changed back later.

Method # 1. BIOS drive sequence option.
Depending on your BIOS, there may be an option to change the drive sequence. On mine, there was an option labeled "Hard-Disk Drive Sequence". If your BIOS has this or a similar option, make sure you change the sequence so that the USB Drive is listed first.

Method # 2. Disabling other hard drives.
Again, this is done from the BIOS. Different BIOS's may have different options to disable the hard drive. On mine, the system had just one hard drive. I changed the option labeled "Primary Drive 0" to "OFF".

Method # 3. Unplugging the hard drives.
If your BIOS doesn't have an option to change the drive sequence or to turn off the hard drive, you can turn off your computer and unplug your hard drive(s). Make sure you know what you are doing here. Opening your computer case may result in voiding your computer warranty if you have one.

Boot the computer from the boot floppy/CD into the command prompt with the USB Drive plugged in.
Run fdisk
Use fdisk's "Set Active Partition" (option 2) to set the primary partition on the USB Drive to ACTIVE.
This step assumes that a primary partition already exists on the USB Drive. If this is not the case, use fdisk to create one. As noted in step # 1, fdisk will not allow for setting the the partition to ACTIVE unless the drive the partition is on is the FIRST in the drive sequence.
Exit fdisk.
Reboot the computer from boot floppy/CD into the command prompt with the USB Drive plugged in.
At the command prompt enter the following command: dir c:
This step is just to verify that the C: drive is actually the primary partition on the USB Drive. Regardless of the result that the command generates whether it be a listing of files or an error message, what is important here is to make sure that the size of the primary partition on the USB Drive is roughly equal to the sum of the empty space and the used space.
Format and copy the boot files to the primary partition.
At the command prompt, from the directory where FORMAT.COM is located, enter:format /s c:
Run fdisk /mbr
"fdisk /mbr" writes the master boot record, in this case to the USB drive, without altering the partition table information.
Restart the computer and choose booting from the USB Drive. If all goes well, you should see a C:> command prompt.
Change the computer settings back to what they were before step # 1.
I had a few people e-mail me with an error message "No fixed disks present..." which they encountered when they ran fdisk.. Personally, I did not run into this issue or know what is causing it on other people's machines. A simple Google search and this link can provide more information. Good luck

Friday, October 12, 2007

EnterpriseDB update fails on fedora 7.0

update fails on fedora 7.0I have report following issue to support, but there is not reply. so I post it here. Hope someone could give some advice.

I am installing edb-linux-x86_82412 on Linux(32bit) fedora 7.0. The installation is going smoothly until last step "Finish". There is an option of "Update & Finish" at finish of installation. If I select this option. the update service will failed with following error(also see attached file):

"Process exited with an error:1(exit value:1)"

Once the error occurred, the installation can not be finished. and all related windows like Error window, Update Service window are all not able to be closed. No matter how long time you wait. The only way is to kill the processes forcibly. because EnterpriseDB is not installed correctly, so it ca not be started.

I have tried following things so far.
1. if not choose to update, then everything is OK.
2. finish installation firstly, then start update service, the same problem will occur.
3. once the update problem occurs, I have to reboot system and un-install it then re-install it.

Currently, I am using the installation without update, it works normally. But I think we need to update it someday, so please help find out the cause and tell me how to escape the problem.

Thursday, October 11, 2007

InDesign Server License

See detail at


Adobe® InDesign® CS3 Server Single Instanceサーバ数ライセンス

Adobe® InDesign® CS3 Server Multi InstanceCPU数ライセンス

Wednesday, October 10, 2007

500 OOPS: cannot change directory

When I try to connect my fedora 7.0 server by ftp, following error occured.

500 OOPS: cannot change directory:/home/alvin

500 OOPS: child died

Connection closed by remote host.

It seems that the problem caused by SELinux setting (set as enforcing),

I solved the problem by changing SELinux setting to "permissive"


Be sure to change System Default Enforcing Mode too, otheriwse, the problem will occurs again after system reboot.

Tuesday, October 9, 2007

Install EnterpriseDB on fedora 7.0

This memo is taken when install "EnterpriseDB Advanced Server 8.2" on fedora 7.0

Procedure of pre-installation and installation
Platform: fedora 7.0 (Linux) EnterpriseDB Version

0. Login as root
1. Download package enterpriseedb-linux-x86_82412.tar

2. Extract to any folder, e.g. /usr/src/enterprisedb8.2/, files are as following


3. run

cd /usr/src/enterprisedb8.2

if you set SELinux in enforce mode, it ask you change it to permissive mode, do it as instructed.

4. start installer of enterprisedb8.2

Product key: 3N4DS-3DZGP-KMF00-11C2X-XHHCY

5. change install destination directory to following when prompted


6. Set up Operating System User ID
the user created will be used for run the database server

passwd: ********

7. Set Up Database Administrator USer ID
this user will be used to administrate database use default(the same user for run the database server)

8. Data Destination and WAL Directory use default (EnterpriseDB home/data and EnterpriseDB home/data/pg_xlog

9.Setup Dyna Tune choose Development
Summary: port 5444 ....

10. Finish with run auto-update
Process exit with error code 1 and it could not be finished automatically. have to kill the process force.

At this moment, I had to de-install and re-intall it. I can not find a way to run the update so far.
please don't run the update when you finish installation.

to do list:
need to download ojdbc14.jar from oracle site and put it to sub folder jre1.5/lib/ext which is under EnterpriseDB home directory /u01/app/enterprisedb/

different features of EnterprinseDB

1. there is copy state for copying data between database tables and physical data files.

2. inheritance of database table. One table can inherit from another to share fields just like class of object oriented programming.

key word ONLY is used to retrieve data from base class only(without retrieving data from inheriting tables in hierachy)

3. Quated identifier are case senstive.

following two statement are the same:

Select * from Foo; Select * from foo;

but following statement are not the same:

Select * from "Foo"; Select * from "foo";

4. Dollar-Quated string constants

A dollar-quoted string constant consists of a dollar sign ($), an optional "tag" of zero or more characters, another dollar sign, an arbitrary sequence of characters that makes up the string content, a dollar sign, the same tag that began this dollar quote, and a dollar sign. For example, here are two different ways to specify the string "Dianne's horse" using dollar quoting:

$$Dianne's horse$$

$SomeTag$Dianne's horse$SomeTag$

trouble of fedora 7.0 installation on Dell Dimension 5150

when install fedora 7.0 on Dell dimension 5150, there was trouble as following.

No matter you use Live-CD or Bootable DVD media, the installer will hang up
after showing following message.



The problem has something to do with assigning irq 12 to the mouse. If irq 12 is assigned the the mouse in bios it would work, but if irq 12 is not assigned to the bios mouse it would hang at the word ready.

In my case, I avoid the problem by following steps
1. At boot menu, select boot from image with graphical (make it highlighted)
2. Press tab key, the boot command line will appear
3. Appended following option to the command line


Above steps worked on my machine.

You can get more information from following URL