CSE 3310 MIDTERM STUDY GUIDE
What is software? - Answer -- Computer programs
- Configuration data and files
- User and system documentation
What is software engineering - Answer -An engineering discipline concerned with all
aspects of software production
Difference between Software Engineering and Computer Science? - Answer --
Computer Science is concerned with theory and fundamentals
- Software Engineering is concerned with practical aspects of developing and delivering
software
Software Engineering challenges: - Answer -- Coping with legacy systems
- Coping with increasing diversity (heterogenous systems - many types of
hardware/software)
- Coping with faster, cheaper
What is a Software Process? - Answer -- A set of activities and associated results
which produce a software product
Four fundamental process activities: - Answer -1 - Software Specification
2 - Software Development
3 - Software Validation
4 - Software Evolution
What is a Software Process model? - Answer -- A representation of software process
from a specific perspective
Examples of Software Process models: - Answer -- Workflow Model: sequence of
activities in the process along with their inputs, outputs and dependencies
- Data-flow/Activity Model: A set of activities that carry out some data transformation
- Role/Action Model: Represents roles of people involved in the software process and
activities for which they are responsible
Software Process - Answer -- A Software Process is a set of activities and associated
results which lead to the production of a software product
Activities common to all software process: - Answer -- Software Specification
- Software Design and Implementation
- Software Validation
- Software Evolution
, Software Process Model - Answer -- A Software Process Model is an abstract
representation of a software
Examples of Software Process Models Types - Answer -- Waterfall Model
- Evolutionary Model
- Formal Systems Development
- Reuse-based Development
Hybrid Software Process Models - Answer -- Incremental Development
- Spiral Development
Waterfall Model - Answer -- Also referred to as the "Life Cycle", conducted in five
stand-alone phases
Advantages of Waterfall Model - Answer -- Simple to follow
- Relatively simple to track progress
- Good Structural Design
Disadvantages of Waterfall Model - Answer -- In practice, often phases overlap
- Hard to modify and implement changes
- Need complete requirements from customers to start
Evolutionary Development - Answer -- Develop an initial implementation, expose to
users comments, refine until satisfied
Types of Evolutionary Development - Answer -- Exploratory Development
- Throw-Away Prototyping
Exploratory Development - Answer -- Start with requirements that are well defined
- Add new features when customers propose new requirements
Throw-Away Prototyping - Answer -- Objective is to understand customer's
requirements (i.e they often don't know what they want, hence poor requirements to
start)
- Use means such as prototyping to focus on poorly understood requirements, redefine
requirements as you progress
Advantages of Evolutionary Development - Answer -- Happier customers since you
help them define requirements
- Flexibility in modifying requirements
- Prototypes are very visual, hence no ambiguities
Challenges of Evolutionary Development - Answer -- Hard to trace the "process" due to
the ad-hoc nature
- Systems are often poorly structured
What is software? - Answer -- Computer programs
- Configuration data and files
- User and system documentation
What is software engineering - Answer -An engineering discipline concerned with all
aspects of software production
Difference between Software Engineering and Computer Science? - Answer --
Computer Science is concerned with theory and fundamentals
- Software Engineering is concerned with practical aspects of developing and delivering
software
Software Engineering challenges: - Answer -- Coping with legacy systems
- Coping with increasing diversity (heterogenous systems - many types of
hardware/software)
- Coping with faster, cheaper
What is a Software Process? - Answer -- A set of activities and associated results
which produce a software product
Four fundamental process activities: - Answer -1 - Software Specification
2 - Software Development
3 - Software Validation
4 - Software Evolution
What is a Software Process model? - Answer -- A representation of software process
from a specific perspective
Examples of Software Process models: - Answer -- Workflow Model: sequence of
activities in the process along with their inputs, outputs and dependencies
- Data-flow/Activity Model: A set of activities that carry out some data transformation
- Role/Action Model: Represents roles of people involved in the software process and
activities for which they are responsible
Software Process - Answer -- A Software Process is a set of activities and associated
results which lead to the production of a software product
Activities common to all software process: - Answer -- Software Specification
- Software Design and Implementation
- Software Validation
- Software Evolution
, Software Process Model - Answer -- A Software Process Model is an abstract
representation of a software
Examples of Software Process Models Types - Answer -- Waterfall Model
- Evolutionary Model
- Formal Systems Development
- Reuse-based Development
Hybrid Software Process Models - Answer -- Incremental Development
- Spiral Development
Waterfall Model - Answer -- Also referred to as the "Life Cycle", conducted in five
stand-alone phases
Advantages of Waterfall Model - Answer -- Simple to follow
- Relatively simple to track progress
- Good Structural Design
Disadvantages of Waterfall Model - Answer -- In practice, often phases overlap
- Hard to modify and implement changes
- Need complete requirements from customers to start
Evolutionary Development - Answer -- Develop an initial implementation, expose to
users comments, refine until satisfied
Types of Evolutionary Development - Answer -- Exploratory Development
- Throw-Away Prototyping
Exploratory Development - Answer -- Start with requirements that are well defined
- Add new features when customers propose new requirements
Throw-Away Prototyping - Answer -- Objective is to understand customer's
requirements (i.e they often don't know what they want, hence poor requirements to
start)
- Use means such as prototyping to focus on poorly understood requirements, redefine
requirements as you progress
Advantages of Evolutionary Development - Answer -- Happier customers since you
help them define requirements
- Flexibility in modifying requirements
- Prototypes are very visual, hence no ambiguities
Challenges of Evolutionary Development - Answer -- Hard to trace the "process" due to
the ad-hoc nature
- Systems are often poorly structured