深入淺出軟件開發(fā)

出版時間:2009-1  出版社:東南大學出版社  作者:(美)皮隆(Pilone,D.),(美)邁爾斯(Miles,R.) 著  頁數(shù):459  
Tag標簽:無  

內(nèi)容概要

想知道何為測試驅動開發(fā)嗎?想知道高級顧問在按小時計費的咨詢中是如何應用最佳實踐的嗎?或者也許您正準備自動構建您的軟件,為代碼使用版本控制,重構以及在軟件中集成一些設計模式。當您讀完這本《深入淺出軟件開發(fā)》的時候,您將能夠跟蹤項目進度,統(tǒng)計團隊每個部分的速度以及反復進行需求分析、設計、開發(fā)和部署。 我們認為您用來學習新概念的時間是極其寶貴的?!渡钊霚\出軟件開發(fā)》使用認知科學和學習理論的最新研究成果,為您帶來多感官的學習體驗,它采用了豐富、可視、適于大腦工作的形式,而不是用過多的文字使您感到昏昏欲睡。本書為英文影印版。

書籍目錄

Intro1 great software development: Pleasing your customer  Tom's Trails is going online  Most projects have two major concerns  The Big Bang approach to development  Flash forward: two weeks later  Big bang development usually ends up in a big MESS  Great sottware development is...  Getting to the goal with ITERATION  Each iteration is a mini-project  Each iteration is QUALITY software  The customer WILL change things up  It's up to you to make adjustments  But there are some BIG problems...  Iteration handles change automatically (well sort ot)  Your software isn't complete until it's been RELEASED  Tools for your Software Development Toolbox2 gathering requirements: Knowing what the customer wants  Orion's Orbits is modernizing  Talk to your customer to get MORE information  Bluesky with your customer  Sometimes your bluesky session looks like this...  Find out what people REALLY do  Your requirements must be CUSTOMER-oriented  Develop your requirements with customer feedback  User stories detine the WHAT of your project...  estimates define the WHEN  Cubicle conversation  Playing Planning Poker  Put assumptions on trial for their lives  A BIG user stoW estimate is a BAD user story estimate  The goal is convergence  The requirement to estimate iteration cycle  Finally, we're ready' to estimate the whole project3 project planning: Planning for success  Customers want their software NOW!  Prioritize with the customer  We know what's in Milestone 1.0 (well, maybe)  If the features don't fit, re-prioritize  More people sometimes means diminishing returns  Work your way to a reasonable milestone 1.0  Iterations should be short and sweet  Comparing your plan to reality  Velocity accounts for overhead in your estimates  Programmers think in UTOPIAN days...  Developers think in REAL-WORLD days...  When is your iteration too long?  Deal with velocity BEFORE you break into iterations  Time to make an evaluation  Managing customers  The Big Board on your wall  How to ruin your team's lives4 user stories and tasks: Getting to the real work  Introducing iSwoon  Do your tasks add up?  Plot just the work you have left  Add your tasks to your board  Start working on your tasks  A task is only in progress when it's IN PROGRESS  What if I'm working on two things at once?  Your first standup meeting...  Task 1 : Create the Date class  Standup meeting: Day 5, end of Week 1...  Standup meeting: Day 2, Week 2...  We interrupt this chapter...  You have to track unplanned tasks  Unexpected tasks raise your burn-dovm rate  Velocity helps, but...  We have a lot to do...  ...but we know EXAC, TLY where we stand  Velocity Exposed5 good-enough design: Getting it done with great design  iSwoon is in serious trouble...  This design breaks the single responsibility principle  Spotting multiple responsibilies in your design  Going from multiple responsibilies to a single responsibility  Your design should obey the SRP, but also be DRY...  The post-refactoring standup meeting...  Unplanned tasks are still just tasks  Part of your task is the demo itself  When everything's complete, the iteration's done  6 version control: Defensive development  You've got a new contract  BeatBox Pro  And now the GUI work...  Demo the new BeatBox for the customer  Let's start with VERSION CONTROL  First set up your project...  ...then you can check code in and out.  Most version control tools will try and solve problems for you  The server tries to MERGE your changes  If your software can't merge the changes, it issues a conflict  More iterations, more stories...  We have more than one version of our software...  Good commit messages make finding older software easier  Now you can check out Version 1.0  (Emergency) standup meeting  Tag your versions  Tags, branches, and trunks, oh my!  Fixing Version 1.0...tbr real this time.  We have TWO code bases now  When NOT to hranch...  The Zen of good branching  What version control does...  Version control can't make sure you code actually works...  Tools for your Software Development Toolbox6.5 building your code: Insert tab a into slot b...  Developers aren't mind readers  Building your project in one step  Ant: a build tool forJava projects  Projects, properties, targets, tasks  Good build scripts...  Good build scripts go BEYOND the basics  Your build script is code, too  New developer, take two  Tools for your Software Development Toolbox7 testing and continuous integration: Things fall apart  Things will ALWAYS go wrong...  There are three ways to look at your system...  Black-box testing focuses on INPUT and OUTPUT  Grey-box testing gets you CLOSER to the code  White-box testing uses inside knowledge  Testing EVERYTHING with one step  Automate your tests with a testing framework  Use your framework to run your tests  At the wheel of CI with CruiseControl  Testing guarantees things will work.., right?  Testing all your code means testing EVERY BRANCH  Use a coverage report to see what's covered  Getting good coverage isn't always easy...  What CM does...  Tools for your Software Development Toolbox8 test-driven development: Holdingyour code accountable  Test FIRST, not last  So we're going to test FIRST...  Welcome to test-driven development  Your first test...  ...fails miserably.  Get your tests to GREEN  Red, green, refactor...  In TDD, tests DRIVE your implementation  Completing a task means you've got all the tests you need, and they all pass  When your tests pass, move on!  Simplicity means avoiding dependencies  Always write testable code  When things get hard to test, examine your design  The strategy pattern provides formuhiple imp!ementations of a single interface  Keep your test code with your tests  Testing produces better code  More tests always means lots more code  Strategy patterns, loose couplings, object stand ins...  We need lots of different, but similar, objects  What if we generated objects?  A mock object stands in for real objects-  Mock objects are working object stand-ins  Good software is testable...  It's not easy bein' green...  A day in the life of a test-driven developer-..  Tools for your Software Development Toolbox9 ending an iteration: It's all coming together...  Your iteration is just about complete...  ...but there's lots left you could do  System testing MUST be done...  ...but WHO does system testing?  System testing depends on a complete system to test  Good system testing requires TWO iteration cycles  More iterations means more problems  Top 10 Traits of Effective System Testing  The life (and death) of a bug  So you found a hug....  Anatomy of a bug report  But there's still plenty left you COULD do...  Time for the iteration review  Some iteration review questions  A GENERAL priority list for getting EXTRA things done  Tools for your Software Development Toolbox10 the next iteration:/f it ain't broke...you still better fix it  What is working software?  You need to plan for the next iteration  Velocity accounts for.., the REAL WORLD  And it's STILL about the customer  Someone else's software is STILL just software  Customer approval? Check!  Testing your code  Houston, we really do have a problem...  Trust NO ONE  It doesn't matter who wrote the code.  If it's in YOUR software, it's YOUR responsibility.  You without your process  You with your process11 bugs: Squashing bugs like a pro  Previously on Iteration 2  First, you've got to talk to the customer  Priority one: get things buildable  We could fix code...  ...but we need to fix functionality  Figure out what functionality works  NOW you know what's not working  What would you do?  Spike test to estimate  What do the spike test results tell you?  Your team's gut feel matters  Give your customer the bug fix estimate  Things are looking good...  ...and you finish the iteration successfully!  AND the customer is happy  Tools tbr your Software Development Toolbox12 the real world: Having a process in life  Pinning down a software development process  A good process delivers good software  Formal attire required...  Some additional resources...  More knowledge == better process  Tools for your Software Development ToolboxAppendix 1 leftoversAppendix 2 techniques and principles

章節(jié)摘錄

插圖:

編輯推薦

“《深入淺出軟件開發(fā)(影印版)》是本匯集了奇思妙想的書籍,經(jīng)過精心地設計,它利用一系列圖表將信息準確而又清晰全面地映入您的大腦。它是一本全新類型的書籍?!薄猄cott Hanselman,軟件開發(fā)者、演說家、作家Computer Zen“《深入淺出軟件開發(fā)(影印版)》講述了軟件開發(fā)中那些極少在課堂上出現(xiàn)但卻亟需您了解的內(nèi)容?!薄狵eith Wichmann.SOA架構師,Johns ttophins University Applied Physics Laboratory“無論您在軟件開發(fā)這一行工作了多久,《深入淺出軟件開發(fā)(影印版)》都將帶給您用于成功開發(fā)整個項目的必備工具?!薄狝dam Z Szvmanski.軟件項目經(jīng)理Naval Research Laboratory

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    深入淺出軟件開發(fā) PDF格式下載


用戶評論 (總計2條)

 
 

  •   這是一本難得的好書,特別適合軟件項目經(jīng)理看。書中以獨特的方式描述了項目過程中的諸多難題及其解決方案:需求分析、迭代開發(fā)、配置管理、持續(xù)集成、自動化測試,等等。
  •   圖比較多,通俗易懂。內(nèi)容在軟件開發(fā)中算是比較簡單,基本的,都是些在工作中需要牢記并遵循的原則。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7