SE Ontology for Software Engineering Knowledge Management in Multi by cali0998


									SE Ontology for Software Engineering
Knowledge Management in Multi-site
Software Development Environment
Digital Ecosystems and Business Intelligence
Institute (DEBII)
Software Engineering Ontology
(SE Ontology)
   The SE ontology defines common sharable
    software engineering knowledge
   Software engineering concepts – what they
    are, how they are related, and can be related
    to one another – for communicating over
    software engineering knowledge and software
    engineering project information.
SE Ontology in Multi-site Software
   Facilitating common understanding of project
    information to all the distributed members of
    a development team in a multi-site
    development environment.
   Reaching a consensus of understanding is of
    benefit in a distributed multi-site software
    development environment.
SE Ontology Instantiations
   Software engineering knowledge is represented in
    the SE ontology whose instantiations are undergoing
   SE ontology instantiations signify project
    information which is shared and evolving
       Reflect Project development
       Reflect Changes in software requirements or in the design
       Incorporate additional functionality to systems
       Allow incremental improvement, etc.
                                             Software Engineering Ontology

SE Ontology Components                           Abstract + Instantiations

   Abstract
       Generic represents the concepts that are common
        to a whole set of software engineering concepts
       Specific represents the set of software
        engineering concepts that are specifically used for
        some categories of particular projects
   Instantiations: project data, project
    information, project agreement
Populating Software Engineering
   Mapping various project data and project
    agreement to the concepts defined in the SE
   Instantiations are various in different
    circumstances of projects.
   The corresponding concrete data instances are
    stored as instantiations
Example of Transformation
                                          -CustomerID : int
                                          -FirstName : string
                                          -LastName : string
                                          -DriverLicenceNo : int
                                          -DriverLicenceExpiryDate : Date
                                          -DOB : Date
                                          -Address : string
                                          -Suburb : string
         RentalRegisteredDriver           -State : string
      -PassportNo : string                -Postcode : int
      -PassportCountry : string           -Country : string
      -DriverLicenceNo : int              -Phone : string
      -DriverLicenceExpiryDate : Date     -Fax : string
      -FristName : string                 -Email : string
      -LastName : string                  -RentalHistoryValue : int
      +NewDriver()                        -InsuranceHistoryValue : int
      +DeleteDriver()                     +NewCustomer()
      +ViewDriver()                       +SaveCustomer()
      +SaveDriver()                       +EditCustomer()
      +EditDriver()                       +ViewCustomer()
      +CancelDriver()                     +CancelCustomer()
      +SearchDriver()                     +SearchCustomer()

         has                RentalCustomer                    InsuranceRegisteredDriver
                        -CategoryType : string                -AdditionalExcess : Currency
                   0..* -DiscountPermitted : float            +GetInsurancePolicyNo()
   Example of Transformation
             Class_                                   ClassAttribute
<<Concept>> Attribute Class_Attribute_Datatype Single {Integer, Float, String, Character, Boolean}
   Class              Class_Attribute_Visibility Single {Public,Private,Protected}                                Customer
                                                                                                            -CustomerID : int

 Customer                   CustomerID
                                                                                                        ≡   -FirstName : string
                                                                                                            -LastName : string
                                                                                                            -DriverLicenceNo : int

                                            FirstName                                      xsd:String
                                                                           _Datatype        Integer
                                                                         Class_Attribute  Private
                                                                            _Visibility  xsd:String
   Example of Transformation

<<Concept>>                                    ClassOperation

              Operation                                                                         Customer
   Class                  Class_Operation_Name Single String
                          Class_Operation_Visibility Single {Public,Private,Protected}
 Customer                                        NewCustomer

    Example of Transformation
                            Related_Object_                       Relating_Object_                                         Customer
         <<Concept>>       Class_Component       <<Concept>>      Class_Component    <<Concept>>
            Class                             ClassGeneralisation                       Class

                Rental                               Subclass                         Customer
               Customer                              Instance
                                                                                                              RentalCustomer        InsuranceRegisteredDriver

                    Related_Object_ Associated_Object_Class_Component     Relating_Object_
 <<Concept>>       Class_Component Multiple ObjectUClassUComponent "Class Class_Component        <<Concept>>
    Class                           Related_Cardinality Single String                               Class
                                    Relating_Cardinality Single String
                                    Related_Role_Name Single String

                                    Relating_Role_Name Single String                                                    RentalRegisteredDriver                    RentalCustomer
                                                                                                                                                 1         0..*
    Rental                                           Association                                    Rental
RegisteredDriver                                      Instance                                     Customer
                                        Related_                  Related_
                                       Cardinality    Relating_ Rolename
                                              1          0..*         has
                                       xsd:String     xsd:String   xsd:String
Use of SE Ontology
   Remote communication issues in multi-site
    environment where development teams are
    geographically distributed
   Typical means of global communication
    which is neither efficient nor sufficient for a
    multi-site environment.
Example of use of SE Ontology
I am struggling to understand why we need it. I think the system
will be simpler for people to understand if we deleted the
insurance registered driver.
My reasons for this are that the insurance registered driver is a
sub type of the customer. This means that for every insurance
registered driver object there must be a corresponding customer
object. However, in the customer object we store values like
customer type, insurance history value and rental history value.
It does not make sense to have these values for the insurance
registered driver. I also think people will be confused because
we have the rental registered driver as an association with the
rental customer (which is a sub type of the customer) but the
insurance registered driver is a sub type of the customer.
Example of use of SE Ontology
   Terms involve
       Classes and subclasses: insurance registered driver,
        customer, rental customer
       Relationships: generalisation, association
       Attributes: customer type, insurance history value, rental
        history value
       Objects: insurance registered driver, customer
   By specifying ontology class instances, relevant
    information of those instances can be discovered
    dynamically and automatically
Example of use of SE Ontology
   SE ontology asserts that concept class has its
    semantic of containing attributes, operations,
    and relationships holding among other classes.
   Automatically drawing out details facilitates
    others’ greater understanding of the content,
    thereby reducing misunderstanding, and
    eliminating ambiguity.
   SE ontology facilitates collaboration of
    remote teams in multi-site distributed
    software development.
   Explored software engineering knowledge
    formed in the SE ontology.
   Analysed instantiations in the SE ontology
    through the examples.
Dr Pornpit Wongthongtham
  Research Fellow in Software Engineering
  Digital Ecosystems and Business Intelligence
  Institute, Curtin University of Technology

To top