skip to main content
Skip header Section
Fundamentals of software engineeringJanuary 1991
Publisher:
  • Prentice-Hall, Inc.
  • Division of Simon and Schuster One Lake Street Upper Saddle River, NJ
  • United States
Published:01 January 1991
Pages:
573
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. Beyer D and Jakobs M (2021). Cooperative verifier-based testing with CoVeriTest, International Journal on Software Tools for Technology Transfer (STTT), 23:3, (313-333), Online publication date: 1-Jun-2021.
  2. Smith S, Srinivasan M and Shankar S Debunking the myth that upfront requirements are infeasible for scientific computing software Proceedings of the 14th International Workshop on Software Engineering for Science, (33-40)
  3. ACM
    Bijlsma A, Passier H, Pootjes H and Stuurman S Integrated Test Development Proceedings of the 7th Computer Science Education Research Conference, (9-20)
  4. Smith S, Jegatheesan T and Kelly D Advantages, disadvantages and misunderstandings about document driven design for scientific software Proceedings of the Fourth International Workshop on Software Engineering for HPC in Computational Science and Engineering, (34-41)
  5. Meira J, Almeida E, Kim D, Filho E and Traon Y "Overloaded!" -- A Model-Based Approach to Database Stress Testing Proceedings, Part I, 27th International Conference on Database and Expert Systems Applications - Volume 9827, (207-222)
  6. ACM
    Passier H, Bijlsma L and Bockisch C Maintaining Unit Tests During Refactoring Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, (1-6)
  7. Bellini C, Pereira R and Becker J (2012). Customer Team Effectiveness through People Traits in Information Systems Development, International Journal of Human Capital and Information Technology Professionals, 3:3, (54-78), Online publication date: 1-Jul-2012.
  8. ACM
    Dubey S and Rana A (2011). Assessment of maintainability metrics for object-oriented software system, ACM SIGSOFT Software Engineering Notes, 36:5, (1-7), Online publication date: 30-Sep-2011.
  9. ACM
    Metzger A, Sammodi O, Pohl K and Rzepka M Towards pro-active adaptation with confidence Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, (20-28)
  10. ACM
    Grechanik M, McMillan C, DeFerrari L, Comi M, Crespi S, Poshyvanyk D, Fu C, Xie Q and Ghezzi C An empirical investigation into a large-scale Java open source code repository Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
  11. Kaiser S, Materic I and Saade R ESL solutions for low power design Proceedings of the International Conference on Computer-Aided Design, (340-343)
  12. Prayaga L (2010). Mapping software engineering principles to stages in game development, Journal of Computing Sciences in Colleges, 26:2, (208-214), Online publication date: 1-Dec-2010.
  13. Marew T, Lee J and Bae D (2009). Tactics based approach for integrating non-functional requirements in object-oriented analysis and design, Journal of Systems and Software, 82:10, (1642-1656), Online publication date: 1-Oct-2009.
  14. Garlan D and Schmerl B Ævol Proceedings of the 31st International Conference on Software Engineering, (591-594)
  15. Alves A The helicoidal life cycle as a tool for software development and enhancement Proceedings of the WSEAS International Conference on Applied Computing Conference, (352-359)
  16. Jorge J, Gulias V and Castro L Using Coq to Prove Properties of the Cache Level of a Functional Video-on-Demand Server Proceedings of the 9th AISC international conference, the 15th Calculemas symposium, and the 7th international MKM conference on Intelligent Computer Mathematics, (296-299)
  17. Chatzigeorgiou A, Tsantalis N and Deligiannis I (2008). An empirical study on students' ability to comprehend design patterns, Computers & Education, 51:3, (1007-1016), Online publication date: 1-Nov-2008.
  18. ACM
    Bastani B and Bastani H (2007). High-level open evolvable systems design by process-oriented modeling, ACM SIGSOFT Software Engineering Notes, 32:6, (3-es), Online publication date: 1-Nov-2007.
  19. Cruz-Lemus J, Genero M, Morasca S and Piattini M Using practitioners for assessing the understandability of UML statechart diagrams with composite states Proceedings of the 2007 conference on Advances in conceptual modeling: foundations and applications, (213-222)
  20. Jeffrey D and Gupta N (2007). Improving Fault Detection Capability by Selectively Retaining Test Cases during Test Suite Reduction, IEEE Transactions on Software Engineering, 33:2, (108-123), Online publication date: 1-Feb-2007.
  21. Andonoff E, Bouaziz W and Hanachi C A protocol ontology for inter-organizational workflow coordination Proceedings of the 11th East European conference on Advances in databases and information systems, (28-40)
  22. Dobler H, Ramler R and Wolfmaier K A study of tool support for the evaluation of programming exercises Proceedings of the 11th international conference on Computer aided systems theory, (376-383)
  23. ACM
    de Souza C, Quirk S, Trainer E and Redmiles D Supporting collaborative software development through the visualization of socio-technical dependencies Proceedings of the 2007 ACM International Conference on Supporting Group Work, (147-156)
  24. ACM
    Lauenroth K and Pohl K Towards automated consistency checks of product line requirements specifications Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (373-376)
  25. Bishop J and Horspool N (2006). Cross-Platform Development, Computer, 39:10, (26-35), Online publication date: 1-Oct-2006.
  26. ACM
    Kals S, Kirda E, Kruegel C and Jovanovic N SecuBat Proceedings of the 15th international conference on World Wide Web, (247-256)
  27. ACM
    Chatzigeorgiou A, Tsantalis N and Stephanides G Application of graph theory to OO software engineering Proceedings of the 2006 international workshop on Workshop on interdisciplinary software engineering research, (29-36)
  28. Küster J and Abd-El-Razik M Validation of model transformations Proceedings of the 2006 international conference on Models in software engineering, (193-204)
  29. ACM
    van Riemsdijk M, Dastani M, Meyer J and de Boer F Goal-oriented modularity in agent programming Proceedings of the fifth international joint conference on Autonomous agents and multiagent systems, (1271-1278)
  30. Bhattacharya S and Kanjilal A (2006). Code based analysis for object-oriented systems, Journal of Computer Science and Technology, 21:6, (965-972), Online publication date: 1-Nov-2006.
  31. Klinkoff P, Kruegel C, Kirda E and Vigna G Extending .NET security to unmanaged code Proceedings of the 9th international conference on Information Security, (1-16)
  32. Briand L, Labiche Y and Leduc J (2006). Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software, IEEE Transactions on Software Engineering, 32:9, (642-663), Online publication date: 1-Sep-2006.
  33. ACM
    Bishop J Multi-platform user interface construction Proceedings of the 28th international conference on Software engineering, (751-760)
  34. ACM
    Tan H, Zhao Y and Zhang H Estimating LOC for information systems from their conceptual data models Proceedings of the 28th international conference on Software engineering, (321-330)
  35. Deubler M, Meisinger M, Rittmann S and Krüger I Modeling crosscutting services with UML sequence diagrams Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems, (522-536)
  36. ACM
    Gill N (2005). Factors affecting effective software quality management revisited, ACM SIGSOFT Software Engineering Notes, 30:2, (1-4), Online publication date: 1-Mar-2005.
  37. ACM
    Perrone V, Bolchini D and Paolini P A stakeholders centered approach for conceptual modeling of communication-intensive applications Proceedings of the 23rd annual international conference on Design of communication: documenting & designing for pervasive information, (25-33)
  38. ACM
    Rinard M, Cadar C and Nguyen H Exploring the acceptability envelope Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (21-30)
  39. ACM
    Wang A Information security models and metrics Proceedings of the 43rd annual Southeast regional conference - Volume 2, (178-184)
  40. Cernuzzi L and Zambonelli F Dealing with adaptive multi-agent organizations in the gaia methodology Proceedings of the 6th international conference on Agent-Oriented Software Engineering, (109-123)
  41. Cossentino M and Seidita V Composition of a new process to meet agile needs using method engineering Software Engineering for Multi-Agent Systems III, (36-51)
  42. ACM
    de Souza C, Redmiles D, Cheng L, Millen D and Patterson J How a good software practice thwarts collaboration Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering, (221-230)
  43. ACM
    de Souza C, Redmiles D, Cheng L, Millen D and Patterson J (2004). How a good software practice thwarts collaboration, ACM SIGSOFT Software Engineering Notes, 29:6, (221-230), Online publication date: 1-Nov-2004.
  44. Grinter R (2019). Recomposition, Computer Supported Cooperative Work, 12:3, (297-327), Online publication date: 22-Jul-2003.
  45. Glinz M (2019). Desert Island Column, Automated Software Engineering, 10:4, (399-402), Online publication date: 1-Oct-2003.
  46. ACM
    Domino M, Collins R, Hevner A and Cohen C Conflict in collaborative software development Proceedings of the 2003 SIGMIS conference on Computer personnel research: Freedom in Philadelphia--leveraging differences and diversity in the IT workforce, (44-51)
  47. Alonso A, de la Puente J and Zamorano J A test environment for high integrity software development Proceedings of the 8th Ada-Europe international conference on Reliable software technologies, (359-367)
  48. Barthelmess P and Anderson K (2019). A View of Software Development Environments Based on Activity Theory, Computer Supported Cooperative Work, 11:1-2, (13-37), Online publication date: 25-Apr-2002.
  49. ACM
    Nimmer J and Ernst M (2002). Automatic generation of program specifications, ACM SIGSOFT Software Engineering Notes, 27:4, (229-239), Online publication date: 1-Jul-2002.
  50. ACM
    Nimmer J and Ernst M Automatic generation of program specifications Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis, (229-239)
  51. Engels G and Groenewegen L Towards team-automata-driven object-oriented collaborative work Formal and natural computing, (257-276)
  52. Bisbal J and Grimson J (2002). Consistent database sampling as a database prototyping approach, Journal of Software Maintenance: Research and Practice, 14:6, (447-459), Online publication date: 1-Nov-2002.
  53. ACM
    Na J and Furuta R Dynamic documents Proceedings of the 2001 ACM Symposium on Document engineering, (38-47)
  54. Kirda E, Jazayeri M, Kerer C and Schranz M (2019). Experiences in Engineering Flexible Web Services, IEEE MultiMedia, 8:1, (58-65), Online publication date: 1-Jan-2001.
  55. ACM
    Finkelsteiin A and Kramer J Software engineering Proceedings of the Conference on The Future of Software Engineering, (3-22)
  56. ACM
    Engels G and Groenewegen L Object-oriented modeling Proceedings of the Conference on The Future of Software Engineering, (103-116)
  57. ACM
    Neumann G and Zdun U Towards the usage of dynamic object aggregations as a foundation for composition Proceedings of the 2000 ACM symposium on Applied computing - Volume 2, (818-820)
  58. Neumann G and Zdun U XOTcl Proceedings of the 7th conference on USENIX Tcl/Tk - Volume 7, (16-16)
  59. Medvidovic N and Taylor R (2000). A Classification and Comparison Framework for Software Architecture Description Languages, IEEE Transactions on Software Engineering, 26:1, (70-93), Online publication date: 1-Jan-2000.
  60. Andrews J and Lutfiyya H Experience Report Proceedings of the 13th Conference on Software Engineering Education & Training
  61. ACM
    Hasselbring W (2000). Programming languages and systems for prototyping concurrent applications, ACM Computing Surveys (CSUR), 32:1, (43-79), Online publication date: 1-Mar-2000.
  62. Canfora G, De lucia A and Di Lucca G (1999). A System for Generating Reverse Engineering Tools, Automated Software Engineering, 6:3, (233-263), Online publication date: 1-Jul-1999.
  63. Girard J, Koschke R and Schied G (1999). A Metric-Based Approach to Detect Abstract Data Types and State Encapsulations, Automated Software Engineering, 6:4, (357-386), Online publication date: 1-Oct-1999.
  64. Ciancarini P and Mascolo C (2018). Using formal methods for teaching software engineering, Annals of Software Engineering, 6:1-4, (433-453), Online publication date: 1-Apr-1999.
  65. Briand L, Morasca S and Basili V (1999). Defining and Validating Measures for Object-Based High-Level Design, IEEE Transactions on Software Engineering, 25:5, (722-743), Online publication date: 1-Sep-1999.
  66. ACM
    Medvidovic N, Rosenblum D and Taylor R A language and environment for architecture-based software development and evolution Proceedings of the 21st international conference on Software engineering, (44-53)
  67. Yu L, Khong S, Xun Y and Yuan M Improving Object Oriented Analysis by Explicit Change Analysis Proceedings of the Sixth Asia Pacific Software Engineering Conference
  68. Deiters W and Gruhn V (1998). Process Management in Practice Applying the FUNSOFT NetApproach to Large-Scale Processes, Automated Software Engineering, 5:1, (7-25), Online publication date: 1-Jan-1998.
  69. ACM
    Marchiori M Light analysis of complex systems Proceedings of the 1998 ACM symposium on Applied Computing, (18-22)
  70. Coda F, Ghezzi C, Vigna G and Garzotto F Towards a Software Engineering Approach to Web Site Development Proceedings of the 9th international workshop on Software specification and design
  71. Cheung S, Giannakopoulou D and Kramer J Verification of liveness properties using compositional reachability analysis Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering, (227-243)
  72. ACM
    Cheung S, Giannakopoulou D and Kramer J (2019). Verification of liveness properties using compositional reachability analysis, ACM SIGSOFT Software Engineering Notes, 22:6, (227-243), Online publication date: 1-Nov-1997.
  73. Ang K, Thong J and Yap C IT implementation through the lens of organizational learning Proceedings of the eighteenth international conference on Information systems, (331-348)
  74. Luksch P, Maier U, Rathmayer S, Weidmann M and Unger F (1997). Sempa, IEEE Parallel & Distributed Technology: Systems & Technology, 5:3, (64-72), Online publication date: 1-Jul-1997.
  75. ACM
    Needham D, Demurjian S, El Guemhioui K, Peters T, Zamani P, McMahon M and Ellis H ADAM Proceedings of the conference on TRI-Ada '96: disciplined software development with Ada, (99-113)
  76. ACM
    Gall H, Jazayeri M, Klösch R, Lugmayr W and Trausmuth G Architecture recovery in ARES Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops, (111-115)
  77. Cheung S and Kramer J Checking subsystem safety properties in compositional reachability analysis Proceedings of the 18th international conference on Software engineering, (144-154)
  78. Chang E A Software Engineering Subject on System Description Techniques Proceedings of the 1996 International Conference on Software Engineering: Education and Practice (SE:EP '96)
  79. ACM
    Castano S, Antonellis V and Pernici B Building reusable components in the public administration domain Proceedings of the 1995 Symposium on Software reusability, (81-87)
  80. ACM
    Castano S, Antonellis V and Pernici B (1995). Building reusable components in the public administration domain, ACM SIGSOFT Software Engineering Notes, 20:SI, (81-87), Online publication date: 1-Aug-1995.
  81. Felder M, Mandrioli D and Morzenti A (2019). Proving Properties of Real-Time Systems Through Logical Specifications and Petri Net Models, IEEE Transactions on Software Engineering, 20:2, (127-141), Online publication date: 1-Feb-1994.
  82. De Paoli F and Tisato F (2019). CSDL, IEEE Transactions on Software Engineering, 20:8, (606-616), Online publication date: 1-Aug-1994.
  83. ACM
    Kapur D An automated tool for analyzing completeness of equational specifications Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis, (28-43)
  84. ACM
    Marathe M, Hunt H, Stearns R and Radhakrishnan V Approximation schemes for PSPACE-complete problems for succinct specifications (preliminary version) Proceedings of the twenty-sixth annual ACM symposium on Theory of Computing, (468-477)
  85. Kramer J Distributed software engineering Proceedings of the 16th international conference on Software engineering, (253-263)
  86. Cheung S and Kramer J An integrated method for effective behaviour analysis of distributed systems Proceedings of the 16th international conference on Software engineering, (309-320)
  87. Yu S A versatile development process for small to large projects using IBM CMVC Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
  88. ACM
    Cheung S and Kramer J (2019). Enhancing compositional reachability analysis with context constraints, ACM SIGSOFT Software Engineering Notes, 18:5, (115-125), Online publication date: 1-Dec-1993.
  89. ACM
    El Guemhioui K, Demurjian S and Peters T Object-oriented design and automatic Ada code generation in the education of software engineers Proceedings of the conference on TRI-Ada '93, (126-136)
  90. ACM
    Cheung S and Kramer J Enhancing compositional reachability analysis with context constraints Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering, (115-125)
  91. Day N An example of linking formal methods with case tools Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1, (97-107)
  92. ACM
    Herbsleb J and Kuwana E Preserving knowledge in design projects Proceedings of the INTERACT '93 and CHI '93 Conference on Human Factors in Computing Systems, (7-14)
  93. ACM
    Felder M and Morzenti A Validating real-time systems by history-checking TRIO specifications Proceedings of the 14th international conference on Software engineering, (199-211)
  94. Corsetti E, Crivelli E, Mandrioli D, Montanari A, Morzenti A, Pietro P and Ratto E Dealing with different time scales in formal specifications Proceedings of the 6th international workshop on Software specification and design, (92-101)
Contributors
  • Politecnico di Milano
  • University of Italian Switzerland
  • Politecnico di Milano

Recommendations

Charles Alan Wolfe

As the authors point out in the preface, this is an engineering textbook; it emphasizes engineering principles and techniques, not how to write programs. It is intended for third- and fourth-year undergraduates, beginning graduate students, and professionals wishing to study independently. It serves this audience well. Chapter 1, “Software Engineering: A Preview,” introduces the subject matter and shows how it makes up a component of computer science. Chapter 2, “Software: Its Nature and Qualities,” discusses engineering quality. The authors cover the nature of quality, kinds of quality and ways to measure it, and altering quality requirements to fit the application area of the software. Chapter 3, “Software Engineering Principles,” introduces the fundamental concepts of engineering as applied to software, including rigor, formality, separation of concerns, modularity, abstraction, anticipation of change, generality, and incrementality. Chapter 4, “Software Design,” covers the objectives of design, modularization techniques (including modules, interfaces, hiding, notations, and bottom-up versus top-down design), object-oriented design, handling anomalies, and concurrency. Chapter 5, “Software Specification,” covers the formal specification of software. The uses of specifications, desired qualities, styles, and verification are discussed. The authors give examples of various styles, including operational and descriptive forms such as dataflow diagrams, Petri nets, entity-relationship diagrams, and logic specifications, and compare and contrast them. Chapter 6, “Software Verification,” covers goals, requirements, and problems of verifying software. Testing, analysis, symbolic execution, and debugging are discussed along with problems and approaches to verifying performance and reliability requirements. Chapter 7, “The Software Production Process,” looks at several life cycle models and shows how the process of producing software is organized. It discusses software methodologies, configuration management, and software standards. Chapter 8, “Management of Software Engineering,” covers the usual topics of managing an engineering project, with particular emphasis on software projects and their peculiarities. It discusses the functions of management; project planning, control, and organization; and risk management. Chapter 9, “Software Engineering Tools and Environments,” is an introduction to the tools of the software engineer. It talks about editors, linkers, code generators, debuggers, testing tools, configuration managers, and so on. This chapter discusses programming languages as they affect the design and engineering of projects. It covers such issues as programming in the small versus in the large and procedural versus non-procedural programming. The implications the selection of a language has for both ease of design and ease of implementation and maintenance are discussed. The age of “environments” is also addressed. The authors describe Teamwork, UNIX, Smalltalk80, KEE , and PCTE. Chapter 10, “Epilogue,” attempts to predict the future of software engineering and to instill a concern for (or at least make the reader think about) ethics and social responsibility in software engineering. While many students will be required to take a course in professional ethics and social responsibility, I would welcome the expansion of this section to a full chapter in the first third of the book; it is too often an afterthought, a last-chapter item. The remainder of the work consists of three excellent case studies, references, and an index. The references are plentiful and cover the requisite historical material as well as more recent works (1988–1990). The index is adequate with no major items missing. The text is clearly written, and the typeface is acceptable. I found only a few errors in the text, and they are obvious to any knowledgeable person. I hope they will be corrected in future printings. The end-of-chapter exercises cause the student to demonstrate understanding of principles rather than rote application of techniques or tools. The book also includes sufficient applied exercises. The few suggested answers are usually adequate, but more could be provided. The text is not geared toward a laboratory or project-oriented course. It is designed to teach the foundations (theory) and then be followed by a laboratory course. In software engineering and other theory-intensive courses I have too often found myself explaining something out of order to keep current with the lab exercises, while the theory course was several days or weeks behind. I like it better this way. I am sure that each adopter will find that the book should have paid more attention to some favorite topic or that their mentor's works are not adequately referenced. This work is not, however, intended as a handbook or for advanced study as is, for example, Sage and Palmer [1]. It does compare favorably with other introductory software engineering texts with which I am familiar. I have not seen the instructor's manual. If it is as well thought out as the book, it should prove of great use. Aside from the few errors noted above and some minor esthetic problems—perhaps more personal quirks than true defects—I have no hesitation in recommending this book for classroom adoption.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.