|
Texts:
|
- Shari Lawrence Pfleeger and Joanne M. Atlee,
Software Engineering Theory and Practice, 3rd Edition, Prentice-Hall, 2006. ISBN: 0-13-146913-4
- Steve McConnell, Professional Software Development: Shorter Schedules, Better Projects, Superior Products, Enhanced Careers, Addison-Wesley, August 2003. ISBN: 0321193679.
|
|
Additional references (entirely optional):
|
- Roger S Pressman,
Software Engineering: A Practitioner's Approach,
6th edition, McGraw Hill, 2005,
ISBN: 0072853182
- Ian Sommerville, Software Engineering, 7th Edition, Addison-Wesley, ISBN 00321210263. This is one of the top two undergraduate software engineering texts. If you find Pressman difficult to understand, you may want to read the same material in Sommerville.
- Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, Fundamentals of Software Engineering, Second Edition, Prentice Hall, ISBN 0-13-305699-6. Another perspective on the discipline of software engineering.
|
|
Description:
|
In this course, we'll be studying the issues involved in developing large-scale software systems. We will cover the software lifecycle and touch on software management. Since many aspects of software engineering are best aprehended through hands-on experience, we will be using a team project to apply what we're learning.
|
|
Prerequisites:
|
Prerequisite: C- or better in Computer Science 215L and either Computer Science 203 or Mathematics 205 (or concurrent enrollment in 203 or 205).
|
|
Objectives:
|
In this course, students will gain a broad understanding of the discipline of software engineering and its application to the development of and management of large software systems. Specifically, students will gain:
- An understanding of the breadth and impact of the discipline of software engineering.
- A general understanding of software process including software lifecycle models such as the waterfall, spiral, and evolutionary models.
- An exposure to the role of project management including planning, control, organization, risk management, etc.
- An understanding of software requirements including requirements analysis, definition, specification and review.
- An exposure to software architectural styles.
- An understanding of the fundamentals of software design using UML as a notation including design evaluation and validation.
- An understanding of implementation issues including cohesion and coupling, modularity, coding standards, etc.
- An understanding of approaches to verification and validation including reviews, static analysis, and various testing approaches.
- An understanding of the issues involved in maintaining a large software system.
- An understanding of the role of documentation.
|