A Framework to Reduce the Human Factors for Analysis of Constraint Solvers in Project Management

A Framework to Reduce the Human Factors for Analysis of Constraint Solvers in Project Management

Franklin Johnson, Broderick Crawford, Ricardo Soto, Sanjay Misra
DOI: 10.4018/978-1-7998-1279-1.ch006
(Individual Chapters)
No Current Special Offers


Currently, there are multiple factors that affect the projects management. These factors may have different origins, but the human factor is still one of the main elements that affect decisions when managing a project. Another important factor is the use of software that supports these decisions and reduce the human factors. Given the complexity of current management problems, powerful software is needed to solve these problems. Constraint solvers are a kind of software that are based on a constraint approach. Currently there are different constraint solvers. Some are intricate software, and others are libraries for a programming language. This chapter presents a framework that allow to compare a constraint system based on the usability attributes of the solvers in order to reduce the human factors for the selection of the constraint solver. The authors show that it is possible to establish a comparison according to usability attributes, allowing to reduce the risks of decision making by the experts when working with a constrain solver in a project.
Chapter Preview


The new applied problems, especially in the industrial area are increasingly difficult to solve. These problems use more data, and they are complexly related. This generates that complex mathematical models are needed for resolution. Given complexity of these models, these problems is not feasible to solve manually and it is necessary to use automatics systems to solve them (Ángel Vega-Velázquez, García-Nájera, & Cervantes, 2018). There is thus a strong need for use powerful software tools that using a simple user interface.

The project management is a kind of combinatorial problem and the human factors are a key element in managing a project. To reduce the costs associated with people in a project and their ability to perform assigned tasks, it can be controlled by systems that allow them to model their behavior and improve project management (Rahmanniyay & Junfang, 2018). In project management, the manager has to initiate, schedule, execute, control, and close the project; this involves a series of complex activities for the project manager (Radujković & Sjekavica, 2017). This is the reason why it is necessary to optimize these activities through a solver based on constraint programming.

Constraint Programming (CP) (Rossi, van Beek, & Walsh, 2006) is a powerful programming paradigm used for efficient problem solving, typically combinatorial problems. (Vianna, 2019; Kuchcinski, 2019). Under this paradigm, a problem is represented as a Constraint Satisfaction Problem (CSP), which corresponds to a mathematical model of the problem. The CSP mainly consist in a set of variables holding a domain and a set of constraints. CSPs are usually resolved by a constraint solver, which has a powerful search engine. The search engine finds a proper solution by building and exploring a search tree. The constraint solvers have different enumeration and propagation strategies, which are used in the resolution process of the problems (Soto et al., 2016).

Currently, there are different kinds of constraint solvers (Wallace, Schimpf, Shen, & Harvey, 2004), some of them are intricate software and others are libraries to extend the features of a programming language. In some cases, it is difficult to decide which constraint solver to use. A proper selection of a solver can be vital to a project. The project manager must have a constraint solver that suits your needs. In some cases, these can be simple, using a constraint solver as a black box, in which only it is sufficient to enter and tune different parameters. However, in other cases the developer will need a flexible system that allows him to develop more complex models, which is not available only by setting the solver.

Usability is a quality attribute to measure the ease with which a user interacts with the system. The system users generally have different levels of expertise and experience. In software engineering, usability is the degree to which a software can be used by specified consumers to achieve quantified objectives with effectiveness, efficiency, and satisfaction in a quantified context of use (ISO 9241-11 (1998) Ergonomic requirements for office work with visual display terminals (VDTs) – Part 11: Guidance on usability. International). The analyst may conduct a usability analysis. The usability includes methods of measuring usability, such as needs analysis and the study of the principles behind the perceived efficiency of an object. Usability differs from user satisfaction and user experience because usability does not directly consider usefulness or utility (Nielsen, 4 January 2012). Although this work is not a usability study, the authors use it as an important attribute to compare solvers, because a system with better usability attributes will reduce the risks associated with the end user. Even so, in the current literature contains few specialized papers on the usability of constraint programming systems. For the most part, studies are based on the performance, quantity and types of strategies implemented by the solvers (Soto et al., 2015) instead of the adaptability and ease of use of the constraint solvers

Complete Chapter List

Search this Book: