Instructor | Announcements | Course Info | Class Material | Schedule | Project | Grade | General Policy | Related
Links
CmpE 285 |
Software Engineering Processes |
Fall 2020 |
|
Instructor
Richard Sinn
Email: richardsinn@yahoo.com
Office Hours: Before class, by appointment or email only
Richard is currently a Senior Software Development Manager at Adobe. He manages teams in Creative Cloud Mobile Engineering. Before Adobe, he was a Principal MTS/Director at eBay looking over various security projects. Prior to that, he served as a Security Architect/Manager at various Yahoo business units (Real Time Communication group, Yahoo Community, Yahoo Communications) from 2005 to 2011. He has also held various senior positions at IBM, Oracle and different Silicon Valley startup companies. Richard is an inventor and has filed over 25 patents. He has published a college textbook (Software Security Technologies). He is also a frequent writer for various magazines and journals, and a frequent speaker at regional and national technology conferences. As a scholar and supporter for academia, he has been teaching in the Computer Engineering and Computer Science departments at San Jose State University since 1998. He also served as Adjunct Professor at the University of Minnesota.
Prereq:
Coreq: CMPE 202 or CMPE 220 or instructor consent.
New Prereq check procedure
At the beginning of the term, have all the students in the class provide a copy of their transcripts, with the prerequisite class grade highlighted. The instructor will then check off against the roster, and drop any and all students who do not provide such proof of having completed the prerequisite with a satisfactory grade.
For classes with co-requisite requirements (such as CMPE 110), the student will provide the transcript (proving that the class has already been passed) or a printout from MySJSU (proving that the student is currently enrolled).
Add the following to the class greensheet: ”Students who do not provide documentation of having satisfied the class prerequisite and co-requisite requirements (if any) by the second class meeting will be dropped from the class.
General:
Bring a computer to class. You will need that for lecture / lab assignment.
Official Green Sheet
Class time:
Every Monday at 6:00pm
Class room:
Online Only - Synchronous
https://sjsu.zoom.us/j/3353768456
Course Information
Objectives
Software system development with emerging software engineering processes and technologies; planned and agile development processes, processes of Service-Oriented Architecture; component-based, Web-based, mobile based, event programming, wireless, user interface, and database access technologies. Corequisite: CMPE 202 or CMPE 220 or instructor consent.
Program Outcomes (PO)
|
Description |
PO 1 |
Be able to demonstrate an understanding of advanced knowledge of the practice of computer/software engineering, from vision to analysis, design, validation and deployment. |
PO 2 |
Be able to tackle complex engineering problems and tasks, using contemporary engineering principles, methodologies and tools. |
PO 3 |
Be able to demonstrate leadership and the ability to participate in teamwork in an environment with different disciplines of engineering, science and business. |
PO 4 |
Be aware of ethical, economic and environmental implications of their work, as appropriate. |
PO 5 |
Be able to advance successfully in the engineering profession, and sustain a process of life-long learning in engineer or other professional areas. |
PO 6 |
Be able to communicate effectively, in both oral and written forms. |
Course Learning Objectives (CLO)
|
Description |
CLO 1 |
Understand the issues, processes, responsibilities and tasks in software engineering project management. |
CLO 2 |
Understand the different organizational approaches to software engineering project management. |
CLO 3 |
Understand techniques involved in the successful leadership of software development project teams. |
CLO 4 |
Apply engineering discipline to software development management. |
CLO 5 |
Function in a leadership role for software development teams. |
CLO 6 |
Communicate effectively during a software development project. |
CLO 7 |
Effectively gather and document project requirements. |
CLO 8 |
Discern the most effective process to use for a given project. |
CLO 9 |
Effectively estimate, schedule, and plan work for a project team. |
CLO 10 |
Apply critical thinking to the solution of software development problems and to effectively communicate the results of that thinking. |
Course Learning Objectives Support Program Outcomes
|
PO 1 |
PO 2 |
PO 3 |
PO 4 |
PO 5 |
PO 6 |
CLO 1 |
X |
X |
|
X |
X |
|
CLO 2 |
X |
X |
|
X |
X |
|
CLO 3 |
X |
X |
X |
X |
X |
X |
CLO 4 |
X |
X |
|
|
|
X |
CLO 5 |
|
|
|
X |
|
X |
CLO 6 |
|
X |
|
|
|
X |
CLO 7 |
X |
|
X |
|
|
|
CLO 8 |
X |
X |
|
X |
X |
|
CLO 9 |
X |
X |
|
|
|
X |
CLO 10 |
|
|
X |
X |
|
X |
Classroom Protocol
Each student is required to engage in classroom activities, participate in project reviews and presentations, submit assignments and reports on time, and take exams and tests on time.
Grading
Apart from big term project(s) and presentation, there are homework assignments,
a mid-term exam and a final exam. Some exams might be take-home. The weightings
for grading are:
- Term Project(s) 20%,
- Homework 15%,
- Midterm 15%,
- Final Exam
20%,
- Team Presentation 10%
- Lecture/Lab assignments 20%.
No Late Assignment Submission. Put everything in an envelop when submit any
material.
(Weightings for grade might change according to the progress of the semester.)
University Policies
Academic Integrity
Your own commitment to learning, as evidenced by your enrollment at San José State University, and the University’s Academic Integrity Policy requires you to be honest in all your academic course work. Faculty members are required to report all infractions to the Office of Student Conduct and Ethical Development. The policy on academic integrity can be found at http://sa.sjsu.edu/student_conduct.
Instances of academic dishonesty will not be tolerated. Cheating on exams or plagiarism (presenting the work of another as your own, or the use of another person’s ideas without giving proper credit) will result in a failing grade and sanctions by the University. For this class, all assignments are to be completed by the individual student unless otherwise specified. If you would like to include your assignment or any material you have submitted, or plan to submit for another class, please note that SJSU’s Academic Policy S07-2 requires approval of instructors.
Campus Policy in Compliance with the American Disabilities Act
If you need course adaptations or accommodations because of a disability, or if you need to make special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible, or see me during office hours. Presidential Directive 97-03 requires that students with disabilities requesting accommodations must register with the Disability Resource Center (DRC) at http://www.drc.sjsu.edu/ to establish a record of their disability.
Student Technology Resources
Computer labs for student use are available in the Academic Success Center located on the 1st floor of Clark Hall and on the 2nd floor of the Student Union. Additional computer labs may be available in your department/college. Computers are also available in the Martin Luther King Library.
A wide variety of audio-visual equipment is available for student checkout from Media Services located in IRC 112. These items include digital and VHS camcorders, VHS and Beta video players, 16 mm, slide, overhead, DVD, CD, and audiotape players, sound systems, wireless microphones, projection screens and monitors.
Learning Assistance Resource Center
The Learning Assistance Resource Center (LARC) is located in Room 600 in the Student Services Center. It is designed to assist students in the development of their full academic potential and to motivate them to become self-directed learners. The center provides support services, such as skills assessment, individual or group tutorials, subject advising, learning assistance, summer academic preparation and basic skills development. The LARC website is located at http:/www.sjsu.edu/larc/.
SJSU Writing Center
The SJSU Writing Center is located in Room 126 in Clark Hall. It is staffed by professional instructors and upper-division or graduate-level writing specialists from each of the seven SJSU colleges. Our writing specialists have met a rigorous GPA requirement, and they are well trained to assist all students at all levels within all disciplines to become better writers. The Writing Center website is located at http://www.sjsu.edu/writingcenter/about/staff/.
Peer Mentor Center
The Peer Mentor Center is located on the 1st floor of Clark Hall in the Academic Success Center. The Peer Mentor Center is staffed with Peer Mentors who excel in helping students manage university life, tackling problems that range from academic challenges to interpersonal struggles. On the road to graduation, Peer Mentors are navigators, offering “roadside assistance” to peers who feel a bit lost or simply need help mapping out the locations of campus resources. Peer Mentor services are free and available on a drop –in basis, no reservation required. The Peer Mentor Center website is located at http://www.sjsu.edu/muse/peermentor/
Class Material
Lecture Notes
Required Textbooks:
Schedule
Software Engineering Overview
Aug 24, 2020 - Mon
- Agenda
- Roster and Prereq check
- Email coolprofsinn2@gmail.com your ID + proof of prereq (your my.sjsu screenshoot)
- Class group chat
- https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa
- Book: https://github.com/bernardvery/Genap1718/blob/master/Ebook/Software%20Engineering%20A%20Practitioner%E2%80%99s%20Approach%20eighth%20edition-(www.downloadnema.com).pdf
Aug 31, 2020 - Mon
- Reading assignment:
- Chapter 4: Process Models
- Chapter 5: Agile Development
- Agenda:
- Info:
- Lecture
- Lab
- In class exercise (Lab) - 40 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup (5 min)
- Among your group, discuss a draft of your software engineering career plan
- Email the following to coolprofsinn2@gmail.com by the end of the 30 min discussion.
- List of members (one email per group)
- For each member:
- State the concentration of your study (network, security, ML, etc.)
- State your ideal job (in what company or start what type of business)
- What is your plan for the next 1 year? List three actionable items in your plan.
- (Listen to each other and do discussion as needed)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 7:45pm)
- Lecture Part 2
- Last day to Drop a Class without a W grade
Sept 1, 2020 - Tue
- Last day to add classes via MySJSU
Sept 7, 2020 - Mon
Sept 14, 2020 - Mon
- Agenda:
- Info:
- Lecture
- Lab
- In class exercise (Lab) - 40 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
Background
Your group is the up-and-coming startup team. You are funded 100k USD to develop the following product.
Product: A geotarget mobile application that will locate the cheapest restaurant around you with a certain type of food.
Questions
Define the roles of your team. Describe who is going to do what, etc.
Describe how you are going to spend the money.
Pick a development process that your group is going to use for the product. Explain your choice.
- Email the answers to coolprofsinn2@gmail.com and return to class, and we will pick two groups to present to others. (Return to zoom @ 7:42pm)
- Make sure you include the list of members
- Homework 1: Individual Homework (The book is eighth edition)
- Problem 4.3
- Problem 4.6
- Problem 5.10
- Problem 5.11
Homework due Friday by 11:59pm PST - email to coolprofsinn2 @ gmail.com
Sept 21, 2020 - Mon
- Agenda:
- Info:
- Lecture
- Lab
- In class exercise (Lab) - 40 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Background
- Based on your last lab, your little startup is funded. Now, your group (with the number of members you have) is the engineering team.
- Discuss and decide
- The agile process being used for software development
- Present the details of your agile process. (e.g. when you will have your standup, demo, meetings, etc. What meetings / tools to use, etc.)
- A list of five to ten development items for the geotarget mobile application
- With the agile process you are using, decide who is going to work on what.
- For each member, describe what you are going to present in the next agile demo meeting.
- Email your answers to coolprofsinn2@gmail.com by the end of the 40 min discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 7:43pm)
- Lecture Part 2 - Ch 7 Principles that Guide Practice
Sept 28, 2020 - Mon
- Agenda:
- Info:
- Lecture
- Lab
- In class exercise (Lab) - 45 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Based on the last lab: Your company flagship mobile app is now called GeoFood - The Geotarget Mobile app
- Form a group of four members
- Write THREE main use cases for your app
- E.g. Food Search: A user in San Jose, search for Chinese food / dinner that is under $10. (Does it use GPS? Does the app use location of other friends to eat with? How delivery / carry-out / dine-in are handled?)
- Notes:
- The use cases should be written in enough details that anyone who read the description should understand what is going on. Free feel to use any diagram when necessary.
- Email your answers to coolprofsinn2@gmail.com by the end of the 40 min discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 7:47pm)
Oct 5, 2020 - Mon
Design
Agenda:
- Info:
- Lecture
- Lab
- In class exercise (Long Lab) - 55 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Email your answers to coolprofsinn2@gmail.com by the end of the 55 min discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 8:05pm)
- Reading Assignment:
- Chapter 9: Requirements Modeling: Scenarios, Information, and Analysis Classes
- Chapter 15: User Interface Design
- Chapter 16: Pattern-based Design
Oct 12, 2020 - Mon
- Info:
- Lecture
- Lab
- In class exercise (Long Lab) - 55 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Email your answers to coolprofsinn2@gmail.com by the end of the 55 min discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 8:05pm)
Oct 19, 2020 - Mon
- Midterm
- Instruction
- Get a computer with Internet access and web cam (No face, no point)
- Signin to https://sjsu.zoom.us/j/3353768456 and show your face (We will record the section)
- You have to stay online and show your face in the cam until 7:15pm
- Bring your ID with you
- Starts at 6:00pm
- 1 hour exam
- All midterm must be submitted to richardsinn at yahoo.com between 7:05pm to 7:15pm to get points
- What to submit:
- Your midterm with answers in MS-word (only one document will be graded, don't send a bunch of stuffs)
- Include your picture AND picture of your student ID in the same document as your midterm answer
- The title of the email must begin with MIDTERM 285: <Your Name>
- Openbook
- Include multiple choice and programming questions
More Design
Oct 26, 2020 - Mon
- Info:
- Lecture
- Lab
- In class exercise - 45 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Email your answers to coolprofsinn2@gmail.com by the end of the discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 7:53pm)
- Reading Assignement:
- Chapter 19: Quality Concepts
- Chapter 22: Software Testing Strategies
Nov 2, 2020 - Mon
QE
- Info:
- Lecture
- Lab
- In class exercise - 55 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Your group is hired as the QE automation team to test Discover tab under https://creativecloud.adobe.com/
- Research tools for your group to use
- Develop a short proposal on how your group is going to test discover
- General methodology / approach
- Test Plan
- Test Cases (write a sample test cases to indicate)
- Budget (People and Hardware / Software Resources needed)
- Email your answers to coolprofsinn2@gmail.com by the end of the discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 7:58pm)
- Reading Assignement:
- Chapter 10: Requirements Modeling Class-based Method
Nov 9, 2020 - Mon
- Agenda
- Starts at 6:05pm (Please mute)
- Speaker: Sunil Vallamkonda, Engineering Senior Manager, Juniper Networks
- Extra Credit:
- Email coolprofsinn2 @ gmail.com and indicates three things you learn from the guest speaker lecture
- Due by 9pm
- No class after guest speaker
- Office hours
Nov 16, 2020 - Mon
- Info:
- Lecture
- Lab
- In class exercise - 55 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Lab: Project Management Problem
- Email your answers to coolprofsinn2@gmail.com by the end of the discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 7:58pm)
- Chapter 20 - Review Techniques
- Chapter 22 - Software Testing Strategies
- Chapter 12:- Design Concepts
Nov 23, 2020 - Mon (Thanksgiving Week - Lecture Only)
- Info:
- Lecture
- Reading Assignment
- Chapter 35 - Risk Management
- Chapter 30 Product Metrics
- Chapter 36 - Maintenance and Reengineering
- Chapter 37 - Software Process Improvement
Nov 30, 2020 - Mon
- Info:
- Lecture
- Lab
- In class exercise - 55 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Lab: Process and Metrics
- Email your answers to coolprofsinn2@gmail.com by the end of the discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 7:52pm)
- Lecture Part 2
- Lab discussion
- HW: - Due next monday before class
- Homework 3: Individual Homework (The book is eighth edition)
- Problem 16.1
- Problem 16.11
- Problem 19.3
- Problem 19.11
- Lab 2:
- Lab: Youtube Tryout - Due next monday before class
- Make a computer screen video with audio voice from your team members (any topic will do)
- Video needs to be at least 20min long
- Upload to youtube (choice the option to allow public to watch with the link)
- Test the link to make sure all your team members can watch the video
- Email the video to coolprofsinn2 email
- Project discussion - Term Project Due Instruction / Project Info: Info links for web hosting / UI
Dec 7, 2020 - Mon - Last day of instruction
- Info:
- Lecture
- Lab
- In class exercise - 55 min
- Form group of four via https://chat.whatsapp.com/DNCetHkBOs9ClnFx49DnUa, you pick your own group and software to meetup
- Lab
- Lab: Reengineering
- Email your answers to coolprofsinn2@gmail.com by the end of the discussion.
- Make sure you include list of members (one email per group)
- Return to class, and we will pick two groups to present to others. (Return to zoom @ 7:57pm)
Dec 14, 2020 - Mon - Final Exam
Final
- Can be download here
- Instruction
- Be in class at 6pm
- Exam starts at 6:05pm
- Get a computer with Internet access and web cam
- Signin to https://sjsu.zoom.us/j/3353768456 and show your face (We will record the section) (No virtual background)
- You have to stay online and show your face in the cam until 7:15pm
- Bring your ID with you
- 1 hour exam
- All exam must be submitted to richardsinn at yahoo.com between 7:05pm to 7:15pm to get points
- What to submit:
- Your exam with answers in MS-word (only one document will be graded, don't send a bunch of stuffs)
- Include your picture AND picture of your student ID in the same document as your exam answer at the end of the exam
- The title of the email must begin with FINAL 285: <Your Name>
- Openbook
- Include multiple choice and programming questions
- Final is Comprehensive, covering all topics.
- Check grade at my.sjsu around the end of year. Grade will be only given over there (no email).
Semester Project
295A Project
- Email / Chat me for Master Project 295A. We can talk during or at end of semester.
- (I can only take two groups per semster)
|
|
Term Project
Title:
Stock Portfolio Suggestion Engine
Group member:
Form a group of 3 to 4 people.
Research needed:
- Python must be used for this project. Group members need to research on any additional python API needed
- Group members need to research on basic investment methodology
Description:
Based on previous lab exercises, this project provides a stock portfolio suggestion engine for the user.
User will:
- Input dollar amount to invest in USD (Minimum is $5000 USD)
- Pick one or two investment strategies:
- Ethical Investing
- Growth Investing
- Index Investing
- Quality Investing
- Value Investing
The engine needs to assign stocks or ETFs for a selected investment strategy. E.g.
Index Investing strategy could map to the following ETFs:
- Vanguard Total Stock Market ETF (VTI)
- iShares Core MSCI Total Intl Stk (IXUS)
- iShares Core 10+ Year USD Bond (ILTB)
And
Ethical Investing strategy could map to these stocks:
- Apple (APPL)
- Adobe (ADBE)
- Nestle (NSRGY)
Each strategy must map to at least 3 different stocks/ETFs.
Output:
The suggestion engine will output:
- Which stocks are selected based on inputed strategies.
- How the money are divided to buy the suggested stock.
- The current values (up to the sec via Internet) of the overall portfolio (including all the stocks / ETFs)
- A weekly trend of the portfolio value. In order words, keep 5 days history of the overall portfolio value.
Decision:
Each group needs to decide on various different parts of the project such as:
- UI to use
- How stocks/ETFs are mapped to investing strategy
- How the money is divided among buying
- How to present the weekly history of the portfolio value
- How many extra feature should be implemented to improve the project.
Grade
Please check mySJSU.
General Policy
The university and departmental policies and deadlines for course drop will
be applied. Makeup exams cannot be offered, except under exceptional conditions,
such as documented serious illness/accident, etc., and only at the professor's
discretion.
Each student is responsible for his/her individual assignment, and must not
copy anyone else's work. Students who borrow solutions from others will find
themselves unable to pass the course. The minimum penalty for every student
involved in the duplication of individual assignments or exams will be receiving
a zero score on the submitted work.
For group project, all the work has to be done by your OWN group. Do not try
to download "free code" from the Internet and hand in as a project. WE WILL
FIND OUT. Do not share your work with others. So DO YOUR OWN WORK and EARN your
grade.
Related Links
Reference Chapters:
- The Goals and Terminology of Software Engineering (Chapter 1)
- Introduction to Quality and Metrics in Software Engineering (Chapter 2)
- Software Process (Chapter 3)
- Agile Software Processes (Chapter 4)
- Quality in the Software Process (Chapter 5)
- Software Configuration Management (Chapter 6)
- Principles of Software Project Management I: Organization, Tools, and Risk Management (Chapter 7)
- Principles of Software Project Management II: Estimation, Scheduling, and Planning (Chapter 8)
- Quality and Metrics in Project Management (Chapter 9)
- Principles of Requirements Analysis (Chapter 10)
- Analyzing High-Level Requirements (Chapter 11)
- Analyzing Detailed Requirements (Chapter 12)
- Quality and Metrics in Requirements Analysis (Chapter 13)
- Online Chapter - Formal and Emerging Methods (Chapter 14)
- Principles of Software Design (Chapter 15)
- The Unified Modeling Language (Chapter 16)
- Software Design Patterns (Chapter 17)
- Software Architecture (Chapter 18)
- Detailed Design (Chapter 19)
- Design Quality and Metrics (Chapter 20)
- Online Chapter - Advanced and Emerging Methods in Software Design (Chapter 21)
- Principles of Implementation (Chapter 22)
- Quality and Metrics in Implementation (Chapter 23)
- Refactoring (Chapter 24)
- Introduction to Software Testing (Chapter 25)
- Software Maintenance (Chapter 29)
Related Chapters:
Instructor | Announcements | Course Info | Class Material | Schedule | Project | Grade | General Policy | Related
Links