Software Engineering Fundamentals: Questions and Answers, Exams of Information Technology

A series of questions and answers related to fundamental concepts in software engineering. It covers topics such as software attributes, types of software products, software engineering activities, and process models. A basic understanding of key principles and practices in software development.

Typology: Exams

2024/2025

Available from 03/08/2025

EXAMGLADIATOR
EXAMGLADIATOR 🇬🇧

3

(2)

4.6K documents

1 / 45

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CP3407
Acceptability, Maintainability, Dependability and Security, Efficiency - correct
answer What are the essential attributes of good software?
Generic Products - meet the needs of many customers/Customised Products -
meet the needs of a single customer - correct answer What are the two
fundamental types of software products?
An engineering discipline concerned with all aspects of software production
from specification to system maintenance. - correct answer What is
software engineering?
Specification, Development, Validation, Evolution - correct answer What
are the fundamental activities in software processes?
Computer Science - theories and methods of computers and software
systems
Software Engineering - the practice of software production - correct answer
What is the distinction between computer science and software
engineering?
Heterogeneity - able to operate on several types of system
Business and Social Change - drives requirement for software change
Security and Trust - have to be secure against external and internal threats so
that we can trust those systems
Scale - software may have to be developed across a range of scales (i.e
mobile scale to web scale apps) - correct answer What are four general
issues that affect many different types of software?
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d

Partial preview of the text

Download Software Engineering Fundamentals: Questions and Answers and more Exams Information Technology in PDF only on Docsity!

CP

Acceptability, Maintainability, Dependability and Security, Efficiency - correct answer ✔What are the essential attributes of good software? Generic Products - meet the needs of many customers/Customised Products - meet the needs of a single customer - correct answer ✔What are the two fundamental types of software products? An engineering discipline concerned with all aspects of software production from specification to system maintenance. - correct answer ✔What is software engineering? Specification, Development, Validation, Evolution - correct answer ✔What are the fundamental activities in software processes? Computer Science - theories and methods of computers and software systems Software Engineering - the practice of software production - correct answer ✔What is the distinction between computer science and software engineering? Heterogeneity - able to operate on several types of system Business and Social Change - drives requirement for software change Security and Trust - have to be secure against external and internal threats so that we can trust those systems Scale - software may have to be developed across a range of scales (i.e mobile scale to web scale apps) - correct answer ✔What are four general issues that affect many different types of software?

Stand-alone products Interactive transaction-based systems Embedded Control System Batch Processing Systems Entertainment Systems - correct answer ✔List five different types of software application Software reuse is the principle approach for constructing web-based systems Requirements for those systems can not be completely specified in advance A service orientated approach is usually used for system construction - correct answer ✔What are three key characteristics of the engineering of web based software engineering? Systems should be developed using a managed and understood development process Dependability and performance are key system characteristics Understanding and managing the software specification are important Effective use should be made of available resources - correct answer ✔What software engineering fundamentals apply to all types of software systems? A set of principles that set out in a general way, standards of expected behaviour for professional software engineers - correct answer ✔What is a software engineering code of ethics? The Waterfall Model Incremental Development

Early delivery of critical functionality to the customer Early increments serve as prototypes to explore requirements Lower risk of overall project failure More extensive testing of critical customer functionality - correct answer ✔What are the advantages of using incremental development delivery? Process maturity approach, which has focused on improving process and project management and introducing good software engineering practice. Agile approach, which has focused on iterative development and reducing software process overhead. - correct answer ✔What are two different approaches to process improvement and change that have been proposed? Initial Managed Defined Quantitatively Managed Optimising - correct answer ✔What are the identified levels in the SEI's capability model? The process of specification, design and implementation are inter-leaved. The system is developed and delivered as a series of increments or versions. Extensive tool support is used to support development process. - correct answer ✔What are the shared characteristics of different agile methods of software development? Small and medium-sized software product development where the specification is controlled by the software development company.

Custom software development in an organisation where there is clear commitment from customers to be come involved in the development process.

  • correct answer ✔For what types of system are agile approaches to development particularly likely to be successful? Customer Involvement Incremental Delivery People not process Embrace Change Maintain Simplicity - correct answer ✔List the 5 principles of agile methods? Is an incremental delivery strategy realistic? What type of system is being adopted? What is the expected system lifetime? How is the development team organised? - correct answer ✔List 4 questions that should be asked when deciding whether or not to adopt an agile method of software development? Refactoring, Pair Programming, Test First Development - correct answer ✔Name 3 important agile techniques that were introduced in extreme programming? When a system feature is identified, the tests of code implementing that feature are written before the code. Tests are automated and all tests are run when a new increment is added. - correct answer ✔What is Test First Development? Programmers may take short cuts when developing tests so that the system tests are incomplete.

Function requirements define what a system should do. Non-functional requirements are not directly concerned with specific system functions but specify required system properties or place constraints on the system or its development process. - correct answer ✔What is the distinction between function and non-functional requirements? Product requirements, that specify or constrain the software's behaviour. Organisational requirements, are general requirements derived from policies and procedures in the customer's organisation. External requirements, which cover all requirements derived from factors external to the system and its development process. - correct answer ✔List three types of non-functional requirement? Stakeholders don't know what they want. Stakeholder use their own language that requirements engineers may not understand. Stakeholder requirements may conflict. Political factors may influence the system requirements. The business environment may change during elicitation. - correct answer ✔Give 5 reasons why eliciting requirements is difficult? Ethnography is an observational technique where an analyst spends a period of time observing work and noting how participants carry out their tasks. It is particularly useful in identifying essential cooperation in the work processes. - correct answer ✔What is ethnography and how is it used in requirements elicitation? A description of what's expected when the scenario starts. A description of the normal flow of events.

A description of what can go wrong and how to handle it. Information about concurrent activities. A description of the system state when the scenario finishes. - correct answer ✔What information should be included in a scenario? 'shall' normally indicates a mandatory requirement. 'should' normally indicates a desirable but not essential requirement. - correct answer ✔What is the distinction between the terms 'shall; and 'should' in a user requirement document, which is written in natural language? All requirements have the same format so are easier to read. The definition of the form fields means that writers are less likely to forget to include information. Some automated processing is possible. - correct answer ✔What are the main advantages of using a standard format to specify requirements? A use-case identifies a typical interaction with a system and the actors (human or computer) involved in that interaction. - correct answer ✔What is a use case? Managers user the requirement document to plan a bid for the system development contract and to plan the system development process. System test engineers use the requirements document to develop validation tests for the system. - correct answer ✔How do managers and test engineers use a system requirements document? Validity Checks Consistency Checks Realism Checks

State diagrams - correct answer ✔What UML diagram types do you need to represent the essential features of a system? the immediate external environment of the system showing the system's context and the dependencies that a system has no other systems and processes in its environment. The context model shows what is outside the system boundary and so does not need to be implemented. - correct answer ✔What is the described context model? Activity diagrams may be used to describe the business processes in which the system is used and the other systems which are also used in these processes. - correct answer ✔How are the activity diagrams used in describing the context of use of a system? The actors involved. A description of the interactions. The data that is exchanged. The stimulus that triggers the use case. The response of the system. Comments and other information. - correct answer ✔What are the principal components of a textual use-case description? A sequence of interactions between actors in system's environment and the objects in the system itself. The sequence of interactions between objects documents one view of the implementation of a system feature or function. - correct answer ✔What is illustrated in a UML sequence diagram? Assuming that the similar objects have attributes and methods in common, these common attributes and methods are associated with a 'super-class' which generalises all of the objects sharing these attributes/methods.

The specific object classes only declare the attributes/methods specific to that class and they inherit the general attributes/methods from the super-class. - correct answer ✔How is generalisation used to simplify the models of a system with many similar objects? That the system can be represented as a model with a finite number of discrete states and external and internal events trigger a transition from one state to another. - correct answer ✔What is the basic assumption that underlies event-driven modelling? Engineers can at a high level of abstraction without concern for implementation details. Errors are reduced and the design and implementation process is sped up. By using powerful generation tools, implementations of the same system can be automatically generated for different platforms. - correct answer ✔What are the claimed benefits of model-driven engineering? A computation-independent model (CIM) A platform-independent model (PIM) One or more platform-specific models (PSMs) - correct answer ✔What are the three types of abstract system model that are recommended by the MDA method? It improves stakeholder communications. It encourages a detailed analysis of the system. It helps with large-scale reuse. - correct answer ✔What are the advantages of explicitly designing and documenting a software architecture? As a means of facilitating a discussion about the most appropriate architecture for a system.

This is a distributed architecture so that it is possible to provide services on different computers. It is easy to add a new server or upgrading existing servers without disrupting the system. - correct answer ✔What is the most important advantage of a client-server architecture? A system is decomposed into a set of functional transformations that consume inputs and produce outputs. Data flows from one function to another (the pipeline) and is transformed as it passed through the sequence. - correct answer ✔Briefly describe pipe and filter architecture? Database centred applications that process user requests for the information and update the information in the database. They are organised so that transactions cannot interfere with each other and the integrity of the database is maintained. - correct answer ✔What are transaction-processing applications?

  1. User Interface
  2. User communications, authentication and authorisation.
  3. Information retrieval and modification.
  4. Database and transaction management. - correct answer ✔What are the principal functions of the 4 layers in a generic information system architecture? Understand and define the context and use of the system. Design the system architecture. Identify the principal objects in the system. Develop design models. Specify object interfaces. - correct answer ✔What are the 5 key activities in a object-orientated design process?

The system context is a static model of the other systems in the environment of the system being designed. An interaction model is a dynamic model that describes how the system being designed interacts with its environment. - correct answer ✔What do you understand by the system context and interaction model? Grammatical analysis identifying nouns and verbs. Identifying tangible thing in the application domain. Use scenario-based analysis. - correct answer ✔Briefly describe 3 approaches that maybe used to identify object classes? Interfaces have to be specified so that objects and sub-systems can be designed in parallel. Once an interface has been specified, the developers of other parts of the system may assume that the interface will be implemented. - correct answer ✔Why is it important to specify the interfaces of components that being developed by a software engineering team? A meaningful name. A description of the problem and when the pattern can be applied. A solution description, which shows the components in the solution and their relationships. A statement of the consequences of applying the pattern. - correct answer ✔What do Gamma et al. suggest are four essential elements of a design pattern? Patterns and pattern languages are ways to describe best practices, good designs and capture experience in a way that is possible for others to reuse. - correct answer ✔How do design patterns contribute to reuse? The abstraction level where knowledge of successful abstraction is reused.

Incomplete versions of a system can be inspected. Inspections can consider broader quality attributes as as program defects. - correct answer ✔What are the advantages of inspections over testing? Development testing, where the system is tested to discover bugs and defects. Release testing where the system is tested to check that it meet meets its requirements. User testing where the system is test in the user's environment. - correct answer ✔Briefly describe the three principal stages of the testing for a commercial software system. Tests for all operations in isolation. Tests that set and access all object attributes. Tests that force the object into all possible states. - correct answer ✔What tests should be included in object class testing? A class of inputs or outputs where it is reasonable to expect that the system will behave the same way for all members of the class. For all example all strings with less than 256 characters. - correct answer ✔What is an equivalence partition? Give an example. Chose inputs that force all error messages to be generated. Design inputs that might cause buffers to overflow. Repeat the same input numerous times. Force invalid outputs to be generated. Force computation results to be too large or too small. - correct answer ✔What guidelines does Whittaker suggest for defect testing?

Interface misuse Interface misunderstanding Timing Errors - correct answer ✔What are the three important classes of interface errors? Testing the interactions between the components and objects that make up the system. Testing reusable components and systems to check that they work as expected when integrated into the system. - correct answer ✔What should be the principal concerns of the system testing?

  1. Identify increment of functionality required.
  2. Design tests for this functionality and implement as executable programs.
  3. Run test along with other implemented test. The test will fail.
  4. Implement the functionality and re-run the test. Iterate until the test works.
  5. Move on to implement the next chunk of functionality. - correct answer ✔Briefly summarise the test driven development process. Your understanding of the problem/requirements is improved. Code coverage is improved as every code segment has at least one associated test. Regressing testing costs are reduced. Debugging is simplified as the fault is associated with a particular test. Tests act as a form of system documentation. - correct answer ✔What are the most important benefits of test driven development? Increasing the load on a system beyond its design limits to check how the system performs in this situation. This tests the failure behaviour of the

System Hardware Support Hardware Application Software Application Data Business Processes Business policies and rules - correct answer ✔What are the fundamental elements of a legacy system? There is rarely a complete specification on the legacy system. Business processes maybe tightly integrated with the legacy system and so have to change with a new system. Business rules may be embedded in the code of the legacy system but not externally documented. New software development is inherently risky and may go over budget. - correct answer ✔Why is it expensive and risky to replace legacy systems with new systems? Scrap the system completely. Leave the system unchanged and continue maintenance. Re-engineer the system to improve maintainability. Replace all or part of the system with a new system. - correct answer ✔What are the strategic options for legacy system evolution Maintenance to repair software (24%) Maintenance to adapt software to a different environment (19%)

Maintenance to add to or modify the system's functionality (58%) - correct answer ✔What are the three different types of software maintenance and how is effort distributed across these maintenance types? The number and complexity of system interfaces. The number and inherently volatile system requirements. The business processes in which the system is used. - correct answer ✔What factors should be assessed to understand the relationship between a system and its environment? Number of requests for corrective maintenance. Average time required for impact analysis. Average time taken to implement a change request. Number of outstanding change requests. - correct answer ✔What process metrics might be used to assess maintainability? Source code translation Reverse engineering Program structure improvement Program modularisation Data re-engineering - correct answer ✔What are the principal systems re- engineering activities? System failures affect a large number of people. System failure costs may be very high. Undependable systems may cause information loss. - correct answer ✔Give three reasons why a system's dependability is more important than its detailed functionality.