Recap by zhouwenjuan


									                 Semester Review
              CSC 4700 Software Engineering

Dr. Tom Way               CSC 4700            1
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
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

Dr. Tom Way             CSC 4700                   3
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
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
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
What else was learned?

• Team member evaluation
• Team-based collaboration, what works, what
• 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
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
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
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
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
One last thing

• No idea is too crazy to try

Dr. Tom Way            CSC 4700   12

To top