This course - TOPICS IN THIS COURSE

Last modified 08/07/2006

CIS 573: SOFTWARE ENGINEERING - BUILDING LARGE INFORMATION SYSTEMS
Prerequisite: CIT 591 and 593; or CSE 120, 121, and 240; or equivalent coursework.

This course will be a practicum in specifying, designing and documenting, building, testing and administering corporate-sized software projects that invariably have a database component, security and firewall issues, a web-based user interface, and special client programs running as applications elsewhere on a network. The course will examine one or more existing, commercial systems (such as the Blackboard system in use at Penn) and will address conceptual issues surrounding large software systems, such as ways to estimate project size, and ways to integrate different technologies into a maintainable system design.

There will be substantial programming assignments using Microsoft Visual Studio .NET languages such as C# to create components of a larger system. Possible projects include a web interface, a client (and possibly server-side programming) for a SOAP/XML based web service, a Windows-based client with graphical interface, and rudimentary SQL database table and view design. The idea of using UML for code generation, and writing "built-in" unit tests for objects to automate future retesting will be examined.