Introduction to Software Engineering:
Ageneric view of Process: Software Engineering, Process Framework, CMM Process Patterns, Process Assessment.
Process Models: Prescriptive Models, Waterfall Model, Incremental Process Models, Evolutionary Process Models, Specialized Process Models, The Unified Models, Personal and Team Process Models, Process Technology, Product and Process.
An Agile view of Process: Introduction to Agility and Agile Process, Agile Process Models.
Software Engineering Principles: SE Principles, Communication Principles, Planning Principles, Modeling Principles, Construction Principles, Deployment.
System Engineering: Computer-based Systems, The System Engineering Hierarchy, Business Process Engineering, Product Engineering, System Modeling.
Requirements Engineering: A Bridge to Design and Construction, Requirements Engineering Tasks, Initiating Requirements Engineering Process, Eliciting Requirements, Developing Use-Cases, Building the Analysis Model, Negotiating Requirements, Validating Requirements.
Building the Analysis Model: Requirements Analysis Modeling Approaches, Data Modeling Concepts, Object-Oriented Analysis, Scenario-based Modeling, Flow-oriented Modeling, Class-based Modeling, Creating a Behavioral Model.
Design Engineering: Design within the context of SE, Design Process and Design Quality, Design Concepts, The Design Model, Pattern-based Software Design.
Creating an Architectural Design : Software Architecture, Data Design, Architectural Styles and Patterns, Architectural Design, Assessing Alternative Architectural Designs, Mapping Data Flow into a Software Architecture.
Modeling Component-Level Design: Definition of Component, Designing Class-based Components, Conducting Component-level Design, Object Constraint Language, Designing Conventional Components.
Performing User Interface Design: The Golden Rules, User Interface Analysis and Design, Interface Analysis, Interface Design Steps, Design Evaluation.
Software Quality Assurance: Basic Elements, Tasks, Goals and Metrics, Formal Approaches, Statistical Software Quality Assurance, Software Reliability, ISO9000 Quality Standards, SQA Plan.
Testing Strategies: A Strategic Approach to Software Testing, Strategic Issues, Test Strategies for O-O Software, Validation Testing, System Testing, The Art of Debugging.
Testing Tactics: Software Testing Fundamentals, Black-box and White-box Testing, Basis Path Testing, Control Structure Testing, O-O Testing Methods, Testing Methods applicable on the Class Level, Inter Class Test Case Design, Testing for Specialized Environments, Architectures and Applications, Testing Patterns.
Product Metrics: Software Quality, A Frame work for Product Metrics, Metrics for the Analysis Model, Metrics for the Design Model, Metrics for Source Code, Metrics for Testing, Metrics for Maintenance.