CSCE-606 Software Engineering (Fall 2012)
|Course||CSCE 606 – Software Engineering, TR 3:55 pm – 5:10 pm, HRBB 113|
|Office hours||By appointment (my office is 416)|
|Teaching Assistant||Shiyu Hu (firstname.lastname@example.org), office hours: see this link|
- Current grades are here
- Assignment 1 is out
- Assignment 2 is out
- Assignment 3 is out
In a nutshell
Study of Software construction as an Engineering activity. Review of life cycle models and their phases, including topics in requirements elicitation, system specification and design, configuration managment, and testing. Topics in cost estimation, software reuse, analysing software, formally specifying software, software modularity, software design methodologies (and methodologies for design of software families).
The catalog description, that may be a bit dated, is here: ``Development of advanced concepts in software engineering; software development environments as a mechanism for enhancing productivity and software quality; the classification, evaluation and selection of methodologies for environments; rapid prototyping and reusability concepts; artificial intelligence techniques applied to software engineering.''
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 increase existing skills related to practical software construction; and (3) gain familiarity with the current research problems in software engineering.
- 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
- managing a code base (version control, organizing releases, etc.)
- testing (unit and regression testing)
- practical designs (typical software architectures, design patterns, API designs)
- effort estimation
- introduction to model checking and formal verification
10% of your course grade will be based on assignments and quizzes, 90% on a research project and/or exams. Lack of participation can degrease the grade otherwise achieved by 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.
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
|Tue, Aug 28||Introduction||lec01.pdf|
|Thu, Aug 30||Software Lifecycle||lec02.pdf|
|Tue, Sep 4||Requirements||lec03.pdf|
|Thu, Sep 6||Requirements|
|Tue, Sep 11||Configuration Managment (J. Freeman)||lec_conf_management.pdf|
|Thu, Sep 13||Configuration Managment (J. Freeman)|
|Tue, Sep 18||Requirements, formally||On Formalism in Specifications|
|Thu, Sep 20||Capturing requirements, use cases, scenarios|
|Tue, Sep 25||(Object-oriented) design, UML||lec04.pdf|
|Thu, Sep 27||Guest lecture: Dr. Stroustrup||SE.pptx|
|Tue, Oct 2||OO fundamentals; Design patterns||lec05.pdf|
|Thu, Oct 4||Design Patterns||Examples: visitor factory|
|Tue, Oct 9||Design Patterns Continue|
|Thu, Oct 11||Interfaces and Constraints||lec06.pdf|
|Tue, Oct 16||From models to implementation||lec07.pdf|
|Thu, Oct 18||API design||lec08.pdf|
|Tue, Oct 23||Midterm|
|Thu, Oct 25||Testing||lec09.pdf|
|Tue, Oct 30||Testing|
|Thu, Nov 1||Verification||lec10.pdf|
|Tue, Nov 6||Verification|
|Thu, Nov 8||Verification|
|Tue, Nov 13||Verification|
|Thu, Nov 15||Verification||reading: parnas.pdf|
|Tue, Nov 20||Model checking||lec11.pdf|
|Thu, Nov 22||No class: Thanksgiving|
|Tue, Nov 27||Model checking|
|Thu, Nov 29||Project presentations|
|Tue, Nov 4||Project presentations|
|Tue, Dec 11||Final exam, 1–3pm|
An optional textbook:
- Bruegge, Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and Java (3rd edition). Prentice Hall, 2010.
Other suitable software engineering books:
- Ian Sommerville: Software Engineering (9th Edition). Addison-Wesley, 2011.
- Roger Pressman: Software Engineering: A Practitioner's Approach, 6th edition. McGraw Hill, 2005. ISBN 0-07-285318-2.
The exam will be on December 11, Tuesday 1–3 pm.
All the material covered since the midterm should be studied for the exam. Even though we discussed the Dafny language, and used it in an assignment, it will not be necessary to remember Dafny syntax, or other such details of the language. Here are some additional materials on model checking.