intro to software development

Post on 22-Jan-2017

394 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Intro to Software Development

Introduction

• Who are we?• What do we do?• Why do we do this?

Agenda

• Software Development Life Cycle• Discovering Software Requirements• Programming Languages• Choosing a Language• Software Development• Software Testing • What next?

SOFTWARE DEVELOPMENT LIFE CYCLE

Waterfall

Waterfall Development

Agile

Agile Development

DISCOVERING SOFTWARE REQUIREMENTS

Traditional Requirements Discovery

Use Cases

Agile Requirements Discovery

Traditional vs. Agile Requirements

SOFTWARE DESIGN

Software Design Process

PROGRAMMING LANGUAGES

Generations● Machine Language (1GL)

o Very low level, tedious and error-prone● Assembly Language (2GL)

o Usually specific to a particular processor family and environment

● High-level Languages (3GL)o Independent of a particular type of computer

hardware● Fourth Generation Languages (4GL)

o Provides a higher level of abstraction than 3GLs

o Closer to natural human languages ● Natural Language

o Ambiguous and hard for computer to understand

Choosing a Language

Useful Criteria● Best suited to the problem you

are trying to solve● Widely available● Widely used

● Problem Domainso Dynamic web sites and applications o Web Plugins and widgetso Web based gameso Automation of system admin taskso Popular choices for learning programming

● Communitieso http://phpcommunity.orgo https://www.python.org/community/o https://www.ruby-lang.org/en/community

/

o https://plus.google.com/communities/100875929141897651837

● Problem Domains

● Client/server applications and APIs

● Mobile applications and games● Communities

o http://www.meetup.com/Londonjavacommunity/

o http://www.csharpforums.net o http://androidcommunity.com

● Problem Domainso High performance applicationso Complex computations o Embedded systemso Computer and console gameso Mobile applications and games

● Communitieso C - http://www.cprogramming.como C++ -

https://plus.google.com/communities/116007775542700637383

o Objective-C - https://plus.google.com/communities/103997592872376747208

Questions?

SOFTWARE TESTING

Verification vs. Validation

Types of Software Testing

V-Model

Software Testing in the SDLC

Traditional vs. Agile Testing

Why Software Testing?

SUMMARY

In Summary...

● Learning Software Development involves a lot more than just learning a programming language…

Mani Sarkar
Another word for mastery or verbally explain what it means in this context.

Aim of this Community● Build a vibrant community of Software

Professionals● Help you Learn Software Development via

o Free Programming 101 Sessionso Low-cost Hands-on Workshopso Coaching & Mentoringo Virtual Internships?

Recommended Approach● Find an interesting problem to solve● Choose a language and learn the

fundamentals and language features● Practice, practice, practice…..● Have fun!

Lim Soon Sim
I think "Find a problem" should be the first before you pick the language.
Frank Amankwah
yup, swapped them around.

Other Learning Resources● Intensive Courses

o http://www.makersacademy.com o https://generalassemb.ly

● Online courseso https://www.coursera.org/ o https://www.udacity.com/ o https://developers.google.com/university/

● Online tutorialso https://www.khanacademy.org/ o http://www.codecademy.com

● Other online resourceso http://www.w3schools.com o http://learncodethehardway.org/

Questions?

top related