Architecture description languages, Software Architecture Analysis, Software Architecture design, and documentation, component models and technologies, software product lines, frameworks, and aspect-oriented programming. To give the students understanding of the concept of software architecture and how this phase in the development between requirement specification and detailed design plays a central role for the success of a software system. The students will get knowledge of some well-known architecture patterns, and be able to design, construct and evaluate architectures for software systems. In addition, the students should get some understanding of how the developer’s experiences and the technical and organizational environment will influence on the choice of architecture. Architectural styles and patterns, methods for constructing and evaluating architectures, and component-based development. Design patterns and object-oriented frameworks. Architecture and video games.

Introduction to the process of knowledge discovery in databases, Basic concepts of data warehousing and data mining, Data preprocessing techniques: selection, extraction, transformation, loading, Data warehouse design and implementation: multidimensional data model, case study using Oracle technology, Overview of data mining process and knowledge discovery, Database Support to Data Mining , Data Mining Techniques and Functions, Cluster Analysis , Regression Algorithms in Data Mining, Neural Networks in Data Mining ,Decision Tree Algorithms.

Machine learning schemes in data mining: finding and describing structure patterns (models) in data, informing future decisions, Information theory and statistics in data mining: from entropy to regression, Data mining core algorithms: statistical modeling, , clustering, association analysis , classification and prediction; Credibility: evaluating what has been leaned from training data and predicting model performance on new data, evaluation methods, and evaluation metrics; Weka: a set of commonly used machine learning algorithms implemented in Java for data

Mining; C5 and Cubist: Decision tree and model tree based data mining tools; Link Analysis in Text Mining, Web Mining Taxonomy, Mining the Web User Behavior, Web Analytics and case studies of real data mining applications.

Introduction to software quality: software quality, hierarchical models of boehm and mccall, quality measurement, metrics measurement and analysis, gilb’s approach, gqm model; software quality assurance: quality tasks, SQA plan, teams, characteristics, implementation, documentation, reviews and audits software quality, product versus process quality management, techniques to help enhance software quality; quality control and reliability: tools for quality,  ishikawa’s basic tools, case tools, defect prevention and removal, reliability models, Rayleigh model, reliability growth models for quality assessment; quality management system: (elements of qms, Rayleigh model framework, reliability growth models for qms, complexity metrics and models, customer satisfaction analysis; quality assessment techniques and quality standards: need for standards, ISO 9000 series, ISO 9000-3 for software  development, cmm and cmmi , six sigma concepts. software validation and verification and quality plans.