[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
Skip header Section
Software engineeringJanuary 1990
Publisher:
  • Aksen Associates
  • P.O. Box 98 Pacific Palisades, CA
  • United States
ISBN:978-0-256-08515-0
Published:03 January 1990
Pages:
499
Skip Bibliometrics Section
Reflects downloads up to 01 Jan 2025Bibliometrics
Abstract

No abstract available.

Cited By

  1. Tessler S, Barr A and Hanna N (2017). National Software Industry Development, The Electronic Journal of Information Systems in Developing Countries, 13:1, (1-17), Online publication date: 5-Dec-2017.
  2. ACM
    Aggarwal K, Singh Y, Chandra P and Puri M (2005). Sensitivity analysis of fuzzy and neural network models, ACM SIGSOFT Software Engineering Notes, 30:4, (1-4), Online publication date: 1-Jul-2005.
  3. Shirabad J, Lethbridge T and Matwin S Supporting maintenance of legacy software with data mining techniques Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
  4. ACM
    Bergin J, Naps T, Bland C, Hartley S, Holliday M, Lawhead P, Lewis J, McNally M, Nevison C, Ng C, Pothering G and Teräsvirta T Java resources for computer science instruction Working Group reports of the 3rd annual SIGCSE/SIGCUE ITiCSE conference on Integrating technology into computer science education, (14-34)
  5. ACM
    Bergin J, Naps T, Bland C, Hartley S, Holliday M, Lawhead P, Lewis J, McNally M, Nevison C, Ng C, Pothering G and Teräsvirta T (1998). Java resources for computer science instruction, ACM SIGCUE Outlook, 26:4, (14-34), Online publication date: 1-Oct-1998.
  6. Rothermel G and Harrold M (1996). Analyzing Regression Test Selection Techniques, IEEE Transactions on Software Engineering, 22:8, (529-551), Online publication date: 1-Aug-1996.
  7. Dobbie G and Bartfai G Teaching Software Engineering in a Computer Science Department Proceedings of the 1996 International Conference on Software Engineering: Education and Practice (SE:EP '96)
  8. ACM
    Wise G (1996). A new resource for C++ programmers and an invitation for participation, ACM SIGPLAN Notices, 31:1, (6-8), Online publication date: 1-Jan-1996.
  9. Balci O Principles and techniques of simulation validation, verification, and testing Proceedings of the 27th conference on Winter simulation, (147-154)
  10. ACM
    Levy S and McCormick J Teaching programming for reuse Tutorial proceedings on TRI-Ada '91: Ada's role in global markets: solutions for a changing complex world, (105-117)
  11. ACM
    Hamilton J, Cook D and Pooch U Distributed simulation in Ada 95 Proceedings of the conference on TRI-Ada '95: Ada's role in global markets: solutions for a changing complex world, (105-113)
  12. ACM
    Osborne M (1995). Software engineering, C++, and Windows, ACM SIGCSE Bulletin, 27:1, (243-247), Online publication date: 15-Mar-1995.
  13. ACM
    Osborne M Software engineering, C++, and Windows Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education, (243-247)
  14. Balci O Validation, verification, and testing techniques throughout the life cycle of a simulation study Proceedings of the 26th conference on Winter simulation, (215-220)
  15. Rothermel G and Harrold M A framework for evaluating regression test selection techniques Proceedings of the 16th international conference on Software engineering, (201-210)
  16. ACM
    Dodani M (2019). Teaching practical object-oriented software engineering, ACM SIGPLAN OOPS Messenger, 4:2, (251-256), Online publication date: 1-Apr-1993.
  17. ACM
    Dodani M Teaching practical object-oriented software engineering Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum), (251-256)
  18. ACM
    Seng V Ada pilot project at HQ Pacific Air Forces: lessons learned during development Proceedings of the conference on TRI-Ada '91: today's accomplishments; tomorrow's expectations, (397-406)
  19. ACM
    Jeffrey J (1991). Using Petri nets to introduce operating system concepts, ACM SIGCSE Bulletin, 23:1, (324-329), Online publication date: 1-Mar-1991.
  20. ACM
    Temte M (1991). Let's begin introducing the object-oriented paradigm, ACM SIGCSE Bulletin, 23:1, (73-77), Online publication date: 1-Mar-1991.
  21. ACM
    Jeffrey J Using Petri nets to introduce operating system concepts Proceedings of the twenty-second SIGCSE technical symposium on Computer science education, (324-329)
  22. ACM
    Temte M Let's begin introducing the object-oriented paradigm Proceedings of the twenty-second SIGCSE technical symposium on Computer science education, (73-77)
Contributors
  • Vanderbilt University

Reviews

Hans J. Schneider

The aim of software engineering is to produce software that is delivered on time and within budget, that satisfies all its requirements, and that can be maintained easily. The first lesson of this book is that maintenance is the most important activity in software development. Its first two chapters highlight the wide scope of this field and survey the book as a whole. Part 2 is devoted to the software life cycle as a whole. Chapter 3 describes life cycle models, including the waterfall model and rapid prototyping, as well as some aspects that are not related to particular phases or models. The main theme of chapter 4 is the importance of planning and quality assurance. Typical examples are the IEEE Software Project Management Plan and the COCOMO model to estimate time and cost. The next chapter briefly considers the principle of stepwise refinement and demonstrates that this principle can help the software engineer to master complexity in every phase. The last chapter of this part is dedicated to the second lesson of the book: testing is not a phase, but must be carried out in parallel with all activities. Different phases need different test techniques; the author covers a variety of methods, including correctness proofs, walkthroughs, and test case selection, but he does not omit such issues as measuring the complexity of the product. The main part of the book (chapters 7 through 11) describes the phases of the life cycle in depth and illustrates each phase by instructive case studies. In chapter 7, the author considers how to specify what the product has to do: informally, semiformally, or formally. He illustrates the differences by describing some methods, including structured analysis, Petri nets, and PAISley. The purpose of chapter 8 is to introduce some theoretical concepts regarding modularity. The author discusses the different levels of cohesion and coupling, as well as encapsulation and abstract data types. The next chapter goes into detail explaining some design methods: dataflow analysis represents process-oriented design, Jackson's design method illustrates the data-oriented approach, and object-oriented design serves as an example of a hybrid method. Chapter 10 examines the problem of translating the design into code. Unfortunately, selecting a suitable programming language is discussed only briefly. (The author says that, in most cases, one has no choice; although he is right, instructors must point out as often as possible that the programmer should have a choice.) The chapter does contain a useful discussion of what structured programming really is. The issues of team organization and the use of tools round off this chapter. Chapter 11 presents some aspects of version and configuration control as well as managing the maintenance process. Its brevity contrasts with the author's statement that maintenance is the most important phase. Part 4 presents six topics relevant to the current and future practice of software engineering. Chapter 12 stresses the importance and scope of computer-aided software engineering. Schach compares different types of CASE tools and describes the ISTAR environment in some detail. Portability and reusability are examined in the next chapter. The barriers to portability as well as some techniques for promoting it are described. Some case studies may convince the reader that reusability is more than a theoretical principle. Chapter 14 analyzes the historical and political background of Ada and the interaction between this language and software engineering because Ada embodies many of the principles discussed in this book. The last two chapters sketch issues that will probably gain importance in software engineering. First, Schach stresses the need for experimentation and outlines some ways to organize software development experiments. Finally, he mentions the possibility of an automatic programming life cycle. This well-structured book can be used as a classroom textbook. The exercises are divided into several groups. Some of the problems test insight into the material, while others require the student to solve a concrete example. A term project is broken into pieces that are distributed among the chapters. The last type of problem is based on reading original papers. The references are both assigned to the chapters and collected at the end of the book. An accompanying instructor's manual contains some teaching suggestions and proposes solutions to the exercises. These solutions (and many examples in the textbook) are written in Ada, but they can be understood without previous experience with this language. Finally, the manual provides copies of all figures to assist in the preparation of transparencies.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Please enable JavaScript to view thecomments powered by Disqus.

Recommendations