|
|
 |
|
Software Engineering
|
 |
SE
325 PRINCIPLES AND PRACTICES OF SOFTWARE ENGINEERING
This course introduces students to the principles and methods of software engineering. Topics covered include software methodology, software requirements and specifications, software design, testing and validation, software evolution, and project management. Students will also be exposed to a number of popular tools used extensively in industry to support software engineering activities. PREREQUISITE(S): CSC 212 or CSC 224 or CSC 396 or CSC 242 or CSC 262 or IM 330
SE 330 OBJECT ORIENTED MODELING Object-oriented modeling techniques for analysis and design. Provides the tools and techniques needed to solve complex, real-world software engineering problems in an object-oriented manner, using the most effective elements of the Unified Process. The course covers the essential concepts and notation of the Unified Modeling Language (UML), the standard notation for object-oriented analysis and design. Team project. PREREQUISITE(S): CSC212 or CSC262.
SE 331 MODEL-DRIVEN SOFTWARE DEVELOPMENT Introduction to software specification, modeling, and model-driven development. Topics include a survey of approaches to software specification and modeling, specification languages, notations, and techniques for modeling static and dynamic aspects of software systems, and the use of tools in analysis, verification, and transformation of software models PREREQUISITE(S): SE330
SE 333 SOFTWARE TESTING This course is designed for the software engineering professional to gain a greater understanding of the key ingredients in creating and/or managing a successful testing program to meet project needs. Topics covered include test lifecycle planning, test design & coverage analysis, complexity, levels of testing such as unit, integration, system, performance and stress testing. Best practice strategies in software testing such as verification & validation, early lifecycle testing, risk based testing and automation will also be examined including exposure to test automation methods and tools. PREREQUISITE(S): CSC 383 or SE330
SE 335 FOUNDATIONS OF DISTRIBUTED SYSTEMS I Course Description: An introduction to distributed systems.Topics may include: architecture of distributed systems; networking; datagram-oriented and stream-oriented protocols; network programming (for example, the sockets API); remote procedure call and remote method invocation; processes and threads; code migration; software agents; naming of non-mobile and mobile entities; cryptography and security. PREREQUISITE(S): (CSC 383 or CSC 393) and CSC 374.
SE 336 FOUNDATIONS OF DISTRIBUTED SYSTEMS II Course Description: An intermediate course on distributed systems. Topics may include: clock synchronization; mutual exclusion; distributed transactions; consistency models; distribution and consistency protocols; failure models; achieving fault tolerance; distributed object-based systems; distributed file systems. PREREQUISITE(S): CSC262 AND DS 320.
SE 350 OBJECT-ORIENTED SOFTWARE DEVELOPMENT Principles, techniques and tools of object-oriented modeling, design, implementation, and testing of large-scale software systems. Topics include design patterns, application frameworks, architectural design, and the applications in the software development process to improve the extensibility, maintainability, and reliability of software systems. PREREQUISITE(S): CSC 383
SE 352 OBJECT-ORIENTED ENTERPRISE APPLICATION DEVELOPMENT This course focuses on applying object-oriented techniques in the design and development of software systems for enterprise applications. Topics include component architecture, such as Java Beans and Enterprise Java Beans, GUI components, such as Swing, database connectivity and object repositories, server application integration using technologies such as servlets, Java Server Pages, JDBC and RMI, security and internationalization. PREREQUISITE(S): CSC 383.
SE 354 ENTERPRISE COMPONENT ARCHITECTURE This course will focus on object-oriented component architectures for enterprise applications. Topics include Enterprise Java Beans (EJB), Java Naming and Directory Interfaces (JNDI), Java Mail and Messaging Services. PREREQUISITE(S): SE 352.
SE 356 SOFTWARE DEVELOPMENT FOR MOBILE AND WIRELESS SYSTEMS This course will focus on the unique aspects of developing software applications for mobile and wireless systems, such as personal digital assistant (PDA) devices and mobile phones. Topics will include user interface design for small screens with restricted input modalities, data synchronization for mobile databases as well as wireless programming and the use of web services. PREREQUISITE(S): SE 350
SE 357 CONCURRENT SYSTEM DEVELOPMENT Fundamentals and techniques of developing concurrent object-oriented applications, using a patterns-based approach. Concepts covered include threads, synchronization and object locking, thread blocking and deadlock, safety and liveness, state-dependent action and concurrency control. PREREQUISITE(S): SE 350.
SE 358 SOFTWARE DEVELOPMENT FOR LIMITED AND EMBEDDED DEVICES This course will focus on the unique aspects, tools, and techniques for developing software applications for limited and embedded devices, such as set-top boxes, micro-controllers and smart cards. Topics will include memory management for low-memory devices and efficient programming techniques for limited processors. Students will gain hands-on experiences in customizing and configuring embedded OS, handling various types of sensors and actuators such as barcode readers, RFID sensors, etc, and building software applications that meet the functional and non-functional requirements. PREREQUISITE(S): SE 350
SE 360 STRUCTURED DOCUMENT INTERCHANGE AND PROCESSING Document and data interchange among different applications is an extremely important aspect of software application development. This course will focus on emerging technologies associated with the Extensible Markup Language (XML), such as the Document Object Model (DOM), the Simple API for XML (SAX), the XML Stylesheet Language (XSL) and Transformation Language (XSLT), and XML Schema. Applications of these technologies will be discussed in conjunction with tools and techniques for parsing, transforming, and manipulating documents. PREREQUISITE(S): SE 350.
SE 368 SOFTWARE MEASUREMENT AND PROJECT ESTIMATION This course will discuss various software metrics and defect models. Productivity and effort estimation models as well as software cost estimation will also be discussed. PREREQUISITE(S): IT 223 and SE 330.
SE 370 SOFTWARE DEVELOPMENT PROCESSES This course will study recent developments in software engineering processes that aim to improve software quality and estimation of development cost and schedule. It will focus on the Unified Software Development Process, along with discussion on other software development processes including eXtreme Programming (XP), Personal Software Process (PSP), Team Software Process (TSP), and Capability Maturity Model (CMM). PREREQUISITE(S): SE 330.
SE 380 DESIGN OF OBJECT-ORIENTED LANGUAGES This course covers issues in the design and specification of object-oriented programming languages. Sample topics include the use of patterns in program representation, static and dynamic semantics, subject reduction, sub-typing, inheritance, polymorphism, genericity and concurrency. PREREQUISITE(S): SE 350..
SE 385 SOFTWARE ARCHITECTURE Software architecture is a critical aspect of complex software systems. A system's architectural design is concerned with describing its decomposition into computational elements and their interactions. Architectural design tasks involve system decomposition; global control structures; protocols for communication, synchronization, data access; physical distribution of components; performance tuning; defining evolution paths; and selecting design alternatives. Major issues addressed include: architectural description, formal underpinnings, design guidance, domain-specific architecture, tools and environments. PREREQUISITE(S): SE 350.
SE 391 SOFTWARE ENGINEERING STUDIO I Students will work in small teams to develop realistic software systems in a master-apprentice environment. The instructor will serve as a master/mentor/project leader. Students will apply the knowledge and skills they have learned in previous course in solving real world problems. PREREQUISITE(S): SE 350.
SE 392 SOFTWARE ENGINEERING STUDIO II This course is a continuation of SE 391. SE 391 and SE 392 must be taken as a sequence in consecutive quarters. PREREQUISITE(S): SE 391.
|
|
©2008 | DePaul University | Disclaimer | Webmaster
1 E. Jackson, Chicago, IL 60604 | 312-362-8000
|
|
|