Você está na página 1de 23

Software Engineering

Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable performance 4) with correct operation.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 1

Software Engineering


 

The economies of all developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for professional software development. Software engineering expenditure represents a significant fraction of the GNP of developed countries.
Software Engineering, 6th edition. Chapters 1,3 Slide 2

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Costs


Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost. Software costs more to maintain than it does to develop. Software engineering is concerned with costeffective software development.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 3

Software Products


Generic products:

Stand-alone systems which are produced by a development organization and sold on the open market to any customer.

Customized products:

Systems which are commissioned by a specific customer and developed specially by some contractor.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 4

Software Product Attributes


   

Maintainability Dependability Efficiency Usability

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 5

Importance of Product Characteristics




The relative importance of these characteristics depends on the product and the environment in which it is to be used. In some cases, some attributes may dominate

In safety-critical real-time systems, key attributes may be dependability and efficiency.

Costs tend to rise exponentially if very high levels of any one attribute are required.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 6

Efficiency Costs
Cost

Efficiency
Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 7

The Software Process




Structured set of activities required to develop a software system


Specification Design Validation Evolution

Activities vary depending on the organization and the type of system being developed. Must be explicitly modeled if it is to be managed.
Software Engineering, 6th edition. Chapters 1,3 Slide 8

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Engineering Process Model




  

Specification: Set out the requirements and constraints on the system. Design: Produce a model of the system. Manufacture: Build the system. Test: Check the system meets the required specifications. Install: Deliver the system to the customer and ensure it is operational. Maintain: Repair faults in the system as they are discovered.
Software Engineering, 6th edition. Chapters 1,3 Slide 9

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering is Different


 

 

Normally, specifications are incomplete. Very blurred distinction between specification, design and manufacture. No physical realization of the system for testing. Software does not wear out - maintenance does not mean component replacement.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 10

Generic Software Process Models


  

Waterfall

Separate and distinct phases of specification and development

Evolutionary

Specification and development are interleaved

Formal Transformation

A mathematical system model is formally transformed to an implementation

Reuse-based

The system is assembled from existing components

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 11

Waterfall Process Model


Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 12

Evolutionary Process Model


Concurrent activities Initial version Specification

Outline description

Development

Intermediate versions

Validation

Final version

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 13

Process Model Problems




Waterfall

High risk for new systems because of specification and design problems. Low risk for well-understood developments using familiar technology.

Prototyping

Low risk for new applications because specification and program stay in step. High risk because of lack of process visibility.

Transformational

High risk because of need for advanced technology and staff skills.
Software Engineering, 6th edition. Chapters 1,3 Slide 14

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Hybrid Process Models




 

Large systems are usually made up of several sub-systems. The same process model need not be used for all subsystems. Prototyping for high-risk specifications. Waterfall model for well-understood developments.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 15

Spiral Process Model


Determine objectives alternatives and constraints Evaluate alternatives identify, resolve risks Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Prototype 1 Concept of Operation Prototype 3 Operational protoype

REVIEW Requirements plan Life-cycle plan

Simulations, models, benchmarks S/W requirements

Product design

Development plan Integration and test plan

Requirement validation Design V&V

Detailed design

Code Unit test

Plan next phase

Integration test Acceptance test Develop, verify Service next-level product

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 16

Spiral Model Advantages


    

Focuses attention on reuse options. Focuses attention on early error elimination. Puts quality objectives up front. Integrates development and maintenance. Provides a framework for hardware/software development.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 17

Spiral Model Problems




Contractual development often specifies process model and deliverables in advance. Requires risk assessment expertise.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 18

Process Visibility


Software systems are intangible so managers need documents to assess progress. Waterfall model is still the most widely used model.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 19

Waterfall Model Documents


Activity Requirements analysis Requirements definition System specification Architectural design Interface design Detailed design Coding Unit testing Module testing Integration testing System testing Acceptance testing Output documents Feasibility study, Outline requirements Requirements document Functional specification, Acceptance test plan Draft user manual Architectural specification, System test plan Interface specification, Integration test plan Design specification, Unit test plan Program code Unit test report Module test report Integration test report, Final user manual System test report Final system plus documentation
Software Engineering, 6th edition. Chapters 1,3 Slide 20

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Process Model Visibility


Process model Waterfall model Evolutionary development Formal transformations Reuse-oriented development Spiral model Process visibility Good visibility, each activity produces some deliverable Poor visibility, uneconomic to produce documents during rapid iteration Good visibility, documents must be produced from each phase for the process to continue Moderate visibility, it may be artificial to produce documents describing reuse and reusable components. Good visibility, each segment and each ring of the spiral should produce some document.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 21

Professional Responsibility


Software engineers should not just be concerned with technical considerations. They have wider ethical, social and professional responsibilities. No clear rights and wrongs about many of these issues:

Development of military systems Whistle blowing

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 22

Ethical Issues
   

Confidentiality Competence Intellectual property rights Computer misuse

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 23

Você também pode gostar