Software engineering exam 1
What is the distinction between the terms' shall' and 'should' in a user requirements document, which is written in natural language?
'Shall' normally indicates a mandatory requirement 'Should' indicates a desirable but not essential requirement.
What are the principal requirements engineering activities?
Requirements elicitation and analysis, Requirements specification, Requirements validation
List 3 generic process models that are used in software engineering?
The waterfall model, Incremental development, Integration and configuration
List the 5 principles of agile methods
Customer involvement, Incremental delivery, People not process, Embrace change, Maintain simplicity.
What are the development stages in integration and configuration?
Discover and analyse reusable software systems or components Requirements modification System design with reuse Development and integration
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 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.
Why is it increasingly irrelevant to distinguish between software development and evolution?
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 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 development process.
What are the two fundamental types of software product?
Generic products that are designed to meet the needs of many different customers. Customised products designed to meet the specific needs of a single customer
What are the 4 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. Scale - Software may have to be developed across a range of scales e.f. small systems in portable devices to Internet-scale systems
How do managers and test engineers use a system requirements document?
Managers use the requirements 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.
List three requirements validation techniques?
1. Requirements reviews 2. Prototyping 3. Test-case generation
What information should be included in a scenario.
1. A description of what's expected when the scenario starts 2. A description of the normal flow of events 3. A description of what can go wrong and how to handle it 4. Information about concurrent activities 5. A description of the system state when the scenario finishes
What are the principal stages of the requirements engineering process?
1. Requirements elicitation and analysis 2. Requirements specification 3. Requirements validation
Give 5 reasons why eliciting requirements is difficult?
1. Stakeholders don't know what they want 2. Stakeholders use their own language that requirements engineers may not understand. 3. Stakeholder requirements may conflict 4. Political factors may influence the system requirements 5. The business environment may change during elicitation
What checks should be applied during requirements validation?
1. Validity checks 2. Consistency checks 3. Completeness checks 4. Realism checks 5. The verifiability of the requirements should be assessed.
What is a software engineering code of ethics?
A set of principles that set out, in a general way, standards of expected behaviour for professional software engineers
What is a Scrum sprint?
A short (3-4 weeks) planning unit in which work to be done is assessed, features are selected for development, the software is implemented and delivered to system stakeholders
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 are the essential attributes of good software?
Acceptability , maintainability, dependability and security,and efficiency
Why has the Scrum agile method been widely adopted in preference to methods such as XP?
Agile methods such as XP adopt an informal approach to planning and control that is inconsistent with organizational management policies. Scrum was designed as a managed method and provides a framework for project organization and external visibility of work done
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 mean that writers are less likely to forget to include information Some automated processing is possible.
What is software engineering?
An engineering discipline concerned with all aspects of software production from specification to system maintenance.
What is the distinction between computer science and software engineering?
Computer science is concerned with theories and methods of computers and software systems; software engineering is concerned with the practice of software production
What are the four fundamental activities in software processes?
Software specification, software development, software validation and software evolution.
What are the identified levels in the SEI's Capability Maturity Model
Initial, Managed, Defined, Quantitatively managed, Optimizing
List 4 questions that should be asked when deciding whether or not to adopt an agile method of software development.
Is an incremental delivery strategy realistic? What type of system is being developed? What is the expected system lifetime? How is the development team organized? Is the system subject to external regulation? How large is the system that is being developed?
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 are the possible problems of test-first development?
Programmers may take short-cuts when developing tests so that the system tests are incomplete. Some tests can be difficult to write incrementally. It is difficult to estimate the completeness of a test set.
What are the stages in the requirements change management process?
a. Problem analysis and change specification b. Change analysis and costing c. Change implementation
What are the barriers to introducing agile methods into large companies?
Project managers may be reluctant to accept the risks of a new approach. The established quality procedures in large companies may be incompatible with the informal approach to documentation in agile methods. The existing teams may not have the high level of skills to make use of agile methods. There may be cultural resistance if there is a long history of plan-driven development in the company.
Name three important agile techniques that were introduced in extreme programming?
Requirements expressed as scenarios or user stories, Refactoring, Pair programming, Test-first development
For what types of system are agile approaches to development particularly likely to be successful?
Small and medium-sized software product development where the specification is controlled by the software development company. Custom software development in an organization where there is a clear commitment from customers to become involved in the development process
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, a service-oriented approach is usually used for system construction
What are the fundamental activities that are common to all software processes?
Software specification Software design and implementation Software validation Software evolution
What software engineering fundamentals apply to all types of software systems?
Systems should be developed using a managed and understood development process. Dependability and performance are key system characteristics Understanding and managing the software specification and requirements are important. Effective use should be made of available resources
What are the three benefits of incremental development, compared to the waterfall model?
The cost of accommodating changes to customer requirements is reduced. It is easier to get customer feedback on development work that has been done. More rapid delivery and deployment of useful software to the customer is possible.
What are the two different approaches to process improvement and change that have been proposed?
The process maturity approach, which has focused on improving process and project management and introducing good software engineering practice. The agile approach, which has focused on iterative development and reducing software process overheads
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 shared characteristics of different agile methods of software development?
The processes 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 the development process.
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 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 test-first development?
When a system feature is identified, the tests of the code implementing that feature are written before the code. Tests are automated and all tests are run when a new increment is added to the system
List 5 different types of software application
stand-alone products, interactive transaction-based systems, embedded control systems, batch processing systems, entertainment systems, systems for modelling and simulation, data collection systems, systems of systems