Software Engineering (SE)
This course presents a hands-on study of software engineering methods. Topics include: Characteristics of Software Engineering, Software Life Cycle & Development Methodologies, Problem Analysis & Requirements Engineering, Analysis & Design Tools, Usability, Validation & Verification, Risk Analysis, and Software Project Management.
This course will start with a summary of Object Oriented and functional methods fur software development. Students will learn how to realize a design in an 00 language (like Java), learn a variety of software design patterns and get exposed to problems and issues of large system design.
This course describes the role of requirements in the construction and continued maintenance of software- intensive systems. It provide s a broad overview of the notations, techniques, methods and tools that can be used to support the various requirement s engineering activities, offers a framework to assess their applicability, and complements this with the opportunity to gain experience in a selection of these. The course seeks to illustrate the wider relevance of requirements engineering to everyday projects, examine the breath of skills required and explore the many contributing disciplines.
In this course the student selects a topic of interest and working with a professor he studies it deeper.
Focus on an emerging and promising software development technique -the formal methods. Emphasize the practical applications of formal methods in various phases of the software development.
This course covers the new potentials and challenges that mobile brings to software engineering. It looks at the common software engineering tools, methods, and processes that are appropriate for designing and maintaining mobile software services and applications. The course covers topics including requirements engineering, user involvement, usability, design, tools and frameworks, deployment, testing, and the integration of mobile services and apps with conventional systems. A significant project is integrated in the course.
In this course student will learn the methods of developing requirements, analyzing existing documents and information sources, conceptual modeling, identifying reusable semantic components, modeling business processes and user interactions applying patterns to make models more robust, representing models using XML schcmas and using XML models to implement and drive applications.
Concepts, theory, and practical techniques will be introduced for designing and building user-centered, intuitive, effective computing systems. Topics include principles of usable design, interface clements, user psychology, prototyping, and an introduction to interface evaluation. Project examples may include web design, multimedia interfaces, mobile and specialized applications.
This course covers software validation and verification techniques, and their role in the software engineering process and in quality assessment. Validation addresses the question whether the right software was built for the user, and verification tackles issues related to whether software is correct with respect to some specification. The testing process, metrics for software testing, and a variety of testing techniques and supportive tools are introduced.
This course will discuss the CMM model from SEI. Each level of this capability maturity model will be studied and case studies will be development. Also CMMI will be extensively discussed and studied.
This course focuses on software engineering for distributed teams, including global teams. It permits students to gain an understanding of the advantages, challenges and strategies of distributed and global software development. Students learn about the role of processes such as distributed Serum. Students develop effective teamwork skills, become familiar with collaborative development environments and social tools for distributed teams (e.g., Jazz), and experience global software development in a project involving students distributed across cultures, times and locations.
In this course the student either consults with a professor and selects a topic of interest or ask a professor to join an on going research project. The student prepares him/her self by studying materials and working with the professor.
In this course, students will be working on project in a team. This project will be carried out from conceptualization to completion using the current technologies.