oo methodology 101

Upload: vettrichelv

Post on 13-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 OO Methodology 101

    1/25

    Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Presented by:

    E-Mail - [email protected] - (610) 831-1151

    William F. Nazzaro

    Nazzaro & Associates

    Object-Oriented

    Methodology 101

  • 7/27/2019 OO Methodology 101

    2/25

    Ver. 1.0 Page - 2Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Object-OrientedMethodology 101

    Premises OO is becoming critical as systems become more

    Complicated Complex Distributed

    Organizations are No longer investigating OO as a possibility Investigating how to use OO competitively

    Objectives Discuss reasons/benefits of OO Discuss the essential linchpin to realize those benefits

  • 7/27/2019 OO Methodology 101

    3/25

    Ver. 1.0 Page - 3Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    What to Expect

    Object-orientations first impact at your company Can be a tremendous success, or A complete blunder

    Need awareness of this technology's Power Impact Shortcomings Potential

  • 7/27/2019 OO Methodology 101

    4/25

    Ver. 1.0 Page - 4Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Benefits come from careful analysis, design,and development practices that exploit the OO paradigm!

    Benefits ofObject-Orientation

    Faster development Reduced cost

    Reuse Higher quality systems Improved architecture

    More adaptable More scalable

    Itsnot

    magical!

  • 7/27/2019 OO Methodology 101

    5/25

    Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    MethodologyThe Quintessential Linchpin

  • 7/27/2019 OO Methodology 101

    6/25Ver. 1.0 Page - 6Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Methodology

    A specification of a processthrough which software canbe developed A set of generic software

    development techniquestogether with a set ofguidelines defining how andwhen those techniquesshould be applied

    Though there is madness, there is a method int.

    - Hamlet, William Shakespeare

  • 7/27/2019 OO Methodology 101

    7/25Ver. 1.0 Page - 7Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    What Should anOO Methodology Do?

    Define Project roles Software lifecycle Deliverables to be created Standards for documenting those deliverables Techniques for creating those deliverables Dependencies among deliverables

    Ensure consistent application of techniques Facilitate staff transitions between phases and projects

    Needs to be reasonable, pragmatic,and most of all flexible

  • 7/27/2019 OO Methodology 101

    8/25Ver. 1.0 Page - 8Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    What Should anOO Methodology Do?

    Provide An experience base in the following areas

    Estimating guidelines and templates Techniques for analyzing models

    Depth of coverage for life cycle phases Guidance for

    Object-Oriented Applications Distributed Object Applications

    Quality examples Stress iterative and incremental development

    Needs to be reasonable, pragmatic,and most of all flexible

  • 7/27/2019 OO Methodology 101

    9/25Ver. 1.0 Page - 9Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    MethodologyMisconceptions

    Notation is not methodology Unified Modeling Language (UML) Object Modeling Technique (OMT) Booch

    0..*

    1

    Person

    AdjunctInstructor

    0..*1

    0..*Degree

    1

    0..*

    0..* 1..*

    0..*

    Track0..*1

    1

    1..* 1..*

    1

    College0..*1

    offers

    0..*

    0..*

    Course0..*

    0..*

    pre-reqs

    1..*

    0..*

    requires

    0..*

    1

    Instructor

    1

    1..*

    employs

    0..*

    1

    Location

    1..*

    1

    controls

    1

    CourseOffering

    0..*

    0..*

    offers

    0..*

    1

    teaches0..*

    1holds

    0..*

    1

    FullTimeInstructor

    0..*

    0..*

    CourseEnrollment

    1

    0..*

    fills seat in

    1

    Student

    1

    0..*

    advise

    registers for

    A

    Person

    AdjunctInstructor

    0..n1

    0..n

    Degree

    1

    0..n

    0..n 1..n0..n

    Track0..n1

    1

    1..n 1..n

    1

    College

    0..n1

    offers

    0..n

    0..n

    Course

    0..n

    0..npre-reqs 1 ..n0..nrequires

    0..n

    1

    Instructor

    1

    1..n

    employs

    0..n

    1

    Location

    1..n

    1

    controls

    1

    CourseOffering

    0..n

    0..n

    offers

    0..n

    1

    teaches0..n

    1 holds

    0..n

    1 FullTimeInstructor

    0..n

    0..n

    CourseEnrollment

    1

    0..nfills seat in

    1

    Student

    1

    0..n

    advise

    0..n

    1

    registers for

    Person

    AdjunctInstructor

    Degree

    1+

    Track

    1+ 1+

    College offers

    Course

    pre-reqs1+

    requires

    Instructor 1+

    employsLocation

    1+

    controls

    CourseOffering

    offers

    teaches

    holds

    FullTimeInstructor

    CourseEnrollment

    fills seat in

    Student

    advise

    registers for

  • 7/27/2019 OO Methodology 101

    10/25Ver. 1.0 Page - 10Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    MethodologyMisconceptions

    Language is not methodology C++ Smalltalk Java Eiffel Visual Basic

    Tools are not methodology Rational Rose Paradigm Plus Select OMT GUI Builder

    // FullTimeInstructor

    #include "FllTmnst.h"

    //## begin module.additionalDeclarations preserve=yes

    //## end module.additionalDeclarations

    // Class FullTimeInstructor

    FullTimeInstructor::FullTimeInstructor()

    //## begin FullTimeInstructor::FullTimeInstructor%.hasinit

    //## end FullTimeInstructor::FullTimeInstructor%.hasinit//## begin FullTimeInstructor::FullTimeInstructor%.initialization

    //## end FullTimeInstructor::FullTimeInstructor%.initialization

    {

    //## begin FullTimeInstructor::FullTimeInstructor%.body preserve=yes

    //## end FullTimeInstructor::FullTimeInstructor%.body

    }

    FullTimeInstructor::FullTimeInstructor(const FullTimeInstructor &right)

    //## begin FullTimeInstructor::FullTimeInstructor%copy.hasinit

    //## end FullTimeInstructor::FullTimeInstructor%copy.hasinit

    //## begin FullTimeInstructor::FullTimeInstructor%copy.initialization

    //## end FullTimeInstructor::FullTimeInstructor%copy.initialization

    { //## begin FullTimeInstructor::FullTimeInstructor%copy.body preserve=yes

    //## end FullTimeInstructor::FullTimeInstructor%copy.body

    }

  • 7/27/2019 OO Methodology 101

    11/25Ver. 1.0 Page - 11Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Tools Are Not SmartSo We Have to Be

  • 7/27/2019 OO Methodology 101

    12/25Ver. 1.0 Page - 12Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    What to Look Forin a Methodology

  • 7/27/2019 OO Methodology 101

    13/25Ver. 1.0 Page - 13Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.* Adapted from: Grady, B., Object Solutions.

    Process*Predictability vs. Creativity

    Management needs predictability, Essential for

    Team organization andassignments Incremental build plans Risk mitigation Proactive management

    Development team thrives oncreativity Essential for creation of solutions

    Innovative Unique

    Problem - Need to establish abalance between these two extremesAnswer - Distinguish the macro/microelements of the development process

    Macro Development Process Micro Development Process

  • 7/27/2019 OO Methodology 101

    14/25Ver. 1.0 Page - 14Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Macro Development ProcessOverview

    Overall concern is planning Three key elements

    Continuous integration Executable releases that grow infunctionality Releases enable management to measureprogress and actively identify risks andmitigate them

    Macro process Represents the project managers needs Controlling framework for the microprocess Time frame measured in weeks/months

    AnalysisAnalysisAnalysis

    Conceptual-

    ization

    ConceptualConceptual--izationization Design

    DesignDesign

    MaintenanceMaintenanceMaintenance

    EvolutionEvolutionEvolution

    Project managers can only control things they can see

  • 7/27/2019 OO Methodology 101

    15/25Ver. 1.0 Page - 15Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Micro Development ProcessOverview

    Class

    Discovery

    ClassClass

    DiscoveryDiscovery

    Class

    Implementation

    ClassClass

    ImplementationImplementation Responsibility

    Distribution

    ResponsibilityResponsibility

    DistributionDistribution

    Relationship

    Discovery

    RelationshipRelationship

    DiscoveryDiscovery

    Agenda Select the correct abstractions Determine proper distribution of responsibility Create a set of of mechanisms that regulatethese abstractions (e.g., semantic dependencies) Concretely represent these abstractions andmechanisms

    Micro process Represents the development teams needs Carries on throughout the macro process, buteach iteration has a different emphasisdepending upon the projects current macroprocess Time frame measured in weeks/days

  • 7/27/2019 OO Methodology 101

    16/25Ver. 1.0 Page - 16Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    What Can I Expecton My First OO Project?

    Lessons Learned Project management

    Duration Staffing Reuse strategy Project estimating

    Analysis and design Technology

    How does and OO Methodology Help?

  • 7/27/2019 OO Methodology 101

    17/25Ver. 1.0 Page - 17Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Lessons LearnedProject Management - Duration

    First project Will take longer than usingyour traditional approach Mostly learning curve Little or no reuse

    Second project Will take longer than usingyour traditional approach Learning curve still exists fordesign and architecture Maybe some reuse

    Third project (payback)*Duration of a project is approximately 6 months

  • 7/27/2019 OO Methodology 101

    18/25Ver. 1.0 Page - 18Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Lessons LearnedProject Management - Staffing

    Few skilled and experienced staff Options

    Hire an experienced staff Subcontract Mentor

    Strip mining vs. investment On the job learning doesnt work

    Grow your experts Realize everyone will not becapable of making the paradigmshift to OO

  • 7/27/2019 OO Methodology 101

    19/25Ver. 1.0 Page - 19Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Lessons LearnedProject Management - Reuse Strategy

    Incorrect belief that reuse is guaranteedbecause we are object-oriented Must plan for reuse Takes time and money

    Need Specific procedures Dedicated resources Investment in re-use

    Diligently select candidate classes tomake reusable Every class does not have to be reusable More reuse is not always better Examine cost/benefit trade-offs

    CorporateCorporate

    DivisionDivision

    ProjectProject

  • 7/27/2019 OO Methodology 101

    20/25Ver. 1.0 Page - 20Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Lessons LearnedProject Management - Estimating

    Original estimates were based uponClassic development approach Few object technology projects as

    models Had to learn by experience Rework necessary but valuable

    Project plans need to include time for Prototypes and evaluations Walk-throughs and inspections

  • 7/27/2019 OO Methodology 101

    21/25Ver. 1.0 Page - 21Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Lessons LearnedAnalysis and Design - 1

    Be aware of creating object-freeapplications Seduction by the dark side of OO

    Empower a chief architect or architectureteam Illusion of rapid progress duringdevelopment

    Essentially the Universal Studio Effect Do not underestimate analysis and design

    Need Difficulty

  • 7/27/2019 OO Methodology 101

    22/25Ver. 1.0 Page - 22Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Lessons LearnedAnalysis and Design - 2*

    0

    10

    20

    30

    40

    50

    60

    70

    80

    90

    100

    Percetage ofDevelopment

    Effort

    Analysis/Des ign Coding/Unit Testing Integration, System and

    Acceptance Tes ting

    Pre-Objects

    With Objects

    * Source: Gartner Group

    Development Life Cycle

  • 7/27/2019 OO Methodology 101

    23/25Ver. 1.0 Page - 23Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    Lessons LearnedTechnology - Maturity?

    Individual technologies have matured but new technologiescontinue to develop and gain mindshare For example,

    Internet/intranet applications Object Request Brokers (ORBs) Object-oriented databases

    Major risk - vendors failed to deliver products on time Software Development Environment

    Must be managed Upgrades frequent Upgrades not 100 compatible with earlier versions

  • 7/27/2019 OO Methodology 101

    24/25

    Ver. 1.0 Page - 24Copyright 1995 2005 by Nazzaro & Associates. All Rights Reserved.

    In SummaryFive Guidelines for Success

    Organization must understandtheir problem Upper managementcommitment

    Stand by the project Accurate expectations

    Select/implement amethodology

    Must be able to answer the question -Why are we transitioning to OO?

    Effective education/mentoring Multiple levels of education Front-end lifecycle education

    Requirements

    Analysis Design

    Language education Testing

    Select a pilot project and setaccurate expectations

  • 7/27/2019 OO Methodology 101

    25/25

    Presented by:

    E-Mail - [email protected] - (610) 831-1151

    William F. Nazzaro

    Nazzaro & Associates

    Object-Oriented

    Methodology 101