Object-Oriented Methodology 101

Similar documents
PROCESS USE CASES: USE CASES IDENTIFICATION

The open source development model has unique characteristics that make it in some

The Seven Habits of Effective Iterative Development

Get with the Channel Partner Program

Software Maintenance

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

Software Development Plan

PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

Implementing a tool to Support KAOS-Beta Process Model Using EPF

Strategy and Design of ICT Services

Generating Test Cases From Use Cases

What is PDE? Research Report. Paul Nichols

new research in learning and working

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

Customised Software Tools for Quality Measurement Application of Open Source Software in Education

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

AUTHORING E-LEARNING CONTENT TRENDS AND SOLUTIONS

An Open Framework for Integrated Qualification Management Portals

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

Introducing New IT Project Management Practices - a Case Study

Expert Reference Series of White Papers. Mastering Problem Management

Deploying Agile Practices in Organizations: A Case Study

A process by any other name

What is Teaching? JOHN A. LOTT Professor Emeritus in Pathology College of Medicine

STEPS TO EFFECTIVE ADVOCACY

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

Specification of the Verity Learning Companion and Self-Assessment Tool

Teaching Architecture Metamodel-First

MASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE

A Study of the Effectiveness of Using PER-Based Reforms in a Summer Setting

Experiences Using Defect Checklists in Software Engineering Education

A Pipelined Approach for Iterative Software Process Model

SELF-STUDY QUESTIONNAIRE FOR REVIEW of the COMPUTER SCIENCE PROGRAM

Managing OO Projects Better

LIBRARY AND RECORDS AND ARCHIVES SERVICES STRATEGIC PLAN 2016 to 2020

What to Do When Conflict Happens

Using Virtual Manipulatives to Support Teaching and Learning Mathematics

Mathematics Program Assessment Plan

Ministry of Education, Republic of Palau Executive Summary

What is a Mental Model?

Introduction to Modeling and Simulation. Conceptual Modeling. OSMAN BALCI Professor

Major Milestones, Team Activities, and Individual Deliverables

Corporate learning: Blurring boundaries and breaking barriers

Notes on The Sciences of the Artificial Adapted from a shorter document written for course (Deciding What to Design) 1

Beyond the Blend: Optimizing the Use of your Learning Technologies. Bryan Chapman, Chapman Alliance

PALO ALTO UNIFIED SCHOOL DISTRICT Date: Board of Education Goals for the Academic Year

DESIGN, DEVELOPMENT, AND VALIDATION OF LEARNING OBJECTS

have professional experience before graduating... The University of Texas at Austin Budget difficulties

Introduction to CRC Cards

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

École Jeannine Manuel Bedford Square, Bloomsbury, London WC1B 3DN

DICE - Final Report. Project Information Project Acronym DICE Project Title

Deciding What to Design: Closing a Gap in Software Engineering Education

GALICIAN TEACHERS PERCEPTIONS ON THE USABILITY AND USEFULNESS OF THE ODS PORTAL

PEDAGOGICAL LEARNING WALKS: MAKING THE THEORY; PRACTICE

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

H2020 Marie Skłodowska Curie Innovative Training Networks Informal guidelines for the Mid-Term Meeting

Please find below a summary of why we feel Blackboard remains the best long term solution for the Lowell campus:

Being Extreme in the Classroom: Experiences Teaching XP

Document number: 2013/ Programs Committee 6/2014 (July) Agenda Item 42.0 Bachelor of Engineering with Honours in Software Engineering

CREATING SHARABLE LEARNING OBJECTS FROM EXISTING DIGITAL COURSE CONTENT

Chamilo 2.0: A Second Generation Open Source E-learning and Collaboration Platform

Director, Intelligent Mobility Design Centre

Measurement & Analysis in the Real World

Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques

Fundraising 101 Introduction to Autism Speaks. An Orientation for New Hires

WE GAVE A LAWYER BASIC MATH SKILLS, AND YOU WON T BELIEVE WHAT HAPPENED NEXT

Accelerated Learning Course Outline

Chapter 7 Information and Communications Technology: Platforms for Learning and Teaching

Assessment. the international training and education center on hiv. Continued on page 4

Shared Mental Models

NORTH CAROLINA STATE BOARD OF EDUCATION Policy Manual

San Francisco County Weekly Wages

ADAPTIVE PLANNING. 1 Powered by POeT Solvers Limited

An OO Framework for building Intelligence and Learning properties in Software Agents

Scientific information management policies and information literacy schemes in Greek higher education institutions and libraries

Banal Creativity and Unique Creation What is Learning in a Learning Intensive Society? Riel Miller. Future of Learning Glasgow, June 25, 2005

Software Engineering Education at Carnegie Mellon University: One University; Programs Taught in Two Places

Positive Learning Environment

Getting Started with Deliberate Practice

THE DoD HIGH LEVEL ARCHITECTURE: AN UPDATE 1

Nearing Completion of Prototype 1: Discovery

Accelerated Learning Online. Course Outline

Evaluating Usability in Learning Management System Moodle

CERTIFIED PROJECT MANAGEMENT SPECIALIST (CPMS) STUDY GUIDE

What Teachers Are Saying

SAP EDUCATION SAMPLE QUESTIONS: C_TPLM40_65. Questions. In the audit structure, what can link an audit and a quality notification?

D.10.7 Dissemination Conference - Conference Minutes

Change Mastery. The Persuasion Paradigm

Grade 2: Using a Number Line to Order and Compare Numbers Place Value Horizontal Content Strand

Problem and Design Spaces during Object-Oriented Design: An Exploratory Study

Online Marking of Essay-type Assignments

Evaluation of Systems Engineering Methods, Processes and Tools on Department of Defense and Intelligence Community Programs - Phase II

Education the telstra BLuEPRint

Knowledge-Based - Systems

STUDENT EXPERIENCE a focus group guide

Foundations of Knowledge Representation in Cyc

An Industrial Technologist s Core Knowledge: Web-based Strategy for Defining Our Discipline

prehending general textbooks, but are unable to compensate these problems on the micro level in comprehending mathematical texts.

Patterns for Adaptive Web-based Educational Systems

Transcription:

Object-Oriented Methodology 0 Presented by: William F. Nazzaro Nazzaro & Associates E-Mail - bill@williamnazzaro.com Phone - (60) 83-5

Object-Oriented Methodology 0 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 Ver..0 Page - 2

What to Expect Object-orientation s first impact at your company Can be a tremendous success, or A complete blunder Need awareness of this technology's Power Impact Shortcomings Potential Ver..0 Page - 3

Benefits of Object-Orientation Faster development Reduced cost Reuse It s not magical! Higher quality systems Improved architecture More adaptable More scalable Benefits come from careful analysis, design, and development practices that exploit the OO paradigm! Ver..0 Page - 4

Methodology The Quintessential Linchpin!!!

Methodology A specification of a process through which software can be developed A set of generic software development techniques together with a set of guidelines defining how and when those techniques should be applied Though there is madness, there is a method in t. - Hamlet, William Shakespeare Ver..0 Page - 6

What Should an OO 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 Ver..0 Page - 7

What Should an OO 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 Ver..0 Page - 8

A Methodology Misconceptions Person College offers 0..* Degree 0..* Track pre-reqs 0..* requires Notation is not methodology Unified Modeling Language (UML) Object Modeling Technique (OMT) Booch controls employs Instructor..*..* Student 0..* teaches advise FullTimeInstructor AdjunctInstructor registers for Location 0..*..* Course 0..* 0..* holds offers 0..* 0..* CourseOffering 0..* fills seat in 0..* CourseEnrollment 0..* Person College offers Degree Track pre-reqs requires + employs controls Location Course Student Instructor + + holds offers Person College offers 0..n controls employs Student Instructor..n..n 0..n teaches advise Adjunct FullTime Instructor Instructor Degree Track 0..n 0..n requires pre-reqs 0..n..n Course Location 0..n 0..n holds offers 0..n 0..n Course Offering 0..n fills seat in 0..n advise AdjunctInstructor FullTimeInstructor registers for teaches CourseOffering fills seat in CourseEnrollment registers for Course Enrollment 0..n Ver..0 Page - 9

Methodology Misconceptions 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 } Ver..0 Page - 0

Tools Are Not Smart So We Have to Be Ver..0 Page -

What to Look For in a Methodology Ver..0 Page - 2

Process * Predictability vs. Creativity Management needs predictability, Essential for» Team organization and assignments» Incremental build plans» Risk mitigation» Proactive management Development team thrives on creativity Essential for creation of solutions» Innovative» Unique Problem - Need to establish a balance between these two extremes Answer - Distinguish the macro/micro elements of the development process Macro Development Process Micro Development Process * Adapted from: Grady, B., Object Solutions. Ver..0 Page - 3

Macro Development Process Overview Overall concern is planning Three key elements Continuous integration Executable releases that grow in functionality Releases enable management to measure progress and actively identify risks and mitigate them Macro process Represents the project manager s needs Controlling framework for the micro process Time frame measured in weeks/months Conceptual- Conceptualization ization Maintenance Maintenance Analysis Analysis Evolution Evolution Design Design Project managers can only control things they can see Ver..0 Page - 4

Micro Development Process Overview Agenda Select the correct abstractions Determine proper distribution of responsibility Create a set of of mechanisms that regulate these abstractions (e.g., semantic dependencies) Concretely represent these abstractions and mechanisms Micro process Represents the development team s needs Carries on throughout the macro process, but each iteration has a different emphasis depending upon the project s current macro process Time frame measured in weeks/days Class Class Implementation Implementation Class Class Discovery Discovery Relationship Relationship Discovery Discovery Responsibility Responsibility Distribution Distribution Ver..0 Page - 5

What Can I Expect on My First OO Project? Lessons Learned Project management» Duration» Staffing» Reuse strategy» Project estimating Analysis and design Technology How does and OO Methodology Help? Ver..0 Page - 6

Lessons Learned Project Management - Duration First project Will take longer than using your traditional approach Mostly learning curve Little or no reuse Second project Will take longer than using your traditional approach Learning curve still exists for design and architecture Maybe some reuse Third project (payback) * Duration of a project is approximately 6 months Ver..0 Page - 7

Lessons Learned Project Management - Staffing Few skilled and experienced staff Options» Hire an experienced staff» Subcontract» Mentor Strip mining vs. investment On the job learning doesn t work Grow your experts Realize everyone will not be capable of making the paradigm shift to OO Ver..0 Page - 8

Lessons Learned Project Management - Reuse Strategy Corporate Division Project Incorrect belief that reuse is guaranteed because 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 to make reusable Every class does not have to be reusable More reuse is not always better Examine cost/benefit trade-offs Ver..0 Page - 9

Lessons Learned Project Management - Estimating Original estimates were based upon Classic 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 Ver..0 Page - 20

Lessons Learned Analysis and Design - Be aware of creating object-free applications Seduction by the dark side of OO Empower a chief architect or architecture team Illusion of rapid progress during development Essentially the Universal Studio Effect Do not underestimate analysis and design Need Difficulty Ver..0 Page - 2

Lessons Learned Analysis and Design - 2 * 00 90 80 Pre-Objects With Objects 70 Percetage of Development Effort 60 50 40 30 20 0 0 Analysis/Design Coding/Unit Testing Integration, System and Acceptance Testing Development Life Cycle * Source: Gartner Group Ver..0 Page - 22

Lessons Learned Technology - Maturity? Individual technologies have matured but new technologies continue 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 00% compatible with earlier versions Ver..0 Page - 23

In Summary Five Guidelines for Success Organization must understand their problem Upper management commitment Stand by the project Accurate expectations Select/implement a methodology Effective education/mentoring Multiple levels of education Front-end lifecycle education» Requirements» Analysis» Design Language education Testing Select a pilot project and set accurate expectations Must be able to answer the question - Why are we transitioning to OO? Ver..0 Page - 24

Object-Oriented Methodology 0 Presented by: William F. Nazzaro Nazzaro & Associates E-Mail - bill@williamnazzaro.com Phone - (60) 83-5