Object Oriented Analysis and Design
Subtitle: for Engineering Studies, First Edition by  Krishna Sankar P, Shangaranarayanee N P
By: Shangaranarayanee N P, Krishna Sankar P, ARS Publications, Chennai
Edition: First Edition
Publisher: A.R.S Publications, Chennai
Published: June 2019
Place of publication: Chennai, India
Format: Hardcover
Number of pages: 412
ISBN-13: 9789384634728
Copyright date: 2019
Table of contents: title: UNIT I; title: UNIFIED PROCESS AND USE CASE DIAGRAMS; title: 1.1	INTRODUCTION TO OOAD WITH OO BASICS; title: 1.1.1 Objects and Classes; title: 1.1.2 Analysis; title: 1.1.3 Design; title: 1.1.4 Object-Oriented Analysis; title: 1.1.5 Object-Oriented Design; title: 1.1.6 Object-Oriented Analysis and Design; title: 1.2	UNIFIED PROCESS; title: 1.2.1 Most Important UP Idea: Iterative Development; title: 1.2.2 UP Phases and Schedule-Oriented Terms; title: 1.2.3 UP Disciplines (was Workflows); title: 1.2.4 Process Customization and the Development Case; title: 1.2.5 Agile UP; title: 1.2.6 Benefits of Iterative Development; title: 1.3	UML DIAGRAMS; title: 1.3.1 Introduction; title: 1.3.2 UML Building Blocks; title: 1.3.3 Types of UML Diagram; title: 1.3.4 Role of UML in OO design; title: 1.3.5 Goals of UML; title: 1.4	USE CASE; title: 1.4.1 Introduction; title: 1.4.2 Purpose; title: 1.4.3 Use Case Notations; title: 1.4.4 When to Use Use Cases; title: 1.4.5 Examples; title: 1.5	CASE STUDY - THE NEXT GEN POS SYSTEM, INCEPTION; title: 1.5.1	Architectural Layers and Case Study Emphasis; title: 1.5.2	User-Level Goals; title: 1.6	USE CASE MODELLING; title: 1.6.1	Introduction; title: 1.6.2	Goals and Stories; title: 1.6.3	Use Cases and Adding Value; title: 1.6.4	Use Cases and Functional Requirements; title: 1.6.5	Use Case Types and Formats; title: 1.6.6	Fully Dressed Example: Process Sale; title: 1.6.7	Explaining the Sections; title: 1.6.8	Goals and Scope of a Use Case; title: 1.6.9	Finding Primary Actors, Goals, and Use Cases; title: 1.6.10	Congratulations: Use Cases Have Been Written, and Are Imperfect; title: 1.6.11	Write Use Cases in an Essential Ill-Free Style New and Improved! The Case for Fingerprinting; title: 1.6.12	Actors; title: 1.6.13	Use Case Diagrams; title: 1.6.14	Requirements in Context and Low-Level Feature Lists; title: 1.6.15	Use Cases Are Not Object-Oriented; title: 1.6.16	Use Cases Within the UP; title: 1.6.17	Case Study: Use Cases in the NextGen Inception Phase; title: 1.6.18	UP Artifacts and Process Context; title: 1.7	RELATING USE CASES; title: 1.7.1	Introduction; title: 1.7.2	The include Relationship; title: 1.7.3	The extend Relationship; title: 1.7.4	The generalize Relationship; title: 1.8	WHEN TO USE USE-CASES; title: UNIT 2; title: STATIC UML DIAGRAMS; title: 2.1	Class Diagram; title: 2.1.1	Introduction; title: 2.1.2	Purpose; title: 2.1.3	Class Diagram Notations; title: 2.1.4	When to use: Class Diagram; title: 2.1.5	Examples:; title: 2.2	Elaboration; title: 2.2.1	Introduction; title: 2.2.2	What Is Architecturally Significant in Elaboration?; title: 2.2.3	Planning the Next Iteration; title: 2.2.4	Iteration 1 Requirements and Emphasis: Fundamental OOA/D Skills; title: 2.2.5	Elaboration Artifacts; title: 2.3	Domain Model; title: 2.3.1	Introduction; title: 2.3.2	Key Idea: Domain Model—A Visual Dictionary of Abstractions; title: 2.3.3	Domain Models Are not Models of Software Components; title: 2.3.4	Example: The NextGen POS Domain Model; title: 2.4	Finding conceptual classes and description classes; title: 2.4.1	Conceptual Class Identification; title: 2.4.2	Candidate Conceptual Classes for the Sales Domain; title: 2.4.3	Domain Modeling Guidelines; title: 2.4.4	Resolving Similar Conceptual Classes—Register vs. "POST"; title: 2.4.5	Modeling the Unreal World; title: 2.4.6	Specification or Description Conceptual Classes; title: 2.4.7	UML Notation, Models, and Methods: Multiple Perspectives; title: 2.4.8	Lowering the Representational Gap; title: 2.5	Associations; title: 2.5.1	What are association relationships?; title: 2.5.2	UML notation for association; title: 2.5.3	Using verbs to identify associations; title: 2.5.4	Role names; title: 2.5.5	Use interfaces or the server side of associations; title: 2.5.6	Association constraints; title: 2.5.7	Association classes; title: 2.5.8	Qualifications; title: 2.5.9	N-ary associations; title: 2.5.10	Simplify N-ary associations by introducing a mediator; title: 2.5.11	Avoid spaghetti communication networks; title: 2.6	Attributes; title: 2.6.1	Introduction; title: 2.6.2	Attributes; title: 2.6.3	UML Attribute Notation; title: 2.6.4	Valid Attribute Types; title: 2.6.5	Non-primitive Data Type Classes; title: 2.6.6	Design Creep: No Attributes as Foreign Keys; title: 2.6.7	Modeling Attribute Quantities and Units; title: 2.6.8	Attributes in the NextGen Domain Model; title: 2.6.9	Multiplicity from SalesLineItem to Item; title: 2.6.10	Domain Model Conclusion; title: 2.7	Domain model refinement; title: 2.7.1	Introduction; title: 2.7.2	Association Classes; title: 2.7.3	Aggregation and Composition; title: 2.7.4	Time Intervals and Product Prices—Fixing an Iteration 1 "Error"; title: 2.7.5	Association Role Names; title: 2.7.6	Derived Elements; title: 2.7.7	Association Role Names; title: 2.7.8	Qualified Associations; title: 2.7.9	Reflexive Associations; title: 2.7.10	Ordered Elements; title: 2.7.11	Using Packages to Organize the Domain Model; title: 2.7.12	POS Domain Model Packages; title: 2.8	Finding conceptual class Hierarchies; title: 2.8.1	New Concepts for the Domain Model; title: 2.8.2	Generalization; title: 2.8.3	Defining Conceptual Superclasses and Subclasses; title: 2.8.4	When to Define a Conceptual Subclass; title: 2.8.5	When to Define a Conceptual Superclass; title: 2.8.6	NextGen POS Conceptual Class Hierarchies; title: 2.8.7	Abstract Conceptual Classes; title: 2.8.8	Modeling Changing States; title: 2.8.9	Class Hierarchies and Inheritance in Software; title: 2.9	Aggregation and Composition; title: 2.9.1	Aggregation in the UML; title: 2.9.2	Composite Aggregation—Filled Diamond; title: 2.9.3	Shared Aggregation—Hollow Diamond; title: 2.9.4	Composition; title: 2.9.5	A Benefit of Showing Composition; title: 2.9.6	Composition in the NextGen Domain Model; title: 2.10	Relationship between sequence diagrams and use cases; title: 2.10.1	Inter-System SSDs; title: 2.10.2	SSDs and Use Cases; title: 2.10.3	System Events and the System Boundary; title: 2.10.4	Naming System Events and Operations; title: 2.10.5	Showing Use Case Text; title: 2.10.6	SSDs and the Glossary; title: 2.11	When to use Class Diagrams; title: UNIT III; title: DYNAMIC AND IMPLEMENTATION UML DIAGRAMS; title: 3.1	Dynamic and Implementation Diagrams; title: 3.2	Interaction diagrams; title: 3.2.1	Sequence Diagrams; title: 3.2.2	Collaboration Diagrams; title: 3.2.3	Comparing Sequence and Collaboration Diagrams; title: 3.2.4	CRC Cards; title: 3.3	When to use Communication Diagrams; title: 3.4	State machine diagram and Modelling; title: 3.4.1	Introduction; title: 3.4.2	Purpose; title: 3.4.3	State Diagram Notations; title: 3.4.4	When to use: State Diagram; title: 3.4.5	Examples; title: 3.5	Activity diagram; title: 3.5.1	Introduction; title: 3.5.2	Purpose; title: 3.5.3	Activity diagrams Notation; title: 3.5.4	When to use: Activity Diagrams; title: 3.6	Package; title: 3.6.1	Introduction; title: 3.6.2	Collaborations; title: 3.6.3	When to Use Package Diagrams and Collaborations; title: 3.7	Component and Deployment Diagrams; title: 3.7.1	Deployment Diagrams; title: 3.7.2	Component Diagrams; title: 3.7.3	Combining Component and Deployment Diagrams; title: 3.7.4	When to Use Physical Diagrams; title: UNIT IV; title: DESIGN PATTERNS; title: 4.1	GRASP: Designing objects with responsibilities; title: 4.1.1	Introduction; title: 4.1.2	GRASP as a Methodical Approach to Learning Basic Object Design; title: 4.1.3	Responsibilities and Methods; title: 4.1.4	Patterns; title: 4.1.5	GRASP: Patterns of General Principles in Assigning Responsibilities; title: 4.1.6	The UML Class Diagram Notation; title: 4.2	Creator; title: 4.2.1	Solution; title: 4.2.2	Problem; title: 4.2.3	Example; title: 4.2.4	Discussion; title: 4.2.5	Contraindications; title: 4.2.6	Benefits; title: 4.2.7	Related Patterns or Principles; title: 4.3	Information expert; title: 4.3.1	Solution; title: 4.3.2	Problem; title: 4.3.3	Example; title: 4.3.4	Discussion; title: 4.3.5	Contraindications; title: 4.3.6	Benefits; title: 4.3.7	Related Patterns or Principles; title: 4.4	Low Coupling; title: 4.4.1	Solution; title: 4.4.2	Problem; title: 4.4.3	Example; title: 4.4.4	Discussion; title: 4.4.5	Contraindications; title: 4.4.6	Benefits; title: 4.4.7	Background; title: 4.4.8	Related Pattern; title: 4.5	High Cohesion; title: 4.5.1	Solution; title: 4.5.2	Problem; title: 4.5.3	Example; title: 4.5.4	Discussion; title: 4.5.5	Contraindications; title: 4.5.6	Benefits; title: 4.6	Controller; title: 4.6.1	Solution; title: 4.6.2	Problem; title: 4.6.3	Example; title: 4.6.4	Discussion; title: 4.6.5	Benefits; title: 4.7	Design Patterns; title: 4.7.1	What is a Design Pattern?; title: 4.7.2	Design Patterns in Smalltalk MVC; title: 4.7.3	Describing Design Patterns; title: 4.7.4	How to Select a Design Pattern?; title: 4.8	Creational; title: 4.9	Factory method; title: 4.9.1	Intent; title: 4.9.2	Motivation; title: 4.9.3	Applicability; title: 4.9.4	Structure; title: 4.9.5	Participants; title: 4.9.6	Collaborations; title: 4.9.7	Consequences; title: 4.9.8	Implementation; title: 4.10	Structural; title: 4.11	Bridge; title: 4.11.1	Intent; title: 4.11.2	Motivation; title: 4.11.3	Applicability; title: 4.11.4	Structure; title: 4.11.5	Participants; title: 4.11.6	Collaborations; title: 4.11.7	Consequences; title: 4.11.8	Implementation; title: 4.11.9	Known Uses; title: 4.11.10	Related Patterns; title: 4.12	Adapter; title: 4.12.1	Intent; title: 4.12.2	Motivation; title: 4.12.3	Applicability; title: 4.12.4	Structure; title: 4.12.5	Participants; title: 4.12.6	Collaborations; title: 4.12.7	Consequences; title: 4.12.8	Implementation; title: 4.12.9	Known Uses; title: 4.12.10	Related Patterns; title: 4.13	Behavioural; title: 4.14	Strategy; title: 4.14.1	Intent; title: 4.14.2	Motivation; title: 4.14.3	Applicability; title: 4.14.4	Structure; title: 4.14.5	Participants; title: 4.14.6	Collaborations; title: 4.14.7	Consequences; title: 4.14.8	Implementation; title: 4.14.9	Known Uses; title: 4.14.10	Related Patterns; title: 4.15	Observer; title: 4.15.1	Intent; title: 4.15.2	Motivation; title: 4.15.3	Applicability; title: 4.15.4	Structure; title: 4.15.5	Participants; title: 4.15.6	Collaborations; title: 4.15.7	Consequences; title: 4.15.8	Implementation; title: 4.15.9	Known Uses; title: 4.15.10	Related Patterns; title: 4.16	Applying GoF design patterns; title: 4.16.1	The Gang-of-Four Design Patterns; title: 4.16.2	Adapter(GOF); title: 4.16.3	Polymorphism, Indirection, and Protected Variations (GRASP); title: 4.16.4	Naming Convention: Embed Pattern Name in Type Name?; title: 4.16.5	"Analysis" Discoveries During Design: Domain Model; title: 4.16.6	Factory (GoF); title: 4.16.7	Singleton (GoF); title: 4.16.8	Strategy (GoF); title: 4.16.9	Composite (GoF) and Other Design Principles; title: 4.17	Mapping design to code; title: 4.17.1	Programming and the Development Process; title: 4.17.2	Mapping design to code; title: 4.17.3	Defining the Sale--makeLineltem Method; title: 4.17.4	Order of Implementation; title: 4.17.5	Test Driven or Test-First Programming; title: UNIT V; title: TESTING; title: 5.1	Object Oriented Methodologies; title: 5.1.1	What is Object Oriented Methodology?; title: 5.1.2	Objectives of Object Oriented Methodologies; title: 5.1.3	Benefits of Object Oriented Methodologies; title: 5.2	Software Quality Assurance; title: 5.2.1	Definition; title: 5.2.2	Objectives; title: 5.3	Impact of object orientation on Testing; title: 5.3.1	Object-oriented Testing Methods; title: 5.3.2	Challenges in Testing Object-oriented Programs; title: 5.4	Develop Test Cases and Test Plans; title: 5.4.1	What is a Test Plan?; title: 5.4.2	Test Plan Identifiers; title: 5.4.3	Test Planning Activities; title: 5.4.4	Developing the test cases; title: 5.4.5	Step by Step guide to Test Case Development; title: 5.4.6	Activities in the Test Case Development Phase