The concept of software engineering was first discussed at the 1968 NATO Science Committee in Germany. Today, many practitioners still debate over the term software engineering, often arguing that this discipline does not meet the criteria of engineering; rather, it should be called software development. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development outside of the classroom is a very complex process notably from the fact that real-world software is much larger and more complex.
Upon successful completion of this course, the student will be able to:
Demonstrate mastery of software engineering knowledge and skills, and professional issues necessary to practice software engineering.
Discuss principles of software engineering.
Describe software development life cycle models.
Learn principles of software modeling through UML as a modeling language.
Identify major activities and key deliverables in a software development life cycle during software requirements and analysis, software design, and software testing.
Apply the object-oriented methodology in software engineering to create UML artifacts for software analysis and requirements, software design, and software testing.
Apply project management concepts in a software engineering environment to manage project, people, and product.
Participate as an individual and as part of a team to deliver quality software systems.
More info: http://www.saylor.org/courses/cs302/