程序代写 SE 352/452 Object Oriented Enterprise Computing

SE 352/452 Object Oriented Enterprise Computing

§ Administrative
§ 12 Factor Concept Overview § Environment Overview
§ Before next class

§ Ken or Mr. Yu (not Dr. Yu)
§ I do NOT use emails for communication. Subscribe to the D2L news or login to
determine any course specific messages
§ Email: Please use D2L email, if no response within 24 hours, please separate email
§ Begin subject with SE352/452 – (Your Name) Email topic
§ Please leverage D2L Weekly discussion thread about particular week topic
§ I subscribe to only weekly and environmental threads NOT group discussion threads

§ Apply object-oriented techniques in the design, development, and integration of server side enterprise application using technologies such as servlets, Java Server Pages, and JDBC.
§ Topics include web applications, multi-tier architecture, model-view-controller architecture, database connectivity, and security
§ This is NOT web programming class. It is Software Engineering with enterprise application concepts where one of those concepts include web development.
§ CSC 360 – Web Application is about Web development and it will be LOT easier

§ ALL course material is delivered through D2L
§ Lectures, Quizzes, Announcements, and sample project
§ ALL submission is expected through D2L
§ Quizzes, Project Submissions, Individual Submissions

§ Students will demonstrate understanding of the vocabulary and concepts of enterprise application design and development (LO1)
§ Students will demonstrate the understanding of development technique by building an enterprise application with other team members (LO2)

§ EVERYONE is RANDOMLY assigned a team.
§ Drop me an email ASAP if you are NOT in a team or if you worked in a team with someone else before and you would either like to work with them again or not like to work with them

§ Communication
§ Meeting times
§ Communication mechanism
§ Common Definitions
§ What are you building? § Who is doing what?
§ Work break down
§ Technology
§ Source code repository § Code standards
§ Connectivity

§ Class vs Object vs Interface § Encapsulation, Inheritance
§ Checked vs Runtime Exception and Exception handling
§ Compile time vs Run time concepts
§ Coding standards
§ https://google.github.io/styleguide/javaguide.html § Special attention to Section 5

§JDK 11 – LTS
§ https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
§ Git client tools
§ https://www.atlassian.com/git/tutorials/install-git
§ Integrate Development Environment (IDE) § VS Code (https://code.visualstudio.com/)
§ Install Java IDE Extension Pack
§ Spring start (https://start.spring.io) § Gradle project
§ DevTools, Web, and Actuator

§ Source code repository
§ Distributed version control system (DVCS) rather than traditional central version control system

Git Virtue?: Github and Commons-based Peer Production

https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-clone

Github (https://github.com)
• Open source project leveraging git source control
• Barring anything else from your team member, use this
§ commit § push
§ branch newBranchName
§ checkout branchName
§ merge branchName
§ branch –d branchToDelete
https: //www. youtube. com/watch?v=9pa_P V2LUlw https://learngitbranching.js.org/

How computers communicate

§ Browser – Requests and renders content from servers § Internet – Transfer content (highway)
§ Server – Serves requests from browser
Browser Internet Server

§ Protocol – Requests and renders content from servers § http/https, tcp, smtp…
§ Port – Communication tunnel § 80/443, 25, 465…
§ Content – Format § html, plain text…

§ Web server – serves web request
§ File server – serves request for file
§ Application server – serves dynamic content
§ Database server – store data in structured form
Browser Internet Server

§Single server handles all the requests
§The screen is typically dumb terminals
No software on the client

Laptop computer
§Client handles most of the user interface (aka Fat Client)
§Server still handles most of the data and the business
Desktop System

Laptopcomputer
§Clients handles some of the user interface
§Application server mediates between service request and service provider
§Data server or other services request
ApplicationServer
LegacyMainframe
Desktop System

Desktop System
§Specialized handlers for different types of requests
§Client handles some of the user interface
§Web Server handles the data being serviced from/to proper clients
§Application Server handles the data from/to proper servers
Laptopcomputer
ApplicationServer
LegacyMainframe

§As in many things in life, there are decision which must be made. In architecture, following are the major architecture decision factors are as follows (some times known as non functional)
q Availability q Scalability
q Performance q Security
q Manageability q Cost

https://12factor.net/

§ Development methodology drafted by group of people at Heroku to provide cloud native application that is dynamic and scalable.
§ https://www.heroku.com/

Description
One codebase tracked in revision control, many deploys
Dependencies
Explicitly declare and isolate dependencies
Configuration
Store configuration in the environment
Backing Services
Track backing services as attached resource
Build, release, run
Strictly separate build and run stages
Execute the app as one or more stateless processes
Port binding
Export services via port binding
Concurrency
Scale out via the process model
Disposability
Maximize robustness with fast startup and graceful shutdown
Dev/prod parity
Keep development, staging, and production as similar as possible
Treat logs as event streams
Admin processes
Run admin/management tasks as one-off processes

§ One codebase tracked in revision control, many deploys

§ Treat backing services as attached services

§ Strictly separate build and run stages

§ Scale out via the process model

§ Original Website – https://12factor.net/
§ IBM Redbook – Microservices Best Practice for Java (https://bit.ly/2FMPcS8) § Safari Book – Beyond the Twelve Factor App (https://bit.ly/2I3xXxb)

§ Airplane Milestone 1

§ Looks at the project material
§ Make sure you are in a group, if you are not, drop me an email ASAP
§ Introduce yourself to the group
§ Determine project work
§ Determine name of the team
§ Determine how you will resolve any issues that may come up during the project work
§ Turn in Milestone 1
§ Turn in similar document to Airline Reservation
§ Overview, Updates, Section 1, Appendix A, Appendix B populated

§ Technical division
§ Divide work based on technical areas such as UX and persistence, build those out as
complete as possible
§ Integrate the completed divisions
§ Functional division
§ Divide work based on functional areas such as Flight Reservation, Login and the
individual is responsible for all the technical stack from UX and persistence § Integrate the functional areas