CIS 221:
Software Development Using Components


Description

Component-based software from client programmer's perspective; intellectual foundations of software engineering; mathematical modeling; specification of object-oriented components; layering; testing and debugging layered operations.

Level and Credits

Prerequisites

Quarters Offered

Course Coordinator

General Information, Exclusions, etc.

Objectives

Mastery of:

•Using basic C++ control structures and statements, the basic classes Boolean, Character, Integer, Real, Text, Character_IStream, Character_OStream, and related RESOLVE/C++ principles for clients, to write simple main programs and layered implementations of operations;

Familiarity with:

•Using the computing environment (operating system, tools, language system, etc.) to complete lab assignments and to communicate electronically with others;

•Using the GUI_Catalog, Id_Name_Table, Least_Cost_Path_Machine, and Natural_Number classes to write simple main programs and layered implementations of operations;

•Using simple recursion to write layered implementations of operations;

•Using simple predicate calculus assertions involving mathematical integer, string, and tuple models to understand and reason about an operation's behavior;

•Using simple techniques to test layered implementations of operations, including developing and carrying out simple specification-based test plans;

•Using simple techniques to debug layered implementations of operations;

Exposure to:

•Writing simple predicate calculus assertions involving mathematical integer, string, and tuple models to describe the intended behavior of an operation;

•Using induction arguments to establish the correctness of recursive implementations of operations;

•Using simple loop specifications to reason about loop behavior.

Texts

Topics (Readings) (Number of Weeks)

Representative Lab Assignments (week)

Assessment mechanisms (percentage)

Important Note: A passing grade on the final exam is required in order to receive a passing grade for the course.