Software Development Processes (CS6300 / 4320)
Study in depth the process of developing software systems, including the development and assessment of processes, their instantiation in actual product development, and the techniques ensuring quality of the developed products. More specifically: (1) Understand the role of software process in the development of software (2) Experience a variety of existing software processes (3) Be exposed to a variety of development techniques and understand their connection to software processes
Software Architecture and Design (CS6310)
Course Objective:This class covers the principles and concepts involved in the analysis and design of large software systems. The goal of this class is to help students to (1) Understand and apply object-oriented design techniques (2) Develop and evaluate software architectures (3) Select and use appropriate architectural styles (4) Select and use appropriate software design patterns (5) Express the design an application using UML (6) Specify parts of the design using a formal design language, and (7) Understand and perform a design review.
Past professors: Dr. Spencer Rugaber
Software Analysis and Testing (CS6340)
Course Objective:Aspects of software development besides programming, such as testing, debugging, and verification, comprise over 50% of the cost of software development. Modern technology has come a long way to aid programmers with these aspects. At the heart of this technology lies program analysis: a body of work that concerns discovering facts about a given program. Many diverse program analysis approaches exist, each with their own strengths and weaknesses. This course will cover a broad spectrum of these approaches, including type systems, dataflow analysis, model checking, theorem proving, and dynamic analysis, as well as their combinations. Both the principles underlying these approaches and hands-on experience with using and implementing tools that realize these approaches will be covered. A mix of basic and advanced topics will be covered.
Professor: Dr. Mayur Naik
Class Web Page: Fall 2011
Introduction to Software Engineering (CS3300)
The goal of this class is to (1) Introduce students to the concepts and techniques required to build large software systems, and (2) Provide an opportunity to obtain practical experience applying the techniques on an actual development effort.
Past professors: Dr. Alex Orso