ICS 125: Course information
Overview
- Course information
- What is ICS 125 about?
- Goals for the course
- About your instructor
- Course mechanics
- Class meetings
- Facilities
- Syllabus and assignments
- Proceedures
- Expectations
- Survey of student background
Info > What is ICS 125 about?
- ICS 125 is a project course in software engineering
- Work on teams of about 4 people
- Select a project from a list
- Work with a customer to refine requirements
- Work through the phases of the waterfall process
- Deliver a working system at the end of the quarter
- Notice that it is a lot of "work"
Info > Goals for the course
- Practice developing larger software products as a team
- Take away practical experience
- Gain an understanding of the "larger product" and the "larger team"
- Experience a range of development activities
- Focus on realistic project communications
- Focus on practical, portable tool usage
- You should feel ready to be a productive member of a
professional development team
- You will be ready for the advanced project course, ICS 127
Info > Goals > Realistic project communictions
- I'll teach teamwork by teaching effective project communictions
- Much of teamwork is communictions
- All team members need to understand the goal, their role, and
requested actions
- Non-technical stakeholders need to be keep informed and
expectations need to be managed
- Much of process is communictions
- You are forced to think through an issue when you are forced to
write it down
- Information and activity can only be shared or tracked when it
is in written form
- Practical communictions are: routine, focused on content,
factual, brief, clear
- Examples: project documents, project emails, issue descriptions
and comments, code identifiers and comments, presentations, demos,
textual deliverables
Info > Goals > Practical, portable tool usage
- Software development tools and project document
templates that you can take into any job
- Free tools for many aspects of software engineering
- Version control: CVS
- Issue tracking: Bugzilla (actually Issuezilla)
- Automated builds: Ant
- Automated unit test: JUnit
- Automated API documentation: Javadoc
- Reusable templates for project documents
- Project proposal, plan, resources needs, target audience
- Requirements, design, test plan, implementation documentation
- Technical support, release notes, etc.
Info > About your instructor
- Lecturer: Jason Robbins, Ph.D.
- I earned my Ph.D. in Software Engineering from UCI in 1999
- http://www.ics.uci.edu/~jrobbins/
- Built GEF library and ArgoUML design tool
- Published about 20 papers
- Emphasis on making research results have practical usage
- Industry experience: Rockwell, CollabNet, Consulting, Open Source
- TA: Eugen Nistor
Mechanics > Class meetings
- Lecture: T Th 8:00-9:20am ELH 110
- Lectures cover conceptual topics and course requirements
- Lecture material will be on final exam
- Every scheduled meeting will take place
- Attendance: mandatory
- Discussion: W F 11:00-11:50 CS 180
- Usually will not meet, so that you have more time to work
- Will meet if more time is needed for student presentations
- Attendance is manditory when announced in lecture
- Email us questions any time
- I expect you to try to find the answer yourself first
Mechanics > Facilities
- Development server (details TBA)
- Machines in CS 193
- Any Windows, Mac, or Linux machines you have access to
- Web browser, CVS client, e-mail client, IDE, command-line
- No team rooms
Mechanics > Syllabus and assignments
- Syllabus is here
- Reading every week, but much of it is optional
- All required reading is free on the internet or handed out
- Assignments listed on same page
- Deliverables in bold
- Four presentations
- Deliverables for each phase
- Main release will have a follow-up to respond to my requests
- Frequent status reports, presentations, demos
Mechanics > Proceedures
- No Add cards, the class is full. No Drop cards after 1st week.
- We will use software development tools to conduct the course
- All project work will be stored on the development server
- All hand-ins will be stored in version control
- All work done will be tracked in issue tracker
- Grading
- No late hand-ins
- Teams must respond to any questions or requests that I email them
- Project grade will depend on success of the team
- Final exam and postmortem are individual
Mechanics > Expectations
- Work as teams
- Each person does a roughly equal amount of work
- About 12 hours per week per person, including lecture and lab
- Team decisions are made with agreement of all members
- Each team works independently, without outside help
- Project scope
- Large enough to expose realistic concerns
- Roughly 2-5 KLOC in Java
- Everyone should already have solid programming, testing, and writing skills
- Strong documentation, project documents, status reports, presentations, demos
- Follow the Academic
Honesty Policy
sample use cases templateexample software testing plan templateProject plan template