





































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
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
1 / 45
This page cannot be seen from the preview
Don't miss anything!






































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.
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?
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?
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.