Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.

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

CS487 Software Engineering Omar Aldawud
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Ch 3 System Development Environment
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
SYSC System Analysis and Design
PRJ270: Essentials of 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.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
Object-oriented Analysis and Design
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Iterative development and The Unified process
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
CHAPTER 17 Building Software to Support an Agile Organization
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
© 2005 Prentice Hall2-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Curtis H.K. Tsang, Clarence S.W. Lau and Y.K. Leung
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Software Development Process
Chapter 2: Approaches to System Development
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
UML - Development Process 1 Software Development Process Using UML (2)
Chapter 6 View Alignment Techniques and Method Customization (Part II)
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.
Copyright by Dr. Clarence Lau, IVE(TY)
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
Transforming Organizations
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Software Process Models.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
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 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
© Bennett, McRobb and Farmer 2005
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
2 Systems Analysis – ITEC 3155 Systems Analysis Tasks.
Software Process Models.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Development Process Based on Chapter 5 Bennett, McRobb and Farmer
TK2023 Object-Oriented Software Engineering
Object-oriented Analysis and Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Unified Process Source & Courtesy: Jing Zou.
UNIFIED PROCESS.
COMP 350: Object Oriented Analysis and Design Lecture 2
Object Oriented Analysis and Design
Introduction to UML.
Software engineering -1
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Presentation transcript:

Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis H.K. Tsang, Clarence S.W. Lau and Y.K. Leung McGraw-Hill Education (Asia), 2005 Dr. Hussein Al-Zoubi

2 Objectives After you have read this chapter, you should be able to Appreciate the benefits of using a method for software development. Understand the limitations of current software development methods. Understand the framework of View Alignment Techniques. Apply the View Alignment Techniques to customize and create a method. Use the Activity Analysis Approach effectively for developing workflow-oriented and activity intensive software systems.

3 What Is Software Development Method? A software development method consists of a complete set of activities needed to transform users’ requirements into a consistent set of artifacts that represent a software product. Typically, a software development method specifies a series of stages that encompass requirements gathering, design, development, testing, delivery, maintenance and enhancement of a system, and helps the developer build software systems in a reliable and consistent way. In general, software development methods allow the building of models from model elements that constitute the fundamental concepts for representing systems or phenomena.

4 Components of Software Development Methods (cont’d) Representation. A set of recommended representation (notation), e.g., the Unified Modeling Language (UML)) consisting of one or more forms of a notation that can be used to model both the structure of the initial problem (requirements) and the intended solution, using one or more viewpoints (models) and different levels of abstraction. Process. It provides a framework from which a comprehensive plan for software development should be established. This development plan consists of a specific ordered set of tasks aimed at producing software solutions, e.g. Unified Process.

5 Components of Software Development Methods (cont’d) Techniques. They are heuristics, guidelines and procedures that help designers develop the software development plan for their project. In other words, they help customize the process framework for the system being developed, such as defining the order of tasks to be carried out within the process, selecting the models and their perspective to be focused at the optimum level of abstraction.

6 Components of Software Development Methods A software development method primarily comprises three components: a process, a representation system or a modeling notation, and techniques, heuristics, steps or procedures

7 Why Traditional Software Methods Didn’t Work Miracles? There is no universal method that can be readily applied to all problems in any circumstances without the need for customization. Demarco points out that to ensure success the project team should tailor the method to needs of the individual project rather than attempt force-fitting the project into the Methodology. Spolsky’s story

8 Hurdles in Applying the Object-oriented Approach The UML provides an extremely rich set of notations for representing systems. Booch suggests that 80% of software projects use only about 20% of the UML notation. To the designer, it would be rather difficult to decide which subset of UML notation should be used for the project at hand.

9 Hurdles in Applying the Object- oriented Approach (cont’d)

10 Hurdles in Applying the Object- oriented Approach (cont’d) Designers are often confronted with many questions throughout the development life cycle, and the following are some typical ones: What models are required to represent the system? How do I apply the selected models to perform the development work? Which model should I use first, and which model(s) should follow next? How can I ensure that the models of the system are consistent?

11 Current Object-oriented Development Approaches The Unified Modeling Language is now the de facto standard graphical language for representing systems in the software industry. The Unified Process is a widely used software development process. In the Unified Process, a system is built incrementally through a number of iterations in which the designer may perform requirements capturing, analysis, design, implementation and testing tasks.

12 Unified Process The iterations are divided into four phases: inception, elaboration, construction and transition

13 Unified Process (cont’d) Each phase has a different focus: Inception Phase. This phase focuses on establishing the business case, defining the scope of the system and estimating the amount of resources including time required to complete the project. Elaboration Phase. In this phase, the core architecture of the system is developed incrementally. Risks are resolved according to priorities, and the scope of the system is refined. Construction Phase. In this phase, low risk elements of the system are implemented and tested incrementally. The system is prepared for deployment. Transition Phase. Beta release of the system is deployed to the end users. Bug fixes and other tasks such as refining the system are performed.

14 Unified Process (cont’d) The work activities of the Unified Process in the same subject area are categorized as a workflow (some authors call it a discipline).

15 Techniques As mentioned earlier, the techniques part is the most difficult component of the entire software development method. Jacobson considers that teamwork should be the thing that glues the representation and process components together but offers very little details on how we can customize or create a method to solve our problem. Nonetheless, he does provide some hints on which model(s) should be used in each workflow. Each of these models associated with a workflow is elaborated by a sub-figure indicating the types of diagrams likely to be used.

16 Techniques (cont’d)

17 Techniques (cont’d)

18 Techniques (cont’d)

19 Techniques (cont’d)

20 Techniques (cont’d) Despite these hints, little clue is provided on the selection of the right model (UML diagram) to start with and the order in which these models (UML diagrams) should be developed. Still don’t know how to develop the required UML models.

21 Traceability and Models Consistency Another frequently asked question in developing models is “how do we ensure the models we have created are consistent?” > is one of the often used stereotypes in Rambaugh, Booch and Jacobson’s publication entitled The Unified Software Development Process. Jacobson emphasizes many times in this book on the traceability between a model and its subsequent realization models, but there is little hint as to how we can actually ensure traceability among the models.

22 Traceability and Models Consistency (cont’d)

23 Need for Method Customization There is no universally applicable design method. There are many different factors that would affect our design decisions: the competence and skill levels and the prior experience of the software development team different application domains also require different focuses or impose special constraints lifecycle factors: time to market, expected life span, planned future releases technological factors: programming languages, development tools, databases, middleware, communication, distribution, etc.