CS101 Introduction to Computing Lecture 24 Design Heuristics

Slides:



Advertisements
Similar presentations
Heuristics and Genetic Algorithms Michael D. Mobley The Boeing Company 12 July 2006.
Advertisements

Software Development Life Cycle
2-May-15 GUI Design. 2 HMI design There are entire college courses taught on HMI (Human-Machine Interface) design This is just a very brief presentation.
Proposal 13 HUMAN CENTRIC COMPUTING (COMP106) ASSIGNMENT 2.
1 CS101 Introduction to Computing Lecture 29 Functions & Variable Scope (Web Development Lecture 10)
1 CS101 Introduction to Computing Lecture 24 Design Heuristics.
Heuristic evaluation IS 403: User Interface Design Shaun Kane.
Software Engineering 2003 Jyrki Nummenmaa 1 USE CASES In this lecture: Use cases - What are use cases? - Why to use use cases? - How to write.
1 System Architecture Measurement. 2 Continuation of NDIA Measurements Task Goal of last year’s task was to: Identify a set of leading indicators that.
Nielsen’s Ten Usability Heuristics
Multimedia Specification Design and Production 2012 / Semester 1 / week 5 Lecturer: Dr. Nikos Gazepidis
INFO 425 Week 21 INFO 425 Design Problem I Week 2 – SRS Improvements Glenn Booker.
Heuristic evaluation Functionality: Visual Design: Efficiency:
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CS223: Software Engineering Lecture 13: Software Architecture.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
Ten Usability Heuristics These are ten general principles for user interface design. They are called "heuristics" because they are more in the nature of.
Service-oriented architecture 8 th July What is a Service? A service is a reusable component that can be used as a building block to form larger,
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Communication Arts The Writing Process. Communication Arts GUIDING CONCEPT As writers, we understand and demonstrate the ability and flexibility to use.
Code Simplicity: Software Design In Open Source Projects Max Kanat-Alexander
Heuristic Evaluation May 4, 2016
[The Design of Everyday Things, Don Norman, Ch 7]
Lecture Slides Elementary Statistics Twelfth Edition
ICS 3UI - Introduction to Computer Science
Software Engineering Management
Giving Constructive Feedback
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer Low level programming language: A programming.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Debugging Intermittent Issues
IST256 : Applications Programming for Information Systems
APIs and Function Parameters
Introduction to Event-Driven Programming
FOP: Buttons and Events
Heuristic Evaluation August 5, 2016
Topic for Presentaion-2
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
CPSC 873 John D. McGregor GQM.
CS101 Introduction to Computing Lecture 19 Programming Languages
Human Computer Interaction Lecture 10 Interaction Paradigms
Object oriented system development life cycle
Some Simple Definitions for Testing
Project Planning is a waste of time!!!
Introduction to Software Testing
Electronic Instrumentation
Software life cycle models
Overview: Software and Software Engineering
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Why Object-oriented Programming?
Usability Techniques Lecture 13.
CS101 Introduction to Computing Lecture 20 SW Development Methodology
CS385T Software Engineering Dr.Doaa Sami
Steve Lund and Hari Iyer
CS305, HW1, Spring 2008 Evaluation Assignment
GUI Design 24-Feb-19.
Usability Heuristics Prof
USABILITY PART of UX.
Electronic Instrumentation
Nilesen 10 hueristics.
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Extreme Programming.
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
How to Create Effective PowerPoint Presentations
U3L4 Using Simple Commands
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
Information system analysis and design
Presentation transcript:

CS101 Introduction to Computing Lecture 24 Design Heuristics

During the last lecture … We became familiar with the various phases of the process that developers follow to develop SW systems of reasonable complexity We looked at a couple of problems related to the Waterfall SW development model

In order to understand anything, you must not try to understand everything Aristotle

1 universality efficiency 

focus!

Today’s Lecture Heuristics for System Architecting We will try to understand the role of heuristics in architectural (or high-level) design We will become familiar with a few popular design heuristics

Heuristic?

Heuristic Rule of thumb learned through trial & error Common sense lesson drawn from experience Qualitative principle, guideline, general judgement Natural language description of experience

Heuristic Wisdom ?

Caution! Caution! Heuristics don’t always lead to the best results At times they even lead to the wrong ones, but mostly to results that are good-enough

system?

working together A collection of elements which System produces a result not achieved by the things alone

System Architecture?

The structure of a product or a process System Architecture (in terms of components, connections, constraints) of a product or a process

Design == Architecture ? Design == Architecture

Heuristics for system architecting Rules and lessons learnt by system architects after long experiences which when followed result in sound, stable, practical systems

My favorite system architecting (and other relevant) heuristics --- in no particular order ---

Given many parts of a system to be designed/built, do the hard part 1st

# 3 All the serious mistakes are made on the very first day

# 4 Simplify, simplify, simplify # 4 Simplify, simplify, simplify! Probably the most useful heuristics for increasing reliability while decreasing cost & time-to-build

Caution! Everything should be as simple as possible but not simpler Al Einstein

# 5 If you can’t explain it in 5 minutes, either you don’t understand it or it does not work

# 6 A system will develop & evolve much more rapidly if there are stable intermediate forms than if there are not Build iteratively; add features gradually

# 7 Success is defined by the user, not the builder

Customer is always right?

It depends! # 8 It’s more important to know what the customer needs instead of what he says he wants

# 9 If you think that your design is perfect, it is only because you have not shown to anyone else --- Get your designs reviewed ---

# 10 A good solution to a problem somehow looks nice & elegant

#11 In partitioning, choose the chunks so that they are as independent as possible Chunks should have low external complexity & high internal complexity Organize personal tasks to minimize the time individuals face interfacing

5 1 3 6 2 4

5 1 3 6 2 4

5 1 3 6 2 4

8 4 1 2 5 7 9 3 6

#12 Partition/repartition the problem until a model consisting of 7±2 chunks emerges

Life is the art of drawing sufficient conclusions from insufficient premises Samuel Butler

#13 When choices must be made with unavoidably inadequate info: Choose the best available & then watch to see: whether further solutions appear faster than future problems If so, the choice was at least adequate If not, go back & choose again

#14 The Triage 1. Let the dying die 2 #14 The Triage 1. Let the dying die 2. Ignore who’ll recover on their own 3. Treat only those who’ll die without your help

# 15 Don’t just remove the defect; ...

# 15 Don’t just remove the defect; correct the process that caused it

#16 The number of defects remaining in a system after a given level of tests is proportional to ...

#16 The number of defects remaining in a system after a given level of tests is proportional to the number found during the test

#17 Programmers deliver the same number of LOC/day regardless of the language they are writing in Use the highest-level language

There are many more! Please post any that are familiar to you on the message board

In Today’s Lecture We became familiar with the the role of heuristics in design We also discussed a few well-known design heuristics for architectural design

Next Lecture: Web Design for Usability To become able to appreciate the role of usability in Web design To become able to identify some of the factors affecting the usability of a Web page