وصف المقررات لهندسة البرمجيات
SE 201 مقدمة في هندسة البرمجيات
Credits: 3 (3,0,1) Prerequisite: CS 102+ ENG 103This 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
SE 311 هندسة متطلبات البرمجيات
Credits: 3 (3,0,1) Prerequisite: SE 201 for SE students, CS 225 for CS studentsThis course covers software requirements, applied to a variety of types of software. It also covers techniques for discovering and eliciting requirements, requirements documentation standards, 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., and requirements management: handling requirements changes, traceability, resolving feature interactions.
SE 322 تصميم وهندسة البرمجيات
Credits: 3 (3,0,1) Prerequisite: SE 311This course covers software design in-depth. Study of fundamental design concepts, design notations, and architectural design methods for large-scale software systems; several design methods are presented and compared, with examples of their use; Concepts such as information hiding, data abstraction, concurrency, and object-oriented software construction are discussed in depth; Students participate in a group project on software design.
SE 353 BUILDING SECURE SOFTWARE SYSTEMS
Credits: 3 (3,1,0) Prerequisite: CS331This course studies 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, proof-carrying code); and run-time enforcement of security policies (e.g., dynamic taint analysis).
SE 365 تفاعل الإنسان والحاسوب
Credits: 3 (3,1,0) Prerequisite: CS 210This course covers the introduction to the concepts underlying the design of human-computer interaction: usability, direct manipulation, systematic design methods, user conceptual models and interface metaphors, design languages and genres, human cognitive and physical ergonomics, information and interactivity structures, design tools and environments. This course teaches how HCI affects the overall design of interfaces. The course covers four major parts: the foundation, the design process, models and theories, and think outside the box.
SE 371 تطوير تطبيقات الشبكة العنكبوتية
SE 381 هندسة البرمجيات المدمجة
Credits: 3 (3,0,1) Prerequisite: SE 322, CS 355This course discusses software engineering practice and methods for embedded systems, focused around state machines as a unifying formalism for understanding software, hardware, and systems. It also discusses embedded software requirements, specification, analysis, principles of embedded software architecture and design, design of concurrent systems, and testing and analysis techniques for embedded systems.
SE 401 ضمان جودة البرمجيات
Credits: 3 (3,1,0) Prerequisite: SE 322This course is designed to give an understanding of the key concepts and principles in creating and managing successful software testing to meet specific requirements using best practices of software quality assurance. Topics covered include software quality assurance, testing process, test design & coverage techniques and testing strategy. Best practice strategies in object-oriented software testing and web application are also discussed. An overview of test automation methods and tools is also covered.
SE 403 SIGNAL PROCESSING SYSTEMS
Credits: 3 (3, 0, 1) Prerequisite: CS 210Digital signal processing (DSP) systems have been enabled by the advances in very-large scale-integrated (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 الأنظمة القائمة على المعالجات
Credits: 3(3, 0, 1) Prerequisite: CS 355This 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.
SE 409 الحوسبة السحابية
Credits: 3 (3,0,1) Prerequisite: CS 331, SE 322This course will give students a theoretical foundation and hands-on experience with the various technologies of the cloud computing paradigm. The course will cover topics related to cloud infrastructure and software stack, programming models, underlying distributed storage layers, as well as Virtualization. Students will also be exposed to various cloud frameworks and libraries.
SE 411 بناء البرمجيات
Credits: 3 (3,0,1) Prerequisite: SE 401This 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.
SE 413 نمذجة نظام البرمجيات
Credits: 3 (3,0,1) Prerequisite: SE 322This 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, non-determinism, 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
Credits: 3 (3,0,1) Prerequisite: SE 322This course contributes to the domain of Group Dynamics (GD) in Software Engineering (SE). Student will learn how to identify the Group Dynamics (GDs) within a traditional and global software development environment. It also introduces the SE Professional Practice as one of the fifteen knowledge areas of Software Engineering Body of Knowledge (SWEBOK) which states that SE professional practice is concerned with the knowledge, skills, and attitudes that software engineers must possess to practice SE in a professional, responsible, and ethical manner. This course covers issues related with professionalism, GDs, psychology and communication skills.
SE 417 هندسة البرمجيات االقائمة على الوكيل
Credits: 3 (3,0,1) Prerequisite: SE 322This course begins with an overview of the agent systems and software agents. Then it focuses 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 420 التطوير السريع في هندسة البرمجيات
Credits: 3 (3,0,1) Prerequisite: Senior levelThis course is an introductory course to agile software development methodologies. It explores theory, tools, and techniques for the practices of the agile approach. Students will gain hands-on experiences in agile software development through projects dealing with various aspects of agile development.
SE 421 مقاييس البرامج
Credits: 3 (3,0,1) Prerequisite: Senior LevelThis course covers 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, and software quality tools.
SE 422 صيانة البرامج وتطورها
Credits: 3 (3,0,1) Prerequisite: SE 401This course provides students with 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.
SE 423 إدارة مشروع البرمجيات
Credits: 3 (3,0,1) Prerequisite: Junior LevelThis course covers the main knowledge areas of project management (time, cost, quality, scope, risk, human resources, communications, etc.) by focusing on software projects. It also covers 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 long-term software development, standards in project management, such as ISO10006, ISO12207, along with CMM model will be also discussed. Case studies of real industrial projects will be discussed.
SE 430 عمليات البرمجة وتحسينها
Credits: 3 (3,0,1) Prerequisite: SE 401Developing reliable software on time and budget is a challenging issue for many organizations. A software process improvement focus offers the organization a better chance for success. In this course, software process improvement methods, models and techniques will be studied with a focus on software development practice. Topics that are covered in the course range from how to assess software development organizations capability to how an organization can take advantage of change artistry.
SE 436 البنية الموجهة نحو الخدمات
Credits: 3 (3,0,1) Prerequisite: SE 322This courses covers service oriented architectures. 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 444 الاساليب والنماذج الرسمية في البرمجة
Credits: 3 (3,0,1) Prerequisite: Senior LevelThis course is an introduction to the use of formal methods for the specification, design, and automatic analysis of software systems. A variety of specification notations such as propositional and predicate logic, UML/OCL, temporal logic are presented. In addition, the course covers the application of analysis techniques including theorem proving, constraint checking, model checking using existing commercial and research tools.
SE 445 أنظمة البرامج في الوقت الفعلي
Credits: 3 (3,0,1) Prerequisite: CS 330This 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 450 أنماط التصميم
Credits: 3 (3,0,1) Prerequisite: SE 322This course provides an in-depth view of design patterns. The course is suitable for software architects and developers who are already well-versed in software design. In addition, this course will offer continuous opportunities for learning the most advanced features of the object oriented languages and understanding some principles behind the design of its fundamental libraries.
SE 453 هندسة أمن البرمجيات
Credits: 3 (2,0,2) Prerequisites: SE 353This course will study architectural patterns for integrating security into software such as web applications. The course will cover several topics include: an overview of software security; integration of authentication, access control, and auditing into software; programming with symmetric-key and asymmetric-key cryptography, including key distribution and key management, use of certificates, and SSL/TLS; security mechanisms in modern runtime environments, e.g., code signing, code verification, access control, and security policies. Students will get hands-on experience designing and implementing secure software.
SE 465 هيكلة المؤسسات
Credits: 3 (3,0,1) Prerequisite: SE 322This 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 إدارة عمليات الأعمال المتقدمة
Credits: 3 (3,0,1) Prerequisite: SE 322 for SE students, Junior Level for CS studentsBusiness Process Management (BPM) is a research field that focuses on improving performance by managing and optimizing its processes. This course addresses techniques and concepts required to map, implement, automate, and evaluate business processes. Components of BPM lifecycle will be discussed with emphasis on modeling, analysis and optimization of processes in a data-driven fashion. The course comprises concepts of Business Process Management such as Process modeling using BPMN, qualitative and quantitative analysis of processes models, Process Redesign and Automation. Additionally, the course focuses on introducing the importance of process mining into the discovery and improvements of processes. Students learn the three basic steps of Process Mining: discovery of models from data, conformance analysis of the resulting models with data, and performance analytics.
SE 480 تحليلات البرامج
Credits: 3 (3,0,1) Prerequisite: Instructor consentThis 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 موضوعات مختارة في هندسة البرمجيات
Credits: 3 (3,0,1) Prerequisite: Instructor consentThis course covers topics in the software engineering discipline not covered by other SE courses. Students are encouraged to propose topics for this course.
SE 492 موضوعات مختارة في هندسة البرمجيات
Credits: 10 Prerequisite: Department consentThe Co-Op is a career related professional program available to all Software Engineering students. It is designed to help students build on skills already learned in the classroom and acquire new ones as well. Co-Op education is available to CCIS students who have accumulated the requisite number or more credits. The Co-Op option counts for 10 credit hours (CRs) for practical onsite experience over a 7 month period, i.e. spanning one semester and a summer.
SE 495 الموضوعات الناشئة في هندسة البرمجيات
Credits: 3 (3,0,1) Prerequisite: Instructor consentThis course covers topics in the computer science discipline that recently gained innovative attention in Computer Science. Students are encouraged to propose topics for this course.
SE 499 مشروع تصميم و تطوير البرمجيات