This document provides an overview of an object oriented analysis and design (OOAD) course. It discusses key topics that will be covered, including OOAD principles and techniques, the software development process, UML modeling, and use cases. It explains the differences between object oriented analysis and object oriented design. Object oriented analysis focuses on identifying objects and requirements, while object oriented design emphasizes conceptual solutions and defining software objects and their collaborations. An iterative development process using agile principles will be used as an example methodology.
This document provides an overview of an object oriented analysis and design (OOAD) course. It discusses key topics that will be covered, including OOAD principles and techniques, the software development process, UML modeling, and use cases. It explains the differences between object oriented analysis and object oriented design. Object oriented analysis focuses on identifying objects and requirements, while object oriented design emphasizes conceptual solutions and defining software objects and their collaborations. An iterative development process using agile principles will be used as an example methodology.
This document provides an overview of an object oriented analysis and design (OOAD) course. It discusses key topics that will be covered, including OOAD principles and techniques, the software development process, UML modeling, and use cases. It explains the differences between object oriented analysis and object oriented design. Object oriented analysis focuses on identifying objects and requirements, while object oriented design emphasizes conceptual solutions and defining software objects and their collaborations. An iterative development process using agile principles will be used as an example methodology.
This document provides an overview of an object oriented analysis and design (OOAD) course. It discusses key topics that will be covered, including OOAD principles and techniques, the software development process, UML modeling, and use cases. It explains the differences between object oriented analysis and object oriented design. Object oriented analysis focuses on identifying objects and requirements, while object oriented design emphasizes conceptual solutions and defining software objects and their collaborations. An iterative development process using agile principles will be used as an example methodology.
Download as PPTX, PDF, TXT or read online from Scribd
Download as pptx, pdf, or txt
You are on page 1of 18
Object Oriented
Analysis & Design
CHAPTER 1 Book Applying UML and Patterns by Craig Larman Grading Criteria Assignment – 5 Marks Quizzes- 10 Marks Mid Term- 35 Marks Final Exam-50 Marks Course Overview OOAD Software Life cycles Agile software development process Requirements and use cases Software quality and quality assurance Risk management UML modelling patterns Software process improvement Its about thinking in terms of objects Analyzing the problem in terms of objects i.e. object oriented analysis Designing the problem with objects as units i.e. object oriented design Use of tools and technologies that support OOAD Lecture Overview Introduction to:
Object oriented analysis
Object oriented design UML Software development process Introduction to OOAD The proverb “owning a hammer doesn’t make one an architect” is especially true with respect to object technology. Knowing an object language is necessary but insufficient to create object systems Its about analysing system requirements in terms of objects and allocating responsibilities to class objects. How would these objects collaborate with each other. OOA It emphasizes on finding requirements and problems rather than solutions. Object oriented analysis is a process of analyzing requirements in an object oriented paradigm. It approves some of the requirements while discards others. The requirements are represented in the form of Use cases and personas to make more sense based on this OOA the OOD is built. Use Case Use case consists of a paragraph or so text that presents a scenario of a single system requirement. It is written in simple English that would help realize the importance of the requirement and its contribution to the over all system. There can be many use cases for a system representing its various requirements. It is not an OO activity but it helps in the development of OOD. Use Case Example ◦ Use Case “Login to System” ◦ When the User tries to access the system, the systems asks for a user name and password. On provision of the correct user name and password , the user is allowed to enter the system. OOD It emphasizes on the conceptual solution in software or hardware that fulfils the requirements. It does not give any implementation details Design ideas normally exclude low level details that are obvious to the intended customers . Ultimately designs can be implemented in code to give its true and complete realization OOA vs OOD In OOA there is an emphasis on finding and describing objects or concepts in the problem domain For example in flight information system some of the objects are flights, planes and pilot During OOD there is emphasis on defining software objects and how they collaborate with each other to fulfill requirements For example a flight object may have attributes like flight duration, departure time, arrival time, source, destination etc. UML UML is a standard diagramming notation UML is not OOAD or a method it is just a diagramming notation It is useless to learn UML but not really know how to create an excellent OO design or evaluate and improve an existing one To know how to design is a separate skill UML Diagrams Use case diagram Activity diagram Sequence diagram Partial domain model Domain model Class diagram Collaboration diagram UML Perspective Conceptual perspective ◦The diagrams are interpreted as describing things in a situation of the real world or domain of interest Specification perspective ◦The diagrams (using same notations) describe software abstraction or components with specifications and interfaces but no commitment to a particular implementation Implementation perspective ◦Software implementation in a particular technology Development Process Given the requirements and possible activities that are to be implemented the question is how to proceed In this case, an agile (light, flexible) approach is used as sample of iterative development process Agile development process is relatively new approach and is very successful Assigning responsibilities to objects It is the most critical activity This activity has to be performed either while drawing UML diagrams or programming It strongly influences the robustness, maintainability and reusability of the software components Iterative Development Process Iterative development process is an agile development process During this process development is organized in to a series of short, fixed-length mini-projects called iterations The outcome of each iteration is tested, integrated as executable partial system Each iteration includes its own requirements analysis, design, implementation and testing activities It is also called iterative and incremental development Also called iterative and evolutionary development (feedback and adaptation)