# Software Development and Tool Support for Curriculum Design: A Systematic Mapping Study
## 2 Background
### Software Tools
#### 2.2.1 Models Used in Software Development  
This section describes two models: (i) models used by the software development team for software analysis and design; and (ii) software quality models, which allow for improved relevance.  
(i)   Software design models  
Software developers use models that can come from different areas. On the one hand, software engineering models provide a notation and specific procedures for designing, analyzing, and developing models in software engineering [38; 42]. One of the most widely used models is that proposed in the Unified Modeling Language (UML) since it provides a standard through rules and technical specifications for developers. UML considers two classifications: behavioral modeling (e.g., use case diagram, state machines, etc.) and structure modeling (e.g., class diagram, component diagram, deployment diagram, etc.). Figure 2 is an example of a class diagram, which shows the modeling of an online course. This figure shows relationships of association (Role-Account), aggregation (Course-Student), and composition (Student-Account). The cardinality of the relations can be \(1.^{*}\) (from one to many), \(0.^{*}\) (from zero to many), respectively.  
On the other hand, other models do not belong to software engineering but to other disciplines. Of these models, ontologies and meta-models stand out, representing the entities and relationships of a specific domain or area. Ontology is a concept from philosophy representing aspects of reality [43]. An ontology in computer science is a model that describes reality through concepts and relationships [44]. According to [PERSON] et al., an ontology is a specification of a conceptualization, which is used to identify relationships between concepts. Because of this, in education, ontologies are widely used in areas such as curriculum design and management, e-learning, and in the description of data and learning domains [45]. Figure 3 is an example of an ontology where the meaning of concepts and how they are related in the field of Learning Pathways in Higher Education is established [46].  
One model used in education is the IMS-Learning Design (IMS-LD) modeling language, which allows the design of learning units of a course [47]. IMS-LD, as a specification,  
Figure 3: EDUC8 ontology model.  
Figure 2: Class Diagram for Student and Course relationship.  
offers a conceptual model that defines the concepts and relationships in the instructional design domain. Its conceptual model is based on XML and is the successor of Educational Modeling Language. It considers concepts for a learning unit, such as the learning objective, prerequisites, roles, activities, and the environment where each activity will take place [48].
2. Software quality models  
Software quality models are models focused on ensuring that the product and process are developed professionally and efficiently. [PERSON] et al. evaluate the state of the art regarding these models, highlighting CMMI (Capability Maturity Model Integration), PSP (Personal Software Process), ITIL, COBIT 4.0, ISO25000, ISO9126, and Boehm, among others [49]. As an example of a quality model, CMMI presents five maturity levels in which the company or development team is placed based on criteria that must be met. Table 1 represents the CMMI maturity levels according to [PERSON] and [PERSON] [50]. One of the selected works uses CMM, a quality model prior to CMMI.