<< Chapter < Page | Chapter >> Page > |
Software engineering is a very broad field. It encompase virtual everything a person might want to know in order to develop software - software that is correct, on time, and on budget. Most other computer science courses emphasize the technical foundations of software development, such as programming, algorithms, data structures, languages, etc.
This course focusses on the pragmatic aspects, such as requirements analysis, cost estimation, design, team organization, quality control, configuration management, verification, testing, and maintenance. Students work in teams on projects for real clients. This work includes a feasibility study, requirements analysis, object-oriented design, implementation, testing, and delivery to the client. Additional topics covered in lectures include professionalism, project management, and the legal framework for software development.
This course is compiled from documents of MIT OpenCourseWare, the Connexion project of Rice University, and from free online courses and documents such as
and etc…
We have arranged their contents to create a complete course. We hope it will be useful to study Software Engineering.
Theory, the students have
Practice
The formal prerequisites for this course are Programming Languages (C/C++, Perl, Java, .Net,…), Data Structures and Algorithms, and Database Management Systems.
The following are the specific capabilities you will need from the prerequisite courses:
Class sessions will be a combination of lecture and seminar formats. We'll cover the course's primary topics in these sessions, with reading and homework assigments that provide opportunities to gain a deeper understanding of the underlying issues and techniques of software engineering. Actual labs and software development projects will provide a hands-on approach to exploring these topics throughout the semester. Given that this is a 3 credit course, it is expected that you will spend an average of 10 hours per week (including in-class and lab time) on the course and related material for the duration of the semester.
Here are some general books on software engineering:
Since software engineering is a broad subject matter, mastery of the topic as covered by the scope of our course can be manifested in a variety of ways. Your grade in the course will be based on your achievement of the course objectives as demonstrated in your homework assigments, programming deliveries, and participation in class discussions.
Course component grading weight :
Week/Session | Topic | Reading |
Week 1 | Introduction | Software Engineering; Ian Sommerville; Eighth Edition; Chapters 1, 2, 3. The Mythical Man Month; Frederick P. Brooks |
Week 2 | Software development process | Software Engineering; Ian Sommerville; Eighth Edition; Chapters 4 |
Week 3 | Requirements analysis | Software Engineering; Ian Sommerville; Eighth Edition; Chapter 6 |
Week 4 | Discussion on assignment #1 | |
Week 5 | Software Design | Software Engineering; Ian Sommerville; Eighth Edition; Chapters 11, 14. Object-Oriented Software Engineering Using UML; Bernd Bruegge and Allen H. Dutoit |
Week 6 | Software construction | Software Engineering; Ian Sommerville; Eighth Edition; Chapters 17, 18 |
Week 7 | Software Testing | Software Engineering; Ian Sommerville; Eighth Edition; Chapter 23 |
Week 8 | Discussion on assignment #2 | |
Week 9 | Software Maintenance | Software Engineering; Ian Sommerville; Eighth Edition; Chapter 21 |
Week 10 | Software configuration management | Software Engineering; Ian Sommerville; Eighth Edition; Chapter 29 |
Week 11 | Discussion on assignment #3 | |
Week 12 | Software quality management | Software Engineering; Ian Sommerville; Eighth Edition; Chapters 27, 28 |
Week 13 | Software engineering management | Software Engineering; Ian Sommerville; Eighth Edition; Chapters 14, 15, 16. Software Engineering Theory and PracticePfleeger; Shari Lawrence |
Week 14 | Assignment #4 | |
Week 15 | Summary of principles of instruction, learning and project | Course evaluation |
Notification Switch
Would you like to follow the 'Software engineering' conversation and receive update notifications?