Lesson Plan Course Title: Advanced Computer Programming Session Title: Project Management Basics Lesson Duration: Weeks/Days/Hours/Minutes 3 weeks Performance Objective: Upon completion of this assignment, the student will be able to: identify various features of Project Management such as development models, software life cycle and their components. The student should also be able to: perform some of the functions such as creating and implementing a test plan and time management. Specific Objectives: • The student will be able to determine how rapidly they develop software using a burn down chart. • The student will be able to identify and list the components of the Software Life Cycle • The student will be able to perform a needs analysis on a set of requirements through creating user stories. • The student will be able to identify and describe several software development methodologies. • The students will be able to prepare, develop and perform a software test plan. Preparation TEKS Correlations: 130.277 (c) • 1.I – demonstrate planning and time-management skills such as project management and storyboarding • 3.D – conduct project needs analysis • 4.B – identify software resources and individual project risks • 4.C – identify software development methodologies • 6.A – articulate the information system life cycle • 6.B – identify system analysis issues related to design, testing, implementation, and maintenance • 6.D – identify current information life cycle models • 8.S – prepare a project testing plan • 9.A – develop a test plan • 9.C – develop test cases • 9.D – perform software testing Instructor/Trainer References: • Huijbers, Rico, Funs Lemmens, Bram Senders, Sjoerd Simons, Bert Spaan, Paul Van • • • • • • Tilburg, and Koen Vossen. Software Project Management: Methodologies & Techniques. Thesis. Technische Universiteit Eindhoven, 2004. Print. Schach, Stephen R. Software Engineering with Java. Chicago: Irwin, 1997. Print. Kölling, Michael. "Unit Testing in BlueJ." Web. 3 June 2011. <http://bluej.org/tutorial/testing-tutorial.pdf>. CodingBat. Web. 30 May 2011. <http://javabat.com>. Rosetta Code. Web. 26 May 2011. <http://rosettacode.org/>. HP CodeWars - Home. Web. 26 May 2011. <http://hpcodewars.org/>. Content developer knowledge Instructional Aids: Presentations Project Management – Basics Project Management – Software Life Cycle Project Management - Methodologies Worksheets Waterfall Model worksheet Iterative Model worksheet Life Cycle Pitfalls worksheet Quizzes (Quiz and Key provided for each) Project Management Basics Quiz Project Management Software Life Cycle Quiz Project Management Methodologies Quiz Case Study Labs (Lab and Key provided for each) Lab 1 – Requirements Lab 2 – Planning Lab 3 – Implementation Lab 4 – Verification Case Study Student Source Files (a solution is also provided, though the instructor is encouraged to create their own solution) Calculator.java CalcEngine.java CalcView.java Materials Needed: JavaDocs (either through internet access or saved to student’s workstation) Copies of Worksheets Copies of Quizzes Copies of Labs Student Files should be loaded on student computers, or provided in some manner. Equipment Needed: Each student will require a computer with a java compiler with a java JDK version of 1.5 or newer. Learner IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 2 • • Students should have observation journals to record common errors and other observations. Students should be comfortable with the concepts of Objects, Object-Oriented Design and be able to develop a simple program. Introduction MI Introduction (LSI Quadrant I): Present the students with the following scenario: You are part of a programming team developing an application. There are six of you working on the same program. What are some of the things you can do to make sure that each of you does your fair share of the work, but at the same time get the program to work with as little tweaking as possible? Outline MI Outline (LSI Quadrant II): Instructor Notes: I. Project Management Basics a. Initiation b. Planning c. Execution d. Closure This is an overview. II. Software Life Cycle a. Requirements b. Design c. Implementation d. Verification e. Deployment f. Maintenance g. Implementations After the overview here, you can safely start the Case Study. For the case study, it is important to focus on the process more than the correctness of the code. The Basics Slides go over this information. This material is covered in the Software Life Cycle Slides. III. Methodologies a. Waterfall b. Rational Unified Process c. eXtreme Programming This section is covered in the Methodologies Slides. Note that Waterfall is considered a bad example of design methodology. Also, eXtreme Programming is properly capitalized Application MI Guided Practice (LSI Quadrant III): IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 3 Students should be guided through the first two labs. It may even be helpful to have them work on the labs in pairs or teams of three (but no larger). MI Independent Practice (LSI Quadrant III): Completion of Worksheets and Case Study. Summary MI Review (LSI Quadrants I and IV): Students will incorporate the concepts introduced by completing the hands on labs as well as worksheets. It would also be a good idea to have the students keep an observation journal to record observations of common errors they encounter and what kinds of results they are getting. Evaluation MI Informal Assessment (LSI Quadrant III): There are periodic questions in the presentations that the instructor can use to gauge some level of understanding. The instructor should present the students with a scenario, and, in small groups, have the students determine the most appropriate data structure to represent the scenario, and why they chose it. You may also use the worksheets to assess whether or not the students are progressing well. The worksheets are important in determining whether or not the students are ready to complete the quizzes themselves. MI Formal Assessment (LSI Quadrant III, IV): Instructor may use any or all of the following instruments for formal assessment: Basics Quiz Software Life Cycle Quiz Methodologies Quiz Case Study Results User Stories (use cases) Design plan Test Plan Burn-Down Chart Completed Tests IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 4 Extension MI Extension/Enrichment (LSI Quadrant IV): There are many more project management methodologies and techniques. Students may consider exploring other methodologies such as SCRUM or Agile. Students interested in project management should be encouraged to read any of the numerous books on the subject such as “The Mythical Man Month” or “The Pragmatic Programmer.” Ambitious students may consider applying for an internship with a local software development company. Icon MI Verbal/ Linguistic Logical/ Mathematical Visual/Spatial Musical/ Rhythmic Bodily/ Kinesthetic Intrapersonal Interpersonal Naturalist Existentialist Teaching Strategies Personal Development Strategies Lecture, discussion, journal writing, cooperative learning, word origins Reading, highlighting, outlining, teaching others, reciting information Problem solving, number games, critical thinking, classifying and organizing, Socratic questioning Mind-mapping, reflective time, graphic organizers, color-coding systems, drawings, designs, video, DVD, charts, maps Use music, compose songs or raps, use musical language or metaphors Organizing material logically, explaining things sequentially, finding patterns, developing systems, outlining, charting, graphing, analyzing information Developing graphic organizers, mindmapping, charting, graphing, organizing with color, mental imagery (drawing in the mind’s eye) Use manipulatives, hand signals, pantomime, real life situations, puzzles and board games, activities, roleplaying, action problems Reflective teaching, interviews, reflective listening, KWL charts Cooperative learning, roleplaying, group brainstorming, cross-cultural interactions Natural objects as manipulatives and as background for learning Socratic questions, real life situations, global problems/questions Creating rhythms out of words, creating rhythms with instruments, playing an instrument, putting words to existing songs Moving while learning, pacing while reciting, acting out scripts of material, designing games, moving fingers under words while reading Reflecting on personal meaning of information, studying in quiet settings, imagining experiments, visualizing information, journaling Studying in a group, discussing information, using flash cards with other, teaching others Connecting with nature, forming study groups with like minded people Considering personal relationship to larger context IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 5 Name: _______________________ Date: _______________ Period: _______ Project Management – Waterfall Model Draw a diagram of the Waterfall Model: IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 6 Name: _______________________ Date: _______________ Period: _______ Project Management – Waterfall Model KEY Draw a diagram of the Waterfall Model: IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 7 Name: _______________________ Date: _______________ Period: _______ Project Management – Iterative Model Draw a diagram of an iterative model: IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 8 Name: _______________________ Date: _______________ Period: _______ Project Management – Iterative Model KEY Draw a diagram of an iterative model: IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 9 Name: _______________________ Date: _______________ Period: _______ Project Management – Life Cycle Pitfalls List at least two pitfalls that might occur during each of the stages of the Software Life Cycle. Requirements Gathering Design Implementation Verification Maintenance IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 10 Name: _______________________ Date: _______________ Period: _______ Project Management – Life Cycle Pitfalls KEY List at least two pitfalls that might occur during each of the stages of the Software Life Cycle. Requirements gathering: Any of the answers below are valid: - Client says one thing but means something else - Not all requirements are specified (incomplete specification) - Misunderstanding about what the client wants Design: Any of the answers below are valid: - Misinterpretation of requirements - Inefficient or wrong solution to a problem - Incomplete or over-complicated design Implementation Any of the answers below are valid: - Implementing faulty or “buggy” code - Misinterpretation of design - Not following the design and “doing your own thing” - Mismatched components preventing integration - Lack of communication between developers - Overwriting or deleting someone else’s work - Not understanding someone else’s code and changing how it works Verification: Any of the answers below are valid: - Incomplete tests (not testing for something you should) - Ignoring test results - Misinterpreting test results IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 11 Maintenance: Any of the answers below are valid: - Misinterpretation of requests from client - “Fixing” something that isn’t broken - Almost any of the concerns that may arise during the rest of the software life cycle IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 12 Name: _______________________ Date: _______________ Period: _______ Program Management – Basics Quiz 1. Which of the following Project Management processes determines the feasibility of a project? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 2. Which of the following Project Management processes would include selecting a development team? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 3. Which of the following Project Management processes would involve Risk Assessment and Risk Management? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 4. Which of the following Project Management processes would scheduling occur in? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 5. Which of the following Project Management processes would a development methodology be selected? a. Project Initiation IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 13 b. Project Planning c. Project Execution d. Project Closure 6. What is a CASE tool? a. A device to examine the inside of a computer b. A program to package software c. A program to aid in the design of software d. Computer Aided Software Evaluator 7. What methodology are the methodologies discussed in this lesson? a. Rational Unified Process b. Waterfall c. eXtreme Programming d. all of the above 8. Which of the following Project Management processes includes writing code? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 9. Which of the following Project Management processes includes quality assurance? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 10. Which of the following Project Management processes might involve a postmortem? a. Project Initiation b. Project Planning c. Project Execution IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 14 d. Project Closure 11. During which of the following Project Management processes would you deliver software to the client? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 15 Name: _______________________ Date: _______________ Period: _______ Program Management – Basics Quiz KEY 1. Which of the following Project Management processes determines the feasibility of a project? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 2. Which of the following Project Management processes would include selecting a development team? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 3. Which of the following Project Management processes would involve Risk Assessment and Risk Management? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 4. Which of the following Project Management processes would scheduling occur in? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 5. Which of the following Project Management processes would a development methodology be selected? a. Project Initiation IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 16 b. Project Planning c. Project Execution d. Project Closure 6. What is a CASE tool? a. A device to examine the inside of a computer b. A program to package software c. A program to aid in the design of software d. Computer Aided Software Evaluator 7. What methodology are the methodologies discussed in this lesson? a. Rational Unified Process b. Waterfall c. eXtreme Programming d. all of the above 8. Which of the following Project Management processes includes writing code? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 9. Which of the following Project Management processes includes quality assurance? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure 10. Which of the following Project Management processes might involve a postmortem? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 17 11. During which of the following Project Management processes would you deliver software to the client? a. Project Initiation b. Project Planning c. Project Execution d. Project Closure IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 18 Name: _______________________ Date: _______________ Period: _______ Program Management – Software Life Cycle Quiz 1. Which step of the Software Life Cycle would involve testing software? a. Design b. Implementation c. Requirements d. Verification 2. Which step of the Software Life Cycle would involve programming? a. Design b. Implementation c. Requirements d. Verification 3. Which step of the Software Life Cycle would involve requirements analysis? a. Design b. Implementation c. Requirements d. Verification 4. Which step of the Software Life Cycle is used to determine what the software should do? a. Design b. Implementation c. Requirements d. Verification 5. List one pitfall that could occur during requirements gathering: IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 19 6. List one pitfall that could occur during design: 7. List one pitfall that could occur during implementation: 8. List one pitfall that could occur during verification: IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 20 9. List one pitfall that could occur during maintenance: 10. Draw a diagram of the Waterfall Model: 11. Draw a diagram of an iterative model: IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 21 Name: _______________________ Date: _______________ Period: _______ Program Management – Software Life Cycle Quiz KEY 12. Which step of the Software Life Cycle would involve testing software? a. Design b. Implementation c. Requirements d. Verification 13. Which step of the Software Life Cycle would involve programming? a. Design b. Implementation c. Requirements d. Verification 14. Which step of the Software Life Cycle would involve requirements analysis? a. Design b. Implementation c. Requirements d. Verification 15. Which step of the Software Life Cycle is used to determine what the software should do? a. Design b. Implementation c. Requirements d. Verification 16. List one pitfall that could occur during requirements gathering: Any of the answers below are valid: - Client says one thing but means something else - Not all requirements are specified (incomplete specification) - Misunderstanding about what the client wants IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 22 17. List one pitfall that could occur during design: Any of the answers below are valid: - Misinterpretation of requirements - Inefficient or wrong solution to a problem - Incomplete or over-complicated design 18. List one pitfall that could occur during implementation: Any of the answers below are valid: - Implementing faulty or “buggy” code - Misinterpretation of design - Not following the design and “doing your own thing” - Mismatched components preventing integration - Lack of communication between developers - Overwriting or deleting someone else’s work - Not understanding someone else’s code and changing how it works 19. List one pitfall that could occur during verification: Any of the answers below are valid: - Incomplete tests (not testing for something you should) - Ignoring test results - Misinterpreting test results IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 23 20. List one pitfall that could occur during maintenance: Any of the answers below are valid: - Misinterpretation of requests from client - “Fixing” something that isn’t broken - Almost any of the concerns that may arise during the rest of the software life cycle 21. Draw a diagram of the Waterfall Model: 22. Draw a diagram of an iterative model: IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 24 IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 25 Name: _______________________ Date: _______________ Period: _______ Program Management – Methodologies Quiz 1. What is the most commonly used software development models? a. Waterfall b. Rational Unified Process (RUP) c. eXtreme Programming (XP) d. None of the above 2. What are the six steps of Waterfall development, in order? 3. What is an advantage of using Waterfall Development? 4. What is a disadvantage of using Waterfall Development? 5. What is an advantage of using Ration Unified Process Development? IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 26 6. What is a disadvantage of using Ration Unified Process Development? IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 27 Name: _______________________ Date: _______________ Period: _______ Project Management – Case Study Lab 1 Introduction: To examine the various stages of Project Management you are going to use the development process to design and build a four function calculator. Each step of the way, you will focus on an aspect of the software life cycle and get a feel for how project management is implemented. To get started, you need to gather the requirements for the project. The client has requested that you build a four function calculator. The client has drawn a sketch of what they want it to look like using a digital paint program. The program should be in a window. There needs to be a display and 16 button: the 10 numbers, the four functions +,-,/ and *, as well as a Clear button to clear the screen and register and an equals button to evaluate the last entered equation. When the program is opened, it should display the number 0 and the register should be storing a null value (the integer null value is 0). The number displayed in the display should be the last number in the register unless the user has pressed a number button. If a number button is pressed, the display should show the number being typed in until an operator is pressed. Once an operator is pressed, the value should be calculated, stored in the register and then display that number in the register. Assignment: With a partner, try to come up with a complete set of User Stories and Use Cases for how a four function calculator might be used. For example, a use case might be: “I press the ‘C’ button and it clears the register and the display displays the number 0.” IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 28 Name: _______________________ Date: _______________ Period: _______ Project Management – Case Study Lab 1 KEY The students should have a series of use cases similar to the list provided. They should have at least those shown here. They may have more, depending on how ambitious they are. You may want to suggest the ones they are missing to help guide them. “I press the ‘C’ button and it clears the register and the display displays the number 0.” “When I open the Calculator, the display window shows the number 0.” “When I press a number button, it multiplies the value in the register by ten then adds the number I pressed. The number being typed is shown in the display without the components from the register.” “When I press an operator, it applies the last operator on the value in the register and the value in the display (register op display) and stores the result in the register then shows the value in the register.” IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 29 Name: _______________________ Date: _______________ Period: _______ Project Management – Case Study Lab 2 Planning: Now that we know what the requirements are, we need to look at how we are going to put the program together. To do this, you are going to put together a plan to assemble the project and design a test plan to determine if the program works. To eliminate the frustration of having to figure out the GUI, a graphical interface is provided for you. All you have to do is fill in the details of a Calculation Engine or CalcEngine. We know we have to support addition, subtraction, division and multiplication, but what about = or evaluation? Also, how should we handle entering numbers? Assignment 1 Create a design for how you plan to implement individual features. Include a design for: - Storing the number displayed - Performing the operations - Evaluating a value based on the value in the register and the one in the display - How to store numbers entered from the button pad - Anything else you think you might need. Assignment 2 Create a test plan. Come up with a series of at least 10 tests that you will use to determine if the calculator is functioning properly. An example test would be “Press 3, then 2, then 5. The number 325 should show in the display.” IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 30 Name: _______________________ Date: _______________ Period: _______ Project Management – Case Study Lab 2 KEY Planning: Assignment 1 Develop a solution for the calculator project and compare the students’ plans with your solution (or use the solution provided with the lesson). A valid answer will contain ideas on how to solve all the key problems: • Storing the number displayed • Performing the operations • Evaluating a value based on the value in the register and the one in the display • How to store numbers entered from the button pad A correct answer is less important than the process of developing the plan, but help students with suggestions on how they can improve their design. For example, for “Store the number displayed,” if they said, “create a variable to store the number entered,” this is minimal effort, but at least they know they need a variable. A complete design spec for that specific line would look something like: “Accept input from the interface. Each time a number is received, append the number to the end of the sequence. This can be done by storing the value as a string and using the append() method of the String class. The String will be directly set to the textfield.” This is not the only solution, as you see in the solution provided; the number was stored as an int. Again, the actual solution doesn’t matter; thinking about viable solutions is what matters here. Assignment 2 The test plan needs to include at a minimum the following features: A test to insure numbers are entered correctly A test for each of the operators to make sure they work ( + , - . * , / , = , and C) IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 31 Name: _______________________ Date: _______________ Period: _______ Project Management – Case Study Lab 3 Implementation: You are ready to implement your program. Before you do, though, we’re going to look at one of the things you need to do in Project Management…time tracking. There are 6 features in the calculator that you are going to implement: • number entry • addition • subtraction • multiplication • division • evaluation Assignment Draw a graph with six marks on the y axis and 25 marks on the x axis The y axis is the number of features you are going to implement; the x axis is 10 minute intervals. Place a dot on x = 0, y = 6. This is your starting position. Then begin implementing your calculator. When you finish a feature, mark the amount of time it took you since the last feature. You should have a descending graph. Your chart should look like the example when you are done. This is called a burn-down chart. IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 32 Name: _______________________ Date: _______________ Period: _______ Project Management – Case Study Lab 3 KEY Assignment Check each student’s graph to make sure it looks similar to the one on the right. Check often to ensure they are recording it correctly. Don’t worry if it takes longer than the 4 hours allotted. IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 33 Name: _______________________ Date: _______________ Period: _______ Project Management – Case Study Lab 4 Verification: Now that you’ve implemented your calculator, get out the test plan you created in Lab 2. Run your test plan determining if the tests pass or fail. If any fail, make corrections and run the tests again (keep separate copies of each test run). Once all your tests pass, you are ready to move to deployment. Deliver your project to your teacher with all copies of your test runs. Since this is a simple project, you probably won’t need to worry about maintaining it…unless you wanted to add features….see your teacher for extra credit… IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 34 Name: _______________________ Date: _______________ Period: _______ Project Management – Case Study Lab 4 KEY Verification: Check to make sure the students have run all their tests and determined if they passed or failed and made necessary corrections. IT: Advanced Computer Programming: Data Structures Lesson Plan Copyright © Texas Education Agency, 2013 35