1/34
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Systems Development Life Cycle (SDLC)
A phased approach to analysis and design that holds that systems are best developed through the use of a specific cycle of analyst and user activities.
The Heart of the Systems Development Process
Planning
Analysis
Design
Implementation
Maintenance
Analysis-design-code-test-loop
Analysis
Design
Code
Test
Software Process
Is the set of related activities and associated outcome that produce a software product.
4 Fundamental Process Activities
Software specification
Software development
Software validation
Software evolution
Software specifation
The functionality of the software and constraints on its operation must be defined.
Software development
The software to meet the requirement and specification must be produced.
Software validation
The software must be validated to ensure that it does what the customer wants
Software evolution
The software must evolve to meet changing customer/client needs
Software Process Models
Is a specified definition of a software process, which is presented from a particular perspective and thus only provides partial information about that process.
Software Process Models
These generic models are high-level, abstract descriptions of software processes that can be used to explain different approaches to software development.
Software Process Models
Play a crucial role in ensuring that projects are executed smoothly in software development.
They provide all team members with a common language and understanding, promoting effective collaboration and communication.
Types of Software Process Models
The Waterfall Model
Agile Model
Iterative Model
The Waterfall Model
This is a linear, sequential approach that progresses strictly top-down. It follows a structured flow, where each phase of the development cycle must be completed before progressing to the next.
This model is ideal for projects with well-defined and stable requirements.
Agile Model
This emphasizes flexibility and adaptive planning. It promotes iterative development, allowing teams to deliver working software in frequent, short iterations.
This model is well suited for projects with changing requirements and a need for 1 quick responses to customer feedback.
Iterative Model
This model focuses on incremental development, where each iteration produces a working software component.
This approach allows for early prototyping and testing, enabling feedback-driven improvements throughout development.
Benefits of Using Software Process Models
Efficiency in Software Development
Quality Assurance and Risk Managemen
Efficiency in Software Development
By providing a structured approach to software development. They enable teams to streamline their workflows, minimizing the risk of missed deadlines or overlapping tasks
Quality Assurance and Risk Management
Facilitate robust quality assurance and risk management practices. These models ensure that software is thoroughly tested before deployment by defining specific checkpoints and validation processes.
Factors to consider in choosing the right Software Process Models
Project size and complexity
Stability of requirements
Customer involvement and feedback
Team size and expertise
Schedule and time constraints
Software Quality Factors
Product revision
Product transition
Product operation
Product Revision Software Quality Factors
Maintainability
Flexibility
Testability
Product Transition Software Quality Factor
Portability
Reusability
Interoperability
Product Operation Software Quality Factors
Correctness
Reliability
Usability
Integrity
Efficiency
Correctness
This refers to the accuracy, completeness, timeliness, and availability of the software's output, as well as adherence to coding and documentation standards
Reliability
Focuses on minimizing service failures by determining the maximum allowed failure rate for the software or its functions.
Efficiency
Concerns the hardware resources required, such as processing power, storage and data communication, as well as the time between recharging portable units.
Integrity
Involves the security of the software system, ensuring that access is restricted to authorized users with appropriate permissions.
Usability
Addresses the ease with which new staff can be trained to use and operate the software system.
Maintainability
Involves the effort required to identify, fix, and verify software failures by users and maintenance personnel.
Flexibility
Focuses on the software's ability to adapt to new situations and users without requiring changes to the software itself.
Testability
Concerns the ease of testing the software, including predefined results, log files, and automatic diagnostics to ensure all system components are functioning correctly and to report any detected issues.
Portability
Ensures that the software can be adapted to different environments, such as various hardware or operating systems, allowing the same software to function in diverse situations.
Reusability
Involves designing software modules that can be reused in future.
Interoperability
Focuses on creating interfaces that allow the software to work seamlessly with other software systems or equipment firmware.