• Keine Ergebnisse gefunden

“Maturity Level” Repeat- able SEI-Evaluation of 167 Companies The Nature of the Software – From the computer program to software: Generic and customized products (prototypically unique

N/A
N/A
Protected

Academic year: 2022

Aktie "“Maturity Level” Repeat- able SEI-Evaluation of 167 Companies The Nature of the Software – From the computer program to software: Generic and customized products (prototypically unique"

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1.1 The Software Phenomenon

What has become of Software Projects?

(Reported in 1990 by Diebold International on government contracts, U.S.)

Product Delivered, does not function 47%

Used as developed 2%

Re-engineered, deployed 3%

Re-engineered, not deployed 19%

Paid, not deployed 29%

(2)

Managed

Optimizing

Repeatable

Defined

Initial Cost

Level 5

Level 4

Level 3

Level 2

Level 1 Disciplined Process

Standard, Consistent

Process

Continously Improving Process

Predictable Process

Time

Capability Maturity Levels (Process Evolution) from SEI, CMU (1990)

(3)

5%

40%

30%

20%

10% 9%

16%

30%31%

2%

11%

1%

0%

1 2 3 4 5

Initial Defined Managed Optimizing Percentage of Companies (%)

“Maturity Level”

Repeat- able

SEI-Evaluation of 167 Companies (1990)

(4)

1.2 The Nature of the Software

– From the computer program to software: Generic and customized products (prototypically unique)

– “Software-Phenomenon,” “Software-Crisis,” especially for customer-specific software products

– Necessity of the formalization of the program design

– NATO-Workshop “Software-Engineering,” 1968 in Garmisch-Partenkirchen – “Programming in Small,” “Programming in Large”

– Problem Area: Documentation

(5)

100

60

40 20 80

%

Hardware

Software- Development

Software- Maintanance

Time

1955 1970 1995

Percentage of Total Software Development Costs

(6)

1.3 Handling of Complex Systems

– Complex Systems

• are not monolithic, i.e., they have a lot of components which depend each other in many ways.

• have critical and pluralistic characteristics (Reliability, Availability, Fault Tolerance, ...).

• are embedded in other (complex) systems.

– Result: Complex systems are difficult to construct, understand, handle, ...

– Remedy: Special methods for modeling and analysis.

(7)

– Software systems are complex systems in terms of:

• Computability (“Computational Complexity”): Execution time and space.

• Productivity / Labor Intensity (“Psychological Complexity”): Time to understand, correct and modify a program.

– For to the design process: Identify risks / different development activities (design, specification, verification/validation) and the evolutionary nature of the products (usability, reliability, maintainability).

– For the production process: Employ rationalization products / tools (CASE:

Computer Aided Software Engineering).

(8)

1.4 Configuration Management

– Configuration: Constellation of components of a system and their structural relationships.

– Baseline: The "frozen" system configuration to a well-defined point in time ("Milestone") until the release of the next baseline.

– Configuration management (CM) identifies and controls the system

configuration at a desired state during the development and the use of the system.

– CM Functions:

• Identification of system components and baselines through meaningful identifiers with reference to hierarchy, version, serial membership etc.

• Change control from the application until the execution of the change (Change Board).

• Accounting changes by versions/change management (Change/Release Management).

– CM Tools are integrated into production environments.

(9)

Subroutine/

Subsystem

Segment/

Module Section

Program/

System

Statement . . .

. . .

. . .

. . . >100,000 Instructions

~3,000 Instructions

~300 Instructions

~50 Instructions

Typical Program Structure

(10)

Component A Version 23

. . . . . .

. . .

Baseline X. Y. 1 System

. . .

2

Component Z Version 1516

changed!

. . .

Component Z Version 46

47

Component ZB Version 11

Component ZAA Version 3

Component ZAB Version 89

Identification, Baseline, Change

(11)

A. 10 A. 11 A. 12 A2.1 A2.2 A3.1 Alt.A. 1 Alt.A. 2

CorrA.1 Alternative Development

Correction

: Refinement/Integration : Revision

: Variant : Repair

Version Group, Development History

(12)

1.5 Conceptual Clarification

– Software includes all the resources of mental character, which completes the hardware to an efficient computing system.

– Software is more than programs :

Software := Program(s) + Documentation + Methods (Design, Management) + Means and Tools

– Software engineering attempts to discover the principles and establish rules, in order to develop software economically and deterministically, and enable a reliable and friendly use.

(13)

Meaning

User/

Producer

Meta-characters (Construct) Semantics

Semantic Fault

Syntactic Fault Pragmatic

Fault

Pragmatics Syntactics

(Syntax)

Stigmatic Fault

Stigmatics Sign/Symbol

Signified/

symbolized object

Semiotics- Based (Symbols Theory) View

(14)

1.6 Objectives, Phases and Activities of Software Engineering

Objectives

Activities for

Phases of Activities for - Usability

- Portability - Auditability

- Cost Effectiveness

- Requirements definition - Design

- Implementation - Validation - Use

- Maintenance

- System Design - Software Design - Process Support - Process Management

(15)

Management Procedures

Computer Support

Technical Methods

Software-Developer

Select Tools

Create

Transparent Structure

Keep Management Reports

Coordinate and

Lead

Support Method

Determine Required Tools

Software-Development

Software- Development Methodology

Software-Development Software-Developer

Software Development Approaches

Software Development Environment

(16)

1.7 Principles, Methods and Tools

– Principles are general acting guidelines of software development, which can algorithmically be carried out by methods for special objectives and tasks.

– Tools enable, simplify and rationalize the use of the methods. They can be used manually or with computer support (tools).

– The most important Principles: Information hiding and structuring via abstraction for modularization and standardization.

– Abstract data types and abstract functions are instruments of abstraction.

– Another Principle: Locality and documentation integrated into the development and quality assurance.

– In general: Foresight and restriction, i.e., timely plan, validate and employ only as many methods and aids as necessary.

(17)

– Abstraction Principle (Information Hiding)

• Abstracting – Concretising

• Generalize – Specialize

• Modeling - Realization (Implementing)

– Abstraction Levels ⇒ Hierarchical Arrangement

⇒ Structure

• Data Abstraction ⇒ Abstract Data types

• Functional Abstraction ⇒ Abstract Functions

(18)

Example of Principles / Methods / Aids Hierarchy

– Principles: Structuring (of Programs).

– Methods: Elimination of non-linearities by using only three control structures sequence, selection and iteration.

– Means/Tool: Structure diagrams ("Nassi-Shneiderman Diagrams"), which do not allow "goto" statement (jump).

(19)

Non-Linear Programs

– Systems can be structured according to different criteria for different purposes:

Hierarchical, layered, net, ring, etc.

– Instrumentation of the structuring principle via

• methods of structured programming (use only the language constructs sequence, selection, and iteration).

• dedicated means: structure diagrams (Nassi-Shneiderman Diagrams).

– This is a good example of hierarchy:

Principle → Method → Means

Structuring → Structured Programming → Structure Diagram

– Programs with other constructs, for example, with goto's are therefore unstructured (non-linear “Spaghetti programs”).

– Special algorithms enables for structuring.

(20)

– Construction of "Structure Labeled Programs" is based on the following terms and relationships:

• A “proper program" has a definite beginning, a definite end, a arbitrary number of related function nodes, i.e., one can reach the end from each node and from the beginning to each node.

• "Functional equivalence" is that interchanging predicates of cascading selections does not change the function of the segment.

• "Execution equivalence" is that exporting function nodes out of a loop does not change the function of a segment.

• Execution equivalence implies functional equivalence.

– Structure Theorem: For every proper unstructured program, a functionally-

equivalent structured program is available; it contains the nodes of the original program, additional statements and tests of a counter (labels).

(21)

Example: A Non-proper Program

Begin

B End

A

D

F E C

(22)

Functional Equivalence

=^ A

q p

a > 3 a > 0

J

J A

p q

a > 0 a > 3

N

N

N

N J J

Execution Equivalence

=^ A

A

p

A p

Execution Equivalence ⇒ Functional Equivalence

(23)

PROCEDURE spaghetti;

...

BEGIN (* Spaghetti *)

marke_1: IF <p> THEN DO BEGIN

<A>; GOTO marke_2 END

ELSE IF <q> THEN GOTO marke_2 ELSE DO BEGIN

<B>; GOTO marke_1 END

marke_2: END (* spaghetti *);

...

- Create a structure diagram, program flow diagram and the linearized program.

(24)

Begin

p

q

End

B A

J N

J N

(25)

– Algorithm for Linearization

• Step 1: Number the nodes, End node: 0.

• Step 2: Label the nodes using the numbers of the following nodes, i.e., add label assignments.

• Step 3: Steer through the labels.

• Step 4: Simplify by combining the same labels.

(26)

Step 1: Numbering of the Nodes

Begin

p

q

End

B A

J

N

J 1

2 3

4

0

(27)

Basic Idea:

h j ⇒ h l := j

i i

l := j j

p

l := k k

i

⇒ p

(28)

Extension of the Nodes to Labels

Beg. Beg. l := 1

1. p

l := 2

l := 3

2. A l := 0

3. q

l := 0

l := 4

4. B l := 1

(29)

Begin End l := 2

l := 3

l := 0

l := 0

l := 4

l := 1 l := 1 l>0

q p

l

B A J

N

1

2

3

4

(30)

Step 4: Stepwise Simplification (Recursive Structure Program) 4.1 Inserting Switch = 4

Begin End

l := 2

l := 3

l := 0

l := 0

l := 1 l := 1 l>0

q p

l A

J N

1

2

3

B

(31)

Begin End l := 2

l := 0 l := 1 l>0

p

l

A J

N

1

2

l := 0

l := 1 q

B

(32)

4.3 Inserting Switch = 2

Begin End

l := 0

l := 1 l>0

p

A

J N

l := 0 q

B l := 1

(33)

- Result: The Linearized Program.

PROCEDURE spaghetti_smoothed;

BEGIN

label := 1;

WHILE label>0 DO BEGIN

IF <p> DO THEN BEGIN

<A>; label := 0 END

ELSE IF <q> THEN label := 0 ELSE BEGIN

<B>; label := 1 END

END

END; (* Spaghetti smoothed *) ...

- Create the related structured diagram.

Referenzen

ÄHNLICHE DOKUMENTE

A method satisfies Modular Continuity if, in the software architectures that it yields, a small change in the problem specification will trigger a change of just one module, or

A method satisfies Modular Continuity if, in the software architectures that it yields, a small change in the problem specification will trigger a change of just one module, or

If we take into account how subjects work with source code, we can compute weighted software measures, which reflect program comprehension better.. However, this eliminates one

In general, turbulent fluxes are calculated as the covariance between the two high frequency time series of vertical wind velocity and a scalar, which can be

In general, turbulent fluxes are calculated as the covariance between the two high frequency time series of vertical wind velocity and a scalar, which can be temperature, humidity

Operations on software engineering databases then amount to graph operations, which can involve documents, versions, configurations, or an entire database..

An Intergovernmen- tal Working Group defined monitoring as &#34;a system of continued observation, meas- urement and evaluation f o r defined purposes&#34; (International

❏ EPSON PRINT Image Framer Tool enables you to transfer Frames (layout files) to your SD memory card in your digital camera.. ❏ QuickTime 5 to enable you to play