What are the essential attributes of good software?
Dependability and security,
Efficiency and acceptability
What are the two fundamental types of software product?
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.
What is software engineering?
An engineering discipline concerned with all aspects of software production from
specification to system maintenance.
What are the four fundamental activities in software processes?
Software validation and
What are the 3 general issues that affect many different types of software?
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.
List 5 different types of software application.
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.
What software engineering fundamentals apply to all types of software systems?
Systems should be developed using a managed and understood development
b. Dependability and performance are key system characteristics.
c. Understanding and managing the software specification and requirements are
d. Effective use should be made of available resources.
What are three key characteristics of the engineering of web-based software engineering?
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.
What are the fundamental activities that are common to all software processes?
Software design and implementation
List the 3 generic process models that are used in software engineering?
The waterfall model
Reuse-oriented software engineering
Why are iterations usually limited when the waterfall model is used?
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.
What are the three benefits of incremental development, compared to the waterfall model?
(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
What are the development stages in reuse-based development?
System design with reuse
Development and integration
What are the principal requirements engineering activities?
Requirements elicitation and analysis
Why is it increasingly irrelevant to distinguish between software development and
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.
What are the advantages of using incremental development and delivery?
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
What are the 4 sectors in each loop in Boehm’s spiral model?
Risk assessment and reduction
Development and validation
. What are the six fundamental best practices in the RUP?
Develop software iteratively
Use component-based architectures
Visually model software
Verify software quality
Control changes to software
What are user requirements and system requirements?
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.
What is the distinction between functional and non-functional requirements?
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
List 3 types of non-functional requirement?
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.
What is the software requirements document?
The official document that defines the requirements that should be implemented by the
What are the main advantages of using a standard format to specify requirements?
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
Some automated processing is possible.
What are the principal stages of the requirements engineering process?
Requirements elicitation and analysis
Give 5 reasons why eliciting requirements is difficult?
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.
What should be included in a scenario?
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
What is a use-case?
A use-case identifies a typical interaction with a system and the actors (human or computer)
involved in that interaction.
What is ethnography and how is it used in requirements elicitation?
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.
What checks should be applied during requirements validation?
The verifiability of the requirements should be assessed.
List three requirements validation techniques?
. What is requirements management?
The process of managing changes to requirements during requirements specification and
after the system has gone into use.
What are the stages in the requirements change management process?
. Problem analysis and change specification
b. Change analysis and costing
c. Change implementation
What are important differences between software project management and other types of project
The product (software) is intangible.
There are no standard software processes
Large software projects are often one-off projects.
List 4 fundamental project management activities.
Reporting, Risk management,
What are three related categories of risk?
Suggest 4 risks that may threaten the success of a software project?
CASE tool underperformance,
. Give 2 examples of technology risks that may arise in a software project.
Technology: The system database cannot process as many transactions as expected;
Reused software components are defective.
What are the four critical factors in people management?
What are the different levels in the human needs hierarchy?
What factors might be considered when selecting people for a software development team?
Programming language experience,
Problem solving ability,
What are the key factors that influence the effectiveness of group communications?
The physical work environment,
The available communication channels
What estimates have to be produced by software project managers?
The effort required to complete each project activity,
The time required to complete each activity,
The total cost of each activity.
What factors should be considered when deciding on a price for software?
Cost estimate uncertainty,
Financial health of the company developing the software.
What is included in a quality plan and a validation plan?
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.
What are the principal activities in the project scheduling process?
Identify activity dependencies,
Estimate resources for activities,
Allocate people to activities,
Create project charts
What are the most important differences between agile planning and plan-based development?
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
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
Briefly describe two types of cost estimation techniques?
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.
What is the generic formula used in algorithmic cost modeling to compute the effort required to develop
Effort = SizeB
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.
What are the estimation models used in COCOMO II.?
The application composition model,
The early design model,
The reuse model,
The post-architecture model.
What are the four classes of attribute used to compute the multiplier M?
What perspectives may be used for system modelling?
An external perspective
An interaction perspective
A behavioural perspective
A structural perspective
What UML diagram types may be used to represent the essential features of a system?
Use case diagrams
What is described in a context model?
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
How are activity diagrams used in describing the context of use of a system?
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.
What are the principal components of a textual use-case description?
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
What is illustrated in a UML sequence diagram?
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.
How is generalization used to simplify the models of a system with many similar objects?
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
What is the basic assumption that underlies event-driven modeling?
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.
What are the claimed benefits of model-driven engineering?
Engineers can work at a high level of abstraction without concern for implementation
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.
0. What are the three types of abstract system model that arerecommended by the MDA
A computation-independent model (CIM)
A platform-independent model (PIM)
One or more platform-specific models (PSMs)
What are the advantage of explicitly designing and documenting a software architecture?
It improves stakeholder communications
It encourages a detailed analysis of the system
It helps with large-scale reuse.
What are the two ways in which an architectural model of a system maybe used?
As a means of facilitating discussion about the most appropriate architecture for a
As a means of documenting the architecture of an existing or an intended system.
List 4 fundamental questions that should be addressed in architectural design?
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?
What are the fundamental architectural views proposed in Krutchen’s 4+1 model?
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
What is an architectural pattern?
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.
What is the fundamental characteristic of a repository architecture?
All shared data is held in a central database that can be accessed by all sub-systems.
What is the most important advantage of a client-server architecture?
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
Briefly describe pipe and filter 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 passes through the sequence.
What are transaction-processing applications?
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.
What are the principal functions of the 4 layers in a generic information system archtiecture
(1) User interface
(2) User communications, authentication and authorization
(3) Information retrieval and modification
(4) Database and transaction management
What are the 5 key activities in an object-oriented design process?
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
What do you understand by the system context and interaction model?
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.
Briefly describe 3 approaches that may be used to identify object classes?
Grammatical analysis identifying nouns and verbs.
Identify tangible things in the application domain.
Use scenario-based analysis.
Why is it important to specify the interfaces of components that are being developed by a
software engineering team?
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.
What do Gamma et al. suggest are the four essential elements of a design pattern?
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
A statement of the consequences of applying the pattern.
How do design patterns contribute to reuse?
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.
What are the 4 levels at which software reuse is possible?
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.
What are the principal aims of software configuration management?
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
What are essential tools in a software development platform?
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
10. Briefly describe the idea of open-source development.
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.
What is the distinction between validation and verification?
Validation: Are we building the right product?
Verification: Are we building the product right?
What are the advantages of inspections over testing?
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.
Briefly describe the three principal stages of testing for a commercial software system
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.
What tests should be included in object class testing?
Tests for all operations in isolation,
Tests that set and access all object attributes,
Tests that force the object into all possible states.
What guidelines does Whittaker suggest for defect testing?
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.
What is an equivalence partition? Give an example.
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
What are the three important classes of interface errors?
Interface misunderstanding, Timing errors.
What should be the principal concerns of system testing?
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.
Briefly summarize the test-driven development process
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
What is scenario testing?
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.
What are the three types of user testing?
Alpha testing, where users work with the development team to test the software as it is
Beta testing where the software is released to selected users for testing before the formal
Acceptance testing, where customers test a system to check that it is ready for
Why is software evolution important?
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.
. What are the stages in the system evolution process and what triggers
The process is triggered by change requests. Process stages are:
Why might it sometimes be necessary to bypass the normal change
management system and make urgent changes to a system?
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.
What are Lehman’s Laws and how were they derived?
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.
What are the three different types of software maintenance and how is
effort distributed across these maintenance types?
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%).
What factors should be assessed to understand the relationshipbetween
a system and its environment?
The number and complexity of system interfaces,
The number of inherently volatile system requirements,
The business processes in which the system is used.
What process metrics might be used to assess maintainability?
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.
What are the principal systems re-engineering activities?
Source code translation,
Program structure improvement,
What are the strategic options for legacy system evolution?
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.
List four important factors used to assess applications for
Any four from:
Need essay sample on "cs blah blah blah"? We will write a custom essay sample specifically for you for only $ 13.90/page