software engineering

¡Supera tus tareas y exámenes ahora con Quizwiz!

There are many different types of application including

. Interactive transaction-based applications These are applications that execute on a remote computer and that are accessed by users from their own PCs or terminals

Software engineering is important for two reasons:

1. More and more, individuals and society rely on advanced software systems.

The principal stages of the waterfall model directly reflect the fundamental development activities:

1. Requirements analysis and definition 2. System and software design 3. Implementation and unit testing 4. Integration and system testing 5. Operation and maintenance

There are many different software processes but all must include four activities that are fundamental to software engineering:

1. Software specification The functionality of the software and constraints on its operation must be defined. 2. Software design and implementation The software to meet the specification must be produced. 3. Software validation The software must be validated to ensure that it does what the customer wants. 4. Software evolution The software must evolve to meet changing customer needs

There are four fundamental activities that are common to all software processes

1. Software specification, where customers and engineers define the software that is to be produced and the constraints on its operation

Software engineering ethics.

2. Competence You should not misrepresent your level of competence. You should not knowingly accept work that is outside your competence.

Software engineering is important for two reasons:

2. It is usually cheaper, in the long run, to use software engineering methods and techniques for software systems rather than just write the programs as if it was a personal programming projec

There are four fundamental activities that are common to all software processes

2. Software development, where the software is designed and programmed.

Software engineering ethics..

3. Intellectual property rights You should be aware of local laws governing the use of intellectual property such as patents and copyright.

There are four fundamental activities that are common to all software processes

3. Software validation, where the software is checked to ensure that it is what the customer requires.

Software engineering ethics...

4. Computer misuse You should not use your technical skills to misuse other people's computers. Computer misuse ranges from relatively trivial (game playing on an employer's machine, say) to extremely serious (dissemination of viruses or other malware).

There are four fundamental activities that are common to all software processes

4. Software evolution, where the software is modified to reflect changing customer and market requirements.

Business modelling

Activity diagram Class diagram Use case diagram Data flow diagram

Artefacts

An output from the project, or 'product', is known in the UP as an 'artefact'. There are many definitions of artefact in different contexts, but the one we will focus on is that it is something that allows another, higher level, product to be constructed.

Architectural design

Class diagram Sequence diagram Component diagram Activity or sequence diagram State diagram Deployment diagram

What is software?

Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.

Software engineering is related to both computer science and systems engineering:

Computer science is concerned with the theories and methods that underlie computers and software systems, whereas software engineering is concerned with the practical problems of producing software

What are the key challenges facing software engineering?

Coping with increasing diversity, demands for reduced delivery times, and developing trustworthy software.

there are software engineering fundamentals that apply to all types of software system

Dependability and performance are important for all types of systems. Software should behave as expected, without failures and should be available for use when it is required

Engineering discipline

Engineers make things work

More and more systems are now being built with a generic product as a base, which is then adapted to suit the requirements of a customer

Enterprise Resource Planning (ERP) systems, such as the SAP system, are the best examples of this approach

two kinds of software products

Generic products Customized (or bespoke) products

What are the attributes of good software?

Good software should deliver the required functionality and performance to the user and should be maintainable, dependable, and usable

Incremental development.

Incremental development is based on the idea of developing an initial implementation, exposing this to user comment and evolving it through several versions until an adequate system has been developed

low expectation

It is relatively easy to write computer programs without using software engineering methods and techniques

What is software engineering?

Software engineering is an engineering discipline that is concerned with all aspects of software production.

what does software engineering support

Software engineering is intended to support professional software development, rather than individual programming

All aspects of software production

Software engineering is not just concerned with the technical processes of software development. It also includes activities such as software project management and the development of tools, methods, and theories to support software production.

What are the fundamental software engineering activities?

Software specification, software development, software validation, and software evolution.

Software engineering is related to both computer science and systems engineering:

System engineering is concerned with all aspects of the development and evolution of complex systems where software plays a major role

Incremental development has three important benefits, compared to the waterfall model:

The cost of accommodating changing customer requirements is reduced. It is easier to get customer feedback on the development work that has been done More rapid delivery and deployment of useful software to the customer is possible, even if all of the functionality has not been included

goal of milestones in software engineering

The goal is to minimise the wasted work that results from re-iteration of previous phases.

From a management perspective, the incremental approach has two problems:

The process is not visible System structure tends to degrade as new increments are added.

a software process

The systematic approach that is used in software engineering is sometimes called

The process models

The waterfall model Incremental development Reuse-oriented software engineering

Embedded control systems

These are software control systems that control and manage hardware devices

Generic products

These are stand-alone systems that are produced by a development organization and sold on the open market to any customer who is able tobuy them

Systems for modeling and simulation

These are systems that are developed by scientists and engineers to model physical processes or situations,

Entertainment systems

These are systems that are primarily for personal use and which are intended to entertain the user

there are software engineering fundamentals that apply to all types of software system:

They should be developed using a managed and understood development process

Incremental development

This approach interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with each version adding functionality to the previous version.

Reuse-oriented software engineering

This approach is based on the existence of a significant number of reusable components. The system development process focuses on integrating these components into a system rather than developing them from scratch.

there are software engineering fundamentals that apply to all types of software system.

Understanding and managing the software specification and requirements (what the software should do) are important

there are software engineering fundamentals that apply to all types of software system..

You should make as effective use as possible of existing resources. This means that, where appropriate, you should reuse software that has already been developed rather than write new software.

Enterprise Resource Planning (ERP) systems, such as the SAP system, are the best examples of this approach

a large and complex system is adapted for a company by incorporating information about business rules and processes, reports required, and so on

Standardization

also an important first step in introducing new software engineering methods and techniques and good software engineering practice

Processes based on formal transformations

are generally only used in the development of safety-critical or security-critical systems

Plan-driven processes

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

The principles of agile development are

based in a large part on 'lean thinking', an approach to manufacturing

The problems of incremental development

become particularly acute for large, complex, long-lifetime systems, where different teams develop different parts of the system.

a 'Preliminary Software Review' (PSR)

between supplier and customer before formally moving on to the analysis phase, based on a preliminary program design which acts as a form of prototype to guide design and coding

a 'Final Software Acceptance Review' (FSAR

between the testing and operations phases

Software processes improvement .

can be improved by process standardization where the diversity in software processes across an organization is reduce

'Critical Software Reviews' (CSRs)

can be scheduled with the customer, to further inform the coding process

These fundamental notions of process

dependability, requirements, management, and reuse

An important difference between these types of software is

hat, in generic products, the organization that develops the software controls the software specification

Software engineering and the Web

his led to the development of a vast range of new system products that delivered innovative services, accessed over the Web.

Incremental development

in some form is now the most common approach for the development of application systems

Each increment or version of the system

incorporates some of the functionality that is needed by the customer

A software process

is a sequence of activities that leads to the production of a software product

A software process.

is a set of related activities that leads to the production of a software product

Software process models

is a simplified representation of a software process

engineering

is all about selecting the most appropriate method for a set of circumstances so a more creative, less formal approach to development may be effective in some circumstances.

Software engineering

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

developing the software incrementally

it is cheaper and easier to make changes in the software as it is being developed.

Increasing demands

new software engineering techniques help us to build larger, more complex systems, the demands change

no ideal process

no ideal process and most organizations have developed their own software development processes

software processes are categorized

plan-driven or agileprocesses.

agile processes,

planning is incremental and it is easier to change the process to reflect changing customer requirements

Roles

reflect the responsibilities of the people involved in the process. Examples of roles are project manager

Each process model

represents a process from a particular perspective, and thus provides only partial information about that process.

software engineering not same as program

software engineering, software is not just the programs themselves but also all associated documentation and configuration data that is required to make these programs operate correctly

The waterfall model..

software life cycle

In a plan-driven approach

system increments are identified in advance; if an agile approach is adopted, the early increments are identified but the development of later increments depends on progress and customer priorities.

The waterfall model.

takes the fundamental process activities of specification, development, validation, and evolution and represents them as separate process phases such as requirements specification, software design, implementation, testing, and so on

what are the early increment involved

the early increments of the system include the most important or most urgently required functionality

a CSR validates that the program design is a true expression of the output of the analysis phase,

there is no point in looking at the program design for the source of an error found during the coding phase.

the waterfall model should only be used

when the requirements are well understood and unlikely to change radically during system development

Pre- and post-conditions

which are statements that are true before and after a process activity has been enacted or a product produced

Products,

which are the outcomes of a process activity. For example, the outcome of the activity of architectural design may be a model of the software architecture.

Incremental software development,

which is a fundamental part of agile approaches, is better than a waterfall approach for most business, e-commerce, and personal systems

Software engineering ethics

1. Confidentiality You should normally respect the confidentiality of your employers or clients irrespective of whether or not a formal confidentiality agreement has been signed

software failures are a consequence of two factors:

Increasing demands Low expectations

There are many different types of application including

Stand-alone applications These are application systems that run on a local computer, such as a PC

Batch processing systems

These are business systems that are designed to process data in large batches.

Software requirements

Use case diagram A statement of a functional requirement (a specific task undertaken on behalf of a specific class of user)

The waterfall model is an example of

a plan-driven process

Customized (or bespoke) products

these are systems that are commissioned by a particular customer

The artefacts that must be signed off to allow the 'Lifecycle objectives' milestone to be met at the end of the inception phase, for example, should be based on:

• project scope definition • cost and schedule definitions • risk identification • project feasibility • plans for the project (development) environment.


Conjuntos de estudio relacionados

4. Sophia - Introduction to Statistics (3) - Unit 4

View Set

AH Exam 1: Chapter 22, Ch 22: Management of Patients with Upper Respiratory Tract Disorders, Chapter 22: Management of Patients With Upper Respiratory Tract Disorders

View Set