Software Engineering (MIDTERM) - Chapters 2, 3, 5, 6, 8 (Sommerville 10th Edition)

अब Quizwiz के साथ अपने होमवर्क और परीक्षाओं को एस करें!

Data-Driven Models

- Show the sequence of actions involved in processing input data and generating an associated output. - Particularly useful during the analysis of requirements as they can be used to show end-to-end processing in a system.

Reasons why MDA/MDE has not become more mainstream

- Specialized tool support is required to convert models from one level to another - There is limited tool availability and organizations may require tool adaptation and customisation to their environment - For the long-lifetime systems developed using MDA, companies are reluctant to develop their own tools or rely on small companies that may go out of business - Models are a good way of facilitating discussions about a software design. Howeverthe abstractions that are useful for discussions may not be the right abstractions for implementation. - For most complex systems, implementation is not the major problem - requirements engineering, security and dependability, integration with legacy systems and testing are all more significant.

Difference between static and dynamic structural models

- Static: Show the structure of the system design. - Dynamic: Show the organization of the system when it is executing.

What two diagrams are used for interaction modeling?

- Use Case Modeling - Sequence Diagrams

Types of diagrams used for interaction models

- Use Cases - Sequence Diagrams

User Stories

- User requirements are expressed as user stories or scenarios. - These are written on cards and the development team break them down into implementation tasks. These tasks are the basis of schedule and cost estimates. - The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates.

Advantages of reuse oriented software development

1) Reduced cost and risks as less software is developed from scratch 2) Faster delivery and deployment of system

Disadvantages of reuse oriented software development

1) Requirements compromises are inevitable so system may not meet real needs of users 2) Loss of control over evolution of reused system elements

Phases of the Waterfall model

1) Requirements definition 2) Systems and software design 3) Implementation and unit testing 4) Integration and system testing 5) Operation and maintenance

Three stages of the requirements engineering process

1) Requirements elicitation and analysis: What do the stakeholders require or expect? 2) Requirements specification: Defining those requirements in detail 3) Requirements validation: Checking the validity of those requirements

Key process stages of reuse based software engineering

1) Requirements specification 2) Software discovery and evaluation 3) Requirements refinement 4) Application system configuration 5) Component adaptation and integration

Architecture reuse usability

1) Same Domain 2) Same core architecture of application product lines

Client-server architecture Components

1) Servers 2) Client 3) Network

Four main software processes

1) Specification 2) Design and Implementation 3) Validation 4) Evolution

Four basic process activities of software development

1) Specification 2) Development 3) Validation 4) Evolution

Advantages of explicit architecture

1) Stakeholder communication 2) System Analysis 3) Large-Scale reuse

Types of reusable software

1) Standalone application systems that are configured for use in a particular environment 2) Collections of objects that are developed as a package to be integrated into a framework 3) Web services that are developed according to service standards and which are available for remote invocation

Examples of application types

1) TPS Applications 2) IS 3) Language processing systems

4 Testing Guidelines(Sequences)

1. Test software with sequences of only a single value 2. Use different sized sequences 3. Derive tests so that the first, middle, and last elements of sequence of accessed 4. Test with sequences of zero length

List Software Process Models

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

4 parts of acceptance testing in agile development

1. User is part of the dev team 2. Tests are defined by user 3. There is no separate acceptance testing process 4. Main problem is that the user is "typical" and represents all interests of all stakeholders

Two Testing goals

1. Validation (software meets requirements) 2. Defects (find failures)

Scrum

A daily meeting of the Scrum team that reviews progress and prioritizes work to be done that day. Short, face-to-face meeting that includes the whole team.

Sprint

A development iteration. Sprints are usually 2-4 weeks long.

Use Case cases represent what?

A discrete task that involves external interaction with a system

Performance testing

A part of release testing that tests the profile of use for a system; stress testing, performance, reliability

Describe the planning of Plan-driven processes

All of the process activities are planned in advance and progress is measured against this plan.

Software Process Model

An abstract representation of a process. It presents a description of a process from some particular perspective.

Model-Driven Engineering

An approach to software development whereby models rather than programs are the principle outputs of the development process.

Velocity

An estimate of how much product backlog effort that a team can cover in a single sprint.

Class Diagram

An object-oriented system model to show the classes in a system and the associations between these classes.

Verification

Answers the question, "does our product conform to specifications?"

Validation

Answers the question, "does the product do what the user requires?"

Language processing systems

Applications where the users' intentions are specified in a formal language that is processed and interpreted by the system.

Plan-Driven Development

Based around separate development stages with the outputs to be produced at each of these stages planned in advance.

___________models are used to describe the dynamic behavior of an executing system. This behavior can be modeled from the perspective of the data processed by the system, or by the events that stimulate responses from a system.

Behavioral

Name some examples of how and why system requirements can change

External pressures (Usually means money) Competition Changed management priorities

Stress testing

Form of performance testing where system is deliberately overloaded to test failure behavior

Pipe and filter architecture

Functional transformations process their inputs to produce outputs.

Software purpose

How critical the software is

Partition testing

Identify groups of inputs that have common characteristics and should be processed the same way.

Reuse-Based Development: Application system configuration stage

If an off-the-shelf application system is available that meets the requirements, then it is configured for use in the new system

Reuse-Based Development: Component adaptation and integration stage

If there is no off-the-shelf application available, individual reusable components may be adapted and new components developed. These are then integrated into the system

____________________ is an approach to software development in which a system is represented as a set of models that can be automatically transformed to executable code.

Model-driven engineering

Behavior Models

Models of the dynamic behavior of a system as it is executing.

Software evolution

Modifying or changing the software to meet changing customer needs.

When we describe and discuss processes, we usually talk about the activities in these processes such as specifying a data model, designing a user interface, etc. and the ordering of these activities. Process descriptions may also include:

Products: The outcomes of a process activity Roles: Reflect the responsibilities of the people involved Pre- and Post-Conditions: Statements that are true before and after a process activity has been enacted or product produced

What do structural models display?

The organization of a system in terms of the components that make up that system and their relationships.

T or F: Most practical processes include elements of both plan-driven and agile approaches.

True!

T or F: Reuse is now the standard approach for building many types of business systems?

True!

T or F: When developing a class diagram, objects represent something in the real world.

True!

T or F: 80% of Waterfall type projects fail

True! (According to Prof. Fazi)

Coping with change: Incremental delivery

Where system increments are delivered to the customer for comment and experimentation. This supports both change avoidance and change tolerance.

Interface design

Where you define the interfaces between system components.

Database design

Where you design the system data structures and how these are to be represented in a database.

Architectural design

Where you identify the overall structure of the system, the principal components (subsystems or modules), their relationships and how they are distributed.

Component selection and design

Where you search for reusable components. If unavailable, you design how it will operate.

Architectural design

link between specification and design processes and identifying major system components and their communications.

Use of application architectures

"1) As a starting point for architectural design. 2)As a design checklist. 3) As a way of organizing the work of the development team. 4) As a means of assessing components for reuse. 5)As a vocabulary for talking about application types."

Usage of Repository Pattern

"1) Command and Control Systems (CCS) 2) Management Information Systems (MIS) 3) Computer Aided Design (CAD) 4)Interactive Development Environments (IDE)"

Types of diagrams used for behavioral models

- Activity Diagrams - Sequence Diagrams

Pros of Model Driven Engineering

- Allows systems to be considered at higher levels of abstraction - Generating code automatically means that it is cheaper to adapt systems to new platforms.

Generalization

- An everyday technique that we use to manage complexity. - Rather than learn the detailed characteristics of every entity that we experience, we place these entities in more general classes.

Types of diagrams used for structural models

- Class Diagrams

Refactoring

- Constant code improvement - Programming team look for possible software improvements and make these improvements even where there is no immediate need for them.

System Boundaries

- Established to define what is inside and what is outside the system. - They show other systems that are used or depend on the system being developed.

Benefits of Pair Programming

- Helps develop common ownership of code and spreads knowledge across the team. - It serves as an informal review process as each line of code is looked at by more than 1 person. - It encourages refactoring as the whole team can benefit from improving the system code.

What does an aggregation model show?

- How classes that are collections are composed of other classes. - Aggregation models are similar to the part-of relationship in semantic data models.

Questions to be asked when considering using agile methods

- How large is the system being developed? (Agile methods are most effective a relatively small co-located team who can communicate informally. ) - What type of system is being developed? (Systems that require a lot of analysis before implementation need a fairly detailed design to carry out this analysis.) - What is the expected system lifetime? (Long-lifetime systems require documentation to communicate the intentions of the system developers to the support team.) - Is the system subject to external regulation? (If a system is regulated you will probably be required to produce detailed documentation as part of the system safety case. )

Agile Manifesto Tenets

- Individuals and Interactions over processes and tools - Working software over comprehensive documentation - Customer collaboration over contract negotiation - Responding to change over following a plan

State Models

- Model the behaviour of the system in response to external and internal events. - Show the system's responses to stimuli so are often used for modelling real-time systems.

Cons of Model Driven Engineering

- Models for abstraction and not necessarily right for implementation. - Savings from generating code may be outweighed by the costs of developing translators for new platforms

Why is it called Extreme Programming?

- New versions may be built several times per day; - Increments are delivered to customers every 2 weeks; - All tests must be run for every build and the build is only accepted if tests run successfully.

Pair Programming

- Pair programming involves programmers working in pairs, developing code together.

Common Characteristics of Agile Development

- Program specification, design and implementation are inter-leaved - The system is developed as a series of versions or increments with stakeholders involved in version specification and evaluation - Frequent delivery of new versions for evaluation - Extensive tool support (e.g. automated testing tools) used to support development. - Minimal documentation - focus on working code

Examples of Refactoring

- Re-organization of a class hierarchy to remove duplicate code. - Tidying up and renaming attributes and methods to make them easier to understand. - The replacement of inline code with calls to methods that have been included in a program library.

Test-First Development

- Writing tests before code clarifies the requirements to be implemented. - Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly.

How is generalization implemented in OO langauges?

- class inheritance mechanisms - the attributes and operations associated with higher-level classes are also associated with the lower-level classes. - The lower-level classes are subclasses inherit the attributes and operations from their superclasses. These lower-level classes then add more specific attributes and operations.

Model Driven Architecture

- precursor of more general model-driven engineering -model-focused approach to software design and implementation that uses a subset of UML models to describe a system.

3 Automated test components

1. Set up test cases(inputs and expected outputs) 2. Call object or method 3. Assertion (AssertEquals/True).

System Perspectives

1) An external perspective: where you model the context or environment of the system. 2) An interaction perspective: where you model the interactions between a system and its environment, or between the components of a system. 3) A structural perspective: where you model the organization of a system or the structure of the data that is processed by the system. 4) A behavioral perspective: where you model the dynamic behavior of the system and how it responds to events.

Four main design activities

1) Architectural design 2) Database design 3) Interface design 4) Component selection and design

Architectural abstraction Types

1) Architecture in Small 2) Architecture in Large

Three ways in which graphical models are used

1) As a means of facilitating discussion about an existing or proposed system 2) As a way of documenting an existing system 3) As a detailed system description that can be used to generate a system implementation

Use of architectural models

1) As a way of facilitating discussion about the system design 2) As a way of documenting

Two related approaches to reducing the cost of rework

1) Change anticipation: activities that can anticipate possible changes before significant rework is required 2) Change tolerance: where the process is designed so that changes can be accommodated at relatively low cost

Three Stages of Testing

1) Component testing 2) System testing 3) Acceptance (Customer) testing

Types of MDA Models

1) Computational Independent Model (CIM) 2) Platform Independent Model (PIM) 3) Platform Specific Model (PSM)

Five Principles of Agile Methods

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

Two types of behavior when discussing Behavior Models

1) Data: Some data arrives that has to be processed by the system 2) Events: Some event happens that triggers system processing. Events may have associated data, although this is not always the case.

Agile Methods are Useful for What Two Kinds of System Development?

1) Developing a small or medium-sized product for sale 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 rules and regulations that affect the software

Systems where the waterfall method is more appropriate

1) Embedded systems where the software has to interface with hardware systems 2) Critical systems where there is a need for extensive safety and security analysis 3) Large software systems that are a part of broader engineering systems

Important Agile Fundamentals to Remember When Scaling

1) Flexible planning 2) Frequent system releases 3) Continuous integration 4) Test-driven development 5) Good team communications.

XP applied to the Agile Manifesto

1) Incremental development is supported through small, frequent system releases. 2) Customer involvement means full-time customer engagement with the team. 3) People not process through pair programming, collective ownership and a process that avoids long working hours. 4) Change supported through regular system releases. 5) Maintaining simplicity through constant refactoring of code.

Practices of Extreme Programming

1) Incremental planning 2) Small releases 3) Simple design 4) Test-first development 5) Refactoring 6) Pair programming 7) Collective ownership 8) Continuous integration 9) Sustainable pace 10) On-site customer

Process maturity levels

1) Initial - Few processes defined 2) Repeatable - Basic project management, requirements, and documentation are known 3) Defined - Process management procedures and strategies defined and used 4) Managed - Quality management strategies defined and used 5) Optimizing - Process improvement strategies defined and used

Architectural design decisions

1) Is there a generic application architecture that can be used? 2)How will the system be distributed? 3)What architectural styles (Patterns) are appropriate? 4)What approach will be used to structure the system? 5)How will the system be decomposed into modules? 6)What control strategy should be used? 7)How will the architectural design be evaluated? 8)How should the architecture be documented?

Agile Methods and Software Maintenance Concerns

1) Lack of product documentation 2) Keeping customers involved 3) Development team continuity

Compiler components

1) Lexical Analyzer 2) Symbol Table 3) Syntax Analyzer 4) Syntax Tree 5) Semantic Analyzer 6) Code Generator

Architectural Views

1) Logical 2) Process 3) Development 4) Physical +1 Relation of these 4

Common Patterns

1) MVC 2) Layered 3) Repository 4) Client-Server 5) Pipe and Filter 6) Applications(TPS, IS, Language processing)

Process improvement activities

1) Measurement 2) Analysis 3) Change

Incremental delivery problems

1) Most systems require a set of basic facilities that are used by different parts of the system 2) The essence of iterative processes is that the specification is developed in conjunction with the software

Architecture and system characteristics

1) Performance 2) Security 3) Safety 4) Availability 5) Maintainability

Two approaches to process improvement

1) Process maturity approach 2) The agile approach

Problems with a Test-First Environment

1) Programmers prefer programming to testing and sometimes they take short cuts when writing tests. (debatable!) 2) Some tests can be very difficult to write incrementally. 3) It difficult to judge the completeness of a set of tests.

Extreme Programming Testing Features

1) Test-first development 2) Incremental test development from scenarios 3) User involvement in test development and validation 4) Automated test harnesses are used to run all component tests each time that a new release is built.

Three main benefits of incremental development

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

Practical Problems with Agile Methods

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 software maintenance. 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.

Three Phases of Scrum

1) The initial phase is an outline planning phase where you establish the general objectives for the project and design the software architecture. 2) This is followed by a series of sprint cycles, where each cycle develops an increment of the system. 3) The project closure phase wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project.

Two main concerns with incremental development

1) The process is not visible 2) System structure tends to degrade as new increments are added

Benefits of Scrum

1) The product is broken down into a set of manageable and understandable chunks. 2) Unstable requirements do not hold up progress. 3) The whole team have visibility of everything and consequently team communication is improved. 4) Customers see on-time delivery of increments and gain feedback on how the product works. 5) Trust between customers and developers is established and a positive culture is created in which everyone expects the project to succeed.

Practical and influential XP practices

1) User stories for specification 2) Refactoring 3) Test-first development 4) Pair programming

3 Differences between system and release testing

1. A separate team is testing in release testing 2. System testing is focused on discovering bugs (defect testing) 3. Release testing focuses on validation testing (good enough for normal use)

3 Steps of User testing

1. Alpha (users work with dev team) 2. Beta (release is made available to users) 3. Acceptance (customers test to see if it is ready for full use)

5 General testing guidelines

1. Choose inputs that force system to generate all error messages 2. Design inputs to cause overflow 3. Repeat the same input 4. Force invalid input 5. Force computation results to be too small/large

4 Benefits of TDD

1. Code coverage (every part has a test) 2. Regression testing (regressing test suite is developed incrementally as program is developed) 3. Simplified debugging (easy to identify problems in small chunks) 4. System documentation (tests are a form of documentation that describe what the code should be doing).

Incremental delivery advantages

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

3 Stages of testing

1. Development 2. Release 3. By users

5 TDD Process Activities

1. Identify increments of required functionality 2. Write a test 3. Run test (will fail because no code) 4. Write code, run test 5. If all successful, move on to next step

Benefits of Prototyping

1. Improved system usability 2. A closer match to users' real needs 3. Improved design quality 4. Improved maintainability 5. Reduced development effort

3 Interface Errors

1. Misuse (calling component calls another component and makes an error, i.e. parameters in wrong order) 2. Misunderstanding (calling component embeds assumptions which are incorrect) 3. Timing errors (called and calling components operate at different speeds and out-of-date information is accessed).

4 Interface Types

1. Parameter(data passed from one method to another) 2. Shared memory(block of memory is shared between two methods) 3. Procedural(sub-system encapsulates a set of procedures to be called by other sub-systems) 4. Message passing(sub-systems request services from other sub-systems).

5 Interface testing guidelines

1. Parameters are at the extreme range 2. Test pointers with null pointers 3. Cause component to fail 4. Stress testing in message passing systems 5. Shared memory - vary order of which components are activated

Software Process

A structured set of activities required to develop a software system.

Extreme Programming

A very influential agile method, developed in the late 1990s, that introduced a range of agile development techniques.

What is one of the main difficulties facing a pure waterfall model development project?

Accommodating change after the process is underway.

___________ diagrams may be used to model the processing of data, where each activity represents one process step.

Activity

Types of diagrams used for context models

Activity diagrams

AAR

After Action Review (wrap-up)

Scrum

Agile method that focuses on managing iterative development rather than specific agile practices.

"Scaling Out" Agile Methods

Concerned with how agile methods can be introduced across a large organization with many years of software development experience.

"Scaling Up" Agile Methods

Concerned with using agile methods for developing large software systems that cannot be developed by a small team.

______________ models show how a system that is being modeled is positioned in an environment with other systems and processes.

Context

Goal of release testing

Convince the supplier that it's good enough for use (shows that it delivers its specified functionality, performance and dependability, and does not fail during normal use)

Transaction Processing Systems

Data driven applications that process data in batches without explicit user intervention during the processing.

Information Systems

Data-centred applications that process user requests and update information in a system database.

Interface testing

Detect faults due to interface errors or invalid assumptions

When are system models used?

During the requirements engineering phase to help explain the proposed requirements to other stakeholders.

Software testing

Dynamic verification; exercise software behavior

T or F: A "customer" must be from an external source outside the company.

False! A "customer" can be an organization from within the company as well.

T or F: The four process activities of software development are organized the same regardless of what process model is being used

False! For example, in the waterfall model they are organized in sequence whereas in incremental development they are interleaved

T or F and Why?: Scaling agile methods for large systems is easy.

False! Large systems need up-front design and some documentation and organizational practice may conflict with the informality of agile approaches.

T or F: A model is meant to be a complete representation of a system.

False, it purposely leaves out detail to make it easier to understand.

Process improvement: Process maturity approach

Focuses on improving process and project management and introducing good software engineering practice. The level of process maturity reflects the extent to which good technical and management practice has been adopted in organizational software development processes

Process improvement: The agile approach

Focuses on iterative development and the reduction of overheads in the software process.

Development Testing

Includes unit testing, component testing, system testing

System testing

Integrate components to create a version of the full product and test it fully. Checks that components are compatible.

Validation testing

Intended use, confirm system works

Test-Driven Development(TDD)

Interleaves testing and code development; tests are developed before code. Used in mainly agile development but can be plan-driven.

Scenario testing

Invent a typical usage scenario and use this to derive test cases.

Two main types of unit tests

Normal Operation and Abnormal Operation

Layered architecture

Organizes the system into a set of layers (or abstract machines) each of which provide a set of services. Supports incremental Development

ScrumMaster

Person responsible for ensuring that the Scrum process is followed and guides the team in the effective use of Scrum. He or she is responsible for interfacing with the rest of the company.

Waterfall Model Process Model

Plan-driven model. Separate and distinct phases of specification and development.

Most Important Requirement for Software Systems

Rapid Development and Delivery

MVC Pattern

Separates presentation and interaction from the system data. The system is structured into three logical components that interact with each other.

Software component

Several interacting objects

Repository architecture

Shared data is held in a central database and may be accessed by all sub-systems;

Component testing

Should focus on showing the component interface behaves according to its specification (already have to have unit testing completed.)

State Diagrams

Show how the system reacts to internal and external events.

Sequence Diagrams

Show interactions between actors and the system and between system components.

Program testing

Show that it does what it should do and show defects.

Activity Diagrams

Show the activities involved in a process or in data processing

Use Case Diagrams

Show the interactions between a system and its environment.

Class Diagrams

Show the object classes in the system and the associations between these classes.

Event-Driven Models

Shows how a system responds to external and internal events

The integration and configuration software process model is based on what major concept?

Software reuse: Reused elements may be configured to adapt their behavior and functionality to a user's requirements

Agile Development

Specification, design, implementation and testing are inter-leaved and the outputs from the development process are decided through a process of negotiation during the software development process.

Incremental Development Process Model

Specification, development and validation are interleaved. May be plan-driven or agile.

_____________diagrams are used to model a system's behavior in response to internal or external events.

State

Software inspections

Static verification; analysis of static system representation to discover problems; tool-based document and code analysis

_____________ models show the organization and architecture of a system. ___________are used to define the static structure of classes in a system and their associations.

Structural Class diagrams

System testing

Testing the entire system as one entity to ensure that it is working properly

Regression testing

Testing the system to check that changes have not broken previous code

Acceptance or Customer testing

Testing with customer data to check that the system meets the customer's needs.

Unit testing

Tests individual methods within an object

Product Backlog

The "to-do" items which the Scrum team must tackle.

Software architecture

The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication

Why is it hard to test inherited objects?

The information to be tested is not localized

Equivalence partitions

When the program behaves in an equivalent way for each class member

Software design and implementation

The process of converting the system specification into an executable system.

System Modeling

The process of developing abstract models of a system, with each model presenting a different view or perspective of that system

Software Specification

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

Release Testing

The process of testing a particular release of a system, a form of system testing

What do sequence diagrams show?

The sequence of interactions that take place during a particular use case or use case instance.

Integration and Configuration Process Model

The system is assembled from existing configurable components. May be plan-driven or agile.

Component testing

The testing of individual software components.

What is meant when saying that defining a system boundary is a political judgment?

There may be pressures to develop system boundaries that increase / decrease the influence or workload of different parts of an organization.

Platform specific models (PSM)

These are transformations of the platform-independent model with a separate PSM for each application platform. In principle, there may be layers of PSM, with each layer adding some platform-specific detail.

Computation independent model (CIM)

These model the important domain abstractions used in a system. CIMs are sometimes called domain models.

Platform independent model (PIM)

These model the operation of the system without reference to its implementation. The PIM is usually described using UML models that show the static system structure and how it responds to external and internal events.

What is the main argument for proponents of MDE

They argue that this raises the level of abstraction in software engineering so that engineers no longer have to be concerned with programming language details or the specifics of execution platforms

T or F: Prototypes should be discarded after development and why?

True! They are not a good basis for a production system because it may be impossible to tune the system to meet non-functional requirements, they are normally undocumented, the structure is degraded through rapid change, and usually they do not meet normal organizational quality standards

Universal Modeling Language

UML is a set of 13 different diagram types that may be used to model software systems. Emerged from work in the 1990s on object-oriented modeling, where similar object-oriented notations were integrated to create the UML.

Process Improvement

Understanding existing processes and changing these processes to increase product quality and/or reduce costs and development time.

Defect testing

Unintended use, discover faults

Context Models

Used to illustrate the operational context of a system - they show what lies outside the system boundaries.

User testing

Users/customers provide input and advice.

Guideline-based testing

Uses testing guidelines

Software validation (V & V)

Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer. Involves checking and review processes and system testing.

Coping with change: System Prototyping

Version of the system or part of the system is developed quickly to check the customer's requirements and the feasibility of design decisions. This approach supports change anticipation.

Box and line diagrams

Very abstract - they do not show the nature of component relationships nor the externally visible properties of the sub-systems.

Architectural patterns

a stylized description of good design practice, which has been tried and tested in different environments.

A model is an __________ view of a system that ignores system details. Complementary system models can be developed to show the system's __________, interactions, structure and ___________.

abstract context behavior

Architecture in Large

concerned with the architecture of complex enterprise systems that include other systems, programs, and program components. These enterprise systems are distributed over different computers, which may be owned and managed by different companies

Architecture in small

concerned with the architecture of individual programs. At this level, we are concerned with the way that an individual program is decomposed into components.

Use case diagrams and sequence diagrams are used to describe the interactions between _________ and _____________ in the system being designed. _____________ describe interactions between a system and external actors; ______________add more information to these by showing interactions between system objects.

users systems Use cases sequence diagrams

UML Diagram Types

~Activity diagrams ~Use case diagrams ~Sequence diagrams ~Class diagrams ~State diagrams


संबंधित स्टडी सेट्स

Construction Management Chapter 2

View Set

chapter 15 reconstruction, 1863-1877

View Set

Chapter 8: Motivating a Sales Force

View Set

ECN 101 - Intermediate Macroeconomics

View Set

Sound and Structure in Poems by Dylan Thomas and W. B. Yeats

View Set

BIO 202: Chapter 11 - Cell Interactions (Unit 3)

View Set

4.1 motor functions of the spinal cord, cord reflexes

View Set