Pornsiri Muenchaisri

Pornsiri Muenchaisri
  • Ph.D.
  • Chulalongkorn University

About

48
Publications
9,099
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
311
Citations
Current institution
Chulalongkorn University
Additional affiliations
January 1998 - September 2016
Chulalongkorn University
Position
  • Member, Master of Computer Science in Software Engineering Curriculum Committee
May 2013 - May 2015
Chulalongkorn University
Position
  • Head, Master of Computer Science in Software Engineering Curriculum Committee
September 1990 - present
Chulalongkorn University
Position
  • Professor (Associate)

Publications

Publications (48)
Conference Paper
Architecture smells are poor design of architectural structures which reveal negative impacts on software quality and increase risks of bugs and implementation problems in the future. Previous research defines and proposes various architecture smells and each one affects software quality in different aspects. Architecture refactoring is a process t...
Conference Paper
A pull request is an important method for code contributions in GitHub that will be submitted when the developers would like to merge their code changes from their local machine to the main repository on which all source code in the project are stored. Before merging the code changes into the main repository, the developers have to request for a pe...
Article
Full-text available
Software size is widely recognized as an important parameter for effort and cost estimation. Currently there are many methods for measuring software size including Source Line of Code (SLOC), Function Points (FP), Netherlands Software Metrics Users Association (NESMA), Common Software Measurement International Consortium (COSMIC), and Use Case Poin...
Conference Paper
Software maintenance phase contains modifying, training and help supporting. In this phase when faults occur, users will notify the problem to software maintenance team. The team has to provide the users the estimated fault reparation time and then fix the problems. Fault reparation time of different kinds of faults may be varied due to fault types...
Chapter
Software maintenance phase involves modifying and making changes to software due to requirements changes and/or defects reported by users. At this phase, when defects are uncovered, users will inform the problem to software maintenance team. The team has to provide the users the estimated fixing time and then fix the errors. Fault reparation/fixing...
Article
The Software Engineering Education Workshop (SEEW) 2014 was held on 1st December 2014 at Jeju (South Korea). The worksho was co-located with The 21st Asia-Pacific Software Engineering Conference (APSEC 2014). The objective of SEEW is to create an annual discussion forum on Software Engineering (SE) Education in the Asia-Pacific region. The workshop...
Article
The early versions of object-oriented software system may function correctly, but sometimes its internal structure may not be well designed. Some classes may be god classes with several different behaviors. God classes have low cohesion in which some of their methods should be moved to another class. Finding a target method of a class to be moved t...
Conference Paper
Dynamic Software Product Line (DSPL) is intent to support adaptive software system to meet requirement changes and evolving resource constraints during runtime. The adaptation may be accomplished by reconfiguring adaptive behavior at adaptive point in feature model that describes variability of system. The decision making of dynamic variability man...
Conference Paper
There are many stability models that are developed with a different of factors, indicators, and methods. The objective of this paper is to compare models for estimating class logical stability of software design in incremental development from class diagrams and sequence diagrams. The models are developed with different methods such as multiple reg...
Article
Refactoring is the process of changing the internal structures, that preserves external behaviors of software. To improve software maintainability, we can apply several refactoring techniques to source code; applying different sequence of refactoring techniques to different parts of the source code results in different code changes and different le...
Conference Paper
Refactoring is the process of changing the internal structure of software but it preserves external behavior of software. To improve software maintainability, we may apply several refactoring techniques to source code. Applying different sequence of refactoring techniques to different parts of source code results in different code changes and diffe...
Article
This study proposed a new defect-detection approach using a declarative meta-programming technique to analytical learning for object-oriented software. The extrapolating patterns are generated using analytical learning in which certain design defect characteristics can be understood through deductive learning. This study uses declarative meta-progr...
Conference Paper
Software maintainability is one of important factors that developers should concern because two-thirds of a software system's lifetime-cost involve maintenance. Understandability is one of sub-characteristics that can describe software maintainability. Aspect-oriented programming (AOP) is an alternative software development paradigm that aims to in...
Article
Bad-smell prediction significantly impacts on software quality. It is beneficial if bad-smell prediction can be performed as early as possible in the development life cycle. We present methodology for predicting bad-smells from software design model. We collect 7 data sets from the previous literatures which offer 27 design model metrics and 7 bad-...
Article
Class diagrams provide mainly graphical notations to represent design artifacts used as blueprints for object-oriented software development. The result gained from measuring modifiability of class diagrams in the early phase can be used as a prime indicator whether to redesign software in order to reduce cost of software maintenance in a later phas...
Article
The following topics are dealt with: Requirements engineering; components; design; formal specification analysis; education; model checking; human computer interaction; software design and architecture; formal methods and components; software maintenance; software process; formal methods and design; server-based applications; review and testing; me...
Conference Paper
An interactive system operates by an ongoing communication between its components which send and receive messages on their input and output channels. Stream functions describe the component's input/output behaviour mapping input streams to output streams. State transition machines describe the component's state-based implementation. We adapt classi...
Article
Nowadays, many software developers and maintainers encounter with incomprehensible, unexpandable and unchangeable program structures that consequently reduce software quality. Such problems come from poor design and poor programming called design flaws. Design flaws are program properties that indicate a potentially deficient design of a software s...
Article
Maintainability is an important factor that developers should be concerned because two-thirds of software costs involve maintenance. Aspect-oriented programming (AOP) paradigm is aimed to increase the software maintainability. It solves code tangling and code scattering problems by introducing a new modular unit, called "aspect". Various research w...
Conference Paper
Good design can help developers maintaining software easier. Design heuristics are principles that promote the good software design. To ensure good design in a software product, metrics and measurement models are required to evaluate the software quality. This paper proposes a set of design heuristics violation check definitions to detect design fl...
Conference Paper
Bad smells are software patterns that are generally associated with bad design and bad programming. They can be removed by using the refactoring technique which improves the quality of software. Aspect-oriented (AO) software development, which involves new notions and the different ways of thinking for developing software and solving the crosscutti...
Conference Paper
Full-text available
Aspect-oriented programming (AOP) is a new programming paradigm that improves separation of concerns by decomposing the crosscutting concerns in aspect modules. Bad smells are metaphors to describe software patterns that are generally associated with bad design and bad programming of object-oriented programming (OOP). New notions and different ways...
Article
The early phases of component-based software design focus on the interaction between the components and the environment. Each component is considered as a black box whose input/output behaviour is described by a stream transformer mapping input histories to output histories. Model checking is an automatic verification approach performed on a state-...
Article
Full-text available
Threshold of software metrics can be used as indicators to identify possible anomalies in software. Aspect-Oriented (AO) Programming is a new programming paradigm that solved the crosscutting problem by decomposes the crosscutting concern in aspect module. Establishing the threshold of AO software metrics in order to identify anomalies in AO softwa...
Conference Paper
Full-text available
Assessing maintainability at the design level will help software designers to decide if the design of the software should be altered for reducing cost of software maintenance in later phase. This paper presents a controlled experiment carried out to investigate whether aesthetic metrics can be indicators of class and sequence diagrams maintainabili...
Article
Full-text available
Model checking is the verification approach for proving a satisfaction of desired properties on a finite state system model. Whenever a new feature (aspect) which is developed as a separated unit is composed to the original software for evolving to the next generation, the properties which held on the model of the original software should be re-che...
Conference Paper
It is obvious that qualities of software design heavily affects on qualities of software ultimately developed. One of claimed advantages of object-oriented paradigm is the ease of maintenance. The main goal of this work is to propose a methodology for constructing maintainability model of object-oriented software design model using three techniques...
Conference Paper
Full-text available
Nowadays risk assessment is one of software engineering processes that plays important role in software development life cycle. Applying risk assessment to software the earlier is the better. Developers should detect defects of software early at design phase so the improvement action such as refactoring can be taken. Constructing fault prediction m...
Conference Paper
Full-text available
UML is a modeling language that most developers employed during the design phase. UML provides various types of diagrams used for specifying both the structure and the behavior of systems. During the development process, models specified by these diagrams are eventually transformed into corresponding code. Although there is much research on transfo...
Conference Paper
Clustering analysis has rarely been studied as a technique for object identification methods, although it has been broadly employed in data classification in a wide range of research areas. In this paper, we propose a review of clustering analysis methods and a scheme for applying hierarchical clustering analysis to facilitate identification of can...
Conference Paper
We designed and implemented a prototype software development environment based on software component composition. Our software development environment, the Entity-Relationship Software Development Environment (ERSDE), uses extended entity-relationship diagrams (EERDs) as templates of executable programs. An EERD represents the component types and t...
Conference Paper
We introduce a compositional approach to application software construction. In our approach, an extended entity-relationship diagram (EERD), which represents the component types and the relationship types within an application domain, is used as a template of executable programs in that application domain. As we use structural active objects as the...
Article
Full-text available
A problem that always occurs in software maintenance process is the ripple effect, which is when one object changed thus affecting the other objects in the same program. Stability can be defi ned as resistance to the ripple effect. This is divided into two aspects: logical stability and performance stability. In this paper, we emphasize the logical...

Network

Cited By