Lab02 Briefing

Embed Size (px)

Citation preview

  • 8/20/2019 Lab02 Briefing

    1/19

    Lab 2 – Running “SmallWorld”

    CSC 527 Software Engineering Principles

    This lab

    • SmallWorld

    • Work in teams

    • Check-out and compile your team’s SmallWorld code from SVN

    • Run the two user interfaces

    • Create a simple new game data file

    • Enhance SmallWorld so that it is possible to win the game

    • Answer some questions

  • 8/20/2019 Lab02 Briefing

    2/19

    Lab overview

    Lab 1: SourceCode Control

    Lab 2: Running“SmallWorld”

    Lab 5:Transitioning

    “SmallWorld”

    Lab 4:Implementing

    items in“SmallWorld”

    Lab 3: Modelsof

    “SmallWorld”

    Postmortem PostmortemPostmortem

    Postmortem

    “SmallWorld” labs (teams)

    You are here

  • 8/20/2019 Lab02 Briefing

    3/19

    The SmallWorld Project

    • Scenario: the ENTIRE development team quit during thesoftware project (they all got better jobs with Google for more$$$) and YOUR TEAM has been hired as their replacementsto FINISH the project

     – You must first understand the current state of the project

     – Understanding includes reverse engineering the current code,reviewing artifacts, understanding

    1) the current architecture,2) the current test/unit strategy, and3) the requirements that have been elicited / analyzed / tested / implemented

     – Each “lab” or iteration will allow you to progressively increase your

    understanding as you perform varying levels of requirementsspecification, analysis, design, implementation, testing, anddeployment

     – The team “environment” has already been established: Java Eclipse,JUnit testing, SVN version control, Powerpoint artifacts, Javadocsource documentation,

  • 8/20/2019 Lab02 Briefing

    4/19

    Labs in Terms of RUP

    Lab 02 Lab 03 Lab 05Lab 04

    You will implementadditionalfunctionality

    consistent with aniterative RUP

    process

    To enhance learning, you will also learn basic OOA/OOD modeling skillswith UML and create/refine existing RUP artifacts

  • 8/20/2019 Lab02 Briefing

    5/19

    Software

    Development

    Activities

    • New functionality:win game

    • Given design toimplement

    • Test/ document

    Lab 2: Running“SmallWorld”

    Lab 5: FeatureX/ Transitioning

    “SmallWorld”

    Lab 4:Implementing

    items in

    “SmallWorld”

    Lab 3: Modelsof

    “SmallWorld”

    • Enhance existinggame functionality

    • Reverse engineerusing sequencediagrams

    • Performrequirementsanalysis givenitem problemdescription

    • Do requirementselicitation for newgame concept

    • Given apredeterminedobject design foritemenhancement,implement it andtest

    • Perform analysisand design workon new gameconcept

    • Given youranalysis anddesign for newgame concept,implement it

    • Create test planand execute

    • Market andtransition newfeature

  • 8/20/2019 Lab02 Briefing

    6/19

    This lab

    •   Objective: To examine, execute, and enhance (so youcan win) the SmallWorld game – Each team will work to collectively create the functionality – Each individual will be responsible for certain turn-in items

    • You and your team will perform the following tasks: – Check-out and compile your team’s SmallWorld code – Run the two user interfaces – Create a simple new game data file – Enhance SmallWorld so that it is possible to win the game

    • Turn In – Working code in your repository “color” – Team answers to the questions at the end of the lab – Each team member’s new game data file

  • 8/20/2019 Lab02 Briefing

    7/19

    Source Code Control Reminders

    • Update: downloads any changes from the repositoryto your sandbox (local copy) – Best practice is to update on a regular basis

    • Commit or add: upload any changes you have madein your sandbox (local copy) up to the repository – Best practice is to commit only code you have tested,

    unless you are sharing code for other team members totake a look at

    • Merge: when changes that have been committedconflict with either the repository or your sandbox andyou need to decide what to keep or what to restore

  • 8/20/2019 Lab02 Briefing

    8/19

    SmallWorld

    • The Colossal Cave Adventure game, producedin the '70s, was the historic first "interactivefiction" game, in which the computer wouldsimulate and describe a situation and the user

    would type in what to do next, in simple English.

  • 8/20/2019 Lab02 Briefing

    9/19

    Check-out and compile your team’s

    code (each team member)

    • Using same SVN configuration asLab1

    Check out the SmallWorld project

    Demo

  • 8/20/2019 Lab02 Briefing

    10/19

    Run the two user interfaces

    (each team member)

    • Console-based

    • Graphical

    Demo

  • 8/20/2019 Lab02 Briefing

    11/19

    Create a simple new game data file

    (each team member)

    • Small world uses an XML gamedata file to define the world itpresents to the user

    – DefaultWorld.xml is the default it

    is located in the persistence package

    • You will create a new two- orthree-room game data file andload it into the game

    • Objective: To give you a feel of thedata-driven design of SmallWorld

  • 8/20/2019 Lab02 Briefing

    12/19

    SmallWorld: Default World

  • 8/20/2019 Lab02 Briefing

    13/19

    Game data file example

  • 8/20/2019 Lab02 Briefing

    14/19

    Creating a world file

    • Methodology: write a program – Create a “package” for the team to run demo code and

    experimental code (will not become part of the finaldistribution)

     – Create a class with a main() method – Create a World object and populate it with some places

     – Save the World to a file

     – Use this approach to LEARN the methods/attributes ofthe various class files.

    • Test your file! – Load it into the game and play it

     – Pay attention to any error messages

  • 8/20/2019 Lab02 Briefing

    15/19

    Enhance SmallWorld so that it is

    possible to win the game (team)

    • Feature – When the player enters a specific

    room they win the game and thegame ends

    • Solution has been designed

    • Code change to – Model

     – Controller

     – Persistence

    Optional, but highly recommended: Try coding a JUnit test file thatwill test your game win feature

  • 8/20/2019 Lab02 Briefing

    16/19

    Enhance SmallWorld so that it is

    possible to win the game (team)

    • Javadoc: Document anychanges using embeddedJavadoc statements

    • Generate the Javadoc for theProject

  • 8/20/2019 Lab02 Briefing

    17/19

    Iteration #1: Add Win Game Functionality

    Elicitation – How would use cases/scenarios change?

    •  Analysis – How would the domain model change? – Attributes, associations, classes

    • Design – How would the design model change? – Detailed versions of class diagram

    • Implementation – The lab assignment explicitly details specific implementation steps

    • Testing – Consider writing a JUnit test to exercise the new functionality… I will use a

    standard JUnit test to judge the correctness of your implementation

    Look at SmallWorld Analysis Model

  • 8/20/2019 Lab02 Briefing

    18/19

    Team:

    Post Mortem Format

    • Lessons Learned (2-4)

     – Knowledge that would benefit OTHER developersthat were in your same shoes

     – Knowledge that you wish you had known at thebeginning (versus at the end)

     – Important realizations!

     – Problems encountered, particularly of a technical

    nature, and how you overcame them

     – 5 to 10 minute brief MAX!

  • 8/20/2019 Lab02 Briefing

    19/19

    Layered architecture