COSC 319 Exam 1

Lakukan tugas rumah & ujian kamu dengan baik sekarang menggunakan Quizwiz!

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

Fewer systems are 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 two fundamental types of software products?

Generic products, Customized projects

What are the four generic issues that affect many different types of software?

Heterogeneity, Business and Social Change, Security and Trust, Scale

What are the essential attributes of good software?

Maintainability, Dependability and Security, Efficiency, Acceptability

Name 3 important agile techniques that were introduced in extreme programming.

1. Test-First development 2. Pair programming 3. Requirements expressed as scenarios

What are the two different approaches to process improvement and change that have been proposed?

> The Process Maturity Approach > The Agile Approach

List the 5 principles of agile methods.

1. Customer involvement 2. Incremental delivery 3. People not process 4. Embrace change 5. Maintain simplicity

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

1. Is the system subject to external regulation? 2. How large is the system that is being developed? 3. How is the development team organized? 4. Is an incremental delivery strategy realistic?

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

1. Software reuse 2. Incremental and agile development 3. Rich interfaces

List 3 generic process models that are used in software engineering.

1. The Waterfall Model 2. Incremental Development 3. Integration and Configuration

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

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

What are the advantages of using incremental development and delivery?

> Customer call can be delivered with each increment so system functionality is available earlier > Early increments act as a prototype to help elicit requirements for later increments > Lower risk of overall project failure > The highest priority system services tend to receive the most testing

What are the identified level in the SEI's Capability Maturity Model?

> Initial > Repeatable > Defined > Managed > Optimizing

What are the development stages in integration and configuration?

> Requirements Specification > Software Delivery and evaluation > Requirements refinement > Application system configuration > Component adaption and integration

What are the principle requirements engineering activities?

> Requirements elicitation and analysis > Requirements Specification > Requirements Validation

For what type of systems 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 possible problems of test-first development?

> Some tests can be difficult to write incrementally > Difficulty to estimate the completeness of a test set > Programmers may take shortcuts

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

> Specification > Design and Implementation > Validation > 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 important for all types of systems. >Understanding and managing the software specification and requirements (what the software should do) are important. > Where appropriate, you should resume software that has already been developed rather than write new software.

What are the barriers to introducing agile methods into large companies?

> 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 are the shared characteristics of different agile methods of software development?

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

What is a scrum sprint?

A scrum sprint is a planning unit where the workload is assessed and features are selected to be developed and then the software is implemented.

What is a software engineering code of ethics?

A set of eight principles that are expected behavior and decisions to be followed by software engineers to be ethical.

What is the distinction between computer science and software engineering?

Computer Science focuses on theory and fundamentals; Software Engineering is concerned with the practicalities of developing and delivering useful software.

Why are iteration usually limited when the waterfall method is used?

Inflexible partitioning of the project into distinct stages make it difficult to respond to changing customer requirements.

Why has the scrum agile method been widely adopted in preference to methods such as XP?

Scrum agile focuses on iterative development

What is Software Engineering?

Software Engineering is an engineering disciple that is concerned with all aspects of software products from the early stages of system specification through to maintaining the system after it has gone into use.

What are the four fundamental activities in software processes?

Software specification, Software development, Software validation, Software evolution

List 5 different types of software applications.

Stand-alone applications, Embedded control systems, Interactive transaction-based applications, Entertainment systems, Data collection systems

What is test-first development?

Tests are automatically run when a new increment is updated to the system.


Set pelajaran terkait

Chapter 18: Caring for Clients with Cancer

View Set

Mass Communications Exam 2 - Cable CH12

View Set

Complete First - Unit 12 listening pt. 1, pg. 128

View Set