Software Engineering: Key Concepts, Principles, and Practices, Exams of Biology

Explore the fundamental concepts and principles of software engineering with this comprehensive q&a guide. Covering topics from software development methodologies like agile and waterfall to key elements such as requirements analysis, system design, and implementation, this document provides valuable insights into the software engineering process. Learn about the roles within a development team, the evolution of software engineering practices, and the challenges of managing change in software projects. This resource is ideal for students and professionals seeking a solid understanding of software engineering principles and their practical applications. It also includes a mini case study and lessons learned from real-world scenarios, enhancing its educational value and relevance to current industry practices. Useful for university or high school study purposes.

Typology: Exams

2025/2026

Available from 09/17/2025

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

4.3

(3)

11K documents

1 / 16

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Introduction to Software
engineering test questions and
answers
Define the term Software Engineering
The application of a systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software; that is, the
application of engineering to software.
What are the 3 overview of Software Engineering
Quality
Cost
Functionality
What does&Quality&mean in terms of Software Engineering
The software is expected to perform at certain standards and is reliable
What does&Cost&mean in terms of Software Engineering
Anytime developed always has a cost in terms of time and resources
What does&Functionality&mean in terms of Software Engineering
There is a need to identify and capture both functional and non-functional
requirements as requested by end users.
What are 3 reason, why is the principle of Software Engineering important
1, Software systems are often central to competitiveness and competitive
advantage.
2, Software Systems are everywhere e.g mobile phones
3, Economic value of the Agile & Waterfall ensure that software made to a
certain standards
What are 3 things to bear in mind about Software engineering Principles
in terms of theory vs reality?
- Software engineering is merely process driven
- We must access the risks or quantify risks before starting development
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Software Engineering: Key Concepts, Principles, and Practices and more Exams Biology in PDF only on Docsity!

Introduction to Software

engineering test questions and

answers

Define the term Software Engineering The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. What are the 3 overview of Software Engineering Quality Cost Functionality What does Quality mean in terms of Software Engineering The software is expected to perform at certain standards and is reliable What does Cost mean in terms of Software Engineering Anytime developed always has a cost in terms of time and resources What does Functionality mean in terms of Software Engineering There is a need to identify and capture both functional and non-functional requirements as requested by end users. What are 3 reason, why is the principle of Software Engineering important 1, Software systems are often central to competitiveness and competitive advantage. 2, Software Systems are everywhere e.g mobile phones 3, Economic value of the Agile & Waterfall ensure that software made to a certain standards What are 3 things to bear in mind about Software engineering Principles in terms of theory vs reality?

  • Software engineering is merely process driven
  • We must access the risks or quantify risks before starting development
  • Models such as Agile & Waterfall are not always followed step by step and are used interchangeably What are 2 things Software Engineering mainly about?
  • Solving Problems related to the customer needs with the cost of time and resources in mind.
  • The act of software development involves analysis, design and implementation What does Analysis mean in terms of Software Engineering It involves investigation - defining what it is we need to build, what are the requirements. What does Design mean in terms of Software Engineering We looks at a conceptual solution to the problem, one that will satisfy the requirements identified during the analysis phase. What does Implementation mean in terms of Software Engineering Taking a design and realizing it via one or more programming languages e.g programming languages Name 3 things that are Good about Software Engineering
  • Perform tasks more quickly and effectively
  • Support advances in different industries
  • Lots of technological disruption e.g Mobile Devices Name 3 things that are Bad about Software Engineering
  • Failed Software development
  • Malfunctioning code can also result in the killing of people
  • Reliability constraints have caused cancellation of many safety critical systems e.g failed elevators What does Safety-critical mean in terms of Software Engineering Something whose failure poses a threat to life or health Who are the 3 types of people involved in Software Engineering? 1, Customer 2, Developer

What does the term Activities mean terms being a type of element of a system in the Systems approach? An activity is an event initiated by a trigger. What does the term Objects or Entities mean terms being a type of element of a system in the Systems approach? Are the elements involved in the activities What does the term Relationships mean terms being a type of element of a system in the Systems approach? A relationship defines the interaction among entities and activities. What does the term The system boundaries mean terms being a type of element of a system in the Systems approach? Systems boundaries determine the origin of input and destinations of the output. Name the 9 steps for Building a System in Engineer Approach 1, Requirement analysis and definition 2, System design 3, Program design 4, Writing the programs 5, Unit testing 6, Integration testing 7, System testing 8, System delivery 9, Maintenance or Support What is typically the most expensive step in building a System in Engineer Approach Maintenance or Support What are the 8 Members of the Development Team 1, Requirement analysts 2, Designers

3, Programmers 4, Testers 5, Trainers 6, Maintenance or Support team 7, Librarians 8, Configuration management team What is role of Requirement analysts in the Development Team Work with the customers to identify and document the requirements What is role of Designers in the Development Team Generate a system-level description of what the system is supposed to do What is role of Programmers in the Development Team Write lines of code to implement the design What is role of Testers in the Development Team Catch faults What is role of Trainers in the Development Team Show users how to use the system What is role of Maintenance or Support team in the Development Team Fix faults that show up later What is role of Librarians in the Development Team Prepare and store documents such as software requirements What is role of Configuration management team in the Development Team Maintain correspondence among various artifacts How Has Software Engineering Changed Before 1970s?

  • Single processors: mainframes

8, Tools and integrated environments What are the 2 ways Abstractions has changed in Software Engineering

  • A description of the problem at some level of generalization.
  • Hide (hopefully lots of) details What are the 2 ways Software Process and Process Models has changed in Software Engineering 1, There are many variations 2, Different types of software need different processes What are 2 types variations that has changed in the Software Process and Process Models?
  • There is No one size fits-all
  • There is No silver bullet What are the 2 types of software need different processes that has changed the Software Process and Process Models?
  • Enterprise-wide applications need a great deal of control
  • Departmental applications can take advantage of rapid development What are the 5 ways Analysis and Design Methods & Notations has changed in Software Engineering 1, Formalize the process of performing analysis and design 2, Provide notations for documenting the outcomes of these processes 3, Facilitate communication among developers, customers, and users

4, Allow us to build models and check them for completeness and correctness 5, Provide materials that can be re-used between projects How has Software Reuse changed in Software Engineering Commonalities between applications may allow reusing artifacts from previous developments What are the 2 advantages in Commonalities between applications that may allow reusing artifacts from previous developments

  • Improve productivity
  • Reduce costs What are the 4 Potential concerns with Software Reuse? 1, It may be faster to build a smaller application than searching for reusable components 2, Generalized components take more time to build 3, Must clarify who will be responsible for maintaining reusable components 4, Generality vs specificity: always a conflict v 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

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. Winburg Mini Case Study with Iteration and Incrementation
  • Each episode corresponds to an increment
  • Not every increment includes every workflow
  • Increment B was not completed
  • Dashed lines denote maintenance Iterative and Incremental MODEL
  • Whole project can be considered as a whole as a set of mini projects (increments)
  • Each mini project extends: o Requirements artifacts o Analysis artifacts o Design artifacts o Implementation artifacts o Testing artifacts Artifacts - anything produced in an iteration
  • Final set of artifacts = complete product What are the Strengths of the Iterative-and-Incremental Model
  • Multiple opportunities for checking that the software product is correct through early fault detection brought forth from doing the test workflow

in each increment

  • Risks can be mitigated early on
  • Working version of the software exists from the start
  • Variation: deliver partial versions to smooth the introduction of the new product in the client organization Managing Iteration and Incrementation
  • As regimented as the waterfall model because it IS the waterfall model applied successively Pros to the Code-and-Fix Model?
  • Easiest way to develop software Cons to the Code-and-Fix Model? No specifications o Maintenance nightmare o Most expensive way o No documentation! Advantages of Waterfall model? o Documentation o Maintenance is easier Disadvantages of Waterfall model? 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

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 o Evaluation o Planning of the next phase
  • Radial dimension - cumulative cost to date
  • Angular dimension - progress through the spiral Strengths of the Spiral Model o Easy to judge how much to test o No distinction is made between development and maintenance Weaknesses of the Spiral Model o For large-scale software only o For internal (in-house) software only What is Short History of Programming
  • Programming has evolved over time o Individual artistic -> Structured -> Modular -> Imperative -> Object- Oriented What is Individual Artistic Programming
  • A program was written by a single individual utilizing o Individual creativity o Infamous "goto" o "spaghetti" code o Assembly languages, FORTRAN, BASIC What is Modular Programming
  • Programs were constructed using modules o Each module has public and private parts Public parts are visible to everyone Private parts are visible only within the module o Either part can define variables, procedures, functions, and data types o Ada What is Imperative Programming
  • Programs are partitioned into subroutines o Information is exchanged between partitions by passing data into and out of them o High degree of coupling (inter-dependence of codes and/or data among subroutines/modules) o Poor cohesion (how code and data fit together) o ALGOL, Pascal, C What is Object-Oriented Programming?
  • An advanced programming paradigm o Encompasses a set of theories, standards, and methods that together 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

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. Collaborating Objects
  • This is a simulation model of computation o A program is a lattice of objects connected together according to identified relationships o Computing is achieved by passing messages among objects, delegating responsibilities for services to other objects, and providing services by exhibiting the appropriate behavior for a given message