Computer Science 380 Outline

Approximate Schedule by week

 

1.            Course Overview

The software crisis

The personal software process

Introduction to group communications

 

2.            Software Requirements (Chapter 1.1, pp. 1-31)

Requirements and the software lifecycle

Costs associated with requirements problems

Why are requirements so hard?

A disciplined approach for obtaining requirements

The current state of the practice

 

3.            Software Requirements (Cont’d) (Chapter 1.1, pp. 31-42 & Chapter 1.2, pp. 43-56)

Practical Formal Methods

Trends and Emerging Technology

Software Requirements Fundamentals

Requirements Process

Requirements Elicitation

Requirements Analysis

Requirements Specification

Practical Considerations

 

4.            Software Design: Introduction and Overview (Chapter 2.1a, pp. 57-82)

The Nature of Software Design

Software Architecture

Describing Designs

Organizing the Design Process

 

5.            Software Engineering Process (Chapter 8.1, pp. 59-81)

Software Process Models

Process Iteration

Process Activities

Software Evolution

            Essentials of Software Engineering (Chapter 8.2, pp. 82-94)

                        Process Implementation and Change

                        Process Definition

                        Process Assessment

                        Process and Product Measurement

                       

6.            Software Engineering Methods, Tools and Technologies (Chapter 9.1, pp. 95-106)

Classifying Methods and Technologies

Methods

Development Technologies

Process Support Technologies

Infrastructure Technologies

            Essentials of Software Engineering Methods (Chapter 9.2, pp. 107-118)

                        Modeling

                        Types of Models

                        Analysis

                        Software Engineering Methods

                        Formal Construction Methods

                       

7.            Model-Based Software Design for Concurrent and Real-Time Systems (Chapter 2.1b, pp. 83-102)

Concurrent Processing Concepts

Run-Time Support for Concurrent Tasks

Methods for Concurrent and Real-Time Systems

Model-Based Software Design

Software Architectural Patterns for Real-Time Control

Performance Analysis of Real-Time Designs

Real-Time Embedded Software Product Line Design

            Essentials of Software Design (Chapter 2.2, pp. 103-120)

                        Software Design Fundamentals

                        Key Issues in Software Design

                        Human Computer Design

                        Software Design Quality Analysis and Evaluation

                        Software Design Notations

                        Software Design Strategies and Methods

 

8.            Midterm Exam

Software Configuration Management (Chapter 6.1, pp.1-14)

Managing the CM Process

CM Activities

CM Tools

            Essentials of Software Configuration Management (Chapter 6.2, pp. 15-30)

                        Management of the SCM Process

                        Software Configuration Identification

                        Software Configuration Control

                        Software Configuration Status Accounting & Auditing

                        Software Release Management and Delivery

                        SCM Tools                 

 

9.            Software Engineering Project Management (Chapter 7.1, pp. 31-50)

Major Issues of Software Engineering

Functions and Activities of Management

Planning a Software Engineering Project

Organizing a Software Engineering Project

Staffing a Software Engineering Project

Directing a Software Engineering Project

Controlling a Software Engineering Project

            Essentials of Software Engineering Management (Chapter 7.2, pp. 51-58)

                        Initiation and Scope Definition

                        Software Project Planning

                        Software Project Enactment

                        Review, Evaluation and Closure

 

10.          Software Construction (Chapter 3.1, pp.121-128)

What is Software Construction?

Why is Software Construction Important?

Building Software

            Essentials of Software Construction (Chapter 3.2, p129-148)

                        Software Construction Fundamentals

                        Managing Construction

                        Practical Considerations

                        Construction Tools

                        Construction Technologies

                       

11.          Software Quality Assurance (Chapter 10.1, pp. 119-142)

Concepts, Definitions, and Goals

Establishing a Project Software Assurance Activity

Software Quality Assurance

Software Quality Engineering

Verification and Validation

Nonconformance Reporting and Corrective Action

Software and System Safety

Security Assurance

            Essentials of Software Quality (Chapter 10.2, pp. 143-158)

                        Software Quality Fundamentals

                        Software Quality Management Processes

                        Practical Considerations

 

12.          Software Testing: Fundamentals, Techniques and Related Concepts (Chapter 4.1, pp. 149-181)

Terminology and Basic Concepts

                        Other V&V Approaches

                        Test Levels

                        Test Techniques

                        Aspects of Usefulness and Usability

                        Test Measurements

                        Test Process

                        Test Management

                        Test Tools

 

13.          Essentials of Software Engineering Testing (Chapter 4.2, pp. 183-200)

Software Testing Fundamentals

Test Levels

Test Techniques

HCI Testing and Evaluation

Test-related Measures

Test Process

 

14.          Software Engineering Maintenance (Chapter 5.1, pp. 201-224)

What is Software Maintenance?

Types of Software Maintenance

Problems of Software Maintenance

Organizational Aspects of Maintenance

Process Models

IEEE Standard for Software Maintenance

Technical Aspects of Software Maintenance

Issues with Legacy Systems

Essentials of Software Maintenance (Chapter 5.2, pp. 225-240)

Software Maintenance Fundamentals

Key Issues in Software Maintenance

Maintenance Process

Techniques for Maintenance

Software Maintenance Tools

 

15.          Software Engineering as a Profession (Chapter 11.1a, pp. 159-164)

Elements of a Profession

            The Software Engineering Code of Ethics (Chapter 11.1b, pp. 165-172)

                        Why Have a Code of Ethics

                        Professional Tensions

                        Common Commitment

            Software, Intellectual Property, and the Law (Chapter 11.1c, pp. 173-190)

                        The Ownership of Intellectual Expression

                        Software Copyright

                        “Business Methods” Patents and Software

                        Additional Statutory Remedies for Software Protection

                        The Law of Contracts, Protocols and Private Agreements

                        Future Development for Software and the Law

            Teams, Teamwork, Motivation, Leadership and Communication (Chapter 11.1d, pp. 191-212)

                        Managing vs. Leading

                        Teams and Teamwork

                        Maintaining Morale and Motivation

                        Can’t vs. Won’t

                        Personality Styles

            Essentials of Software Engineering Professional Practices (Chapter 11.2, pp. 213-235)

                        Accreditation, Certification, and Licensing

                        The Economic Impact of Software

                        Codes of Ethics

                        Group Dynamics/Psychology

                        Communication Skills

                        Intellectual Property, Confidentiality, Security

                       

 


Updated: September 23, 2016