General Information
|
|
|
|
Mood Bridwell 110A |
|
|
Other times by appointment and whenever I'm in! |
|
Catalog Description
Introduction to techniques and theories for the development of large software systems. This course will fulfill the capstone requirement in Computer Science. Topics include: software design and quality, ethics, professional issues, and the study of current software engineering trends, theory and practice. A major semester project is expected from each student, as well as significant class participation and presentation.Prerequisites: Take 7 courses in the major at the 200-level or above including 54-383,54-453, 54-473 and consent of instructor. (Spring)
This course aims to give students both a theoretical and a practical foundation in software engineering. In the theoretical part, students will learn about the principles and methods of software engineering, including current and emerging software engineering practices and support tools. In the practical part, students will become familiar with the development of software products from an industry perspective, including generation of appropriate documents, under tight schedules and limited resources. Because this is a writing component course, there will be heavy emphasis on written communication skills.Recommended Texts (required information):
Case
of the Killer Robot , Richard Epstein and Mike Melamed.
Southwestern University will make reasonable accommodations for persons with documented disabilities. Students should register with the Office of Academic Success located in Cullen Hall 336. Professors must be officially notified by the Access and Academic Resource Coordinator that documentation is on file at least two weeks before the accommodation is needed.
Grading Policy :
This semester will include the
piloting of a new capstone grading rubric. This rubric will list
the objectives of the course and be used to assess how well each
student meets those objectives. However, the grade in the course
will be assigned according to the schema below. The rubric itself
will be linked from here.
Assignment/Component: | % of grade | Individual or Team | Approximate Due Date | ||||||||||||||||||
Systems Analysis | 5% | Individual or pairs | Part I -- January 14 | ||||||||||||||||||
Team | |||||||||||||||||||||
Major project
|
45% | Team | Pilot 2/9 SRS draft 2/25 SRS revision 3/4 SDS 4/6 V&V /15 User Manual 4/27 Acceptance 4/29 Presentation at CW&RS abstract 3/4 Presentation at CW&RS 4/15 |
||||||||||||||||||
Journal | 10% | Individual | Weekly submission | ||||||||||||||||||
Peer Evaluation: | 15% | Individual | |||||||||||||||||||
Class Participation | 5% | Individual | |||||||||||||||||||
Midterm Exam | 10% | Individual | |||||||||||||||||||
Final Exam | 10% | Individual |
Late/missed work: No late work/make-up work will be accepted.
Honor code: The honor code applies to the book review and the exams. The typical University-wide honor code expectations (e.g., regarding plagiarism and cheating) will be in force.
Disclaimer: This syllabus is a guideline. Particulars may be discussed and changed in class.
Attendance: Any unexcused absence will result in a grade reduction. More than two absences of any type may result in withdrawl from the course. An excused absence must be arranged in advanced with the instructor.
Grading: The team project will consist of the project
itself,
the SRS (Software Requirements Specification), the SDS (Software Design
Specification), team meeting reports, the testing plan &
verification,
and the user documentation and user's manual. Note that these
constitute
45% of the course grade, and are team grades (all members of the team
will
receive the same grade for these components of the team project, based
on the overall quality of the work). Your team will need to meet on a
weekly
basis regarding your project; a record of these meetings will be
included
in your weekly journal entries and blog. You will need to keep detailed
notes of all meetings with your project client as well.
Software:
TBACourse topics (including but not limited to)
- Systems Analysis Fact-finding, client visit, pre-engineering phases
- Software Engineering The software crisis, principles of software engineering, programming-in-the-small vs. programming-in-the-large
- Software process: The software lifecycle, the waterfall model and variations, introduction to evolutionary and prototyping approaches. agile development, use cases, refactoring, uml
- Project management: Relationship to lifecycle, project planning, project control, project organization, risk management, cost models, configuration management, version control, quality assurance, metrics
- Teamwork: Team dynamics, communication skills, sharing work, fulfilling obligations
- User considerations: Human factors, usability, internationalization, user interface documentation, user manuals, accessibility
- Software requirements: Requirements analysis, requirements solicitation, analysis tools, requirements definition, requirements specification, static and dynamic specifications, requirements review.
- Software design: Design for reuse, design for change, design notations, design evaluation and validation
- Implementation: Programming standards and procedures, modularity, data abstraction, static analysis, unit testing, integration testing, regression testing, tools for testing, fault tolerance
- Maintenance: The maintenance problem, the nature of maintenance, planning for maintenance
- Documentation: Documentation formats, tools, internal documentation
Other topics: Formal methods, tools and environments for software engineering, role of programming paradigm, process maturity. Ethical considerations