software engineering principles comp 410 study guide 2024
6 views 0 purchase
Course
Comp
Institution
Comp
What is software engineering?
a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the client's needs. The software must be easy to modify when the user's needs change
What is classical software engineering life cycle model?
1. requ...
software engineering principles comp
410 study guide 2024
What is software engineering?
a discipline whose aim is the production of fault-free software, delivered on time and within budget, that
satisfies the client's needs. The software must be easy to modify when the user's needs change
What is classical software engineering life cycle model?
software undergoes modifications to code and associated documentation due to a problem or the need
for improvement or adaption, irrespective of whether this takes place before or after installation of the
product
Why is there no planning phase, testing phase, and documentation phase during software development?
There is no separate planning phase. Instead, planning activities are carried out all through the life cycle.
However, there are times when planning activities predominate. These include the beginning of the
project (preliminary planning) and directly after the specification document has been signed off on by
the client (software project management plan).
1. What are the advantages of the object-oriented paradigm?
> Objects can easily be reused in other programs, reducing time and cost of production and maintenance
> Once an Object is created, knowledge of its implementation is not necessary for its use
> Objects hide certain parts of themselves from programmers. This prevents programmers from
tampering with values they shouldn't
> Development is made easier since objects in a product closely correspond to counterparts in the real
world, leading to better quality software
> Separation of code makes maintenance quicker and easier, since only the code directly associated with
the new feature is altered. This also reduces regression fault
What are major differences between structured and object-oriented paradigm?
The key difference between Structured Programming and OOP is that the focus of Structured
Programming is to structure the program in to a hierarchy of subprograms while, the focus of OOP is to
break down the programming task in to objects, which encapsulate data and methods.
,In structured paradigm, there is a sharp transition between the analysis phase and the design phase
(what the product is to do vs how to do it)
In OOP, objects enter the life cycle from the very beginning. Thus, it is an integrated approach and the
transition from workflow to workflow is smoother than with the classical paradigm, reducing the
number of faults introduced during development.
What is the requirements phase?
concept is explored and refined, and the client's requirements are elicited
What is analysis/specification phase?
client's requirements are analyzed and presented in specification document
software project management plan describes software development in full detail
Design phase?
Architectural design: product I broken down into modules
Detailed design: each module is designed
Implementation phase?
Unit testing: components undergo coding and testing
Integration: components of the product are combined and tested as a whole
Acceptance testing: by client when developers are satisfied that the product functions correctly
Product is then accepted by the client and installed on their computer
Post delivery phase?
Product is used to perform the tasks for which it was developed
Four Types of Maintenance
1. Perfective Maintenance: changes that the client thinks will improve the effectiveness of the product
(i.e. additional functionality, decreased response time)
2. Adaptive Maintenance: changes made in response to changes in the environment the product
operates in (i.e. new hardware/OS or new government regulations)
3. Corrective Maintenance: removal of residual faults while leaving specifications unchanged
4. Enhancement: changes to specifications and the implementation of those change
Schach uses the term product to mean a non-trivial piece of software in order to:
Schach uses the term product to mean a non-trivial piece of software in order to emphasize that it is the
end point of the process of software production.
Which term is used by Schach to denote an incorrect piece of software?
Schach uses the term fault to denote an incorrect piece of software in order to highlight a software
engineer as one who takes responsibility for his or her actions.
Besides code in machine-readable form software consists of:
, manuals
Software includes all the documentation that is an intrinsic component of every project. Schach
Explain the impact of Miller's law on software production.
Miller's Law states that at any one time, we humans are capable of concentrating on only approximately
seven chunks (units of information)
A typical software artifact has far more than seven chunks of information we are therefore limited on our
capability to handle the complexity of a software artifact.
Stepwise refinement help us handle the Miller's Law restriction on our human capabilities by
concentrating on the seven most important pieces of information at that time and holding off the next
seven aspects until we need to address them.
Describe the strengths of the iterative and incremental life-cycle model.
agile
Multiple opportunities to check software is correct and save money by detecting faults early
Robustness of the software is determined early.
Risks can be mitigated and reported to the client early in the life cycle, when only a small proportion of
the budget has been spent
We always have a working version of the software.
Describe Code-and-Fix Life Cycle Model
The product is implemented without requirements, specifications, or any attempt at design.
Instead, the developers simply throw code together and rework it as many times as necessary to satisfy
the client
Waterfall Life Cycle Model
No phase is complete until the documentation for that phase has been completed and the products of
that phase have been approved by the software quality assurance (SQA) group
Testing is not a separate phase to be performed only after the product has been constructed, nor is it to
be performed only at the end of each phase
Spiral Life-Cycle Model
Waterfall model with each phase preceded by risk analysis
Minimizing risk via the use of prototypes and other means
A proof-of concept prototype is a scale model constructed to test the feasibility of construction
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 CleanA. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $12.99. You're not tied to anything after your purchase.