Software Engineering 3 Flashcards
- A sequential and linear approach to
software development. - The progressflows steadily (like a waterfall) through several distinct phases.
- Each stage must be completed before moving to the next.
Waterfall Model
THE PHASES OF THE WATERFALL MODEL
- requirements
- design’
- implementation
- testing
- deployment
- maintenance
ADVANTAGES OF THE WATERFALL MODEL
- easy to understand
- individual processing
- prperly defined phases
- clear milestones
- properly documented
DISADVANTAGES OF THE WATERFALL MODEL
- Lack of flexibility
- lack of feedback
- difficult to accomodate change requests
- phases has no overlap
- late testing
WHEN TO USE THE WATERFALL MODEL?
- Only well-defined, unambiguous, and fixed requirements are employed with this paradigm.
- product is constant
- no unclear prerequisits
- brief projects
- many resources available with necessary knowledge
- people understand technology
WHAT TYPES OF SYSTEM CAN WATERFALL CAN BE APPLIED?
- governement and defense projects
- large-scale development projects
- projects with stable environment
- projects with well-defined environment
- safety-critical system
Iterative Process
Model Diagram
- Initial Planning
- Planning
- Requirements
- Analysis & Design
- Implementation
- Deployment
- Testing
- Evaluation
- refers to an approach where the development process is divided into multiple cycles or iterations.
- Each iteration involves a subset of the overall development tasks, including planning, requirements gathering, design, implementation, testing, and deployment.
ITERATIVE MODEL
WHEN TO USE
ITERATIVE MODEL
- uncretain requirements
- project with long development cycles
- customer-driven projects
- Highly innovative projects
For projects involving innovative or experimental features, the iterative model supports an exploratory approach
Highly innovative projects
In projects where customer satisfaction and feedback are paramount, such as software products or services directly used by end-users, the iterative model enables early and continuous engagement with customers.
Customer-driven projects
In projects where the development cycle is long, such as those involving cutting-edge technology or extensive research and development, the iterative model allows for the delivery of intermediate results at regular intervals.
Projects with long development cycles
When the requirements for a project are not fully understood or are likely to change over time, the iterative model provides flexibility.
Uncertain or evolving requirements
WHAT SYSTEMS ITERATIVE APPLICABLE TO
- software develpment
- product development
- web development
- mobile app development
- game development
- biomedical system
- engineering system
- data science and machine learning
ADVANTAGES OF ITERATIVE MODEL
- flexible
- easy to understand
- parallel development can be planned
- improved stakeholder engagement
- risks are recognized and resolved as early as possible
DISADVANTAGES OF ITERATIVE MODEL
- not suitable for large projects
- higher resource allocation
- project completion date not confirmed
- project scope gradually expnads
- more management attention is required
AGILE METHOD
software development methodology that focuses on iterative, incremental development with continuous feedback and collaboration
KEY PRINCPLES IN AGILE METHOD
- adaptive
- iterative
- incremental
- collaborative
- feedback-driven
Involves the entire team, including developers, testers, and customers
COLLABORATIVE
Uses feedback from testing, customer input, and team retrospectives to improve the process
FEEDBACK-DRIVEN
Delivers working
software regularly
INCREMENTAL
Develops software in small,
manageable increments
ITERATIVE
Responds to changing
requirements and customer feedback
ADAPTIVE
Agile is used in a wide range of software development projects, including
- web applcation
- mobile application
- enterprise software
- embedded system
- real-time system
Agile Pros
- flexibility
- teamwork
- customer satisfaction
- speed
- quality
Agile Cons
- documentation may be lacking
- not suitable for all projects
- challenging for large projects
- requires high level of team collaboration