Course Content (from syllabus)
Software Engineering is designed to help students grow and understand how to develop a software system development process and give them the fundamental principles of system development with object-oriented technology using the Use Case Model and the Object Oriented Model. The course will initiate students to the different software process models, project management, software requirements and design as a problem-solving activity, key elements of analysis and design, and the place of the analysis and design phases within the system development life cycle.
Course Description/ Rationale
This course aims to introduce the students to the product that is to be engineered and the process that provides a framework for engineering technology. The course facilitates the students' analysis of risk in software design and quality and their planning, design, development, and validation of the software project.
Course Descriptions:
To provide a solid conceptual understanding of the fundamentals of Software Engineering. More specifically,
§ Students will be able to identify and apply appropriate software development lifecycle (SDLC) models, such as Waterfall, Agile, and Iterative, based on project needs and requirements.
§ Students will learn how to systematically gather and document functional and non-functional requirements using techniques like interviews, surveys, and user stories, transforming them into well-structured specifications.
§ Students will be proficient in using object-oriented design principles, creating Use Case Diagrams, Class Diagrams, Use Case description, activity and Sequence Diagrams to represent software architecture and behavior.
§ Students will develop skills in project planning, task scheduling, resource allocation, and risk management using tools like Gantt charts and project tracking software.
§ Students will understand various software testing methodologies, such as unit testing, integration testing, and acceptance testing, and implement quality assurance practices to ensure reliable software.
§ Students will engage in team-based software development projects, simulating real-world environments to learn effective communication, teamwork, version control, and conflict resolution.
- Teacher: Abdus Sattar (AS)