Sunday, February 22, 2009
1/100 童友社零戰
Thursday, November 27, 2008
【簡單模型節】完成品 3
【簡單模型節】完成品 2
【簡單模型節】完成品 1
Sunday, November 09, 2008
香港人的【簡單模型節】小進度
Wednesday, October 22, 2008
香港人的【簡單模型節】
Friday, March 17, 2006
Why do software projects fail so often?
Why do software projects fail?
1. Lack of User Inputs
2. Incomplete Requirements & Specifications
3. Changing Requirements & Specifications
4. Lack of Executive Support
5. Technology Incompetence
6. Lack of Resources
7. Unrealistic Expectations
8. Unclear Objectives
9. Unrealistic Time Frames
10. New Technology
11. Other
source: http://www.stylusinc.com/Common/Concerns/SoftwareProjectsFailure.php
What can we do to make them succeed?
A formula for project success:
success = planning * execution
There are ten keys to make successful software projects:
1. Clear vision
2. Stable, complete, written requirements
3. Detailed user interface prototypes
4. Effective project management
5. Accurate estimates
6. Two-phase budgeting
7. A focus on quality
8. Technology expertise
9. Active risk management
10. Remember, software is created by humans
source: http://www.issre2001.org/10KeysToSuccess.pdf#search='software%20project'
What is the importance of software project management?
Software Project Management is a sub-discipline of Project management in which software projects are planned, monitored and controlled.
The purpose of Project Planning is to identify the scope of the project, estimate the work involved, and create a project schedule. Project planning begins with requirements that define the software to be developed. The project plan is then developed to describe the tasks that will lead to completion.
The purpose of Project Monitoring and Control is to keep the team and management up to date on the project's progress. If the project deviates from the plan, then the project manager can take action to correct the problem. Project monitoring and control involves status meetings to gather status from the team. When changes need to be made, Change control is used to keep the products up to date.
source: http://en.wikipedia.org/wiki/Software_project_management
1. Lack of User Inputs
2. Incomplete Requirements & Specifications
3. Changing Requirements & Specifications
4. Lack of Executive Support
5. Technology Incompetence
6. Lack of Resources
7. Unrealistic Expectations
8. Unclear Objectives
9. Unrealistic Time Frames
10. New Technology
11. Other
source: http://www.stylusinc.com/Common/Concerns/SoftwareProjectsFailure.php
What can we do to make them succeed?
A formula for project success:
success = planning * execution
There are ten keys to make successful software projects:
1. Clear vision
2. Stable, complete, written requirements
3. Detailed user interface prototypes
4. Effective project management
5. Accurate estimates
6. Two-phase budgeting
7. A focus on quality
8. Technology expertise
9. Active risk management
10. Remember, software is created by humans
source: http://www.issre2001.org/10KeysToSuccess.pdf#search='software%20project'
What is the importance of software project management?
Software Project Management is a sub-discipline of Project management in which software projects are planned, monitored and controlled.
The purpose of Project Planning is to identify the scope of the project, estimate the work involved, and create a project schedule. Project planning begins with requirements that define the software to be developed. The project plan is then developed to describe the tasks that will lead to completion.
The purpose of Project Monitoring and Control is to keep the team and management up to date on the project's progress. If the project deviates from the plan, then the project manager can take action to correct the problem. Project monitoring and control involves status meetings to gather status from the team. When changes need to be made, Change control is used to keep the products up to date.
source: http://en.wikipedia.org/wiki/Software_project_management
Saturday, March 04, 2006
What is test-driven development?
What is the main idea of test-driven development?
Test-driven development (TDD), is an evolutionary approach to development which combines test-first development where you write a test before you write just enough production code to fulfill that test and refactoring.
What is the goal of test-driven development?
One view is the goal of TDD is specification and not validation. In other words, it' s one way to think through your design before your write your functional code. Another view is that TDD is a programming technique. So, the goal of TDD is to write clean code that works.
How does a test-driven development cycle look like?
Please refer to the diagram above.
source: http://www.agiledata.org/essays/tdd.html
Sunday, February 19, 2006
Software Design Patterns: How much do you understand?
In the three design patterns, the most I understand are structural patterns (especially the adapter and bridge design pattern).
The adapter pattern uses both inheritance and delegation.
For example, when two systems A nad B are totally different and cannot be modified, an adapter is needed. The adapter implements each method declared in A in terms of requests to B.
According to the textbook, the bridge pattern decouples the interface of a class from its implementation. It serves the same purpose as the adapter pattern except that the developer is not constrained by an existing component.
Maybe we use the example above again. This time, a subsystem C is added to B. However, there maybe some changes to C and B doesn't know, a bridge pattern is needed.
It acts as in interface to C and B, implements method to C and B.
Sorry to Steven that I'm not clear of the behavioral and creational patterns.
The adapter pattern uses both inheritance and delegation.
For example, when two systems A nad B are totally different and cannot be modified, an adapter is needed. The adapter implements each method declared in A in terms of requests to B.
According to the textbook, the bridge pattern decouples the interface of a class from its implementation. It serves the same purpose as the adapter pattern except that the developer is not constrained by an existing component.
Maybe we use the example above again. This time, a subsystem C is added to B. However, there maybe some changes to C and B doesn't know, a bridge pattern is needed.
It acts as in interface to C and B, implements method to C and B.
Sorry to Steven that I'm not clear of the behavioral and creational patterns.