4900 test 1

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

What 5 things should be included in a scenario?

1. A description of what the system and users expect when the scenario starts 2. A description of the normal flow of events in the scenario 3. A description of what can go wrong and how resulting problems can be handled 4. Information about other activities that might be going on at the same time 5. A description of the system state when the scenario ends

What are the fundamental architectural views proposed in Krutchen's 4+ 1 model?

1. A logical view 2. A process view 3. A development view 4. A physical view

What UML diagram types do you need to represent the essential features of a system?

1. Activity diagrams 2. Use case diagrams 3. Sequence diagrams 4. Class diagrams 5. State diagrams

What are the two ways in which an architectural model of a system may be used?

1. As a way of facilitating discussion about the system design. 2. As a way of documenting an architecture that has been designed.

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

1. Initial 2. Managed 3. Defined 4. Quantitatively managed 5. Optimizing

List 4 fundamental questions that should be addressed in architectural design? (any 4 from these)

1. Is there a generic application architecture that can act as a template for the system that is being designed? 2. How will the system be distributed across hardware cores or processors? 3. What Architectural patterns or styles might be used? 4. What will be the fundamental approach used to structure the system?

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

1. Software reuse 2. Interface development technology 3. Software where the software components are stand-alone web services

What are the four fundamental activities in software processes?

1. Software specification 2. Software development 3. Software validation 4. Software evolution

What is the fundamental characteristic of a repository architecture?

A fundamental characteristic of a repository architecture is a central repository. All the data in a system is managed in a central repository.

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

Activity diagrams can be used to show the business processes in which systems are used for. They give a easy to read diagram.

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

Generalization is used to simplify similar objects with similar traits into a manageable hierarchy. Classes are created for like objects and they are placed into a hierarchy. There can also be subclasses if needed. An example of this is Animal is the superclass, then mammal is a class, and dog is a subclass.

What are the essential attributes of good software?

Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable. 1. Acceptability 2. Dependability 3. Efficiency 4. Maintainability

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

It is cost that constrains iterations. Waterfall is document-driven and rework and approval of documents is costly.

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 is the distinction between functional and non-functional requirements?

The distinction between functional and non-functional requirements is not clear-cut because a non-functional requirement may generate functional requirements. However, functional requirements are typically statements of services the system should provide, while, non-functional requirements are constraints on the services such as security.

What is the most important advantage of a client-server architecture?

The principle advantage of the client-server architecture is that servers can be distributed across a network. General functionality can be available to all clients and does not need to be implemented by all services.

What are user requirements and system requirements?

User requirements are statements, in a natural language plus diagrams, of what services the system is expected to provide to system users and the constraints under which it must operate System requirements are more detailed descriptions of the software system's functions, services, and operational constraints

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

Very few systems are completely new systems, and it makes much more sense to see development and maintenance as a continuum rather than two separate processes.

List the 5 principles of agile methods.

1. Customer involvement: Customers should be closely involved throughout the development process. Their role is provide and prioritize new system requirements and to evaluate the iterations of the system. 2. Embrace change: Expect the system requirements to change, and so design the system to accommodate these changes. 3. Incremental delivery: The software is developed in increments, with the customer specifying the requirements to be included in each increment. 4. Maintain simplicity: Focus on simplicity in both the system being developed and in the development process. Wherever possible, actively work to eliminate complexity from the system. 5. People, not process: The skills of the development team should be recognized and exploited. Team members should be left to develop their own ways of working without prescriptive processes

What are the two fundamental types of software product?

1. Generic products: Stand alone systems that are produced to sell to anyone 2.Customized (or bespoke) software: These systems are commissioned by and developed for a particular customer.

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

1. Heterogeneity: Systems are required to operate as distributed systems across networks that include different types of computer and mobile devices. 2. Business and social change: Businesses and society are changing incredibly quickly as emerging economies develop and new technologies become available 3. Security and trust: It is essential that we can trust software 4. Scale: Software has to be developed across a very wide range of scales, from very small embedded systems in portable or wearable devices through to Internet-scale, cloud-based systems that serve a global community

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

1. How large is the system that is being developed? 2. What type of system is being developed? 3. What is the expected system lifetime? 4. Is the system subject to external regulation?

What are the 3 stages in the requirements change management process?

1. Problem analysis and change specification 2. Change analysis and costing 3. Change implementation

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

1. Product development where a software company is developing a small or medium-sized product for sale. Virtually all software products and apps are now developed using agile approach. 2.Custom system development within an organization, where there is a clear commitment from the customer to become involved in the development process and where there are few external stakeholders and regulations that affect the software.

List and briefly describe 3 types of non-functional requirement.

1. Product requirements: These specify or constrain the runtime behavior of the software. 2. Organizational requirements: These requirements are broad system requirements derived from policies and procedures in the customer's and developer's organizations. 3. External requirements: This broad heading covers all requirements that are derived from factors external to the system and its process.

What are the possible problems of test-first development?

1. Programmers prefer programming to testing, and sometimes they take shortcuts when writing tests. For example, they may write incomplete tests that do not check for all possible exceptions that may occur. 2. Some test can be very difficult to write incrementally. For example, in a complex user interface, it is often difficult to write unit tests for code that implements the display logic and workflow between screens.

What are the 3 principal stages of the requirements engineering process?

1. Requirements elicitation 2. Requirements specification 3. Requirements validation

What are the principal requirements engineering activities?

1. Requirements elicitation and analysis: This is the process of deriving the system requirements through observation of existing systems 2. Requirements specification: Requirements specification is the activity of translating the information gathered during requirements analysis into a document that defines a set of requirements. 3.Requirements validation: This activity checks the requirements for realism, consistency, and completeness.

List three requirements validation techniques.

1. Requirements reviews 2. Prototyping 3. Test-case generation

What are the development stages in integration and configuration?

1. Requirements specification: the initial requirements for the systems are proposed. 2. Software discovery and evaluation: Given an outline of the software requirements, a search is made for components and systems that provide the functionality required. 3. Requirements refinement: During this stage, the requirements are refined using information about reusable components and applications that have been discovered. 4. Application system configuration: if an off-the-shelf application system that meets the requirements is available, it may then be configures for use to create the new system. 5. Component adaptation and integration: If there is no off-the-shelf system, individual reusable components may be modified and new components developed.

What are the advantages of explicitly designing and documenting a software architecture?

1. Stakeholder communication 2. System analysis 3.Large scale reuse

Give 5 reasons why eliciting requirements is difficult.

1. Stakeholders often don't know what they want from a computer system except in the most general terms 2. Stakeholders in a system naturally express requirements in their own terms and with implicit knowledge of their own work. 3. Different stakeholders, with diverse requirements, may express their requirements in different ways 4. Political factors may influence the requirements of a system 5. The economic and business environments in which the analysis takes place is dynamic

List 5 different types of software application.

1. Stand-alone applications 2. Interactive transaction-based applications 3. Embedded control systems 4. Batch processing systems 5. Entertainment systems

Name three important agile techniques that were introduced in extreme programming?

1. Test-First development 2. User stories 3. Pair programming

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

1. The informality of agile development is incompatible with the legal approach to contract definition that is commonly used in large companies. 2. Agile methods are most appropriate for new software development rather than for software miniatous. Yet the majority of software costs in large companies come from maintaining their existing software systems. 3. Agile methods are designed for small co-located teams, yet much software development now involves worldwide distributed teams.

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

1. The process maturity approach which focuses on improving process and project management 2. The agile approach which has a focus on iterative development.

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

1. The waterfall model 2. Incremental development 3. Integration and configuration

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

1. They should be developed using a managed and understood development process. The organization developing the software should plan the developed process and have clear ideas of what will be produced and when it will be completed. 2. Dependability and performance are important for all types of system. Software should behave as expected, without failures, and should be available for use when it is required. It should be safe in its operation and, as far as possible, should be secure against attack. 3. Understanding and managing the software specification and requirements are important. You have to know what different customers and users of the system expect from it, and you have to manage their expectations so that a useful system can be delivered within budget and to schedule. 4. You should make effective use of existing resources. This means that, where appropriate, you should reuse software that has already been developed rather than write new software.

What are the principal functions of the 4 layers in a generic information system architecture?

1. User interface 2. User communications / authentication and authorization 3. Information retrieval and modification 4. Transaction management database

What 5 checks should be applied during requirements validation?

1. Validity checks 2. Consistency checks 3. completeness checks 4. Realism checks 5. Verifiability

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

1. computation independent model 2. platform independent model 3. platform specific models

What are the advantages of using incremental development and delivery?

A more rapid delivery and deployment of useful software to the customer is possible due to the customer being able to use completed portions of good software until the final version is created.

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

All agile methods suggest that software should be developed and delivered incrementally. Customer involvement, change, incremental delivery, maintain simplicity, and people not process are all shared characteristics.

What is an architectural pattern?

An architectural pattern is a stylized, abstract description of good practice, which has been tried and tested in different systems and environments. It should describe a systems organization that had been successful in previous systems.

What are the claimed benefits of model-driven engineering?

Benefits of model-driven engineering are that is allows systems to be considered at higher levels of abstraction and that generating code automatically means that it is cheaper to adapt systems to new platforms.

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.

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

Incremental development accommodates changes during development better than the waterfall method. This also caused the cost to accommodating changing customer requirements is also reduced. Another benefit is that it is easier to get customer feedback on the development work that has been done. This helps rapid delivery and deployment of useful software to the customer.

What is test-first development?

Instead of writing code and then writing tests for that code, you write the test before you write the code. This avoids the problem of test lag.

What is the distinction between the termsʼ shallʼ and ʻshouldʼ in a user requirementsdocument, which is written in natural language?

Non-functional requirements need to be written using shall so that it provides a testable statement. Functional statements should be written in natural language so that managers can understand them. Natural language is the use of should.

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

Scrum allows for 24 hour development. It also allows a visualization of progress and the ability to track a completion date by analyzing how many hours of work for the project has been completed each day. It allows them to adjust to make a deadline early on.

What is illustrated in a UML sequence diagram?

Sequence diagrams illustrates the interactions between actors and the objects in a system and also interactions between the objects themselves.

What is software engineering?

Software engineering is an engineer discipline that is concerned with all aspects of software production from initial conception to operation and maintenance.

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

Specification by defining what a system should do. Design and implementation by defining the organization of the system and implementing the system. Validation by checking that it does what the customer wants. Evolution by changing the system in response to changing what the customer needs.

What is the basic assumption that underlies event-driven modelling?

The basic assumption that underlies event driven modelling is that a system has a finite number of states and that events (stimuli) may cause a transition from one state to another.

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

The principle components of a textual use-case description is added detail. An example of this in tabular form is listed in figure 5.4 in the book. Actors have more detail, they list specifically who the actors are. Then there is a description of the process. Next comes a description of the data that is handled as well as what stimulates the system and the response given. Finally there are key notes that can be entered.

Briefly describe pipe and filter architecture?

The processing of the data in a system is organized so that each processing component is discrete and carries out one type of data transformation. The data flows from one component to another for processing.

What is a software engineering code of ethics?

The question is asking you to give a definition (What is a code of ethics?), rather than example of one.

What perspectives should be used for developing models of a software system?

There are four perspectives that should be used for developing models of a software system. An external perspective, where you model the context or environment of the system. An interaction perspective, where you model the interactions between a system and its environment. A structural perspective, where you model the organization of a system ort the structure of the data that is processed by the system. Finally, a behavioral perspective, where you model the dynamic behavior of the system and how it responds to events.

What are transaction-processing applications?

Transaction processing applications are database-centered applications that process user requests for information and update the information in a database. These are the most common types of interactive business systems.


Ensembles d'études connexes

Ch 50: Disorders of Musculoskeletal Function (Rheumatic Disorders)

View Set

L4. Test Slope of a Line, Parallel and Perpendicular Lines and Equations, Writing Equations in Point-Slope and Slope-Intercept Form

View Set

Maternity Exam 3 Review Questions

View Set

Milady Chapter Thirteen Review Questions (Basics of Electricity)

View Set