University of Colorado at Boulder
CU: Home | Search | A to Z | Map

 

 

× Close
  • [    home    ]
  • [    courses    ]
    • comprehensive course list
    • fall semester courses
    • spring semester courses
    • summer semester courses
    • library courses
    • library course list
    • course/media purchase + shipping rates
    • professional development
    • professional development course list
  • [    distance delivery    ]
    • delivery methods
    • course access
    • course management tools
    • technical requirements
    • technical help/faq
  • [    degrees    ]
    • earn your degree from a distance
    • application + admissions
    • aerospace
    • computer science
    • electrical + computer
    • engineering management
    • telecommunications
  • [    certificates    ]
    • graduate/academic
    • professional development
  • [    registration + tuition    ]
    • academic courses
    • professional development
  • [    resources    ]
    • students
    • distance learning faculty
    • professional development instructor
    • articles + papers

Register Now Button

Interact
  •  
     
     
  • Request Information
  • Facebook
  • YouTube
Courses
  • Comprehensive Course List
  • Fall Semester Courses
  • Spring Semester Courses
  • Summer Semester Courses
  • Library Courses
  • Library Course List
  • Course/Media Purchase + Shipping Rates
  • Professional Development
  • Professional Development Course List

CSCI 5548: Software Engineering of Stand Alone Programs

Description
Foundational course in a three-course series. This course covers fundamentals of modern software engineering. Topics: Software as a defined engineering discipline-IEEE and ACM approved definitions of the agreed-upon body of knowledge, IEEE standards and recommended practices; requirements definition and analysis including use cases and use case paths; requirements traceability and its relationship to error detection and program enhancement; object-oriented design and specification using patterns including performance impact of design choices and analysis of designs regarding maintainability and testability; glass-box (unit-level rather than system level) testing fundamentals; verification of system test coverage and completeness via decision tables and state transition tables. Sames as ECEN 5543.
Outline
Introduction Requirements Elicitation Requirements Analysis with Use Cases Requirements Validation & Management System-level Test Planning & Its role in Analysis and Design Object-Oriented Design Patterns & Specification Architecture Design Issues Critiquing a design for maintainability Glass Box Testing OO Testing Issues -- Principles & Testing Models OO Testing Issues -- Class Testing
Benefits
A software professional in development, test, maintenance, or first-level management will benefit from this certificate series whether one has many years of experience or very little experience. As an experienced software professional, one has spent years in a field that has maintained a relentlessly rapid rate of change for decades. It would have been impossible to stay current in all aspects of software engineering. If one has very little experience, one may be a new graduate in computer science or engineering or perhaps entered this field with little or no software-related education. In either case, the challenges of the work assignments can exceed one's preparation. In a typical computer-related undergraduate curriculum, it is not possible to devote enough credit hours specifically to software engineering to address all of the topics listed in the course descriptions.

From discussions with software project managers, architects, test managers, and others, it is clear that people with the education comprising this 3-course series would be considered a real hiring "find". Research shows that software professionals are most strongly motivated by the challenge of the work itself and the satisfaction that arises from meeting that challenge well. These courses will increase one's ability to manage, understand, and solve software problems well.

Objectives
By the end of the course, students will be expected to be able to: 1. Produce example software requirements definitions including use-cases that are unambiguous and testable. Students will be able to do so using recognized standard notations and adhering to IEEE Standard content. 2. Explain the relationship between competent requirements definitions and ease of design, implementation, and testing as well as quality as exhibited in error rates and ease of program modification. 3. Define object-oriented design quality in terms of historical design quality criteria and patterns. 4. Critique an object-oriented design with respect to program performance, testability, and ease of modification. 5. Produce an object-oriented design from a requirements specification that meets quality criteria. 6. Propose an appropriate approach for an architecture review or review of other static models. 7. Define unit-level (glass-box) testing techniques and explain their relationship to program correctness. 8. Perform glass-box testing analysis given a sample design and corresponding software code. 9. Critique a proposed system test suite for completeness coverage regarding code, state transitions, and constraints using techniques from the course.
Prerequisites
BS or BA in CS, CE, ECE or equivalent or experience in industry as a software professional. The course teaches object-oriented (OO) analysis and design; OO knowledge is not a prerequisite.
Education Officer (EO)

Required

Textbooks
Sommerville, Software Engineering, Addison Wesley, 8th ed., 2007, ISBN 0-321-31379-8.
Copeland, A Practitioner's Guide to Software Test Design, Artech House Publishers, 2003, ISBN 1-58053-791-X.
Hardware & Software
Access to a word processor such as Microsoft Word or other tool capable of representing text and simple drawings in .RTF or .DOC format, email, PowerPoint, and the Internet. Limited code examples in the course may be given in Java. (No programming in Java is required.) Course emphasis is on specification, analysis, design, and testing rather than on coding.
Syllabus
http://culearn.colorado.edu
Sample Lectures and YouTube Vignettes
Lecture Title Semester Year Type
ECEN5543L01-A Fall 2008 Lecture
ECEN5543L01 Fall 2008 Lecture
Upcoming & Previous Offerings

Meeting Days Legend: Monday (M), Tuesday (T), Wednesday (W), Thursday (R), Friday (F), Saturday (S), Sunday (U)
Summer Terms: M = Maymester, A = 1st 5 weeks, B= 2nd 5 weeks, C = 8 weeks, D= 10 weeks
Refer to the Academic Calendar for specific dates.

top

Semester Term Time Days Location Instructor Additional Instructors
Spring 2010 Library Only Dameron, R
Fall 2009 Online Only Dameron, R
Spring 2009 Library Only Dameron, R
Fall 2008 Online Only Dameron, R
Summer 2008 Library Only Dameron, R
bottom block
  • [    corporate    ]
  • [    about    ]
  • [    faq    ]
  • [    contact    ]
CU LogoCenter for Advanced Engineering and Technology Education
College of Engineering and Applied Science
University of Colorado at Boulder, 435 UCB, Boulder CO 80309-0435
303.492.6331 | FAX 303.492.5987 | caete@colorado.edu
© Regents of the University of Colorado