Lecture1 Flashcards
(29 cards)
What is software?
A computer program that provides desired functionality and performance, including documentation and data.
What are the characteristics of software?
Logical, product & vehicle for developing a product, engineered not manufactured, doesn’t wear out
but deteriorates, mostly component based
What is system software?
- A collection of programs that interact with hardware and service other programs.
- Have interactions with the hardware.
- Complex, heavy usage by multiple users, complex data structures, resources sharing, possibly multiple external interfaces
What is real-time software?
- Programs that monitor analyze/control real world events as they occur.
- Must meet the deadlines.
- Generally involves data gathering from multiple resource sources
What is business software?
- Business oriented application like: inventory, payroll, account receivable.
- MIS to fasciate management decision-making
- Maybe interactive and client server computing
What is the software crisis?
- Software projects were frequently late, unreliable, and expensive.
- Hardware advancements outpaced software development, leading to inefficiencies.
- The demand for new and high-quality software was difficult to meet.
- Maintaining and updating software was more costly and complex than developing it.
- Customers were often dissatisfied due to poor software quality and unmet expectations.
What are the attributes of well-engineered software?
Correctness, dependability, reliability, availability, maintainability, integrity, efficiency, usability, flexibility, portability, reusability.
What is software engineering according to Sommerville?
An engineering discipline focused on cost-effective development of high-quality software systems.
What are the key principles of software engineering ethics?
Act in the public interest, ensure high standards, maintain integrity, promote ethical management, lifelong learning
What are some common umbrella activities in software engineering?
– Software project tracking and control
– formal technical reviews.
– software quality assurance
– software configuration management.
– document preparation and production.
– reusability management
– measurement
– risk management
With what do we start in software engineering?
- Input
- processing
- output
Output
What are the requirements for software to avoid failure?
High-quality software.
Low cost.
On time
What is one characteristic of software that is no longer relevant? And why?
Custom-built, nowadays we create one system and sell it to companies in the same industry
What is Engineering and scientific software?
– Number granting.
– numerical algorithm.
– merging with real-time and system software
What is embedded software?
- reside in read–only memory and is used to control products and systems.
– perform limited functions
What is personal computer software?
Work processing, spreadsheets, multimedia, entertainment
What is personal computer software?
Work processing, spreadsheets, multimedia, entertainment
What is AI software?
– Use non-numeric algorithms.
- Expert systems, knowledge base systems.
– used in pattern recognition, automatic theorem improving, and gameplaying.
- New generation of ANN
Give me the simple definition of well engineer software, and how to improve upon it
Simple definition: if the software system does what they use want.
Improve simple definition: if the software system does what the user wants, and can be made to continue to do what the user wants
Elaborate on the definition of well engineered software characteristics
– Correctness: equivalence between the software and its specification.
– dependability: trustworthiness of a computer system.
– reliability: probability that the software will operate as expected i.e. no crash.
– availability: expected fraction of time during which a software component or system is functioning acceptably
– maintainability: ease with which a program can be corrected, changed
– integrity: measure a system‘s ability to withstand attacks on its security.
– efficiency: a software system is efficient if it uses computing resources economiacally
– usability: user friendliness.
– Flexibility: ability to reasonably response to any unexpected inputs or hardware failures.
– portability: can run in different environment
– reusability: the creation and reuse of software building blocks
Are all will engineer software characteristic needed in every software
It’s a compromise, some of them are must, but some like usability can be opted out.
e.g. usability: a lot of systems are difficult to use
What is the definition of software engineering according to NATO conference?
Software engineering: what is needed to develop large and complex software products and what is needed to control such projects
What is the definition of software engineering according to pfleeger?
Application of computing tools to solving problems
What is the definition of software engineering according to CMU/SEI?
Form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems