1. Introduction Flashcards
What is Software Engineering?
Creating cost-effective software solutions to practical computing problems by applying scientific/codified knowledge; building software systems in the service of mankind. \+ scope is unbound \+ few tech limitations \+ restricted use of math \+ continuous invention/creation
What is Traditional Engineering?
+ scope is more restricted
+ physical law restrictions
+ intensive use of math
+ deterministic application of techniques
What is the relation of production and science to the establishment of a professional engineering?
“Science + Commerce leads to professional Engineering”
Production leads to higher demand for a product. With science, a more systematic consistent, reliable method is formed to produce higher quality results.
What is the focus of Computer Engineering?
Combines the fields of electrical engineering and computer science to develop software and hardware.
What is the focus of Computer Science?
Theory driven science of computers.
What is the focus of Information Systems?
Any organized system for the collection, organization, storage and communication of information.
What is the focus of Software Engineering?
Software Engineering focuses on creating well-rounded software using techniques of the engineering discipline.
List the eight software engineering activities.
- Software Inception
- Requirements
- Analysis
- Design
- Implementation
- Testing
- Deployment
- Evolution
List five characteristics of a project that requires an engineering approach.
“As the complexity increases, an engineering approach becomes more necessary.”
Here are nine: \+ Large Projects \+ Complex Projects \+ Team Projects \+ Diverse stakeholders \+ Family of products \+ Many parallel changes \+ Long Lived Projects \+ Expensive \+ Large Consequences
Explain why most software projects are delivered after the deadline, over the budget, with failures or without satisfying the clients.
This is commonly due to a lack of communication between the developers and customers. By not constantly questioning the target audience, the dev might not develop the the proper product. Deadlines are usually short sighted, assigning too much work in too little time.
Explain the role of social aspects in software engineering.
Devs must frequently communicate with:
1. customers - for development direction
2. their team/project managers - to assure everyone is on the same page
This communication is crucial to getting any project done.
Explain why software deteriorates over time.
Software deteriorates over time because technology continues to push forward and update. As technology changes, changes in its software must reflect this behavior. This, as well as bug fixes, and software improvements are required to keep a standard user base.
Explain why people use the expression:
“There is no silver bullet” for software engineering.
There is not “one” software that solves all of the problems. (i.e. It may be good at storing arrays and adding to the data, but could be slow at accessing the data).
Explain the concept of:
“The mythical man-month.”
Throwing more man power at a late software project will only make it later.
(Think about many people learning the entirety of a project at the late stages of its development life in order to help).
What are the problems of overkill / over-engineering in software engineering?
+ Software may be developed that no one uses (Mike Tyson).
+ Overabundance of time may be taken to complete the project
+ Software may become too complicated for use