cs blah blah blah – Flashcards
Unlock all answers in this set
Unlock answersquestion
What are the essential attributes of good software?
answer
Maintainability, Dependability and security, Efficiency and acceptability
question
What are the two fundamental types of software product?
answer
Generic products that are designed to meet the needs of many different customers. Customized products designed to meet the specific needs of a single customer.
question
What is software engineering?
answer
An engineering discipline concerned with all aspects of software production from specification to system maintenance.
question
What are the four fundamental activities in software processes?
answer
Software specification Software development Software validation and Software evolution
question
What are the 3 general issues that affect many different types of software?
answer
Heterogeneity. Software may have to execute on several different types of system. Business and social change, which drives requirements for software change. Security and trust - our software systems have to be secure against external and internal threats so that we can trust those systems.
question
List 5 different types of software application.
answer
Any 5 from stand-alone products, interactive transaction-based systems, embedded control systems, batch processing systems, entertainment systems, systems for modeling and simulation, data collection systems, systems of systems.
question
What software engineering fundamentals apply to all types of software systems?
answer
Systems should be developed using a managed and understood development process. b. Dependability and performance are key system characteristics. c. Understanding and managing the software specification and requirements are important. d. Effective use should be made of available resources.
question
What are three key characteristics of the engineering of web-based software engineering?
answer
Software reuse is the principal approach for constructing web-based systems, requirements for those systems cannot be completely specified in advance, User interfaces are constrained by the capabilities of web browsers.
question
What are the fundamental activities that are common to all software processes?
answer
Software specification Software design and implementation Software validation Software evolution
question
List the 3 generic process models that are used in software engineering?
answer
The waterfall model Incremental development Reuse-oriented software engineering
question
Why are iterations usually limited when the waterfall model is used?
answer
The waterfall model is a document-driven model with documents produced at the end of each phase. Because of the cost of producing and approving documents, iterations and costly and involve significant rework. Hence they are limited.
question
What are the three benefits of incremental development, compared to the waterfall model?
answer
(a) The cost of accommodating changes to customer requirements is reduced. (b) It is easier to get customer feedback on development work that has been done. (c) More rapid delivery and deployment of useful software to the customer is possible.
question
What are the development stages in reuse-based development?
answer
Component analysis Requirements modification System design with reuse Development and integration
question
What are the principal requirements engineering activities?
answer
Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation
question
Why is it increasingly irrelevant to distinguish between software development and evolution?
answer
Few software systems are now completely new and a more realistic model of software development is of an iterative process that lasts for the lifetime of the software.
question
What are the advantages of using incremental development and delivery?
answer
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
question
What are the 4 sectors in each loop in Boehm's spiral model?
answer
Objective setting Risk assessment and reduction Development and validation Planning
question
. What are the six fundamental best practices in the RUP?
answer
Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software
question
What are user requirements and system requirements?
answer
User requirements are statements in a language that is understandable to a user of what services the system should provide and the constraints under which it operates. System requirements are more detailed descriptions of the system services and constraint, written for developers of the system.
question
What is the distinction between functional and non-functional requirements?
answer
Functional requirements define what the 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.
question
List 3 types of non-functional requirement?
answer
Product requirements, that specify or constrain the software's behaviour. Organisational requirements, are general requirements derived from policies and procedures in the customer's organization. External requirements, which cover all requirements derived from factors external to the system and its development process.
question
What is the software requirements document?
answer
The official document that defines the requirements that should be implemented by the system developers.
question
What are the main advantages of using a standard format to specify requirements?
answer
All requirements have the same format so are easier to read, The definition of form fields means that writers are less likely to forget to include information. Some automated processing is possible.
question
What are the principal stages of the requirements engineering process?
answer
Requirements elicitation and analysis Requirements specification Requirements validation
question
Give 5 reasons why eliciting requirements is difficult?
answer
Stakeholders don't know what they want Stakeholders 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.
question
What should be included in a scenario?
answer
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
question
What is a use-case?
answer
A use-case identifies a typical interaction with a system and the actors (human or computer) involved in that interaction.
question
What is ethnography and how is it used in requirements elicitation?
answer
Ethnography is an observational technique where an analyst spends a period of time observing work and noting how the participants carry out their tasks. It is particularly useful in identifying essential cooperation in work processes.
question
What checks should be applied during requirements validation?
answer
Validity checks Consistency checks Completeness checks Realism checks The verifiability of the requirements should be assessed.
question
List three requirements validation techniques?
answer
Requirements reviews Prototyping Test-case generation
question
. What is requirements management?
answer
The process of managing changes to requirements during requirements specification and after the system has gone into use.
question
What are the stages in the requirements change management process?
answer
. Problem analysis and change specification b. Change analysis and costing c. Change implementation
question
What are important differences between software project management and other types of project management?
answer
The product (software) is intangible. There are no standard software processes Large software projects are often one-off projects.
question
List 4 fundamental project management activities.
answer
Project planning, Reporting, Risk management, People management, Proposal writing
question
What are three related categories of risk?
answer
Project risks, Product risks Business risks
question
Suggest 4 risks that may threaten the success of a software project?
answer
staff turnover, management change, hardware unavailability, requirements change, specification delays, size underestimate, CASE tool underperformance, technology change, product competition...
question
. Give 2 examples of technology risks that may arise in a software project.
answer
Technology: The system database cannot process as many transactions as expected; Reused software components are defective.
question
What are the four critical factors in people management?
answer
Consistency, Respect, Inclusion, Honesty
question
What are the different levels in the human needs hierarchy?
answer
Physiological needs, Safety needs, Social needs, Esteem needs, Self-realization needs
question
What factors might be considered when selecting people for a software development team?
answer
Domain experience, Platform experience, Programming language experience, Problem solving ability, Educational background, Communication ability, Adaptability, Attitude, Personality.
question
What are the key factors that influence the effectiveness of group communications?
answer
Group size, Group structure, Group composition, The physical work environment, The available communication channels
question
What estimates have to be produced by software project managers?
answer
The effort required to complete each project activity, The time required to complete each activity, The total cost of each activity.
question
What factors should be considered when deciding on a price for software?
answer
Market opportunity, Cost estimate uncertainty, Contractual terms Requirements volatility Financial health of the company developing the software.
question
What is included in a quality plan and a validation plan?
answer
Quality plan: The quality procedures and standards that should be used in a project. Validation plan: The approach, resources and schedule used for system validation.
question
What are the principal activities in the project scheduling process?
answer
Identify activities, Identify activity dependencies, Estimate resources for activities, Allocate people to activities, Create project charts
question
What are the most important differences between agile planning and plan-based development?
answer
In plan-based development, a plan for the whole project is drawn up before the project starts and this plan is modified as more information becomes available during the project. In agile planning, planning is iterative and only the next iteration of the software is planned, often in detail. In plan-based development, the schedule is usually extended if problems occur; in agile planning, the system being developed is cut down so that the
question
Briefly describe two types of cost estimation techniques?
answer
Experience-based techniques where the estimate is based on a manager's experience of past projects and the application domain. Algorithmic cost modeling where a formulaic approach is used to estimate the development effort required, based on attributes of the software and the development team.
question
What is the generic formula used in algorithmic cost modeling to compute the effort required to develop some software?
answer
Effort = SizeB * M. Size = size of program; B is a constant between 1 and 1.5 that reflects attributes of the product and M is a multiplier that takes project and process attributes into account.
question
What are the estimation models used in COCOMO II.?
answer
The application composition model, The early design model, The reuse model, The post-architecture model.
question
What are the four classes of attribute used to compute the multiplier M?
answer
Product attributes, Computer attributes, Personnel attributes, Project attributes.
question
What perspectives may be used for system modelling?
answer
An external perspective An interaction perspective A behavioural perspective A structural perspective
question
What UML diagram types may be used to represent the essential features of a system?
answer
Activity diagrams Use case diagrams Sequence diagrams Class diagrams State diagrams
question
What is described in a context model?
answer
The immediate external environment of the system defining the system's context and the dependencies that a system has on its environment. The context model shows what is outside of the system boundary
question
How are activity diagrams used in describing the context of use of a system?
answer
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.
question
What are the principal components of a textual use-case description?
answer
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
question
What is illustrated in a UML sequence diagram?
answer
A sequence of interactions between the actors in a system's environment and the objects in the system itself. The sequence of interactions describes the implementation of a system feature or function.
question
How is generalization used to simplify the models of a system with many similar objects?
answer
Assuming that the similar objects have attributes and methods in common, these common attributes and methods are associated with a 'super-class' which generalizes 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
question
What is the basic assumption that underlies event-driven modeling?
answer
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.
question
What are the claimed benefits of model-driven engineering?
answer
Engineers can work at a high level of abstraction without concern for implementation details. Errors are reduced and the design and implementation process is speeded up. By using powerful generation tools, implementations of the same system can be automatically generated for different platforms.
question
0. What are the three types of abstract system model that arerecommended by the MDA method?
answer
A computation-independent model (CIM) A platform-independent model (PIM) One or more platform-specific models (PSMs)
question
What are the advantage of explicitly designing and documenting a software architecture?
answer
It improves stakeholder communications It encourages a detailed analysis of the system It helps with large-scale reuse.
question
What are the two ways in which an architectural model of a system maybe used?
answer
As a means of facilitating discussion about the most appropriate architecture for a system. As a means of documenting the architecture of an existing or an intended system.
question
List 4 fundamental questions that should be addressed in architectural design?
answer
Is there a generic application architecture that can be used? How will the system be distributed? What architectural style or styles are appropriate? How should the system be structured? What control strategy should be used?
question
What are the fundamental architectural views proposed in Krutchen's 4+1 model?
answer
A logical view that shows the key abstractions of the system. A process view that shows the interacting processes in the system A development view that shows how the system is decomposed for development A physical view that shows the distribution of software on the system hardware
question
What is an architectural pattern?
answer
A stylized abstract description of good practice in architectural design that has been tried and tested in different systems and environments. The pattern should include information on when it is and is not appropriate to use that architectural design.
question
What is the fundamental characteristic of a repository architecture?
answer
All shared data is held in a central database that can be accessed by all sub-systems.
question
What is the most important advantage of a client-server architecture?
answer
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 upgrade existing servers without disrupting the sys
question
Briefly describe pipe and filter architecture?
answer
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 passes through the sequence.
question
What are transaction-processing applications?
answer
Database-centered applications that process user requests for information and update the information in the database. They are organized so that transactions cannot interfere witheach other and the integrity of the database is maintained.
question
What are the principal functions of the 4 layers in a generic information system archtiecture
answer
(1) User interface (2) User communications, authentication and authorization (3) Information retrieval and modification (4) Database and transaction management
question
What are the 5 key activities in an object-oriented design process?
answer
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
question
What do you understand by the system context and interaction model?
answer
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.
question
Briefly describe 3 approaches that may be used to identify object classes?
answer
Grammatical analysis identifying nouns and verbs. Identify tangible things in the application domain. Use scenario-based analysis.
question
Why is it important to specify the interfaces of components that are being developed by a software engineering team?
answer
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.
question
What do Gamma et al. suggest are the four essential elements of a design pattern?
answer
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.
question
How do design patterns contribute to reuse?
answer
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.
question
What are the 4 levels at which software reuse is possible?
answer
The abstraction level where knowledge of successful abstractions is reused. The object level where objects classes and methods from libraries are reused. The component level where collections of objects are reused. The system level where entire application systems are reused.
question
What are the principal aims of software configuration management?
answer
To support system integration so that all developers can access the project code and documents in a controlled way, find out what components have been changed and compile and link components to create a system
question
What are essential tools in a software development platform?
answer
An integrated compiler and syntax-directed editing systems A language debugger Graphical editing tools for UML models Testing tools that can automatically run program tests Project support tools for code control
question
10. Briefly describe the idea of open-source development.
answer
In an open-source development, the source code of a software system is made publicly available and volunteers participate in the further development of the system. Any contributor to an open source development may fix bugs and add new features to a system.
question
What is the distinction between validation and verification?
answer
Validation: Are we building the right product? Verification: Are we building the product right?
question
What are the advantages of inspections over testing?
answer
Inspections can discover many errors. In testing, one error may mask another. Incomplete versions of a system can be inspected. Inspections can consider broader quality attributes as well as program defects.
question
Briefly describe the three principal stages of testing for a commercial software system
answer
Development testing, where the system is tested to discover bugs and defects Release testing where the system is tested to check that it meets its requirements User testing where the system is tested in the user's environment.
question
What tests should be included in object class testing?
answer
Tests for all operations in isolation, Tests that set and access all object attributes, Tests that force the object into all possible states.
question
What guidelines does Whittaker suggest for defect testing?
answer
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.
question
What is an equivalence partition? Give an example.
answer
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 example, all strings with less than 256 characters.
question
What are the three important classes of interface errors?
answer
Interface misuse, Interface misunderstanding, Timing errors.
question
What should be the principal concerns of system testing?
answer
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.
question
Briefly summarize the test-driven development process
answer
a. Identify increment of functionality required b. Design tests for this functionality and implement as executable programs. c. Run test along with other implemented tests. The test will fail. d. Implement the functionality and re-run the test. Iterate until the test works. e. Move on to implement the next chunk of functionality
question
What is scenario testing?
answer
Scenario testing is an approach to release testing where you write a story describing how a system may be used and design tests based on the sequence of events in the scenario.
question
What are the three types of user testing?
answer
Alpha testing, where users work with the development team to test the software as it is being developed. Beta testing where the software is released to selected users for testing before the formal system release Acceptance testing, where customers test a system to check that it is ready for deployment.
question
Why is software evolution important?
answer
Organizations are completely dependent on their software systems and they are critical business assets. They must invest in evolution so that these systems remain useful and maintain their value.
question
. What are the stages in the system evolution process and what triggers that process?
answer
The process is triggered by change requests. Process stages are: Impact analysis Release planning Change implementation System release
question
Why might it sometimes be necessary to bypass the normal change management system and make urgent changes to a system?
answer
To repair a serious system fault. To change the system to cope with unexpected changes in the system's operating environment. To cope with unexpected business change.
question
What are Lehman's Laws and how were they derived?
answer
Lehman's 'laws' are a set of hypothesis which, it is claimed, set out invariants for system change. They were derived from studies of the growth and evolution of a number of large software systems.
question
What are the three different types of software maintenance and how is effort distributed across these maintenance types?
answer
Maintenance to repair software faults (17%), Maintenance to adapt the software to a different environment (18%), Maintenance to add to or modify the system's functionality (65%).
question
What factors should be assessed to understand the relationshipbetween a system and its environment?
answer
The number and complexity of system interfaces, The number of inherently volatile system requirements, The business processes in which the system is used.
question
What process metrics might be used to assess maintainability?
answer
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.
question
What are the principal systems re-engineering activities?
answer
Source code translation, Reverse engineering, Program structure improvement, Program modularization, Data re-engineering
question
What are the strategic options for legacy system evolution?
answer
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.
question
List four important factors used to assess applications for evolution.
answer
Any four from: Understandability, Documentation, Data, Performance, Programming language, Configuration management, Test data, Personnel skills