Presentation is loading. Please wait.

Presentation is loading. Please wait.

Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University.

Similar presentations


Presentation on theme: "Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University."— Presentation transcript:

1

2 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac Version: Oct. 23, 2003 (D Sep. 22, 2003) DAAD Project “Joint Course on Software Engineering” Topic 1 What is Software Engineering?

3 DAAD project „Joint Course on Software Engineering“ © 2 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

4 DAAD project „Joint Course on Software Engineering“ © 3 The subject of... compiler construction database software engineering translation of higher-level programming languages to machine-level languages management of complex volumes of data ?

5 DAAD project „Joint Course on Software Engineering“ © 4 Areas of software engineering: What belongs to it ?  „Programming is a comparatively small component of the software engineering field. Some of the other parts (including for example, software specification and design) are equally important.“ Project Management Software specification User documentation User interface design Software design Programming Testing Hardware considerations Software Engineering The World M. Pont: Software Engineering with C++ and CASE Tools, Addison-Wesley 1996

6 DAAD project „Joint Course on Software Engineering“ © 5 Areas of software engineering : from textbooks, research subjects, conferences: (unordered, partly overlapping)  life cycle models  software processes (CMM, ISO 9000)  configuration management  effort estimation  project management  quality management  cleanroom software engineering  reverse engineering  program comprehension (program understanding)  software metrics  software architecture  software maintenance  requirements engineering  software specification  reuse  program verification  software documentation  knowledge-based SE  systematic testing  prototyping  CASE tools  programming languages for SE  object-orientation (analysis, design, programming, test)  extreme programming  pair programming

7 DAAD project „Joint Course on Software Engineering“ © 6 Computer-Zeitung 25/96 (20. June 96) Software Development Remains a Mixture of Methods Software development as science and as a practical activity have something in common: heterogeneity. Software Development Remains a Mixture of Methods Software development as science and as a practical activity have something in common: heterogeneity.

8 DAAD project „Joint Course on Software Engineering“ © 7 Software Engineering preliminary definitions  „Software engineering... aims at the economical development of high-quality software“ (Pagel / Six 1994, p. 49)  „SE is an engineering discipline concerned with the practical problems of developing large software systems“ (Sommerville 1992, 4. ed., p. v)

9 DAAD project „Joint Course on Software Engineering“ © 8 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

10 DAAD project „Joint Course on Software Engineering“ © 9 Questioning of young computer scientists working in practice by the German Society of Informatics in 1993  importance of subareas of informatics (most important areas first) subareas of informaticsscore team work project management software engineering leadership databases rhetorics communication systems / computer nets quality assurance data structures and efficient algorithms operating systems software ergonomics business management algorithmic fundamentals / complexity mathematical and logical fundamentals distributed systems scientific work methods data security information systems concepts of programming languages computer architecture legal fundamentals disposition systems analysis and assessment of computer systems graphics and visualization systems modeling and simulation formal languages and automaton real-time systems multimedia informatics and society fundamentals of electronics machine-level programming CIM expert systems fundamentals of artificial intelligence electrical measurement image processing applications of artificial intelligence pattern recognition 3.59 3.35 3.26 3.10 3.09 2.99 2.96 2.81 2.60 2.56 2.50 2.42 2.41 2.36 2.32 2.31 2.27 1.87 1.68 1.64 1.58 1.53 1.37 1.30 1.27 1.15 1.13 1.06 1.04 0.88 0.85 0.81 0.63

11 DAAD project „Joint Course on Software Engineering“ © 10 Questioning in 1993 (detail) subareas of informaticsscore team work project management software engineering leadership databases rhetorics communication systems / computer nets quality assurance data structures and efficient algorithms operating systems software ergonomics business management algorithmic fundamentals / complexity mathematical and logical fundamentals distributed systems scientific work methods data security information systems concepts of programming languages computer architecture 3.59 3.35 3.26 3.10 3.09 2.99 2.96 2.81 2.60 2.56 2.50 2.42 2.41 2.36 2.32 2.31 2.27 1.87 activities during software development subareas of software engineering

12 DAAD project „Joint Course on Software Engineering“ © 11 Süddeutsche Zeitung No. 120 /page V1/1 25.5.1996 Tasks of software engineers in the mirror of job offers Project manager As a project manager you are responsible of the realization of complex application projects for our customers in industry and management. The major goal is a satisfied customer based on an economically accomplished project... Project manager As a project manager you are responsible of the realization of complex application projects for our customers in industry and management. The major goal is a satisfied customer based on an economically accomplished project...

13 DAAD project „Joint Course on Software Engineering“ © 12 Computer Zeitung 16.10.97 Your tasks: analysis of technical requirements design of the application programming test and quality assurance installation in the target environment Your tasks: analysis of technical requirements design of the application programming test and quality assurance installation in the target environment Your profile: experience in COBOL knowledge of: UNIX, Open VMS, OS/400 SQL and Database, e.g. Oracle commercial knowledge Your profile: experience in COBOL knowledge of: UNIX, Open VMS, OS/400 SQL and Database, e.g. Oracle commercial knowledge

14 DAAD project „Joint Course on Software Engineering“ © 13 Süddeutsche Zeitung 15.12.96 Software developer Your tasks are: analysis of requirements of a given system feasibility analysis and effort estimation technical specification extension of existing software modules regression testing and software update procedures Software developer Your tasks are: analysis of requirements of a given system feasibility analysis and effort estimation technical specification extension of existing software modules regression testing and software update procedures

15 DAAD project „Joint Course on Software Engineering“ © 14 Software software =  properties of software : no wastage during the operation of software aging (software is permanently updated)  after 10 years of usage and update there is no more original line (Pagel, Six S. 35) long-run usage  in the average 10 - 15 years (Wallmüller 90, S. 3) up to 30 years (Hausi Müller) easy to copy (  errors too) hard to measure (metrics: quality, quantity) rather complex programs, data, documentation

16 DAAD project „Joint Course on Software Engineering“ © 15 Complexity of software  The distinguishing characteristics of industrial- strength software is that it is intensely difficult, if not impossible, for the individual developer to comprehend all the subtleties of its design. Stated in blunt terms, the complexity of such systems exceeds the human intellectual capacity. (Booch, Object-oriented Analysis and Design, p. 4)

17 DAAD project „Joint Course on Software Engineering“ © 16 Increasing complexity of software MDI: millions of object-code instructions EWSD: electronic dial system Digital 19601970198019902000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN SPACE SHUTTLE APOLLO EWSD-APS WM4.2 LUNAR MISSION CONTROL GEMINI MERCURY EWSD-APS DBP-14 7% annual increase of productivity

18 DAAD project „Joint Course on Software Engineering“ © 17 But: „software solutions demand high precision“ (Denert, p. 4) software is … error prone behaves in another way than expected finished too late more expensive than planned not applicable  very often: project breakup

19 DAAD project „Joint Course on Software Engineering“ © 18 Examples of software problems  Denver airport: could not be inaugurated (not opened) in 1994 – the software for the luggage transport system did not work  Siemens: account software for medicaments developed for health insurance funds was not ready in time (consequential costs of 1 billion DM - Berliner Zeitung 22.05.96)  Deutsche Telekom: wrong calculation of phone rates for 1.1.96 (software error: no holiday rate – damage: hundreds of millions of DM)  F18 warplane: during an exercise in 1983 with new developed plane software – crossing the equator the plane turned to the head. The reason was a sign error in the program (Wallmüller 1990, p. 1).  First space rocket to the Venus: in 1979 did not find the target: In a Fortran program they used a point instead of a comma. the loss: several hundreds millions of dollar (Wallmüller 1990, p. 1).

20 DAAD project „Joint Course on Software Engineering“ © 19 Questions: statistics concerning software development (1): (Mynatt: Software Engineering, p. 1) 1.The typical software development project takes a) 1 - 5 b) 6 - 11 c) 12 - 23 d) 24 - 48 month. 2.For a medium-sized software system, a) less than 10 b) 10 - 20 c) 21 - 30 d) more than 30 lines of executable source code are typically produced per day per person during the entire period of development of the system. 3.The approximate number of errors found in every 1000 lines of executable source code during development of a software system is: a) less than 30 b) 30 - 40 c) 40 - 50 d) 50 - 60 4.The approximate number of errors found in every 1000 lines of executable source code in a delivered software system is: a) less than 4 b) 4 - 8 c) 8 - 12 d) more than 12 5.Approximately what percentage of software systems that begin development are finally completed? a) 90 - 100% b) 80 - 90% c) 70 - 80% d) 60 - 70%

21 DAAD project „Joint Course on Software Engineering“ © 20 Questions: statistics concerning software development (2): (Mynatt: Software Engineering, p. 1) 6.The cost of owning and maintaining of software is typically a) one half b) just c) twice times as expansive as developing the software. 7.Most errors found by users in software are the result of a) programmer error b) problems in the problem statement or understanding the problem statement c) clerical errors d) errors in the design 8.What is the amount of programming during software development ? a) 99% b) 70% c) 50% d) 20% e) 10% 9.In software development today, a system would be considered large if it contained at least a) 10.000 b) 30.000 c) 50.000 lines of executable source code.) 10% Mynatt, 1990

22 DAAD project „Joint Course on Software Engineering“ © 21 Question: defect rate Defect rate = number of errors in 1000 lines of code  Due to the increasing complexity of software, the defect rate developed from 1977 to 1994 in the following way: a)increase to 10 times b)increase to 2 times c)unchanged

23 DAAD project „Joint Course on Software Engineering“ © 22 Importance of software industry 3000 2500 2000 1500 1000 500 world-wide volume in billion US$ 800 1100 1320 1620 2850 2900 military & defense engine building car industry chemical industry textile industry IT&T Source: G.Koch, European IT Conference (EITC), Brüssel, June 1994 tourism

24 DAAD project „Joint Course on Software Engineering“ © 23 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

25 DAAD project „Joint Course on Software Engineering“ © 24 How large is software ?  classification of software according to its size: small: up to 2000 lines of code middle: 2000 – 100.000 large: 100 000 – 1.000.000 very large: > 1 Mio. (A. Macro, p. 70)  average size of software in each of the 100 largest US companies: 35 Mio. lines of code (Hausi Müller, p. 3-12)  e.g. USA, DoD: 1,4 billion lines of code (distributed to 1.700 data centers) operating costs for these systems: 9 billion dollar / year (CACM, 5, 1994, p. 26)

26 DAAD project „Joint Course on Software Engineering“ © 25 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

27 DAAD project „Joint Course on Software Engineering“ © 26 History  software crisis: notion since the middle of the 60th  in the middle of the 60th software costs become larger than hardware costs (picture)  NATO conferences 1968, 69: definition of the notion software engineering  big advantages but: also today we have a software crises  software costs (world-wide) 1985: 140 billions of dollars 1995: 435 (comparison: budget of Germany 1992: 430 billions of DM) (Balzert, Yourdon)

28 DAAD project „Joint Course on Software Engineering“ © 27 Hardware costs and software costs 100 80 60 40 20 1955 1960 1969 19761985 Hardware Software

29 DAAD project „Joint Course on Software Engineering“ © 28 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

30 DAAD project „Joint Course on Software Engineering“ © 29 Definitions of software engineering 1.„Software engineering... aims at the economical development of high-quality software“ (Pagel / Six 1994, page 49) 2.„SE is an engineering discipline concerned with the practical problems of developing large software systems“ (Sommerville 92, p. v). 3.„SE is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software“ (IEEE Standard Glossary of Software Engineering Terminology, 1990). 4.„Software engineering is a defined, step-by-step process that facilitates the specification, design, implementation, and testing of a software solution for a set of stated requirements in the most expeditious and cost-effective manner possible“ (Kehoe: ISO 9000-3, 1995, S. 11).

31 DAAD project „Joint Course on Software Engineering“ © 30 Software engineering is not a special field of computer science What it is not compiler construction computer communication database artificial intelligence...... software engineering Ludewig, SEUH 97, p. 11 f. software- engineering compiler construction computer communication database artificial intelligence...... What it really is

32 DAAD project „Joint Course on Software Engineering“ © 31 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

33 DAAD project „Joint Course on Software Engineering“ © 32 Student software development „Normal“ student view of software life cycle Modesitt, LNCS 750, p 42 Read the problem (day 1) Code (day 1... n - 2) Debug (day n - 1) Document (day n -  ) Hand in (day n)

34 DAAD project „Joint Course on Software Engineering“ © 33 Distribution of project activities as a function of project size Yourdon, 1993, p. 151

35 DAAD project „Joint Course on Software Engineering“ © 34 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

36 DAAD project „Joint Course on Software Engineering“ © 35 Software development in practice  real customer  before programming: negotiations with customers to clarify requirements  often changes of wishes of the customers  misunderstandings  complex task - complex program  error-prone software  high-pressure deadlines  team work  big volume of documents: see next slide  programming only 20 % of all activities of a project  long-run usage (10... 25 years)  modifications of software after delivery (new wishes, new hardware...)

37 DAAD project „Joint Course on Software Engineering“ © 36 Software documents (Sommerville, Software Engineering, 5th ed., p. 17) ActivityOutput documents Requirements analysisFeasibility study Outline requirements Requirements definitionRequirements document System specificationFunctional specification Acceptance test plan Draft user manual Architectural designArchitectural specification System test plan Interface designInterface specification Integration test plan Detailed designDesign specification Unit test plan CodingProgram code Unit testingUnit test report Module testingModule test report Integration testingIntegration test report Final user manual System testingSystem test report Acceptance testingFinal system plus documentation

38 DAAD project „Joint Course on Software Engineering“ © 37 Software documents (IEEE standards)  Software Validation and Verification Plan (SVVP)  Software Quality Assurance Plan (SQAP)  Software Configuration Management Plan (SCMP)  Software Project Management Plan (SPMP)  Software Requirements Specification (SRS) (customer oriented and developer oriented)  Software Design Document (SDD) (architecture and detailed design)  Source code  Software Test Documentation (STD)  User's manual

39 DAAD project „Joint Course on Software Engineering“ © 38 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

40 DAAD project „Joint Course on Software Engineering“ © 39 Goals of this course (...and what we do not offer) 1.Introduction to SE 2.Overview of SE notions, methods, tools 3.Interrelations between subareas (help for orientation) 4.Illustrating examples: continuous case study 5.To go into depth: assignments 6.Awareness of problems of SE 7.Current problems of SE (metrics, reverse engineering, CMM, cleanroom SE, extreme programming...) 8.Experience with SW-tools We do not offer: large project, no customer, no negotiation, no change of wishes, high-pressure deadlines...

41 DAAD project „Joint Course on Software Engineering“ © 40 Software engineering in special courses Part I: Introduction to SE Part II: Requirements engineering 11. Basic concepts of state-oriented view 12. Basic concepts of scenario-based view 13. Object-oriented analysis 14. Formal specification and program verification Part III: Design 17. Object-oriented design Part IV: Implementation and testing 19. Systematic testing Part VI: Advanced problems 21. Software metrics 23. Reverse engineering 24. Quality of software development process and its standardization 24. Software ergonomics 25. Project management  Requirements Engineering (SEI, Pittsburgh, USA)  Petri nets (Reisig, HU)  Formal methods of SW development (SEI, Pittsburgh, USA)  Objectoriented SW development (with UML) (Fischer, HU)  Software architecture (SEI)  Software test methods (Spillner, Bremen)  CAME-Tools (Dumke, Magdeburg)  Software reengineering (Koschke, Stuttgart)  PSP (SEI)  CMM (SEI)  Software ergonomics (Wandtke, Inst. of psychology, HU)  Project Management (SEI, Pittsburgh, USA)

42 DAAD project „Joint Course on Software Engineering“ © 41 1. What is Software Engineering ? a)Areas of software engineering (i.e., what belongs to it) b)The importance of software engineering in practice - problems of software development c)On the size of software d)History of software engineering e)Several definitions of software engineering f)Problems of introducing software engineering in education g)Differences between software development in educational environment and in practice h)Goals of this course i)Literature, articles, papers,...

43 DAAD project „Joint Course on Software Engineering“ © 42 Literature (1)  Textbooks: I. Sommerville: Software Engineering (742 pages), 6. ed. Addison-Wesley, 2001 H. Balzert: Lehrbuch der Software-Technik, Spektrum-Verlag, Vol. 1: 1996, Vol. 2: 1998 (769 pages), Vol. 1 (2nd ed.): 2001 (1136 pages) B.-U. Pagel, H.-W. Six: Software Engineering. Addison-Wesley (895 pages), 1994 (in German) E. Braude: Software Engineering, An Object-Oriented Perspective, Wiley & Sons, 2001 R. Pressman: Software Engineering, A Practitioner‘s Approach, European Adaptation (840 pages), McGraw-Hill, 5 th ed., 2000 J. Marciniak: Encyclopedia of Software Engineering, Vol. 1, 2 (1453 pages), Wiley & Sons, 1994 IEEE Standards Collection, Software Engineering, 1994 Edition

44 DAAD project „Joint Course on Software Engineering“ © 43 Parts of this presentation use material from the textbook Helmut Balzert, Software Technik (Vol. 1), 2nd edition, Spektrum Akademischer Verlag, Heidelberg 2001. In particular, topics 4 to 13 and 15 to 18 are concerned.

45 DAAD project „Joint Course on Software Engineering“ © 44 Literature (2)  Journals: IEEE Transactions on Software Engineering IEEE Software ACM Software Engineering Notes ACM Transactions on Software Engineering and Methodology  Conferences: International Conference on Software Engineering Conference on Software Engineering Education Software Metrics Symposium and many others

46 DAAD project „Joint Course on Software Engineering“ © 45 most important international conference

47 DAAD project „Joint Course on Software Engineering“ © 46

48 DAAD project „Joint Course on Software Engineering“ © 47

49 DAAD project „Joint Course on Software Engineering“ © 48

50 DAAD project „Joint Course on Software Engineering“ © 49

51 DAAD project „Joint Course on Software Engineering“ © 50

52 DAAD project „Joint Course on Software Engineering“ © 51 SEI: Software Engineering Institute (Homepage: http://www.sei.cmu.edu) About the SEI - Welcome The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense through the Office of the Under Secretary of Defense for Acquisition, Technology, and Logistics [OUSD (AT&L)]. The SEI contract was competitively awarded to Carnegie Mellon University in December 1984. The SEI staff has extensive technical and managerial experience from government, industry, and academia. Mission The U.S. Department of Defense established the Software Engineering Institute to advance the practice of software engineering because quality software that is produced on schedule and within budget is a critical component of U.S. defense systems. [...]

53 DAAD project „Joint Course on Software Engineering“ © 52 SEI: Software Engineering Institute Detail: Management Practices

54 DAAD project „Joint Course on Software Engineering“ © 53 ESI: European Software Institute (Homepage: http://www.esi.es)


Download ppt "Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University."

Similar presentations


Ads by Google