CSC 510 Software Engineering

An introduction to software life cycle models, size estimation, cost and schedule estimation, project management, risk management, formal technical reviews, analysis, architecture, design, coding and verification methods, configuration management, and change control, software architectures, and CMMI. Emphasis on software-intensive development projects. An individual research project required that describes state-of-the-art methodologies, approaches, or techniques in the Software Engineering field. Three (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 including distributed systems.


Course Objectives

 

 

This is a course on 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, specification, architecture, design, implementation, verification, validation, operation, and maintenance. The practical side of the course includes a final research project.

 

Course Requirements  

HOMEWORK: Four (4) Assignments

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

SOFTWARE REQUIREMENTS: N/A

PROJECTS: Individually oriented

 

Textbook  

There is not a required text for the course. Class notes/presentations and a reading list is 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, Fifth edition, 2001. ISBN: 0072496681.

Parnas, David L., Weiss, David M. and Hoffman, Daniel. Software Fundamentals: Collected Papers by David L. Parnas, Addison-Wesley, First Edition, 2001. ISBN: 0201703696

Summerville, Ian. Software Engineering, Addison-Wesley, Sixth Edition, 2000. ISBN: 020139815X



Computer and Internet Requirements  

NCSU has recommended minimum specifications for computers used for classes. Depending on your computer needs, we recommend your computer meet or exceed the following minimum specifications below.

PCs must have an Intel-compatible 800 MHz processor, 256 MB RAM, 8 GB hard drive with 1 GB free space available, 256 Color Display, CD-ROM drive, 800x600 (min.) video adapter, sound card, and speakers. The operating system should be Windows 2000 or XP. Real One Player Basic (available free online) and high speed Internet connection such as cable, DSL, T1 or LAN will be required for EOL courses.

MAC users must have a G3 processor with firewire and USB factory built-in, 256 MB RAM, 10 GB with 1GB free space available, 256 Color Display, CD-ROM drive, 800x600 (min) video adapter, sound card, and speakers. The operating system must be MacOS 10.3 (minimum) along with the above RealOne and Internet specifications above.

For more detailed information on computer specifications and recommendations, please refer to our website at: http://engineeringonline.ncsu.edu/currentstudents/computeraccess.htm

 

Instructor  

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

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