150 likes | 324 Views
ITEC 370. Lecture 17 Implementation. Review. Questions? Design document due next W due to feedback being delayed Midterm on F Implementation Version control Tagging / Reversion Branching / Merging Git. Objectives. Approaches to implementation Scheduling. Scenario.
E N D
ITEC 370 Lecture 17 Implementation
Review • Questions? • Design document due next W due to feedback being delayed • Midterm on F • Implementation • Version control • Tagging / Reversion • Branching / Merging • Git
Objectives • Approaches to implementation • Scheduling
Scenario • You aren’t quite sure what the best way to implement the design is (i.e. it doesn’t go to the algorithm level) • What are different ways to accomplish this?
Preparation • Take the design process to the next level • Map out down to the variable what has to be done • Pro? • Con?
Prototyping • Not sure how to do X, or have only done once or twice, or code quality has to be the highest • Write the code, or part of the code • Rewrite it • Evaluate is it good enough • If not 3rd time is the charm • DGL example
Evolution • Plan for several stages • As you write more code, the stage you are at changes • Plan what goes into each stage • Simplistic example • Alpha, Beta, Final
Test first • Figure out what system should do for input case X,Y,Z • Determine if X,Y,Z covers all possible inputs expected • If not, come up with more test cases • Write code and then use tests to see if it works
Punt • Ask for help • Senior developer • Co-worker • Stack-overflow
Scheduling • Making a schedule is critical to being able to predict / implement your project on time • Steps • Determine a work “unit” (class, function, etc…) • Determine how many work units your design has • Simple division • Estimated LOC
Goals • Know yourself • Know your team • Who would be best for each part • How many LOC does X take • Not unlike guessing # of beans in a jar • Simple (Small, medium, large) • Expect 50 small, 25 medium, 10 large functions a week…
Project • Recommend that you break your design document down into units • Group each unit into areas • Have two methods for • Primary (Writing, initial testing) • Secondary (Matches design, works) • Tertiary (Verifies that is working, quality is correct)
Scheduling • Always going to be a non-exact science • People are not machines • We cannot see every detail for the future • We can plan for them…
Specialties • Play to your strengths • Typing speed • Algorithm picking
Review • Version control • Why • What is typically used • Example of Git