Software Engineering Flashcards
Definition of Software Engineering
Software Engineering is the application of engineering to develop quality software in a
cost-effective way to meet the target objective.
Definition of Software Modeling
Theory and methods for specifying software requirements and
design
Definition of Software Development Methodology
Methods for developing software
Definition of Software Security
Implement and audit security defense in software systems (most
of the security attacks exploit on software vulnerabilities)
Definition of Software Reuse
Methods for reusing software
Definition of Software Testing
Theory and methods for testing software
Definition of Software Economics
Theory and methods for estimating resources and costs of
software development, etc
Definition of Software Process
A process is defined as a collection of activities when some work product is to be to created.
Each activity is populated by a set of actions. Each action is defined by a set of tasks to
complete the work products and other associated achievement
In general, software processes comprises the following types of activities
1.Communication: project initialization; requirements capture
2.Planning: plan technical tasks, resources, work products, work schedule; analyze risks
3.Modeling: requirements analysis, design
4.Construction: coding, testing
5.Deployment: software delivery, evaluation and feedback.
Name Process Models
Waterfall Model
Incremental Model
Evolutionary Model
Name Waterfall Model Process
Communication
Planning
Modeling
Construction
Deployment
What is Waterfall Model Suitable for?
Well-defined requirements
Adequate resources
Project teams have good expertise/experience on the system
Systems are not too large or complex
There is no urgent need on any part of the system
Name The Incremental Model Process
Communication
Planning
Modeling
Construction
Deployment
What is Incremental Model Suitable for?
Requirements are reasonably well-defined, but the overall scope of the
development effort precludes a purely linear, waterfall process.
Compelling need to provide a limited set of software functionality to users
quickly and then refine and expand on that functionality in later software
releases
What are the two sub-models of Evolutionary models
Prototyping
Spiral