What Will You Learn? Is it Useful? - UML

What does it mean to have a good object design? This book is a tool to help developers and students learn core skills in object - oriented analysis and design (OOA / D). These skills are essential for the creation of well - designed, robust, and maintainable software using 00 technologies and languages such as Java or C#.

The proverb "owning a hammer doesn't make one an architect" is especially true with respect to object technology. Knowing an object - oriented language (such as Java) is a necessary but insufficient first step to create object systems. Knowing how to "think in objects" is critical!

This is an introduction to OOA / D while applying the Unified Modeling Language (UML) and* patterns. And, to iterative development, using an agile approach to the Unified Process as an example iterative process. It is not meant as an advanced text; it emphasizes mastery of the fundamentals, such as how to assign responsibilities to objects, frequently used UML notation, and common design patterns. At the same time, mostly in later chapters, the material progresses to some intermediate - level topics, such as framework design and architectural analysis.

UML vs. Thinking in Objects

The book is not just about UML. The UMLis a standard diagramming notation. Common notation is useful, but there are more important 00 things to learn especially, how to think in objects. The UML is not OOA / D or a method, it is just diagramming notation. It's useless to learn UML and perhaps a UML CASE tool, but not really know how to create an excellent 00 design, or evaluate and improve an existing one. This is the hard and important skill. Consequently, this book is an introduction to object design.

Yet, we need a language for OOA / D and "software blueprints," both as a tool of thought and as a form of communication. Therefore, this book explores how to apply the UML in the service of doing OOA / D, and covers frequently used UML.

OOD: Principles and Patterns

How should responsibilitiesbe allocated to classes of objects? How should objects collaborate? What classes should do what? These are critical questions in the design of a system, and this book teaches the classic 00 design metaphor: responsibility - driven design. Also, certain tried - and - true solutions to design problems can be (and have been) expressed as best - practice principles, heuristics, or patterns named problem - solution formulas that codify exemplary design principles. This book, by teaching how to apply patterns or principles, supports quicker learning and skillful use of these fundamental object design idioms.

Case Studies

This introduction to OOA / D is illustrated in some ongoing case studiesthat are followed throughout the book, going deep enough into the analysis and design so that some of the gory details of what must be considered and solved in a realistic problem are considered, and solved.

Use Cases

OOD (and all software design) is strongly related to the prerequisite activity of requirements analysis, which often includes writing use cases. Therefore, the case study begins with an introduction to these topics, even though they are not specifically object - oriented.

Iterative Development, Agile Modeling, and an Agile UP

Given many possible activities from requirements through to implementation, how should a developer or team proceed? Requirements analysis and OOA / D needs to be presented and practiced in the context of some development process. In this case, an agile (light, flexible) approach to the well - known Unified Process(UP) is used as the sample iterative development processwithin which these topics are introduced. However, the analysis and design topics that are covered are common to many approaches, and learning them in the context of an agile UP does not invalidate their applicability to other methods, such as Scrum, Feature - Driven Development, Lean Development, Crystal Methods, and so on.

In conclusion, this book helps a student or developer:

  • Apply principles and patterns to create better object designs.
  • Iteratively follow a set of common activities in analysis and design, based on an agile approach to the UP as an example.
  • Create frequently used diagrams in the UML notation.

It illustrates this in the context of long - running case studies that evolve over several iterations.

Topics and Skills Covered

Topics and Skills Covered

Many Other Skills Are Important!

This isn't the Complete Book of Software; it's primarily an introduction to OOA / D, UML, and iterative development, while touching on related subjects. Building software involves myriad other skills and steps; for example, usability engineering, user interface design, and database design are critical to success.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

UML Topics