CIS 618: Software Engineering
Fall 2009
INSTRUCTOR
Room
315 Wachman Hall
215-204-5550
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%)
The textbook is not required but is
a good Reference book for the course.
ASP.
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)
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