dr. tom waycsc 47001 semester review csc 4700 software engineering
TRANSCRIPT
![Page 1: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/1.jpg)
Dr. Tom Way CSC 4700 1
Semester ReviewCSC 4700 Software Engineering
![Page 2: Dr. Tom WayCSC 47001 Semester Review CSC 4700 Software Engineering](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071705/56649cdc5503460f949a6fdf/html5/thumbnails/12.jpg)
One last thing
• No idea is too crazy to try
Dr. Tom Way CSC 4700 12