Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman
Analysis and Design / implementation? • Analysis : Investigation of the problem and requirements , rather than a solution. • What the system should do ? • What are its function? • Design : a conceptual solution that fulfills the requirements , rather than its implementation. • How to solve the problem? • Implementation : Coding
What is ObjectOriented Analysis? • The emphasis is on finding and describingreal world the objectsor concepts in the problem domain. In the course registration system, some of the concepts include : student , course , enrollment…etc.
What is Object Oriented Design? • The emphasis is defining software objects and how they collaborate to fulfill the requirements. In the course registration system, a requirement could be “add a course” . • You need to create the course • Which object create it ? • Where to add it ?
Implementation • During Implementation, or Object-Oriented Programming, design objects are implemented, such as a course class in Java. • Implementation is also known as Coding or Construction.
Requirements Analysis • All Software Analysis and Design is preceded by the analysis of requirements. • The more you know before you make a design decision, the more likely it will be that the decision is a good one. • Think First, Code Later!
Assigning Responsibilities • The most important skill in Object-Oriented Analysis and Design is assigning responsibilitiesto objects (Design Pattern Chap 17 ). That determines how objects interact and what classes should perform what operations.
The Unified Process • A standardized approach to analysis and design helps to ensure that all necessary tasks are understood and completed in software development. • The course, will focus on the Unified Process developed at Rational Software by Ivar Jacobsen, Grady Boch, Jim Rumbaugh, and others.
Applying UML • UML is just a standard diagramming notation. It is just a tool. • Knowing UML helps you communicate with others in creating software NB: Goal of this class: • Learning Object-Oriented Analysis and Design, not how to draw diagrams.
Think objects • Unified process as development process • UML as communication tool