Software Engineering Test 1

Ace your homework & exams now with Quizwiz!

What are the shared characteristics of different approaches to rapid software development?

"The processes of specification, design, and implementation are inter-leaved." User interfaces are often developed using an interactive development system that supports rapid UI development. The system is developed and delivered as a series of versions

What 3 characteristics does software dependability require?

Reliability Security (stopping access to malicious users) Safety (system failure should not cause physical or economic harm)

List the 3 generic process models that are used in software engineering?

The waterfall model Reuse-oriented software engineering Incremental development

How many things can our short term memory accommodate:

~7 things

List 5 different types of software application

-stand-alone -interactive transaction-based -batch processing systems -systems for modeling and simulation -embedded control systems -entertainment systems -data collection systems -systems of systems

Four Ethics of Software Engineering

Confidentiality Competence (not misrepresenting skills) Intellectual property rights Computer misuse

What does software engineering place importance on?

Cost effective development

Paradigm shift of the ~1970s

Current techniques did not scale up. Established the discipline of software engineering.

What software engineering fundamentals apply to all types of software systems?

Dependability and performance are key system characteristics. Effective use should be made of available resources. Systems should be developed using a managed and understood development process. Understanding and managing the software specification and requirements are important.

What two basic actions does a developer have implementing a system?

Developing a program/programs and/or configuring an application system

What are characteristics of throw-away prototypes?

Discarded after development May be impossible to meet all non-functional requirements Structure is degraded through rapid change Not meet normal standards

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 More extensive testing of critical customer functionality Lower risk of overall project failure

What are the claimed benefits of model-driven engineering?

Engineers can work 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

Why is it increasingly irrelevant to distinguish between software development and evolution?

Few software systems are now completely new. A more realistic model of software development is of an iterative process that lasts for the lifetime of the software.

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 benefits of prototyping?

Improved system usability Closer to requirements Improved design Improved maintainability Reduced dev effort

What are the three benefits of incremental development, compared to the waterfall model?

It is easier to get customer feedback on development work that has been done. The cost of accommodating changes to customer requirements is reduced. More rapid delivery and deployment of useful software to the customer is possible.

What is described in a context model?

It shows what is outside of the system boundary The immediate external environment of the system defining the system's context The forecasted external environment of the system The dependencies that a system has on its environment

What are the essential attributes of good software?

Maintainability Acceptability Dependability Efficiency Security

Paradigm shift of ~2000

New lifespan models emphasize software evolution. Iterative and Agile methods are adopted.

Basic process activities

specification development validation evolution

What are the advantages of incremental delivery?

-Customer value delivered with each increment -Early increments act as prototypes to help shape later requirements -Lower failure risk -Highest priority system receives most testing

What are the two main approaches to process improvement?

-process maturity approach (improving process and project management, introducing good software engineering practice) -agile approach (iterative dev and reduction of overhead)

What are the 5 levels of the SEI capability maturity method?

-Initial: Uncontrolled -Repeatable: Management procedures defined and used -Defined: Process management procedures and strategies -Managed: Quality management strategies defined and used -Optimizing: process improvement strategies defined and used

What are the three steps of the process improvement cycle?

-Measure -Analyze -Change

What are the problems with incremental delivery?

-Most systems rely on basic facilities used by different parts of the system -Specification of iterative processes are developed along with software which conflicts with many organizations' requirement for a complete system specification

Approaches for dealing with complexity:

-Simplified models -Decomposition (splitting software into smaller parts) -Understand software as-needed (only what you need for current task) -Abstraction (e.g. class hierarchy)

What are the main characteristics of incremental delivery?

-System broken down into deliverable increments -User requirements are prioritized -Highest priority requirements are in earlier increments -Requirements for an increment frozen when development for that increment begin

What are three process metrics that can be taken to measure the process improvement?

-Time to complete -Resources completed -Number of occurrences of an event

What may process improvement aim to accomplish?

-increase software quality -reduce costs -speed up development

When did software separate from hardware?

1950s (became individual product and a distinct technology from computer hardware)

What percent of requirements will change during the development?

30%

US Software Industry

7.1% of GDP 11.6% private sector 100,000 software & IT service companies 2 million people employed in growing industry

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

How is software discontinuous?

A small change in in put can result in huge change of output (i.e. right vs. wrong password gives access to none or all of the features of a system)

Advantages/Disadvantages of software reuse:

Advantages: Reduced costs and risk due to less software being developed from nothing. Faster delivery and deployment of the system Disadvantages: Compromise of requirements is likely. No control over evolution of reused system elements

What is software engineering?

An engineering discipline concerned with all aspects of software production from specification to system maintenance.

What perspectives may be used for system modelling?

An interaction perspective A structural perspective An external perspective A behavioral perspective

What 4 characteristics does software efficiency require?

Avoiding resource wastefulness Responsiveness Processing time Memory utilization

Why are iterations usually limited when the waterfall model is used?

Because of the cost of producing and approving documents, iterations are costly and involve significant rework. Hence they are limited Iterations usually lead back to the drawing board.

What are the 3 general issues that affect many different types of software?

Business and social change, which drives requirements for software change. Heterogeneity - Software may have to execute on several different types of system. Security and trust - our software systems have to be secure against external and internal threats so that we can trust those systems.

Why is change inevitable in all large software projects?

Business changes New technologies Changing platforms

What are strategies to reduce the costs of rework?

Change anticipation Change tolerance

How is generalization used to simplify the models of a system with many similar objects?

Common attributes and methods are associated with a super-class Specialized classes implement specific behavior while inheriting common attributes/methods from a super class

What are the development stages in reuse-based development?

Component analysis System design with reuse Requirements modification Development and integration

What are the three stages of testing?

Component testing System testing Acceptance testing

What are the distinctions 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 basic assumptions that underlie event-driven modeling?

Internal and external events trigger a transition from one state to another The system can be represented as a model with a finite number of discrete states.

List some questions that should be asked when deciding whether or not to adopt an agile method of software development.

Is the system subject to external regulation? How large is the system that is being developed? What type of system is being developed? How is the development team organized? What is the expected system lifetime? Is an incremental delivery strategy realistic?

Briefly describe the advantages of pair programming.

It helps support refactoring. It serves as an informal code review process. It supports the idea of common ownership and responsibility for the code.

What are the types of abstract system model that are recommended by the MDA method?

One or more platform-specific models Platform-specific model Platform-independent model Computation-independent model

List the main principles of agile methods.

People not process Maintain simplicity Incremental delivery Customer involvement Embrace change

What are the 4 sectors in each loop in Boehm?s spiral model?

Planning Risk assessment and reduction Objective setting Development and validation

Complete the definition of a "Software engineering code of ethics" A set of *** that set out, in a general way, *** of expected *** for professional ***.

Principals Standards Behavior Software Engineers

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.

ACM/IEEE Code of Ethics Principles

Public: Acting consistently with public interest Client and employer: Acting in the best interest of their client and employer that is still consistent with public interest Product: Making sure their products meet the highest professional standards. Judgment: Maintaining integrity and independence in their professional judgment. Management: Managers and leaders should promote an ethical approach to management and maintenance of software development. Profession: Advancing the integrity and reputation of the profession consistent with public interest. Colleagues: Being fair and supportive of colleagues Self: Participate in lifelong learning regarding their profession and promote an ethical practice of the profession.

What are three key characteristics of the engineering of web-based software engineering?

Requirements for those systems cannot be completely specified in advance. Software reuse is the principal approach for constructing web-based systems. User interfaces are constrained by the capabilities of web browsers.

What are the four main activities in the requirements engineering process?

Requirements validation Requirements elicitation and analysis Requirements specification Feasibility study

What are the costs of change?

Rework (ex. reanalyzing requirements) and reimplementing new functionality

For what types of system are agile approaches to development particularly likely to be successful?

Small and medium-sized software product development. Custom software development in an organization where there is a clear commitment from customers to become involved in the development process

What are the four fundamental activities in software processes?

Software development Software evolution Software validation Software specification

What are the fundamental activities that are common to all software processes?

Software evolution Software design and implementation Software specification Software validation

What are some characteristics of a Scrum sprint?

Software is implemented and delivered to system stakeholders. Features are selected for development. A short planning unit in which work to be done is assessed.

Types of reusable software

Stand-alone application systems (configured for use in a particular environment; COTS) Collections of objects in a package with a component framework (such as .NET or J2EE) Web services

What UML diagram types may be used to represent the essential features of a system?

State diagrams Use case diagrams Class diagrams Activity diagrams Sequence diagrams

What are two ways to cope with changing requirements

System prototyping (supports change anticipation) Incremental delivery (supports change avoidance and change tolerance)

What are some very important characteristics of extreme programming?

Test-first development Pair programming Requirements expressed as scenarios

What is test-first development?

Tests are automated and all tests are run when a new increment is added to the system. When a system feature is identified, the tests of the code implementing that feature are written before the code.

What are the six fundamental best practices in the RUP?

Use component-based architectures Control changes to software Visually model software Manage requirements Develop software iteratively Verify software quality

Software Invisibility

The behavior of software is visible, but not it's properties. Use of visualization or signification to deal with invisibility.

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 barriers to introducing agile methods into large companies?

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. Project managers may be reluctant to accept the risks of a new approach

What is software design and implementation

The process of converting the system specification into executable system

What is software specification?

The process of establishing what services are required and the constraints on the system's operation and development

What are the principal components of a textual use-case description?

The response of the system The data that is exchanged Comments and other information The actors involved The stimulus that triggers the use case The description of the interactions

What are the principal components of a textual use-case description?

The stimulus that triggers the use case The actors involved The data that is exchanged The response of the system Comments and other information The description of the interactions

How are activity diagrams used in describing the context of use of a system?

They are used to describe the business processes in which the system is used and the other systems which are also used in these processes.

What is the purpose of verification and validation?

To show that a system conforms to its specification and meets requirements of the system customer

Characteristics of Internet software engineering

Trend towards web-based systems over local systems Web services allow application functionality accessed over the web Cloud computer: An approach to the provision of computer services where applications run remotely on the cloud. Users pay according to use. Web-based systems are complex distributed systems but fundamental principles of software engineering are still applicable.

What 3 characteristics does software acceptability require?

Understandable Usable Compatible

List the 4 activities during the design process

architectural design database design interface design component selection and design

The requirements engineering process

elicitation (the practice of collecting the requirements of a system from users, customers and other stakeholders) analysis of requirements specification of requirements (defining requirements in detail) validation

Real software processes are interwoven sequences of activities that are

technical collaborative managerial


Related study sets

Basic and Optional Parts of a Professional Business Letter

View Set

Lecture 7: Historical Development of US Health Insurance

View Set

NCLEX Review Study Guide (Summer 2022)

View Set

Chapter 8: Concepts and Generic Knowledge

View Set

Chemistry Semester 2 Final Review

View Set