Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Software Development Life-Cycle Models
Object-Oriented Software Development CS 3331 Fall 2009.
Systems Analysis and Design in a Changing World, 6th Edition
Object-Oriented Analysis and Design
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Introduction To System Analysis and Design
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
Object Oriented Analysis and Design
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
COMP 350: Object Oriented Analysis and Design Lecture 2
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Introduction To System Analysis and design
Software Development Process
Lesson 1 Week01.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
CS212: Object Oriented Analysis and Design Lecture 1: Introduction.
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN 1. WHAT IS AN INFORMATION SYSTEM? An information system is a collection of interrelated components that collect,
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Introduction To System Analysis and Design
Content The system development life cycle
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
The Systems Development Life Cycle
Object-Oriented Analysis and Design Fall 2009.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Systems Analysis and Design in a Changing World, 6th Edition
OBJECT-ORIENTED SOFTWARE DEVELOPMENT PROCESS BTS430 Systems Analysis and Design using UML.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN Objectives Describe the book goals and scope Define OOA/D (Object-Oriented Analysis and Design) Illustrate.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Software Design. A well-known phenomenon You will learn…. –Thinking "object oriented“ –Define requirements and analyze the problem domain. –Design of.
Design. 2 The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary but not sufficient in order.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN 1. WHAT IS AN INFORMATION SYSTEM? An information system is a collection of interrelated components that collect,
Systems Analysis and Design in a Changing World, 6th Edition
Object Oriented Analysis & Design By Rashid Mahmood.
Introduction To System Analysis and Design
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Chapter 5: Object Oriented Analysis and Design
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
System Development Process
CS 519: Object-Oriented Analysis & Design IS 516: Selected Topics in Information Technology Instructor: Dr. Tarek Elghazaly Text Book: Craig Larman,
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Object oriented analysis and design
Object Oriented Analysis and Design
2D1359 & 2D1360 : Object Oriented Modeling, Programming & Analysis
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
CSCI 360: Software Architecture & Design
Presentation transcript:

Chapter 1 Object-Oriented Analysis and Design

Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic textbook. –Dr. Constantinos Constantinides, University of London –Slides from the University of Pittsburg –Slides from many of my existing slides on these same topics –New slides from sources unknown… 2

Chapter 1 Chapter one covers a host of many topics central to today’s technologies. These skills are essential in today’s professional community. We will talk about (in some detail) iterative development, evolutionary development, the Unified Process, agile approaches, UML, Later on we will advance into more complex concepts that address framework design and architectural analysis. Please note that the materials are meant to be foundational. 3

Thinking in Objects and UML - 1 The Unified Modeling Language (UML) is a standard diagramming notation; sometimes referred to as a blueprint. It is NOT OOA/OOD or a method Only a notation for capturing objects. UML is language-independent Analysis and design provide software “blueprints” captured in UML. Blueprints serve as a tool for thought and as a form of communication with others. 4

Thinking in Objects and UML – 2 But it is far more essential to ‘think’ in terms of objects as providing ‘services’ and accommodating ‘responsibilities.’ Discuss: What is meant by ‘services?’ How indicated? –How might you think these ‘services’ impact the design of classes? –How might a client access these services? Discuss: What is meant by ‘responsibilities?’ –Encapsulation of data and services? 5

6 Thinking in Terms of Objects and UML - 3 Object-Oriented Analysis (Overview) –An investigation of the problem (rather than how a solution is defined) –During OO analysis, there is an emphasis on finding and describing the objects (or concepts) in the problem domain. –For example, concepts in a Library Information System include Book, and Library.

7 Thinking in Terms of Objects and UML - 4 Object-Oriented Design –Emphasizes a conceptual solution that fulfills the requirements. –Need to define software objects and how they collaborate to fulfill the requirements. –For example, in the Library Information System, a Book software object may have a title attribute and a getChapter method. Designs are implemented in a programming language. –In the example, we will have a Book class in Java.

8 Thinking in Terms of Objects and UML – 5 From Design to Implementation Book title print() public class Book { public void print(); private String title; } Book (concept) Analysis investigation of the problem Design logical solution Construction code Domain conceptRepresentation in analysis of concepts Representation in an object-oriented programming language. Can you see the services / responsibilities in the Book class?

Thinking in Objects and UML-6 Then too, there are sets of proven design solutions to problems that are considered ‘best practices.’ –Certain ‘groupings’ of classes with specific responsibilities / interfaces. –These provide specific solutions to specific problems. –Called Design Patterns We will discuss (much later) these patterns and how to apply them to develop solutions to problems. 9

Thinking in Objects and UML-7 Of course, design, solutions to requirements, ‘assume’ a robust requirements analysis has taken place. Use Cases are often used to capture stories of requriements. Use Cases are not specifically designed to be object-oriented, but rather are meant to capture how an application will be used. While there are many methods for capturing requirements, we will concentrate on Use Cases ahead. 10

11 Basic Terms: Iterative, Evolutionary, and Agile 1. Introduction Iterative because the entire project will be composed of min- projects and will iterate the same activities again and again (but on different part of the project) until completion. Evolutionary (or incremental) because the software grows by increments (to be opposed to the traditional, and somewhat old- fashioned, Waterfall model of software development). Agile because we will use a light approach to software development rather than a very rigid one (which may be needed for a safety-critical system for example) This kind of approach seems better at treating software development as a problem solving activity; also the use of objects makes it amenable.

12 Our Approach: We need a Requirements Analysis approach with OOA/OOD need to be practiced in a framework of a development process. We will adopt an agile approach (light weight, flexible) in the context of the Unified Process, which can be used as a sample iterative development process. Within this process, the principles can be discussed. Please note that there are several other contexts that may be used, such as Scrum, Feature-Driven Development, Lean Development, Crystal Methods and others…

13 Why the Unified Process: The Unified Process is a popular iterative software development process. Iterative and evolutionary development involves relatively early programming and testing of a partial system, in repeated cycles. It typically also means that development starts before the exact software requirements have been specified in detail; feedback is used to clarify, correct and improve the evolving specification: this is in complete contrast to what we usually mean by engineering!

14 2. What is the Unified Process? The UP is very flexible and open and can include other practices from other methods such as Extreme Programming (XP) or Scrum for example. –e.g. XP’s test-driven development, refactoring can fit within a UP project; So can Scrum’s daily meeting. –Being pragmatic in adapting a particular process to your needs is an important skill : all projects are different.

We will be studying all of the topics found in Fig. 1.1

The Rush to Code Critical ability to develop is to think in terms of objects and to artfully assign responsibilities to software objects. Talk at great length in COP 3538 about encapsulation and assigning methods to objects where the data is defined… One cannot design a solution if the requirements are not understood. One cannot implement the design if the design is faulty. If I could only stop my students…. 16

The Rush to Code Analysis: - investigate the problem and the requirements. –What is needed? Required functions? Investigate domain objects. –The Whats of a system. –Do the right thing (analysis) Design: –Conceptual solution that meets requirements. –Not an implementation –Describe a database schema and software objects. –Avoid the CRUD activities and commonly understood functionality. –The ‘Hows’ of the system –Do the thing right (design) 17

What is Object-Oriented Analysis and Design OOA: we find and describe objects or concepts in the problem domain OOD: we define how these software objects collaborate to meet the requirements. –Attributes and methods. OOP: Implementation: we implement the design objects in, say, Java, C++, C#, etc. 18

Homework Assignment #1 Using the model below, develop a two-three page discussion outlining the four activities listed and present the major features of each. A short definition and example of a domain model, interaction diagram, and class diagram is sufficient, but be prepared to discuss each of these. Also, have a general idea about use cases – what they are designed to do and what they are not designed to do. 19 Define Use Cases Define Domain Model Define Interaction Diagrams Define Design Class Diagrams