60-322 Object-Oriented Analysis and Design Fall 2009.

Slides:



Advertisements
Similar presentations
Object-Oriented Analysis and Design Introduction 1.
Advertisements

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,
CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812)
Unified Modeling Language
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
NJIT Drawing System Sequence Diagrams Chapter 10 Applying UML and Patterns Craig Larman Presented by Anuradha Dharani.
1 Info 1409 Systems Analysis & Design Module Lecture 8 – Modelling tools and techniques HND Year /9 De Montfort University.
COMP 350: Object Oriented Analysis and Design Lecture 2
Object Oriented Analysis and Design Using the UML
Chapter 7: The Object-Oriented Approach to Requirements
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction To System Analysis and design
Lesson 1 Week01.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
1 On to Object Design Chapter 14 Applying UML and Patterns.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Chapter 7 System models.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
©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.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
Software Engineering 1 Object-oriented Analysis and Design Chap 22 UML Tools and UML as Blueprint.
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.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
SYS466 Casual Use Case Specifications. Systems Use Case Diagrams and Specifications Based on the dialog metaphor Based on the dialog metaphor The process.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Object-Oriented Analysis and Design ธนวัฒน์ แซ่ เอียบ.
Copyright ©2004 Cezary Z Janikow 1 OOAD Overview n OO language – Necessary for OO systems? – Sufficient for OO systems? Owning a hummer doesn’t make you.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN Objectives Describe the book goals and scope Define OOA/D (Object-Oriented Analysis and Design) Illustrate.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Diagrams. Typically, we view the static parts of a system using one of the four following diagrams. 1. Class diagram 2. Object diagram 3. Component diagram.
Object Oriented Analysis & Design By Rashid Mahmood.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Systems Analysis and Design in a Changing World, Fourth Edition
UML Diagrams By Daniel Damaris Novarianto S..
Object-Oriented Analysis and Design
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Chapter 5: Object Oriented Analysis and Design
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Unified Modeling Language
Week 10: Object Modeling (1)Use Case Model
UML Diagrams Jung Woo.
COMP 350: Object Oriented Analysis and Design Lecture 2
Software Design Lecture : 15.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Uml diagrams In ooad.
Presentation transcript:

Object-Oriented Analysis and Design Fall 2009

Jan 5, Course Information Instructor: – Dr. Dan Wu – The course outline Course website: – TBA

Jan 5, So you know how to program, at least in Java… You also know some useful data structures…. Programming is fun, isn’t it ? Do you know how to develop quality software? Programming vs. software What do you think? Owning a hammer doesn’t make one an architect.

Jan 5, If you are given the task of developing …., how would you start? Not an easy job…? The material in this course offers you: – A systematic method to do OOAD, in the context of – Software engineering process (the Unified Process, abbr. UP) Before you do any programming, which is more or less trivial Hopefully, you will at least know how to develop quality software, which potentially to land you a job as system analyst or alike along your career path, unless you prefer a lifelong job as programmer.

Jan 5, Organization of the book and the course This course is about – OOAD – Frequently used UML notation – Common Design Patterns – Iterative software development process

Jan 5, OOAD (and all software design) is strongly related to the prerequisite activity of requirements analysis, which often includes writing use cases. Given many possible activities from requirements through to implementation, how should a developer or team proceed? Requirements analysis and OOA/D needs to be presented and practiced in the context of some development process. An agile (light, flexible) approach to the well-known Unified Process (UP) is used as the sample iterative development process within which these topics are introduced. So what’s UP? See for details. Chapter 1. Introduction

Jan 5,

8 This course is *not* about UML. Thinking in Objects is more important than knowing UML. This course is to explore how to apply the UML in the service of doing OOAD, and covers frequently used UML. A few more notes….

Jan 5, Analysis and Design Analysis: “build (do) the right thing” – Analysis focuses on user requirements (functional or non- functional) – In other words, we want to decide exactly what system the customer wants to have – Investigate the problem, rather than a solution. Design: “build (do) the thing right” – Design focuses on how to provide the required functionality – In other words, we want to decide how to structure the software that provides the (functional and non-functional) requirements determined during analysis – Emphasize a conceptual solution, which will ultimately lead to concrete implementation.

Jan 5, Analysis Usually performed by a systems analyst – This is a person whose job it is to find out what an organization (or person) needs in terms of a software system Analysis looks at the software as a black box of functionality – An analyst will never care about the internals of the system, merely how a user would interact with it from the outside

Jan 5, Design Usually performed by an architect or designer – An architect looks at overall system structure (at a high level) For example, an architect on a distributed system might decide how the software components will be distributed An architect also looks at modularity, and non-functional requirements (such as performance and scalability) – A designer looks at system structure (at lower levels) A designer will look at the classes that make up a module, and how they will interact to perform some function of the system

Jan 5, Design Patterns Patterns are themes that recur in many types of software systems – It is common for software systems (even those whose purpose is quite different) will share some common challenges Often, the solution for the problem in one context can also be used in another context – Thus, the designs (and even implementations) can often be reused from other software systems

Jan 5, Object-Oriented Analysis and Design Object-oriented Analysis finding and describing the objects or concepts in the problem domain. – For example, in the case of the flight information system, some of the concepts include Plane, Flight, and Pilot. Object-oriented Design (object design) defining software objects and how they collaborate to fulfill the requirements. – For example, a Plane software object may have a tailNumber attribute and a getFlightHistory method

Jan 5, A short Example We’ve talked about iterative development, UP, requirement analysis, UML, OOAD, etc. Let’s put them into the perspective of OOAD using this small example. – A dice game: software simulates a player rolling two dice. If the total is seven, they win; otherwise, they lose.

Jan 5, A short Example Requirements analysis may include stories or scenarios of how people use the application; these can be written as use cases. Use cases are not an object-oriented artifact, they are simply written stories. However, they are a popular tool in requirements analysis

Jan 5, A short Example Object-oriented analysis is concerned with creating a description of the domain from the perspective of objects. – Identification of the concepts, attributes, and associations that are considered noteworthy. The result can be expressed in a domain model that shows the noteworthy domain concepts or objects

Jan 5, A short Example Note that a domain model is not a description of software objects; it is a visualization of the concepts or mental models of a real-world domain. Thus, it has also been called a conceptual object model. Note that a domain model is NOT a description of software objects; it is a visualization of the concepts or mental models of a real-world domain. Thus, it has also been called a conceptual object model.

Jan 5, A short Example Object-oriented design is concerned with defining software objects - their responsibilities and collaborations. A common notation to illustrate these collaborations is the sequence diagram (a kind of UML interaction diagram). It shows the flow of messages between software objects, and thus the invocation of methods.

Jan 5, A short Example

Jan 5, A short Example In addition to a dynamic view of collaborating objects shown in interaction diagrams, a static view of the class definitions is usefully shown with a design class diagram. This illustrates the attributes and methods of the classes.

Jan 5, A short Example

Jan 5, The dice game is a simple problem, presented to focus on a few steps and artifacts in analysis and design. To keep the introduction simple, not all the illustrated UML notation was explained.

Jan 5, This course is not primarily a UML notation course, but one that explores the larger picture of applying the UML, patterns, and an iterative process in the context of OOA/D and related requirements analysis. OOA/D is normally preceded by requirements analysis. Therefore, the initial lectures introduce the important topics of use cases and requirements analysis, which are then followed by topics on OOA/D and more UML details.

Jan 5, What is the UML? The Unified Modeling Language is a visual language for specifying, constructing and documenting the artifacts of systems. Three Ways to Apply UML – UML as sketch Informal and incomplete diagrams (often hand sketched on whiteboards) created to explore difficult parts of the problem or solution space, exploiting the power of visual languages. – UML as blueprint Relatively detailed design diagrams used either for – 1) reverse engineering to visualize and better understanding existing code in UML diagrams, or for – 2) code generation (forward engineering). If reverse engineering, a UML tool reads the source or binaries and generates (typically) UML package, class, and sequence diagrams. These "blueprints" can help the reader understand the big-picture elements, structure, and collaborations. Before programming, some detailed diagrams can provide guidance for code generation (e.g., in Java), either manually or automatically with a tool. It's common that the diagrams are used for some code, and other code is filled in by a developer while coding (perhaps also applying UML sketching).

Jan 5, What is the UML? UML as programming language – Complete executable specification of a software system in UML. Executable code will be automatically generated, still under development in terms of theory, tool robustness and usability. Three Perspectives to Apply UML The UML describes raw diagram types, such as class diagrams and sequence diagrams. It does not superimpose a modeling perspective on these. For example, the same UML class diagram notation can be used to draw pictures of concepts in the real world or software classes in Java.

Jan 5, What is the UML? The same notation may be used for three perspectives and types of models. – Conceptual perspective (conceptual class) – the diagrams are interpreted as describing things in a situation of the real world or domain of interest. – Specification (software) perspective (software class) – the diagrams (using the same notation as in the conceptual perspective) describe software abstractions or components with specifications and interfaces, but no commitment to a particular implementation (for example, not specifically a class in C# or Java). – Implementation (software) perspective (implementation class) – the diagrams describe software implementations in a particular technology (such as Java).

Jan 5, Thank you and See you next time.