Nothing Special   »   [go: up one dir, main page]

skip to main content
Skip header Section
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)October 2004
Publisher:
  • Prentice Hall PTR
  • Upper Saddle River, NJ
  • United States
ISBN:978-0-13-148906-6
Published:01 October 2004
Skip Bibliometrics Section
Reflects downloads up to 26 Sep 2024Bibliometrics
Skip Abstract Section
Abstract

“This edition contains Larman's usual accurate and thoughtful writing. It is a very good book made even better.” -Alistair Cockburn, author, Writing Effective Use Cases and Surviving OO Projects “Too few people have a knack for explaining things. Fewer still have a handle on software analysis and design. Craig Larman has both.” -John Vlissides, author, Design Patterns and Pattern Hatching “People often ask me which is the best book to introduce them to the world of OO design. Ever since I came across it Applying UML and Patterns has been my unreserved choice.” -Martin Fowler, author, UML Distilled and Refactoring “This book makes learning UML enjoyable and pragmatic by incrementally introducing it as an intuitive language for specifying the artifacts of object analysis and design. It is a well written introduction to UML and object methods by an expert practitioner.” -Cris Kobryn, Chair of the UML Revision Task Force and UML 2.0 Working Group A brand new edition of the world's most admired introduction to object-oriented analysis and design with UML Fully updated for UML 2 and the latest iterative/agile practices Includes an all-new case study illustrating many of the book's key pointsApplying UML and Patterns is the world's #1 business and college introduction to “thinking in objects”-and using that insight in real-world object-oriented analysis and design. Building on two widely acclaimed previous editions, Craig Larman has updated this book to fully reflect the new UML 2 standard, to help you master the art of object design, and to promote high-impact, iterative, and skillful agile modeling practices.Developers and students will learn object-oriented analysis and design (OOA/D) through three iterations of two cohesive, start-to-finish case studies. These case studies incrementally introduce key skills, essential OO principles and patterns, UML notation, and best practices. You won't just learn UML diagrams-you'll learn how to apply UML in the context of OO software development.Drawing on his unsurpassed experience as a mentor and consultant, Larman helps you understand evolutionary requirements and use cases, domain object modeling, responsibility-driven design, essential OO design, layered architectures, “Gang of Four” design patterns, GRASP, iterative methods, an agile approach to the Unified Process (UP), and much more. This edition's extensive improvements include A stronger focus on helping you master OOA/D through case studies that demonstrate key OO principles and patterns, while also applying the UML New coverage of UML 2, Agile Modeling, Test-Driven Development, and refactoring Many new tips on combining iterative and evolutionary development with OOA/D Updates for easier study, including new learning aids and graphics New college educator teaching resources Guidance on applying the UP in a light, agile spirit, complementary with other iterative methods such as XP and Scrum Techniques for applying the UML to documenting architectures A new chapter on evolutionary requirements, and much moreApplying UML and Patterns, Third Edition, is a lucid and practical introduction to thinking and designing with objects-and creating systems that are well crafted, robust, and maintainable.

Cited By

  1. ACM
    Singjai A, Zdun U, Zimmermann O and Pautasso C    Patterns on Deriving APIs and their Endpoints from Domain Models Proceedings of the 26th European Conference on Pattern Languages of Programs, (1-15)
  2. Dalpiaz F and Sturm A Conceptualizing Requirements Using User Stories and Use Cases: A Controlled Experiment Requirements Engineering: Foundation for Software Quality, (221-238)
  3. ACM
    Laigner R, Kalinowski M, Carvalho L, Mendonça D and Garcia A Towards a Catalog of Java Dependency Injection Anti-Patterns Proceedings of the XXXIII Brazilian Symposium on Software Engineering, (104-113)
  4. Dittmar A and Forbrig P Integrating Personas and Use Case Models Human-Computer Interaction – INTERACT 2019, (666-686)
  5. Arora C, Sabetzadeh M and Briand L (2019). An empirical study on the potential usefulness of domain models for completeness checking of requirements, Empirical Software Engineering, 24:4, (2509-2539), Online publication date: 1-Aug-2019.
  6. Kaufmann A and Riehle D (2019). The QDAcity-RE method for structural domain modeling using qualitative data analysis, Requirements Engineering, 24:1, (85-102), Online publication date: 1-Mar-2019.
  7. ACM
    Arora C, Sabetzadeh M, Nejati S and Briand L (2019). An Active Learning Approach for Improving the Accuracy of Automated Domain Model Extraction, ACM Transactions on Software Engineering and Methodology, 28:1, (1-34), Online publication date: 23-Feb-2019.
  8. Guidini Gonçalves T, Marçal de Oliveira K and Kolski C (2018). HCI in practice, Journal of Software: Evolution and Process, 30:11, Online publication date: 14-Nov-2018.
  9. ACM
    Pourali P Tooling advances inspired to address observed challenges of developing UML-like models when using modelling tools Proceedings of the 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, (168-173)
  10. ACM
    Zanaty F, Hirao T, McIntosh S, Ihara A and Matsumoto K An empirical study of design discussions in code review Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
  11. ACM
    Bijlsma A, Passier H, Pootjes H and Stuurman S Integrated Test Development Proceedings of the 7th Computer Science Education Research Conference, (9-20)
  12. Park J, Park Y and Choi S (2018). Representation and automatic generation of state-transition mapping tree, The Journal of Supercomputing, 74:8, (3855-3874), Online publication date: 1-Aug-2018.
  13. Alam O and Kienzle J Concern-oriented incremental modelling Proceedings of the 27th Annual International Conference on Computer Science and Software Engineering, (103-112)
  14. Tiwari S and Gupta A (2017). Investigating comprehension and learnability aspects of use cases for software specification problems, Information and Software Technology, 91:C, (22-43), Online publication date: 1-Nov-2017.
  15. ACM
    Sousa L, Oliveira R, Garcia A, Lee J, Conte T, Oizumi W, de Mello R, Lopes A, Valentim N, Oliveira E and Lucena C How Do Software Developers Identify Design Problems? Proceedings of the XXXI Brazilian Symposium on Software Engineering, (54-63)
  16. Hall J and Rapanotti L (2017). A design theory for software engineering, Information and Software Technology, 87:C, (46-61), Online publication date: 1-Jul-2017.
  17. Dittmar A, Buchholz G and Kühn M Effects of facilitation on collaborative modeling sessions with a multi-touch UML editor Proceedings of the 39th International Conference on Software Engineering: Software Engineering and Education Track, (97-106)
  18. Arvanitou E, Ampatzoglou A, Chatzigeorgiou A, Galster M and Avgeriou P (2017). A mapping study on design-time quality attributes and metrics, Journal of Systems and Software, 127:C, (52-77), Online publication date: 1-May-2017.
  19. ACM
    Passier H The role of Procedural Guidance in Software Engineering Education Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming, (1-2)
  20. Tedeschi A and Benedetto F (2017). A real-time automatic pavement crack and pothole recognition system for mobile Android-based devices, Advanced Engineering Informatics, 32:C, (11-25), Online publication date: 1-Apr-2017.
  21. Su W and Abrial J (2017). Aircraft landing gear system, International Journal on Software Tools for Technology Transfer (STTT), 19:2, (141-166), Online publication date: 1-Apr-2017.
  22. ACM
    Cemus K and Cerny T (2017). Automated extraction of business documentation in enterprise information systems, ACM SIGAPP Applied Computing Review, 16:4, (5-13), Online publication date: 13-Jan-2017.
  23. ACM
    Badri M, Badri L, Flageol W and Toure F Investigating the Accuracy of Test Code Size Prediction using Use Case Metrics and Machine Learning Algorithms Proceedings of the 2017 International Conference on Machine Learning and Soft Computing, (25-33)
  24. ACM
    Cemus K and Cerny T Business Documentation Derivation from Aspect-driven Enterprise Information Systems Proceedings of the International Conference on Research in Adaptive and Convergent Systems, (153-158)
  25. ACM
    Nascimento E, Silva W, Conte T, Steinmacher I, Massollar J and Travassos G Is a Picture worth a Thousand Words? Proceedings of the XXX Brazilian Symposium on Software Engineering, (93-102)
  26. ACM
    Schubotz M, Grigorev A, Leich M, Cohl H, Meuschke N, Gipp B, Youssef A and Markl V Semantification of Identifiers in Mathematics for Better Math Information Retrieval Proceedings of the 39th International ACM SIGIR conference on Research and Development in Information Retrieval, (135-144)
  27. ACM
    Giray G, Tüzün E, Tekinerdogan B and Macit Y Systematic approach for mapping software development methods to the essence framework Proceedings of the 5th International Workshop on Theory-Oriented Software Engineering, (26-32)
  28. Rago A, Marcos C and Diaz-Pace J (2016). Identifying duplicate functionality in textual use cases by aligning semantic actions, Software and Systems Modeling (SoSyM), 15:2, (579-603), Online publication date: 1-May-2016.
  29. Tiwari S and Gupta A (2015). A systematic literature review of use case specifications research, Information and Software Technology, 67:C, (128-158), Online publication date: 1-Nov-2015.
  30. Wiersema W and Pruijt L Logical layering heuristic Proceedings of the 22nd Conference on Pattern Languages of Programs, (1-11)
  31. ACM
    Cemus K, Cerny T and Donahoo M Evaluation of approaches to business rules maintenance in enterprise information systems Proceedings of the 2015 Conference on research in adaptive and convergent systems, (324-329)
  32. Iftikhar S, Iqbal M, Khan M and Mahmood W An automated model based testing approach for platform games Proceedings of the 18th International Conference on Model Driven Engineering Languages and Systems, (426-435)
  33. ACM
    Yue T, Briand L and Labiche Y (2015). aToucan, ACM Transactions on Software Engineering and Methodology, 24:3, (1-52), Online publication date: 13-May-2015.
  34. ACM
    Tiwari S and Gupta A An Approach of Generating Test Requirements for Agile Software Development Proceedings of the 8th India Software Engineering Conference, (186-195)
  35. (2015). BIM extension for the sustainability appraisal of conceptual steel design, Advanced Engineering Informatics, 29:1, (28-46), Online publication date: 1-Jan-2015.
  36. ACM
    Stuurman S, van Gastel B and Passier H The design of mobile apps Proceedings of the Computer Science Education Research Conference, (93-100)
  37. ACM
    Mateescu R, Salaün G and Ye L Quantifying the parallelism in BPMN processes using model checking Proceedings of the 17th international ACM Sigsoft symposium on Component-based software engineering, (159-168)
  38. ACM
    Brunet J, Murphy G, Terra R, Figueiredo J and Serey D Do developers discuss design? Proceedings of the 11th Working Conference on Mining Software Repositories, (340-343)
  39. ACM
    Gaspard-Boulinc H, Conversy S, Prun D, Letondal C and Chatty S Former les futurs concepteurs de systèmes homme-machine complexes Proceedings of the 25th Conference on l'Interaction Homme-Machine, (43-52)
  40. Letsholo K, Zhao L and Chioasca E TRAM Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering, (738-741)
  41. ACM
    Sousa A, Agante P and Gouveia L Model of digital mediation for direct public participation in electoral periods Proceedings of the 7th International Conference on Theory and Practice of Electronic Governance, (299-308)
  42. ACM
    Badri M, Badri L and Flageol W (2013). On the relationship between use cases and test suites size, ACM SIGSOFT Software Engineering Notes, 38:4, (1-5), Online publication date: 12-Jul-2013.
  43. ACM
    Sinnig D, Chalin P and Khendek F (2013). Use case and task models, ACM Transactions on Software Engineering and Methodology, 22:3, (1-31), Online publication date: 1-Jul-2013.
  44. Hsieh C, Tsai C and Cheng Y Test-duo Proceedings of the 8th International Workshop on Automation of Software Test, (89-92)
  45. Panesar-Walawege R, Sabetzadeh M and Briand L (2013). Supporting the verification of compliance to safety standards via model-driven engineering, Information and Software Technology, 55:5, (836-864), Online publication date: 1-May-2013.
  46. Kakarontzas G, Constantinou E, Ampatzoglou A and Stamelos I (2013). Layer assessment of object-oriented software, Journal of Systems and Software, 86:2, (349-366), Online publication date: 1-Feb-2013.
  47. ACM
    Burden H, Heldal R and Lundqvist M Industrial experiences from multi-paradigmatic modelling of signal processing Proceedings of the 6th International Workshop on Multi-Paradigm Modeling, (7-12)
  48. ACM
    Marchese F and Shergill M 500 year documentation Proceedings of the 2012 ACM symposium on Document engineering, (157-160)
  49. Fuhrman C, Champagne R and April A Integrating tools and frameworks in undergraduate software engineering curriculum Proceedings of the 34th International Conference on Software Engineering, (1195-1204)
  50. Akiyama M, Hayashi S, Kobayashi T and Saeki M Supporting design model refactoring for improving class responsibility assignment Proceedings of the 14th international conference on Model driven engineering languages and systems, (455-469)
  51. ACM
    Oliva G, Santana F, Gerosa M and de Souza C Towards a classification of logical dependencies origins Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution, (31-40)
  52. ACM
    Marchese F Conserving digital art for deep time ACM SIGGRAPH 2011 Art Gallery, (302-308)
  53. Forbrig P, Dittmar A, Brüning J and Wurdel M Making task modeling suitable for stakeholder-driven workflow specifications Proceedings of the 6th international conference on Universal access in human-computer interaction: design for all and eInclusion - Volume Part I, (51-60)
  54. fatolahi A, Somé S and Lethbridge T (2011). Model-driven web development for multiple platforms, Journal of Web Engineering, 10:2, (109-152), Online publication date: 1-Jun-2011.
  55. Gustas R (2011). Modeling Approach for Integration and Evolution of Information System Conceptualizations, International Journal of Information System Modeling and Design, 2:1, (45-73), Online publication date: 1-Jan-2011.
  56. Lucke U and Zender R (2011). 3D interactions between virtual worlds and real life in an e-learning community, Advances in Human-Computer Interaction, 2011, (1-11), Online publication date: 1-Jan-2011.
  57. de Carvalho C MEX experience boards Proceedings of the IX Symposium on Human Factors in Computing Systems, (213-216)
  58. ACM
    Chen X Extraction and visualization of traceability relationships between documents and source code Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (505-510)
  59. Bernini D and Tisato F Explaining architectural choices to non-architects Proceedings of the 4th European conference on Software architecture, (352-359)
  60. Bogdan C and Popovici D (2010). The use of domain ontologies for the virtual scenes management, WSEAS Transactions on Computers, 9:8, (868-877), Online publication date: 1-Aug-2010.
  61. Durand A, Gagné C, Gardner M, Rousseau F, Giguère Y and Reinharz D SCHNAPS Proceedings of the 2010 Summer Computer Simulation Conference, (182-189)
  62. ACM
    Jalil M, Noah S and Idris S Evaluating the effectiveness of a pattern application support tool for novices Proceedings of the fifteenth annual conference on Innovation and technology in computer science education, (239-243)
  63. Stålhane T, Sindre G and Du Bousquet L Comparing safety analysis based on sequence diagrams and textual use cases Proceedings of the 22nd international conference on Advanced information systems engineering, (165-179)
  64. ACM
    Shaker P Feature-oriented requirements modelling Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (365-368)
  65. Sooriamurthi R (2010). The essence of object orientation for CS0, Journal of Computing Sciences in Colleges, 25:3, (67-74), Online publication date: 1-Jan-2010.
  66. Hill G and Sooriamurthi R Bridging the gap Proceedings of the 39th IEEE international conference on Frontiers in education conference, (222-227)
  67. Moisan S and Rigault J Teaching object-oriented modeling and UML to various audiences Proceedings of the 2009 international conference on Models in Software Engineering, (40-54)
  68. Yue T, Briand L and Labiche Y A Use Case Modeling Approach to Facilitate the Transition towards Analysis Models Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, (484-498)
  69. Kalnins A, Kalnina E, Celms E and Sostaks A From requirements to code in a model driven way Proceedings of the 13th East European conference on Advances in Databases and Information Systems, (161-168)
  70. Goldstein M and Moshkovich D System Grokking Proceedings of the 7th international conference on Next generation information technologies and systems, (38-49)
  71. ACM
    Mokhov S, Paquet J and Tong X A type system for hybrid intensional-imperative programming support in GIPSY Proceedings of the 2nd Canadian Conference on Computer Science and Software Engineering, (101-107)
  72. Perovich D, Bastarrica M and Rojas C Model-Driven approach to Software Architecture design Proceedings of the 2009 ICSE Workshop on Sharing and Reusing Architectural Knowledge, (1-8)
  73. Li J (2009). Teaching unified process in software design and development courses, Journal of Computing Sciences in Colleges, 24:5, (5-11), Online publication date: 1-May-2009.
  74. ACM
    Stamat M and Humphries J Training ≠ education Proceedings of the 14th Western Canadian Conference on Computing Education, (116-123)
  75. ACM
    Sinnig D, Chalin P and Khendek F LTS semantics for use case models Proceedings of the 2009 ACM symposium on Applied Computing, (365-370)
  76. Farooq J and Turletti T An IEEE 802.16 WiMAX module for the NS-3 simulator Proceedings of the 2nd International Conference on Simulation Tools and Techniques, (1-11)
  77. Muhairat M and Al-Qutaish R An approach to derive the use case diagrams from an event table Proceedings of the 8th WSEAS International Conference on Software engineering, parallel and distributed systems, (33-38)
  78. Kolovos D, Paige R and Polack F On the evolution of OCL for capturing structural constraints in modelling languages Rigorous Methods for Software Construction and Analysis, (204-218)
  79. ACM
    da Silveira D, Netto P and Schmitz E Um método de validação da conformidade entre processos e regras de negócio através da animação Companion Proceedings of the XIV Brazilian Symposium on Multimedia and the Web, (279-286)
  80. Kovari B, Albert I and Charaf H (2008). A general approach to off-line signature verification, WSEAS Transactions on Computers, 7:10, (1648-1657), Online publication date: 1-Oct-2008.
  81. ACM
    Ferrizzi A, Jardini T, Costa L, Colombo J, Mauad E, Kerr L, Hidalgo G, Rahal P and Valêncio C A clinical decision support system for cancer diseases Proceedings of the 2008 Euro American Conference on Telematics and Information Systems, (1-4)
  82. Imtiaz S, Ikram N and Imtiaz S A process model for managing requirement change Proceedings of the Fourth IASTED International Conference on Advances in Computer Science and Technology, (121-128)
  83. Bustos A and Eterovic Y Modeling aspects with UML's class, sequence and state diagrams in an industrial setting Proceedings of the 11th IASTED International Conference on Software Engineering and Applications, (403-410)
  84. ACM
    Hadar E and Hadar I Effective preparation for design review Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (955-962)
  85. Rahim L, Taib S and Shazi A XMLTemplate Proceedings of the third conference on IASTED International Conference: Advances in Computer Science and Technology, (489-494)
  86. Sien V and Carrington D A concepts-first approach to object-oriented modelling Proceedings of the third conference on IASTED International Conference: Advances in Computer Science and Technology, (108-113)
  87. Tomás A, Michael S, Dombrovskaia L, Jorge A, Felipe C, Diego C, Freddy M, Valeria L, Agulló L, Macarena C and Gómez L Bioinformatics integration framework for metabolic pathway data-mining Proceedings of the 19th international conference on Advances in Applied Artificial Intelligence: industrial, Engineering and Other Applications of Applied Intelligent Systems, (917-926)
  88. De Wolf T and Holvoet T Design patterns for decentralised coordination in self-organising emergent systems Proceedings of the 4th international conference on Engineering self-organising systems, (28-49)
  89. ACM
    Datta S Crosscutting score Proceedings of the 44th annual ACM Southeast Conference, (204-208)
  90. Goldman J and Song I Organizing and managing use cases Proceedings of the 24th international conference on Perspectives in Conceptual Modeling, (43-52)
  91. Díaz I, Sánchez J and Matteo A Conceptual modeling based on transformation linguistic patterns Proceedings of the 24th international conference on Conceptual Modeling, (192-208)
  92. Andersson B, Bergholtz M, Edirisuriya A, Ilayperuma T and Johannesson P A declarative foundation of process models Proceedings of the 17th international conference on Advanced Information Systems Engineering, (233-247)
  93. Queralt A and Teniente E Specifying the semantics of operation contracts in conceptual modeling Journal on Data Semantics VII, (33-56)
Contributors

Reviews

Fernando Berzal

Software development books tend to focus on the details of the particular techniques they address, which makes it easy to forget the big picture. Typical books address each topic as if it belonged to a separate world. This book, in contrast, demonstrates how many different techniques and practices nicely fit together in the software development process. This book is outstanding because of its peculiar organization. The book unfolds as an actual software project (two parallel projects, actually). The two case studies weave together the concepts covered, which are introduced at the points of the projects when they are most useful, lowering the learning curve. From a pedagogical point of view, the recurring use of the same case studies throughout the book is much better than devising unrelated examples for each topic covered (in spite of the typical, well-understood, fairly unimaginative, and, to some extent, boring point of sale (POS) system). Even though you may find this technique repetitious at times, since it often returns to the same underlying concepts to reinforce explained ideas, every experienced instructor uses this basic teaching technique. In any case, the projects follow an iterative process, so the book just reflects what actually happens in practice. With respect to the book's contents, Larman demystifies the unified process. He focuses on its inception and elaboration phases, where most of the analysis and design work is done. Even though the book title focuses on unified modeling language (UML) and patterns, the books goes far beyond the use of UML diagrams to communicate ideas, and Gang of Four (GoF) [1] design patterns to codify design best practices. Fortunately, the misleading title may attract the people who can benefit most from the contents of the book, namely, those developers who want to expand their development skills. Larman also addresses analysis techniques, such as use case modeling [2], which are wrongly identified as "object-oriented analysis," when there is nothing object-oriented about them [3]. It is a stretch these days to talk about "object-oriented analysis." The book mainly focuses on object-oriented design and its underlying principles, which are presented as "general responsibility assignment software principles." These are no more than general heuristics on how responsibilities should be assigned to software classes. Their discussion is noteworthy, but is also harder to understand for novice designers, because it requires a higher abstraction capability, a priceless ability for any self-respecting practitioner. Larman does a great job of introducing basic concepts and patterns, while demonstrating how to use UML to our advantage. Apart from its in-depth coverage of object-oriented design, the book also presents other techniques that are useful in software development. These include the functionality-usability-reliability-performance-supportability (FURPS+) requirements categorization system; use cases, la Cockburn; and the application of design by contract ideas, during the early phases of the project, by means of operation contracts. Larman also covers layered architectures, package design guidelines, and the N+1 view model for describing "the big ideas of the system." Some readers may feel that their pet techniques deserve a more in-depth treatment, which is virtually impossible if we take into account the broad scope of the book. For those interested in the details, Larman provides pointers to more information. In summary, this is probably the best book I have seen on object-oriented design at the introductory level. Although it requires previous object-oriented programming knowledge (preferably in Java), it is easy to follow. The book is an ideal choice for self-learning, because it provides insight beyond the "how" of techniques, and explains the "why" behind them. Use it as a starting point, before attempting to fully understand more expert-oriented titles, if you are relatively new to object orientation. Use it as a refresher, to see how everything fits together, if you are more experienced. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Please enable JavaScript to view thecomments powered by Disqus.

Recommendations