Software Engineering (CACS253) is a 3-credit subject in BCA 4th Semester at Tribhuvan University. Below you'll find notes, old question papers, and lab reports aligned with the TU BCA curriculum.
Course Code: CACS253 | Credits: 3 | Semester: 4 | Curriculum: BCA Curriculum 2018
Software development models, requirement engineering, software design, testing, maintenance, and project management.
Definition of Software, Type of Software, Characteristic of Software, Attributes of Good Software, Definition of Software Engineering. Software Engineering Costs, Key Challenges that Software Engineering Facing, System Engineering and Software Engineering, Professional Practice.
Software Process, Software Process Model: The Waterfall Model, Evolutionary Development, Component-Based Software Engineering (CBSE); Process Iteration: Incremental Delivery, Spiral Development: Rapid Software Development: Agile Methods, Extreme Programming, Rapid Application Development, Software Prototyping; Rational Unified Process (RUP), Computer Aided Software Engineering (CASE): Overview of CASE Approach, Classification of CASE tools.
System and Software Requirements, Type of Software Requirements: Functional and Non-Functional Requirements, Domain Requirements, User Requirements; Elicitation-and Analysis of Requirements: Overview of Techniques, View Points, Interviewing, Scenarios, Use-Case. Ethnography, Requirement Validation, Requirement Specification, Feasibility.
Design Concept: Abstraction, Architecture, Patterns, Modularity: Cohesion, Coupling; Information Hiding, Functional Independence, , Refinement; Architectural Design; MOdel, Client Server Model, Layered Model, Modular DecompositiOir: Proced al Design TisinR Structured Methods, User Interlace Design: Human-Computer Interaction, Information Presentation, Interface Evaluation; Design Notation.
Programming Language and Development tools. Selecting Languages and Tools, Good Programming Practices
Verification and Validation, Techniques of Testing: Black-box and White-box Testing, Inspections; Level of Testing: Unit Testing, Integration Testing, Interface Testing, System Testing, Alpha and Beta Testing, Regression Testing; Design of Test Cases, Quality Management Activities, Product and Process Quality, Standards: IS09000, Capability Maturity Model (CMM);
Evolving Nature of Software, Different Types of Maintenance: Fault Repair, Software Adaptation, Functionality Addition or Modification; Maintenance Prediction, Re-Engineering, Configuration Management (CM): Importance of CM, Configuration Items, Versioning;
Needs for the Proper Management of Software Projects, Management Activities: Project Planning, Estimating Costs, Project Scheduling, Risk Management, Managing People;