Software Engineering Fundamentals: Q&A on Development Models and Principles, Exams of Biology

Explore fundamental concepts in software engineering through a question-and-answer format. Various software development models, including waterfall, iterative-and-incremental, rapid prototyping, and agile processes. It also delves into programming paradigms such as individual artistic, modular, imperative, and object-oriented programming. Key principles like encapsulation, information hiding, and message passing are explained, providing a comprehensive overview of software engineering principles and practices. This material is designed to enhance understanding and retention of core concepts in software development.

Typology: Exams

2025/2026

Available from 09/17/2025

tutor-lee-1
tutor-lee-1 🇺🇸

4.3

(3)

11K documents

1 / 9

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Software Engineering Chapter 2
with complete verified solutions
2024/2025
What is software development in theory?
It is software that is developed linearly and starting from scratch
Requirements -> Analysis -> Design -> Implementation
What is Software Development in Practice like?
In the real world it is different, mistakes are made, and requirements
change while the product is being developed.
Winburg Mini Case Study -> Evolution Tree Model (What are the steps?)
• Episode 1: first version implemented
• Episode 2: a fault is found in Implementation
• Episode 3: a new design is adopted
• Episode 4: requirements change
• Epilogue: all this occurs again
What is the Waterfall Model?
• Linear lifecycle model with feedback loops
o Cannot show order of events.
o Feedback loops are maintenance and verification activities.
Evolution-Tree Model
• Explicit order of events is shown.
• End of each episode: baseline and a complete set of artifacts
(constituent components).
What are the Lessons of the Winburg Mini Case Study?
• Changes are always needed:
o Software product is a model of the real world that is continually
changing, and mistakes are always made
Moving Target Problem?
pf3
pf4
pf5
pf8
pf9

Partial preview of the text

Download Software Engineering Fundamentals: Q&A on Development Models and Principles and more Exams Biology in PDF only on Docsity!

Software Engineering Chapter 2

with complete verified solutions

What is software development in theory? It is software that is developed linearly and starting from scratch Requirements -> Analysis -> Design -> Implementation What is Software Development in Practice like? In the real world it is different, mistakes are made, and requirements change while the product is being developed. Winburg Mini Case Study -> Evolution Tree Model (What are the steps?)

  • Episode 1: first version implemented
  • Episode 2: a fault is found in Implementation
  • Episode 3: a new design is adopted
  • Episode 4: requirements change
  • Epilogue: all this occurs again What is the Waterfall Model?
  • Linear lifecycle model with feedback loops o Cannot show order of events. o Feedback loops are maintenance and verification activities. Evolution-Tree Model
  • Explicit order of events is shown.
  • End of each episode: baseline and a complete set of artifacts (constituent components). What are the Lessons of the Winburg Mini Case Study?
  • Changes are always needed: o Software product is a model of the real world that is continually changing, and mistakes are always made Moving Target Problem?
  • Change in requirements during development.
  • Even if the reasons for change are good, the software product can be adversely impacted o Dependencies will be induced
  • Any change can cause a regression fault o A fault in a seemingly unrelated part of the software
  • Too many changes -> entire produce may have to be redesigned and reimplemented T/F • Any change can cause a regression fault in a moving target problem? T What is Iteration and Incrementation?
  • Real world: no talk about "phases"
  • Basic software development process is iterative: each successive version is intended to be closer to its target than its predecessor What is Miller's Law?
  • We can concentrate on only seven chunks (units of information)
  • To handle large amounts of information, we use stepwise refinement: o Concentrate on currently most important aspects o Postpone less critical aspects o Every aspect is eventually handled, but in order of importance
  • This process is incremental. What is stepwise refinement? o Concentrate on currently most important aspects o Postpone less critical aspects o Every aspect is eventually handled, but in order of importance What model uses Multiple instances of each phase as "workflows" Iteration and Incrementation What model uses • Sequential phases only exist in very small programs & larger projects utilize the five workflows over the entire life cycle Iteration and Incrementation What are workflows in iteration and incrementaiton
  • All five workflows are performed over the entire life cycle. o One usually predominates. Examples: beginning of lifecycle-> requirements end of lifecycle -> implementation and test
  • Planning and documentation activities are performed throughout the entire lifecycle.

o No partial product o Do not see product until the end What is the Waterfall model characterized by? o Feedback loops o Document driven What is the Rapid Prototyping Model?

  • Linear model
  • Prototype - a representation of the final product
  • Rapid - has to be developed fast because it is at the start of the life- cycle, otherwise the whole project will be delayed What is the Open-Source Life-Cycle Model
  • Two informal phases o First phase: First, one individual builds an initial version
  • Made available via the Internet Then, if there is sufficient interest in the project
  • The initial version is widely downloaded
  • Users become co-developers
  • The product is extended o Second phase: Reporting and correcting defects corrective maintenance Adding additional functionality perfective maintenance Porting the program to a new environment adaptive maintenance The second informal phase consists solely of postdelivery maintenance not co-developers, but co-maintainers Open Source model can use? o Operating systems o Web browsers o Compilers o Web servers o Database management systems What is XP (Extreme Programming) o The computers are put in the center of a large room lined with cubicles o A client representative is always present o Software professionals cannot work overtime for 2 successive weeks o No specialization (early implementation) o Refactoring (design/specification modification) (going back up) Agile processes are a collection of new paradigms characterized by?

o Less emphasis on analysis and design o Earlier implementation - working software is considered more important than documentation o Responsiveness to change o Close collaboration with the client Evaluating Agile Processes o However, medium- and large-scale software development are completely different

  • Key decider - the impact of agile processes on postdelivery maintenance o Refactoring is an essential component of agile processes o Refactoring continues during maintenance
  • Agile processes are good when requirements are vague or changing
  • Paired programming leads to: o Development of higher-quality code o Shorter time o Greater job satisfaction
  • In conclusion: o Agile processes appear to be a useful approach to building small-scale software products when the client's requirements are vague o Also, some of the proven features of agile processes can be effectively utilized within the context of other life-cycle models What is Synchronize and Stabilize Model?
  • Microsoft's life-cycle model
  • Requirement analysis - interview potential customers
  • Draw up specifications
  • Divide project into 3 or 4 builds
  • Each build is carried out by small teams working in parallel
  • At the end of the day - synchronize (test and debug)
  • At the end of the build - stabilize (freeze the build)
  • Variation of iterative and incremental model
  • Components always work together o Get early insights into the operation of the product What is the Spiral model?
  • Rapid prototyping model plus risk analysis preceding each phase
  • If all risks cannot be mitigated, the project is immediately terminated What is the Full Spiral Model?
  • Precede each phase by: o Alternatives/prototypes o Risk analysis
  • Follow each phase by

represent a way of organizing knowledge o Based on the class/object set of abstractions o Object-orientation does not make programming easier o It does provide a set of abstractions, methods, and standards that enables us to write better programs What are Abstractions

  • The abstractions used by programmers have grown over time o Functions and procedures - a farm of information hiding o Modules - encapsulation and information hiding, no instantiation o Abstract data types - programmer defined types o Class/objects
  • Abstractions allow us to better manage program complexity What are the Principles of Object-Orientation
  • Encapsulation
  • Information hiding
  • Message passing
  • Late binding
  • Delegation
  • Class/object
  • Inheritance and polymorphism
  • Relationships Encapsulation
  • Object contains both the data and the methods that will manipulate or change that data Information Hiding
  • The object that contains the attributes defines what services are available to the other objects. In fact, other objects have neither access nor knowledge of the data or how a service is provided Message Passing
  • An object may communicate with another object only via a message passing mechanism
  • Ability to overload names - the behavior depends on the class of the object that receives the message
  • Leading to more readable and more understandable code Late Binding
  • Support for the ability to determine the specific receiver and its corresponding method to be executed for a message at run time
  • Usually the specific receiver of any given message is not known until run time, so the determination of which method to invoke cannot be made until then

Delegation

  • Work is passed, via message passing, from one object (client) to another object (server) because, from the client's perspective, the agent has the services that the client needs. Work is continuously passed until it reaches the object that has both the data and the method to perform the work
  • The perfect bureaucratic principle Class/Object
  • All objects are instances of a class
  • Instances can be created or destroyed at run time
  • Characteristics o Attributes, data
  • Static model o Relationships
  • Dynamic behavior o Services/operations/methods/functions/actions
  • Features (attributes + operations)
  • Abstract class - no instances Inheritance and Polymorphism
  • Classes are arranged in a hierarchical inheritance structure representing a generalization/specialization relationship
  • Polymorphism allows a specialization to tailor its behavior to differ from the behavior specified for its generalization
  • Support the independence (low degree of coupling) of individual objects that support an incremental development process (good cohesion) Relationships
  • Collaborations between objects to provide a service to a client are captured by an association relationship, which is technically called a link (an instance of association)
  • Types of relationships: o Generalization/specialization o Association (between classes, peer-to-peer) o Aggregation (whole-parts, part-of) - transitivity and antisymmetric properties o Composition - strong type of aggregation Ways of Organizing Reality
  • Four major organizational perspectives o Data/entity view (ER diagram) o Function view (structured techniques) o Behavioral view (state transition diagram) o Control (rule-based system)
  • The object-oriented approach merges these ways of viewing reality.