SEDS 561
Fundamentals of Software Engineering
The course introduces the fundamentals of software engineering from management and software system models perspectives with an emphasis on software development process models, project management techniques and contemporary modeling notations.
Course Objectives
To provide graduate students the ability to evaluate the software engineering problem solving techniques and approaches. To present the contemporary software engineering practices and provide insight about the historical progress. To establish high level understanding of the life cycle processes and their relations. This course will begin by explaining the concept of software engineering. Afterwards, the software engineering paradigms are discussed with historical context. The course will then cover the key modelling techniques in software engineering and the role of software analysis, software design, as well as project management, measurement, research methods and soft skills.
Recommended or Required Reading
Aleph One – Smashing the Stack for Fun and Profit: http://www.phrack.org/issues.html?issue=49&id=14#article ,US Security Awareness (.org): http://www.ussecurityawareness.org/highres/index.html ,NSU InfoSec web site (of course): http://infosec.nova.edu/ ,Bruce Schneier – Crypto-gram Newsletter: http://www.schneier.com/crypto-gram.html ,Microsoft Security Guidance Center: http://www.microsoft.com/security/guidance/default.mspx ,B. Matt, Introduction to Computer Security ,Addison-Wesley, Pearson Education, 2005 ,SNORT.ORG: http://www.snort.org/
Learning Outcomes
1. To have knowledge of fundamental software engineering concepts
2. Ability to learn from common software engineering faults
3. Ability to discuss software engineering problems
4. Ability of professional decision making
Week | Topics |
---|---|
1 | The problem and the solution domains |
2 | What is software? |
3 | Software Engineering Paradigms |
4 | Modelling in Software Engineering |
5 | Software Methods |
6-7 | Requirements Engineering |
8-9 | Software Architecture and Design |
10 | Software Testing |
11-12 | Software Management |
13 | Team Organization and People Management |
14 | Empirical Software Engineering |
Grading
Midterm 25%
Research Presentation 40%
Final 35%