Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
Chapter: 3 Agile Development
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Agile Project Management with Scrum
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
Eva TrosborgSlide no.: 1Elaboration Iteration 2 Object Oriented design and more patterns Fall 2005 UML Tools and UML as Blueprint (chapter 22, p 397)
Agile Methods.
COMP 350: Object Oriented Analysis and Design Lecture 2
Agile Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
Does it work with Data Warehouses?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we.
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
DE (est) 2. -Joe Justice What does HR output? Exercise.
DE (est) 2. -Steve Denning -Joe Justice What do these groups output? Exercise.
How Agile Are You? Larry Apke Agile Expert
CONFIDENTIALITY © 2010 BA ValueBASE LLP, The concepts and methodologies contained herein are proprietary to BA ValueBASE LLP. Duplication, reproduction.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
Chapter 5 Agile Development Chapter 5 Agile Development Moonzoo Kim KAIST 1.
Agile Methods. Agile Process/Method lightweight processes/methods that can be used to manage and control software and product development using iterative,
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Project Workflow. How do you do it? -Discussion-
Chapter 5 애자일 개발 Agile Development
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
CS1: Classic Software Life Cycle “Waterfall” method: 1.Requirements/Analysis Determine the problem to be solved – client-centered 2.Specification.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
1 11/21/2015 ã 2007, Spencer Rugaber Agile Manifesto February, 2001 XP, SCRUM, DSDM, Adaptive Software Development,
UX meets XP. Overview of core approaches to creating interactive software Waterfall, iterative design, Agile Hybrid methods of evaluation H&P Chapter.
Why (or When) Agile Fails Creating high performance software delivery teams.
Jeff Briggs Senior Consultant Capstone Consulting.
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
#2-What is Agile? Why Agile? Subtopics 1- Agile motivation for software / systems 2- Agile tenets and principles 3- Agile as a risk mitigation strategy.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Chapter 3 Agile Development
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Agile Introduction Emerson Murphy-Hill. Agile Manifesto/Alliance XP, SCRUM, DSDM, Adaptive Software Development, Crystal, FDD February 2001 (Snowbird,
By: Isuru Abeysekera AGILE DEVELOPMENT. WHAT IS AGILE DEVELOPMENT? Broad term used to describe several methods for a development process Introduced in.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Project Workflow.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Introduction to Agile Software Development
Principles for Agile Development
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Chapter 5 Agile Development
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Agile Software Development Paradigms
Rosa María Torres de Paz
The Agile Manifesto is based on 12 principles
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
The Manifesto for Agile Software Development
Projects, Assignments, and other Assessments
Agile Development.
Presentation transcript:

Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part I - Introduction

Software Engineering 2 Object-oriented Analysis and Design Chapters 1. Object oriented analysis and design 2. Iterative, evolutionary, and agile 3. Case study Text book, page 3-44

Software Engineering 3 Object-oriented Analysis and Design Chap 2 Iterative, Evolutionary, and Agile

Software Engineering 4 Object-oriented Analysis and Design Unified Process  The Unified Process (UP) represents a mainstream approach for software development across the spectrum of project scales.  The process is scalable: you need not use the entire framework of the process for every project, only those that are effective.  The process is effective: it has been successfully employed on a large population of projects.  Improves productivity through use of practical methods that you’ve probably used already (but didn’t know it).  Iterative and incremental approach allows start of work with incomplete, imperfect knowledge.

Software Engineering 5 Object-oriented Analysis and Design Unified Process Workflows  Workflows define a set of activities that are performed  Workflows cut across the phases, but with different levels of emphasis in each phase  The core workflows m Business Modeling m Requirements analysis m Design m Implementation m Test and Integration ★

Software Engineering 6 Object-oriented Analysis and Design The Core Workflows 1  Business Modeling m Develop and refine the problem definition m Identify stakeholder needs m Define system features to be considered m Define the system scope m Build the use-case model  Requirements Analysis m Refine use-case model m Define the domain model m Define a candidate architecture (transitions to design) m Refine the architecture (transitions to design)

Software Engineering 7 Object-oriented Analysis and Design The Core Workflows 2  Design m Design the physical realizations of the use cases m Develop the design model m Develop the deployment model  Implementation m Plan subsystem implementation m Implement components: classes, objects, etc. m Perform unit-level testing m Perform component and system integration  Test and Integration m Build the test model: test cases and expected results m Plan, design, implement, execute, and evaluate tests

Software Engineering 8 Object-oriented Analysis and Design Use Case Driven  Use case m A prose representation of a sequence of actions m Actions are performed by one or more actors (human or non- human) and the system itself m These actions lead to valuable results for one or more of the actors—helping the actors to achieve their goals  Use cases are expressed from the perspective of the users, in natural language, and should be understandable by all stakeholders  Use-case-driven means the development team employs the use cases from requirements gathering through code and test ★ ★★ ★

Software Engineering 9 Object-oriented Analysis and Design Architecture Centric  Software architecture captures decisions about: m The overall structure of the software system m The structural elements of the system and their interfaces m The collaborations among these structural elements and their expected behavior  Architecture-centric: software architecture provides the central point around which all other development evolves m Provides a ‘big picture’ of the system m Provides an organizational framework for development, evolving the system by attending to modifiability qualities of the system m Facilitates reuse ★ ★★ ★

Software Engineering 10 Object-oriented Analysis and Design Iterative and Evolutionary 1  An iterative and evolutionary approach allows start of development with incomplete, imperfect knowledge  Iterative and evolutionary the following advantages: m Logical progress toward a robust architecture m Effective management of changing requirements m Continuous integration m Early understanding of the system (‘Hello world!’ effect) m Ongoing risk assessment ★ ★★ ★

Software Engineering 11 Object-oriented Analysis and Design Iterative and Evolutionary 2

Software Engineering 12 Object-oriented Analysis and Design Iterative and Evolutionary 3

Software Engineering 13 Object-oriented Analysis and Design Iterative and Evolutionary 4

Software Engineering 14 Object-oriented Analysis and Design Agile Methods and Attitudes  Agile Methods: m However, short timeboxed iterations with evolutionary refinement of plans, requirements, and design m Other:simplicity, lightness, communication, self-organizing teams, etc. m Scrum, XP……  The Agile Manifesto m Individuals and interactions over processes and tools m Working software over comprehensive documentation m Customer collaboration over contract negotiation m Responding to change over following a plan

Software Engineering 15 Object-oriented Analysis and Design Agile Methods and Attitudes  The Agile Principles 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. 3. Deliver working software frequently. 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. 6. Face-to-face conversation. 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. 9. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 10. Continuous attention to technical excellence and good design enhances agility. 11. Simplicity-the art of maximizing the amount of work not doneis essential. 12. The best architectures, requirements, and designs emerge from self-organizing teams. 13. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Software Engineering 16 Object-oriented Analysis and Design Agile Modeling  Adopting an agile method does not mean avoiding any modeling  The purpose of modeling and models is primarily to support understanding and communication, not documentation.  Don't model or apply the UML to all or most of the software design.  Use the simplest tool possible.  Don't model alone, model in pairs (or triads) at the whiteboard.  Create models in parallel.  Use "good enough" simple notation while sketching with a pen on whiteboards.  Know that all models will be inaccurate, and the final code or design differentsometimes dramatically different than the model.  Developers themselves should do the OO design modeling, for themselves.

Software Engineering 17 Object-oriented Analysis and Design Unified Process Phases 1 ★

Software Engineering 18 Object-oriented Analysis and Design Unified Process Phases 2

Software Engineering 19 Object-oriented Analysis and Design Core Workflows and Phases 1

Software Engineering 20 Object-oriented Analysis and Design Core Workflows and Phases 2

Software Engineering 21 Object-oriented Analysis and Design Core Workflows and Phases 3

Software Engineering 22 Object-oriented Analysis and Design Artifacts, Workers, and Activities 1  An artifact is a piece of information that is used as input to, changed by, or output from a process  Examples include: m Models — use-case, domain, and design m Model elements—use case, domain class, design class m Diagrams and documents m Source code m Executable elements ★ ★★ ★

Software Engineering 23 Object-oriented Analysis and Design Artifacts, Workers, and Activities 2  Workers define the behavior and responsibilities of an individual or a team m Examples: Architect, use-case engineer, component engineer, system integrator  Some important distinctions: m Workers participate in the development of the system m Actors are outside the system and have usage relationships with the system m Stakeholders encompass both actors and workers, as well as others involved with the project

Software Engineering 24 Object-oriented Analysis and Design Artifacts, Workers, and Activities 3  Activities are the tasks performed within a workflow  Activities can describe a wide range of abstraction levels, from high-level (‘construct domain model’) to low-level (‘implement class’) m Examples include: m Plan iteration m Find use cases and actors m Execute integration test m Review test results

Software Engineering 25 Object-oriented Analysis and Design The Agile Unified Process  The Unified Process has been designed from the outset as: m Lightweight: ‘Pay as you go.’ Use only the parts that are essential and effective for your project. When in doubt, leave it out. m Non-predictive: Requirements and design build gradually as development proceeds rather than being completed before any work can begin. m Adaptable: Planning and risk analysis/assessment are on- going and process can be adapted accordingly.

Software Engineering 26 Object-oriented Analysis and Design Sample Development Case