42
Software Design The Journey of an Idea to Invention (Week One) The George Washington University Department of Computer Science CSCI 4243: Senior Design

Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Software DesignThe Journey of an Idea to

Invention(Week One)

The George Washington UniversityDepartment of Computer Science

CSCI 4243: Senior Design

Page 2: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Learn By Doing

● Develop a system through which consumers can receive coupons that are both temporally and geographically relevant. - e.g. coupons for Potbelly's at lunchtime.

Page 3: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Quick Review

● Questions/Assumptions?● Use cases?● Customers?● Actors?● Actions?● Events?

Page 4: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Who Am I?

● Cybersecurity-focused Engineer for USG

● B.S. CSCI 2005 (GW)

● M.S. CSCI 2006 (GW)

● Taught Computer Network Defense @ GWU

Page 5: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Goals

● Practice software design● Understand design considerations● Identify the value of software design● Think critically

Page 6: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Poor design leads to...

Page 7: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Poor design leads to....

Page 8: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Software Failures

● Mars Climate Orbiter

● Y2K (Y2K38?)● F22-Raptor● Your last CSci 3212

assignment

Page 9: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

More realistically...

Page 10: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 10

The Challenge

Page 11: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 11

What is “Software Design”?

Page 12: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 12

What is “Software Design”?

● “Software design is a process of problem-solving and planning for a software solution.”

● “Software design is the process by which an agent creates a specification of a software artifact, intended to accomplish goals, using a set of primitive components and subject to constraints.”

Page 13: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 13

What is “Software Design”?

● “The final goal of any engineering activity is some type of documentation.”

● “...the only software documentation that actually seems to satisfy the criteria of an engineering design is the source code listings.”

● Jack Reeves (1992 & 2005)

Page 14: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 14

Design Considerations

Page 15: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 15

Initial Approaches

Page 16: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 16

Initial Approaches

● Start with the most important thing– Often it's the customer (e.g. the user

interface)

– Might be a critical component

– Whatever it is that pays the bills

● “Begin with the end in mind.”– Seven Habits of Highly Effective People

Page 17: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 17

Learn By Doing 2

FoodFriends: Request “live” advice from friends on local restaurants and bars.

Page 18: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 18

What is the “Main Idea”?

● “I want to ask my friends if they know good food and drinking spots near me at any given time. I should get a graphical representation of their responses, in a chart.”

● How should this work?● What features are needed?● Can you restate the problem?

Page 19: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Initial Use Case

Request

Me Friend

Can we do better?

Page 20: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Maybe This?

Food request

Hungry Person

Voters

But can we identify components?

Page 21: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Even Better...

Requests Advice

RequestOriginator

RequestAcceptorService

RequestAcceptorService

Requests Notification NotificationService

NotificationService

Request

Voters

Page 22: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

What next?

Does this suggest any components?

Page 23: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Components

VoteRequestor

VoteReceiver

RequestProcessor

NotificationSystem

Client App

VoteRequest

Processor

VoteResponseProcessor

MessagingSystem

HistoryStore

Server App

Page 24: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Workflow w/ Components

● Draw on board....

Page 25: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Putting it together...Vote

RequestorVote

Receiver

RequestProcessor

NotificationSystem

Client App

VoteRequest

Processor

VoteResponseProcessor

MessagingSystem

HistoryStore

Server App

VoteRequest

Processor

VoteResponseProcessor

MessagingSystem

HistoryStore

Server App

VoteRequest

Processor

VoteResponseProcessor

MessagingSystem

HistoryStore

Server App

VoteRequestor

VoteReceiver

RequestProcessor

NotificationSystem

Client App

RequestOriginator

Voters

RequestSuggestion

Send Data

Sends Notification

Page 26: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Requirements

● Functional● Input → Output (and behavior)● Example: Request for suggestions → geo-

location data sent to server

● Non-Functional● Judge operation of a system● Examples: security, speed

Page 27: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Specifying Requirements

● Iterative process of refinement:– Problem Statement

– High-level requirements

– Use cases

– Workflow

– Functional requirements

– Non-functional requirements

– Components

Page 28: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

More work on the board...

Page 29: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Message

● Organized, iterative, thoughtful, refinement

– High level

– Use cases

– Workflow

– Requirements

– Rinse

– Repeat

Page 30: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

UPDATE DOCUMENTATION

AS YOU GO

Page 31: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Tools

● Visio● Omnigraffle● OpenOffice● Gliffy● More?

Page 32: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

When do you stop?

Page 33: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

And eventually....

Page 34: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Homework!

● Due: Before class begins on 11 September 2013

● Develop a specification document that describes users, use cases, workflows, features, and structure

● Prepare a short screencast that explains your specification document to a developer

Page 35: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Turning plans into reality

Page 36: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 36

Waterfall Model

Page 37: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 37

V-Model

Page 38: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 38

Spiral Model

Page 39: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 39

Iterative & Incremental

Page 40: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 40

Page 41: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 41

Scrum

Page 42: Software Design - George Washington Universitysimhaweb/sd/classwork/ChrisDesignI.pdf · Software Design The Journey of an Idea to Invention (Week One) The George Washington University

Fall 2013 Design I 42

Next Steps

● Do homework

● Create low-level workflows

– UI mockups

– Algorithms and data structures

– Control flow

– Code structure

● Task List

● Code