Chorng-Shiuh Koong

Learn More
Software reuse is an effective means of improving software productivity and software quality. Reusable Software Components (RSCs) are the basic building components for software programs constructed using the software reuse approach. The object-oriented approach is used to design and implement our RSCs. Our laboratory has already implemented more than 300(More)
Keywords: Reflective learning strategies Operational software Learning effectiveness Computer-assisted learning (CAL) ACT-R model a b s t r a c t Skill certification promotion is one of the main policies facilitated by the technological and vocational education, where application software instruction is regarded as the core curriculum to foster skill(More)
Multi-core programming is no more a luxury; it is now a necessity, because even embedded processors are becoming multi-core. However, the state-of-the-art techniques such as OpenMP and the Intel Threading Building Block (TBB) library are far from user-friendly due to the tedious work needed in explicitly designing multi-core programs and debugging. At the(More)
Model-driven development is worthy of further research because of its proven capabilities in increasing productivity and ensuring correctness. However, it has not yet been explored for multi-core processor-based embedded systems, whose programming is even more complex and difficult that that for conventional uni-processor systems. We propose a new(More)
In recent years, the influences of design patterns on software quality have attracted increasing attention in the area of software engineering, as design patterns encapsulate valuable knowledge to resolve design problems, and more importantly to improve the design quality. Numerous design patterns improve design quality by means of providing a more flexible(More)
Software testing is the key of software quality control. However, software testing requires plenty of time, manpower and resources in hardware and software. Unfortunately, plenty of human errors may cause software testing become more difficult. To increase efficiency and reduce costs, automatic software testing is relatively important. It is possible to(More)
The requirements engineering plays an important role during the lifespan of a complex system development project. The writing of system requirements in system developments process is through the natural language frequently. Natural language usually contains uncertainty. Additionally, requirements engineer lacks field knowledge and often shows shortages of(More)
Maintaining uniformity of software requirement documents with the artifacts of other phases of software lifecycle is very important. However, it is a difficult and time-consuming task. Natural language usually contains uncertainty. Most requirement documents were written in ambiguous natural language which is less formal and imprecise. Without proper(More)