160 likes | 389 Views
COMP 350: Object Oriented Analysis and Design Lecture 1 Introduction References: Craig Larman Chapter 1. Object Oriented Paradigm. A set of techniques for analyzing, decomposing, and modularizing software systems
E N D
COMP 350: Object Oriented Analysis and DesignLecture 1 IntroductionReferences: Craig Larman Chapter 1
Object Oriented Paradigm • A set of techniques for analyzing, decomposing, and modularizing software systems • Characterized by structuring the system on the basis of its objects rather than the actions it performs
Benefits of OO • OO enhances key software quality factors of a system and its constituent components • Correctness • Robustness • Reliability • Extensibility • Reusability • Compatibility (via standard/uniform interfaces) • Maintainable • More?
OOA, OOD, OOP • Object-oriented methods may be applied to different phases in the software life- cycle • e.g., analysis, design, implementation, etc. • OO analysis (OOA) is a process of discovery • Where a development team models and understands the system and its requirements • OO design (OOD) is a process of invention and adaptation • where the development team creates the abstractions and mechanisms necessary to meet the system's behavioral requirements determined during analysis • OOP is primarily concerned with programming language and software implementation issues
What is Object Oriented Analysis? • The emphasis is on finding and describing the objects (or concepts) in the problem domain. • Example: In a Library Information System, some of the concepts include Book, Library, and Patron.
What is Object Oriented Design? • The emphasis is defining software objects and how they collaborate to fulfill the requirements. • Example: In a Library Information System, a Book software object may have a title attribute and a get Chapter method.
Division between Analysis and Design • Fuzzy; A & D activities exist on a continuum • Some practitioners can classify an activity as analysis while others put it into design category
Summary: OO Analysis and Design • The essence of OOAD is to consider a problem domain and logical solution from the perspective of objects (things, concepts, or entities) • OO Analysis emphasizes finding and describing the objects –or concepts-in the problem domain • OO Design emphasizes defining logical software objects (things, concepts, or entities) that have attributes and methods
Unified Modeling Language (UML) • “A visual language for specifying, constructing and documenting the artifacts of systems” [Booch, Jacobson, Rumbaugh] • Uses OO concepts • Not a methodology • Not a process
UML Diagrams • Use case diagrams • Class diagrams • Interaction diagrams: Sequence diagrams, Collaboration diagrams • Package diagrams • State Machine diagrams • Activity diagrams • Component diagrams • Deployment diagrams
Skills to Master • “Think in objects” • Analyze requirements with use cases • Create domain models • Apply an iterative & agile process • Relate analysis and design artifacts • Read and write UML • Assign responsibilities to objects • Design collaborations • Design with patterns • Design with architectural layers
Harmful is knowing how to read and draw UML diagrams, but not being an expert in design and patterns. Important is object and architectural design skills, not UML diagrams, drawing, or CASE tools.