SM 501 Personal Software Process (3-0)3
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 (3-0)3
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 (3-0)3
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 (2-4)4
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 511 Software Process Improvement (3-0)3
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 (3-0)3
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.
SM 515 Software Verification and Validation (3-0)3
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 (3-0)3
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 517 Software Metrics (3-0)3
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 (3-0)3
Real-time systems. Real-time operating system concepts:Scheduling, Syncchronization, Communication. Real-time software
development methods. Real-time software development tools.
SM 519 Software Acquisition (3-0)3
Issues relating to software procurement, contract law, specification and control of product processes are examined. Topics include software and
system acquisition standards, factors that affect cost, cost estimation, cost/benefit analysis, risk analysis and legal implications with respect to
ownership and use.
SM 520 Research Methods in Software Engineering (3-0)3 (To be developed)
SM 521 Software Requirements Engineering (3-0)3
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.
SM 541 Instructional Software Construction (3-0)3
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 (3-0)3
This 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 (3-0)3
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(3-0)3
This course studies Enterprise Resource Planning (ERP) systems, its scope, implementation issues and the organizations 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(3-0)3
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 undertstand better how the
computer programs are execut
SM 561 Introduction to Software Engineering (3-0)3
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 (3-0)3
A mixture of practical and theoretical topics will be examined. Among the topics to be discussed and for which case studies will
be analyzed are competing in the global economy, practicing ethical behavior and social responsibility, handling
employee-management relations, business challenges, small and medium sized enterprises, and developing marketing strategies. In
each of these topics, the general principles will be examined before discussing the topics in more detail. For example, prior
to developing marketing strategies it is essential to understand what the main principles of marketing are and to assess it
within the general framework of "integrated marketing" including - advertising, promotion and public relations.
SM 702 Behavioral Aspects of Software Development: Peopleware (3-0)3
The course covers the human behavioral issues affecting software development processes. Topics are investigated at three
layers: individual, team, and organizational. The role of individual behavior and productivity, the concept of effective teams and the
role of organizational culture in software development are discussed. Results of various research studies are presented in the context
of managing human capital in software projects.
SM 590 Graduate Seminar NC
SM 589 Term Project NC