CIS 573 - SOFTWARE ENGINEERING - Building Large Information Systems

Instructor: Pat G. Palmer

Prerequisite: CIT 591 and 593; or CSE 120, 121, and 240; or equivalent coursework.  Instructor permission required for undergrads.

Large information systems typically must accommodate a variety of possible network infrastructures and corporate security constraints.  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 (frequently) special client programs running as applications elsewhere on a network..

There will be extensive programming projects using Microsoft .NET languages 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. 

The course will examine the functionality, structure and business model of one or more existing, commercial systems (such as the Blackboard system in use at Penn), including an overview of the business model of such a system.  It will also address conceptual issues surrounding the development of large software systems, such as ways to estimate project size, and ways to integrate different technologies into a maintainable system design.

The course content will fall roughly into the following areas:

I. Development of programming skills in Microsoft .NET languages (C#.NET and VB.NET), including possibly:
 - graphical user interfaces on Windows
 - web sites on IIS
 - delegates and call-backs
 - dynamic link libraries
 - database access on a website
 - accessing a web service from within a web page

II. Case Studies of Previous and Current Large Information Systems, including possibly:
 - Blackboard
 - Ingenium
 - Pedagogue Testing

III. Conceptual Issues Surrounding the Development of Large Information Systems
 - project management methodologies
 - project size estimation
 - maintainability vs. speed of development
 - UML
 - automation of testing, and outfront design of test interfaces

IV. A crash course in related skills
 - networking
 - SQL and database access
 - security


PREREQUISITES:

CIT 591 and 593; or CSE 120, 121, and 240; or equivalent coursework.  Prior knowledge of Java required. Familiarity with at least one Integrated Development Environment (IDE) would be helpful. Some familiarity with basic networking and database technologies is also desirable. No prior knowledge of Visual Studio .NET is needed.

This course will be an optional course under the MCIT Program.

 

Please bookmark the course URL, which is at:

    http://harbormist.com/pgpalmer/cis573/index.html