Software Design and Development Preliminary Syllabus
Course Objectives
The primary goal of this course is to equip students with the skills and knowledge necessary to design, develop, and maintain high-quality software. By the end of the course, students should be able to:
- Understand the software development life cycle (SDLC) and its stages.
- Apply different software development methodologies, including Agile, Waterfall, and DevOps.
- Utilize design patterns to solve common software design problems.
- Manage software development projects, including planning, tracking, and risk management.
- Conduct software testing and debugging to ensure software quality.
- Maintain and update existing software systems.
Course Outline
- Introduction to Software Design and Development
- Overview of software engineering
- The importance of software design
- Software development methodologies
- Software Development Life Cycle (SDLC)
- Phases of the SDLC
- Requirements gathering and analysis
- System design
- Implementation
- Testing and quality assurance
- Deployment and maintenance
- Software Development Methodologies
- Waterfall model
- Agile methodologies (Scrum, Kanban)
- DevOps practices
- Software Design Principles
- Design patterns (Singleton, Factory, Observer, etc.)
- Object-oriented design
- Software architecture (MVC, Microservices)
- User interface (UI) and user experience (UX) design
- Software Project Management
- Project planning and scheduling
- Risk management
- Resource allocation
- Communication and collaboration tools
- Software Testing and Quality Assurance
- Types of testing (unit testing, integration testing, system testing, etc.)
- Test-driven development (TDD)
- Debugging techniques
- Software Maintenance and Evolution
- Importance of software maintenance
- Types of maintenance (corrective, adaptive, perfective)
- Software reengineering
- Practical Sessions and Assignments
- Hands-on projects using different development methodologies
- Group projects focusing on design patterns and software architecture
- Software testing and debugging exercises
- Final project: Designing and developing a software application from scratch
Assessment and Grading
The course assessment will be based on a combination of assignments, projects, quizzes, and a final exam. The grading breakdown is as follows:
- Assignments: 20%
- Group Projects: 30%
- Quizzes: 10%
- Final Exam: 40%
Resources
- Textbook: "Software Engineering: A Practitioner's Approach" by Roger S. Pressman
- Additional reading materials and resources will be provided on the course website.
Course Policies
- Attendance is mandatory for all lectures and practical sessions.
- Late submission of assignments will result in a deduction of marks.
- Collaboration on group projects is encouraged, but plagiarism will not be tolerated.
Course Schedule
The course will be conducted over 16 weeks, with 3 hours of lectures and 2 hours of practical sessions each week. The detailed schedule, including lecture topics, reading assignments, and project deadlines, will be provided at the beginning of the course.
Conclusion
This course provides a solid foundation in software design and development, preparing students for careers in software engineering, IT project management, and related fields. By combining theoretical knowledge with practical experience, students will develop the skills needed to succeed in the fast-paced world of software development.
Popular Comments
No Comments Yet