Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…

Slides:



Advertisements
Similar presentations
Design, prototyping and construction
Advertisements

Chapter 13 Review Questions
Programming Paradigms and languages
CS487 Software Engineering Omar Aldawud
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
© 2010 University of California, Irvine – André van der Hoek1June 14, 2015 – 15:24:35 Informatics 121 Software Design I Lecture 11 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 20:01:34 Informatics 122 Software Design II Lecture 1 André van der Hoek &
Week 8 Implementation Design Alex Baker. Implementation Design System Design – Describes what the system should do Implementation Design – Describes what.
CIS101 Introduction to Computing Week 02. Agenda Your questions CIS101 Blackboard Site Excel Project One Next Week.
Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
U-Mail System Design Specification Joseph Woo, Chris Hacking, Alex Benson, Elliott Conant, Alex Meng, Michael Ratanapintha April 28,
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
CS101 Introduction to Computing Lecture Programming Languages.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
What are the main differences and commonalities between the IS and DA systems? How information is transferred between tasks: (i) IS it may be often achieved.
1561 INITIATIVE Lessons Learned and Future Considerations
CHAPTER TEN AUTHORING.
October 16, 2015 – 16:09:421 © 2006 University of California, Irvine – André van der Hoek Examining Software Design From A General Design Perspective Alex.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
SE: CHAPTER 7 Writing The Program
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Systems Analysis and Design in a Changing World, Fourth Edition
Introduction to Design. What is Design? 2 minutes Pairs.
Experiences from Representing Software Architecture in a Large Industrial Project Using Model Driven Development Andres Mattsson 1 Björn Lundell 2 Brian.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Distributed Java Programming Distributed Java Programming Class #1 August 20, 2002.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
IL Marking Get out your CPU / Memory answers Swap with someone else
Software Quality Engineering
Applied Software Implementation & Testing
Introduction to Software Engineering
Informatics 122 Software Design II
Software life cycle models
Informatics 122 Software Design II
REAL-TIME, INTERACTIVE DOCUMENT AUTOMATION
An Introduction to Software Architecture
Tutorial 7 – Integrating Access With the Web and With Other Programs
Informatics 122 Software Design II
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Informatics 122 Alex Baker
Logical Architecture & UML Package Diagrams
Presentation transcript:

Super-Design Informatics 122 Alex Baker

System Design Arch. Imp. Design Code In this class we’ve gone…

Recapping 121 System design  describes what the software system should do  focus towards addressing Goal and Domain of Use “How do we fundamentally approach the problem?”  typically represents an intermediate “design in progress”  architecture design can be part of system design Implementation design  describes what the implementer should do  focus towards addressing Domain of Materials “How do we make the approach reality?”  typically represents a final “completed design”  module design can be part of implementation design

Recapping 121 A system design captures the essence of the solution An implementation design captures the full solution

System Design Arch. Imp. Design Code Putting it back in perspective

A few subjects today For each:  A high-level explanation  How this can be even worse on “big” projects

1) Planning for Change? What does that mean? Where does it happen?  Waterfall lifecycle model  Iterative approaches  Agile approaches

A linear process – No Change? Waterfall-like models System design sets up implementation design  Provides conceptual guidance  Specifies parameters  Suggests structure  Suggests modules and work divisions

A linear process? Goal System Design Implementation Design Code

A linear process? Goal System Design Implementation Design Code

An iterative process - Completely? New designs, based on results from previous iterations – no actual reuse?

The agile process? Reworking, refactoring

The agile process? Reworking, refactoring

In reality Debugging Adjusting Expanding Refactoring Redesigning Re-architecting Reconceiving

Why do we change? DesirableFeasible

In theory: DesirableFeasible System design

In theory: DesirableFeasible System design Implementation design

In theory: DesirableFeasible System design Implementation design Implementations

In theory: But we aren’t always right the first time DesirableFeasible

But we aren’t always right the first time On the other hand DesirableFeasible System design Implementation design Implementations

On the other hand DesirableFeasible System design Implementation design Implementations

On the other hand Some degree of learning and changing How can we apply what we are learning most easily? DesirableFeasible

Software processes No process is truly linear or iterative We don’t get it right the first time Code, designs, architectures, concepts are often reused when we start over Many changes  Many ways to design for change

Consider Cake For example, suppose  Conceived, designed, coded  We find the layered system is cumbersome Where are changes needed? Does the higher level accommodate them?

Cake: Debugging Clicking an object sometimes doesn’t select it  Can we find the place in the code that causes this problem?  Can it be fixed with minimal rippling? Our gesture tool is clunky  Have we reused this? Can it be fixed?

Cake: Expanding Along existing axis…  Adding more object types  Implementing new layer actions Fairly easy? We know how to design for these changes

Cake: Recoding or Redesigning? Changing the layer model  Not making each layer type-specific The program’s response time is too slow Making UML instead of Architecture

Cake: Reconceiving? Making UML instead of Architecture Layers too difficult to visualize  3d view of the layers Should we even be using layers?  Goals of exploring, comparing

Designing for Change How can we design for these changes? Should we? What are the tradeoffs?

When design is more than UML Large-scale Long-term Existing systems and frameworks These challenges are greater

Changes: Large Scale Design

More people working  More people changing  Code level changes become design changes..  Does a design accommodate this? More places to change  Harder to fix, harder to contain Design might need to be divided among several

Changes: Long-term Design

Needs more likely to change over time  Understanding of needs improves  Standards change  Platforms change  Market pressures for more features More problematic to make changes  Developers change, assumptions lost

Changes: Existing Materials Can be harder to change  May not have full access to source, etc.  May not understand what you do have  May not be allowed to change

Changes: “Real” projects What can we do? No single answer, but:  Learning before the real thing  Rigor and wisdom in design  Well-reasoned adjustments  Reuse, patterns, styles, frameworks  Awareness of these issues  Practice (hint, hint)

2) Unified Design Vision We saw this in the Layered Design exercise Also a problem in Cake Design drift, design decay

Choices have subtle effects One-click interaction in Cake Not having an Object class in T+M Not allowing 3 consecutive pieces in Jetris

When decisions are distributed Elegance difficult to maintain across many people Especially if we consider code-as-design changes too

(An Abstract) Example

When design is more than UML Again… Large-scale Long-term Existing systems and frameworks

Consistency: Large Scale Lots of design work, lots of people needed? Possible solutions  Brooks’ Surgical Team  Guidelines  Frameworks  Product Lines

Consistency: Long Term Designer turnover / legacy systems Design Drift Design Decay

Consistency: Existing Frameworks

Must conform to existing stuff Brooks’ Conformity  Adhering to the real world one of software’s issues

3) Representations There is a tradeoff in switching representations

Architecture (Buildings)

Process Design

Multiple Representations Translating between them Easier in some fields than others May require  Language translation  Additional design decisions Waterfall model

Single Representation Using the same for multiple purposes  Likely to be subpar for one or the other Agile’s approach, code for everything  Expression  Communication  Reflective conversing

When design is more than UML Again… Large-scale Long-term Existing systems and frameworks

Representations: Large Scale Single  Code becomes especially tough Multiple  “Distance” increases  Complexity (translation) gets worse

Representations: Long Term Single  Changes at multiple levels can affect it Multiple  Keeping multiple documents up to date  Consistency and traceability of these changes

Representations: Existing Frameworks Single (same as framework)  Can constrain your only mode of working (!) Multiple  Need to avoid misrepresenting the framework’s needs across documents

Unique Requirements Banks Satellites Telephone Networks Car Driving Software

Unique Reqs - Bank Software Verifiable Long term  Software must run for decade+  Laws change  Finance packages change

Unique Reqs - Satellites Software must be reliable  Can it be proven  Can we fix it remotely? Long term  High cost of building and installing Highly interconnected System Design  UML not the answer

Unique Reqs – Telephone Network Reliability Distribution Fault tolerance  How do we accommodate outages  Will losing one node cripple the system? Different representations needed

Unique Reqs – Car Driving SW Reliability Can we count on input from sensors? What happens when there’s an error? UML far from enough

Wrapup Designing for change Multiple designer issues Representation issues Large scale Long term Within existing frameworks UML often not enough – need “meta-design”

Assignment 6 – Basics Design an independent tool in an office productivity suite  the design of your tool should have useful and real functionality  the design of your tool should be implementable, in a week, by another team  the design of your tool should be complete It is your task to balance the functionality with the need for a real implementation Do not forget about extensibility Do not forget about the lessons learned in this class

Assignment 6 – Timeline Monday Nov 13 th (Week 8)  10:00: preliminary system design and preliminary implementation design to Alex and Andre  14:00: feedback from Alex and Andre in class, 15 minutes per group; additional time can be scheduled after class

Assignment 6 – Timeline 14:00 Wednesday Nov 15 th (Week 8)  bring final system design and final implementation design to class  hand off final system design and final implementation design to the group that will implement your design (30 min)  receive final system design and final implementation design from the group whose design you will implement (30 min) 14:00 Friday Nov 17 th (Week 8)  you can send one with clarification questions to the design team – please cc Andre and Alex on the 14:00 Saturday Nov 18 th (Week 8)  the design team must respond to the

Assignment 6 – Timeline 14:00 Wednesday Nov 22 nd (Week 9)  bring demoable implementation of the design that you were tasked to implement  you may choose to deviate your implementation from the design that you received in the first place but you must document and motivate your deviations  Also, 10:00 you will receive details of surprise assignment via

Assignment 6 – Timeline 14:00 Monday Nov 27 th (Week 10)  bring surprise assignment

Grading considerations Fill out an evaluation sheet (available at class webpage) due once a week:  Wednesday of week 8  Wednesday of week 9  Wednesday of week 10 We will look at the designs and take them into account when grading the implementations  If the design you receive appears subpar, we will consider this  We expect an earnest, hardworking effort no matter what, though

Assignment 6 – Groups Group 1:  MIKE WADHERA, MITCH WILLIAMS, JULIE RICO, SAM ARCHER, SAM CHANG  A mini spreadsheet Group 2:  KYLE STRASSER, CHRIS BAKER, SEAN CASHIN, JAMES GARY, NICK INGERSOLL  A mini database Group 3:  GABRIELA MARCU, ANGELO PIOLI, BRYANT HORNICK, NG WENG LEONG, PETER LEE  A mini web authoring tool Group 4:  JUNG HO KIM, CYNTHIA K. LAM, MICHELLE ALVAREZ, JASON DRAMBY  A mini slide authoring and presentation tool Focus on a simple implementation  All projects need to be able to save and open files  We will guide you during Monday’s meetings, adaptability

Group 1: Mini Spreadsheet Excell-like, input and output via cells Should be able to set up a cell whose result is a formula, based on one or more other cells Should be able to, for example, have a cell be the sum of several other cells’ results Nested operations

Group 2: Mini Database Access-like Choose your own interaction method Need to be able to set up tables and to perform complex queries on them (selection according to Boolean operations) May require a bit of research

Group 3: Mini web authoring tool Two panes, one for editing, one preview pane Should be able to handle at least basic html: formatting, simple tables, bullet lists Should be expandable to accommodate new tags Should be able to save viable.html files

Group 4: A mini slide authoring and presentation tool Similar to Powerpoint Should allow for formatting, bulleting Need to be able to insert simple drawn shapes Need to be able to “give a presentation”, allow a slideshow with forward and backward progress through the slides

Assignment 6 – Groups Group 1:  MIKE WADHERA, MITCH WILLIAMS, JULIE RICO, SAM ARCHER, SAM CHANG  A mini spreadsheet Group 2:  KYLE STRASSER, CHRIS BAKER, SEAN CASHIN, JAMES GARY, NICK INGERSOLL  A mini database Group 3:  GABRIELA MARCU, ANGELO PIOLI, BRYANT HORNICK, NG WENG LEONG, PETER LEE  A mini web authoring tool Group 4:  JUNG HO KIM, CYNTHIA K. LAM, MICHELLE ALVAREZ, JASON DRAMBY  A mini slide authoring and presentation tool Focus on a simple implementation  All projects need to be able to save and open files  We will guide you during Monday’s meetings, adaptability