CIS 618: Software Engineering

CIS Department, Temple University

Fall 2007

Syllabus

 

 

INSTRUCTOR      David Lefkovitz

                              Room 315 Wachman Hall

                              215-204-5550

                              lefkovitz@cis.temple.edu

 

COURSE DESCRIPTION

 

This course takes a technology-based approach to the software engineering of networked application systems design and programming.  Normally a course does not predicate itself upon a particular proprietary system, but the new Microsoft .NET technology inherently contains so many implications for new software engineering paradigms that it cannot be ignored.  This course, therefore, will draw upon this new technology for its theoretical, architectural, and system design foundations.  If one were to view the Microsoft evolution of its application development tools over the past 20 years, 3 characteristics would be revealed: (1) Improvement of developer productivity through coding aids and automation, (2) response to accepted (and competing) open technologies like Unix and Java, and (3) response to the ubiquitous use of the internet.  An evolutionary time line might appear as: MS-DOS, Windows, Office, VB/Access/SQLServer, OLE/COM/COM+, ASP, .NET.  .NET is the current and most advanced stage of this evolution, drawing together the three above mentioned characteristics into a system that bridges software engineering philosophy at one end, in its most abstract and conceptual sense, with programming technique at the other end, in its most concrete and pragmatic sense.

 

The course thus uses .NET as a model for the software engineering of enterprise applications primarily intended for networked and distributed deployment.  The course takes its cue from these 3 characteristics: (1) How to optimize productivity of the software engineer, (2) how to integrate the best that open technologies have to offer, and (2) how to build large scale systems that operate most efficiently on the internet.

 

The course is divided into 3 parts: First is the theory that flows from .NET.  This includes (1) Basic Structural Concepts of .NET, (2) Application System Architectures and Design Methodology, and (3) Processing Efficiency, Scalability and Security.  Second is the development of a working skill set in two .NET languages: ASP.NET and VB.NET and its major development tool, VS.NET.  Third is the design and programming of a small but complete web oriented application.     

 

PREREQUISITE  

      CIS 511 and 512 OR Permission of Instructor       

 GRADING

Grading is based upon lab exercises and implementation of a term project (70%), a Midterm exam (10%), and a Final Exam (20%)

 TEXTBOOKS

      Programming Microsoft ASP.NET 2.0, Dino Esposito, Microsoft Press, 2006, ISBN: 978-0-7356-2176-3.

 

COURSE OUTLINE

Lecture 1

1.1 Review of Home page

1.2 Unit 1: Use of Textbook

(1) Course summary by chapter

(2) Download of the textbook code

(3) Installation of the textbook’s Hiflyer database tables

1.3 Unit 1: Development tools

1.4 Unit 1: Accounts and Project Setup

(1) Set up NT account, Web, and VS Solution

(2) Principal VS.NET views

1.5 Unit 1: Basic Structural Concepts of .NET

      (1) Browser-Server interaction

      (2) ASP.NET overview

Lecture 2

2.1 Unit 1: Basic Structural Concepts of .NET

(3) ASPX – CodeBehind - Component interaction

(4) Managing State and Scope

(5) Global (asax)         

2.2 Unit 2: .NET Programming

      (1) Intrinsic HTTP objects

(2) Webforms overview and basic ASPX scripting

(3) Basic ASPX scripting and HTML embedment

(4) Forms and Controls

(5) HTML Form Controls (HFC)

(6) WebForm Controls (WFC)

(7) Code Behinds 

(8) WebForm events and handlers

Lecture 3

3.1 Unit 2: .NET Programming

      (9)   Validators

(10) Databases and ADO.NET

(11) Code Behinds with Components and Database Processing

Lecture 4

4.1 Unit 2: .NET Programming

(12) Writing to the Browser

(13) Property procedures and More on Table dynamics

Lecture 5

5.1 Unit 2: .NET Programming

(14) Web Services

Lecture 6

6.1 Unit 2: .NET Programming

            (14) Web Services

Lecture 7

      7.1 Unit 3: Term Project

(1) Discuss Term Project

(2) Design Documentation

      7.2 Unit 2: .NET Programming

            (15) Error handling

(16) Debugging

Lecture 8

      8.1 Unit 4: System Architectural Concepts

                  (1) Clients and Servers

                  (2) Distributed Application Architectures

(3) Databases and Transactions

Lecture 9

      9.2 Unit 2: .NET Programming

(17) User Controls and Frames

(18) Serialization

(19) Sending Email

(20) Crystal Reports

      Lecture 10

10.1 Unit 2: .NET Programming

      (21) .NET Distributed Applications

Lecture 11

11.1 Unit 2: .NET Programming

      (21) .NET Distributed Applications

Lecture 12

12.1 Unit 2: .NET Programming

            (22) Shared, Synchronization, Global, Session, Application locks

(23) Custom web controls

(24) Config Files

Lecture 13

      13.1 Unit 5: Processing efficiency and scalability

            (1) Compiled vs. non compiled Code Behinds

(2) Global objects in asax

(3) Cache object

(4) Session and Application objects

(5) Scalability

Lecture 14

      14.1 Unit 6: Web application security