1 Design and Integration: Part 3 To prepare for today’s class, visit Cookie Clicker and plan with it for a few minutes:

Slides:



Advertisements
Similar presentations
Agile Planning Dealing with Reality. Reality Basic agile principle – don’t expect static plans to hold, be flexible and expect changes.
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
The Design Process Where do consumer products begin?
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Building a SOA roadmap for your enterprise Presented by Sanjeev Batta Architect, Cayzen Technologies.
Alternate Software Development Methodologies
1 Speed, Drunkenness, and the Wall Does High Level Design/ESL Make Sense? Kris Konigsfeld Sr. Principal Engineer Oregon CPU Architecture Intel Corporation.
R. I. T Mechanical Engineering Engineering Design Brief Case Study: What is the Engineering Design Process and Why is it Critical? Rochester Institute.
1 Design and Integration: Part 1. 2 What’s a metaphor? Ward Cunningham cites George Lakoff’s book, Metaphors We Live By: Lakoff argues that the assumptions.
Human Computer Interaction
8 December Logistics  Sitterson 014 at 8 am Tuesday, Dec 14  Inviting all clients  Schedule will depend on client constraints ( once booked)
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
CPSC 875 John D. McGregor C20 – Technical Debt. Value-based SE SCS – success-critical stakeholder.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
Upstream Prerequisites
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 4.1.
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
1 Integration and Design: Part 4 Is Design continuing to be Dead? Gutsy opening image, and I apologize if it’s too strong: The issue is how much early.
by Marc Comeau. About A Webmaster Developing a website goes far beyond understanding underlying technologies Determine your requirements.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
Chapter 4 – Requirements Engineering
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 4.1.
Agile Modeling Theory. 2 Agile Modeling (AM) AM is a chaordic, practices-based process for modeling and documentation AM is a collection of practices.
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Chapter 2 Process: A Generic View
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
1 Design and Integration: Part 2 Going Agile on Design…
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
2. GATHERING REQUIREMENTS Object-Oriented Analysis and Design NTPCUG.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
1 Planning – Agile Style Highsmith, Ch 7 All kinds of iterations! CSSE579 Session 3 Part 1.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
Finding Red Pixels Prof. Ramin Zabih
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
1 Tips on Assignment 4. 2 In addition to the personal advice sent to your team Advice from seniors – – Try to cast it in terms of what they are doing.
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
Extreme Programming (XP) XP is an agile methodology: –aims to be responsive to change Theme running through XP is the importance of communication –amongst.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Software Design Process
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Software Prototyping Rapid software development to validate requirements.
Fall 2015 ECEn 490 Lecture #8 1 Effective Presentations How to communicate effectively with your audience.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Design time and Run time Chris, Andrea, Martina, Henry, Antonio, Ole, Philippe, Hartmut, Anne, Jeff, Felix, Sebastian, Kurt.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
CSCE 240 – Intro to Software Engineering Lecture 2.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
Continuous Improvement. Start Simple and Continually Improve E.g., Gmail Labels 1.
The Scrum Framework Presented by Somnath Ghosh Scrum Practitioner 24 hours weeks.
Active Reading.
For University Use Only
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Extreme Programming (and Pair Programming)
Presentation transcript:

1 Design and Integration: Part 3 To prepare for today’s class, visit Cookie Clicker and plan with it for a few minutes:

2 Why would you want to design? …when you could start coding today!

3 Design is dead? Fowler’s contentions: “In common usage, evolutionary design is a disaster.” You can’t build a skyscraper like a doghouse. You can’t hand-off work without a plan. Once you’ve got this in Sprint 1, can you just evolve it?

4 But why is upfront design bad? Tension between designers and developers Requirements change – Good design can accommodate that change! But it must correctly anticipate the KIND of change. – Maybe because you didn’t understand them at first – better requirements! – But also requirements change due to business changes – can’t easily plan.

5 How do you do design? A series of at least 3 steps, maybe more. – What are those steps? Do this on a Computer so you can easily add/modify steps. Remember this is a “loose artifact” later! – You need to remember to keep it up to date. – Fowler’s “changing requirements.”

6 Always involves… Iteration – Because you can’t get it right the first time. Abstraction – At various levels. – The very abstract is very tricky. – What if the designers don’t code? High-level architecture for an Event Processor

7 Fowler on XP How do you avoid the “exponential curve” of costs as you change things to a delivered system? Kent Beck’s version! But you have to do the “enabling practices”!

8 Some of this is economics If the customer is doing “pay as you go,” then they’ll balk at paying for a lot of design up front. And you could get it wrong… and eat those costs. A simple system: – Runs all the tests – Reveals all the intention – No duplication – Fewest number of classes or methods

9 Some of it is social Someone has to explain design to someone else. Like all the stakeholders.

10 Frameworks Common question! A great enabler Also dangerous – Takes time to get up to speed Takes time No value is delivered What if you are wrong? A huge gold plating operation – “Every class decorates some other class!”

11 Reuse? Good idea? What would Highsmith think? – Adaptation over anticipation (p 217) But – depends on “maleability of the medium.” Architectural decisions are often expensive. The overall goal is “low cost.”

12 Recall from Tuesday – The standard design sequence In all of engineering, it goes like this. 1.You at least need a good problem statement. – It should cover functional and non-functional requirements in generality. 2.You do the high-level design from that. – Top-down, with lots of alternatives. – Then pick from those, based on lots of criteria. – This is Phillips’ “Abstraction” (p 262) 3.Then you use the detailed requirements to fill-in the detailed design. – Bottom-up. – Do you need to express this, beyond coding? Like? Why?

13 High-level design looks like good brainstorming Try not to mix these two: – Coming up with new ideas. – Picking one, and focusing on how to do it well. But, – For everything beyond coding, you have to maintain it forever! – So – Is it throwaway? Start with 1 problem End with 1 solution Get lots of ideas!

14 Design Cookie Clicker Design at at different levels of abstraction – Client/server/db, languages in each, communication mechanism – Class design – Whatever else you think will help you get a good design