| Software Engineering Course Descriptions |
Core Courses EEC 521 Software Engineering (4-0-4) Prerequisite: Graduate Standing. Software process, methods, and tools; phases of software development process including requirements analysis, design, coding, and testing; methods and techniques for software engineering, and software project management, metrics, and quality assurance. EEC 623 Software Quality Assurance (4-0-4) Prerequisite: Software Engineering ECE 521. Software quality; software quality aspects; software quality assurance (SQA); SQA components, activities, and infrastructures; cost of software quality; software quality metrics and models; software quality standards. CIS 634 Object-Oriented Software Engineering (4-0-4) Prerequisite: CIS 568 or equivalent. A study of architecture based object-oriented software development. Concepts, principles, and methods in software architectures, and object-oriented software engineering. UML and patterns are studied. Includes a project requiring the development of a small-scale software system. CIS 635 Software Engineering Metrics, Economics, and Management (4-0-4) Prerequisite: CIS 568 or equivalent. Importance of software quality assurance; metrics for quantitative comparisons and evaluations of software and of development processes; phases and activities of a software life-cycle; use of cost estimation models to plan cost, schedule, and effort required at various levels of project detail; software project planning and control techniques; use of estimates in decision making for management; computerized tools for software estimation and project management. Elective Courses EEC 517 Embedded Systems (2-4-4) Prerequisites: Graduate Standing. Software design of microcontroller-based embedded systems. Topics covered include: microcontroller architecture; assembly programming; C programming; real time interrupts; external interrupts; program size considerations; input/output issues; analog-to-digital conversion; serial port reception-transmission. EEC 522 Modeling and Analysis in Software Systems (4-0-4) Prerequisites: Graduate Standing. Software system formal mechanism including specification, validation, and verifying. Formal specification with algebraic specification and abstraction/reasoning about system properties. Evolution of formalism to model a certain system. Proof of models using analytical methods and experimental methods using simulators. EEC 525 Data Mining (4-0-4) Prerequisite: Graduate Standing. Data mining process, data mining tasks including classification, clustering, association, and prediction; methods and procedures for data mining using machine learning, neural networks, and databases techniques; data mining tools, systems, and applications. EEC 530 Digital Signal Processing (4-0-4) Prerequisite: Graduate Standing. Modeling of DSP operations using discrete-time signals and systems; difference equations, Z-transforms, Fourier methods. Signal sampling (A/D) and reconstruction (D/A); digital filters; sample rate converters; DFT and spectrum estimation; selected applications. Out-of-class projects completed on DSP equipment in lab. EEC 581 COMPUTER ARCHITECTURE (4-0-4) Prerequisite: Graduate standing. The design of high-performance computer systems, with emphasis on cost-performance tradeoff, performance evaluation, instruction set design, hardwired control-unit design, micro- and nano-programming, pipelining, memory hierarchy, and I/O interfaces. EEC 601 GRADUATE SEMINARS (1-0-1) Prerequisite: Graduate Standing. Invited experts from industry and academia present and discuss current issues and trends in research and the professional practice of Electrical, Computer, and Software Engineering. Registration may be repeated for credit. Credits earned by registering for this seminar do not fulfill degree requirements. Graded S/F. * CIS 620 Comparative Operating Systems Interfaces (4-0-4) Prerequisite: CIS 545 or equivalent. Processes and interprocess communication. Application program interface (API). Network interfaces and socket programming. Event driven and Windows programming concepts, including geometry managers, events and bindings, and window managers. Command-level shell programming, program development tools, and file systems. Distributed operating system considerations. EEC 623 Software Quality Assurance (4-0-4) Prerequisite: ECE 521. Software quality; software quality aspects; software quality assurance (SQA); SQA components, activities, and infrastructures; cost of software quality; software quality metrics and models; software quality standards. EEC 624 SOFTWARE TESTING (4-0-4) Prerequisite: EEC 521. Software errors, bug reports, test case design, white box testing, unit testing, integration testing, system testing, regression testing, test planning and management. EEC 625 SOFTWARE DESIGN AND ARCHITECTURE (4-0-4) Prerequisite: EEC 521. An in-depth look at software design. Study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, security, reusability, reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of software evolution, reengineering, and reverse engineering. EEC 626 Software Engineering Project (4-0-4). Prerequisite: MSSE core courses (EEC 521, EEC 623, CIS 634, CIS 635). Students will apply software engineering principles, methods, and tools learned in their course work in building realistic software systems. Students work as small teams in solving real world problems. Students will meet regularly in class and teams meet separately. * CIS 630 Enterprise Application Development (4-0-4) Prerequisite: CIS 569 or equivalent. Issues surrounding the development of distributed applications, including their architecture, design, and implementation; use of the Java Enterprise API’s; includes servlets, JavaServer Pages (JSP), Java Database Connectivity (JDBC), RMI, CORBA, JNDI, Enterprise JavaBeans, and XML; design and development of complex, distributed web applications. CIS 650 COMPILER DESIGN (3-0-3) Prerequisite: CIS 620. Practical overview of the principles involved in the design and construction of translators. Language theory and its relation to push-down automata, parsing methods, finite state machines and lexical methods, including data representation and run-time environments. In-depth coverage of major parsing and syntax-directed translation ranging from top-down recursive-descent methods, including LL(k) and SL(k), to bottom-up LR methods, including simple LR, canonical LR, and look-ahead LR, with exposure to the yacc parser generator tool. Lexical analysis, including regular expressions, finite state machines, and the lex scanner generator tool. CIS 675 INFORMATION SECURITY (3-0-3) Prerequisite: CIS 535, CIS 545, and CIS 554 or equivalent. A comprehensive study of security vulnerabilities in information systems and the basic techniques for developing secure applications and practicing safe computing. Topics include: common attacking techniques, such as buffer overflow, Trojan virus, etc.; UNIX, Windows, and Java security; conventional encryption; hash functions and data integrity; public-key encryption (RSA, elliptic-curve); digital signature; watermarking for multimedia; security standards and applications; building secure software and systems; legal and ethical issues in computer security. EEC 681 DISTRIBUTED COMPUTING SYSTEMS (4-0-4) Prerequisite: EEC 584. This course provides an extensive overview of distributed computing systems. Topics include distributed system architectures, inter-process communication, remote method invocation, distributed naming, clock synchronization, event ordering and global snapshot, replication and fault tolerance techniques. EEC 684 PARALLEL PROCESSING SYSTEMS (4-0-4) Prerequisite: EEC 581. Overview of parallel system organizations and parallel algorithms. Topics include memory structures for parallel systems, interconnection networks, SIMD/MIMD processing, parallel programming languages, mapping and scheduling, parallel algorithms, and case studies. EEC 687 Mobile Networks (4-0-4) Prerequisite: EEC 584. This course provides a comprehensive overview of the mobile computing which is likely to become a pervasive part of future computing infrastructures with technical advancements in wireless communication, mobility and portability. Topics include mobile TCP/IP protocols, mobile ad hoc networks, mobile application architectures, system issues for mobile devices and some pervasive and ubiquitous computing examples. EEC 692 Special Topics in Software Engineering (4-0-4) Prerequisite: Permission of instructor. Advanced selected topics in software engineering. Offered upon sufficient demand. EEC 695 INDIVIDUAL PROBLEMS IN SOFTWARE ENGINEERING (one to four credits.) Prerequisite: Permission by instructor. Directed study on an individual problem under the supervision of a faculty member. Total credits for this course are limited to eight credits. Graded S/F. EEC 699 MASTER’S THESIS (one to nine credits) Note: Only one course marked with an * is permitted to count towards graduation requirements for the MSSE degree. |
© 2009 Cleveland State University | 2121 Euclid Avenue, Cleveland, OH 44115-2214 | 216.687.2000