Concepts of Software Engineering, Software Engineering paradigms, Different phases of software System Development, Different types of information, qualities of information. Project Management Concepts, Software process and project Metrics, Software Project Planning, Risk Analysis and management, Project Scheduling and Tracking. Analysis Concepts and principles: requirement analysis, Analysis modeling, data modeling. Design concepts and principles, Architectural design, User Interface design, Object Oriented software development and design: Iterative Development and the Unified Process. Sequential waterfall life cycles, Inception. Use case model for requirement writing, Elaboration using System Sequence Diagram, Domain Model. Visualizing concept classes. UML diagrams, Interaction and Collaboration Diagram for designing Software. Designing Objects with responsibilities. GRASP patterns with General Principles in assigning responsibilities: Information expert, Creator, Low Coupling and High Cohesion, Creating design class diagrams and mapping design to codes. Advanced GRASP patterns: Polymorphism, Pure Fabrication, Indirection, Project Variation. GoF Design Patterns: Adapter, Factory, Singleton, Strategy, Composite, FaÃ§ade, and Observer. Software Testing: White Box and Black Box testing. Basis Path Testing. Testing for specialized environment. Software testing strategies: Unit Testing, Integration Testing, Validation Testing, System Testing, Art of debugging. Analysis of System Maintenance and upgrading: Software repair, downtime, error and faults, specification and correction, Maintenance cost models, documentation. Software Quality Assurance, Quality factors. Software quality measures. Cost impact of Software defects. Concepts of Software reliability, availability and safety. Function based metrics and bang metrics. Metrics for analysis and design model. Metrics for source code, testing and maintenance.
- Teacher: Dr. Md. Mostofa Akbar