Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.

Slides:



Advertisements
Similar presentations
OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 3: Requirements Overview Module 3 - Requirements Overview.
Advertisements

Prescriptive Process models
Software Project Management
CS487 Software Engineering Omar Aldawud
1 IBM Software Group ® PRJ270: Essentials of Rational Unified Process Module 1: Best Practices of Software Engineering.
Mastering Object-Oriented Analysis and Design with UML Module 1: Best Practices of Software Engineering Mastering Object-Oriented Analysis and Design with.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
PRJ270: Essentials of Rational Unified Process
Rational Unified Process
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
SE470 - Rational Unified Process Overview
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering.
Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 1 Best Practices of Software Engineering.
Principles of Object Technology Module 1: Principles of Modeling.
RUP Requirements RUP Artifacts and Deliverables
UML - Development Process 1 Software Development Process Using UML (2)
Rational Unified Process
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Rational Unified Process Fundamentals Module 4: Disciplines II.
Software Development Best Practices
Identify steps for understanding and solving the
MCS 270 Spring 2014 Object-Oriented Software Development.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Requirements Artifacts Precursor to A & D. Objectives: Requirements Overview  Understand the basic Requirements concepts and how they affect Analysis.
Lecture 7: Requirements Engineering
1 SEG4910 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Review of Analysis and Iterative Development Timothy C. Lethbridge.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Requirements Overview.
Software Process Or how to make strength productive Tools Requirements Management Visual Modeling Test coverage and metrics Change Management Requirements.
Rational Unified Process Fundamentals Module 3: Disciplines I.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Team Skill 6: Building the Right System Assessing Requirements Quality (29)
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Introduction to UML Todd Bacastow Rational Unified Process A process for the effective implementation of key “Best Practices” Control Changes Manage.
Prof. Hany H. Ammar, CSEE, WVU, and
Rational Unified Process Fundamentals Module 3: Core Workflows I - Concepts Rational Unified Process Fundamentals Module 3: Core Workflows I - Concepts.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
UML - Development Process 1 Software Development Process Using UML.
An Agile Requirements Approach 1. Step 1: Get Organized  Meet with your team and agree on the basic software processes you will employ.  Decide how.
Unified Software Practices v5.5 Copyright © Rational Software, all rights reserved 1 Module 1: The Six Best Practices of Modern Software Engineering.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.
Requirement Discipline Spring 2006/1385 Semester 1.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
26 Software Engineering and Best Practices Sources: Various. Rational Software Corporation slides, OOSE textbook slides, Per Kroll talk, How to Fail with.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
 System Requirement Specification and System Planning.
Your Prescription for Requirements Management 1. Assumptions The prescription for requirements management is based on the following assumptions:  The.
Rational Unified Process
Software Development Process Using UML Recap
Presentation transcript:

Mastering OOA/OOD with UML

Contents Introduction Requirements Overview OOAOOD

Introduction Software development problems Six best practices

Introduction Tools Rational Object-oriented Software Engineering (ROSE) Rational Object-oriented Software Engineering (ROSE)Language Don’t care Don’t care Basic Requirement Coding in one or more OO Language Coding in one or more OO Language

Symptoms of Software Development Problems User or business needs not met Requirements not addressed Modules not integrating Difficulties with maintenance Late discovery of flaws Poor quality of end-user experience Poor performance under load No coordinated team effort Build-and-release issues

Trace Symptoms to Root Causes Symptoms Needs not met Requirement churn Modules do not fit Hard to maintain Late discovery Poor quality Poor performance Colliding developers Build-and-release Root Causes Insufficient requirements Ambiguous communications Brittle architectures Overwhelming complexity Undetected inconsistencies Poor testing Subjective assessment Waterfall development Uncontrolled change Insufficient automation Best Practices Develop Iteratively Manage Requirement Use Component Architectures Model Visually Continuously Verify Quality Manage Change

Iterative Development Benefits Resolve major risks early Resolve major risks early Enable user feedback Enable user feedback Make testing and integration continuous Make testing and integration continuous Focus on project short-term objective milestones Focus on project short-term objective milestones Make possible deployment of partial implementations Make possible deployment of partial implementations

Requirements Management Making sure you Solve the right problem Solve the right problem Build the right system Build the right system By taking a systematic approach to Eliciting Eliciting Organizing Organizing Documenting Documenting Managing Managing the changing requirements of a software application

Aspects of Requirement Management Analyze the problem Understand User Needs Define the system Manage scope Refine the system definition Manage changing requirement

Component-Based Architecture Resilient Meets current and future requirements Meets current and future requirements Improves extensibility Improves extensibility Enables reuse Enables reuse Encapsulates system dependencies Encapsulates system dependenciesComponent-based Reuse or customize components Reuse or customize components Select from commercially available components Select from commercially available components Evolve existing software incrementally Evolve existing software incrementally

Use UML Captures structure and behavior Shows how system elements fit together Keeps design and implementation consistent Hides or exposes details as appropriate Promotes unambiguous communication UML provides on language for all practitioners UML provides on language for all practitioners

Continuously Verify Quality Testing dimensions Usability Usability Reliability Reliability Performance Performance Supportability Supportability Functionality Functionality Test at each iteration of software development

Manage Change Control how and when changes are introduced into the project

Lifecycle Phases Inception-define system scope Elaboration-plan project, specify features and baseline architecture Construction-build the product Transition-transition the product into end- user community

Requirements Overview Use-Case Model

Purpose Establish and maintain agreement with the customers and other stakeholders on what system should do Give system developers a better understanding of the Requirement of the system define the system boundary Provide a basis for planning the technical contents of the iteration Provide a basis for estimating cost and time to develop the system Define a user interface of the system

Use-Case Modeling Use-Case Model define all functional requirements of a system What system does What system does How system does How system does Glossary defines common terminology Supplementary Specification defines non- functional requirements of a system

Use-Case Modeling Actor represents anything (users, devices, other systems) that interacts with the system Client actor Client actor Supplier actor Supplier actor Use-case is a sequence of actions a system performs that yields an observable result of value to a particular actor

Use-Case Specifications Name Brief description Flow of events Basic flow Basic flow Alternative flow Alternative flow Special requirements Use-Case diagram Activity diagrams

Supplementary Specifications FunctionalityUsabilityReliabilityPerformanceSupportability Design Constraints

Use-Case Classification Type A most difficult 20% of all use-case 20% of all use-case Type B 60% of all use-case 60% of all use-case Type C 20% of all use-case 20% of all use-case

Works in Each Iteration It#1Requirements, Use-Case model Basic flow of all use-case Basic flow of all use-case Alternative flow Alternative flow It#2—Elaboration phase OOA->OOD->Prototype->Unit testing OOA->OOD->Prototype->Unit testing Alternative flow Alternative flowIt#3 OOA->OOD->Prototype->Unit testing OOA->OOD->Prototype->Unit testing Alternative flow Alternative flow

Works in Each Iteration It#4—Implementation phase OOA->OOD->Prototype->Unit testing OOA->OOD->Prototype->Unit testing Imp->Integration testing (I.T.)  Alpha (Biz component) Imp->Integration testing (I.T.)  Alpha (Biz component)It#5 Imp->I.T.  Gamma (Biz component) Imp->I.T.  Gamma (Biz component)It#6 Beta (UI layout) Beta (UI layout)It#7 Version 1.00 Version 1.00

Analysis & Design

Analysis VS Design Analysis Focus on understanding the problem Focus on understanding the problem Idealized design Idealized design Behavior Behavior System structure System structure Functional requirements Functional requirementsDesign Focus on understanding the solution Operations and attributes Performance Close to real code Object lifecycles Nonfunctional requirements