Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies: Putting it all together.

Slides:



Advertisements
Similar presentations
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Advertisements

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--
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Software Reuse SEII-Lecture 28
Alternate Software Development Methodologies
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
Rational Unified Process
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
Chapter Extension 19 Alternative Development Techniques © 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke.
Fatima Al-Abdulla Managing Analysis. Outline:  Introduction  Why managing Analysis? 1-Documenting Analysis 2-Assigning Responsibilities 3-Communicating.
Fundamentals of Information Systems, Second Edition
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.
Chapter 3: The Project Management Process Groups
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
Introduction to Systems Analysis and Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
What is Software Engineering?. Software engineering Multi-person construction of multi-version software (David Parnas) An engineering discipline whose.
Chapter 2 The process Process, Methods, and Tools
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 10: Testing and Inspecting to Ensure High Quality Part 4:
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 4 Slide 1 Chapter 1 The Systems Development Environment.
Understand Application Lifecycle Management
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
1. 2 IMPORTANCE OF MANAGEMENT Some organizations have begun to ask their contractors to provide only project managers who have been certified as professionals.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Software Quality Assurance in Neuroinformatics H Jeremy Bockholt NITRC Grantee Meeting.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies: Putting it all together.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Software Engineering Management Lecture 1 The Software Process.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
CSE 308 Software Engineering Software Engineering Strategies.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: An Aside: The Quickest Tour through the UML that you will ever get.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Object Modeling.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 Introduction to Software Engineering Lecture 1.
The Systems Development Life Cycle
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
1/7/2004CSG - Project Delivery at UT Austin1 Making a Model Perform Adopting a methodology to your environment.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Software Engineering 1 Object-oriented Analysis and Design Chap 22 UML Tools and UML as Blueprint.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies Extreme Programming.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
OBJECT-ORIENTED SOFTWARE DEVELOPMENT PROCESS BTS430 Systems Analysis and Design using UML.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
CS223: Software Engineering Lecture 16: The Agile Methodology.
1. WHAT IS A PROJECT? “A project is a problem scheduled for solution.” This definition forces us to recognize that projects are aimed at solving problems.
Chapter – 1. The UML Approach USECASE DRIVEN ARCHITECTURE CENTRIC ITERATIVE & INCREMENTAL.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
1 Advanced Computer Programming Project Management: Basics Copyright © Texas Education Agency, 2013.
Embedded Systems Software Engineering
Practical Software Engineering
Presentation transcript:

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies: Putting it all together

Outline A Mountaineering Example Project Context –Goals, Environment, Methods, Tools, Methodology Methodology Issues –Planning, Design Reuse, Modeling, Process, Control & Monitoring, Redefinition Methodology Spectrum –Royce’s Methodology based on the unified process –Extreme Programming Methodological Heuristics

Key Decisions in an Expedition A leader has to answer several key questions to create a successful expedition –What mountain should be climbed? –What process should be used? –What types of tools should be used? –Who should be member of the team? –Does the expedition need a leader? Different answers to these questions lead to different styles

Key Decisions in an Software Project –Project goals –Schedule –Cost –Project organization –Software life cycle Model –Tools –Methods –Team members

If the Project Goal cannot be achieved A project goal is too ambitious or the original goal is simply wrong. Continuing is not an option. Option 1: Ask for more resources or a revised schedule. –Not really an option, because there is no more money and the schedule is fixed. Option 2: Admit the problem and turn the project into a “successful failure”: –Do a thorough analysis to understand what went wrong. –Focus on the failure to determine lessons learned. –Try to recycle the work that has been achieved so far for another project. Option 3: Revise the project goal –Turn the current project status into the goal. –Sometimes the revised project goal is actually as good or better than the originally envisioned

Methodology Issues Methodologies provide guidance, general principles and strategies for selecting methods and tools in a given project environment. The key questions for which methodologies typically provide guidance include: –How much involvement of the customer? –How much planning? –How much reuse? –How much modeling? –How much process? –How much control and modeling? Royce vs. XP

System Model Forward Engineering: Source code is generated from the system model (Ideal: „0 % manual coding“, Component- Based Software Engineering) Reverse Engineering: The system model is reconstructed from existing source code (legacy systems) Use Case Model Source Code class... Refactoring: The source code is transformed according to refactoring rules (program transformation) Object Model Dynamic Model Analysis, System Design Object Design are Model Transformations Scenario - Carl enters the store - He buys a car toy..... Textual scenarios generate external models

XP Source Code class... Refactoring: The source code is transformed according to refactoring rules (program transformation) Stories User Stories generate source code

Methodology Do’s and Do Not’s Try to train the client. Train the developers about the process Try to find a dedicated lab for all the developers Think carefully about how to maintain the infrastructure Use version control as an integration tool Make sure to have resources to deal with iteration overlaps Make sure to allow informal communication

Methodological Heuristics Be prepared to change the system –Functional requirements can change during a project when the client becomes more experienced –Technological change can occur any time Be prepared to change the organization –Move from hierarchical organization to participatory management when project participants are becoming capable of making decisions Be prepared to change the process –Move from activity-oriented to entity-oriented during a project when beginners become experienced developers Shorten client decision time –Train the client Build trust Learn the right lessons and nothing more