* Program Structure
* Degree Requirements
* Recomended Prerequsites
* Graduate Curriculum (MS)
* Courses Offered in 2006-2007 Spring
* News and Events
* Facts, Numbers
* Publications
* MS Projects
* Links
* Frequently Asked Questions
Objectives
The MS Program in Software Management is the first program established in Turkey to target specialized software domain knowledge. The objectives of this program are to lead the advancement of software practice in Turkey, to disseminate the domain knowledge on principles, processes, methods and techniques required to manage the development and evolution of software systems, and to bring forth experts and scientists in this field. The program targets professionals in the field. The students in the program will gain the ability to systematically define and use the knowledge on software development processes, methodologies, techniques and metrics. The program offers courses on software project management, software quality management, software acquisition management, requirements analysis, software architectures and design, software testing, human computer interaction, and software operations and maintenance. For students to gain necessary experience, design and implementation are seen as an integral part of all courses. Students are also involved in a realistic team project to integrate the knowledge and experience built up in specialized courses.
Career Opportunities
The program prepares graduates for professional careers in organizations which acquire, develop, evolve and maintain software systems
Program Structure
Software Management is a non-thesis program. The students enrolled in the program are required to take four core courses and seven electives. The elective courses are divided into two categories as Software category and Software Domains category. Software category includes courses related to software management and software product engineering. Students need to take at least four courses in this category. Software Domains category includes courses on computing foundations and software application areas. Students can take up to three courses from this category. In addition, the students can also take courses from other programs such as MS in Modeling and Simulation (MODSIM) and MS in Informatics Online (ION) as Software Domains electives. No prerequisite courses are specifically required to enter the program. However, the students are expected to have background knowledge on discrete mathematics and numerical methods, programming and algorithms, and management.
Students enrolled in Software management program pay tuition fee based on the number of credit hours they register every semester. The amount of tuition fee per credit hour is determined at the beginning of every semester.
Degree Requirements
A total of 34 credits are required for graduation.
Recomended Prerequisites
For non CENG or CS Students, red highlighted courses are recommended to take at the beginning of the program. Other paths are recommended for all SM students.
Graduate Curriculum
MS Degree Requirements -Non-Thesis Option
Core Courses
SM 501 Personal Software Process
Description: The course introduces the basic principles of the personal software process and help individual engineers to improve their performance by bringing discipline to the way they develop software. Students start with the PSP0 process, where they use their current programming practices. The PSP process is enhanced through seven process versions, with students writing one or two programs with each PSP version. For each program, they use the process methods just introduced, as well as all of the methods introduced with the previous process versions.
SM 502 Software Management
Description: This course introduces the fundamentals and methods used in managing software development. Topics will include software project planning and control, subcontract management, configuration management, risk management and organizing and managing software teams and commitment management.
SM 503 Object Oriented Software Development
Description: The course introduces the fundamentals of object-oriented information system development with a focus on analysis and design phases. Data modeling and design principles such as data abstraction, information hiding, modularity, and coupling are viewed in the context of object-oriented paradigm. For object-oriented modeling Unified Modeling Language (UML) is introduced and used extensively throughout the course. Unified process is taken as the basis for development efforts. Issues relating to making the transition from other software development methodologies are examined and risks involved in object-oriented process are discussed.
SM 504 Team Software Project
Description: The course is designed for students to gain an understanding of issues of a real-world software project and enable them to apply their newly learned skills in a practical context. Students will be grouped into teams to undertake a software project with the tools, techniques and skills acquired during their previous course work. Each team will work as a software development group and assume the role of a quality assurance team for another group. The team will be assigned to a client and will interact with that client to engineer requirements, agree upon a design and achieve a successful acceptance test of a software system. Teams will meet on predetermined milestones with their faculty and quality assurance groups to discuss review results and progress.
SM 589 Term Project
SM 590 Graduate Seminar
Students who have already taken some of the core courses listed above (or their equivalents) should take elective courses to replace them.
SM 511 Software Process Improvement
Description: Introduce students to the concept of software process and software process improvement through the use of software process capability models. Emphasis will be placed on the application of process concepts to industrial situations. Other topics will include software process assessment techniques, software process improvement models and process capability models in related areas.
SM 514 Introduction to Software Testing
Description: The relationship of software testing to quality is examined with an emphasis on testing techniques. Topics include module and unit testing, integration and acceptance testing, statistical testing methods, defining test plans and strategies that map to system requirements. Testing principles, formal models of testing and software testing standards are also examined.
Name: SM 515 Software Verification and Validation
Description: The course introduces software verification and validation techniques and tools. The course focuses on audit, review, inspection and walkthrough techniques and tools used for implementation. It also introduces independent verification and validation process. Issues related to the installation of these processes within an organization and to the impact on software quality are also investigated. Students complete a term project to apply the techniques and tools studied.
SM 516 Component Based Software Production
Description: Effective software processes for component based software production. Domain engineering vs. application engineering. Component project management. Quality assurance. Product line development. The use of commercial off-the-shelf components. Product data management. Maturity of the component process. Running the component-based engineering business.
SM S17 Software Metrics
Description: Techniques of measurement within the context of software quality engineering and software project management are addressed. Metrics and quality are presented in relationship to the software process and software process maturity models. Selection of quality and project metrics is addressed in terms of the goal/question/metric paradigm as well as various quality models. Methods of storing data for historical purposes, analyzing and presenting data to others are also discussed included.
SM 518 Real-time Software Development
Description: Real-time systems. Real-time operating system concepts:Scheduling, Syncchronization, Communication. Real-time software development methods. Real-time software development tools.
SM 519 Acquisition of Software Intensive Systems
Description: This course aims to enhance students' understanding of software acquisition problems and their appreciation of mature acquisition processes. Not only the internationally accepted mature acquisition processes but also suggestions for one-time software acquisition are discussed.
SM 520 Research Methods in Software Engineering
SM 521 Software Requirements Engineering
Description: Requirements engineering within software life-cycle. Requirements elicitation and modelling: issues and techniques. Documentation and management of requirements. Standards and CASE tools. Cognitive and socio-organizational issues.
Software Design Patterns
Description: The course focuses on design patterns, patterns for concurrent software systems, antipatterns and recognizing design problems, refactoring bad design to patterns. Hands-on experience on reuse of design patterns will be established by a class project. The course includes reviews of UML, object-oriented design and aspect oriented design. Students will be able to efficiently communicate program structures using patterns and to develop software of high quality.
SM 549 IT Governance
Contemproray issues about IT Governance as a whole; but major concentration upon
* IT Organization
* IT Management
* IT Processes
* IT Project Management
* IT Control Standards & Security
* IT Risk Management & Audit
issues will be thoroughly discussed and practiced in this course. By focusing on Business Requirements and Business-Technology Alignment; well-applied Global Best Practices, Assessment Methodologies, Process Maturity and IT Risks will examined.
Besides experiencing the technology impact and its leverage on business world, the protection & control of information & information assets will be the common perspective of this lecture.
In addition to a medium weight of reading materials; membership to and follow-up of some major professional e-groups and discussion lists, research over the Internet, control risk assesment & audit project assignments, in-class case studies, simulations and presentations will be the lecture s in & out of class study/practice material.
SM 512 OOP and Data Structures
Description: The basic Object Oriented Principles will be discussed using a modern programming language i.e. Java. The theory will be used in practice to implement Data Structures which is very important in algorithm development.
The core of the class will depend on using object oriented principles to implement algorithms in Data Structures using Java. Altough some reading is required, practice is more important in learning any programming language.
SM 541 Instructional Software Construction
Description: Overview of Computer Aided Instruction (CAI): Types, strengths and weaknesses, effective CAI. Implications of the learning theories for courseware design and authoring. Features, advangates and limitations of different CAI modes. Planning and managing CAI projects. Designing and producing CAI.
SM 542 Multimedia and Web Engineering
Description: his course introduces methodologies, techniques and tools used to analyze, design and implement multimedia and web-based applications. The focus of the course will be hands-on development of commercial web-based applications. Students will study a variety of software technologies relevant to web design and implementation including programming languages, scripting languages, network programming and security. Each student will develop an application by going through all phases of web engineering life cycle: specification, design, implementation, and evaluation.
SM 546 Contemporary Database Management Systems
Description: This course will introduce students to the state of the art commercial relational database systems and enable them to gain practical knowledge and experience in using them. The fundamental concepts including relational data base systems and SQL, the normal forms, data base design, and the entity-relationship approach will be reviewed. The concepts of modern relational database systems such as stored procedures, triggers, cursors, database security and concurrency as well as performance and tuning of the relational database system will be covered.
SM 547 Enterprise Resource Planning Systems
Description: This course studies Enterprise Resource Planning (ERP) systems, its scope, implementation issues and the organization s motivation for implementation such systems. The topics include; the ERP framework and architecture, leading enterprise systems and market trends, implementation methodologies, evaluation of ERP Systems, and implementation success factors. The students will comprehend the implementation process and will be able to develop an ERP implementation. The course will involve a combination of lectures, in-class discussions and presentations, online materials, a project, and homework assignments. The course will involve a combination of lectures, in-class discussions and presentations, online materials, a project, and homework assignments.
SM 548 Computer Systems for Programmers
Description: This course summarizes computer systems from a programmers perspective and it is for students with no backgrounds in logic design, computer organization and computer architecture. Starting with a program in a high level language, all stages from compilation, assembly and execution of instructions in hardware level are covered. More advanced topics such as pipelining and cache memories are also discussed. The students who finish the course can write better programs since they will be able to understand better how the computer programs are executed
SM 561 Introduction to Software Engineering
Description: The course introduces the fundamentals of software engineering with an emphasis on software life cycle models, analysis and structuring of software development problems, project management techniques and contemporary design notations.
SM 701 Contemporary Issues in Business
Description: This course aims at providing people from all backgrounds with the general understanding of the business environment. During their lives as an employee of company, or as an entrepreneur, or even as a customer, everyone is involved in the business world. Better understanding of issues such as global economic system, social responsibility, employee-management relations, challenges facing business entities, marketing strategies, and financial transactions will help individuals in being successful in life, and in a business environment in particular. During the course, those issues and other related ones will be covered by first providing the background information and then following with in class discussions.