dr. tom waycsc 47001 semester review csc 4700 software engineering

12
Dr. Tom Way CSC 4700 1 Semester Review CSC 4700 Software Engineering

Upload: marian-francis

Post on 16-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

Dr. Tom Way CSC 4700 1

Semester ReviewCSC 4700 Software Engineering

Page 2: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What have we learned?

• What is Software?• What is Software Engineering?• Why is it important?• What are the careers in SE?• What are requirements?• User requirements, system requirements• Functional vs non-functional requirements• Domain requirements

Dr. Tom Way CSC 4700 2

Page 3: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What else have we learned?

• Natural language can produce lack of clarity• Requirements vs. software specification• Fred Brooks says “No silver bullet!”• Specify tying shoe laces• Project brainstorming• Team management• Agile software development• SCRUM

Dr. Tom Way CSC 4700 3

Page 4: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What more have we learned?

• Agile Manifesto• Extreme programming, pair programming• Refactoring• Bad smells in code, lots of examples• The rule of 3 (third time you code

something, make it reusable instead)• Hands-on refactoring with Eclipse• Designing a prototype

Dr. Tom Way CSC 4700 4

Page 5: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What other stuff did we learn?

• Throw-away prototyping• Incremental development• Evolutionary development• Prototyping tools and toolkits (e.g.,

PowerPoint)• Joel on Software, great site for SE info• More and more about SCRUM• User interface design, good vs bad ideas• Downfall of Agile Hitler

Dr. Tom Way CSC 4700 5

Page 6: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What other things were learned?

• Project presentations• Informal demos of software• Pitfalls of live software demos• Impact of early design choices• Impact of early technology choices• Impact of early organizational choices• Speed prototyping – simple web browser• Porting code – from C to Java

Dr. Tom Way CSC 4700 6

Page 7: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What else was learned?

• Team member evaluation• Team-based collaboration, what works,

what doesn’t• Software design specifications• IEEE standard specification template• What goes into a specification• Purpose and goal of specification• Project management – people make it tricky

Dr. Tom Way CSC 4700 7

Page 8: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What are other things learned?

• The HOPE method is not a great approach• What’s it like working at Google• What things help at a job interview• Open source vs free software• Who is Richard Stallman?• Losing momentum is painful on software

project• Multi-location collaboration is hard• Multi-location collaboration happens a lot

Dr. Tom Way CSC 4700 8

Page 9: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What are ideas were learned?

• Test-driven development is a good thing• Eclipse (or NetBeans) and JUNIT enable TDD• Bug tracking is vital• FogBugz is easy to use and widely used• Design patterns are important• There are lots of design patterns• Anti-patterns are important (to recognize)• There are lots of anti-patterns (to fix)

Dr. Tom Way CSC 4700 9

Page 10: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What is possible in a semester?

• Develop a desktop widget (Rita’s Water Ice)• Google Maps enable cool running route app• GameMaker helps with RPG games• Sprite editor tools are needed, not too hard• Swipe tracking app on iPhone is not too hard• University technology bureaucracy is hard• Visual basic and automate spreadsheet analysis• GameMaker is good for retro-style game design

Dr. Tom Way CSC 4700 10

Page 11: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

What is possible in a semester?

• MyNova is universally despised• MyNova Mobile is a welcome and steal-able idea• Assume users will do dumb things• Interactive storytelling software exists, is usable• Java provide encryption support, apps doable• Online APIs are available for lots of things• MovieGame API speeds up development• Interactive iPhone Pong is tricky, timing hard

Dr. Tom Way CSC 4700 11

Page 12: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering

One last thing

• No idea is too crazy to try

Dr. Tom Way CSC 4700 12