1. 首页
  2. 课程学习
  3. 专业指导
  4. Software Engineering Book

Software Engineering Book

上传者: 2020-07-29 00:39:30上传 PDF文件 13.61MB 热度 102次
Software Engineering, by Ivan Marsic from Rutgers University. 软件工程教材,入门级PrefaceThis book reviews important technologies for software development with a particular focus onWeb applications. In reviewing these technologies i put emphasis on underlying principles andbasic concepts, rather than meticulousness and completeness. In design and documentation, ifconflict arises, clarity should be preferred to precision because, as will be described, the keyproblem of software development is having a functioning communication between the involvedhuman parties. My main goal in writing this book has been to make it usefulThe developer should always keep in mind that software is written for people, not for computersComputers just run software-a minor point. It is people who understand, maintain, improve, anduse software to solve problems. Solving a problem by an effective abstraction and representationa recurring theme of software engineering. The particular technologies evolve or becomebolete but the underlying principles and concepts will likely resurface in new technologiesThis book is designed for upper-division undergraduate and graduate courses in softwareengineering. It intended primarily for learning, rather than reference. I also believe that the booksfocus on core concepts should be appealing to practitioners who are interested in the"whysbehind the software engineering tools and techniques that are commonly encountered. I assumethat readers will have some familiarity with programming languages and i do not cover anyprogramming language in particular. Basic knowledge of discrete mathematics and statistics isdesirable for some advanced topics, particularly in Chapters 3 and 4. Most concepts do notrequire mathematical sophistication beyond a first undergraduate courseThe first part( Chapters 1 5) is intended to accompany a semester-long hands-on team project insoftware engineering. In the spirit of agile methods, the project consists of two iterations. Thefirst iteration focuses on developing some key functions of the proposed software product. It isalso exploratory to help with sizing the effort and setting realistic goals for the sccond iterationIn the second iteration the students perform the necessary adjustments, based on what they havelearned in the first iteration. Appendix G provides a worked example of a full softwarecnginccring projectThe second part( Chapters 6-8 and most Appendices) is intended for a semester-long course onsoftware engineering of Web applications. It also assumes a hands-on student team project. Thefocus is on Web applications and communication between clients and servers. Appendix F brieflysurveys user interface design issues because I fecl that proper treatment of this topic requires abook on its own. I tried to make every chapter self-contained, so that entire chapters can beskipped if necessary. But you will not benefit the most by reading it that way. I tried to avoidbotanical'approach, telling you in detail what is here and what is there in software engineeringso you can start from any point and walk it over in any way. Instead, this book takes anevolutionary approach, where new topics systematically build on previous topicsThe text follows this outlineChapter 2 introduces object-oriented software engineering. It is short enough to be covered in fewweeks, yet it provides sufficient knowledge for students to start working on a first version of theirsoftware product. Appendix G complements the material of Chapter 2 by showing a practicalapplication of the presented concepts. In general, this knowledge may be sufficient for amateursoftware development, on relatively small and non-mission-critical projectsChapters 3 through 5 offer more detailed coverage of the topics introduced in Chapter 2. They areintended to provide the foundation for iterative development of high-quality software productsChapters 6-8 provide advanced topics which can be covered selectively, if time permits, or in afollow-up course dedicated to software engineering of Web applicationsThis is not a programming text, but several appendices are provided as reference material forspecial topics that will inevitably arise in many software projectsI tried to make this book as practical as possible by using realistic examples and working throughtheir solutions. I usually find it difficult to bridge the gap between an abstract design and codingHence, I include a great deal of code. The code is in the Java programming language, whichbrings me to another pointDifferent authors favor different languages and students often complain about having to learn yetanother language on not having learned enough languages. I feel that the issue of selecting aprogramming language for a software engineering textbook is artificial. Programming language isa tool and the software engineer should master a toolbox of languages so to be able to choosethe tool that best suits the task at handEvery chapter (except for Chapters 1 and 9) is accompanied with a set of problems Solutions tomost problems can be found on the back of this book, starting on page 523Design problems are open-ended, without a unique or""solution, so the reader is welcometo question all the designs offered in this book i have myself gone through many versions of eachdesign, and will probably change them again in the future, as I learn more and think more at theleast, the designs in this book represent a starting point to critique and improveAdditional information about team projects and online links to related topics can be found at thebook websiteContents at a Glance●Table of contents2788151720“·p25.26+++++++++++上++.+,+·+0947849……14955524762656870788082868788889496l08109110113118119120124.130133.13313413614014314615152156171172176181185186186193196201203204205208209…211212·····218219221222233235236237237238382402422442472542552572572612622642727227427627728328628895300302305322······322328332334336337342345·申·5252353354355358
下载地址
用户评论