Session 2 UML & Development Methodologies Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
CHAPTER TWO Object Oriented System Analysis and Design 1.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Alternate Software Development Methodologies
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
PRJ270: Essentials of Rational Unified Process
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Iterative development and The Unified process
COMP 350: Object Oriented Analysis and Design Lecture 2
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
An Agile View of Process
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Principles of Object Technology Module 1: Principles of Modeling.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
Software Development Process
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Agile Programming Principles.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Current Trends in Systems Develpment
Object Oriented Analysis and Design Introduction.
Session 12 Applying the Class Diagram to the Case Study Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 12, 2011 Presented by Hyewon.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
MCS 270 Spring 2014 Object-Oriented Software Development.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
XP – Extreme Programming
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Structural Modeling. Objectives O Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. O Understand.
1 Introduction to Software Engineering Lecture 1.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
1 UML Distilled 3e by Martin Fowler Chapter 1 Introduction to UML.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
1 Introduction to UML. 2 What is UML? UML is an acronym for Unified Modeling Language. Unified –Combines the best from existing object- oriented software.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
The Rational Unified Process 1 EECS810: Software Engineering.
CRC & Class Diagram SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Session 3 How to Approach the UML Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Object Oriented Analysis & Design By Rashid Mahmood.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Development - Methodologies
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Unified Process Source & Courtesy: Jing Zou.
Seminar 1 Design of Informatics Systems
Introduction to Software Engineering
What do you need to know about XP?
Teaching slides Chapter 1.
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Session 2 UML & Development Methodologies Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee

Contents  Some Current Methodologies  The Rational Unified Process  Shlaer-Mellor Method  CRC  Extreme Programming 2

Some Current Methodologies (1/2)  A methodology consists of a process, a vocabulary, and a set of rules and guidelines  The part of all methodologies that can be standardized is the vocabulary –Often expressed in a notation –The UML standard is a common notation that may be applied to many different types of software projects using very different methodologies  One of the challenges inherent in defining a methodology is that it is difficult to define a single process that works for all projects  Even though the UML standardizes the notations gathered from a number of methodologies, the processes used to apply the UML notation are still as diverse as the environments in which they are used 3

Some Current Methodologies (2/2) 4  A brief summary of four of the current methodologies  They represent the diversity of the current set of methodologies  This should give a fair idea of the opportunities available to you and the factors that may influence your choices MethodologyDescription RUP Works well in large projects where quality artifacts and communication are critical Shlaer-Melor Method Developed primarily to address the unique needs of real-time systems long before the UML existed, but has since adopted the UML notation CRC Designed as a tool to help people gain an understanding of objects and how they work Extreme Programming Tries to reduce many of the existing development practices to the bare essentials, attempting to optimize the relationship between developers and clients

Contents  Some Current Methodologies  The Rational Unified Process  Shlaer-Mellor Method  CRC  Extreme Programming 5

The Rational Unified Process (1/4)  RUP is the latest version of a series of methodologies resulting from a blending of methodologies –Objectory Process, Rational Approach, Rational Objectory Process, and the Unified Software Development Process  The hallmarks of RUP are the two terms incremental and iterative –The goal of the methodology is to deliver an executable release of a product, an increment of the product for every pass, or iteration, through the process –The motivation is to keep delivery times short and deliveries frequent  prevents the historical problem of projects that run for months or even years before they actually produce anything  supports early review and early problem detection 6

The Rational Unified Process (2/4) 7  The process is built around the two concepts of project lifecycle phases and process workflow

The Rational Unified Process (3/4) 8  Strengths –The emphasis on iterative development and incremental deliveries is a time-tested and valuable approach that prevents many common project problems  However, this approach is common to most of the current methodologies –The process is well defined and supported by the Rational modeling tool –The artifacts and the roles of the project participants are also very well defined –The process combines many of the best practices from many successful methodologies –The process is comprehensive

The Rational Unified Process (4/4) 9  Weaknesses –In trying to be comprehensive, the RUP becomes very large and difficult, both to learn and to manage  It is easy to get so caught up in the rules for using the RUP that you forget why you are using it (to deliver software) –A substantial amount of time is spent trying to customize the RUP for each project  You run the risk of becoming a slave to the process and losing sight of the reason for the process –Tool support for the process is limited to Rational’s own products, which are at the high end of the cost range  A few other vendors are now starting to provide limited support

Contents  Some Current Methodologies  The Rational Unified Process  Shlaer-Mellor Method  CRC  Extreme Programming 10

Shlaer-Mellor Method (1/4)  The Shlaer-Mellor Method is based on –An integrated set of models that can be executed for verification –An innovative approach to design that produces a system design through a translation of the analysis models  The method is built on a set of well-defined rules for –The construction of the diagrams –The translation of those diagrams from analysis to design and finally to implementation  Domains –One of the primary concepts in Shlaer-Mellor –A domain is a subject area –Three basic types  The application domain, the service domains, and the architectural domain –Each domain has its own unique types of requirements and diagrams –Together they represent the entire specification for the system 11

Shlaer-Mellor Method (2/4)  Shlaer-Mellor process –1. Partition the system into domains –2. Analyze the application domain using object information models, state models, and action specifications (action data flow diagrams—a non-UML diagram) –3. Confirm the analysis through static verification and dynamic verification (simulation) –4. Extract the requirements for the service domains –5. Analyze the service domains –6. Specify the components of the architectural domain –7. Build the architectural components –8. Translate the models of each domain using the architectural components 12

Shlaer-Mellor Method (3/4)  Strengths –The greatest strength is the ability to test your diagrams through simulation  You actually execute your diagrams –The process is extremely well defined in terms of rules that govern the construction and testing of the diagrams –The movement from one step in the process to the next (e.g., from analysis level diagrams to design-level diagrams) is also defined with enough precision to allow the generation of design diagrams directly from the analysis diagrams  This is a huge time saver and prevents mistakes in the translation  It also speeds up the process of applying changes because they can be propagated through the diagrams automatically –The method was developed for and maintains a strong emphasis on real-time systems design  It provides support that is largely lacking in other methodologies that gloss over the unique demands of real time in favor of the more common business functionality 13

Shlaer-Mellor Method (4/4)  Weaknesses –Like the RUP, the tool support is limited to vendors directly associated with the methodologists  This is changing, but don’t expect it to be quick –Learning the rules involves a definite learning curve and a serious investment of time and effort  Steve Mellor is currently leading an enhancement to the UML (called Action Semantics) to improve the definition of Statechart diagrams and build much of this knowledge into the UML 1.5 standard  Tool support for this enhancement should soon follow –The methodology was developed for real-time systems, so it places heavy emphasis on state modeling  Many business applications simply do not warrant a lot of work on state transitions 14

Contents  Some Current Methodologies  The Rational Unified Process  Shlaer-Mellor Method  CRC  Extreme Programming 15

CRC (1/5)  CRC stands for Class, Responsibilities, and Collaborators  The CRC was originally developed as a learning tool during the time when object-oriented programming was new –A lot of procedural programmers needed help making the transition to OO thinking –The goal was to provide the simplest possible conceptual introduction to OO modeling  The heart of the method is the CRC card –A CRC card is a 3-x-5" or 4-x-6" lined index card –The physical nature of the cards emphasizes the division of responsibility across objects –The physical size of the cards also helps to establish limits for the size and complexity of the classes –Used to discover information about classes that is then placed into a UML Class diagram 16

CRC (2/5) 17  A sample blank CRC card

CRC (3/5) 18  The CRC process requires a team that includes people in two distinct roles –Domain expert and OO technology facilitator  The CRC process centers on working through scenarios –1. Before the Scenario Execution  a. The Problem  b. Brainstorming for Classes  c. Filtering Classes  d. Assigning Cards –2. The Scenario Execution  a. The team walks through the scenario identifying the responsibilities of each class in the scenario  b. Each discovered responsibility is recorded on the card of the corresponding class –3. During the Scenario Execution  a. Grouping the Cards  b. Scenario List  c. Collaboration Drawings –4. After the Scenario Execution  a. The team reviews the resulting model and plans the implementation

CRC (4/5) 19  Strengths –The simplicity of the method has remained a major selling point  Still a valuable tool for helping a programmer transition from procedural to OO concepts –It is extremely easy to use and very visual  Difficult for any participant to claim he didn’t know exactly what was going on –The technique is very responsibility-driven  It keeps the participants focused on the value of an object based on what that object contributes to the proper operation of the system  The result is a system with the minimum number of objects needed to make it work –The technique helps the participants think like objects and to understand why objects work well or work poorly  This understanding helps ensure a good design

CRC (5/5) 20  Weaknesses –The most significant limitation is also its simplicity  It only really addresses the problem of finding and modeling classes  There is a lot more to complete systems development  So the bulk of the work still rests on the programmers –The success of the process is very dependent upon the participants and especially on the facilitator  The simplicity can be very deceptive

Contents  Some Current Methodologies  The Rational Unified Process  Shlaer-Mellor Method  CRC  Extreme Programming 21

Extreme Programming (1/3)  Extreme Programming (XP) shocked a lot of people, including myself, when it first showed up  Originated by Kent Beck, who was also instrumental in the CRC method  XP does not advocate the UML  XP requires a complete and unwavering commitment from the clients to work side-by-side with the programmers –Working through stories or scenarios of how the system should work  “The code is everything” –There is a very heavy emphasis on coding standards and design principles –There is very little use of up-front modeling –XP does use the CRC method because of its simplicity and utility –XP could be seen as bottom-up design 22

Extreme Programming (2/3) 23  Strengths –XP is the first that truly cared about the programming environment and its affects on the participants –XP encourages an extremely close relationship between clients and developers –XP faces the fact that change is inevitable and often uncontrollable and builds that fact into the development approach –Kent Beck has been brave enough to describe what it really takes to create a high-caliber development environment  Instead of bowing to the status quo of impossible deadlines, inadequate user involvement, ill-defined requirements, and programmer isolation

Extreme Programming (3/3) 24  Weaknesses –XP relies heavily on setting up the ideal development environment –It starts from several questionable assumptions:  Highly committed clients will spend huge amounts of time working side by side with programmers  Programmers work extremely well together  Experienced programmers work with new team members to maintain the system  Design is a skill that is common to every coder

The End