46
Intro to Software Development

Intro to software development

Embed Size (px)

Citation preview

Page 1: Intro to software development

Intro to Software Development

Page 2: Intro to software development

Introduction

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

Page 3: Intro to software development

Agenda

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

Page 4: Intro to software development

SOFTWARE DEVELOPMENT LIFE CYCLE

Page 5: Intro to software development
Page 6: Intro to software development
Page 7: Intro to software development

Waterfall

Page 8: Intro to software development

Waterfall Development

Page 9: Intro to software development

Agile

Page 10: Intro to software development

Agile Development

Page 11: Intro to software development

DISCOVERING SOFTWARE REQUIREMENTS

Page 12: Intro to software development
Page 13: Intro to software development
Page 14: Intro to software development
Page 15: Intro to software development

Traditional Requirements Discovery

Page 16: Intro to software development

Use Cases

Page 17: Intro to software development

Agile Requirements Discovery

Page 18: Intro to software development

Traditional vs. Agile Requirements

Page 19: Intro to software development

SOFTWARE DESIGN

Page 20: Intro to software development

Software Design Process

Page 21: Intro to software development
Page 22: Intro to software development

PROGRAMMING LANGUAGES

Page 23: Intro to software development

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

Page 24: Intro to software development
Page 25: Intro to software development
Page 26: Intro to software development

Choosing a Language

Page 27: Intro to software development

Useful Criteria● Best suited to the problem you

are trying to solve● Widely available● Widely used

Page 28: Intro to software development

● 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

Page 29: Intro to software development

● 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

Page 30: Intro to software development

● 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

Page 31: Intro to software development

Questions?

Page 32: Intro to software development

SOFTWARE TESTING

Page 33: Intro to software development

Verification vs. Validation

Page 34: Intro to software development

Types of Software Testing

Page 35: Intro to software development

V-Model

Page 36: Intro to software development

Software Testing in the SDLC

Page 37: Intro to software development

Traditional vs. Agile Testing

Page 38: Intro to software development

Why Software Testing?

Page 39: Intro to software development

SUMMARY

Page 40: Intro to software development

In Summary...

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

Page 41: Intro to software development
Page 42: Intro to software development
Mani Sarkar
Another word for mastery or verbally explain what it means in this context.
Page 43: Intro to software development

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?

Page 44: Intro to software development

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.
Page 45: Intro to software development

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/

Page 46: Intro to software development

Questions?