CSCE-431 Software Engineering (Spring 2013)
|Course||CSCE 431 – Software Engineering, MWF(*) 3:00 pm – 3:50 pm, HRBB 113|
|501 lab hours: TR 12:45 pm – 1:35 pm, RDMC 111C|
|502 lab hours: MW 4:10 pm – 5:00 pm, RDMC 111H|
|Office hours||By appointment (my office is 416)|
|Teaching Assistant||Shiyu Hu (email@example.com), office hours: Tuesdays 1:30 pm –2:30 pm, HRBB 315D|
(*) On average the class meets twice a week, likely more frequently in the beginning of the semester, less frequently towards the end when more time goes to class projects.
- Assignments 7–8 are out
- Assignments 4–6 are out
- Assignment 3 is out
- Assignment 2 is out
- Assignment 1 is out
- Current grades are here.
In a nutshell
Application of engineering approach to computer software design and development; life cycle models, software requirements and specification; conceptual model design; detailed design; validation and verification; design quality assurance; software design/development environments and project management.
The goals of the course are to (1) gain understanding of the difficutlties and risks of software projects, and knowledge of the commonly applied techniques and methods to migitate those risks and to increase the likelihood of success of software projects; (2) learn new and improve existing skills related to practical software construction; and (3) give some, though necessarily limited, opportunities to apply in practice what is learned.
In particular, the following topics will be covered
- software lifecycle and different software processes
- requirements elicitation and specification
- modeling software
- software design at various levels
- coding practices, interfaces, modularity, contracts
- verification and validation, testing
- management issues in software projects
The skills students can expect to learn more about and gain experience include:
- managing a code base (version control, organizing releases, etc.)
- testing (unit and regression testing)
- practical designs (typical software architectures, design patterns, API designs)
- specifying requirements
- effort estimation
- planning, teamwork
What is learned is practiced in the context of a software project, to be specified, designed, implemented, and tested during the course of the course. The projects are executed within small teams. Various assignments will support the project.
While it is nice if a project team produces some interesting software, this is not the main goal. Instead, the focus should be on organizing the team's work, putting into use the practical software engineering techniques discussed during lectures and modern software engineering support tools.
50% of your course grade will be based on assignments and projects, 50% on exams (there will be two, midterm and a final). Participation, or more accurately, lack of it, can influence your grade you achieve otherwise from assignments and your project or exams, negatively, up to 10%. A grade of 90% or above guarantees an A, 80% or above a B, 70% or above a C, and 60% or above a D.
All grade assignments are final—unless there was a mistake made in recording your semester grades or in computing your final grade. If all numbers are correctly recorded and computed, I will not discuss changing the resulting letter grades.
There are situations that may warrant regrading a particular assignment. For example, making addition errors in computing your score, not seeing an answer that you gave, or not understanding an answer that you gave. Requests for regrading of assignments must be made within one week after the graded work has been handed back.
Textbook is recommended, not mandatory:
- Ian Sommerville: Software Engineering (9th Edition). Addison-Wesley, 2011.
Other suitable software engineering books:
- Roger Pressman: Software Engineering: A Practitioner's Approach, 6th edition. McGraw Hill, 2005. ISBN 0-07-285318-2.
- Bruegge, Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and Java (3rd edition). Prentice Hall, 2010.
Academic Integrity Policy: An Aggie does not lie, cheat, or steal or tolerate those who do. The Honor Council Rules and Procedures are available on the web http://www.tamu.edu/aggiehonor.
The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact Disability Services, in Cain Hall, Room B118, or call 845-1637. For additional information visit http://disability.tamu.edu.
Schedule and material
|Martin Luther King, Jr Day. No class.|
|Guest lecture: Scrum|
|Interfaces and Contracts||lec06.pdf|
|From models to code||lec08.pdf|
|From models to code|
|About OO design||lec07.pdf|
|Design patterns||example code|
|Design patterns, API Design||lec09.pdf|
|Spring break. No class.|
|Spring break. No class.|
|Spring break. No class.|
|Project demos section 501|
|Project demos section 502|
|Final exam: 10:30 am – 12:30 am|
All material covered in class should be studied for the exam. The last topic included is Design Patterns.