Software Development Process Flashcards
(53 cards)
3 Main Areas of Software Engineering
Software Development
Software Maintenance
Software Management
What does software development entail?
Following all phases of the software lifecycle
What does software maintenance involve?
Incorporating changes into an existing system
What does software management include?
Estimating development costs, scheduling, and planning development tasks
What are two goals of software engineering?
- Dealing with the large size & complexity of software systems
- Producing high-quality software that satisfies quality requirements
What are the 3 main categories of software systems?
Application Software
System Software
Software Tools
What is application software? (Definition)
Programs developed to solve a specific problem for a specific client
What is system software? (Definition)
Software that controls the communication between hardware and programs (operating software) or establishes communication between devices (networking software)
What are some examples of types of application software?
Scheduling, e-commerce, communication
What are some examples of software tools?
Data management systems, IDEs, debuggers, compilers, etc.
What are 4 categories of application software?
Critical
Distributed
Real-time
Dynamic
What are safety-critical systems?
Critical software that can have a catastrophic impact on human lives, the environment, or the economy.
What are distributed systems?
Software components deployed on several hardware devices.
What is a real-time system?
Systems that respond in time to events.
What is a dynamic software system?
Systems where the configuration or architecture changes during runtime.
What organizations provide a code of ethics for software development?
ACM (Association for Computing Machinery)
IEEE (Institute of Electrical and Electronics Engineers)
What are the 7 points of the code of ethics for software development?
Public Interest
Client & Employer
Product Quality
Integrity of Software Developers
Integrity of Managers
Integrity of the Profession
Supporting Colleagues
What are the 5 phases of the software development life cycle?
Feasibility Study > Analysis > Design > Implementation > Testing
What is the software feasibility study?
Determining whether to proceed with a software proposal.
What is software analysis?
Describing the problem requirements in terms of functional and quality requirements.
What is software design?
Developing a high-level solution to the problem requirements, aka software modelling.
What is software implementation?
Actualize the solution using programming languages and environments.
What is software testing?
Checking if the problem is solved and verifying quality requirements.
What does software maintenance include?
Improving, extending, or adapting existing software.