CPEN 207:Introduction to Software Engineering

Main block


History and overview of software engineering, reasons for studying the software engineering, and role of software engineering in computer engineering. Introduction to the process of creating software systems. Software processes: software life cycle, process model, process assessment models, and software process metrics. Requirements and specification: software requirements specification, requirements analysis modeling techniques, functional and nonfunctional requirements, prototyping, concepts of formal specification techniques. Software design: design concepts and principles, software architecture, structured design; object oriented analysis and design, component level design, design for reuse. Software testing: validation planning, test plan creation and generation, black-box testing techniques, object oriented testing, inspections. Software evolution: different forms of software maintenance, impact analysis, characteristics of maintainable software, reengineering, and software reuse strengths and weaknesses. Software tools and environment: programming 2environments, requirements analysis and design modeling tools, testing tools, configuration management tools, software tools based on databases, tool integration mechanisms. Software project management: organization and management of teams including roles and responsibilities of team and tracking, project scheduling, software measurements, risk analysis, software quality assurance, project management tools.