Beginning Flashcards
Software Development Life-Cycle
Process followed for a software project. Consists of detailed plan describing how to develop, maintain, replace and alter or enhance specific software.
The software process model
Abstract representation of a process
Specification
Identifies a necessary attribute, capability, characteristic, or quality of a system in order for it to have value and utility to a user.
Design
Implementation of specification in code form. The part where SE program the code for the project.
Validation
Testing portion of software process. Deals with detection of errors and bugs.
Evolution
Process of removing errors and bugs to better refine the code of the project, then repeatedly updating.
Things that determine the model to use:
Budget
Time
Resource Constraints
Complexity
Describe the Waterfall Model.
Sequential(non-iterative) design process, used in software development processes, in which progress is seen as flowing steadily downwards through distinct phases of specification and development.
What are the phases of the waterfall model?
- Requirement Analysis
- System Design
- Implementation
- Testing
- Deployment
- Maintenance
What are drawbacks of the waterfall model?
It has difficulty accommodating change after process if underway. One phase has to be complete before moving onto the next phase.
Evolutionary Development
Initially a rapid version of the product is being developed and then product is developed to more accurate version with the help of the reviewers who review the product after each release and submit improvements. Specification, development, and validation are interleaved.
Exploratory Development
Planning and reviewing potential scenarios and approaches until the one that appears to be optimal is selected.
Throw-away prototyping
Small part of system is developed and then given to end users to try out and evaluate. User feedback can be quickly be incorporated into the development of the main system. Prototype is then discarded or thrown away.
Component-based Software Engineering
Process that assembles a project from existing software programs. Based on systematic reuse where systems are integrated from existing components
Iterative Model
Start with simple implementation of small set of software requirements and iteratively enhance the evolving versions until the complete system is implemented and ready to be deployed.
Spiral Development
Combination of iterative development process model and sequential linear development model(waterfall) with very high emphasis on risk analysis. It allows incremental releases of the product or incremental refinement through each iteration around the spiral.
Phases of spiral development
- Identification
- Design
- Construct or build
- Evaluation and risk analysis
Rational Unified Process
It divides the development process into four distinct phases that each involve business modeling, analysis and design, implementation, testing, and deployment.
What are the phases for RUP?
- Inception - the idea for the project is stated. Dev team determines if the project is worth pursuing and what resources will be needed.
- Elaboration - The project’s architecture and required resources are further evaluated. Developers consider possible applications of the software and costs associated with the development.
- Construction - The project is developed and completed. The software is designed, written, and tested.
- Transition - The software is released to the public. Final adjustments or updates are made based on feedback from end users.
Agile Software Development
Solutions evolve through collaboration between self-organizing, cross-functional teams utilizing the appropriate practices for their context.
Rapid Application Development
Uses minimal planning in favor of rapid prototyping. Planning in RAD is mixed with writing software itself. Lack of pre-planning generally allows software to be written much faster, and makes it easier to change requirements.
Joint Requirement Definition
This meeting initiates the whole development cycle. Takes place at beg. of dev. cycle, where requirements are defined. Involved people are business owner/directors, business analysis, team leaders, project managers, high tech people, domain experts, and developers may or may not be involved.
Joint Application Dev.
Involves the client or end user in the design and development of an application, through a succession of collaborative workshops called JAD sessions.
What is Database Management System (DBMS)?
system software for creating and managing databases. The DBMS provides users and programmers with a systematic way to create, retrieve, update and manage data.
What is Relational Database Management System (RDBMS)?
is a program that lets you create, update, and administer a relational database. Most commercial RDBMS’s use the Structured Query Language (SQL) to access the database
What is a relational database?
Relational database match data using common characteristics found throughout the dataset. RDBMS supports a tabular structure for the data, with enforced relationships between the tables.
What are the characteristics of relational database?
- Data is viewed as existing two dimensional tables known as relations
- A relation(table) consists of unique attributes (columns) and tuples (rows)
- Tuples are unique
- Value may be unknown or have no value. Represented by null.
- Null is not same as zero, blank, or an empty string.
What are the stages of SDLC?
- Identify current problems
- Plan
- Design
- Build
- Test
- Deploy
- Maintain