Software Development, Design, and Coding: With Patterns, Debugging, Unit Testing, and Refactoring

Dooley, John F., Kazakova, Vera A.

  • 出版商: Apress
  • 出版日期: 2024-06-28
  • 售價: $2,220
  • 貴賓價: 9.5$2,109
  • 語言: 英文
  • 頁數: 513
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 9798868802843
  • ISBN-13: 9798868802843
  • 相關分類: 軟體測試Unit Test 單元測試Refactoring
  • 海外代購書籍(需單獨結帳)

商品描述

Learn the principles of good software design and then turn those principles into great code. This book introduces you to software engineering -- from the application of engineering principles to the development of software. You'll see how to run a software development project, examine the different phases of a project, and learn how to design and implement programs that solve specific problems. This book is also about code construction -- how to write great programs and make them work.

This new third edition is revamped to reflect significant changes in the software development landscape with updated design and coding examples and figures. Extreme programming takes a backseat, making way for expanded coverage of the most crucial agile methodologies today: Scrum, Lean Software Development, Kanban, and Dark Scrum. Agile principles are revised to explore further functionalities of requirement gathering. The authors venture beyond imperative and object-oriented languages, exploring the realm of scripting languages in an expanded chapter on Code Construction. The Project Management Essentials chapter has been revamped and expanded to incorporate "SoftAware Development" to discuss the crucial interpersonal nature of joint software creation.

Whether you're new to programming or have written hundreds of applications, in this book you'll re-examine what you already do, and you'll investigate ways to improve. Using the Java language, you'll look deeply into coding standards, debugging, unit testing, modularity, and other characteristics of good programs.

You Will Learn

  • Modern agile methodologies
  • How to work on and with development teams
  • How to leverage the capabilities of modern computer systems with parallel programming
  • How to work with design patterns to exploit application development best practices
  • How to use modern tools for development, collaboration, and source code controls

Who This Book Is For

Early career software developers, or upper-level students in software engineering courses

商品描述(中文翻譯)

學習良好軟體設計的原則,然後將這些原則轉化為優秀的程式碼。本書將帶您了解軟體工程——從工程原則的應用到軟體的開發。您將看到如何運行一個軟體開發專案,檢視專案的不同階段,並學習如何設計和實現解決特定問題的程式。本書同樣關注程式碼的構建——如何編寫優秀的程式並使其運行。

這本全新的第三版經過改版,以反映軟體開發領域的重大變化,並更新了設計和程式碼範例及圖示。極限編程退居次要地位,取而代之的是對當今最重要的敏捷方法論的擴展涵蓋:Scrum、Lean Software Development、Kanban 和 Dark Scrum。敏捷原則經過修訂,以進一步探討需求收集的功能。作者超越了命令式和物件導向語言,擴展了有關程式碼構建的章節,探索腳本語言的領域。專案管理基礎章節已被改版和擴展,以納入「SoftAware Development」,討論共同軟體創作的關鍵人際特性。

無論您是程式設計新手還是已經編寫了數百個應用程式,在本書中,您將重新檢視自己已經做的事情,並探索改進的方法。使用 Java 語言,您將深入了解編碼標準、除錯、單元測試、模組化及其他優秀程式的特徵。

您將學到:
- 現代敏捷方法論
- 如何與開發團隊合作
- 如何利用現代計算機系統的能力進行並行編程
- 如何使用設計模式來利用應用開發的最佳實踐
- 如何使用現代工具進行開發、協作和源代碼控制

本書適合對象:
早期職業的軟體開發人員,或軟體工程課程的高年級學生。

作者簡介

John F. Dooley is the William and Marilyn Ingersoll Professor Emeritus of Computer Science at Knox College in Galesburg, Illinois. Before returning to teaching in 2001, Professor Dooley spent more than 16 years in the software industry as a developer, designer, and manager working for companies such as Bell Telephone Laboratories, McDonnell Douglas, IBM, and Motorola, along with an obligatory stint as head of development at a software startup. He has written more than two dozen professional journal and conference publications and seven books to his credit, along with numerous presentations. He has been a reviewer for the Association for Computing Machinery Special Interest Group on Computer Science Education (SIGCSE) Technical Symposium for the last 36 years and reviews papers for the IEEE Transactions on Education, the journal Cryptologia, and other professional conferences. He has created short courses in software development and three separate Software Engineering courses at the advanced undergraduate level.

Dr. Vera A. Kazakova is a Computer Science educator and researcher, with expertise in artificial intelligence, experiential learning, and collaborative methodologies. With a PhD in AI focused on nature-inspired computation and emergent division of labor, her research spans CS Education, Evolutionary Computation, Narrative Generation, Decentralized Multi-Agent Systems, and Cyber Social Science. Dr. Kazakova also has extensive experience as a CS educator, having taught programming, artificial intelligence, research, and software development courses. Dr. Kazakova has coined the term "Soft-Aware Development" to encapsulate a holistic approach for building software, building stakeholder relationships, and building up each developer along the way. An ardent proponent of experiential learning and agile methodologies, Dr. Kazakova champions a multi-sprint learning architecture that enables students to adapt and iterate, fostering a shared environment of continuous growth. Her passion for collaboration, from simplistic autonomous agents to human developers, and members of large online communities, sets her apart as an advocate for a more interconnected, empathetic, and empowering approach to CS research, education, and software development.

作者簡介(中文翻譯)

約翰·F·杜利(John F. Dooley)是伊利諾伊州蓋爾斯堡的諾克斯學院(Knox College)計算機科學威廉和瑪麗琳·英格索爾名譽教授。在2001年重返教學之前,杜利教授在軟體產業工作了超過16年,擔任開發者、設計師和經理,曾在貝爾電話實驗室(Bell Telephone Laboratories)、麥克唐納·道格拉斯(McDonnell Douglas)、IBM和摩托羅拉(Motorola)等公司任職,並在一家軟體創業公司擔任開發負責人。他撰寫了超過兩十篇專業期刊和會議出版物,以及七本書籍,並進行了多次演講。在過去的36年中,他一直擔任計算機機械協會(Association for Computing Machinery)計算機科學教育特別興趣小組(SIGCSE)技術研討會的審稿人,並為《IEEE教育期刊》(IEEE Transactions on Education)、《Cryptologia》期刊及其他專業會議審稿。他創建了軟體開發的短期課程以及三門高級本科層次的軟體工程課程。

維拉·A·卡扎科娃博士(Dr. Vera A. Kazakova)是一位計算機科學教育者和研究者,專長於人工智慧、體驗學習和協作方法論。她擁有專注於自然啟發計算和新興分工的人工智慧博士學位,研究範疇涵蓋計算機科學教育、進化計算、敘事生成、去中心化多代理系統和網路社會科學。卡扎科娃博士在計算機科學教育方面也有豐富的經驗,教授過程式設計、人工智慧、研究和軟體開發課程。她創造了“Soft-Aware Development”這一術語,以概括一種全面的方法來構建軟體、建立利益相關者關係以及在過程中培養每位開發者。作為體驗學習和敏捷方法論的熱心倡導者,卡扎科娃博士提倡一種多衝刺學習架構,使學生能夠適應和迭代,促進持續成長的共享環境。她對協作的熱情,從簡單的自主代理到人類開發者及大型線上社群的成員,使她成為計算機科學研究、教育和軟體開發中更具互聯性、同理心和賦能方法的倡導者。