1. Course Description
This course aims to introduce the fundamental concepts of software engineering, including software project management. It is designed to provide students with a comprehensive understanding of software engineering principles and project management practices. It intends to equip students with the knowledge and skills necessary to develop high-quality software products while effectively managing the entire software development lifecycle. At the end of this course, a student will be able to understand the fundamental concepts of software engineering and project management.
2. General Objectives
Through this course, students shall be able:
- To evaluate and relate different software processes, system models and architectural designs and assess their suitability in a given context
- To describe basic concepts and principles of requirements engineering, software implementation, testing and maintenance
- To describe the software configuration process and quality assurance
- To apply the software project management practices and principles in software development
- To understand software engineering fundamentals
- To understand programming and design practices
- To use software development tools and technologies
- To understand project management and its relevance in software development
- To understand agile principles and values
- To communicate effectively within development teams
3. Method of Instructions
General instructional techniques: lecture, discussion, readings, question answer, field work/s
Specific instructional techniques: practical works, project-based learning, self-directed learning, industry insights and case study
4. Course Contents
| Specific Objectives | Contents |
|---|---|
| Unit 1: Software and software engineering(4)
|
| Unit 2: Software process models (8)
|
| Unit 3: Software requirement specification and modeling (8)
|
| Unit 4: Design Concepts (6)
|
| Unit 5: Software measurement and metrics (2)
Lab Work Unit 5:
|
| Unit 6: Software testing and quality assurance (4)
|
| Unit 7: Configuration management and software maintenance (3)
|
| Unit 8: Software project management (4)
|
| Unit 9: Project Scheduling (2)
|
| Unit 10: Risk Management (2)
|
| Unit 11: Concept of software re-engineering (3)
|
Unit 12: Emerging trends in software engineering (2)
|
5. Laboratory Work
In this laboratory session on Software Engineering and Project Management, students engage in practical exercises to apply key principles of software development and project management methodologies. Students will gain hands-on experience in designing, testing, and debugging software, emphasizing the importance of efficient project planning and execution. The lab integrates tools and techniques for version control, collaboration, and issue tracking. Through simulated project scenarios, students learn to manage resources, timelines, and deliverables, fostering skills essential for successful software development projects. The listed units in this subject cultivate a comprehensive understanding of software engineering practices and project management essentials, preparing students for real-world applications in the field.
Some important contents that should be included in lab exercises are as follows:
| Units | Laboratory Activity |
|---|---|
| Unit 1: Software and software engineering | Identify the different types of software available in the market, list their features, and identify the challenges associated with the system. |
| Unit 2: Software process models | Visit any two software development companies and identify the process models used. |
| Unit 3: software requirement specification and modeling |
|
| Unit 4: Design Concepts | Create the design solution to the problems identified in Lab work of unit I. |
| Unit 5: Software measurement and metrics | Imagine you are part of a development team working on a simple web application for a bookstore. The application allows users to browse books, add them to their cart, and make a purchase. The codebase is maintained in a version control system, and you have been asked to analyze it using software metrics. Tools Required:
|
| Unit 6: Software testing and quality assurance |
|
| Unit 7: Configuration Management and Software Maintenance | Use any version control software. |
| Unit 8: Software project management |
|
| Unit 9: Project Scheduling | Create a complete project schedule using any project scheduling tools. |
| Unit 10: Risk Management | As a part of the group discussion take any software, identify risks and make an RMMM plan. |
| Unit 11: Concept of software re- engineering | Identify different versions of popular (system software and application software) and identify the reused component. |
| Unit 12: Emerging trends in software engineering | Identify and trending software and present the features in class. |
Note:
- Motivate students to create small project work integrating all of the above concepts.
- Each of the above lab sessions should cover more than 3 hours of practical work.
6. Evaluation system and student's responsibility
In addition to the formal exam(s), the internal evaluation of a student may consist of quizzes, assignments, lab reports, projects, class participation, etc. The tabular presentation of the internal evaluation is as follows.
| External Evaluation | Marks | Internal Evaluation | Marks | |
|---|---|---|---|---|
Semester End Examination | Theory | 40 | ||
| Practical |
20 | |||
| 40 | Attendance & Class Participation | 5 | ||
| Lab Report/Project Report | 5 | |||
| Practical Exam/Project Work | 5 | |||
| Viva | 5 | |||
| Total External | 40 | Total Internal | 60 | |
| Full Marks: 40 + 40+ 20 = 100 | ||||
Student’s Requirements
Each student must secure at least 45% marks separately in both internal assessment and practical evaluation with 80% attendance in the class to appear in the Semester End Examination. Failing to get such a score will be given NOT QUALIFIED (NQ) to appear in the semester-end Examinations. Students are advised to attend all the classes, formal exams, tests, etc. and complete all the assignments within the specified period. Students are required to complete all the requirements defined for the completion of the course.
7. Prescribed Books and References Prescribed
Text Books
- Roger S. Pressman, Software Engineering (7th Edition). Boston, Mass: McGraw Hill.
Reference Books
- Sommervill, I. (2011). Software engineering (9th ed.). Boston: Pearson.
- Bob Hughes and Mike Cotterell (Latest Edition). Software Project Management (Latest Edition). Boston, Mass: McGraw Hill.
- Pressman, R. S. (2010). Software engineering: a practitioner’s approach (7th ed.). Boston, Mass: McGraw Hill.
- Software engineering, Udit Agarwal
- Software Engineering Fundamentals, “ Ali Behforooz and Frederick J. Hudson