CSC 510 Software Engineering
 

This course will discuss topics such as software development life cycle models, estimation of size and effort of software development projects, software project management, risk management of software projects, how to conduct formal technical reviews, formal methods to develop software architecture and design, verification and validation methods, configuration management, the Capability Maturity Model Integration (CMMI), how to start, implement, and sustain a software process improvement program, how to manage resistance to change in an organization, and Agile software development techniques. A special emphasis will be given to discussing practical industrial solutions and examples that work and may not work as expected in industry. Discussions on the course’s message board on interesting software engineering topics where the students and professor will be able to share experiences will be implemented. An individual research project will be required. 3 credit hours.

 
   

• Prerequisite
 

Undergraduate courses in data structures, probability, applied discrete mathematics, computer organization and the principle of operating systems. An object-oriented language such as C++ or Java is essential. The student is expected to be well versed in programming concepts.


• Course Objectives
 

This is a course on the techniques for the development and management of software-intensive products. It combines a study of methods, tools, and techniques for creating and evolving software products, with the practical skills needed to deliver high-quality software-intensive products at agreed cost and schedule. The methods that are studied include requirements, estimation of software projects, specification, architecture, design, implementation, verification, validation, operation, and maintenance. The practical side of the course includes discussion on practical examples provided by the instructor and a final research project developed by the students.


• Course Requirements
 

HOMEWORK: Four (4) Assignments

EXAMINATIONS: Two (2) Examinations: (Mid-term and Final)

SOFTWARE REQUIREMENTS: N/A

PROJECTS: Individually oriented

QUIZZES: Quizzes will be given to students to discuss interesting topics and foster collaboration and exchange of ideas among students


• Textbook
 

There is not a required text for the course, even though the Pressman (2014) 8th edition is highly recommended. Class notes/presentations and a reading list are utilized during the course. The following textbooks are conventional resources for a graduate-level course in software engineering, and may be purchased if a formal resource is desired.

Pressman, Roger S. Software Engineering—A Practitioner’s Approach, McGraw-Hill Science/Engineering/Math, Eighth edition, 2014. ISBN-13: 978-0078022128, ISBN-10: 0078022126.


• Computer and Internet Requirements
 

NCSU and Engineering Online have recommended minimum specifications for computers. For details, click here.


• Instructor
 

Dr. Aldo Dagnino
Software Architectures and Technology Group
Principal Research Scientist and group Leader
US Corporate Research Center – ABB Inc.
940 Main Campus Drive
Raleigh, NC 27606, US

Telephone: (919) 807-5731
Email: adagnin@unity.ncsu.edu