Software Engineering

قسم هندسة البرمجيات

يهدف قسم هندسة البرمجيات لتلبية الطبب المتزايد في السوق المحلي على المتخصصين العاملين في مجال تطوير البرمجيات بمختلف أنواعها وأحجامها
يهدف هذا القسم لتطوير المهارات التطبيقية والتحليلية المطلوب توفرها لدى الطلاب، للوصول إلى القدرة على تطوير برمجيات قوية فعالة تعمل في المجالات المختلفة: الطبية والصناعية والخدمية ومجال عمليات الأعمال وغيرها. سيكتسب الطلاب في قسم هندسة البرمجيات بشكل فردي وبشكل جماعي تجارب عملية تعطيهم إمكانية التعامل بكفاءة مع مختلف الأدوات والمنهجيات ذات العلاقة بمجال هندسة البرمجيات.

رؤية القسم

الريادة في تقديم برامج تعليمية وبحثية متطورة مواكبة للتطور العلمي في مجال هندسة البرمجيات على المستويين المحلي والإقليمي.

رسالة القسم

تخريج طلاب يتمتعون بالمعرفة والمهارات الكافية المطلوبة لإنتاج وتقديم أنظمة برمجية عالية الجودة.

أهداف القسم

  • تزويد الخريجين بالمعرفة الكافية والمهارات الكافية لمهندس البرمجيات
  • إنجاز شراكات فعالة مع المجتمع المحلي بما يساهم في رفع جودة المنتجات البرمجية المنتجة محلياً.
  • عمل مساهمات ملموسة في المجال البحثي لحقل هندسة البرمجيات

الأهداف التعليمية لبرنامج هندسة البرمجيات

  1. اكتساب الطالب للمعرفة والمهارات الفكرية والعملية والمهنية في هندسة وتطوير البرمجيات.
  2. اكتساب وتمكين الطالب من إتقان مجموعة متنوعة من لغات وأساليب البرمجة الحديثة.
  3. اكتساب الطالب للمعرفة والمهارات الفكرية والعملية والمهنية لتصميم وتنفيذ قواعد البيانات.
  4. اكتساب الطالب للمهارات المعرفية والفكرية والعملية والمهنية التي تدعم تكنولوجيا المعلومات.
  5. اكتساب الطالب للمعرفة والمهارات الفكرية في المبادئ الأخلاقية المهنية والبحث العلمي والتعلم مدى الحياة.

المستهدفات:

في وقت التخرج ، من المفترض أن يعرف خريج البرنامج وأن يكون قادرًا على:
  1. استخدام المعرفة والمهارات العملية والمهنية الكافية لتطوير البرمجيات ، ولديه فهم كاف لمنهجيات تطوير البرمجيات ، مع القدرة على اختيار المنهجية المناسبة لمشاريع البرمجيات المختلفة وفقًا لمعايير الجودة المطلوبة.
  2. يمكن أن يساهم بشكل فعال في مشاريع تطوير البرمجيات باستخدام لغات البرمجة والخوارزميات المختلفة.
  3. تصميم وتنفيذ ومراقبة والإشراف على مشاريع قواعد البيانات المختلفة.
  4. استخدام المعرفة والمهارات العملية والمهنية في مجال تكنولوجيا المعلومات.
  5. إدراك الحاجة إلى التعلم مدى الحياة وتطوير الذات والقدرة على التواصل الفعال وإجراء البحوث العلمية ، مع فهم وتقدير المسؤولية المهنية والأخلاقية.

الأهداف التعليمية لبرنامج هندسة البرمجيات

  • تطبيق المعرفة في العلوم والرياضيات والهندسة.
  • تطبيق ممارسات هندسة البرمجيات في جميع مراحل دورة حياة النظام بالكامل.
  • وصف منهجيات هندسة البرمجيات المختلفة، مع القدرة على اختيار المنهجية المناسبة لمشاريع البرمجيات.
  • تطبيق ممارسات ضمان جودة البرمجيات للتأكد من أن مواصفات البرمجيات وتصميماتها وتنفيذها وصيانتها تفي بالمعايير ذات الصلة.
  • إعداد التوثيق اللازم المطلوب خلال مراحل تطوير المشروع البرمجي.
  • المساهمة في جلسات المناقشة الخاصة بالمشروع البرمجي والعروض التقديمية وجلسات المراجعة والتقييم.
  • الاعتراف بالحاجة مع القدرة على الانخراط في التعلم مدى الحياة.
  • التواصل الفعال مع فهم المسؤولية المهنية والأخلاقية.

الخطة الدراسية

وصف المقررات

Prerequisite: 61252
This course is important as it presents key principles and concepts of software engineering and gives a solid foundation for other courses in this area. The course covers the most important definitions and concepts in software engineering, software life cycle and processes, fundamentals, Software development from problem specification and requirements engineering through design, implementation, testing, and maintenance; introduction to rapid and extreme programming – fundamentals of modelling and design – fundamentals of project management, costing of software, change management and software quality assurance. Introduction to ethics and professional practice of software engineering, in a collective project on the software life cycle and using specialized software tools.

Prerequisites: 61252
This course will introduce the topic of Information Systems (IS) and discuss how organizations use information systems to support for a variety of tasks ranging from basic day to day activities to creating competitive advantage in the market place. Topics such as foundation of information systems, e-business, competitive advantage with information systems, IT infrastructure, communication and networks, information system development, databases and information management, improving decision making and managing knowledge, enterprise applications, securing information systems, ethical and social issues in information systems.

Prerequisites: 62152
This course introduces the main concepts of data structures. Topics covered: concepts of Abstract Data Types (ADT), specification of different data structures such as: (Lists, Stacks, Queues, Dictionaries, and Trees) as ADT, different implementations using an object oriented approach, algorithms analysis in terms of time and size for the different implementations. Recursion as problem solving technique and a brief introduction to graphs is also covered.

Prerequisite: 61254
This course provides an introduction to hardware and software aspects of computer architecture. Topics covered: Computer structures and their types, instructions’ set architecture, arithmetic logic unit, control unit, buses, control signals and statements, memory hierarchy, computer performance measurement, enhancing performance with pipelining. Connecting and interfacing I/O devices to CPU.

Prerequisite: —-
This is course in physics designed to emphasize the experimental laws of physical science. Topics to be covered include mechanics, heat, wave motion and sound, electricity and magnetism, optics, and modern physics. In the computer lab portion of the course, students will perform some programs of experiments and analyze the results based on physical law.

Prerequisite: 62137
This course introduces the various concepts of Requirements Engineering. Topics covered include: Essential topics of the variant requirements analysis phases, problem analysis, Prototyping the Requirements, Trawling for Requirements, Scenarios, Writing the Requirements, Reviewing the Specification, Requirements Reusing, Requirements Quality Gateway and risk analysis. A Requirements Specification Template as a standard and guideline in producing the Requirement Specification document. The ethical behavior of software analysis will be discussed when the requirements are combined with the stakeholders. Students participate in a collective project in software requirements engineering.

Prerequisite: 62137

This course is aimed at software analysts, designers and developers who already understand the Software development Life Cycle (SDLC). It provides knowledge and practice in the object-oriented analysis and design activities of software engineering. Topics covered: Unified process model, Requirement Engineering using scenarios and use cases, object oriented analysis models (Class diagram, activity diagram, sequence diagram), introduction to object oriented design models, changing the design to code. Practical sessions using CASE tools also provided. Through exercises and group work, students first perform Object Oriented Analysis (OOA) to produce a conceptual model of existing information using case studies to identify actors and primary use cases for documentation. Using Object Oriented Design (OOD) students learn how to identify classes and build the domain model.

Prerequisite: 61151
This course provides a discussion of legal and ethical issues faced by computing professionals. These issues will be framed in terms of what it means to be a computing professional with topics such as responsibilities, ongoing professional development, and social involvement. The course will use the students’ prior experiences in software development as a framework by demonstrating lecture concepts through coding examples and technical situations. State and national laws pertaining to computing will be presented. Students will be required to give and justify opinions about given computing situations. Students will also present an opinion to the class about one specific software development issue.


Prerequisite: 63150
This course introduces students to the topics of information technology ethics including: definitions, rules & policies of computer ethics, hacking, viruses, Internet ethics, freedom of expression on the Internet, computer professionals and social responsibilities, software copyright, intellectual property, software piracy, cyber law and privacy & security of computerized information.


Prerequisite: 63251
The program covers ethical and professional behavior that software engineers must adhere to in order to perform their duties and succeed in their mission. The in-depth ethics of IEEE-CS / ACM software engineering are covered with respect for the public interest, customers, employer, product, governance, management, profession, colleagues, and self. As well as other aspects related to the professional practice of software engineering such as group dynamics, teamwork and interaction with stakeholders, effective communication and presentation skills, the economic impact of software, professional associations and licensing, social and legal issue.


Prerequisite: 62137
This course introduces human-computer interaction field that integrates the capabilities of computer technology with human factors limitations. Topics covered: foundations, the human, the computer, the interaction, usability paradigms and principles, interaction design, understanding users, model of the user in design, affective aspects, interfaces and interactions, data gathering, design and construction of prototypes, evaluation techniques.


This course provides formal specification techniques that allow students to construct of the formal model that can perform tests on specifications and corresponding code to find errors in requirements, models, designs, and implementations. The course will focus on the role of Formal Methods, why Study Formal Methods in Software Engineering?, Specification of Programs and Myths about Formal Methods


Prerequisite: 63152
This course provides an introduction to the main concepts of programming by components. Topics covered: Object-Oriented Programming (OOP) concepts that form the base for components, software architecture for supporting components, transition from structured Object Oriented to component-based programming, designing reusable components in Visual basic.net, Software Design Patterns such as Exception handling, Reflection, Web Services and their relationship to component programming.


Prerequisite: 62137
In this course, students apply the stages of building software from requirements engineering, design coding and testing. The student should perform a project work with a group of students or individually. This project will be the basis for the graduation project. Where the student will write the code for the project.

Prerequisite: 63152
This course provides an overview of software maintenance (what, why, who), Different types of software maintenance, Software maintenance metrics and case studies, Maintenance prediction (number of changes, cost, impact analysis), Evolution process models, Legacy system reengineering and reuse, Reverse engineering and program understanding, Software and Information Visualization, Software system re-documentation, Service Oriented Architecture (SOA), and Agile software development.

 


Prerequisite: 62152
This course is concerned with the development of applications on mobile computing platforms. Android will be used as a basis for teaching programming techniques and design patterns related to the development of standalone applications and mobile interfaces to enterprise and cloud systems. Emphasis is placed on the processes, tools and frameworks required to develop applications for current and emerging mobile computing devices. You should work at all stages of the software development life-cycle from inception through to implementation and testing. In doing so, you will be required to consider the impact of user characteristics, device capabilities, networking and cloud infrastructure and deployment environment, in order to develop software capable of meeting the requirements of stakeholders.


Prerequisite: 62154
This course focuses on learning emerging issues related to Cloud computing technology. The objectives are:
• Understand various basic concepts related to cloud computing technologies
• Understand the architecture and concept of different cloud models: IaaS, PaaS, SaaS
• Understand big data analysis tools and techniques
• Understand the underlying principle of cloud virtualization, cloud storage, data management and data visualization.
• Understand different cloud programming platforms and tools
• Be familiar with cloud programming using Google’s ‘Go’ programming language
• Have details knowledge on reading and writing in cloud storage
• Be familiar with application development and deployment using cloud platforms
• Create application by utilizing cloud platforms such as Google app Engine and Amazon Web Services (AWS)
• Learn to develop scalable applications using AWS features.
• Learn basic concepts of MapReduce programming models for big data analysis on cloud.


Prerequisite: 62153
The course covers Big Data Fundamentals, including the characteristics of Big Data, the sources Big Data (such as social media, sensor data, and geospatial data), as well as the challenges imposed around information management, data analytics, privacy and security, as well as platforms and architectures. Emphasis will be given to non-relational databases by examining techniques for storing and processing large volumes of structured and unstructured data, streaming data as well as complex analytics on them. Data warehouses will also be presented as a solution to handling big data and business intelligence applications.


Prerequisite: 62153
Data Mining studies algorithms and computational paradigms that allow computers to find patterns and regularities in databases, perform prediction and forecasting, and generally improve their performance through interaction with data. It is currently regarded as the key element of a more general process called Knowledge Discovery that deals with extracting useful knowledge from raw data. The knowledge discovery process includes data selection, cleaning, coding, using different statistical and machine learning techniques, and visualization of the generated structures. The course will cover all these issues and will illustrate the whole process by examples. Special emphasis will be given to the Machine Learning methods as they provide the real knowledge discovery tools. Important related technologies, as data warehousing and on-line analytical processing (OLAP) will be also discussed. The students will use recent Data Mining software. Enrollment in this course is limited to 15 students.


Prerequisite: 62154

Introduces students to all of the components of Enterprise Resource Planning and its extensions while enabling them to understand how to choose, install and successfully use ERP systems.

arArabic
Scroll to Top