Software engineering exam 1

Ace your homework & exams now with Quizwiz!

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


Related study sets

HESI Multiplication of Fractions

View Set

Swedish Words - Building vocabulary

View Set

Principles of Entrepreneurship - Ch 3

View Set

Chapter 16 Discharge Planning and Teaching

View Set

Pharmacology Chapter 41 Drug Therapy for Diabetes Mellitus

View Set

Principles of Management: Chapter 1

View Set

International Finance Final Exam

View Set