CATALOG DESCRIPTION OF COURSES Offered by the department of Software Engineering



Similar documents
Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Karunya University Dept. of Information Technology

Master of Science in Software Engineering Student Guide

International Program for Bachelor of Science (Software Engineering) College of Arts, Media and Technology, Chiang Mai University

Development (60 ЕCTS)

Course Descriptions. CS 101 Intro to Computer Science

Computer Science Course Descriptions Page 1

Chap 1. Introduction to Software Architecture

Description of the program

Course Descriptions. preparation.

M.S. Computer Science Program

SOFTWARE ENGINEERING PROGRAM

Master of Science in Computer Science Information Systems

What is a life cycle model?

Please consult the Department of Engineering about the Computer Engineering Emphasis.

Division of Mathematical Sciences

School of Management and Information Systems

How To Get A Computer Science Degree At Appalachian State

Department of Computer Science

Certified Software Quality Engineer (CSQE) Body of Knowledge

How To Get A Computer Science Degree

Master of Science (M.S.), Major in Software Engineering

Students who successfully complete the Health Science Informatics major will be able to:

Other Required Courses (14-18 hours)

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Process Models and Metrics

INFORMATION SYSTEMS (INFO)

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Department of Information Systems and Cyber Security

Applying 4+1 View Architecture with UML 2. White Paper

School of Computer Science

IT3205: Fundamentals of Software Engineering (Compulsory)

T I C S ELECTE SEP David Garlan Alan Brown, Daniel Jackson Jim Tomayko, Jeannette Wing August 6, 1993 CMU-CS

The B.S. Degree Program in Information Systems

SCHOOL OF ELECTRONICS AND COMPUTER SCIENCE

Surveying and evaluating tools for managing processes for software intensive systems

Contents The College of Information Science and Technology Undergraduate Course Descriptions

Protect Your Organization With the Certification That Maps to a Master s-level Education in Software Assurance

How To Be An Architect

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Operating Systems Group

One LAR Course Credits: 3. Page 4

Undergraduate Major in Computer Science and Engineering

SOA + BPM = Agile Integrated Tax Systems. Hemant Sharma CTO, State and Local Government

Aerospace Software Engineering

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Master Degree Program in Computer Science (CS)

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING

INFORMATION TECHNOLOGY (IT) 515

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

COMPUTER SCIENCE PROGRAM ASSESSMENT PLAN

INFORMATION SYSTEMS AND TECHNOLOGY MANAGEMENT

INFORMATION TECHNOLOGY (IT)

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

DESIGN. College of the Arts. Career Possibilities. Undergraduate Programs. Bachelor of Arts in Design (120 Units) 342 Design CSULB Catalog

Weighted Total Mark. Weighted Exam Mark

Rensselaer Polytechnic Institute. Master of Science Information Technology ITWS

Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation

Doctor of Philosophy in Computer Science

Masters in Information Technology

Graduate Co-op Students Information Manual. Department of Computer Science. Faculty of Science. University of Regina

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Telecommunication (120 ЕCTS)

Project Management Support

Master of Science in Computer Science

Bachelor of Information Technology

Masters in Computing and Information Technology

COMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.)

Masters in Networks and Distributed Systems

Quality Management. Lecture 12 Software quality management

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

Software Development: The Waterfall Model

M.Tech. Software Systems

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

The Masters of Science in Information Systems & Technology

Master of Science Service Oriented Architecture for Enterprise. Courses description

Department of Computer Science

FACULTY OF POSTGRADUATESTUDIES Master of Science in Computer Engineering The Future University

INFORMATION TECHNOLOGY PROGRAM

Undergraduate Degree Map for Completion in Four Years

CREDENTIALS & CERTIFICATIONS 2015

Computer Science. General Education Students must complete the requirements shown in the General Education Requirements section of this catalog.

Computer Security & Information Assurance MS Program

FDU-Vancouver Bachelor of Science in Business Administration International Business Concentration Course Descriptions

Masters in Human Computer Interaction

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Getting Things Done: Practical Web/e-Commerce Application Stress Testing

College of Communication and Information. Library and Information Science

CREDENTIALS & CERTIFICATIONS 2016

(Refer Slide Time: 01:52)

Business Process Management In An Application Development Environment

Masters in Artificial Intelligence

Computer and Information Science

Professional Organization Checklist for the Computer Information Systems Curriculum

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

Software Development Process

Undergraduate Degree Map for Completion in Four Years

A complete software development process of a general report publication service implemented using Web Services

Bachelor of Science in Business Administration - Information Systems and Technology Major

Transcription:

CATALOG DESCRIPTION OF COURSES Offered by the department of Software Engineering SE 201 Introduction to Software Engineering 3(3, 0, 1) Credits: 3 (3, 0, 1). Prerequisite: None. This course introduces software engineering as a discipline. It starts by a general introduction on the evolution of the discipline, then introduces the software life-cycle, software processes, requirement analysis, design, implementation, testing. This course covers the various Software Development Processes and requires students to appreciate and apply various aspects of software engineering principles. Classical Software Development Life-cycles from waterfall, spiral, incremental, evolutional to recent lean, agile methods and component based systems are covered. Special emphasis is put on quality and process improvement models such as CMM, PSP and TSP. This introduction is complimented by practical training to develop some of the basic software engineering skills. The skills covered include planning, estimation, scheduling, testing, debugging, quality management etc Prerequisite: CS102 SE211 Software Construction 3(3, 0, 1) This course will provide students with an in-depth study of software construction. Topics include basic theory of grammars and parsing, use of parser generators, software construction fundamentals (minimizing complexity, anticipating change, constructing for verification and standards in construction), managing construction (construction models, construction planning and construction measurement), practical considerations (construction design, construction languages, coding, construction testing, reuse, construction quality, configuration management, security, automation, and integration), and techniques for handling concurrency and inter-process communication. Prerequisite: SE201 SE311 Software Requirements Engineering 3(3, 0, 1) Broad coverage of software requirements, applied to a variety of types of software. Domain engineering. Techniques for discovering and eliciting requirements. Languages and models for representing requirements. Analysis and validation techniques, including need, goal, and use case analysis. Requirements in the context of system engineering. Specifying and measuring external qualities: performance, reliability, availability, safety, security, etc. Specifying and analyzing requirements for various types of systems: embedded systems, consumer systems, web-based systems, business systems, and systems for scientists and other engineers. Resolving feature interactions. Requirements documentation standards. Traceability. Human factors. Requirements in the context of agile processes. Requirements management: Handling requirements changes. Prerequisites: SE201

SE322 Software Design and Architecture 3(3, 0, 1) This course covers the fundamental design principles and strategies for software architecture and design. Architectural styles, quality attributes notations and documents, reference architecture, domain-specific architecture in architecture process and pattern-oriented design, componentoriented design, aspect-oriented design, and interface design in detail design process are discussed. Software evolution, flexibility, Middleware architectures such as COM and.net are also discussed. An introduction to SOA is also presented. An overview of design issues in user interfaces and the concepts of reusability, portability and robustness in design are also given in the course. Students participate in a group project on software design and architecture and design tools. Prerequisites: SE211 and SE311 SE 340 Database Management Systems Same as CS340 SE 353 Building Secure Software Systems This course will study approaches, mechanisms, and tools used to make software systems more secure. The course will motivate the study by discussing common software security dangers (e.g., buffer overflow attacks, cross-site scripting). The majority of the course will be divided into four main modules: architectural approaches to building secure software (e.g., confinement, virtual machines, trusted computing); software analysis (e.g., static analysis and testing, model checking); language-based approaches to building secure software (e.g., type systems, proofcarrying code); and run-time enforcement of security policies (e.g., dynamic taint analysis). SE365 Software Engineering Approach to Human Computer Interaction 3(3, 0, 1) Covers a wide variety of topics relating to designing and evaluating user interfaces, as well as some of the psychological background needed to understand people. This course is also found in Core Software Engineering Package II. Psychological principles of human-computer interaction. Evaluation of user interfaces. Usability engineering. Task analysis, user-centered design, and prototyping. Conceptual models and metaphors. Software design rationale. Design of windows, menus, and commands. Voice and natural language I/O. Response time and feedback. Color, icons, and sound. Internationalization and localization. User interface architectures and APIs. Case studies and project. Prerequisite: SE211 SE 381 Embedded Software Engineering Software engineering practice and methods for embedded systems, focused around state machines as a unifying formalism for understanding software, hardware, and systems. Embedded software requirements, specification, and analysis. Principles of embedded software architecture and design. Design of concurrent systems. Testing and analysis techniques for embedded systems.

SE 403 Signal Processing Systems Digital signal processing (DSP) systems have been enabled by the advances in very-large scaleintegrated (VLSI) technologies. New DSP applications constantly impose new challenges on VLSI implementations. These implementations must satisfy real-time constraints imposed by the applications and must fit increasingly stringent area and power envelope. This course will survey methodologies needed to design efficient and high-performance custom or semi-custom VLSI systems for DSP applications. The primary focus of the course is on design of architectures, algorithms, and circuits, which can be operated with small area and low power consumption to deliver a high speed and functional performance. SE 407 Microprocessor Based Systems This course is focused on the principles and practices of modern embedded systems design. It will focus on computer architecture beyond the CPU, fundamentals of the hardware/software interface, techniques for sensing and controlling the physical world, and a few other topics. Introduction to microprocessors as embedded devices. Emphasizes Input/Output techniques, interrupts, real-time operation, high-level code debugging and interfacing to various types of sensors and actuators. SE401 Software Quality Assurance and Testing 3(3, 0, 1) Concept of software quality, and software quality metrics. Software quality assurance planning & implementation. Quality process standards. Validation & verification. Reviews, walkthroughs, & inspections. Mechanisms for validating software systems. Techniques for generating and validating test data. Students participate in a group project on software validation and verification. Prerequisite: SE322 SE 421: Software Quality and Metrics 3(3, 0, 1) Concepts of the pervasive system attributes: reliability, efficiency, maintainability, reusability, etc. Software Quality Management Processes. Software complexity and measures. Software process measures, product measures and resource measure. Validation of software measures. Software measures and measurement theory. Measuring, monitoring and controlling reliability. Software Quality tools. Prerequisites: SE401 SE 422: Software Maintenance and Evolution 3(3, 0, 1) The objective of this course is to provide students a common understanding of software maintenance principles and software evolution. Key issues in software maintenance, maintenance process, techniques for maintenance, software maintenance tools, maintenance and Reengineering, reverse engineering, and refactoring. Prerequisite: SE 322

SE423 Software Project Management 3(3, 0, 1) This course covers the main knowledge areas of project management (time, cost, quality, scope, risk, human resources, communications, etc.) by focusing on software projects. Project planning, cost estimation, earned-value analysis techniques and scheduling. Project management tools. Factors influencing productivity and success. Productivity metrics, Analysis of options, risk management and dynamic adjusting of project plans. Planning for change. Management of expectations. Software contracts and intellectual property. Approaches to maintenance and longterm software development. Standards in project management, such as ISO10006, ISO12207, along with CMM model will be also discussed. Case studies of real industrial projects. Prerequisites: SE401 SE 371 Web Engineering 3(3, 0, 1) Same as CS371 SE 413 Software System Modelling This course examines the underlying concepts and latest topics in software models. This course considers many of the standard models for representing sequential and concurrent systems, such as state machines, algebras, and traces. It shows how different logics can be used to specify properties of software systems, such as functional correctness, deadlock freedom, and internal consistency. Concepts such as composition mechanisms, abstraction relations, invariants, nondeterminism, inductive definitions and de-notational descriptions are recurrent themes throughout the course. This course provides the formal foundations for the other core courses. Notations are not emphasized, although some are introduced for concreteness. Examples are drawn from software applications. SE 415 Group Dynamics and Professional Practice 4(3, 1, 1) Communication and writing skills are highly regarded in the software industry, but they are also fundamental to success in collegiate careers. Professional Practice is concerned with the knowledge, skills, and attitudes that software engineers must possess to practice software engineering in a professional, responsible, and ethical manner. SE 417 Agent Based Software Engineering The course begins with an overview of the agent systems and software agents. Then we focus on agent system architecture and infrastructure from a software engineering viewpoint, including: Requirements for agent-based systems, Modeling and design of agent-based systems, Development process for agent-based systems. Topics such as agent architecture, communication, knowledge sharing, computing and uncertainty management are discussed. Studying society of agents and models of agency follows. Finally, a perspective on a methodology for agent-oriented software engineering and standards are presented.

SE 430 Distributed Systems Modelling and Design This course addresses key concepts for designing and building distributed software systems. Topics that will be covered include: definition and scope of distribution, principles of communication, software architectures of distributed systems, middleware systems, service discovery, quality of service, adaptive systems, mobility, security, and fault tolerance. SE 436 Service Oriented Architectures Service Oriented Architectures represent a new rising approach for building interoperable, loosely coupled distributed systems. The main attraction of service orientation is that it makes it easy to separate concerns and integrate heterogeneous system components irrespective of the vendor or platform. System components interoperate while maintaining their independence from other components. The main purpose of this course is to introduce the major concepts and technologies relating to service oriented architectures. This includes the core architecture, main principles of service orientation, service oriented analysis, service oriented design, and business process design. SE 445 Real-Time Software Systems This course focuses on practical development and engineering approach issues of real-time software. It assumes a reasonable proficiency in at least one programming language (C, C++, Java, or others) and a basic understanding of the fundamental concept of object orientation. The course emphasizes architectural analysis rather than programming. Topics include: architectural aspects, scheduling and synchronization, design patterns for real-time software, and aspects of software verification and model checking. SE 457 Enterprise Resource Planning & Design Same as CS 451 SE 450 Design Patterns Software Design Patterns are reusable solutions to recurring software problems. They capture successful experiences and convey expert insight and knowledge to less experienced developers. This course provides an in-depth view of patterns using Java as the presentation language. The course is suitable to software architects and developers who are already well-versed in this language. In addition, this course will offer continuous opportunities for learning the most advanced features of the Java language and understanding some principles behind the design of its fundamental libraries.

SE 465 Enterprise Architectures This course focuses on the analysis and design of an enterprise in its current and future states from a strategy, business and technology perspective. This course provides an exposure to the foundational concepts of enterprise architecture. The course will provide students with the foundational knowledge needed to understand how EA serves to integrate strategic, business, and technology planning methods, which support enterprise-wide information technology resource development and governance in the context of business requirements. SE 477 Advanced Business Process Management The course explores a wide range of technical and conceptual practices to improve business processes. It discusses recent developments in the transformation management programs such as TQM, re-engineering, benchmarking, strategic alliances, business process improvement, balanced scorecard, and strategic plan deployment. It also describes the mechanisms to undertake process improvements in line with strategic imperatives, and measure the results of improvement efforts against targets; how to best organize people, and work in an organization with management according to process principles, and how to think horizontally as well as vertically concerning ways to manage a business, and examine where these approaches are in conflict and where they are in concert with one another. SE 480 Software Analytics This course covers the application of selected statistical analysis, data mining, and machine learning techniques to the area of Software Engineering. These methods and techniques are used to conduct stakeholder analysis, mining software repositories, trace retrieval, bug prediction, recommender systems in Software Engineering domains, and software process improvement techniques. The course demonstrates how these techniques can be used to enhance project management and other software engineering activities in software intensive systems and provides students with hands-on experience using them on real project data. SE 489 Selected Topics in Software Engineering 3(3, 0, 1) Credits: 3 (3, 0, 0). Prerequisite: completion of 90 credit hours. This course covers topics in the software engineering discipline, which are not covered by other courses. The students are encouraged to propose topics for this course.

SE 490 Internship in Software Engineering 3 Credits: 3. Prerequisite: Advisor consent. The student is asked to spend 2 months (around 300 working hours) in an approved company or institute. It is up to the student to choose the place he wishes to enrol in but nevertheless, prior approval of the department is required. The practical training carries a '3 credit hour weight and has normal grading (A, B,). SE 492 Cooperative Education 10 Credits: 10. Prerequisite: Department consent This course is elective (on the student part) and selective (on the department part) track subject to the approval of the department. It carries a 10 credit hours weight and has normal grading (A, B, etc.). Students allowed to take this track will be waived from the following courses: IS 490, IS 498, IS 499, and a free-elective course. Typically a coop program will last 7 months (at least 1200 working hours) and will span one summer and one regular semester. Prior approval of the department is required. Furthermore, close supervision by both the department and the designed company is maintained to ensure that the student is following the proposed work plan. SE492 Software Engineering Capstone Project 10(4, 3, 3) Provides students, working in groups, with a significant project experience in which they can integrate much of the material they have learned in their program, including matters relating to requirements, design, human factors, professionalism, and project management. Development of significant software system, employing knowledge gained from courses throughout the program. Includes development of requirements, design, implementation, and quality assurance. Students may follow any suitable process model, must pay attention to quality issues, and must manage the project themselves, following all appropriate project management techniques. Success of the project is determined in large part by whether students have adequately solved their customer s problem. Prerequisites: Completion of the level 3 courses in one of the curriculum patterns. SE 495 Emerging Topics This course is used to introduce emerging topics in software engineering that do not yet have a regular course number. Content of the course varies.

SE 498 Senior Project I Credits: 1. Prerequisite: Instructor consent and completion of 90 credit hours. This is a software engineering application development project applying previously learned concepts and methods, substantial and suitable in nature, under the supervision of a faculty member. The senior project consists of a sequence of two courses: SE 498 and SE 499. In SE 498, the student is typically expected to study a problem, analyse and determine the requirements, and design the solution for a system to be developed in a system environment or a business programming environment. SE 499 Senior Project II 3 Credits: 3. Prerequisite: SE 498. This course is a continuation of SE 498. The student is typically expected to carry the management information system application construction, integration, testing, evaluation and tuning, delivery, and user training.