You are on page 1of 7

1

CSC 413 - Software Development


1. Introduction to Software Development

1/27/2018

John Roberts

2
Overview
• Programming in the Large vs.
Programming in the Small

• Working with Existing


Codebases

• Tools

• CSC 413 Prepares your for a


Job

3 Survey/interactive

Programming in the Large * How many have worked on an industry team/production project?

• Large programs/systems are hard to understand and very * How large (LOC, user base, team size, different metrics)

complex
*
• How do we organize our thoughts to understand and modify
these systems?

• How do we organize programming teams to develop


systems?

• What are the principles used to organize and manage large


systems?

• How do we analyze and design these systems? (OOA, OOD)


3
4
Overview
• Programming in the Large vs.
Programming in the Small

• Working with Existing


Codebases

• Tools

• CSC 413 Prepares your for a


Job

5
Working with Existing Code

• You will most likely study code that has been developed
by someone else so you can modify it - this may be
overwhelming

• Be patient

• Be confident that you can do it

• Know when and how to ask questions!

6
Overview
• Programming in the Large vs.
Programming in the Small

• Working with Existing


Codebases

• Tools

• CSC 413 Prepares your for a


Job

6
7 You will get experience with each of these tools, time permitting (including
Tools writing your own manuals/documentation for projects you submit)
• What tools do we use to study the code?

• Debuggers and documentation

• Communication with co-workers

• Text from school (data structures, network programming, operations


systems, etc.)

• The Web (google is your friend)

• Manuals

• Understand coding conventions and principles

• Code profilers to study the efficiency of the components


7

8 Link goes to: https://netbeans.org/


IDE

• Netbeans is a popular Java IDE - make sure you have the


latest Java SDK

• I downloaded the “All” version, but you should be fine with


“Java SE” version (and can always add packs as needed)

9
Netbeans

• Homework (ungraded but important): Ensure you have


downloaded the Netbeans IDE (or another Java IDE you
are comfortable with), and explored some of its features -
familiarize yourself with your toolset!! Customize your
toolset!!

9
10
Netbeans - Try a Sample Project - Anagram

10

11
Netbeans - Try a Sample Project - Anagram

• Explore file structure - think about why files are arranged


the way they are

• Build and run the project

• Play with the code - make some changes (it’s OK to


break things to learn about them!)

11

12
Netbeans - Try a Sample Project - Anagram

• Use the debugger

• Set some breakpoints

12
13 Stop, Pause, Continue, Step Over, Step Over Expression, Step Into, Step Out,
Netbeans - Try a Sample Project - Anagram Run to Cursor
• Use the debugger

• Step through the code

13

14 Added idx here, value updates as we step through the code


Netbeans - Try a Sample Project - Anagram

• Use the debugger

• Set some watches

14

15 Demo git init, git commit, git branch, git checkout for now
Github
• Distributed version control

• Keeps a history of your code changes - commits

• Can revert to a previous version (commit)

• Can create a workspace that allows you to experiment without affecting


working code

• Create a free account! (Students can get some free private repositories as
well)

• Please note that public repositories for assignments will be considered


code sharing (i.e. cheating) - private repositories will be created for your
assignments, and these must be used (assuming github gives them to me)!

15
16
Overview
• Programming in the Large vs.
Programming in the Small

• Working with Existing


Codebases

• Tools

• CSC 413 Prepares your for a


Job

16

17
How will CSC 413 help prepare for your job?

• You will study the foundation principles of OOP that are


used to produce flexible, robust, re-usable, modifiable,
quality software

• You will study Java - a powerful language and


environment that provides the mechanism for delivering
state of the art applications in a distributed,
heterogeneous (web-based) environment

17

18
How will CSC 413 help prepare for your job?

• You will study a compiler for a block structured language


written in Java

• It’s a large program with code that illustrates the use of


the important OOP principles covered in the course

• It’s a large program so you will be confronted with the


task of understanding the system

18
19
How will CSC 413 help prepare for your job?

• You will modify components of the compiler

• Fix bugs

• Extend the system

19

20
How will CSC 413 help prepare for your job?

• You will build two large systems (games) in a team, and


present to the class

• Please note that teamwork is not optional - if you


would like to avoid working in a team, this is not the
course for you!

20

You might also like