Skip to main content

2019 | OriginalPaper | Buchkapitel

2. Fundamentals of Software Engineering

verfasst von : Gerard O’Regan

Erschienen in: Concise Guide to Software Testing

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Software engineering involves the multi-person construction of multi-version programs. We discuss various software lifecycles and the phases in traditional software development. We discuss requirements gathering and specification, software design, implementation, testing, and maintenance. The lightweight Agile methodology is introduced, and it has become very popular in the industry.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
Brooks was the project manager for the IBM System 360 project. The “Mongolian Hordes” management myth is the belief that adding more programmers to a software project that is running late will allow catchup. Brooks confirmed that adding people to a late software project actually makes it later.
 
2
These are IT projects covering diverse sectors including banking, telecommunications, etc., rather than pure software companies. Software companies following maturity frameworks such as the CMMI generally achieve more consistent results.
 
3
I recall projects at Motorola that regularly achieved 5.6σ-quality in a L4 CMM environment (i.e. approx. 20 defects per million lines of code. This represents very high quality).
 
4
Approaches such as the CMM or SPICE (ISO 15504) focus mainly on maturing management and organizational practices used in software development. The emphasis is on defining software processes that are fit for purpose and consistently following them. The process maturity models focus on what needs to be done rather how it should be done. This gives the organization the freedom to choose the appropriate implementation to meet its needs. The models provide useful information on practices to consider in the implementation.
 
5
Parnas advocates a solid engineering approach with the extensive use of classical mathematical techniques in software development. He also introduced information hiding in the 1970s, which is now a part of object-oriented design.
 
6
Software companies that are following approaches such as the CMM or ISO 9001 considering the education and qualification of staff prior to assigning staff to performing specific tasks.
 
7
The ancient Babylonians were familiar with the concept of accountability, and they employed a code of laws (known as the Hammurabi Code) c. 1750 B.C. It included a law that stated that if a house collapsed and killed the owner, then the builder of the house would be executed.
 
8
It is unlikely that an individual programmer would be subject to litigation in the case of a flaw in a program causing damage or loss of life. A comprehensive disclaimer of responsibility for problems rather than a guarantee of quality accompanies most software products. Software engineering is a team-based activity involving many engineers in various parts of the project, and it would be potentially difficult for an outside party to prove that the cause of a particular problem is due to the professional negligence of a particular software engineer, as there are many others involved in the process such as reviewers of documentation and code and the various test groups. Companies are more likely to be subject to litigation, as a company is legally responsible for the actions of their employees in the workplace, and a company is a wealthier entity than one of its employees. The legal aspects of licencing software may protect software companies from litigation. However, greater legal protection for the customer can be built into the contract between the supplier and the customer for bespoke software development.
 
9
Today, many software companies have a defined code of ethics that employees are expected to adhere. Larger companies will wish to project a good corporate image to be respected worldwide.
 
10
The British Computer Society (BCS) has introduced a qualification system for computer science professionals, which is used to show that professionals are properly qualified. The most important of these is the BCS Information Systems Examination Board (ISEB) which allows IT professionals to be qualified in service management, project management, software testing, and so on.
 
11
Software companies that are following the CMMI or ISO 9001 standards will employ audits to verify that the processes and procedures have been followed. Auditors report their findings to management, and the findings are addressed appropriately by the project team and affected individuals.
 
12
Agile teams are self-organizing and the project manager role is generally not employed for small projects (<20 staff).
 
13
This is essential for serious defects that have caused significant inconvenience to customers (e.g. a major telecom outage). The software development organization will wish to learn lessons to determine what went wrong in its processes that prevented the defect from been identified during peer reviews and testing. Actions to prevent a reoccurrence will be identified and implemented.
 
14
These are the risk management activities in the Prince2 methodology.
 
Literatur
Zurück zum Zitat Beck K (2000) Extreme programming explained. Embrace change. Addison Wesley, Boston Beck K (2000) Extreme programming explained. Embrace change. Addison Wesley, Boston
Zurück zum Zitat Boehm B (1988) A spiral model for software development and enhancement. Computer Boehm B (1988) A spiral model for software development and enhancement. Computer
Zurück zum Zitat Brooks F (1975) The mythical man month. Addison Wesley, Boston Brooks F (1975) The mythical man month. Addison Wesley, Boston
Zurück zum Zitat Brooks F (1986) No silver bullet. Essence and accidents of software engineering. Information processing. Elsevier, Amsterdam Brooks F (1986) No silver bullet. Essence and accidents of software engineering. Information processing. Elsevier, Amsterdam
Zurück zum Zitat Dijkstra EW (1972) Structured programming. Academic Press, Cambridge Dijkstra EW (1972) Structured programming. Academic Press, Cambridge
Zurück zum Zitat Fagan M (1976) Design and code inspections to reduce errors in software development. IBM Syst J 15(3) Fagan M (1976) Design and code inspections to reduce errors in software development. IBM Syst J 15(3)
Zurück zum Zitat Gilb T, Graham D (1994) Software inspections. Addison Wesley, Boston Gilb T, Graham D (1994) Software inspections. Addison Wesley, Boston
Zurück zum Zitat Jacobson I, Booch G, Rumbaugh J (1999) The unified software modelling language user guide. Addison-Wesley, Boston Jacobson I, Booch G, Rumbaugh J (1999) The unified software modelling language user guide. Addison-Wesley, Boston
Zurück zum Zitat Naur P, Randell B (1969) Software engineering: report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968. Scientific Affairs Division, NATO, Brussels Naur P, Randell B (1969) Software engineering: report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968. Scientific Affairs Division, NATO, Brussels
Zurück zum Zitat Naur P, Randell B (1975) Software engineering. Petrocelli, IN, Buxton. Report on two NATO conferences held in Garmisch, Germany (October1968) and Rome, Italy (October 1969) Naur P, Randell B (1975) Software engineering. Petrocelli, IN, Buxton. Report on two NATO conferences held in Garmisch, Germany (October1968) and Rome, Italy (October 1969)
Zurück zum Zitat Office of Government Commerce (2004) Managing successful projects with PRINCE2. Office of Government Commerce, UK Office of Government Commerce (2004) Managing successful projects with PRINCE2. Office of Government Commerce, UK
Zurück zum Zitat O’Regan G (2006) Mathematical approaches to software quality. Springer, London O’Regan G (2006) Mathematical approaches to software quality. Springer, London
Zurück zum Zitat O’Regan G (2010) Introduction to software process improvement. Springer, London O’Regan G (2010) Introduction to software process improvement. Springer, London
Zurück zum Zitat O’Regan G (2014) Introduction to software quality. Springer, LondonCrossRef O’Regan G (2014) Introduction to software quality. Springer, LondonCrossRef
Zurück zum Zitat O’Regan G (2017a) Concise guide to software engineering. Springer, BerlinCrossRef O’Regan G (2017a) Concise guide to software engineering. Springer, BerlinCrossRef
Zurück zum Zitat O’Regan G (2017b) Concise guide to formal methods. Springer, Berlin O’Regan G (2017b) Concise guide to formal methods. Springer, Berlin
Zurück zum Zitat Parnas D (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15(12)CrossRef Parnas D (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15(12)CrossRef
Zurück zum Zitat Royce W (1970) The software lifecycle model (waterfall model). In: Proceedings of WESTCON, August, 1970 Royce W (1970) The software lifecycle model (waterfall model). In: Proceedings of WESTCON, August, 1970
Zurück zum Zitat Rumbaugh J et al (1999) The unified software development process. Addison Wesley, Boston Rumbaugh J et al (1999) The unified software development process. Addison Wesley, Boston
Zurück zum Zitat Spivey JM (1992) The Z notation. A reference manual. Prentice Hall International Series in Computer Science Spivey JM (1992) The Z notation. A reference manual. Prentice Hall International Series in Computer Science
Metadaten
Titel
Fundamentals of Software Engineering
verfasst von
Gerard O’Regan
Copyright-Jahr
2019
DOI
https://doi.org/10.1007/978-3-030-28494-7_2