A & D Modeling Need for Updating Diagrams Rapidly, 232 Actors
Total Page:16
File Type:pdf, Size:1020Kb
4649_Ch13_Index_FINAL 1/17/05 9:33 AM Page 253 Index ■A planning, 73 A & D modeling recapping, 74 need for updating diagrams rapidly, 232 refactoring values, 73 actors requirements analysis, 73 overview, 43 website, 6 using interaction design to identify, 196 Agile Modeling. See AM AD (Agile Database Techniques), 18 agile planning, 67 adaptive planning adaptive planning, 176 agile projects and, 10 estimating, 177–178 estimating, 177–178 Gantt charts, 181–182 Gantt charts, 181–182 prioritizing requirements, 176 prioritizing requirements, 176 release planning, 178 release planning, 178 timeboxing, 180–181 timeboxing, 180–181 tracing requirements back to goals, 181 tracing requirements back to goals, 181 tracking project velocity, 179 tracking project velocity, 179 fitting iterative and incremental planning together, adaptive planning, 176 175 Adaptive Software Development, 18 phases AddHotels() method analysis and design, 183 AOI class, 161 construction, 184 ADF (Application Developer Framework), 100, 114 inception, 183 aggregation relationships, 135 planning for agility, 176 aggressive testing, 66 principles, 184 Agile Database Techniques, 18 costing and benefits of incremental development, Agile ICONIX 187 See also ICONIX Process. costing changes, 187 and TDD, 227 feedback, 185 compared to other agile methods, 174 release sizes, 187 core subset of agile practices, 61 release types, 186 agile practices, 64–69 software rot, 186 agile values, 69–71 types of plan, 184 ICONIX Process practices, 63 reasons for, 173 introduction, 61 flexibility and perception, 173 why define, 61 tracking defects and feature requests, 174 driving the code from the model, 146 terminology, 175 introduction, 4 agile practices, 64 mapplet project, 87 aggressive testing, 66 ArcGIS Server, 99 agile planning, 67 architecture, 96 domain analysis, 65 first release plan, 98 frequent integration, 67 goals, 92 frequent small releases, 67 introduction, 89–90 interaction design, 66 JumpStart workshop, 95 optimizing team communication, 68 requirements, 92 prefactoring/model-driven refactoring, 66 use case modeling, 97 requirements analysis and disambiguation, 65 overview, 21 responsible ownership/collective responsibility, 68 synchronizing source code and model, 123 short iterations, 69 Agile Manifesto synchronizing model and code, 67 core subset of agile practices, based on, 62 Agile Software Development goals, 62 Cockburn, Alistair, 31–32 refactoring agile values, 71 agile values contract negotiation, 72 communication, 70 documentation, 72 early feedback, 70 need for flexible processes and tools, 72 judgement and balance, 71 simplicity, 70 253 4649_Ch13_Index_FINAL 1/17/05 9:33 AM Page 254 254 ■INDEX agility ■B Agile Manifesto website, 6 BCE (Boundary-Control-Entity) as philosophy of software development, 27 robustness analysis stereotypes, 49 challenges, 11–13 behavioral requirements, defining, 47 change and change management, 78 Belbin, Dr. R. Meredith custumor and contract-related issues, 79 team-player classification, 31 definitions of agile projects, 8–11 Better Software Faster goals, 6 Carmichael, Andy and Haywood, Dan, 178 importance of, 7 Big Design Up Front introduction, 3 and TDD, 227 methodologies, 13 Boehm, Barry Adoptive Software Development, 18 Get Ready for Agile Methods, with Care, 25 Agile Database Techniques, 18 Booch method Agile Modeling, 16–17 Grady Booch, 40 Crystal Methodologies, 18–19 Booking class DSDM (Dynamic Systems Development Method), creating, 214 19 getID() method, 216 FDD (Feature-Driven Development), 20–21 toString() method, 216 Scrum, 19 updating for test, 216 TDD (Test-Driven Development), 16 bookingListsByCustomer HashMap XP (Extreme Programming), 14–16 adding to BookingManager class, 219 modeling and documentation, 75–78 BookingManager class myths and misconceptions, 22 adding bookingListsByCustomer HashMap, 219 planning and design, 83–85 as Singleton, 215 software agility, 5 clearAll method, 215 hacking, 5 createBooking method, 214 high ceremony, 5 findBooking() method, 217, 220 low levels of communication, 5 modifying, 216 requirement gathering and design, 5 numBookings() method, 218 transparency, 5 placeBooking method, 214 working practices, 80–82 updating for test, 216 AM (Agile Modeling), 203 BookingManagerDOA class communication and team work, 9 persisting data, 223 design review, 123 BookingManagerTest class overview, 16 testing for bookings for more than one customer, 219 practices, 17 testing for nothingness, 212 traveling light, 146 boundary types when to keep code and model tightly interwoven, as nouns on robustness diagrams, 231 146 Display Rollover Information use case, 129 analysis and design robustness analysis stereotypes, 49 bridging gap between, 54 Boundary-Control-Entity, 49 analysis modeling practices Browse by US Map use case, 153, 156 description, 57 build by feature, 21 analysis-level modeling, 40 BuildRolloverInfo() method AOI class HotelCluster class, 143 AddHotels() method, 161 Application Developer Framework. 100, 114 ■C ArcGIS Server, 104 CalcNewExtent method achitectecture, 96 MapViewer object, 116 ArcObjects, 96 Carmichael, Andy and Haywood, Dan figuring out new release of, 103 Better Software Faster, 178 installing, 114 change management, 11–12, 78 introduction, 90 changing software requirements leveraging out-of-the-box functionality, 92 reducing exposure to, 10 terminology, 100 checkCustomerNameUnique() method web controls, 114 Customer class, 244 ArcGIS Software Developer Kit, 99 class diagrams, 41 ArcObjects, 91, 96 designing Release 2, 159 AreaOfInterestViewer class, 118 feeding changes back into, 143 ASD (Adaptive Software Development), 18 product of analysis and design level refactorings, 136 Astels, David refactored class diagram, 146 Test-Driven Development colon A Practical Guide, 227 clearAll method automated tests BookingManager class, 215 agile development and, 80 4649_Ch13_Index_FINAL 1/17/05 9:33 AM Page 255 ■INDEX 255 clearCustomers() method customer-visible production release Database class, 247 incremental planning, 186 Cockburn, Alistair CustomerDetailsPage JSP page Agile Software Development, 31–32 sequence diagram, 238 Crystal Methodologies website, 18 CustomerDetailsValidatorTest class Writing Effective Use Cases, 195 creating, 234 code and design running test, 236–237 converging or diverging, 160 CustomerManager class coding by intention, 141 making class do something, 211 coding standards CustomerManagerTest class XP (Extreme Programming), 16 testing for nothingness, 206–208 collective ownership CustomerNotFoundTest XP (Extreme Programming), 15 passing test in JUnit TestRunner, 212 communication, 70 customers involvement in design, 12 as aspect of software development process, 27 completeness check ■D essential role of robustness analysis, 54 Database class Composite pattern clearCustomers() method, 247 Display Rollover Information, using, 135 implementing, 245 object discovery, 127 defects, Severity assigned, 174 composition relationships, 135 deliverables, Release 1, 103 concepts, proving in code as working software, 77 design continuous integration bridging gap between analysis and design, 54 XP (Extreme Programming), 15 by feature, 21 contract negotiation enhancing agility through, 8–9 gaining customer collaboration, 72 ICONIX Process compared to TDD, 203 control objects refactoring, 83–84 robustness analysis stereotypes, 49 simplicity of and XP (Extreme Programming), 15 controller code upfront design, 84 benefit of separation from presentation model in design modeling practices, 57 TDD, 205 design review controllers as verbs, 231 as code and design review, 123 cookbook-style process, 130 class diagram, 136 Create a Hotel Booking for a Customer use case, 229 Display Rollover Information use case use case diagram, 230 robustness diagram, 125–130 Create a New Customer use case sequence diagram, 130–135 revising text, 231 fine-tuning diagram, 128 robustness diagram, 230 nouns, 127 corrected version, 232 detailed design class modeling, 40 sequence diagram, 233 detailed release plan Create New Customer use case, 228 principles of agile planning, 185 createBooking method development tools BookingManager class, 214 agile development and, 76 CreateCustomerDetails controller class disambiguation, 41, 63, 65 modifying, 244 bridging gap between analysis and design, 54 unit testing, 239–242 description, 56 CreateCustomerDetailsTest class domain model, 53 setUp() method, 247 robustness analysis, 54 unit testing, 243–245 use cases, 48 critical design review, 51 Display Rollover Information use case, 111 Crystal Methodologies, 18-19 Composite pattern, 135 Alistair Cockburn’s website, 18 renaming as Show Hotel Info Pop-up, 127 customer acceptance testing, 10 robustness diagram, 112 customer and contract-related issues decluttering diagram, 125 agile development and, 79 disambiguating diagram, 126 Customer class final version, 129 adding properties, 235 fine-tuning diagram, 128 checkCustomerNameUnique() method, 244 revisiting, 125 customer collaboration sequence diagram, 112 gaining through contract negotiation, 72 first refactoring, 131-132 customer feedback, Release 1, 149 revisiting, 130 customer-visible investigative release second refactoring, 133 incremental planning, 186 4649_Ch13_Index_FINAL 1/17/05 9:33 AM Page 256 256 ■INDEX DisplayWindowText() method giving, 32 Hotel class, 140 neccessity of early feedback, 70 documentation test-driven requirements feedback, 33 agile development and, 75–76 Filter Hotels use case, 155 Doing The Simplest Thing That Could Possibly Work.