Team | Product | Documents |
---|---|---|
Clippers | Household Schedule Manager | brochure concept design review demo |
CMPE | Pretzel Time | brochure concept design review demo |
Derailed Ruby | PlateRate | brochure concept design review demo |
Fitness | Fitness Plus | brochure concept design review demo |
Frontier | Car Rental Service | brochure concept design review demo |
GPS | EzExam | brochure concept design review demo |
Hyper Ruby | Textchange | brochure concept design review demo |
M.E.G.A. | Chore Weasel | brochure concept design review demo |
No Name 3 | Kanvas | brochure concept design review demo |
Pear | Spartan Compass | brochure concept design review demo |
Power Play | Power Play | brochure concept design review demo |
Team 131 | SJSU Class Evaluations | brochure concept design review demo |
Team NVC | Engineering Gallery | brochure concept design review demo |
The Best | BEST-Dining | brochure concept design review demo |
The Bugsters | Bugster | brochure concept design review demo |
The Warriors | WhatCanICook.com | brochure concept design review demo |
# | Date | Due | Assignment |
---|---|---|---|
1 | Feb 2 | Feb 14 | First draft with Rails |
2 | Feb 14 | Feb 20 | Source code repository |
3 | Feb 16 | Feb 24 |
Functional Specification
Formal report rubrics Use case description form |
4 | Feb 21 | Mar 3 |
Conceptual design and oral presentation
PowerPoint rubrics |
5 | Mar 14 | Mar 24 | Design Document and oral presentation |
6 | Mar 23 | Apr 10 | Project schedule (Gantt chart) |
7 | Apr 13 | Apr 21 | Test cases |
Date | Content |
---|---|
Jan 26 | Slides: Goals of the course; what is software engineering; programming in the small and large; complexity and change; the five C's; method, methodology, process; team member roles; class projects; project teams; postmortem report; grading; web application architecture; static and dynamic web pages; Rails application architecture |
Jan 31 | Slides: Ruby interpreter IRB; variables; types: numbers, strings, symbols, arrays, hashes, booleans; conditional assignment; constants; conditional statements; iteration; methods; classes; getters and setters; inheritance; batch programs; simple I/O |
Feb 2 | Slides: Full stack framework; Assignment #1; Rails mantra; model-view-controller (MVC); fast start; Rails example; Rails directory structure; Rails commands; database migrations; scaffolding code; SQLite; object-relational mapping (ORM); Rails console; create, query, update, delete database records; database schema |
Feb 7 | Slides: Add a table column; data validation; table associations; comments table; controllers; REST; routing; controller actions; redirect vs. render; embedded Ruby file (.erb); response formats; flash messages; comments controller |
Feb 9 | Slides: Database actions and HTTP verbs; default RESTful actions; route prefix; path and UTL helper functions; views; embedded Ruby; output tags; control flow tags; helpers; index page generation; layouts; partials; displaying comments; forms; Post form; form errors; comment form |
Feb 14 | Slides: Version control system: local, centralized, and distributed; Git: file differences vs. snapshots, local and remote operations and repositories, three file states; GitHub: personal account, team repository, clone local repository; Git: local changes, already have local files, push and pull; GitHub repository statistics; GUI-based Git interface; deployment to Heroku |
Feb 16 | Slides: Project phases; waterfall model; agile software development; requirements elicitation; bridging the gap; functional and nonfunctional requirements; what requirements must have; strong statements; how to get requirements; use cases; UML use case diagram; use case description; ATM example functional specification; Assignment #3 |
Feb 21 |
Slides:
Conceptual design; example conceptual design presentation;
Assignment #4; design video
Prototype example |
Feb 23 | Slides: Analysis; models; MVC model, view, and controller objects; bank ATM example; object model associations; aggregations and compositions; generalization; attributes; dynamic model; UML sequence diagram; UML statechart diagram; system design; designing a compiler; software architecture; partitioning; coupling; framework classes; cohesion; services |
Feb 28 | Oral conceptual design reviews |
Mar 2 | Oral conceptual design reviews |
Mar 7 | Slides: Layering; data independence; repository issues; database system architecture; steps to develop a database; database requirements; data modeling: conceptual, logical, physical; entities and attributes; conceptual model example; ER diagram; relationships; cardinality; example ER diagrams; relationships: 1:1, 1:M, M:N, exact cardinalities, attributes |
Mar 9 | Slides: Relationships: 1:1, 1:M, M:N, exact cardinalities, attributes; logical data model; relational tables; primary key; mapping entities; entity integrity constraint; foreign keys; mapping relationships: 1:1, 1:M, M:N; school database example; normalization: first and second normal forms; Assignment #5 |
Mar 14 | Slides: SQL; query examples; joins; record insert, update, delete; create and drop a database; create and drop tables; database connection pool; data access layer; review for the midterm |
Oct 13 | Midterm exam |
Mar 21 | Slides: Midterm solutions; bug tracking; Bugzilla; bug lifecycle; managing expectations; estimates, targets, and commitments; good estimates; time unit inflation; estimation techniques; project schedules: Gantt chart, PERT chart, resources chart |
Mar 23 | Slides: Project team design reviews; "Sins of Software Estimation"; work breakdown structure; project schedule; Gantt chart; Gantt chart demo; critical path; Assignment #6 |
Apr 4 | Oral application design reviews |
Apr 6 | Oral application design reviews |
Apr 11 | Slides: Project cartoon; one month to go; cost of correcting defects; make small mistakes early; software V&V; software testing; software reliability; testing: mindset, who does it, when, different types; unit testing; testing framework; Rails support for testing; integration testing; stress testing; regression testing |
Apr 13 | Slides: Profiling; usability; Don't Make Me Think; read vs. scan a web page; "satisfice"; conventions, visual hierarchies; usability testing the Apple Newton; beta testing the NASA Mars rover mission; system testing; acceptance testing; when to stop testing; test plan; example functional test case; Assignment #6; test-driven development (TDD); logging; Rails support for logging and debugging |
Apr 18 | Slides: Code reviews; formal code review; what to review; what to ask; why do code reviews; benefits; resistance; pros and cons; continuous code reviews; productive reviews; what to look for; software metrics; good metrics; how to use; process metrics; project metrics: objective and subjective; metric normalization: size-oriented and function point |
Apr 20 | Slides: Project scheduling triangle; project failures: causes, signs, and phases; Denver International Airport's automated baggage-handling system; how to spot impending doom; when to kill a project; software engineering code; whistle-blowing; speaking out |
Apr 25 | Oral code reviews |
Apr 27 | Oral code reviews |
May 2 | Slides: Risk management; personnel management; NASA project do's and don'ts; Extreme Programming: dealing with risk, five values, basic principles, best practices, manager's job, implementation barriers |
May 4 | Slides: Rational Unified Process (RUP); essential principles; key modeling elements: roles, activities, artifacts, and workflows; disciplines; phases: inception, elaboration, construction, and transition; cyberethics: four time periods; what is morality? what is ethics? what is a profession? who is a professional? special moral responsibilities; codes of ethics and conduct; professional responsibility; causality vs. intent; moral responsibility vs. legal liability vs. accountability; important ethical issues; USS Vincennes |
May 9 |
Slides:
Review for the final
Prof. Keith Perry: EPICS slides |
May 11 | Product demos |
May 16 | Product demos |
Second goal: So that you can immediately apply software engineering concepts, you'll learn to work on a small team to build and deploy a web application using the full-stack Ruby on Rails framework, which supports important client-server concepts:
During the semester, each project team will
These are important real-world job skills for the professional software developer! This is a challenging course that will demand much of your time and effort throughout the semester.
Department policy is to enforce
all course prerequisites strictly
CMPE major | ||
CMPE 126 | Algorithms and data structure design | grade C- or better |
SE major | ||
CS 46B | Introduction to data structures | grade C- or better |
ISE major | ||
CMPE 30 | Programming Concepts and Methodology | grade C- or better |
Allowed Declared Majors: Any Engineering |
Rails Crash Course: A No-Nonsense Guide to Rails Development Anthony Lewis No Starch Press, 2015 ISBN: 978-1593275723 |
Ruby on Rails Quick Start Guide
(Google doc) Melvin Ch'ng |
Ruby on Rails Tutorial, 4th edition Michael Hartl Addison-Wesley Professional, 2016 ISBN: 978-0134598628 Free online edition Install onto your local machine instead of the "cloud integrated development environment". |
Beginning Software Engineering Rod Stephens Wrox/Wiley, 2015 ISBN: 978-1118969144 |
As described in Rails Crash Course, you will need to download and install on your Mac, Windows, or Linux platform the following software: Ruby, Rails, Git, Heroku.
New instructions to install on Windows.
Download and install either of the following:
Also download and install:
There may be other software packages announced during the semester.