• Tidak ada hasil yang ditemukan

Fundamental Approaches to Software Engineering

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "Fundamental Approaches to Software Engineering"

Copied!
176
0
0

Teks penuh

Jun Pang University of Luxembourg, Luxembourg AndréPlatzer Carnegie Mellon University, USA Bernhard Rumpe RWTH Aachen University, Tyskland Alessandra Russo Imperial College London, UK Rick Salay University of Toronto, Canada. Gabriele Taentzer Philipps-Universitetet i Marburg, Holland Silvia Lizeth Tapia Tarifa Universitetet i Oslo, Norge.

World

1 Introduction

This paper is organized as follows: In Section 2 we briefly describe syntax of insurance cases. In Section 4 we describe the advantages of a strict language for insurance cases by way of example.

2 Background on Assurance Case Modeling Notation

We believe that the path to truly making security cases the grand unification for software development for complex high-security systems has many challenges. Composition of evidence. We must effectively combine the top-down process of uncertainty reduction with the bottom-up process of evidence compilation, specifically, evidence obtained from the application of testing and verification techniques.

3 Sources of Uncertainty in Software Development

Specification uncertainty stems from a misunderstanding or incomplete understanding of how the system is supposed to work in early stages of development; e.g., miscommunication and inability of stakeholders to transfer knowledge due to different concepts and vocabulary [2,13]; unknown values ​​for sets of known events (a.k.a. the known unknowns); and the unknown and unidentifiable events (a.k.a. the unknown unknowns) [57]. Environmental uncertainty. The system's environment can refer to adjacent agents interacting with the system, a human operator using the system, or physical conditions in the environment.

4 Formality in Assurance Cases

The top-level security goal G1 in Figure 3 is first decomposed by the strategy Str1 into a series of sub-goals that confirm the security of the LMS subsystems. In Figure 3, a breakdown by subsystems was applied directly to the top-level safety goal, necessitating a completeness claim that the safety of all individual subsystems implied the safety of the whole system.

Fig. 3. A fragment of the Lane Management (LMS) Safety case.
Fig. 3. A fragment of the Lane Management (LMS) Safety case.

5 Combining Evidence

Instead, the argument in Fig.4 should only show that the set of subsystems in each decomposition is complete with respect to For example, results of verification of properties via a bounded model checker (BMC) are supplemented by additional test cases [8].

Fig. 5. Confidence argument for code review workflow (from [6]).
Fig. 5. Confidence argument for code review workflow (from [6]).

6 Assurance Cases for ML Systems

The framework identifies seven factors that could contribute to uncertainty in the behavior of a sensing component. Applying this approach to a test data set can provide evidence (S6) of the level of model uncertainty in the model.

Fig. 6. A partially developed GSN safety case of pedestrian detector example.
Fig. 6. A partially developed GSN safety case of pedestrian detector example.

7 Summary and Future Outlook

The more the models agree on how to classify a new input, the less model uncertainty is present and the more confidence one can have in the prediction. In our work on impact assessment of model change on insurance cases [39,40] we note that even small changes to the system can have significant impact on the insurance case.

Another problem is that the mindset of the programmer is often aligned with the prevailing post-hoc verification approach. This could spread the constructive CbC approach to areas where post-hoc verification is prevalent.

2 Foundations of Correctness-by-Construction

CbC has been shown to be beneficial even in domains where post-hoc verification is required [29]. The specifications and code developed using the CbC approach can be used to start the post-hoc verification process and allow for easier post-hoc verification, since the method constructed using CbC is generally of a structure more amenable to verification [29].

3 Correctness-by-Construction by Example

To verify that this refinement is valid, we must verify that the precondition of the iteration theorem implies the invariant, and that the invariant and the negated wait imply the postcondition of the iteration (cf. Rule 5). Both are valid because the condition is equal to the invariant and the postcondition of the iteration statement (in this case it is Q) is equal to the negated wait.

Fig. 2. Refinement steps for the linear search algorithm
Fig. 2. Refinement steps for the linear search algorithm

4 Tool Support in CorC

  • Graphical Editor
  • Textual Editor
  • Verification of CorC Programs
  • Implementation as Eclipse Plugin

The second statement is refined into a repetition statement (cf. the syntax of a repetition statement in Fig. 4). For example, in CorC a predicate (a, x, l, h) can be used (cf. the linear search example), which is specified in the help file as an FOL formula.

Fig. 3. Linear search example in the graphical editor
Fig. 3. Linear search example in the graphical editor

5 Evaluation

In the case of measured proof nodes, maximal element requires slightly fewer nodes proved with post-hoc verification than with CbC. With our tool support, we were able to compare the CbC approach with posthoc verification.

Fig. 5. Proof time of CbC and post-hoc verification in logarithmic scale
Fig. 5. Proof time of CbC and post-hoc verification in logarithmic scale

6 Related Work

We can reject the null hypothesis that CbC verification and post-hoc verification have no significant difference in verification time (p-value. Since we built CorC on top of KEY, the post-hoc verification of programs is possible with CorC.

7 Conclusion and Future Work

In this paper, we propose a new mechanism for modeling the behavior of opaque code to be used by static analysis. We present a new way to handle opaque code during static analysis by computing an exact code model on demand using (1) input samples representing analysis states, (2) dynamic execution, and (3) abstraction.

2 Modeling via Sample-Run-Abstract

In the rest of this paper, we present our Sample-Run-Abstract method for modeling opaque code for static analysis (Sect.2) and describe the sampling strategy (Sect.3) we use. When the number of possible states at a code-opaque call point is infinite, the sampling strategy can lead to unhealthy results.

Fig. 1. An abstract domain for even and odd integers
Fig. 1. An abstract domain for even and odd integers

3 Combinatorial Sampling Strategy

Abstract Domains for Primitive Values

When a represents an infinite number of concrete values, but it occupies a finite number of abstract values ​​in the lattice (that is, immediately precedes it), Sample recursively applies to each predecessor and aggregates the concrete results by means of a collection . When a represents infinitely many concrete values ​​and also covers infinitely many abstract values, we make the number of samples finite by applying a heuristic injection of seed samples.

Abstract Domains for Object Values

So we apply each-used or pairwise testing (1 or 2-wise) as the last step. With each test used, three combinations can cover each element in a set on each field at least once:.

4 Implementation

Experimental Setup

Because browser benchmarks use a small number of opaque features, we also created test cases for 134 features in the ECMAScript 5.1 specification. Since SAFE uses a finite number of abstract domains for primitive values, we used all of them in the test cases.

Answers to Research Questions

Even without any sophisticated heuristics or pairwise options, ⇓SRA achieved a decent amount of good results. Using more samples collected through trial and error with Final and all three pairwise options, ⇓SRA generated good results for 99.4% of the test cases by observing more behavior of opaque code.

Table 1. Precision and soundness by functions in the benchmarks
Table 1. Precision and soundness by functions in the benchmarks

Limitations

Given an executable (eg binary) version of the opaque code, the researchers also synthesized the code by sampling the code's inputs and outputs. While all of these techniques are a-priori attempts to generate general-purpose models of the dark code, to be used for other analysis, the researchers also proposed to build models during analysis.

7 Conclusion

In: Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering, str V: Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program Analysis, str.

Analysis of the Clock Constraint Specification Language

To our knowledge, this is the first result regarding the complexity of the scheduling problem with CCSL. Section4 presents an SMT-based decision procedure for the bounded scheduling problem and a sound algorithm for the general scheduling problem.

2 The Clock Constraint Specification Language

Logical Clock, History and Schedule

In this work, we focus on the CCSL scheduling problem, which is the fundamental problem to which the aforementioned CCSL verification problems can be reduced. Based on this decision process, we turn to the general (i.e., unconstrained) scheduling problem and present an algorithm based on binary search.

Syntax and Semantics of CCSL

For example, if the buffer is not initially empty, fetch operations may be performed before all. The filtering constraint c1 c2 w is used to define clock c1, which can be seen as snapshots of clock c2 in some steps according to the (ω-)regular expression w.

Table 1. Semantics of CCSL with respect to schedules
Table 1. Semantics of CCSL with respect to schedules

3 Scheduling Problem of CCSL

Schedulability

The subclock constraint c1 ⊆c2 expresses that c1 only occurs on some stage if c2 also occurs on this stage. The general form c1 c2$donc3 defines a new urc1 that is delayed by c2 by the times of the tick of c3.

Bounded Scheduling Problem

Furthermore, the satisfiability problem for Boolean formulas can be reduced to the bounded scheduling problem in polynomial time. The satisfiability problem for Boolean formulas is NP-complete, we obtain the 1-bounded scheduling problem with CCSLisNP-hard.

4 Decision Procedure for the Scheduling Problem

Transformation from CCSL into SMT

A Sound Algorithm for the Scheduling Problem

Otherwise, it binary searches for a bound k≤B such that Φk is satisfiable while Φk+1 (ifk+ 1≤B) is unsatisfiable or unverifiable at time T. If (Timeout,k) is returned, then Programmable Φk bounded to ifk= 0, otherwise no bounded schedule for Φ is found.

5 Case Study and Performance Evaluation

Schedulability of an Interlocking System

On receipt of the message checkFail(resp. checkSucc), the control center sends a red (resp. green) signal pulse to the signal light. After the lane is occupied (resp. unoccupied), the light must turn red (resp. green) within 40 ms.

Table 2. CCSL constraints of the interlocking system
Table 2. CCSL constraints of the interlocking system

Automatic Proof of CCSL Algebraic Properties

The extended term plan satisfies all the constraints and thus testifies to the arrangement of the designed mechanism for the locking system. In this paper, we are only concerned with the possibility to design constraints in the case.

Performance Evaluation

In: Proceedings of the 11th TASE, Sophia Antipolis, France, p. Cola¸co, J.-L., Pouzet, M.: Clocks as first-class abstract types. The semantics of the specification is "loose" in the sense that it consists of all edts that satisfy the axioms of the specification.

Table 4. Experimental results of bounded schedulability analysis CS Clks. Cons. THD: 10 s THD: 20 s THD: 30 s THD: 40 s
Table 4. Experimental results of bounded schedulability analysis CS Clks. Cons. THD: 10 s THD: 20 s THD: 30 s THD: 40 s

2 A Hybrid Dynamic Logic for Event/Data Systems

Data States

The intuition is that the occurrence of the event e causes a state transition in accordance with ψ, i.e. the pre- and post-data conditions satisfy ψ, and ψ specifies the possible effects of e. We write [λ] for ¬λ¬ and we use the usual Boolean conjunctions as well as the constant falseto denote¬true.1 The set SenE↓(Σ) of Σ-ed sentences consists of all Σ-ed formulas without free variables, where the free variables are defined as usual with ↓x being the unique operator binding variables.

Bisimulation and Invariance

There we use the fact that we can set properties over all attainable states by sentences of the form [E∗]ϕ. The converse of Theorem 1 does not hold in general and the usual assumption of image finiteness must be imposed: {γ |(γ, γ)∈R(M)e}is finite.

3 Specifications of Event/Data Systems

Axiomatic Specifications

E∗;insertCard](E∗;enterPINchk =tttrue∧ E∗;canceltrue) (0.1) – “When either a correct PIN is entered or the transaction is. When either a correct PIN is entered or the transaction is cancelled, the card can finally be ejected and the ATM starts from the beginning.”.

Operational Specifications

Every time you enter the wrong PIN three times in a row, the ATM restarts.” Therefore, the current card is retained. The ATM signature extends the Sp1 (and Sp0) signature with an additional integer-valued attribute jotrls that counts the number of attempts to enter the correct PIN (with the same card). The ATM is graphically presented in Figure 1.

Fig. 1. Operational ed specification ATM
Fig. 1. Operational ed specification ATM

Expressiveness of E ↓ -Logic

It is fin(c) where this algorithm mainly differs from [15]: To ensure that no transitions frac other than those specified in O exist, fin(c) imposes the requirement that at state c, for each event e and for each subset P of the transitions outgoing frac, whenever a transition can be performed with the combined effect of P but does not comply with any of the effects of the currently unselected transitions, the transition e must have one of ​​the states as its target which are target states of P. The first call of sen(Card, . .) explores the single outgoing transition from Card to PIN, adds PIN to the bound states, and thus expands to.

4 Constructor Implementations

The signature of CC consists of the events shown on the transitions in Fig.2b. To prove this refinement relation, we rely on the syntactic parallel composition ATM CC shown in Fig.2c and on Theorem 3.

Fig. 2. Operational ed specifications ATM  , CC and their parallel composition
Fig. 2. Operational ed specifications ATM , CC and their parallel composition

5 Conclusions

The images or other third-party materials in this chapter are included under the Creative Commons license of the chapter, unless otherwise noted in a line of credit accompanying the materials. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by law or exceeds the permitted use, you must obtain permission directly from the copyright holder.

Collaborative Online Modeling Environments

The key to the realization of Pyro is that Cinco takes a fully generative approach at the meta level, allowing one to modularly 'retarget' the Cinco Product Generation for the web (see Fig.1). The attributes of the currently selected element in the editor can be set via the properties panel at the bottom.

Fig. 1. Cinco generation architecture.
Fig. 1. Cinco generation architecture.

2 DSL Development with Cinco

The paper concludes with a summary, related work and an outlook on the future development in Sect.5. After discussing the front-end/back-end architecture of the generated Pyro modeling environments in Section 3, we will take a deeper look at the communication pattern between the involved components that facilitate synchronous collaborative modeling (cf. Section 4).

3 Architecture

Backend

The lowest level of a web application is a database for centralized information storage. As a result, the most remote component of the created web application is the REST interface.

Fig. 4. Backend component architecture and interaction.
Fig. 4. Backend component architecture and interaction.

Frontend

Thus, the editor, which is the main part of the frontend, provides several components similar to the Eclipse IDE. SVG Markup, which defines the shapes and style information for the nodes and edges, is generated based on the concrete syntax specified in Cinco's MSL files.

Fig. 5. Front end architecture.
Fig. 5. Front end architecture.

4 Collaborative Editing

Simultaneous Synchronization Mechanism

Single fields are tailored for the specified attribute data type, to provide as much support as possible. Thanks to CRDTs, concurrent editing conflicts of the same model element at the same time can be detected.

Distributed Command Pattern

All commands, collected during the execution of the initial modification, are broadcast to other listening clients (see Fig.6(4)). The intent of the modification must then be evaluated, whereas in graphical DSLs commands are used for a direct representation of the change made.

Fig. 6. Concept of the distributed command pattern. (Color figure online)
Fig. 6. Concept of the distributed command pattern. (Color figure online)

5 Conclusion and Perspectives

Naujokat, S., Lybecait, M., Kopetzki, D., Steffen, B.: CINCO: a simplicity-oriented approach to the complete generation of domain-specific graphical modeling tools. Steffen, B., Gossen, F., Naujokat, S., Margaria, T.: Language-driven engineering:. from general to purpose-specific languages. ed.).

Since in this paper we want to use short rules for model synchronization as well, they must be operationalized in source and forwarding rules. Finally, we discuss related work in (Sect.6) and conclude with guidelines for future work in (Sect.7).

2 Introductory Example

Finally, context elements that appear in both rules also appear in the shortcut rule while overlapping context elements appear only once. A non-monotonic TGG rule is forward operationalized by removing removed elements from the rule's source graphs, as they should not be present after a source rule application. Shortcut recovery rules allow source graph changes to be propagated directly to target graphs to restore consistency.

Fig. 3. Exemplary synchronization scenario
Fig. 3. Exemplary synchronization scenario

3 Preliminaries

To categorically express such triple graphs, we recall a simple definition of partial morphisms [23] to be used in Section 4.1. An extensive theory of triple graphs with partial morphisms is beyond the scope of this paper.

4 Constructing Language-Preserving Repair Rules

Operationalization of Generalized TGG Rules

The partial morphism in the front rule reflects that a pattern change can lead to a situation where the result is no longer a triple graph. A deleted resource element may have a preimage in the correspondence graph that is also not deleted.

Fig. 10. Retrieval of partial morphism G C  H S
Fig. 10. Retrieval of partial morphism G C H S

Language-Preserving Short-Cut Rules

Theorem 8 characterizes matches for short rules in which the application lies in the language of TGG. For shortcut operating rules, this can be used either for detecting invalid edit actions or for determining valid matches for advanced rule synchronization.

5 Implementation and Evaluation

In our evaluation, we show that operationalized shortcut rules allow for a model synchronization with significantly reduced data loss and improved runtime. Fritsche, L., Kosiol, J., Schurr, A., Taentzer, G.: Optimizing TGG-based model synchronization by automatic shortcut repair processes: extended version.

Table 1. Legacy vs. new synchronizer – Time in sec. and number of created elements
Table 1. Legacy vs. new synchronizer – Time in sec. and number of created elements

Transformation with Dependency Injection

Current tool support for model transformation is a root cause for many of the bottlenecks that impede scalability in MDE [2,8]. This notification mechanism is synchronous and loosely couples model updates with the delta propagation mechanism, which facilitates maintenance of the underlying transformation engine after the notification type is fixed.

2 Model Transformation: A Running Example

This work is structured as follows: Sect.2 provides a self-contained description of the class of model transformations supported using a class diagram for relational schema model transformation; Sect.3 presents the forward propagation procedure implemented in the model transformation engine together with the main innovations; Sect.4 discusses the transformation engine performance with an adaptation of the VIATRA CPS benchmark; Sect.5 discusses related work from reactive and two-way model transformation. When a rule is applied, the source model is used only for query purposes, but the target model is constructed by adding the pattern of RHS instantiated with values ​​from the variables both in the LHS and in the RHS of the wheretransformation step.

Fig. 1. Metamodels, example and transformation rules.
Fig. 1. Metamodels, example and transformation rules.

3 Delta-Driven Model Transformations

  • Dependency Injection
  • Representable Deltas
  • Impact Analysis
  • Change Propagation

In such cases, the transformation engine injects a dependency for the transformation step every time it detects a function call in the source model. In this step, transformation steps affected by the atomic changes in the source delta are marked as dirty.

Table 1. Analysis of dependencies for the initial MT t : M s − → ∗ M t of Fig. 2.
Table 1. Analysis of dependencies for the initial MT t : M s − → ∗ M t of Fig. 2.

4 Performance Analysis

Therefore, the granularity of the target delta is as fine-grained (at the binding level) as the source delta for the underlying graph structure of the model. The delta propagation phase involves applying the delta to the source model and propagating it.

Fig. 3. Performance of initialization (top) and delta propagation (bottom).
Fig. 3. Performance of initialization (top) and delta propagation (bottom).

5 Related Work

In the propagation phase, it can be observed that while YAMTL-incr exhibits a constant propagation time (in μs.) for the source delta, the cost of the other solutions depends on the size of the input model. A new transformation step may be found when new elements are inserted into the source model.

6 Concluding Remarks

In our running example, Repairadd determines a graph repair that results in the graph labeled 2 in Fig.4. The repair performed then uses an e b for the graph Hs, which results in the addition of the nodeb2 and the edge froma2 tob2.

Fig. 2. The restriction tree RT(G  u , ∅) (enclosed by the polygon) and four graph repairs (marked 3–6) generated using Repair sb,2
Fig. 2. The restriction tree RT(G u , ∅) (enclosed by the polygon) and four graph repairs (marked 3–6) generated using Repair sb,2

Gambar

Fig. 3. A fragment of the Lane Management (LMS) Safety case.
Fig. 4. An alternative representation of the same LMS fragment.
Fig. 5. Confidence argument for code review workflow (from [6]).
Fig. 6. A partially developed GSN safety case of pedestrian detector example.
+7

Referensi

Dokumen terkait

RN μ = Koefisien gesek antara sabuk dan pulley Anggap driven pulley bergerak searah jarum jam seperti gambar disamping, maka T1 = Tegangan pada tight side T2 = Tegangan pada slack