by Magolor
● Lack of metrics for measuring the properties of software.
● No "off-the-shelf" components.
● Practitioners & theoreticians.
● Computer-Aided Software Engineering tools (CASE tools)
● Project planning systems
● Project management systems
● Documentation tools
● Prototyping and simulation systems
● Interface design systems
● Programming systems
Integrated Development Environments (IDE)
Use
Maintenance
Development
Discarded
Requirements Analysis
Design
Implementation
Testing
● Commercial Off-The-Shelf (COTS)
● For ultimate users
● For stakeholders
software requirements specification
Testing
Implementation
Design
Requirements Analysis
Requirements Analysis
Design
Implementation
Testing
● Modularity
● Design Tools & Notations
● Design Patterns
Requirements Analysis
Design
Implementation
Testing
● Software analysts & programmers
The entire process
Only implementation
Requirements Analysis
Design
Implementation
Testing
● Basis path testing: run every statement at least once
use graph theory and other mathematical techniques
● Pareto principle: rapid progress by concentration
a small number of modules contain most of the BUGs
● Glass-box testing: interior structures known
software testers use such knowledge to design tests
● Black-box testing: interior structures unknown
users test merely correctness, accuracy and timeliness
Boundary value analysis of equivalence classes
Beta testing
Alpha testing
Requirements Analysis
Design
Implementation
Testing
Waterfall Model
Incremental Model
Iterative Model
Rational Unified Process (RUP)
Unified Process (UP)
Prototyping
Evolutionary
Throwaway
Rapid
Open-Source Development
Agile Methods
eXtreme
Programming (XP)
for
Design
Maintenance
(Intermodule) Coupling
(Intramodule) Cohesion
Data Coupling
Passing by parameters
Sharing Global Data
Object-oriented to minimize coupling
Logical Cohesion
Functional Cohesion
Information Hiding
Component: a reusable unit of software.
(mostly object-oriented)
Component architecture
Component assembler
● Structure Chart
● Data Diagram
● Data Dictionary
Unified Modeling Language (UML)
use cases
actors
actors
actors
actors
system
Use case diagram
use cases
use cases
use cases
use cases
use cases
Unified Modeling Language (UML)
Class diagram
Unified Modeling Language (UML)
Interaction diagrams: Sequence diagram
life line
frame
interaction fragments
● Class Responsibility Collaboration cards (CRC cards)
Structured Walkthroughs
● Adapter pattern:
wrapping prefabricated modules & designing interfaces
● Decorator pattern:
combining additional functions
● Software Quality Assurance (SQA) groups
● Reviews
● User documentation
● System documentation
Maintenance
for
● Technical documentation
Use
for
and
Development
for
Maintenance
● Ergonomics & Cognetics
● GOMS model:
Goals, Operators, Methods and Selection rules
● Intellectual property law
● Software license: a legal agreement
● Patent laws
● Copyright statement
● Liability disclaimers
IDE:
Integrated Development Environments
Computer-Aided Software Engineering
CASE:
COTS:
Commercial Off-The-Shelf
RUP:
Rational Unified Process
UML:
XP:
eXtreme Programming
Unified Modeling Language
CRC:
Class Responsibility Collaboration
SQA:
Software Quality Assurance
GOMS:
Goals, Operators, Methods and Selection rules
International Electrotechnical Commission
IEC:
IEEE:
Institute of Electrical and Electronics Engineers
Association for Computing Machinery
ACM:
Life Cycle:
Use
Maintenance
Development
Waterfall Model:
Testing
Implementation
Design
Requirements Analysis
Cohesion
Coupling
Intramodule
Intermodule