Software Engineering and OO-Design

32
Software Engineering and OO-Design CCNY-MIS-G2010 Michael D. Grossberg Wednesday, August 31, 2011

Transcript of Software Engineering and OO-Design

Software Engineering and

OO-DesignCCNY-MIS-G2010 Michael D. Grossberg

Wednesday, August 31, 2011

Instructor

Michael D. Grossberg

Office: 7/311

Office Hours: Wednesday 1:30-3:30 or by apt.

Lecture Time: Tuesday 6:50 - 9:20 PM

Location: NA/5123 or NAC 7/105 (LAB)

Wednesday, August 31, 2011

Grading

5-6 Homework Projects

Most HW problems for Teams of 2-3

You must to code in Python and use python CASE tools

2 midterms + final

Wednesday, August 31, 2011

PythonEasy Widely Used Programming Language

Very good software engineering tools

Good web programming support

www.python.org

python: Enthought Python Distribution (cool)

Avoid IDLE (it is flakey and not serious)

Wednesday, August 31, 2011

CASEComputer Assisted Software Engineering

Tools You Need To Use/Understand

Version Control: Mercurial == Hg

Unit/Integration/Functional Testing: Nose, Mock, Twill, Selenium, Lettuce

Continuous Integration: Hudson

Issue Tracking: Agilo/Trac

Wednesday, August 31, 2011

CASE ContinuedStatic Type Checker: Pylint

Virtual Environment: Virtualenv/Pip

Web Framework: Flask/Bottle

Build Tools: Scons/Make

Low-Fi Wireframe: Pencil/Inkscape

UML- DIA Diagram/Inkscape/ArgoUML

Documentation: Restructured Text/Sphinx

Wednesday, August 31, 2011

My Slides: Little Content

Read the TextbookWednesday, August 31, 2011

The Trouble StartedNATO Study Group on Computer Science 1968

Software becoming complex+large

over cost + time

need metrics and process

Software Engineering Needed

Wednesday, August 31, 2011

We Don’t need no Stinking Software

EngineeringWednesday, August 31, 2011

Wired Magazine 10 worst software bugs

Wednesday, August 31, 2011

Top? Bugs

July 28, 1962 -- Mariner I space probe

1982 -- Soviet gas pipeline

1985-1987 -- Therac-25 medical accelerator

Wednesday, August 31, 2011

Top?Bugs (cont.)

1988 -- Buffer overflow in Berkeley Unix finger daemon

1988-1996 -- Kerberos Random Number Generator

January 15, 1990 -- AT&T Network Outage

Wednesday, August 31, 2011

Top?Bugs

1993 -- Intel Pentium floating point divide

1995/1996 -- The Ping of Death

June 4, 1996 -- Ariane 5 Flight 501

November 2000 -- National Cancer Institute, Panama City

Wednesday, August 31, 2011

What Goes Wrong?

The path to hell.

Wednesday, August 31, 2011

Over budget

FBI’s Virtual Case File $170,000,000 Failure

2000-2005

Wednesday, August 31, 2011

Missed Deadlines

Wednesday, August 31, 2011

Who ordered this?

Wednesday, August 31, 2011

Low Quality

Wednesday, August 31, 2011

Poor Performance

Wednesday, August 31, 2011

Complexity

Wednesday, August 31, 2011

People

Product

Project

Process

P4

Wednesday, August 31, 2011

Waterfall(Royce)

Wednesday, August 31, 2011

Metric

Wednesday, August 31, 2011

Metrics to Track

Cost

Progress (Time)

Quality

Size/Complexity

Process Improvement

Wednesday, August 31, 2011

Read Chapters 1-2

1.9 Problem 2 (from wired 10) write 1-page in RestructuredText

1.9 Problem 8

2.7 Problem 5

Wednesday, August 31, 2011

Theory vs. Practice

Wednesday, August 31, 2011

Software EngineeringPlanning vs. Testing

Wednesday, August 31, 2011

Software EngineeringPlanning and Testing

Wednesday, August 31, 2011

Software Carpentry

Version Control start learning about SVN

Then learn HG: will use HG, get bitbucket account, put hw there, give me access

The Shell watch all but 1-3+9 critical

Python Intro,Basics, Control Flow, Lists

Wednesday, August 31, 2011

HW ProgrammingCheck a file into a repo bit bucket with the Gettysburg address, now change the file to have the contents of The New Colossus and push the change

Check in pervious exercises (on SE)

Do all the short problems http://software-carpentry.org/4_0/python/exercises

Check them into the same hw 1 repo

Wednesday, August 31, 2011

Don’t email me hw

Email me link to your repo on bitbucket

All your hw MUST be in repo:

I will not grade attachements zip files or word docs

Don’t use word documents PLAIN TEXT

Wednesday, August 31, 2011