Matches in SemOpenAlex for { <https://semopenalex.org/work/W2277635278> ?p ?o ?g. }
- W2277635278 endingPage "191" @default.
- W2277635278 startingPage "191" @default.
- W2277635278 abstract "Software design rules are important in modern software development, with significance in achieving high quality in many aspects of software engineering including functional correctness, safety, performance, reusability, and so on. The current practice of software engineering tools to enforce software design rules has much to be desired. They usually either can only check a pre-defined set of design rules without allowing customization and extension, or even when customization or extension is allowed, they require programmers to encode new design rules in low level primitives such as byte-code level API, or force programmers to learn new domain specific languages or new meta-models that programmers are not familiar with.In this thesis work, we argue that the shadow model of AspectJ-like Aspect-oriented programming languages is a useful and suitable meta-model for building customizable software design rule static checkers for programs written in Java-like object-oriented languages. To support this thesis, based on AspectJ’s shadow model and pointcut language, we have built two compile time facilities, with which software design rules can be encoded and enforced. The first facility is called Statically Executable Advice, which allows programmers to implement design rule checkers in advice-like constructs, but unlike advice in AspectJ, they are advice that are defined on static shadows, instead of on dynamic join points, and that they are executed at compile time, instead of at run time. The second facility is a further improvement of the idea, by featuring a Datalog based declarative query mechanism on shadows, with a seamless integration with AspectJ’s native pointcut expression language. When designing this Datalog shadow query mechanism, we especially developed it with a focus on performance and scalability. We present a Datalog representation of the shadow model of AspectJ so that we can leverage an intelligent data structure capable of dealing with large-scale relational data with much redundancy, called Binary Decision Diagram (BDD). We make use of an advanced third party BDD-based Datalog solver called ”bddbddb” to solve design rule constraints encoded in Datalog shadow queries in our system. We have evaluated our Datalog-based approach for enforcing software design rules in terms of its effectiveness, usability, and performance. The evaluation results show that the system can describe and enforce a wide variety of industrial software design rules, it is easier to use than writing queries on an alternative meta-model, i.e., the Abstract-Syntax-Tree based model, and the system indeed can scale well to large size real world programs on diversified queries." @default.
- W2277635278 created "2016-06-24" @default.
- W2277635278 creator A5009684691 @default.
- W2277635278 creator A5077724737 @default.
- W2277635278 date "2010-01-01" @default.
- W2277635278 modified "2023-09-23" @default.
- W2277635278 title "On aspect-oriented programming for enforcing software design rules" @default.
- W2277635278 cites W111098712 @default.
- W2277635278 cites W135995917 @default.
- W2277635278 cites W1549891226 @default.
- W2277635278 cites W1558383061 @default.
- W2277635278 cites W1584814208 @default.
- W2277635278 cites W1610570299 @default.
- W2277635278 cites W1660714679 @default.
- W2277635278 cites W1963934148 @default.
- W2277635278 cites W1986453394 @default.
- W2277635278 cites W1989783863 @default.
- W2277635278 cites W1993084949 @default.
- W2277635278 cites W1997104165 @default.
- W2277635278 cites W1998162300 @default.
- W2277635278 cites W2001292754 @default.
- W2277635278 cites W2008029457 @default.
- W2277635278 cites W2013071456 @default.
- W2277635278 cites W2019468810 @default.
- W2277635278 cites W2029414465 @default.
- W2277635278 cites W2033647831 @default.
- W2277635278 cites W2040019628 @default.
- W2277635278 cites W2041206212 @default.
- W2277635278 cites W2050645799 @default.
- W2277635278 cites W2058394112 @default.
- W2277635278 cites W2066583243 @default.
- W2277635278 cites W2071558059 @default.
- W2277635278 cites W2075309900 @default.
- W2277635278 cites W2077382005 @default.
- W2277635278 cites W2079777989 @default.
- W2277635278 cites W2080267935 @default.
- W2277635278 cites W2087475328 @default.
- W2277635278 cites W2105170773 @default.
- W2277635278 cites W2117189826 @default.
- W2277635278 cites W2125759159 @default.
- W2277635278 cites W2127610832 @default.
- W2277635278 cites W2127919458 @default.
- W2277635278 cites W2131724884 @default.
- W2277635278 cites W2135522367 @default.
- W2277635278 cites W2136503680 @default.
- W2277635278 cites W2139914570 @default.
- W2277635278 cites W2141472133 @default.
- W2277635278 cites W2143238865 @default.
- W2277635278 cites W2148425758 @default.
- W2277635278 cites W2150491652 @default.
- W2277635278 cites W2151298976 @default.
- W2277635278 cites W2158047578 @default.
- W2277635278 cites W2164104198 @default.
- W2277635278 cites W2170364043 @default.
- W2277635278 cites W2293227920 @default.
- W2277635278 cites W84258820 @default.
- W2277635278 cites W2013886348 @default.
- W2277635278 hasPublicationYear "2010" @default.
- W2277635278 type Work @default.
- W2277635278 sameAs 2277635278 @default.
- W2277635278 citedByCount "0" @default.
- W2277635278 crossrefType "journal-article" @default.
- W2277635278 hasAuthorship W2277635278A5009684691 @default.
- W2277635278 hasAuthorship W2277635278A5077724737 @default.
- W2277635278 hasConcept C115903868 @default.
- W2277635278 hasConcept C186846655 @default.
- W2277635278 hasConcept C199360897 @default.
- W2277635278 hasConcept C2777904410 @default.
- W2277635278 hasConcept C2781009160 @default.
- W2277635278 hasConcept C41008148 @default.
- W2277635278 hasConcept C529173508 @default.
- W2277635278 hasConcept C60051680 @default.
- W2277635278 hasConcept C80291951 @default.
- W2277635278 hasConceptScore W2277635278C115903868 @default.
- W2277635278 hasConceptScore W2277635278C186846655 @default.
- W2277635278 hasConceptScore W2277635278C199360897 @default.
- W2277635278 hasConceptScore W2277635278C2777904410 @default.
- W2277635278 hasConceptScore W2277635278C2781009160 @default.
- W2277635278 hasConceptScore W2277635278C41008148 @default.
- W2277635278 hasConceptScore W2277635278C529173508 @default.
- W2277635278 hasConceptScore W2277635278C60051680 @default.
- W2277635278 hasConceptScore W2277635278C80291951 @default.
- W2277635278 hasLocation W22776352781 @default.
- W2277635278 hasOpenAccess W2277635278 @default.
- W2277635278 hasPrimaryLocation W22776352781 @default.
- W2277635278 hasRelatedWork W105397881 @default.
- W2277635278 hasRelatedWork W1586230214 @default.
- W2277635278 hasRelatedWork W19213215 @default.
- W2277635278 hasRelatedWork W1953786023 @default.
- W2277635278 hasRelatedWork W1961431777 @default.
- W2277635278 hasRelatedWork W2039231228 @default.
- W2277635278 hasRelatedWork W2064520156 @default.
- W2277635278 hasRelatedWork W2064583368 @default.
- W2277635278 hasRelatedWork W2098794871 @default.
- W2277635278 hasRelatedWork W2122434855 @default.
- W2277635278 hasRelatedWork W2146356030 @default.
- W2277635278 hasRelatedWork W2156325431 @default.
- W2277635278 hasRelatedWork W2164859807 @default.