cse 308 software engineering world wide web apps
TRANSCRIPT
![Page 1: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/1.jpg)
CSE 308Software Engineering
World Wide Web Apps
![Page 2: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/2.jpg)
Why do some apps succeed? A good idea
solves customer pain the easy part
Commitment time & energy the hard part
A great team the harder part
![Page 3: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/3.jpg)
Did someone say teams? Round 2
![Page 4: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/4.jpg)
LFM
![Page 5: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/5.jpg)
LFG
![Page 6: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/6.jpg)
How will we place software engineers?
The 6 LFM Groups will:
1. Interview the candidates
2. Discuss hiring preferences
3. Email me their hiring preferences ranked 1-3
When?
– at the end of class
Then what?
– I'll notify teams of assignments
![Page 7: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/7.jpg)
We (i.e. the CS Faculty) want: polished work visible projects positive team experiences inspired presentations
![Page 8: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/8.jpg)
Your Group Projects I'll provide a Request for Proposal
(RFP)
You'll write & submit your Proposal
Your Proposal should be for a Web App
![Page 9: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/9.jpg)
What's an RFP again? A document Describes a problem Offers grants/funding Solicits Proposals Best Proposal(s) get funded
![Page 10: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/10.jpg)
What's a Proposal? A document
describes team's accomplishments & assets
describes approach to solving problem describes how funds will be used selects PI
NSF Grant Proposal Guide:http://www.nsf.gov/publications/pub_summ.jsp?ods_key=gpg
![Page 11: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/11.jpg)
Industry vs. Academia Successful Project
In Industry
-earns company $
-earns investors $
-pays employees
-market visibility
-significant market share
-grows
-hasn't filed for bankruptcy
-exit strategy?
Successful Project
In Academia
-earns University $
-earns inventor $
-pays research assistants
-is published in journal
-is patented/sold
-launches new company
-launches new industry
-hasn't been canceled
![Page 12: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/12.jpg)
So why a Web app? Academia to Industry
i.e. good experience
Visibility i.e. more potential users:
to test to provide feedback to use
![Page 13: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/13.jpg)
Web users have high expectations
Want apps that are: fast elegant user friendly dynamic mobile secure social cross-platform solve customer pain
![Page 14: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/14.jpg)
A brief history of the Internet1960sAT&T
Modem
1969ARPANET Launched
1970sTCP/IP
Proposed
1980sTCP/IPFully
Adopted
1970sEmail
Invented
1980sWWW
Proposed
1990sWWWOnline
1990sMosaic
Invented
1970sCompuserv
eISP
Launch
1990sSearch Engine
Invented
1990sJavaScriptInvented
2000sGlobalizedConnectio
ns &Innovation
s
2000sMobile
Everything
2000sSocial
Everything
2000sThe
Computer Utility?
![Page 15: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/15.jpg)
The Web from 10,000 feet An amalgamation of tech
Held together by standards
WWW, URL, URI, HTML, XHTML, XML, HTTP, HTTPS, TCP, IP, UDP, FTP, MIME, IMAP, DNS, JavaScript, CDN, ICANN, IANA, RSA, ICMP, LAN, WAN, POP3, WEP, WPA, LARP, LAIRE
![Page 16: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/16.jpg)
Web tech overview Front end
Gets user input, renders, talks to server HTML, JavaScript, JavaScript libraries, plug-ins,
etc.
Back end Talks to client, performs business logic, talks to
DB Java, PHP, C#, etc.
Databases Store permanent data MySQL, Oracle, JavaDB, etc.
![Page 17: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/17.jpg)
WWW Tech Generations Early 1990s
1St – Flat HTML files, images, etc.
Mid 1990s
2nd – CGI, Perl, etc.
Late 1990s
3rd – Application Servers, Java, C#, etc.
Late 2000s
4th – The Cloud, CDNs GAE, AWS, etc.
![Page 18: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/18.jpg)
What is JavaEE?
• Java Enterprise Edition
• Tools & APIs for eCommerce
• Good News & Bad News
![Page 19: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/19.jpg)
JavaEE Setup is much of the battle
![Page 20: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/20.jpg)
A brief history of JavaEE
1stGeneration – Servlets
2nd Generation – Java Server Pages
3rd Generation – Java Server Faces
![Page 21: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/21.jpg)
What is a Java Web Application?
• Runs on an application server– i.e. Glassfish, Tomcat, WebSphere
• Generates interactive Web pages with:– markup code (i.e. XML, HTML)– dynamic code (i.e. JavaScript)
• Look at WebJotto example app
![Page 22: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/22.jpg)
What's a Web Form? HTML component Specify submit actions
– route to action URL/method (i.e. servlet)
Ex:
![Page 23: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/23.jpg)
What's a raw servlet? A Java Program Sits on a Java App Server Starts upon first request You may register listeners to respond to:
– initialization, requests, destruction, etc. Servlet responds via doGet or doPost
public class MyServlet extends HttpServlet{
public void doGet(...
![Page 24: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/24.jpg)
Oversimplified Servlet Architecture
HTML PAGE
Web Form
Browser JavaEE ServerHttpServlet
doGet(...
request
HTML PAGE
response
![Page 25: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/25.jpg)
doGet(HttpServletRequest req, HttpServletResponse resp)
req
has info about request
use to get form data
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String firstName = req.getParameter("firstname");String lastName = req.getParameter("lastname");String email = req.getParameter("email");… NOW DO SOMETHING WITH THIS INFOresp.setContentType("text/html");PrintWriter out = resp.getWriter();out.println("<html>......
resp
has output stream
use to build response
![Page 26: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/26.jpg)
JSPs Features:
HTML templating (i.e. pre-built partial pages) custom tags scriptlets (i.e. code mixed inside JSP)
bad idea
JavaEE 5 Use discouraged in JavaEE 6/7 Replaced by JSF/Facelets Still lots of servers out there using
them
![Page 27: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/27.jpg)
Poor form: JSPs with scriptlets
![Page 28: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/28.jpg)
Better form: JSPs with JSTL
![Page 29: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/29.jpg)
JSFs Uses:
All templating More & better Tag Libraries EL Ajax Facelet-JavaBeans mappings
changes to mapped bean variables auto refresh on client
JSPs & JSFs: processed on server to build page at time of
request
![Page 30: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/30.jpg)
Better form: JSPs with JSTL
![Page 31: CSE 308 Software Engineering World Wide Web Apps](https://reader030.vdocument.in/reader030/viewer/2022032701/56649c9c5503460f9495b437/html5/thumbnails/31.jpg)
Developing Backwards What's that?
Find the deployment platform first
May not use the greatest and latest
Find your app a home before starting
Our home?
– Appspot.com (more on this later)