CS 160: Software Engineering August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak www.cs.sjsu.edu/~mak.

Slides:



Advertisements
Similar presentations
CS3773 Software Engineering Lecture 01 Introduction.
Advertisements

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Example of a Problem Statement: Introduction into.
E-commerce Project Erik Zeitler Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server.
JSP: JavaServer Pages Juan Cruz Kevin Hessels Ian Moon.
The Sherlock Project Purdue University, Department of Computer Sciences Sponsored by Tellabs, Inc. Doug Clark - Group Leader Tobey Pasheilich Raj Talwar.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
1 IS380 Class Agenda 01/11/05 Sock H. Chung 1.Syllabus 2.Chapter 1 3.Introduction 4. Request.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
The Team Team consisted of 5 members. Max Annear – Henderson Conrad Orange Mike Debney Anton Slooten Luke Stanford.
Architecture, Deployment Diagrams, Web Modeling Elizabeth Bigelow CS-15499C October 6, 2000.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Administrative Topics -TEACH/mailing list - Brainstorm - Pick a project manager for each HW assignment (responsible for communication, scheduling and execution.
CS 153: Concepts of Compiler Design August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
M.Sc. Course, Dept. of Informatics and Telecommunications, University of Athens S.Hadjiefthymiades “Web Application Servers” Basics on WAS WAS are necessary.
CS 235: User Interface Design January 22 Class Meeting
CS 160: Software Engineering August 27 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
CS 235: User Interface Design August 27 Class Meeting Department of Computer Science San Jose State University Spring 2015 Instructor: Ron Mak
CS 235: User Interface Design August 27 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
COMPARISON STUDY BETWEEN AGILEFANT AND XPLANNER PLUS Professor Daniel Amyot Ruijun Fan Badr Alsubaihi Submitted to Professor Daniel Amyot.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
INFO101: Management Information Systems INFORMATION X.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
GROUP PROJECTS IN SOFTWARE ENGINEERING EDUCATION Jiang Guo Department of Computer Science California State University Los Angeles April 3-4, 2009.
CS 153: Concepts of Compiler Design August 24 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak
CS 160: Software Engineering October 8 Class Meeting
CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump.
Tablet PC Capstone CSE 481b Richard Anderson Craig Prince.
Introduction to Internet Programming (Web Based Application)
CS 235: User Interface Design August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CS 160: Software Engineering September 10 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CS 235: User Interface Design October 15 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Information System Development Courses Figure: ISD Course Structure.
CS 235: User Interface Design September 22 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CS 160: Software Engineering October 1 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CEN 4010 First Lecture January 9, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi
CS 160: Software Engineering October 15 Class Meeting
CMSC 345, Fall CMSC 345 Software Design and Development Fall 2003 Section 0101 Ms. Susan Mitchell Leave Your Ego at the Door!
CS 153: Concepts of Compiler Design August 26 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak
CS 235: User Interface Design September 3 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
CS 160: Software Engineering September 3 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CS 160: Software Engineering October 22 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Course Introduction CEN 5016 Software Engineering Dr. David A. Workman School of EE and Computer Science January 9, 2007.
CEN First Lecture CEN 4010 Introduction to Software Engineering Instructor: Masoud Sadjadi
CS 151: Object-Oriented Design August 29 Class Meeting Department of Computer Science San Jose State University Spring 2012 Instructor: Ron Mak
Web Team Web Team :- Web team is a group of persons responsible for development of web site. Roles and Responsibilities A web team consists of following.
© Monica Farrow & Andrew Ireland Software Design F28SD2 Future Horizons Monica Farrow & Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt.
CS 160 and CMPE/SE 131 Software Engineering January 28 Class Meeting
CS 235: User Interface Design March 17 Class Meeting Department of Computer Science San Jose State University Spring 2015 Instructor: Ron Mak
Web Programming 3(3-0-6) Introduction to interactive, event-driven and dynamic web development; web programming with freeware and commercial tools;
CS 160 and CMPE/SE 131 Software Engineering March 22 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
CS 160 and CMPE/SE 131 Software Engineering May 12 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
CS 160 and CMPE/SE 131 Software Engineering May 3 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
1 The Software Engineering Education at CSULA Jiang Guo Jose M. Macias June 4, 2010.
Introduction to Web Technologies Module Introduction to Web Technologies – CS th January 2005 Dr Bogdan L. Vrusias
Moon Fleet Management Six Sigma Supervisor: Nguyễn Trường Long Members: - Lê Hoàng - Nguyễn Đăng Phượng - Nguyễn Thanh Tùng - Phạm Phương Duy - Vũ Quang.
CS 153: Concepts of Compiler Design August 24 Class Meeting
CMPE 152: Compiler Design January 25 Class Meeting
CS 174: Server-Side Web Programming February 12 Class Meeting
CMPE 152: Compiler Design August 21 Class Meeting
CMPE 152: Compiler Design January 24 Class Meeting
CMPE/SE 131 Software Engineering March 7 Class Meeting
CMPE 152: Compiler Design August 22 Class Meeting
CGS 3066: Web Programming and Design Fall 2019
Presentation transcript:

CS 160: Software Engineering August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 2 The Big Question What is software engineering? Why do we need it?

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak Programming “Sizes”  “Programming in the small”  “Programming in the large” 3

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak Programming: Small vs. Large 4 Small (school)Large (industry) Number of developers1, sometimes up to 4Often many (dozens) PlanningUsually minimalCan be elaborate TimeframeShort, < one semesterOften long (years) RequirementsUsually well definedOften unclear Program complexityRelatively simpleCan be very complex Subject to changeUsually notUsually yes Highly reliableUsually not necessaryUsually necessary Highly robustUsually not necessaryUsually necessary TestingUsually minimalUsually extensive DocumentationUsually minimalCan be a lot

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 5 The Major Challenge Complexity and Change With any nontrivial software application, the major software engineering challenge is dealing with

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 6 What Makes Software Complex?  Size A “large” school assignment: 5-10 Java classes A compiler or interpreter: ~150 classes and interfaces A major enterprise application: hundreds of classes and interfaces.  Number of developers An individual school assignment: 1, up to 4 A medium-size project: 5-12 A major enterprise application: dozens.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 7 What Makes Software Complex? cont’d  Technology Software packages: JSP, servlets, JDBC, MySQL, Hibernate,... Tools: Tomcat, NetBeans, Ant, Subversion, Trac,...  Project artifacts (written and oral) Requirements specifications, software design, design reviews, project plans, test plans, project schedules, code reviews, demos,... _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 8 What Changes?  Requirements Customers don’t know what they want. Customers change their minds. Marketing decides new features are necessary. Etc.  Schedule We need it done sooner!  Resources Technology and tools Personnel Money Etc.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 9 Complexity + Change  Collaboration Teamwork Methodologies Processes  Communication Developers talk to their managers Developers talk to the customers Developers talk to each other  Coordination Project management “The 5 C’s”

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 10 Software Process  “A software process is a set of activities that leads to the production of a software product.” Ian Sommerville, Software Engineering, 7 th ed.  “A software process [is] a framework for the tasks that are required to build high-quality software. [It] defines the approach that is taken as software is engineered.” Roger Pressman, Software Engineering: A Practitioner’s Approach, 6 th ed. _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 11 Method  A method is a reusable technique or algorithm for solving a specific problem. This is the common definition of method, not to be confused with a method (operation) of a class in the object-oriented sense.  Example methods Object-oriented design techniques Source control Online bug tracking

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 12 Methodology  “A methodology is a collection of methods for solving a class of problems.” Bernd Bruegge and Allen Dutoit, Object-Oriented Software Engineering Using UML, Patterns, and Java, 3 rd ed.  “[A methodology] specifies how and when each method should be used.” ibid. _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 13 Software Process, cont’d  A software process is the application of a methodology in order to develop software.  Every methodology has: Beliefs and assumptions Prescribed rules of behavior Criteria to determine what’s good and what’s bad “Sacred documents” that describe the methodology and “gurus” who promote it Believers and nonbelievers.  Methodology = religion?

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 14 Software Engineering is …  Team-based  Processes  Manage complexity  Manage change. … team-based processes that manage complexity and change in order to successfully develop software products. Successful software products! }

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 15 Team Member Roles  A role defines the set of tasks that a team member is expected to complete. A task can be technical or managerial, programming or not.  When you assign a role to a team member, you make that team member responsible for completing the role’s tasks. _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 16 Examples of Team Member Roles Project lead Software architect User interface (UI) designer HTML programmer Java programmer Quality assurance (tester) Database architect Database administrator Documenter etc.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak Team Member Roles, cont’d  Not all roles need to be filled in each team.  Each team member must have at least one role.  A team member can have more than one role during the project. Can have multiple roles simultaneously.  A role can be filled by more than one team member. _ 17

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 18 Take roll!

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 19 Class Projects  Learn software engineering within the context of an actual project. Apply what you learn immediately. Simulate the “real world” software product development process.  Projects will be done by small project teams. Projects may be broken up into assignments.  Form your own teams of 4 members each. _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 20 Class Projects, cont’d  Design, build, and deploy a complete web application with the following framework: Front end: Dynamically generated web pages (JSP) Middleware: Server-side business logic (servlets, JavaBeans) Back end: Relational database repository (MySQL)  Each team chooses its web application: It must insert, update, and delete data in the back-end data repository.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 21 Previous Class Projects  Car pool arranger  Class scheduler  Textbook rental service  Restaurant reviews  Product reviews _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 22 Project Teams  Choose your team members wisely! Be sure you’ll be able to meet and communicate with each other and work together well. No moving from team to team.  Each team member will receive the same score on each team assignment and team project. _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak Project Teams, cont’d  Each team to by Friday, August Your team name A list of team members and addresses  A 1-paragraph description of the team’s web application  Subject: CS 160 Team Team Name Example: CS 160 Team Super Coders _ 23

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 24 Individual Responsibilities You are personally responsible for participating and contributing to your team’s work, and for understanding each part of the work for every assignment whether or not you worked on that part.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 25 Postmortem Assessment Report  At the end of the semester, each student will individually turn in a short (one page) report: A brief description of what you learned in the course. An assessment of your personal accomplishments for your project team. An assessment of each of your project team members. _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 26 Project Team Activities  Generate written artifacts. Requirements specification Design document Project plan and schedule Test plan  Make oral presentations. Product pitch Design review Code review Product demo  Class attendance and participation are especially important during oral presentations!

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 27 Grading  Team scores (up to 100 points each)  Each team member gets the same score for each assignment. Written project artifacts Oral presentations  Completed web application project How well it fulfilled the project requirements How well it met the project schedule’s milestones How professionally well done it is _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 28 Grading, cont’d  Individual scores (up to 100 points each) Midterm Final  Individual class grade will be based on the class curve. 30% assignments 30% project 15% midterm 25% final Your individual class grade will be adjusted up or down depending on your level and quality of participation, as determined by the project tracking tools and your teammates’ postmortem reports.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 29 High-Level Architecture of a Web Application Murach’s Java Servlets/JSP, 2 nd ed. © 2008, Mike Murach & Associates, Inc. Client-server architecture

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 30 Static Web Pages  The contents of the chosen HTML page is static. “Brochure ware” Murach’s Java Servlets/JSP, 2 nd ed. © 2008, Mike Murach & Associates, Inc.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 31 Dynamic Web Pages  The web application dynamically generates the HTML for a web page that contains elements based on the request parameters. The browser doesn’t care whether the HTML was static or dynamically generated. Murach’s Java Servlets/JSP, 2 nd ed. © 2008, Mike Murach & Associates, Inc.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 32 Architecture of a Java Web Application Tomcat Microsoft Explorer Firefox Google Chrome Apple Safari MySQL Relational Database Manager Where does the web application live? WEB APP Murach’s Java Servlets/JSP, 2 nd ed. © 2008, Mike Murach & Associates, Inc.

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 33 Technologies and Tools (Free!)  JavaServer Pages (JSP) Generate dynamic web pages  Java servlets and JavaBeans Server-side web application logic  MySQL Relational database manager (RDBMS) for the back-end data repository Database design and administration SQL and JDBC programming Object-relational mapping with Hibernate _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak 34 Technologies and Tools, cont’d  Tomcat Web server and JSP/servlet engine  NetBeans Integrated development environment (IDE) Java, JSP, and servlet development Supports Tomcat  and more! UML, Ant, Git, Trac, GanttProject, Hibernate, … _

Computer Science Dept. Fall 2014: August 25 CS 160: Software Engineering © R. Mak Reminders: By Friday, August 29  Form teams.  me your team information. team name team members and addresses  1-paragraph description of your team’s web application _ 35