Syllabus
Software process and requirements
Software characteristics, Software quality attributes, Software process model (Agile Model, V-Model, Iterative Model, Prototype Model, and Big Bang Model), Computer-aided software engineering, Functional and non –functional requirements, User requirements, System requirement, Interface specification, The software requirements documents, Requirement’s elicitation and analysis, and Requirement’s validation and management.
Software design
Design process, Design Concepts, Design Mode, Design Heuristic, Architectural design decisions, System organization, Modular decomposition styles, Control styles, Reference architectures, Multiprocessor architecture, Client –server architectures, Distributed object architectures, Inter-organizational distributed computing, Real –time software design, and Component-based software engineering.
Software testing, cost estimation, quality management, and configuration management
Unit Testing, Integration testing, System testing, Component testing, Acceptance Testing, Test case design, Test automation, Metrics for testing, Algorithmic cost modeling, Project duration and staffing, Software quality assurance, Formal technical reviews, Formal approaches to SQA, Statistical software quality assurance, A framework for software metrics, Matrices for analysis and design model, ISO standards, CMMI, SQA plan, Configuration management planning, Change management, Version and release management, and CASE tools for configuration management.
Object-oriented fundamentals and analysis
Defining Models, Requirement Process, Use Cases, Object Oriented Development Cycle, Unified Modeling Language, Building Conceptual Model, Adding Associations and Attributes, and Representation of System Behavior.
Object-oriented design
Analysis to Design, Describing and Elaborating Use Cases, Collaboration Diagram, Objects and Patterns, Determining Visibility, and Class Diagram.
Object-oriented design implementation
Programming and Development Process, Mapping Design to Code, Creating Class Definitions, from Design Class Diagrams, Creating Methods from Collaboration Diagram, Updating Class Definitions, Classes in Code, and Exception and Error Handling.