IT303
Course Name:
Software Engineering (IT303)
Programme:
Semester:
Category:
Credits (L-T-P):
Content:
Software Requirements Fundamentals: Product and Process Requirements, Functional and Nonfunctional Requirements, Quantifiable Requirements, System Requirements and Software Requirements, Requirements Process Models , Process Actors, Requirements Elicitation, Requirements Classification, Architectural Design and Requirements Allocation , Formal Analysis , Requirements Specification, Software Requirements Specification Requirements Reviews, Prototyping. Key Issues in Software Design: Concurrency , Control and Handling of Events , Data Persistence, Distribution of Components, Error and Exception Handling and Fault Tolerance, Interaction and Presentation , Security , Software Structure and Architecture, , Architectural Structures and Viewpoints , Architectural Styles, Architecture Design Decisions, Families of Programs and Frameworks , User Interface Design, General User Interface Design Principles, Software Design Quality Analysis and Evaluation ,Quality Attributes , Quality Analysis and Evaluation Techniques , Measures. General Strategies: Function-Oriented (Structured) Design, Object-Oriented Design, Data Structure-Centered Design, Component- Based Design; Software Construction : Minimizing Complexity, Anticipating Change, Constructing for Verification, Reuse, Coding, Integration, Construction Technologies, API Design and Use, Object-Oriented Runtime Issues, Parameterization and Generics, Assertions, Design by Contract, and Defensive Programming, Performance Analysis and Tuning , Unit Testing Tools, Profiling, Performance Analysis, and Slicing Tools; Software Testing, Input Domain-Based Techniques, Code-Based Techniques, Fault-Based Techniques, Usage-Based Techniques, Model-Based Testing Techniques, Software Maintenance Fundamentals, Techniques for Maintenance, Program Comprehension, Reengineering, Reverse Engineering, Migration, Retirement; Software Configuration Management, Management of the SCM Process, Organizational Context for SCM, Constraints and Guidance for the SCM Process, Planning for SCM, Surveillance of Software Configuration Management, Software Configuration Identification, Identifying Items to Be Controlled, Requesting, Evaluating, and Approving Software Changes, Implementing Software Changes, Deviations and Waivers, Software Configuration Status Accounting, Software Configuration Auditing , In-Process Audits of a Software Baseline, Software Release Management and Delivery, Software Building Software Release Management, Software Configuration Management Tools.