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)
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
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