© AgiliX Agile Development Consulting Agile Software Architecture Cesario Ramos.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Unit 2. Software Lifecycle
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Framework is l Reusable Code, often domain specific (GUI, Net, Web, etc) l expressed as l a set of classes and l the way objects in those classes collaborate.
Alternate Software Development Methodologies
NAUG NAUG Knowledge Evening – th February 2007.
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 4: Phase Management - Elaboration.
SYSC System Analysis and Design
CS 5150 Software Engineering
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
© AgiliX Agile Development Consulting Agile Demystified Cesario Ramos.
CS3500 Software Engineering Agile Software Development (1) Agile software development, proposed in 2001 by the non-profit Agile Alliance, has four basic.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
The Design Discipline.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Team Think For You. Outline  Introduction  Process  Requirements Engineering  Architecture  Detailed Design  Testing  Demo  Extensibility  Conclusions.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
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)
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 What is Solution Assessment & Validation?
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Inception Chapter 4 Applying UML and Patterns -Craig Larman.
CS3100 Software Project Management Agile Approaches.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Software Design 1.1 CPS 108, Spring 2006 l Object oriented programming and design, we'll use Java and C++  Language independent concepts including design.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Software Development Life Cycle (SDLC)
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Refactoring Agile Development Project. Lecture roadmap Refactoring Some issues to address when coding.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Presented By : Prima Business Solutions. Agile Software Development Process.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Announcements/Assignments
Chapter 5 Agile Development Moonzoo Kim KAIST
Process 4 Hours.
Appendix B Agile Methodologies
Introduction to Software Process
Mike Cohn - Agile Estimating and Planning
Introduction to Software Engineering
Chapter 2 – Software Processes
CIS 210 Systems Analysis and Development
Chapter 3 – Agile Software Development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Agile Development – a new way of software development?
Appendix B Agile Methodologies
Extreme Programming.
Agile software development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Logical Architecture & UML Package Diagrams
CSCI 360: Software Architecture & Design
Presentation transcript:

© AgiliX Agile Development Consulting Agile Software Architecture Cesario Ramos

© AgiliX Agile Development Consulting Code focussed Do what is important now Evolves during the project Defers Implementation Documentation focussed Do what is important in the long term Defined upfront Includes Implementation Agile Architecture Classic Architecture

© AgiliX Agile Development Consulting Why agile software architecture?

© AgiliX Agile Development Consulting Deliver Fast Increase ROI. Early validation of your business case. Give customers what they want when they want it.

© AgiliX Agile Development Consulting Defer Commitment Reduce risk. Decide based on most possible knowledge. Keep yours and the customers options open.

© AgiliX Agile Development Consulting Eliminate Waste Support something that does not add value now. Have the architecture slow you down

© AgiliX Agile Development Consulting Be the simplest solution to support the current functionality. Change without increasing risk or waste. Change economically. Change without making the software worse. Evolve in early and refine later iterations. so we need architecture to...

© AgiliX Agile Development Consulting Comparing with engineering

© AgiliX Agile Development Consulting Based on concrete analysis using physics and mathematics. Based on things you know and change slowly. Plan, Do, Review. Plan the work, work the plan

© AgiliX Agile Development Consulting Requirements Design Coding Testing Release Analysis Design Construction Inspection Release Software Development Civil Engineering Coding is NOT Construction

© AgiliX Agile Development Consulting When do we test our requirements? When do we test our design? What if we overdevelop it? How do you handle changes? and then.... Requirements Architecture and Design CodingTestingRelease

© AgiliX Agile Development Consulting How to create agile software architecture?

© AgiliX Agile Development Consulting High level steps. Establish vision and high level requirements. Perform Lightweight domain analysis. Work on architectural components only when actually needed. Consider ROI in the decision making process Evolve the architecture during the project Do not let quality decay. Refactor to the Open Closed. Validate and adapt.

© AgiliX Agile Development Consulting Lean architecture using DCI What the system IS Captures what is stable The domain classes What the system DOES User stories. Business objects.

© AgiliX Agile Development Consulting Open Closed Principle A module should be open for extension and closed for modification

© AgiliX Agile Development Consulting Refactoring as Fowler proposed Improving the design of existing code. Refactoring to be Open Closed. For handling future requirements. Refactoring Provides Value by Reducing Risk Reducing Waste

© AgiliX Agile Development Consulting Separation Of Concerns Low Coupling Minimal dependencies Minimal side effects High Cohesion Single responsibility One reason to change

© AgiliX Agile Development Consulting Tests Drive Design Forces you to look at your public API. Forces you to think about cohesion. Forces you to think about coupling. Forces you to not produce redundancies.

© AgiliX Agile Development Consulting Test Driven Development Documents your intent Investigates the nature of the code you are developing Report on progress

© AgiliX Agile Development Consulting Summary Agile Architecture helps you reduce risk and waste. OO/XP principles and practices make evolving architecture possible. Particular approach depends upon knowledge of domain, technology and project size.

© AgiliX Agile Development Consulting Agile Software Architecture Cesario Ramos