Download - Intro to software development
![Page 1: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/1.jpg)
Intro to Software Development
![Page 2: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/2.jpg)
Introduction
• Who are we?• What do we do?• Why do we do this?
![Page 3: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/4.jpg)
SOFTWARE DEVELOPMENT LIFE CYCLE
![Page 5: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/5.jpg)
![Page 6: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/6.jpg)
![Page 7: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/7.jpg)
Waterfall
![Page 8: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/8.jpg)
Waterfall Development
![Page 9: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/9.jpg)
Agile
![Page 10: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/10.jpg)
Agile Development
![Page 11: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/11.jpg)
DISCOVERING SOFTWARE REQUIREMENTS
![Page 12: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/12.jpg)
![Page 13: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/13.jpg)
![Page 14: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/14.jpg)
![Page 15: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/15.jpg)
Traditional Requirements Discovery
![Page 16: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/16.jpg)
Use Cases
![Page 17: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/17.jpg)
Agile Requirements Discovery
![Page 18: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/18.jpg)
Traditional vs. Agile Requirements
![Page 19: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/19.jpg)
SOFTWARE DESIGN
![Page 20: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/20.jpg)
Software Design Process
![Page 21: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/21.jpg)
![Page 22: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/22.jpg)
PROGRAMMING LANGUAGES
![Page 23: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/24.jpg)
![Page 25: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/25.jpg)
![Page 26: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/26.jpg)
Choosing a Language
![Page 27: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/27.jpg)
Useful Criteria● Best suited to the problem you
are trying to solve● Widely available● Widely used
![Page 28: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/28.jpg)
● 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](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/29.jpg)
● 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](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/30.jpg)
● 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](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/31.jpg)
Questions?
![Page 32: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/32.jpg)
SOFTWARE TESTING
![Page 33: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/33.jpg)
Verification vs. Validation
![Page 34: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/34.jpg)
Types of Software Testing
![Page 35: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/35.jpg)
V-Model
![Page 36: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/36.jpg)
Software Testing in the SDLC
![Page 37: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/37.jpg)
Traditional vs. Agile Testing
![Page 38: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/38.jpg)
Why Software Testing?
![Page 39: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/39.jpg)
SUMMARY
![Page 40: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/40.jpg)
In Summary...
● Learning Software Development involves a lot more than just learning a programming language…
![Page 41: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/41.jpg)
![Page 42: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/42.jpg)
![Page 43: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/44.jpg)
Recommended Approach● Find an interesting problem to solve● Choose a language and learn the
fundamentals and language features● Practice, practice, practice…..● Have fun!
![Page 45: Intro to software development](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062412/58847d7a1a28ab5e248b776d/html5/thumbnails/46.jpg)
Questions?