@prefix :      <https://w3id.org/squap/> .
@prefix opla:  <http://ontologydesignpatterns.org/opla/> .
@prefix arc-alignment: <https://w3id.org/squap/ArchitecturalAlignment/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix sw-quality: <https://w3id.org/squap/SoftwareQuality/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix prc-maturity: <https://w3id.org/squap/ProcessMaturity/> .
@prefix dc:    <http://purl.org/dc/elements/1.1/> .

sw-quality:Security  a   :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Security" ;
        rdfs:subClassOf  sw-quality:SoftwareProductQuality , :SoftwareQuality ;
        :specializes     sw-quality:SoftwareProductQuality .

:isParameterOf  a     owl:ObjectProperty ;
        rdfs:comment  "The relation between a parameter and a metric." ;
        rdfs:domain   :Parameter ;
        rdfs:label    "is parameter of" ;
        rdfs:range    :Metric .

sw-quality:SecurityCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Security compliance" ;
        rdfs:subClassOf  sw-quality:Security ;
        :specializes     sw-quality:Security .

sw-quality:CommercialDamageInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Commercial damage in use" ;
        rdfs:subClassOf  sw-quality:Safety ;
        :specializes     sw-quality:Safety .

prc-maturity:Development
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Development" ;
        rdfs:subClassOf  prc-maturity:Primary ;
        :specializes     prc-maturity:Primary .

sw-quality:OperabilityCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Operability compliance" ;
        rdfs:subClassOf  sw-quality:Operability ;
        :specializes     sw-quality:Operability .

prc-maturity:Operation
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Operation" ;
        rdfs:subClassOf  prc-maturity:Primary ;
        :specializes     prc-maturity:Primary .

sw-quality:Adaptability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Adaptability" ;
        rdfs:subClassOf  sw-quality:Transferability ;
        :specializes     sw-quality:Transferability .

arc-alignment:ArchitectureFramework
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Architecture framework" ;
        rdfs:subClassOf  arc-alignment:ObjectiveCharacteristic ;
        :specializes     arc-alignment:ObjectiveCharacteristic .

:isQualityCharacteristicUsedIn
        a                   owl:ObjectProperty ;
        rdfs:domain         :SoftwareQualityCharacteristic ;
        rdfs:label          "is quality characteristic used in" ;
        rdfs:range          :SoftwareQualityFactor ;
        rdfs:subPropertyOf  :isConceptUsedIn ;
        owl:inverseOf       :usesQualityCharacteristic .

:usesQualityCharacteristic
        a                   owl:ObjectProperty ;
        rdfs:domain         :SoftwareQualityFactor ;
        rdfs:label          "uses quality characteristic" ;
        rdfs:range          :SoftwareQualityCharacteristic ;
        rdfs:subPropertyOf  :usesConcept .

sw-quality:Analysability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Analysability" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

:Metric  a            owl:Class ;
        rdfs:comment  "A metric, e.g. precision." ;
        rdfs:label    "Metric" .

prc-maturity:Management
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Management" ;
        rdfs:subClassOf  prc-maturity:Organisational ;
        :specializes     prc-maturity:Organisational .

prc-maturity:JointReview
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Joint review" ;
        rdfs:subClassOf  prc-maturity:Supporting ;
        :specializes     prc-maturity:Supporting .

:isMetricOf  a              owl:ObjectProperty ;
        rdfs:domain         :Metric ;
        rdfs:label          "is metric of" ;
        rdfs:range          :MeasurementResult ;
        rdfs:subPropertyOf  owl:topObjectProperty .

:Concept  a               owl:Class ;
        rdfs:comment      "A concept. \nOnce defined, a Concept can be used in other descriptions." ;
        rdfs:label        "Concept" ;
        opla:isNativeTo   <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> ;
        owl:disjointWith  :Situation , :Description .

sw-quality:EfficiencyInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Efficiency in use" ;
        rdfs:subClassOf  sw-quality:UsabilityInUse ;
        :specializes     sw-quality:UsabilityInUse .

<https://w3id.org/squap/Factor/ItalianApplicationsVsQualityAndMaintainability>
        a                :SoftwareQualityFactor , owl:NamedIndividual , owl:Class ;
        rdfs:comment     "Regarding Italian applications, they appear to have more functionalities but incur in higher maintenance costs." ;
        rdfs:label       "Italian applications vs quality and maintainability" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Supply , sw-quality:Replaceability , sw-quality:Reusability , arc-alignment:Concern , prc-maturity:Maintenance , prc-maturity:Acquisition , prc-maturity:QualityAssurance , arc-alignment:Correspondence , sw-quality:Installability , sw-quality:Adaptability .

<https://w3id.org/squap/Factor/FunctionalAnalysisVsDataModeling>
        a                :SoftwareQualityFactor , owl:NamedIndividual , owl:Class ;
        rdfs:comment     "Difficulties in functional analysis lies in bad data modeling and identification of data sources." ;
        rdfs:label       "Functional analysis vs data modeling" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Development , arc-alignment:ArchitectureView , arc-alignment:ArchitectureFramework .

arc-alignment:ArchitectureView
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Architecture view" ;
        rdfs:subClassOf  arc-alignment:ObjectiveCharacteristic ;
        :specializes     arc-alignment:ObjectiveCharacteristic .

arc-alignment:ArchitectureDescription
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Architecture description" ;
        rdfs:subClassOf  arc-alignment:SubjectiveCharacteristic ;
        :specializes     arc-alignment:SubjectiveCharacteristic .

:SoftwareQualityCharacteristic
        a                    owl:Class ;
        rdfs:comment         "The concept of the sotftware quality characteristic" ;
        rdfs:label           "Software quality characteristic" ;
        rdfs:subClassOf      :Concept ;
        owl:equivalentClass  [ a            owl:Class ;
                               owl:unionOf  ( :ArchitecturalAlignment :ProcessMaturity :SoftwareQuality )
                             ] .

:isConceptUsedIn  a      owl:ObjectProperty ;
        rdfs:domain      :Concept ;
        rdfs:label       "is concept used in" ;
        rdfs:range       :Description ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> ;
        owl:inverseOf    :usesConcept .

sw-quality:PerformanceEfficiencyCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Performance efficiency compliance" ;
        rdfs:subClassOf  sw-quality:PerformanceEfficiency ;
        :specializes     sw-quality:PerformanceEfficiency .

<https://w3id.org/squap/Factor/LowerDevelopersExpertiseAndProfessionalism>
        a                owl:NamedIndividual , owl:Class , :SoftwareQualityFactor ;
        rdfs:comment     "Short time to market expectations and shrinking IT budget is generally considered the main reason for low software quality." ;
        rdfs:label       "Lower developers expertise and professionalism" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Supply , arc-alignment:Concern , prc-maturity:Training , arc-alignment:Stakeholder .

prc-maturity:ConfigurationManagement
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Configuration management" ;
        rdfs:subClassOf  prc-maturity:Supporting ;
        :specializes     prc-maturity:Supporting .

dcterms:license  a  owl:AnnotationProperty .

sw-quality:Learnability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Learnability" ;
        rdfs:subClassOf  sw-quality:Operability ;
        :specializes     sw-quality:Operability .

<https://w3id.org/squap/Factor/DataAnalysisVsFunctionalAnalysis>
        a                owl:Class , owl:NamedIndividual , :SoftwareQualityFactor ;
        rdfs:comment     "Poor data analysis influences functional analysis and so, system integrity." ;
        rdfs:label       "Data analysis vs functional analysis" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:FunctionalCorrectness , prc-maturity:Development , arc-alignment:ArchitectureFramework , arc-alignment:ArchitectureModel , arc-alignment:ArchitectureView .

prc-maturity:Acquisition
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Acquisition" ;
        rdfs:subClassOf  prc-maturity:Primary ;
        :specializes     prc-maturity:Primary .

arc-alignment:System-of-Interest
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "System-of-Interest" ;
        rdfs:subClassOf  arc-alignment:ObjectiveCharacteristic ;
        :specializes     arc-alignment:ObjectiveCharacteristic .

sw-quality:Maintainability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Maintainability" ;
        rdfs:subClassOf  sw-quality:Compatibility , :SoftwareQuality ;
        :specializes     sw-quality:Compatibility .

prc-maturity:Primary  a  :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Primary" ;
        rdfs:subClassOf  :ProcessMaturity .

prc-maturity:Organisational
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Organisational" ;
        rdfs:subClassOf  :ProcessMaturity .

sw-quality:UsabilityInUseCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Usability in use compliance" ;
        rdfs:subClassOf  sw-quality:UsabilityInUse ;
        :specializes     sw-quality:UsabilityInUse .

sw-quality:AccessibilityInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Accessibility in use" ;
        rdfs:subClassOf  sw-quality:FlexibilityInUse ;
        :specializes     sw-quality:FlexibilityInUse .

sw-quality:Accuracy  a   :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Accuracy" ;
        rdfs:subClassOf  sw-quality:FunctionalSuitability ;
        :specializes     sw-quality:FunctionalSuitability .

sw-quality:Transferability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Transferability" ;
        rdfs:subClassOf  sw-quality:SoftwareProductQuality , :SoftwareQuality ;
        :specializes     sw-quality:SoftwareProductQuality .

:Value  a                owl:Class ;
        rdfs:label       "Value" ;
        rdfs:subClassOf  :Region ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1" ;
                           owl:onProperty   :value
                         ] .

sw-quality:ReliabilityCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Reliability compliance" ;
        rdfs:subClassOf  sw-quality:Reliability ;
        :specializes     sw-quality:Reliability .

arc-alignment:ModelKind
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Model kind" ;
        rdfs:subClassOf  arc-alignment:ObjectiveCharacteristic ;
        :specializes     arc-alignment:ObjectiveCharacteristic .

:satisfies  a            owl:ObjectProperty ;
        rdfs:domain      :Situation ;
        rdfs:label       "satisfies" ;
        rdfs:range       :Description ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> .

sw-quality:CompatibilityCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Compatibility compliance" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

<https://w3id.org/squap/Factor/DocumentationStandardsAndTools>
        a                owl:Class , owl:NamedIndividual , :SoftwareQualityFactor ;
        rdfs:comment     "Poor documentation hinders software maintainability and increases evolution costs." ;
        rdfs:label       "Documentation standards and tools" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:Reusability , sw-quality:Adaptability , arc-alignment:ArchitectureDescription , arc-alignment:Concern , prc-maturity:Documentation , arc-alignment:CorrespondenceRules .

sw-quality:Testability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Testability" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

:ProcessMaturityResult
        a                owl:Class ;
        rdfs:label       "Process maturity result" ;
        rdfs:subClassOf  :MeasurementResult .

prc-maturity:Supply  a   :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Supply" ;
        rdfs:subClassOf  prc-maturity:Primary ;
        :specializes     prc-maturity:Primary .

prc-maturity:ProblemResolution
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Problem resolution" ;
        rdfs:subClassOf  prc-maturity:Supporting ;
        :specializes     prc-maturity:Supporting .

prc-maturity:Infrastructure
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Infrastructure" ;
        rdfs:subClassOf  prc-maturity:Organisational ;
        :specializes     prc-maturity:Organisational .

sw-quality:FaultTolerance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Fault tolerance" ;
        rdfs:subClassOf  sw-quality:Reliability ;
        :specializes     sw-quality:Reliability .

sw-quality:Confidentiality
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Confidentiality" ;
        rdfs:subClassOf  sw-quality:Security ;
        :specializes     sw-quality:Security .

arc-alignment:Concern
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Concern" ;
        rdfs:subClassOf  arc-alignment:SubjectiveCharacteristic ;
        :specializes     arc-alignment:SubjectiveCharacteristic .

sw-quality:Helpfulness
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Helpfulness" ;
        rdfs:subClassOf  sw-quality:Operability ;
        :specializes     sw-quality:Operability .

sw-quality:Safety  a     :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Safety" ;
        rdfs:subClassOf  sw-quality:QualityInUse , :SoftwareQuality ;
        :specializes     sw-quality:QualityInUse .

arc-alignment:SubjectiveCharacteristic
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Subjective characteristic" ;
        rdfs:subClassOf  :ArchitecturalAlignment .

sw-quality:ContextExtendibilityInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Context extendibility in use" ;
        rdfs:subClassOf  sw-quality:FlexibilityInUse ;
        :specializes     sw-quality:FlexibilityInUse .

sw-quality:SatisfactionInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Satisfaction in use" ;
        rdfs:subClassOf  sw-quality:UsabilityInUse , :SoftwareQuality ;
        :specializes     sw-quality:UsabilityInUse .

sw-quality:EaseOfUse  a  :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Ease of use" ;
        rdfs:subClassOf  sw-quality:Operability ;
        :specializes     sw-quality:Operability .

arc-alignment:Stakeholder
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Stakeholder" ;
        rdfs:subClassOf  arc-alignment:SubjectiveCharacteristic ;
        :specializes     arc-alignment:SubjectiveCharacteristic .

<https://w3id.org/squap/Factor/NewPackagesFunctionalitiesVsComplexity>
        a                owl:Class , owl:NamedIndividual , :SoftwareQualityFactor ;
        rdfs:comment     "The demand for more functionalities rose in the last years, along with their complexity." ;
        rdfs:label       "New packages functionalities vs complexity" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:Replaceability , prc-maturity:Maintenance , prc-maturity:Verification , sw-quality:Analysability , arc-alignment:ArchitectureFramework , arc-alignment:CorrespondenceRules , sw-quality:Reusability , prc-maturity:ConfigurationManagement , prc-maturity:ProblemResolution , sw-quality:Operability , sw-quality:Adaptability .

:value  a            owl:DatatypeProperty ;
        rdfs:domain  :Value ;
        rdfs:label   "value" ;
        rdfs:range   rdfs:Literal .

dc:creator  a   owl:AnnotationProperty .

sw-quality:PerformanceEfficiency
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Performance efficiency" ;
        rdfs:subClassOf  sw-quality:SoftwareProductQuality , :SoftwareQuality ;
        :specializes     sw-quality:SoftwareProductQuality .

prc-maturity:Maintenance
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Maintenance" ;
        rdfs:subClassOf  prc-maturity:Primary ;
        :specializes     prc-maturity:Primary .

opla:reusesPatternAsTemplate
        a       owl:AnnotationProperty .

sw-quality:OperatorHealthAndSafety
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Operator health and safety" ;
        rdfs:subClassOf  sw-quality:Safety ;
        :specializes     sw-quality:Safety .

<https://w3id.org/squap/Factor/IncreaseOfMaintenanceCosts>
        a                :SoftwareQualityFactor , owl:Class , owl:NamedIndividual ;
        rdfs:comment     "Some factors have a direct impact on maintenance costs. The overall architectural complexity, the decreasing software quality and incomplete documentation are the most important drivers of high maintenance costs and time." ;
        rdfs:label       "Increase of maintenance costs" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:Testability , sw-quality:Analysability , sw-quality:Replaceability , arc-alignment:CorrespondenceRules , arc-alignment:Correspondence , prc-maturity:Documentation , sw-quality:Reusability , sw-quality:Adaptability .

sw-quality:TechnicalAccessibility
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Technical accessibility" ;
        rdfs:subClassOf  sw-quality:Operability ;
        :specializes     sw-quality:Operability .

sw-quality:Interoperability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Interoperability" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

sw-quality:Recoverability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Recoverability" ;
        rdfs:subClassOf  sw-quality:Reliability ;
        :specializes     sw-quality:Reliability .

:Parameter  a            owl:Class ;
        rdfs:comment     "A Concept that classifies something having a certain value, e.g. 'High' can be said of people taller than 185 cm.\nHowever, in order to formally represent this constraint, we need to add an anonymous type to a parameter instance, using a property that convey the semantics of the parameter, e.g.:\nHigh rdf:type Person and (some hasHeight (Height and (oneOf isTallerThan 185) and (oneOf hasUnitOfMeasure centimeter)))" ;
        rdfs:label       "Parameter" ;
        rdfs:subClassOf  :Concept ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/parameterregion.owl> .

sw-quality:Modularity
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Modularity" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

sw-quality:Likability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Likability" ;
        rdfs:subClassOf  sw-quality:SatisfactionInUse ;
        :specializes     sw-quality:SatisfactionInUse .

:assesses  a                owl:ObjectProperty ;
        rdfs:domain         :MeasurementResult ;
        rdfs:label          "assesses" ;
        rdfs:range          :SoftwareQualityCharacteristic ;
        rdfs:subPropertyOf  :isClassifiedBy ;
        owl:inverseOf       :isAssessedBy .

<https://w3id.org/squap/Factor/RequirementsVsTechnicalJargon>
        a                owl:NamedIndividual , owl:Class , :SoftwareQualityFactor ;
        rdfs:comment     "The (mis-)use of technical jargon of different departments for requirement elicitation leads to low software quality." ;
        rdfs:label       "Requirements vs technical jargon" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:FunctionalCorrectness , prc-maturity:Management , prc-maturity:Development , arc-alignment:Stakeholder .

<https://w3id.org/squap/Factor/ApplicationAndMaintenanceContractsVsDocumentation>
        a                owl:NamedIndividual , owl:Class , :SoftwareQualityFactor ;
        rdfs:comment     "Application & Maintenance (AM) contracts are set to outsource the development and maintenance, to decrease internal costs.Typically, they do not provide an adequate documentation." ;
        rdfs:label       "Application and maintenance contracts vs documentation" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:Analysability , arc-alignment:Concern , arc-alignment:System-of-Interest , prc-maturity:Management , arc-alignment:Stakeholder , prc-maturity:Maintenance , sw-quality:FunctionalCorrectness , prc-maturity:Documentation , prc-maturity:QualityAssurance , sw-quality:FunctionalCompleteness , prc-maturity:Improvement , sw-quality:Modifiability , sw-quality:Replaceability .

sw-quality:SafetyCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Safety compliance" ;
        rdfs:subClassOf  sw-quality:Safety ;
        :specializes     sw-quality:Safety .

dc:description  a  owl:AnnotationProperty .

:Region  a               owl:Class ;
        rdfs:comment     "Any region in a dimensional space (a dimensional space is a maximal Region), which can be used as a value for a quality of an Entity." ;
        rdfs:label       "Region" ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/parameterregion.owl> .

<https://w3id.org/squap/Factor/DeveloperProfessionalismVsSkills>
        a                :SoftwareQualityFactor , owl:Class , owl:NamedIndividual ;
        rdfs:comment     "No adequate resources to invest in education and to train developers, especially those with no formal education in IT." ;
        rdfs:label       "Developer professionalism vs skills" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Management , prc-maturity:Supply , sw-quality:Maturity , prc-maturity:Training , arc-alignment:Concern .

sw-quality:QualityInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Quality in use" ;
        rdfs:subClassOf  :SoftwareQuality .

:isClassifiedBy  a       owl:ObjectProperty ;
        rdfs:domain      owl:Thing ;
        rdfs:label       "is classified by" ;
        rdfs:range       :Concept ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> .

<https://w3id.org/squap/Factor/LackingToolsAndMethodologies>
        a                owl:Class , :SoftwareQualityFactor , owl:NamedIndividual ;
        rdfs:comment     "Finding and implementing the right tools & methodologies is quite a hard task." ;
        rdfs:label       "Lacking tools and methodologies" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Development , sw-quality:Testability , sw-quality:Modularity , sw-quality:Analysability , sw-quality:Reusability , arc-alignment:ArchitectureDescription , sw-quality:Modifiability , sw-quality:Maturity , prc-maturity:QualityAssurance , arc-alignment:ArchitectureModel , arc-alignment:Concern , arc-alignment:ArchitectureView .

:specializes  a          owl:TransitiveProperty , owl:ObjectProperty ;
        rdfs:domain      :Concept ;
        rdfs:label       "specializes" ;
        rdfs:range       :Concept ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> .

sw-quality:MaintainabilityCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Maintainability compliance" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

<https://w3id.org/squap/Factor/QualityVsRequirements>
        a                owl:Class , owl:NamedIndividual , :SoftwareQualityFactor ;
        rdfs:comment     "Poorly defined requirements lead to misunderstandings with software developers, which will deliver lower quality software. The functional quality will be low if the requirements' clarity is low." ;
        rdfs:label       "Quality vs requirements" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Development , arc-alignment:ArchitectureView , sw-quality:FunctionalCompleteness , arc-alignment:ArchitectureViewpoint , arc-alignment:Concern .

<https://w3id.org/squap/Factor/ModuleInterfacesComplexity>
        a                owl:NamedIndividual , :SoftwareQualityFactor , owl:Class ;
        rdfs:comment     "A banking information system is characterized by a high number of modules;if these are strongly coupled this increases the number of interfaces and their complexity." ;
        rdfs:label       "Module interfaces complexity" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Maintenance , arc-alignment:Stakeholder , prc-maturity:QualityAssurance , arc-alignment:ArchitectureModel , arc-alignment:ArchitectureView , arc-alignment:ArchitectureRational , arc-alignment:ArchitectureDescription , arc-alignment:System-of-Interest , sw-quality:Modularity .

sw-quality:Installability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Installability" ;
        rdfs:subClassOf  sw-quality:Transferability ;
        :specializes     sw-quality:Transferability .

<https://w3id.org/squap/Factor/PackagesVsDocumentation>
        a                :SoftwareQualityFactor , owl:NamedIndividual , owl:Class ;
        rdfs:comment     "The lack of documentation for software packages is perceived as a commercial strategy of suppliers to lock-in customers." ;
        rdfs:label       "Packages vs documentation" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:Installability , prc-maturity:Documentation , sw-quality:Modularity , sw-quality:Testability , sw-quality:Reusability , prc-maturity:Maintenance , sw-quality:Modifiability , sw-quality:Adaptability , sw-quality:Analysability , arc-alignment:ArchitectureDescription , sw-quality:Replaceability , arc-alignment:ArchitectureViewpoint .

:ArchitecturalAlignmentResult
        a                owl:Class ;
        rdfs:label       "Architectural alignment result" ;
        rdfs:subClassOf  :MeasurementResult .

sw-quality:Non-repudiation
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Non-repudiation" ;
        rdfs:subClassOf  sw-quality:Security ;
        :specializes     sw-quality:Security .

prc-maturity:Validation
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Validation" ;
        rdfs:subClassOf  prc-maturity:Supporting ;
        :specializes     prc-maturity:Supporting .

sw-quality:Attractiveness
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Attractiveness" ;
        rdfs:subClassOf  sw-quality:Operability ;
        :specializes     sw-quality:Operability .

prc-maturity:QualityAssurance
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Quality assurance" ;
        rdfs:subClassOf  prc-maturity:Supporting ;
        :specializes     prc-maturity:Supporting .

sw-quality:Reliability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Reliability" ;
        rdfs:subClassOf  sw-quality:SoftwareProductQuality , :SoftwareQuality ;
        :specializes     sw-quality:SoftwareProductQuality .

sw-quality:ResourceUtilization
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Resource utilization" ;
        rdfs:subClassOf  sw-quality:PerformanceEfficiency ;
        :specializes     sw-quality:PerformanceEfficiency .

:hasMetric  a               owl:ObjectProperty ;
        rdfs:domain         :MeasurementResult ;
        rdfs:label          "has metric" ;
        rdfs:range          :Metric ;
        rdfs:subPropertyOf  owl:topObjectProperty ;
        owl:inverseOf       :isMetricOf .

sw-quality:Modifiability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Modifiability" ;
        rdfs:subClassOf  sw-quality:Maintainability ;
        :specializes     sw-quality:Maintainability .

sw-quality:ModificationStability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Modification stability" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

<https://w3id.org/squap/Factor/DeveloperProfessionalismVsRates>
        a                owl:Class , owl:NamedIndividual , :SoftwareQualityFactor ;
        rdfs:comment     "Decreasing developer's professionalism and the decrease of professional rates appears to be quite connected." ;
        rdfs:label       "Developer professionalism vs rates" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     arc-alignment:Environment , sw-quality:Maturity , prc-maturity:Management , prc-maturity:Supply , arc-alignment:Concern .

:SoftwareQualityFactor
        a                owl:Class ;
        rdfs:label       "Software quality factor" ;
        rdfs:subClassOf  :Description ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :SoftwareQualityCharacteristic ;
                           owl:onProperty     :usesQualityCharacteristic
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :usesQualityCharacteristic ;
                           owl:someValuesFrom  :SoftwareQualityCharacteristic
                         ] .

sw-quality:Compatibility
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Compatibility" ;
        rdfs:subClassOf  sw-quality:SoftwareProductQuality , :SoftwareQuality ;
        :specializes     sw-quality:SoftwareProductQuality .

:ProcessMaturity  a       owl:Class ;
        rdfs:comment      "The software quality characteristic meant as process maturity." ;
        rdfs:label        "Process maturity" ;
        rdfs:subClassOf   :SoftwareQualityCharacteristic ;
        owl:disjointWith  :SoftwareQuality .

dcterms:modified  a  owl:AnnotationProperty .

:       a                             owl:Ontology ;
        rdfs:comment                  "Quality, architecture, and process are considered the keystones of software engineering. ISO defines them in three separate standards. However, their interaction has been poorly studied, so far. The SQuAP model (Software Quality, Architecture, Process) describes twenty-eight main factors that impact on software quality in banking systems, and each factor is described as a relation among some characteristics from the three ISO standards. Hence, SQuAP makes such relations emerge rigorously, although informally. SQaAP-Ont is an OWL ontology that formalises those relations in order to represent and reason via Linked Data about software engineering in a three-dimensional model consisting of quality, architecture, and process characteristics." ;
        rdfs:label                    "SQuAP Ontology" ;
        opla:reusesPatternAsTemplate  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> , <http://ontologydesignpatterns.org/cp/owl/parameterregion.owl> ;
        dc:creator                    "Daniel Russo (DISI, University of Bologna)" , "Valentina Presutti (STLab, ISTC-CNR)" , "Paolo Ciancarini (DISI, University of Bologna)" , "Andrea Giovanni Nuzzolese (STLab, ISTC-CNR)" ;
        dc:description                "Quality, architecture, and process are considered the keystones of software engineering. ISO defines them in three separate standards. However, their interaction has been poorly studied, so far. The SQuAP model (Software Quality, Architecture, Process) describes twenty-eight main factors that impact on software quality in banking systems, and each factor is described as a relation among some characteristics from the three ISO standards. Hence, SQuAP makes such relations emerge rigorously, although informally. SQaAP-Ont is an OWL ontology that formalises those relations in order to represent and reason via Linked Data about software engineering in a three-dimensional model consisting of quality, architecture, and process characteristics." ;
        dc:description                <https://raw.githubusercontent.com/anuzzolese/squap/master/ont/images/squap-ont.png> , <https://i.creativecommons.org/l/by/4.0/88x31.png> ;
        dcterms:issued                "2018-05-15" ;
        dcterms:license               <https://creativecommons.org/licenses/by/4.0/> ;
        dcterms:modified              "2019-07-12" ;
        owl:backwardCompatibleWith    :0.1 ;
        owl:priorVersion              :0.1 ;
        owl:versionIRI                :0.2 .

sw-quality:Comfort  a    :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Comfort" ;
        rdfs:subClassOf  sw-quality:SatisfactionInUse ;
        :specializes     sw-quality:SatisfactionInUse .

sw-quality:Operability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Operability" ;
        rdfs:subClassOf  sw-quality:SoftwareProductQuality , :SoftwareQuality ;
        :specializes     sw-quality:SoftwareProductQuality .

<https://w3id.org/squap/Factor/InterfacesArchitecturalComplexity>
        a                :SoftwareQualityFactor , owl:NamedIndividual , owl:Class ;
        rdfs:comment     "This factor is a direct consequence of the first one. Module interfaces complexity led to a typical anti-pattern." ;
        rdfs:label       "Interfaces architectural complexity" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:Accountability , prc-maturity:Development , sw-quality:Integrity , sw-quality:Modifiability , arc-alignment:ArchitectureModel .

:ArchitecturalAlignment
        a                 owl:Class ;
        rdfs:comment      "The software quality characteristic meant as architectural alignment." ;
        rdfs:label        "Architectural alignment" ;
        rdfs:subClassOf   :SoftwareQualityCharacteristic ;
        owl:disjointWith  :SoftwareQuality , :ProcessMaturity .

sw-quality:Accountability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Accountability" ;
        rdfs:subClassOf  sw-quality:Security ;
        :specializes     sw-quality:Security .

sw-quality:Trust  a      :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Trust" ;
        rdfs:subClassOf  sw-quality:SatisfactionInUse ;
        :specializes     sw-quality:SatisfactionInUse .

arc-alignment:ArchitectureRational
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Architecture rational" ;
        rdfs:subClassOf  arc-alignment:ObjectiveCharacteristic ;
        :specializes     arc-alignment:ObjectiveCharacteristic .

:SoftwareQualityResult
        a                owl:Class ;
        rdfs:label       "Software quality result" ;
        rdfs:subClassOf  :MeasurementResult .

:hasValue  a                owl:ObjectProperty ;
        rdfs:domain         :MeasurementResult ;
        rdfs:label          "has value" ;
        rdfs:range          :Value ;
        rdfs:subPropertyOf  owl:topObjectProperty ;
        owl:inverseOf       :isValueOf .

sw-quality:AppropriatenessRecognisability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Appropriateness recognisability" ;
        rdfs:subClassOf  sw-quality:Operability ;
        :specializes     sw-quality:Operability .

sw-quality:Reusability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Reusability" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

:isSatisfiedBy  a        owl:ObjectProperty ;
        rdfs:domain      :Description ;
        rdfs:label       "is satisfied by" ;
        rdfs:range       :Situation ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> ;
        owl:inverseOf    :satisfies .

sw-quality:PublicHealthAndSafety
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Public health and safety" ;
        rdfs:subClassOf  sw-quality:Safety ;
        :specializes     sw-quality:Safety .

sw-quality:Integrity  a  :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Integrity" ;
        rdfs:subClassOf  sw-quality:Security ;
        :specializes     sw-quality:Security .

prc-maturity:Supporting
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Supporting" ;
        rdfs:subClassOf  :ProcessMaturity .

<https://w3id.org/squap/Factor/Non-ItalianApplicationsVsQualityAndMaintainability>
        a                :SoftwareQualityFactor , owl:Class , owl:NamedIndividual ;
        rdfs:comment     "Non-Italian applications are more maintainable but have less functionalities." ;
        rdfs:label       "Non-Italian applications vs quality and maintainability" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     arc-alignment:CorrespondenceRules , prc-maturity:Supply , prc-maturity:QualityAssurance , sw-quality:Installability , prc-maturity:Acquisition , sw-quality:Adaptability , sw-quality:Reusability , prc-maturity:Maintenance , arc-alignment:ArchitectureFramework , sw-quality:Replaceability .

arc-alignment:Environment
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Environment" ;
        rdfs:subClassOf  arc-alignment:SubjectiveCharacteristic ;
        :specializes     arc-alignment:SubjectiveCharacteristic .

<https://w3id.org/squap/Factor/SystemAnalysisVsDocumentation>
        a                owl:NamedIndividual , :SoftwareQualityFactor , owl:Class ;
        rdfs:comment     "Inadequate documentation impacts on the system analysis and so on software quality." ;
        rdfs:label       "System analysis vs documentation" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     arc-alignment:ArchitectureDescription , sw-quality:Integrity , sw-quality:FaultTolerance , sw-quality:FunctionalCorrectness , prc-maturity:Documentation , sw-quality:Accountability , sw-quality:FunctionalAppropriateness , sw-quality:FunctionalCompleteness .

:isFactorSatisfiedBy  a     owl:ObjectProperty ;
        rdfs:domain         :SoftwareQualityFactor ;
        rdfs:label          "is factor satisfied by" ;
        rdfs:range          :FactorOccurrence ;
        rdfs:subPropertyOf  :isSatisfiedBy ;
        owl:inverseOf       :satisfiesFactor .

dc:rights  a    owl:AnnotationProperty .

prc-maturity:Audit  a    :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Audit" ;
        rdfs:subClassOf  prc-maturity:Supporting ;
        :specializes     prc-maturity:Supporting .

sw-quality:Pleasure  a   :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Pleasure" ;
        rdfs:subClassOf  sw-quality:SatisfactionInUse ;
        :specializes     sw-quality:SatisfactionInUse .

<https://w3id.org/squap/Factor/QualityVsTimeAndBudget>
        a                owl:Class , owl:NamedIndividual , :SoftwareQualityFactor ;
        rdfs:comment     "The whole panel agreed unanimously that there is a direct relationship among quality and time and budget." ;
        rdfs:label       "Quality vs time and budget" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:Modifiability , arc-alignment:Concern , sw-quality:TimeBehaviour , sw-quality:Interoperability , prc-maturity:Management , sw-quality:Analysability , sw-quality:Testability , prc-maturity:Maintenance , sw-quality:Co-existence , sw-quality:ResourceUtilization , prc-maturity:Development .

arc-alignment:ArchitectureModel
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Architecture model" ;
        rdfs:subClassOf  arc-alignment:ObjectiveCharacteristic ;
        :specializes     arc-alignment:ObjectiveCharacteristic .

:MeasurementResult  a    owl:Class ;
        rdfs:comment     "A measurement result." ;
        rdfs:label       "Measurement result" ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :Value ;
                           owl:onProperty            :hasValue ;
                           owl:qualifiedCardinality  "1"
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :Metric ;
                           owl:onProperty            :hasMetric ;
                           owl:qualifiedCardinality  "1"
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :assesses ;
                           owl:someValuesFrom  :SoftwareQualityCharacteristic
                         ] .

sw-quality:FunctionalSuitability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Functional suitability" ;
        rdfs:subClassOf  sw-quality:SoftwareProductQuality , :SoftwareQuality ;
        :specializes     sw-quality:SoftwareProductQuality .

sw-quality:TimeBehaviour
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Time behaviour" ;
        rdfs:subClassOf  sw-quality:PerformanceEfficiency ;
        :specializes     sw-quality:PerformanceEfficiency .

sw-quality:UsabilityInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Usability in use" ;
        rdfs:subClassOf  sw-quality:QualityInUse , :SoftwareQuality ;
        :specializes     sw-quality:QualityInUse .

<https://w3id.org/squap/Factor/DocumentationVsTimeAndBudget>
        a                owl:NamedIndividual , :SoftwareQualityFactor , owl:Class ;
        rdfs:comment     "Time and budget constraints have a direct impact on software documentation. Due to low budget for new developments and urgency for new applications, documentation is the first element which is skipped." ;
        rdfs:label       "Documentation vs time and budget" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:Learnability , prc-maturity:Documentation , sw-quality:Adaptability , sw-quality:Replaceability , sw-quality:Maturity , sw-quality:Modifiability , arc-alignment:ArchitectureRational , prc-maturity:Management , sw-quality:Testability , sw-quality:Reusability , arc-alignment:ArchitectureDescription , sw-quality:Analysability .

:Description  a           owl:Class ;
        rdfs:comment      "A Description represents a conceptualization. It can be thought also as a 'descriptive context' that defines concepts in order to see a 'relational context' out of a set of data or observations." ;
        rdfs:label        "Description" ;
        opla:isNativeTo   <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> ;
        owl:disjointWith  :Situation .

opla:isNativeTo  a  owl:AnnotationProperty .

<https://w3id.org/squap/Factor/QualityVsSystemAnalysis>
        a                owl:NamedIndividual , owl:Class , :SoftwareQualityFactor ;
        rdfs:comment     "Even though the design phase is perceived as the most important up-front activity, it is poorly implemented." ;
        rdfs:label       "Quality vs system analysis" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     arc-alignment:Stakeholder , arc-alignment:ArchitectureView , sw-quality:FunctionalCorrectness , sw-quality:FunctionalCompleteness , sw-quality:FunctionalAppropriateness , sw-quality:Replaceability , prc-maturity:QualityAssurance , sw-quality:Analysability .

<https://w3id.org/squap/Factor/WebTechnologiesVsMethodologies>
        a                owl:NamedIndividual , owl:Class , :SoftwareQualityFactor ;
        rdfs:comment     "There is the idea that the adoption of such technologies lead to less rigorous approach to software engineering. In this regard, Agile is considered a scapegoat of such sloppiness." ;
        rdfs:label       "Web technologies vs methodologies" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Development , arc-alignment:Correspondence , arc-alignment:CorrespondenceRules , sw-quality:Maturity , arc-alignment:Environment .

sw-quality:Changeability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Changeability" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

sw-quality:FunctionalAppropriateness
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Functional appropriateness" ;
        rdfs:subClassOf  sw-quality:FunctionalSuitability ;
        :specializes     sw-quality:FunctionalSuitability .

:SoftwareQuality  a      owl:Class ;
        rdfs:comment     "The software quality characteristic meant as softwarea quality." ;
        rdfs:label       "Software quality" ;
        rdfs:subClassOf  :SoftwareQualityCharacteristic .

sw-quality:ContextConformityInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Context conformity in use" ;
        rdfs:subClassOf  sw-quality:FlexibilityInUse ;
        :specializes     sw-quality:FlexibilityInUse .

:parametrizes  a            owl:ObjectProperty ;
        rdfs:domain         :Parameter ;
        rdfs:label          "parametrizes" ;
        rdfs:range          :Region ;
        rdfs:subPropertyOf  :classifies ;
        opla:isNativeTo     <http://ontologydesignpatterns.org/cp/owl/parameterregion.owl> .

sw-quality:Authenticity
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Authenticity" ;
        rdfs:subClassOf  sw-quality:Security ;
        :specializes     sw-quality:Security .

:FactorOccurrence  a     owl:Class ;
        rdfs:label       "Factor occurrence" ;
        rdfs:subClassOf  :Situation ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :satisfiesFactor ;
                           owl:someValuesFrom  :SoftwareQualityFactor
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :isAffectedBy ;
                           owl:someValuesFrom  :MeasurementResult
                         ] .

sw-quality:Co-existence
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Co-existence" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

:Situation  a            owl:Class ;
        rdfs:comment     "A view on a set of entities. It can be seen as a 'relational context', reifying a relation." ;
        rdfs:label       "Situation" ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> .

sw-quality:Portability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Portability" ;
        rdfs:subClassOf  sw-quality:Transferability ;
        :specializes     sw-quality:Transferability .

:affectsMeasurementOf
        a                   owl:ObjectProperty ;
        rdfs:domain         :MeasurementResult ;
        rdfs:label          "affects measurement of" ;
        rdfs:range          :FactorOccurrence ;
        rdfs:subPropertyOf  owl:topObjectProperty ;
        owl:inverseOf       :isAffectedBy .

sw-quality:Availability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Availability" ;
        rdfs:subClassOf  sw-quality:Reliability ;
        :specializes     sw-quality:Reliability .

<https://w3id.org/squap/Factor/PackagesDocumentationVsSystemAnalysis>
        a                owl:Class , :SoftwareQualityFactor , owl:NamedIndividual ;
        rdfs:comment     "The lack of documentation in packages impacts directly on the logical data model and quality controls." ;
        rdfs:label       "Packages documentation vs system analysis" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Documentation , sw-quality:Modifiability , sw-quality:Replaceability , arc-alignment:Environment , arc-alignment:System-of-Interest , sw-quality:Analysability .

<https://w3id.org/squap/Factor/RequirementsVsMethodologies>
        a                owl:Class , owl:NamedIndividual , :SoftwareQualityFactor ;
        rdfs:comment     "Poor methodologies to elicit business goals and needs lead to the definition of unclear software requirements." ;
        rdfs:label       "Requirements vs methodologies" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:FunctionalCompleteness , arc-alignment:CorrespondenceRules , prc-maturity:Development , arc-alignment:Stakeholder , sw-quality:FunctionalCorrectness .

arc-alignment:ObjectiveCharacteristic
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Objective characteristic" ;
        rdfs:subClassOf  :ArchitecturalAlignment .

arc-alignment:CorrespondenceRules
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Correspondence rules" ;
        rdfs:subClassOf  arc-alignment:ObjectiveCharacteristic ;
        :specializes     arc-alignment:ObjectiveCharacteristic .

sw-quality:Appropriateness
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Appropriateness" ;
        rdfs:subClassOf  sw-quality:FunctionalSuitability ;
        :specializes     sw-quality:FunctionalSuitability .

prc-maturity:Documentation
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Documentation" ;
        rdfs:subClassOf  prc-maturity:Supporting ;
        :specializes     prc-maturity:Supporting .

prc-maturity:Improvement
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Improvement" ;
        rdfs:subClassOf  prc-maturity:Organisational ;
        :specializes     prc-maturity:Organisational .

sw-quality:TransferabilityCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Transferability compliance" ;
        rdfs:subClassOf  sw-quality:Transferability ;
        :specializes     sw-quality:Transferability .

:isAffectedBy  a            owl:ObjectProperty ;
        rdfs:domain         :FactorOccurrence ;
        rdfs:label          "is affected by" ;
        rdfs:range          :MeasurementResult ;
        rdfs:subPropertyOf  owl:topObjectProperty .

sw-quality:FlexibilityInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Flexibility in use" ;
        rdfs:subClassOf  sw-quality:QualityInUse , sw-quality:FlexibilityInUse , :SoftwareQuality ;
        :specializes     sw-quality:QualityInUse , sw-quality:FlexibilityInUse .

sw-quality:EffectivenessInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Effectiveness in use" ;
        rdfs:subClassOf  sw-quality:UsabilityInUse ;
        :specializes     sw-quality:UsabilityInUse .

arc-alignment:ArchitectureViewpoint
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Architecture viewpoint" ;
        rdfs:subClassOf  arc-alignment:SubjectiveCharacteristic ;
        :specializes     arc-alignment:SubjectiveCharacteristic .

sw-quality:Maturity  a   :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Maturity" ;
        rdfs:subClassOf  sw-quality:Reliability ;
        :specializes     sw-quality:Reliability .

:classifies  a           owl:ObjectProperty ;
        rdfs:domain      :Concept ;
        rdfs:label       "classifies" ;
        rdfs:range       owl:Thing ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> .

:hasParameter  a       owl:ObjectProperty ;
        rdfs:comment   "The relation between a metric and a parameter." ;
        rdfs:domain    :Metric ;
        rdfs:label     "has parameter" ;
        rdfs:range     :Parameter ;
        owl:inverseOf  :isParameterOf .

sw-quality:EnvironmentalHarmInUse
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Environmental harm in use" ;
        rdfs:subClassOf  sw-quality:Safety ;
        :specializes     sw-quality:Safety .

:isSpecializedBy  a      owl:TransitiveProperty , owl:ObjectProperty ;
        rdfs:domain      :Concept ;
        rdfs:label       "is specialized by" ;
        rdfs:range       :Concept ;
        opla:isNativeTo  <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> ;
        owl:inverseOf    :specializes .

:isParametrizedBy  a        owl:ObjectProperty ;
        rdfs:domain         :Region ;
        rdfs:label          "is parametrized by" ;
        rdfs:range          :Parameter ;
        rdfs:subPropertyOf  :isClassifiedBy ;
        opla:isNativeTo     <http://ontologydesignpatterns.org/cp/owl/parameterregion.owl> .

:isValueOf  a               owl:ObjectProperty ;
        rdfs:domain         :Value ;
        rdfs:label          "is value of" ;
        rdfs:range          :MeasurementResult ;
        rdfs:subPropertyOf  owl:topObjectProperty .

prc-maturity:Verification
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Verification" ;
        rdfs:subClassOf  prc-maturity:Supporting ;
        :specializes     prc-maturity:Supporting .

:usesConcept  a                 owl:ObjectProperty ;
        rdfs:domain             :Description ;
        rdfs:label              "uses concept" ;
        rdfs:range              :Concept ;
        opla:isNativeTo         <http://ontologydesignpatterns.org/cp/owl/descriptionandsituation.owl> ;
        owl:propertyChainAxiom  ( :usesConcept :specializes ) .

sw-quality:FunctionalCorrectness
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Functional correctness" ;
        rdfs:subClassOf  sw-quality:FunctionalSuitability ;
        :specializes     sw-quality:FunctionalSuitability .

sw-quality:Replaceability
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Replaceability" ;
        rdfs:subClassOf  sw-quality:Compatibility ;
        :specializes     sw-quality:Compatibility .

sw-quality:FunctionalCompleteness
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Functional completeness" ;
        rdfs:subClassOf  sw-quality:FunctionalSuitability ;
        :specializes     sw-quality:FunctionalSuitability .

sw-quality:FlexibilityInUseCompliance
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Flexibility in use compliance" ;
        rdfs:subClassOf  sw-quality:FlexibilityInUse ;
        :specializes     sw-quality:FlexibilityInUse .

prc-maturity:Training
        a                :ProcessMaturity , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Training" ;
        rdfs:subClassOf  prc-maturity:Organisational ;
        :specializes     prc-maturity:Organisational .

arc-alignment:Correspondence
        a                :ArchitecturalAlignment , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Correspondence" ;
        rdfs:subClassOf  arc-alignment:ObjectiveCharacteristic ;
        :specializes     arc-alignment:ObjectiveCharacteristic .

:isAssessedBy  a            owl:ObjectProperty ;
        rdfs:domain         :SoftwareQualityCharacteristic ;
        rdfs:label          "is assessed by" ;
        rdfs:range          :MeasurementResult ;
        rdfs:subPropertyOf  :classifies .

:satisfiesFactor  a         owl:ObjectProperty ;
        rdfs:domain         :FactorOccurrence ;
        rdfs:label          "satisfies factor" ;
        rdfs:range          :SoftwareQualityFactor ;
        rdfs:subPropertyOf  :satisfies .

<https://w3id.org/squap/Factor/MeasurementOfSoftwareQuality>
        a                :SoftwareQualityFactor , owl:Class , owl:NamedIndividual ;
        rdfs:comment     "Losing control over the system quality is a concern." ;
        rdfs:label       "Measurement of software quality" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     arc-alignment:Stakeholder , sw-quality:FunctionalCorrectness , prc-maturity:Verification , arc-alignment:ArchitectureView , prc-maturity:Validation , prc-maturity:Audit , sw-quality:Non-repudiation , sw-quality:Integrity , prc-maturity:QualityAssurance , sw-quality:Accountability , arc-alignment:Concern , sw-quality:Maturity .

dcterms:issued  a  owl:AnnotationProperty .

<https://w3id.org/squap/Factor/EstablishmentOfInternalAndExternalDevelopmentProcesses>
        a                owl:NamedIndividual , owl:Class , :SoftwareQualityFactor ;
        rdfs:comment     "Merging internal and external development processes is extremely difficult." ;
        rdfs:label       "Establishment of internal and external development processes" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     arc-alignment:Concern , prc-maturity:Supply , sw-quality:Maturity , prc-maturity:Acquisition , prc-maturity:QualityAssurance .

<https://w3id.org/squap/Factor/ContractingAndSkills>
        a                owl:NamedIndividual , owl:Class , :SoftwareQualityFactor ;
        rdfs:comment     "Outsourcing is the main cause of poor software quality." ;
        rdfs:label       "Contracting and skills" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     prc-maturity:Infrastructure , prc-maturity:Training , prc-maturity:Acquisition , arc-alignment:Concern , prc-maturity:Improvement , prc-maturity:Supply .

<https://w3id.org/squap/Factor/CustomSoftwareQuality>
        a                owl:NamedIndividual , :SoftwareQualityFactor , owl:Class ;
        rdfs:comment     "The perceived quality of custom software applications is decreasing." ;
        rdfs:label       "Custom software quality" ;
        rdfs:subClassOf  :SoftwareQualityFactor ;
        :usesConcept     sw-quality:FunctionalAppropriateness , prc-maturity:Verification , arc-alignment:Concern , prc-maturity:Acquisition , sw-quality:Operability .

sw-quality:SoftwareProductQuality
        a                :SoftwareQuality , owl:NamedIndividual , owl:Class ;
        rdfs:label       "Software product quality" ;
        rdfs:subClassOf  :SoftwareQuality .
