LarmanChap1

  • Upload
    ddivaa

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

  • 8/7/2019 LarmanChap1

    1/19

    NJIT

    Object Oriented Analysis and

    Design

    Chapter 1

    Applying UML and Patterns

    Craig Larman

  • 8/7/2019 LarmanChap1

    2/19

    NJIT

    Applying UML and Patterns in

    OOA/OOD

    What is a good object

    design?

  • 8/7/2019 LarmanChap1

    3/19

    Applying UML UML is just a standard diagramming

    notation. It is just a tool, not a skill that is

    valuable in itself. Knowing UML helps youcommunicate with others in creating

    software, but the real work in this course is

    learning Object-Oriented Analysis andDesign, not how to draw diagrams.

  • 8/7/2019 LarmanChap1

    4/19

    Assigning Responsibilities The most important skill in Object-

    Oriented Analysis and Design is assigning

    responsibilities to objects. Thatdetermines how objects interact and what

    classes should perform what operations.

  • 8/7/2019 LarmanChap1

    5/19

    Design Patterns Certain tried-and-true solutions to design

    problems have been expressed as

    principles of best practice, often in theform ofDesign Patterns.

    A Design Pattern is a named problem

    solution formula that apply excellentdesign principles.

  • 8/7/2019 LarmanChap1

    6/19

    Requirements AnalysisAll Software Analysis and Design is

    preceded by the analysis of requirements.

    One of the basic principles of good designis to defer decisions as long as possible.The more you know before you make adesign decision, the more likely it will be

    that the decision is a good one.

    TFCL: Think First, Code Later!

  • 8/7/2019 LarmanChap1

    7/19

    Use Cases Writing Use Cases is not a specifically

    Object Oriented practice. But it is a best

    practice for elaborating and understandingrequirements. So we will study Use

    Cases.

  • 8/7/2019 LarmanChap1

    8/19

    The Unified ProcessA standardized approach to analysis and

    design helps to ensure that all necessary

    tasks are understood and completed insoftware development.

    This text, and the course, will focus on the

    Unified Process developed at RationalSoftware by Ivar Jacobsen, Grady Boch,

    Jim Rumbaugh, and others.

  • 8/7/2019 LarmanChap1

    9/19

    Other Necessary Skills Requirements Analysis, Object-Oriented

    Analysis and Object-Oriented Design are

    not a complete toolkit for a softwaredeveloper. There are many other skills

    necessary in Software development,

    including programming. This course onlycovers a subset of the necessary skills.

  • 8/7/2019 LarmanChap1

    10/19

    Assigning Responsibilities The Desert Island Skill in OOD is

    assigning responsibilities to objects.

    Nine fundamental principles for doing this

    will be presented as the GRASP patterns.

    GRASP is an acronym forGeneral

    Responsibility Assignment Patterns.

  • 8/7/2019 LarmanChap1

    11/19

    NJIT

    What is Analysis?

    (Class-answer the question)

  • 8/7/2019 LarmanChap1

    12/19

    AnalysisAnalysis is a broad term. In Software

    development, we are primarily concerned

    with two forms of analysis. Requirements Analysis is discovering the

    requirements that a system must meet inorder to be successful.

    Object Analysis is investigating the objectin a domain to discover informationimportant to meet the requirements.

  • 8/7/2019 LarmanChap1

    13/19

    NJIT

    What is Design?

    (Class-answer the question)

  • 8/7/2019 LarmanChap1

    14/19

    Design

    Design emphasizes a conceptual solution

    that fulfills the requirements. A design is

    not an implementation, although a gooddesign can be implemented when it is

    complete.

    There are subsets of design, includingarchitectural design, object design, and

    database design.

  • 8/7/2019 LarmanChap1

    15/19

    Analysis and Design

    Analysis

    do the right thingDesign

    Do th

    e th

    ing righ

    t

  • 8/7/2019 LarmanChap1

    16/19

    What is Object Oriented

    Analysis?

    The emphasis is on finding and describing

    the objects (or concepts) in the problem

    domain.

    In a Library Information System, some of

    the concepts include Book, Library, and

    Patron.

  • 8/7/2019 LarmanChap1

    17/19

    What is Object Oriented

    Design?

    The emphasis is defining software objects

    and how they collaborate to fulfill the

    requirements.

    In a Library Information System, a Book

    software object may have a title attribute

    and a getChaptermethod.

  • 8/7/2019 LarmanChap1

    18/19

    Implementation

    During Implementation, orObject-Oriented

    Programming, design objects are

    implemented, such as a book class inJava.

    Implementation is also known as Coding

    orConstruction.

  • 8/7/2019 LarmanChap1

    19/19

    Example Tasks

    Define Use Cases

    Define a Domain Model

    Define Interaction Diagrams

    Define Design Class Diagrams