• Ingen resultater fundet

SOFTWARE COMPONENT DEVELOPMENTCODINGSOFTWARE ARCHITECTURE DEVELOPMENTPRIOR DEVELOPMENTS

N/A
N/A
Info
Hent
Protected

Academic year: 2022

Del "SOFTWARE COMPONENT DEVELOPMENTCODINGSOFTWARE ARCHITECTURE DEVELOPMENTPRIOR DEVELOPMENTS"

Copied!
26
0
0

Indlæser.... (se fuldtekst nu)

Hele teksten

(1)

1

(2)

2 .

The Triptych Model of Software Development

— and its relations to SEMAT

Dines Bjørner

DTU Informatics

GTSE/PFSE 2012, Stockholm, 8–9 November

KTH

(3)

1. 3

1. Structure of Talk

1. Definitions 4

‘Formal Model’, ‘Method’, ‘Software Development’, ‘Software’.

2. The Triptych Method 5

• Generic Development Diagrams 5

⋄⋄ Domain Engineering Phase 6

⋄⋄ Requirements 9

⋄⋄ Software Design Phase 15

• Software Development Graphs 18

• Process Graphs 19

⋄⋄ Process Graph Travrsals 20

3. Relations to SEMAT 21

4. Conclusion 23

(4)

4 2. Structure of Talk

2. Definitions

• Formal Model: A concise, abstract specification that may be subject to rigorous reasoning — implies use of formal languages: formal syntax, formal semantics, proof systems.

• Method: A set of principles for selecting and applying techniques and tools in order to analyse and synthesize an artifact.

• Software Development: Domain engineering, requirements engineering and software design + all the tests, model checks and theorem proofs related to the engineering and design documents and their relations, etc.

• Software: The full set of documents arising from a completed software project:

domain descriptions, requirements prescriptions and software design + all the test

data and test results, models and model checks, theorems and proofs relsted to

the former documents; system, installation, user, etc. manuals, etc.

(5)

3. Definitions 5

3. The Triptych Method — one amongst many 3.1. Development Phases

Domain Engineering

Software Design Requirements Engineering

= Software Development

Software Engineering =

REDO REDO

REDO

DO DO

Figure 1: The triptych iterative phase development: Fig. ?? on Slide ??

(6)

6 3. The Triptych Method — one amongst many 3.2. Domain Engineering Phase

3.2. Domain Engineering Phase 3.2.1. Generic DE Diagram

Identification and Liaison Stakeholder Elicitation Studies

Elicitation Interviews

Preparation, Presentation

Description Unit Indexing DOMAIN

Domain Modelling

Scripts Domain

Concept Formation

Domain Theory R&D

DOMAIN MODELLING

Support Technologies

Human Behaviour Chapter 12

Chapter 13

Chapter 14

Chapter 15 Chapters 10−11

Chapter 11

DOMAIN DEVELOPMENT

Chapter 9

Analysis and

Rules and Regulations Business Processes

Intrinsics

Organisation Management and Questionnaire

Fill−out, and Return

Domain Validation and Verification Stakeholder Identification

ACQUISITION

Figure 2: The domain development processes

(7)

3. The Triptych Method — one amongst many 3.2. Domain Engineering Phase 3.2.1. Generic DE Diagram 7

Business Processes

Intrinsics

Mgt. & Org.

Rules & Regs.

Human Behaviour Support Techn.

DO DO

DO DO

REDO DO REDO

REDO REDO

REDO

Figure 3: The domain stage iterations: Fig. ?? on Slide ??

(8)

8 3. The Triptych Method — one amongst many 3.2. Domain Engineering Phase 3.2.2. Domain Description Documents

3.2.2. Domain Description Documents

1. Information

a Name, Place and Date b Partners

c Current Situation d Needs and Ideas e Concepts and Facilities

f Scope and Span

g Assumptions and Dependencies h Implicit/Derivative Goals

i Synopsis

j Standards Compliance k Contracts

l The Teams i. Management ii. Developers iii. Client Staff iv. Consultants 2. Descriptions

a Stakeholders

b The Acquisition Process i. Studies

ii. Interviews iii. Questionnaires

iv. Indexed Description Units c Terminology

d Business Processes e Facets:

i. Intrinsics

ii. Support Technologies iii. Management and

Organisation

iv. Rules and Regulations v. Scripts

vi. Human Behaviour f Consolidated Description 3. Analyses

a Domain Analysis and Concept Formation

i. Inconsistencies ii. Conflicts

iii. Incompletenesses iv. Resolutions b Domain Validation

i. Stakeholder Walk-Throughs ii. Resolutions

c Domain Verification

i. Model Checkings

ii. Theorems and Proofs

iii. Test Cases and Tests

d (Towards a) Domain Theory

(9)

3. The Triptych Method — one amongst many 3.3. Requirements Engineering Phase 9

3.3. Requirements Engineering Phase 3.3.1. Generic RE Diagram

Requirements Analysis

& Concept Formation

Satisfiability

& Feasibility Liaison

Stake Holder

Acquisition Requirements

Requirements Modeling

Validation

& Verification

Figure 4: Diagramming a requirements process model

(10)

10 3. The Triptych Method — one amongst many 3.3. Requirements Engineering Phase 3.3.1. Generic RE Diagram

Domain Requirements Machine Requirements

Shared Data Initialisation

Shared Data Refreshment

Man−machine Dialogue

Physiological Dialogue

Machine−.Machine Dialogue

Dependability

Interface Requirements Fitting Extension Instantiation Determination Projection BPR

Shared Phenomena

Identification Performance

Accessability Availability Reliability Safety Security Maintainability

Perfective Adaptive Corrective Preventive Portability

Documentation Demo Platform Maintenance Platform Execution Platform Development Platform

Figure 5: The requirements modelling stage

(11)

11 3. The Triptych Method — one amongst many 3.3. Requirements Engineering Phase 3.3.2. Requirements: Informative Documentation

3.3.2. Requirements: Informative Documentation

1. Information

a Name, Place and Date b Partners

c Current Situation

d Needs and Ideas (Eurekas, I)

e Concepts & Facilities (Eurekas, II) f Scope & Span

g Assumptions & Dependencies h Implicit/Derivative Goals

i Synopsis (Eurekas, III) j Standards Compliance

k Contracts, with Design Brief l The Teams

i. Management

ii. Developers

iii. Client Staff

iv. Consultants

(12)

12 3. The Triptych Method — one amongst many 3.3. Requirements Engineering Phase 3.3.3. Requirements: Prescriptive Documentation: Two Slides

3.3.3. Requirements: Prescriptive Documentation: Two Slides

2. Prescriptions (1 of 2) a Stakeholders

b The Acquisition Process i. Studies

ii. Interviews iii. Questionnaires

iv. Indexed Description Units c Rough Sketches (Eurekas, IV) d Terminology

e Facets:

i. Business Process Re- enginering

• Sanctity of the Intrin- sics

• Support Technology

• Management and Or- ganisation

• Rules and Regulation

• Human Behaviour

• Scripting

ii. Domain Requirements

• Projection

• Determination

• Instantiation

• Extension

• Fitting

iii. Interface Requirements

• Shared Phenomena and Concept Identi- fication

• Shared Data Initialisa- tion

• Shared Data Refresh- ment

• Man-Machine Dia- logue

• Physiological Interface

• Machine-Machine Di-

alogue

(13)

13

3. The Triptych Method — one amongst many 3.3. Requirements Engineering Phase 3.3.3. Requirements: Prescriptive Documentation: Two Slides

(2. Prescriptions (2 of 2)) iv. Machine Requirements

• Performance

⋄⋄ Storage

⋄⋄ Time

⋄⋄ Software Size

• Dependability

⋄⋄ Accessability

⋄⋄ Availability

⋄⋄ Reliability

⋄⋄ Robustness

⋄⋄ Safety

⋄⋄ Security

• Maintenance

⋄⋄ Adaptive

⋄⋄ Corrective

⋄⋄ Perfective

⋄⋄ Preventive

• Platform

⋄⋄ Development Plat- form

⋄⋄ Demonstration Plat- form

⋄⋄ Execution Platform

⋄⋄ Maintenance Platform

• Documentation Require- ments

• Other Requirements

v. Full Reqs. Facets Doc.

(14)

14 3. The Triptych Method — one amongst many 3.3. Requirements Engineering Phase 3.3.4. Requirements: Analytic Documentation

3.3.4. Requirements: Analytic Documentation

3. Analyses

a Requirements Analysis and Concept Formation i. Inconsistencies

ii. Conflicts

iii. Incompletenesses iv. Resolutions

b Requirements Validation

i. Stakeholder Walk-through and Reports ii. Resolutions

c Requirements Verification

i. Model Checkings ii. Theorem Proofs iii. Test Cases and Tests d Requirements Theory

e Satisfaction and Feasibility Studies

i. Satisfaction: Correctness, unambiguity, com- pleteness, consistency, stability, verifiability, modifiability, traceability

ii. Feasibility: Technical, economic, BPR

(15)

3. The Triptych Method — one amongst many 3.4. Software Design Phase 15

3.4. Software Design Phase 3.4.1. Generic SD Diagram

SA1

SA2

SAm

C11 Cn1

C12 C22 C2n

C21

C1L C2M CnN

K1 K2 Kn

...

... ... ...

...

+ ...

...

+ +

+ + +

V:MC:T

V:MC:T V:MC:T V:MC:T

V:MC:T

V:MC:T V:MC:T

V:MC:T V:MC:T

V:MC:T V:MC:T

V:MC:T

V:MC:T V:MC:T

V:MC:T

V:MC:T V:MC:T V:MC:T V:MC:T V:MC:T

DOMAIN DESCRIPTION DEVELOPMENT

REQUIREMENTS PRESCRIPTION DEVELOPMENT

SOFTWARE ARCHITECTURE DEVELOPMENT

COMPONENT

CODING SOFTWARE DEVELOPMENT

SOFTWARE COMPONENT DEVELOPMENTCODINGSOFTWARE ARCHITECTURE DEVELOPMENTPRIOR DEVELOPMENTS

Domain

Requirements

Software Architecture

Software Components

Figure 6: The software design development processes

(16)

16 3. The Triptych Method — one amongst many 3.4. Software Design Phase 3.4.2. Software Design Documentation

3.4.2. Software Design Documentation 3.4.2.1 Informative Documentation

1. Information

a Needs and Ideas b Concepts & Facilities c Scope & Span

d Assumptions & Dependencies e Implicit/Derivative Goals

f Synopsis g The Teams

i. Management ii. Developers iii. Consultants h Contracts

3.4.2.2 Specification Documentation

2. Software Specifications

a Architecture Design (S a 1 . . . S a n ) b Component Design (S c 1

i . . . S c nj )

c Module Design (S m 1 . . . S m m )

d Program Coding (S k 1 , . . . , S k n )

(17)

3. The Triptych Method — one amongst many 3.4. Software Design Phase 3.4.2. Software Design Documentation 3.4.2.3. Analytic Documentation 17

3.4.2.3 Analytic Documentation

3. Analyses

a Analysis Objectives and Strategies b Verification (S i

p

, S i ⊒ L

i

S i+1 )

i. Theorems and Lemmas L i

ii. Proof Scripts ℘ i

iii. Proofs Π i

c Model Checking (S i ⊒ P i − 1 ) i. Model Checkers

ii. Propositions P i

iii. Model Checks M i

d Testing ( S i ⊒ T i )

i. Manual Testing

• Manual Tests M S

1

. . . M S

µ

ii. Computerised Testing A. Unit (or Module) Tests

C u

B. Component Tests C c

C. Integration Tests C ı

D. System Tests C s . . . C s

its

e Evaluation of Adequacy of Analysis

3.4.2.4 Legend

Legend:

S Specification

L Theorem or Lemma

℘ i Proof Scripts Π i Proof Listings P Proposition

M Model Check (run, report) T Test Formulation

M Manual Check Report

C Computerised Check (run, report)

⊒ “is correct with respect to (wrt.)”

“is correct, modulo ℓ , wrt.”

(18)

18 4. The Triptych Method — one amongst many

4. Software Development Graphs

4.1. Example: CHILL, Ada, Java, ... Developement

FE 1 FE 2 BE 1 BE 2

Structure Runtime Compiler &

Code Semantics

Denotational

Mechanical Semantics

Operational Static

FE m BE n

Back end

Front end Runtime

R1

R2

R4

R6 R7

R5

DE

Semantics

Abstract Syntax

Static Semantics

Dynamic Semantics

Operational Semantics

Virtual Machine

Tasking Model

Compiling Algorithm Semantic

Analysis

Multipass

Administrator

Model

Runtime

Runtime System

R3

Domain Engineering

Requirements Engineering

Software Design

Figure 7: A compiler software

(19)

5. Software Development Graphs 19

5. Process Graphs

• Replace every SDG node/arc by relevant GDD nodes/arcs.

• The result is a Process Graph

⋄⋄ “zillions” of nodes and arcs —

⋄⋄ best kept represented “inside” the computer

⋄⋄ with “zoomable” and “expandable” SDG and GDD items

⋄⋄ displaying only “as much as is comprehensible”.

(20)

20 5. Process Graphs 5.1. Process Graph Traversals

5.1. Process Graph Traversals

D

F A

B

E

G

H

J

K

L

C b

a

d c

e f

g h j

k

m

n

... etcetera ... etcetera

Figure 8: A graph (left) and two (incomplete) traversal traces (center and right)

• h{A},{a,b},{B,b},{c,d,b},{D,E,b},{D,E,C},...,{L} i

• h{A},{a,b},{c,d,b},{D,E,b},{D,E,C}, ... i

• h{A},{a,z},{X},{D,Y,b},{D,E,C},... i

• h{A},{a,b},{B,b},{a,b},{B,b},{c,d,b},{B,b},{c,d,b},{D,E,b},{D,E,C}, ... i

• Complete traversal • Skipped B • Extraneous x, X, Y • Redo a, ..., redo B,

...

(21)

6. Process Graphs 21

6. Relations to SEMAT

6.1. Review of the Definition of ‘Method’

• Method:

⋄⋄ A set of principles

⋄⋄ for selecting and applying

⋄⋄ techniques and tools

⋄⋄ in order to

◦◦ analyse and

◦◦ synthesize

an artifact.

(22)

22 6. Relations to SEMAT 6.2. Triptych + SEMAT

6.2. Triptych + SEMAT

• It’s all very simple, and, ..., yet:

⋄⋄ with every transition (arc) in a process graph

◦◦ perform the “SEMAT ...” practices

◦◦ as an integral part of the Triptych practices, and

⋄⋄ with every node in a process graph

◦◦ perform the “SEMAT DO” practices

◦◦ as an integral part of the Triptych practices

• The “SEMAT”, based on its αlpha cards

⋄⋄ contributes to and makes even more explicit

⋄⋄ the analysis and selection principles of the Triptych approach.

(23)

7. Relations to SEMAT 23

7. Conclusion 7.1. What Next

7.1.1. αlpha

• Review αlphas;

⋄⋄ in addition to RE and SD αlphas discover a DE αlpha;

⋄⋄ discover – or refine existing – αlphas

for formal testing, model checking and proofs;

⋄⋄ discover α lpha types:

for the αlpha predicates and

related state-changing functions;

⋄⋄ etcetera, etc.

(24)

24 7. Conclusion 7.1. What Next 7.1.2. Open Issues

7.1.2. Open Issues

• The αlpha review, above, will lead to revisions of the αlpha structures.

• Etcetera.

8. Many Thanks

(25)

8. Many Thanks 25

(26)

26 8. Many Thanks

Referencer

RELATEREDE DOKUMENTER

Characterisation 106 (Documentation Requirements) By documenta- tion requirements we mean requirements of any of the software documents that together make up software (cf. the very

The TSP test is used to test the eciency of algorithm and see how fast and close it gets to the shortest path in the graph.. The algorithm will run for 15000 generation and the

Due to the difficulty involved in the design and development of complex software systems, wide ranges of software engineering paradigms have been developed, such as

4a true E Current number current maximum and < current minimum 4a false E Current number current maximum and current minimum The old input data sets may be used

tably software systems development: Domain desription and

(a) each element has an influence factor on electrical values, such as voltages, power flows, rotor angle, in the TSO's control area greater than common contingency influence

– The session will start with a presentation of the overall design and the results from the development and the test phase leading to the final programme description with

⋄⋄ in all there phases of development: domains, requirements and design. • By formal techniques software development