SoftDev Flashcards
It comprises programs, procedures, and routines that facilitate computer operations.
Software
Is a set of instructions, data or programs used to operate computers and execute specific tasks
Software
2 types of software
1) System Software
2) Application Software
It directly operates the computer hardware and provides the basic functionality to the users as well as to the other software to operate smoothly
System Software
It basically controls a computer’s internal functioning and also controls hardware devices such as monitors, printers, and storage devices
System Software
Example of System Software
1) Windows
2) Linux
It performs special functions or provides functions that are much more than the basic operation of the computer.
Application Software
It is designed to perform a specific task for end-users.
Application Software
Example of Application Software
1) Microsoft Word
2) PowerPoint
It is the process of creating abstract representations of a software system
Software Modeling
These models serves as blueprints that guide developers, designers, and stakeholders through the system’s structure, behavior, and functionality
Software Modeling
Give the Top 8 Software Development Models
1) Waterfall Model
2) V-Model
3) RAD Model
4) Iterative Model
5) Spiral Model
6) Incremental Model
7) Prototype Model
8) Agile Model
It is a linear and sequential model
Waterfall Model
What are the advantages of Waterfall Model?
1) Simple and easy to understand
2) The goal is to determined early
3) It provides a structured way to do things
What are the disadvantages of Waterfall Model?
1) Complete and accurate requirements are expected at the beginning of the development process
2) The testing period comes very late
3) This is not a good model for large and complex projects
It is considered a disciplined model
V-Model
What are the 2 V’s in V-Model
Verification and Validation
What are the advantages of V-Model?
1) Planning, testing and designing can be done even before coding
2) Defects are detected in the initial stage itself
3) Small and medium scale developments can be easily completed using it
What are the disadvantages of V-Model?
1) This model is not suitable for complex projects as it lacks flexibility
2) It involves high risk and uncertainty due to its rigid structure
3) It is not ideal for ongoing projects that require continuous updates
The software development process is divided into multiple increments, with each increment following the same development phases
Incremental Model
This model breaks down a complex project into smaller, manageable modules or builds, which are developed and integrated step by step
Incremental Model
What are the advantages of Incremental Model?
1) This model is flexible and allows for cost-effective changes in requirements and scope
2) The customer can review each module and provide feedback for improvements
3) Project progress can be easily measured for each increment
What are the disadvantages of Incremental Model?
1) Management is a continuous activity that must be effectively handled throughout the project
2) Before the project can be divided and developed incrementally, the complete software requirements should be clearly defined
3) This requires good planning and designing
What does RAD Model stands for
Rapid Application Development Model
The methodology of this model is similar to that of incremental or waterfall model
RAD Model
This model is fast, highly efficient, and results in fewer errors due to continuous feedback and iterative development
RAD Model
What are the advantages of RAD Model
1) The RAD model reduces the development time by promoting rapid prototyping and iterative improvements
2) It supports component reusability, which enhances efficiency
3) It is easily transferable, similar to scripts, due to the use of high-level abstraction and intermediate code
What are the disadvantages of RAD Model
1) This model requires highly skilled developers and designers to ensure efficient development
2) Managing the process can be challenging due to its iterative and fast-paced nature
3) It is not suitable for complex projects that require a long development time or have evolving requirements
It is a type of model where the software is developed through multiple iterations, where each iteration enhances and refines the previous version
Iterative Model
This means repeating the development process multiple times until the final product meets the desired requirements
Iteration
What are the advantages of Incremental Model?
1) In the iterative model, bugs and errors can be identified and fixed quickly due to repeated cycles of development and testing
2) Software is developed rapidly with initial specifications, allowing for early deployment of functional versions
3) Testing and debugging become easier as each iteration improves and refines the software
What are the disadvantages of Incremental Model?
1) Since the Iterative Model involves multiple iterations, it requires more resources throughout the development process
2) Constantly changing the requirements lead to frequent modifications in the software
3) As a result, the project budget increases, and more time is needed to complete the development
This model has the characteristics of both iterative and waterfall model
Spiral Model
True or False,
The number of loops in Spiral Model are fixed in advance
False,
The number of loops is not fixed in advance; it depends on the project size and changing user requirements
What does each loop in the spiral model represents?
a PHASE of the software development process, ensuring continuous refinement and risk management.
This feature is also called Risk Handling
Spiral Model
What are the advantages of Spiral Model?
1) The spiral model is well-suited for large and complex projects due to its iterative and risk-focused approach
2) it allows for better cost estimation as the project progresses through multiple phases
3) Risk analysis is conducted in each phase, helping to identify and mitigate potential issues early in development
What are the disadvantages of Spiral Model?
1) The Spiral Model is the most complex SDLC model, making it difficult to manage
2) It is not suitable for small projects due to its extensive processes
3) It requires more documentation compared to other models to track progress and risks effectively
This model was introduced to overcome the shortcomings of the waterfall model, allowing early user feedback, reducing risks, and improving requirement accuracy before full-scale development
Prototype Model
What are the advantages of Prototype Model?
1) The prototype model is ideal for applications with simple prototypes and human-machine interaction
2) It is used when only the general objective is known, but input, processing, and output details are unclear
3) When a developer is unsure about an algorithm’s capability or its compatibility with an OS, the prototype model helps in testing and refinement
What are the disadvantages of Prototype model?
1) When the first version of the prototype model is ready, customers often prefer small fixes and changes rather than redesigning the system
2) The first version of the prototype may involve many compromises in design and functionality
3) Sometimes, developers make short-term compromises to quickly build a prototype, but over time, they may become accustomed to these compromises, forgetting that such practices are inappropriate for the final product
This model is a combination of iterative and incremental model
Agile Model
This model is designed to enhance flexibility and customer satisfaction
Agile Model
When was the Agile Model introduced?
the 1990’s
What are the advantages of Agile Model?
1) This is a very realistic approach to software development
2) It provides flexibility to developers
3) The software project is completed in a very short time
What are the disadvantages of Agile Model?
1) It struggles to handle complex dependencies, making it less suitable for highly interconnected systems
2) Due to the lack of formal documentation, developers may face confusion during development
3) It relies heavily on the customer representative, and if they provide incorrect information, the software may not meet the actual requirements
It is a fundamental human characteristic that involves creation and use of tools to develop artifacts
Design
What are the two aspects underpinning design activity?
1) Tool Creation and Usage
2) Communication
Tools help in creating further artifacts, making design an essential part of human evolution
Tool Creation and Usage
Design Ideas need to be effectively communicated to development to transform a design into a product
Communication
It is the process of defining the architecture, components, modules, interfaces, and data structures required to meet specified software requirements
Software Design
A well designed software system is:
1) More understandable
2) Easier to modify
3) More reliable
This plays a crucial role in development as it ensures that the software meets user and stakeholder needs
Software Design
Key benefits in software design includes:
1) Provides a blueprint for development
2) Ensures consistency and organization
3) Improves maintainability
4) Facilitates Issue Identification and Resolution