Handout 0

TERMS USED IN SOFTWARE ENGINEERING


Software Process

Requirements, Specification (Analysis), Planning, Design (Architectural, Modules, Detailed), Implementation, Integration, Maintenance (Corrective, Adaptive, Perfective), Retirement, "Silver Bullet"

Software Life-Cycle Models

Build-and-Fix, Waterfall, Rapid Prototyping, Incremental, Spiral (risk assessment), SEI's Capability Maturity Model (CMM), ISO 9000, Various Military Standards

Tools

Stepwise Refinement, Cost-Benefit Analysis, CASE, Configuration Control, Build, Metrics

Testing Principles

Quality issues, Software Quality Assurance (SQA), Walkthroughs, Playthroughs, Inspections, Correctness Proofs, Evaluation (MECCA chart)

Objects

Module, Cohesion (7 types), Coupling (5 types), Data Encapsulation, ADTs, Information Hiding, Polymorphism, Dynamic Binding, Reuse

Requirements

Rapid Prototyping, Human Factors, Joint Application Design (JAD)

Specification

Structured Systems Analysis, Entity-Relationship Model, Finite State Machine

Planning

Cost Estimation, COCOMO, IEEE Project Management Plan, Training, Documentation, Gantt charts, Person-Loading Tables

Design

Data Flow Analysis, Transaction Analysis, Data-oriented Design, Jackson System Development, Warnier-Orr, Detailed Design, Real-time Systems, Data Dictionary, Pseudo-Code, Structured Specification, Performance Specification, Structure Chart, Failure Modes Effect Analysis (FMEA)

Implementation

Fourth Generation Languages (4GLS), Teams, Democratic Team, Classical Chief Programmer Team, Portability, Module Reuse, Test Cases, Black-Box, Glass-Box (White Box), Gray Box, Cleanroom, Distributed Testing, Real-time Testing

Implementation and Integration

Top-Down, Bottom-Up, Sandwich, Product Testing, Acceptance Testing, Toolkits, Integrated Environments

Maintenance

Fault Reports, Reverse Engineering

Future

Knowledge-Based Systems