CSCE 4444 : Software Engineering - Spring 2013

Instructor: Paul Tarau, Associate Professor - see my home page for classroom and office hours.

E-mail : t a r a
Address: Department of Computer Science, University of North Texas, P.O. Box 311366, Denton, Texas 76203, USA
Phone : Tel : +1-940-565-2806, +1-940-565-2767
Fax : +1-940-565-2799

Teaching Assistant. Srujan Kotikela See his home page for contact info, Moodle submission and office hours.

First exam: Monday March 18, 5:00pm – open net, 3 questions out of 5

Final exam:  Monday May 6, 1:30pm-3:30pm. For 3 additional points please post on Moodle proofs of  SETE evaluations and exit surveys at 4444.001

Description and Objectives:

An ACM/IEEE 2013 curricula based course, focusing on principles and best practices for specification and implementation of quality software systems, including the use of  current design, refactoring and testing tools, team, risk and project management, requirement analysis and formal methods.


Topics include requirements and specifications development,

Syllabus (L1..Ln) indicate number of the lecture

·       Introduction to software process models (waterfall, incremental/iterative, agile) L1,L2

·       Team Management L3

·       Roles and responsibilities in a software team

·       Team conflict resolution

·       Team organization and decision-making

·       Risk Management L4

·       The role of risk in the life cycle

·       Risk categories: security, safety, market, financial, technology, people, quality, structure and process

·       Risks associated with virtual teams (communication, perception, structure)

·       Project Management L5

·       Scheduling and tracking

·       Project management tools

·       Cost/benefit analysis

·       Requirements Engineering (prototyping, specification, validation, tracking) L6

·       Software Design and Implementation L7,L8

·       Paradigms, principles

·       Separation of concerns and information hiding

·       Coupling and cohesion, re-use

·       Object / function / aspect / service oriented designs

·       Relationships between requirements and designs: transformation of models, design of contracts, invariants

·       Software Verification and Validation L9

·       Testing fundamentals

§  Unit, integration, validation, and system testing

§  Test plan creation and test case generation

§  Black-box and white-box testing techniques

§  Regression testing

§  Usability testing

·       Test-driven development

·       Software Evolution L10,L11

·       Characteristics of maintainable software

·       Refactoring and Reengineering

·       Software reuse

·       Formal Methods L12,L13

·       Assertions, pre-conditions and post-conditions

·       Executable specifications

·       Tools

·       Software Reliability L14

·       System reliability and failure behavior

·       Fault lifecycle concepts and techniques

·       Software fault tolerance techniques and models

·       Measurement-based analysis of software reliability

·       Software engineering as knowledge engineering L15

Prerequisite:  3110 Data Structures

Recommended free online information sources and Kindle books:







1. Elicit and document requirements for a software project.

2. Being able to chose and evaluate software process models (waterfall, incremental, agile).

3. Conduct software testing and usability testing.

4. Participate in peer reviews such as code inspections.

5. Communicate software product and process results in oral and written form.