The hardest single part of building a software system is deciding precisely what to build. — F.P. Brooks, The Mythical Man Month, 1975
  1. Requirements Analysis — Focus on the “Overview”–“Stakeholder interviews” & “Requirements analysis issues”.

    1. Compare and contrast the purpose of the analysis and design phases?
    2. Who are the stakeholders of a project? Please sign up as a stakeholder for some other project before Friday’s lab (see the “Team Stakeholders” list in our Moodle course; cf. homework #3).
    3. How are requirements identified and recorded?
    4. What is the difference between functional and non-functional requirements? (You’ll need to search for this one on the wiki page.)
    5. What are the key issues related to requirements and requirements elicitation?
    6. To what does FURPS refer?
  2. Requirements Modeling

    1. Unified Modeling Language — Focus on the introduction and the “Diagrams” section.

      1. What is UML?
      2. Compare and contrast UML’s two diagram categories.
      3. Familiarize yourselves with the following diagram types.
        • Use case
        • Class
        • Sequence
        • Deployment
        We will use these in this course, starting this week with use-case models and continuing with the other diagrams in later units.
    2. Use cases(and use case diagrams) — Focus on the introduction & “Fowler style”–“Examples”.

      1. What is the purpose of use case analysis.
      2. What are the elements of Fowler’s use cases?
      3. What do the actors, use cases and association links represent in a UML use case diagram?
    3. User stories — Focus on the introduction, “Format”–“Usage” & “Comparing with use cases”.

      1. What is a user story?
      2. What is the “Five Ws” format for a user story.
      3. Compare and contrast user stories and use cases.
  3. Re-read Postman’s article: “Five Things We Need to Know About Technological Change”, focusing on the second of his ideas.

    1. Briefly name Postman’s five ideas.
    2. Describe his second idea and explain whether or not you agree with him.
  4. Technology Stack

    1. React Navigation: Getting started — Preview the first two sections:

      • “Getting started” — If you want to work on your own machine, install React Navigation as explained here. Otherwise, skip on to the next section.
      • “Hello React Navigation” — Read the first few paragraphs here, making sure that you can compare and contrast standard hyperlink navigation on the Web with inter-page navigation in a ReactNative application.

      We’ll build and extend this sample application in the lab exercises.

    2. Using List Views — Review the purpose and use of the FlatList component. The extended lab application will use this component.