chapter 01 - introduction to object oriented concepts

49
5/25/2018 Chapter01-IntroductiontoObjectOrientedConcepts-slidepdf.com http://slidepdf.com/reader/full/chapter-01-introduction-to-object-oriented-concepts 1/49 Introduction to Object-Oriented Concepts 1

Upload: adahsaadah

Post on 15-Oct-2015

33 views

Category:

Documents


0 download

DESCRIPTION

Chapter 01 - Introduction to Object Oriented Concepts

TRANSCRIPT

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    1/49

    Introduction toObject-Oriented Concepts

    1

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    2/49

    Outline

    Software Development: Challenges and

    Process

    Introduction to Object-Oriented Concepts

    The Fundamental Concepts of Object Object-oriented Software

    Development: Unified Process

    2

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    3/49

    Software Development ProcessAn overview

    3

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    4/49

    3- 4

    Software Development

    Process Address:

    Requirements Gathering This activity determines the requirements that the product must

    address.

    Feasibility Study Determines whether it is possible technically, economically, legally

    or organizationally to build a certain software.

    Domain Analysis Discovers the meaning of requirements within the context,

    concepts within the domain that are related to the problem and canaffect the solution, and possibly the consequences of the solution onthe problem domain.

    Analysis Analyzing the requirements to build a conceptual model of the solution(the product).

    Design Transforms the what into how. Design itself consists of several

    distinct activities; logical design, physical design, and architecturaldesign.

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    5/49

    Software Development

    Process Address:

    Implementation Turns the blueprints of design into an actual product.

    Programming is usually the most important component of thisactivity, but it is not the only one.

    Testing and Quality Control Verifies that the product functions according to specifications.

    Deployment and Training This activity consists of ensuring the correct installation on the

    target platform, user training, creating help files and usermanuals, setting up of Web sites to guide users, packaging, etc.

    Maintenance Solving problems that may emerge after the deployment of the software,

    or changes in the environment.

    5

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    6/49

    Waterfall model

    Incremental and iterative(In practice, most large systems are developed using a

    process that incorporates elements from all of these

    models) Spiral model

    Agile methods

    Prototyping

    Rapid Application Development (RAD)

    etc.

    Software Development Process

    Models

    6

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    7/49

    The waterfall model

    7

    The waterfall model specifies a set of sequential

    phases for software development

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    8/49

    Incremental development: starts with small functional

    subsystem and adds functionality with each new release

    Iterative development: starts with full system, thenchanges functionality of each subsystem with each new

    release

    Incremental and Iterative

    8

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    9/49

    Incremental and Iterative

    The Benefits

    The cost of accommodating changing customer requirements is

    reduced.

    The amount of analysis and documentation that has to be

    redone is much less than is required with the waterfall model.

    It is easier to get customer feedback on the development work that

    has been done.

    Customers can comment on demonstrations of the software and

    see how much has been implemented.

    More rapid delivery and deployment of useful software to the

    customer is possible.

    Customers are able to use and gain value from the software

    earlier than is possible with a waterfall model.

    9

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    10/49

    The Spiral Model The spiral model is a risk-oriented lifecycle model that breaks a

    software project up into mini-projects.

    It has been very influential in helping people think about iteration

    in software processes and introducing the risk-driven approach

    to development.

    10

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    11/49

    Software Development

    Process Address:

    Many different software development approaches but all

    involve:

    Analysis (i.e., requirements engineering) analysing

    and defining what the system should do;

    Design and Implementation defining the organization

    of the system and implementing the system;

    Verification and Validation testing; checking that it

    does what the customer wants;

    Evolution (i.e., maintenance) changing the system in

    response to changing customer needs.

    The terminology and details of each process may differ,

    but the generic activities remain reasonably consistent.

    11

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    12/49

    The Challenges of Software

    Development

    12

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    13/49

    COMPLEXITY

    Software system being developed today areoften very large and complex.

    Complexity is dictated by the problems the

    systems are intended to solve and theservices they are intended to provide.

    Methodologies, techniques and tools must

    be effectively used.

    13

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    14/49

    MAINTAINABILITY

    Software system are often in service for

    very long periods of time. Evolving to accommodate changes in

    users need and environment is difficult to

    maintain. Maintenance involves cost, time and also

    degrade the quality

    Maintenance costs far exceeddevelopment costs.

    14

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    15/49

    Maintainability should be focused

    because:

    Software is long lifetimes

    Current development technology does

    not yield high reliability. Reliability isattained through repeated corrections.

    High maintainability requires flexibility

    in design and implementation ofsoftware

    15

    MAINTAINABILITY (cont.)

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    16/49

    DEALING WITH COMPLEXITY

    Complex systems are hard to understand

    Three ways to deal with complexity Abstraction and Modeling

    Decomposition

    Hierarchy

    16

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    17/49

    DEALING WITH COMPLEXITY

    Abstraction and Model

    Abstraction allows us to ignore unessential

    details Ideas can be expressed by models

    A model is an abstraction of a system

    A system that no longer exists An existing system

    A future system to be built.

    17

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    18/49

    Modeling the Real World

    Model: abstraction of a

    part of the real world

    18

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    19/49

    Modeling for Software

    Development

    Modeling, as a methodology, is the systematic

    representation of the relevant features of a productor a system from particular perspectives.

    Software modeling is shaped by four interweaved

    factors: how the real world is seen,

    how software is defined,

    the process of development, and the modeling language.

    19

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    20/49

    DEALING WITH COMPLEXITY

    Decomposition

    A technique used to master complexity

    (divide and conquer)

    Two major types of decomposition

    Functional decomposition Object-oriented decomposition

    20

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    21/49

    DEALING WITH COMPLEXITY

    Decomposition

    Functional decomposition

    The system is decomposed into modules

    Each module is a major function in the application

    domain

    Modules can be decomposed into smaller

    modules.

    Object-oriented decomposition

    The system is decomposed into classes

    (objects) Each class is a major entity in the application

    domain

    Classes can be decomposed into smaller classes21

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    22/49

    22

    SUPPORT MAINTAINABILITY

    Changeable

    The various aspects of softwaresystems should be easily changeable.

    Minimal impact

    Impact of change should be confinedto a small region.

    The correctness of the change should

    be reasoned by examining only thesmall affected region rather than theentire software.

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    23/49

    SUPPORT MAINTAINABILITY

    Simplicitymake things simple

    Less error-prone

    Easier to show correctness

    Errors become more obvious andcorrecting errors is easier.

    Divide-and-conquer approach

    23

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    24/49

    Why an Object-Orientation

    Development?

    Object-oriented technologyis mature and rules the

    market.

    Object-oriented software development is iterative.

    Object-oriented decomposition is concerned with

    identifying object classes, their attributes and operations

    Reusability and maintainability

    A full object-oriented development requires three things:

    an object-oriented technology,

    an object-oriented analysis and design, and

    a project plan adapted to an object-oriented

    approach

    24

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    25/49

    The Fundamental

    Concepts of Object

    25

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    26/49

    What is an Object?

    Something that is perceived as an entityandreferred to by name;

    In its basic definition, an object is an entity that

    contains both data and behavior.

    This is the key difference between the moretraditional programming methodology, proceduralprogramming, and O-O programming.

    26

    Software systemReal world

    Data-oriented model (70~80s)

    Software systemReal world

    Object-oriented model (90s~)

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    27/49

    Procedural vs OO Programming

    Traditional programming languages were procedural

    (e.g., C, Pascal, BASIC, Ada and COBOL)

    In procedural programming data and operations on

    the data are separated

    Data is placed into separate structures, and ismanipulated by these methods.

    27

    Method AMethod B

    Data

    e.g., if you want to send information,

    only the relevant data is sent with the

    expectation that the other program

    know what to do with it.

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    28/49

    Nice Packages

    Objects address these problems by combining data

    and behavior into a nice, complete package.

    The fundamental advantage of OO programming is

    that the data and the operations that manipulate the

    data are both contained in the object.

    28

    Procedural vs OO Programming

    Object

    Attributes (data)

    Methods

    e.g., when an object is

    transported, the entire object,

    including the data and behavior

    goes with it.

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    29/49

    Object Data

    The data stored within an object represents the

    state of the object.

    In O-O programming terminology, this data iscalled attributes.

    29

    Procedural vs OO Programming

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    30/49

    Object Behaviors

    The behaviorof an object is what the objectcan do.

    In procedural languages the behavior isdefined by procedures, functions, and

    subroutines.

    In O-O programming terminology thesebehaviors are contained in methods, and you

    invoke a method by sending a message to it.

    30

    Procedural vs OO Programming

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    31/49

    Benefits of OO Programming

    Save development time (and cost) by reusing

    code Once an object class is created it can be

    used in other applications

    Easier debugging Classes can be tested independently

    Reused objects have already been tested

    31

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    32/49

    The Unified Process

    Object-Oriented Software Development

    32

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    33/49

    Too many methodologies

    1986: Booch came up with the object-oriented design

    concept, the Booch method.

    1987: Sally Shlaer and Steve Mellor came up with the

    concept of the recursive design approach.

    1989: Beck and Cunningham came up with class-

    responsibility collaboration(CRC) cards.

    1990: Wirfs-Brock, Wilkerson, and Wiener came up withresponsibility-driven design.

    1991: Peter Coad and Ed Yourdon developed the Coad

    lightweight and prototype-oriented approach.

    1991: Jim Rumbaugh led a team at the research labs ofGeneral Electric to develop the object modeling technique

    (OMT).

    1994: Ivar Jacobson introduced the concept of the use case.33

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    34/49

    Implication

    Split, Competitive & Confusing

    Same basic concepts in different notations

    Second-generation OO methodologies

    combining best aspects

    34

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    35/49

    The Unified Approach

    The idea behind the UA is not to introduce yet another

    methodology.

    The main motivation here is to combine the best

    practices, processes, methodologies, and guidelines

    along with UML notations and diagrams.

    Focuses on improving the maintainabilityand reusabilityof software systems through a set of techniques,

    notations, tools, and criteria.

    Rational Unified Process (RUP) a detailedrefinement of UA developed by IBMs Rational Software

    35

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    36/49

    UA Methods and Technology

    The methods and technology employed includes:

    Unified Modeling Language (UML) used formodeling.

    Layered approach

    Repository for object-oriented system development

    patterns and frameworks

    Promoting Component-based development

    36

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    37/49

    Rational Unified Process (RUP)

    Initial version officially released in 1998

    Revised versions introduced in 2000 and 2003

    Developed at Rational Corporation by the three

    principal Developed at Rational Corporation by the

    three principal developers of the OMT, Booch and

    OOSE (Objectory) methodologies: Rumbaugh, Boochand Jacobson

    UML-based

    Use case driven, a feature inherited from OOSE Iterative incremental development

    Covering the full generic lifecycle

    37

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    38/49

    RUP: Process - Phases

    Overall development cycle consists of four phases:

    Inception: defining the scope and objectives of the

    project, as well as the business case Elaboration: capturing the crucial requirements,

    developing and validating the architecture of the

    software system, and planning the remaining

    phases of the project

    Construction: implementing the system in an

    iterative and incremental fashion based on the

    architecture developed in the previous phase Transition: testing and releasing the system

    38

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    39/49

    RUP: Process Iterations and

    Disciplines

    Each phase can be further broken down into iterations

    An iteration is a complete development loop resultingin a release of an executable increment to the system

    Each iteration consists of nine work areas (disciplines)

    performed during the iteration

    For each discipline, RUP defines sets of:

    Artefacts (work products)

    Activities (units of work on the artefacts)

    Roles (responsibilities taken on by development

    team members)

    39

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    40/49

    RUP: Process Disciplines

    Business Modeling: describing business processes and the

    internal structure of a business. A Business use Case Model

    and a Business Object Model are developed. Requirements Management: eliciting, organizing, and

    documenting requirements. The Use Case Model is

    produced.

    Analysis and Design: creating the architecture and thedesign of the software system; results in a Design Model and

    optionally an Analysis Model.

    Implementation: writing and debugging source code, unit

    testing, and build management. Source code files,

    executables, and supportive files are produced.

    Test: integration-, system- and acceptance-testing

    40

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    41/49

    RUP: Process Disciplines

    Deployment: packaging the software, creating installation

    scripts, writing end-user documentation and other tasksneeded to make the software available to its end-users.

    Project Management: project planning, scheduling and

    control.

    Configuration and Change Management: version- andrelease-management, and change-request management.

    Environment: adapting the process to the needs of a project

    or an organization, and selecting, introducing and supporting

    development tools necessary infrastructure to develop

    a system

    41

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    42/49

    RUP: Process Disciplines in

    Iterations

    42

    RUP P Di i li i

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    43/49

    43

    RUP: Process Disciplines in

    Iterations and Phases

    Each phase is

    broken down

    into one/more

    iterations

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    44/49

    RUP

    Complete software engineering process.

    Goal to ensure the production of high-

    quality software that meets the needs ofits end users within a predictableschedule and budget (Booch et al., 1999)

    It is a process framework that can beadapted and extended to suit the needs ofdifferent organizations and different typesof projects.

    44

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    45/49

    RUP good practice

    Develop software iteratively

    Plan increments based on customer priorities and

    deliver highest priority increments first.

    Manage requirements

    Explicitly document customer requirements and

    keep track of changes to these requirements.

    Use component-based architectures

    Organize the system architecture as a set of

    reusable components.

    45

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    46/49

    RUP good practice

    Visually model software

    Use graphical UML models to present static and

    dynamic views of the software.

    Verify software quality

    Ensure that the software meets organizational

    quality standards.

    Control changes to software

    Manage software changes using a change

    management system and configurationmanagement tools.

    46

    RUP: The Object Oriented

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    47/49

    RUP: The Object-Oriented

    Development

    47

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    48/49

    RUP: Strengths and Weaknesses

    Strengths

    Iterative-incrementalprocess

    Well-documented

    Weaknesses

    Very complexprocess

    48

  • 5/25/2018 Chapter 01 - Introduction to Object Oriented Concepts

    49/49

    References

    Matt Weisfeld (2013), Object-oriented Thought Process, 4th Ed., Addison-Wesley

    Professional

    Kruchten, P., Rational Unified Process: An Introduction, 3rd Ed., Addisn-Wesley,

    2003

    Sommerville (2011). Software Engineering, 9th Edition, Pearson.

    Bennett, McRobb and Farmer (2010). Object-oriented systems analysis and

    design using UML, 4th edition, McGrawHill.

    Pfleeger and Atlee (2010). Software Engineering. Pearson.

    www.cs.utep.edu/cheon/cs3331/notes/oosd.ppt

    Etc..

    49