Topic 1 What is Software Engineering? · 2011. 3. 27. · EWSD: electronic dial system Digital 1960 1970 1980 1990 2000 60 MOI 50 MOI 40 MOI 30 MOI 20 MOI 10 MOI EWSD for BB-ISDN
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Humboldt University Berlin, University of Novi Sad, University of Plovdiv,University of Skopje, University of Belgrade, University of Niš, University of Kragujevac
Version: Oct. 27, 2005 (D Sep. 22, 2003)
DAAD Project“Joint Course on 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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
Areas of software engineering:What belongs to it ?
„Programming is a comparatively small component of the softwareengineering field. Some of the other parts (including for example, software specification and design) are equally important.“
Project Management
Softwarespecification
User documentation
User interfacedesign
Softwaredesign
Programming Testing
Hardwareconsiderations
Software EngineeringThe World
M. Pont: Software Engineering with C++ and CASE Tools, Addison-Wesley 1996
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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
team workproject managementsoftware engineeringleadershipdatabasesrhetoricscommunication systems / computer netsquality assurancedata structures and efficient algorithmsoperating systemssoftware ergonomicsbusiness management algorithmic fundamentals / complexitymathematical and logical fundamentalsdistributed systemsscientific work methodsdata securityinformation systemsconcepts of programming languagescomputer architecturelegal fundamentalsdisposition systemsanalysis and assessment of computer systemsgraphics and visualization systemsmodeling and simulationformal languages and automatonreal-time systemsmultimediainformatics and societyfundamentals of electronicsmachine-level programmingCIMexpert systemsfundamentals of artificial intelligenceelectrical measurementimage processingapplications of artificial intelligencepattern recognition
Software developerYour 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 developerYour 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
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)
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).Therac 25 - computer-controlled radiation therapy machine: between June 1985 and January 1987 6 people were overdosed (5 of them died) as a result of missing software safety lock that should prevent overdose (Berry, D.M., “Myths and realities of software development”).
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 30lines 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%
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 timesb) increase to 2 timesc) unchanged
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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
How large is software ?classification of software according to its size:small: up to 2000 lines of codemiddle: 2000 – 100.000large: 100 000 – 1.000.000very 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)
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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
Historysoftware crisis:notion since the middle of the 60th in the middle of the 60thsoftware costs become larger than hardware costs (picture)
NATO conferences 1968, 69:definition of the notion software engineering
big advantagesbut: also today we have a software crisessoftware costs (world-wide)1985: 140 billion of dollars1995: 435(comparison: budget of Germany 1992: 430 billions of DM)(Balzert, Yourdon)
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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
Definitions of software engineering1. „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).
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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
Software development in practicereal customerbefore programming: negotiations with customers to clarify requirements often changes of wishes of the customers misunderstandingscomplex task - complex program error-prone software high-pressure deadlinesteam workbig volume of documents:see next slideprogramming only 20 % of all activities of a project long-run usage (10 ... 25 years) modifications of software after delivery (new wishes, new hardware ...)
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
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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
notions, methods, tools 3. Interrelations between subareas (help for orientation) 4. Illustrating examples: continuous case study5. To go into depth: assignments6. Awareness of problems of SE7. Current problems of SE
(metrics, reverse engineering, CMM, cleanroom SE, extreme programming ...)
8. Experience with SW-tools
We do not offer: large project, customer,negotiation, change of wishes, high-pressure deadlines ...
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 softwared) History of software engineeringe) Several definitions of software engineeringf) 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, ...
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.
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
The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defensethrough 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.[...]