Presentation is loading. Please wait.

Presentation is loading. Please wait.

(C) P. H. Welch. 20031 Software Engineering Chapter 3.

Similar presentations


Presentation on theme: "(C) P. H. Welch. 20031 Software Engineering Chapter 3."— Presentation transcript:

1 (C) P. H. Welch. 20031 Software Engineering Chapter 3

2 (C) P. H. Welch. 20032 Software Engineering...the software crises & some philosophy

3 (C) P. H. Welch. 20033 Software Engineering No machines No programming problems Mild machines Mild problems Gigantic machines Gigantic problems E. W. Dijkstra (Turing Award Lecturer – 1972)

4 (C) P. H. Welch. 20034 Software Engineering The computer industry is in its infancy It produces labour saving products (hardware and software) Its method of production is manual, labour intensive and fraught with human error

5 (C) P. H. Welch. 20035 Symptoms of Crisis Systems that are:- Late Over budget (excessively) Not to specification Unreliable Inflexible Hard to maintain Not reusable Not portable

6 (C) P. H. Welch. 20036 Examples...??? IBM OS/360 Ada PL/1 System ‘X’

7 (C) P. H. Welch. 20037 Some Causes Failure of organizations to understand the life- cycle implications of software development Grave shortage of trained software engineers “von Neumann” architecture Tendency of organizations to become entrenched in archaic programming languages and practices (acknowledgements to Grady Booch)

8 (C) P. H. Welch. 20038 Fundamental Problem Workers “Nobody knows what precisely they are supposed to be doing.” Management “Nobody knows what the hell is going on!!!”

9 (C) P. H. Welch. 20039 We are expected to produce “complex” systems:- Large (1 M lines of code) Long lived (15 years) Continuously changing specifications (that’s life!) Physical constraints (of hardware technology – also changing) High reliability (and fault tolerance)

10 (C) P. H. Welch. 200310 How can we master complexity? Limitations of the human mind to cope with more than 7 (  2) things at once “I have only a very small head and I must live with it.” - E. W. Dijkstra

11 (C) P. H. Welch. 200311 “A complex system that works is invariably found to have evolved from a simple system that worked.” -John Gall (Fifteenth law in : “Systematics: How Systems Work and Especially How They Fail” Times Books, New York, 1977)

12 (C) P. H. Welch. 200312 Systems with complex properties... are complicated?...must be built from systems with simple properties Replicated, perhaps, to a massive extent Combined in a simple way Reusable

13 (C) P. H. Welch. 200313...software engineering

14 (C) P. H. Welch. 200314 Software Engineering The computing professional must become both an: Engineer Working from a base of formal theory and a set of applied principles Artist Creating systems from the raw materials of data structures & algorithms, but within the above disciplines

15 (C) P. H. Welch. 200315 Software Engineering “A disciplined artistry” – G. Booch sets goals for good systems identifies principles to help achieve the goals provides tools to support the principles

16 (C) P. H. Welch. 200316 Software Engineering Goals Simplicity: Understandability Verifiability Reliability Modifiability Efficiency Reusability

17 (C) P. H. Welch. 200317 Software Engineering Principles Abstraction Information Hiding Structuring Localisation Uniformity Completeness Verifiability

18 (C) P. H. Welch. 200318 Beyond Syntax and Semantics This course is not going to just address the syntax and semantics of occam as a programming language. Without a conscious understanding of software engineering principles, we will continue to fail to achieve the goals of software engineering. For multi-processor systems, the consequences of software mis-engineering will be particularly difficult to overcome.

19 (C) P. H. Welch. 200319 Abstraction The extraction of essential details of an “object” that are necessary and sufficient to characterise (and hence, use) it the omission of inessential details (that clutter up the mind and commit you to particular implementation details)

20 (C) P. H. Welch. 200320 Abstraction “In the development of our understanding of complex phenomena, the most powerful tool available to the human intellect is abstraction” C. A. R. Hoare “Notes on Data Structuring”: in ‘Structured Programming’, Dahl, Dijkstra, & Hoare, Academic Press, 1972

21 (C) P. H. Welch. 200321 Abstraction Information Hiding Abstraction when applied achieve Structuring Attributes of good abstractions Localisation Uniformity Completeness Verifiability

22 (C) P. H. Welch. 200322 Abstraction...simplicity versus complexity

23 (C) P. H. Welch. 200323 Successful Strategies for Design 1.Design so simple that obviously there are no deficiencies. 2.Design so complex that there are no obvious deficiencies. C.A.R. Hoare, ACM Turing Award Lecture, 1980

24 (C) P. H. Welch. 200324 Successful Strategies for Design “Ada covers a much larger application domain than Pascal. Hence, it is inevitably more complex than Pascal.” J. Ichbiah “The more complicated the subject we are trying to discuss, the more simple must be our language for discussing it.” N. Wirth

25 (C) P. H. Welch. 200325 Language Reference Manuals LanguageNo. of Pages Algol-6043 Pascal38 BCPL20 occam18 occam222 Ada275

26 (C) P. H. Welch. 200326 Entia non sunt multiplicanda praeter necessitatem William of Occam (XIV century)


Download ppt "(C) P. H. Welch. 20031 Software Engineering Chapter 3."

Similar presentations


Ads by Google