ECE 458 Engineering Software for Maintainability



Similar documents
GRAPHIC DESIGN 1, ART Spring Semester, 2014 Washington Hall, 1st Floor, Lab/Room 158 Mondays and Wednesdays, 5:20 p.m. 7:50 p.m.

How To Write A Design Document For Anorexic Css

SI649 Information Visualization. Learning Objectives. Tentative Schedule. Preliminary Syllabus, Fall 2012

JOMC182: Introduction to Graphic Design A primer on the principles and practices of visual communication

CIS SP Network Administration Course Syllabus

GIT 450/598 Digital Workflow in the Graphics Industry Course Syllabus Spring 2011 On-Line Delivery

VC 491 Parallax Web Design (Independent Study) Cazenovia College Spring 2014 Independent Study Syllabus Student: Kathryn Wheeler

CS 378: Computer Game Technology

the gamedesigninitiative at cornell university Lecture 1 Course Overview

INTERACTIVE STORYTELLING (IST)

GRADUATE SCHOOL IN RELIGIOUS STUDIES (OR RELATED HUMANITIES/SOCIAL SCIENCE FIELD) FREQUENTLY ASKED QUESTIONS

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Using GitHub for Rally Apps (Mac Version)

Team Brief Guidelines

Marketing 3721: Internet Marketing Fall 2011

Johnson State College External Degree Program. INT-4610-JH01 QE: Senior Seminar in Interdisciplinary Studies, 3 credits Syllabus Spring 2015

BUS , Management Communication

WORKSHEET Meeting ONE (1/27/09) Technical Writing Sp 09 / Harvard / Kalo

Project 2: Penetration Testing (Phase II)

George Mason University Electrical and Computer Engineering Department ECE 201: Introduction to Signal Analysis Syllabus Fall 2015

AGEC $424$ Syllabus. Financial Management of Agricultural Businesses

University of Washington Foster School of Business FIN 502: Corporate Finance, Winter 2015 Professor Mark Westerfield

SYLLABUS Human Resource Management MGMT 3241 Section 001 Spring 2006, MW 3:00-4:20 Friday 9

INFO 2130 Introduction to Business Computing Fall 2014

Guidelines for conducting tabletop exercises Penn Mission Continuity Program (MCP)

AMS 5 Statistics. Instructor: Bruno Mendes mendes@ams.ucsc.edu, Office 141 Baskin Engineering. July 11, 2008

Fall 2015 GES 4120/5120 Internet GIS

Remote Access to Unix Machines

Cleveland State University

How To Use Nest For An Employer

Testing your Linux Virtual Box

Applying to Graduate Programmes in Economics

INFO 2130 Introduction to Business Computing Spring 2013 Self-Paced Section 006

Getting Started. UC Santa Barbara Setup public repository (GitHub, Bitbucket) Identify workflow:

SI 539, Winter 2014 Complex Web Design

Android: Setup Hello, World: Android Edition. due by noon ET on Wed 2/22. Ingredients.

Project 2: Firewall Design (Phase I)

PHPM 631 Health Information Management Systems

Platform as a Service and Container Clouds

Software Development Foundations CPSC Spring 2014 Syllabus

Greetings! Welcome to Community Psychology! accelerated online semester Fall 2015 Sept. 1 Nov. 7, 2015

CS 425 Software Engineering

CS 51 Intro to CS. Art Lee. September 2, 2014

PRE 580/PSYC 598 Positive Psychology (Spring 2008) The University of Kansas, Edwards Campus Mondays, 4:30-7:00pm 153 Regnier Hall

Writing Portfolio Program Quick Reference Guide

ECE 122. Engineering Problem Solving with Java

Seminar Medical Informatics 2015

Learning to Delegate

MPJO /MPPR : WEB DESIGN GEORGETOWN UNIVERSITY: MPS- JOURNALISM Wednesdays, 8 p.m. to 10:30 p.m. Spring 2015

CC2002 CREATIVE AND CRITICAL THINKING STUDENT

9 Principles of Killer Dashboards SELL. SERVICE. MARKET. SUCCEED.

Introduction to General Psychology Spring 2014 PSY , Mon. & Wed.: 6-7:15

PAF 410: Intro to Web Design - Fall 2014

Spring 2015: Gordon State College. Barnesville, GA Online Course: Econ 2106 Microeconomics. Course Meeting Time and Location: Internet (D2L)

JOU4213 NEWSPAPER DESIGN / FALL 2015

Introduction to Organizational Behavior (Business 260)

PLAINVIEW CAMPUS SCHOOL OF FINE ARTS. Credit Hours: 3 Semester/Year: Spring 2014 Meeting Place: Online Time: Online

MATLAB as a Collaboration Platform Marta Wilczkowiak Senior Applications Engineer MathWorks

CS197U: A Hands on Introduction to Unix

SYLLABUS FOR CS340: INTRODUCTION TO DATABASES

or simply Google John Penn WVU and take the top hit. Useful Websites to Help the Organic Chemistry Class

CHF 201, Introduction to Child Development Academ-e Spring 2010 Online, 3 Credit Hours University of Maine January 11, 2010 February 26, 2010

FACT A computer CANNOT pick numbers completely at random!

MIS 0855 Spring 2015 Data Science

Human Services Associate Spring 2014 Student SLO Report

Wireless Network Security Spring 2015

Welcome to Cinema 105 online!

Majoring in Political Science. Program Chair Professor Charles Lipson

Basic info Course: CS 165 Accelerated Introduction to Computer Science Credits: 8 Instructor: Tim Alcon timothy.alcon@oregonstate.

CS 425 Software Engineering. Course Syllabus

How to Choose the Right Web Design Company for Your Nonprofit

BANA6037 Data Visualization Fall Semester 2014 (14FS) / First Half Session Section 001 S 9:00a- 12:50p Lindner 107

COLLEGE OF BUSINESS MGT8112 Leadership Skills Spring nd Eight Weeks

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

Mobile CPA Masher By Sterling Sherrell

Transcription:

ECE 458 Engineering Software for Maintainability Intro 1

Welcome! Welcome to ECE 458: Engineering Software for Maintainability Your Senior Design Course! Quick introductions: Please feel free to just call me Drew...and I d like you all to introduce yourselves 2

What this class is about Real software has a long lifespan In industry, you might work the same code base for years or decades Contrast with code you write in school: Turn it in, forget about it. Real world software s requirements evolve New features Changing requirements... How do we design software to ease later changes? Goal of this class: learn this by doing and reflection 3

What this class is not This class is not about learning to program I assume you already are a competent programmer You must have taken CS201, CS 250, CS 308 to be here.. This is not a lecture class Today is the only time I will have prepared slides I could talk about software design all day, but... You will really only learn by doing I m not the sage on the stage, I m the guide on the side So many profs say that, but in this case, I mean it. 4

What are we doing? One semester long project: Resource (room, projector, ) Scheduling Software Feedback from prior year: do something other than a game. Requirements staged into 4 evolutions. Add or change requirements from prior evolutions With each evolutions, submit a writeup. Two major parts: Forward looking (analysis of current design): What are its key features? Why did you design it this way? What do you see as its strengths? How about its weaknesses? Retrospective (analysis of past design choices): How did your past designs set you up to win or struggle? How did these outcomes align with your prior analyses? 5

Project Groups You will do your project in groups of 4 Pick carefully: fixed for the semester Considerations: Language choices Note: subject of next Monday s discussion Other tool choices Revision control, Skills and expertise Ideal: strong skills, complimentary expertise End of class: find groups, start planing ev1 6

Writeups No specific page limit/requirement Say what you need to say. Don t say more, don t say less. Highly recommend LaTeX + version control (git, ) You are all engineers: make good use of your tools Submit pdfs/latex only (no Word docs) Expect document to be Well-written: Organized, clear, precise. Include figures if they help Analytical: Delve into why your design is/was good/bad Tell me what was bad, and how it could have been better Hindsight is 20/20 Include discussion of testing plan (part of design) 7

Oral Presentations Day that evolutions are due: oral presentations Each group members presents once 17 minutes per group 75 minutes / 4 groups = 18.75 min but need some time to change groups, setup, etc. Rough outline (~4 min each) Quick demo of working project Retrospective from previous evolution Overview of current design Analysis of current design (include: why, strengths, weaknesses) Tight timeline, but don t rush 4 minutes is actually a pretty long time 8

Project Deadlines Evolution 1: Before class on 2/10 Released (now) [26 days] Evolution 2: Before class on 3/2 [21 days] Evolution 3: Before class on 3/30 [21 days + spring break] Evolution 4: Before class on 4/22 [23 days] 9

Class Time: Two ways Class discussions: Topics posted on class webpage (all posted now) Feel free to prepare other discussion points than those listed Readings (short) Some TBD Requested by previous classes Prepare ~1--2 pages of outline/notes on discussion Preparation should take ~30 minutes per discussion Typed up, will hand in during class Some discussions: general topics (good design, documentation..) Workdays Work with your group on your project I ll circulate around, answer questions, offer advice, etc. 10

Grading 45% software deliverables: How well did your code work? How well was it designed? 25% written deliverables: Technical/analytical content: how well did you describe/analyze? Writing: how well written are your documents? More strict as semester progresses 10% oral presentation: Each group member does one evolution s presentation 20% class attendance/participation: Come to class regularly (2 free abscences). Have your discussion notes prepared (grading: 0, 70, or 100) Actively participate in the discussions No exams 11

Academic Integrity Expect academic integrity from all of you Duke community standard I will not lie, cheat, or steal in my academic endeavors, nor will I accept the actions of those who do I will conduct myself responsibly and honorably in all my activities as a Duke student. Concrete rules: Discuss anything you want Give credit where its due if you use other groups ideas All code should be produced within your group Don t share code outside your group Can use libraries for graphics, sound, etc (e.g., SDL) as needed Not sure? ASK 12

Specifics of the Project Project: Resource Scheduling Software Many specifics are left up to you Web based? Desktop application? Mobile app? Your choice All 4 evolutions are already written I won t change them, no matter what you say in discussions Some students worried that I might put in their worst fears 13

Requirements (Continued) Requirements will be distributed as pdfs Colors to show new/changed requirements P.S. one LaTeX source, macros to control evolutions Unclear on requirements? Ask Happy to clarify anything Unspecified requirements/behavior? Do anything reasonable Don t need to be artistic Though feel free to make it look nice if you want 14

Submission Submission of projects by repository pull Your choice of revision control system Include writeup in repository Server: Have a test server and a production server Production server should have working evolution for 2 weeks after due date Recommend VM from OIT: http://vm-manage.oit.duke.edu Please nothing that requires Windows Linux or Mac are fine If you do anything mobile, please include instructions for emulator 15

Questions? Any questions? Before I turn you loose on evolution 1... 16

Evolution 1: Go! You all have a copy of the Evolution 1 requirements Time to get started! Find your groups Start talking about your design Sketch out some UML? Decide how to split up the work? What do you think the main challenges will be? How should you design to accommodate whatever changes I throw at you? What programming language do you want to use? Detailed discussion on Wednesday. Also, a good chance to ask for clarifications on the reqs 17