CSCI 310 Midterm 1 questions with correct answers
engineering Correct ANSWER-The application of scientific principles and methods to the construction of useful structures & machines
software engineering Correct ANSWER-40 years old: NATO Conferences, Garmisch, Germany, October 7-11, 1968, Rome, Italy, October 27-31, 1969
Nowadays, everything depends on it
(Computer science as the scientific basis)
Development of software systems whose size/complexity warrants team(s) of engineers
Scope - study of software process, development principles, techniques, and notations
Goal - production of quality software, delivered on time, within budget, satisfying customers' requirements and users' needs
Software engineering is an engineering discipline which is concerned with all aspects of software production
Software engineers should adopt a systematic and organised approach to their work
and use appropriate tools and techniques depending on:
the problem to be solved,
the development constraints, and
the resources available
A key software engineering "axiom"
Better
Cheaper <-- pick any two Faster
difficulties Correct ANSWER-Few guiding scientific principles
Few universally applicable methods
As much managerial / psychological / sociological
as technological
why are there difficulties? Correct ANSWER-a unique brand of engineering:
Software is malleable
Software construction is human-intensive
Software is intangible
Software problems are unprecedentedly complex
Software directly depends on the hardware
It is at the top of the system engineering "food chain"
Software solutions require unusual rigor
Software has discontinuous operational nature
software programming vs engineering Correct ANSWER-programming:
Single developer
"Toy" applications
Short lifespan
Single or few stakeholders
Architect=Developer=Manager=Tester=Customer=User
One-of-a-kind systems
Built from scratch Minimal maintenance
engineering:
Teams of developers with multiple roles
Complex systems
Indefinite lifespan
Numerous stakeholders
Architect ≠ Developer ≠ Manager ≠ Tester ≠ Customer ≠ User
System families
Reuse to amortize costs
Maintenance accounts for over 60% of overall development costs
software costs Correct ANSWER-Often dominate computer system costs (software
on a PC > hardware cost)
Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs.
Software engineering is concerned with cost-effective software development
60% development costs, 40% are testing costs
Evolution/maintenance costs > development costs
Costs vary depending on:
-The type of system being developed (custom built vs. mass market software)
-The requirements of system attributes such as performance and system reliability
-The experience of the development team(s) Distribution of costs depends on the development model that is used
economic and management aspects Correct ANSWER-Software production = development + maintenance
Maintenance costs > 60% of all development costs: 20% corrective, 30% adaptive, 50% perfective
Quicker development is not always preferable: higher up-front costs may defray downstream costs, poorly designed/implemented software is a critical cost factor
Mythical Man Month by Fred Brooks Correct ANSWER-Published in 1975, republished in 1995
Experience managing development of OS/360 in 1964-65
Central argument:
Large projects suffer management problems different in kind than small ones due to division of labor, critical need is the preservation of the conceptual integrity of the product itself
Central conclusions: Conceptual integrity achieved through chief architect, implementation achieved through well-managed effort
Brooks's Law: Adding personnel to a late project makes it later
software project failure Correct ANSWER-Increasing system complexity:
As new software engineering techniques help us to build larger, more complex systems, the demands change. Systems have to be built and delivered more quickly; larger, more complex systems are required; systems have to have new capabilities that were previously thought to be impossible. Failure to use software engineering methods:
It is fairly easy to write computer programs without using software engineering methods and techniques. Many companies have drifted into software development
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller Classroom. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $17.99. You're not tied to anything after your purchase.