software engineering for beginners. general information lecturer, patricia o’byrne, office k115a....

24
Software Engineering For Beginners

Post on 21-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Software Engineering

For Beginners

Page 2: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

General Information• Lecturer, Patricia O’Byrne, office K115A.

– email [email protected]– Or– [email protected]

• Times:– See noticeboard outside School of Computing office.

• Notes: on WEBCT• See also

www.comp.dit.ie/dt228/2/software%engineering

Page 3: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Reasons for Discipline

• How easy is it to:– Write a ‘Hello World’ program?– Write a 2-D sort program?– Write a game of ‘PONG’?– Write a game of ‘Space Invaders’?– Adapt the current ‘School of Computing’ home page?– Write a full suite of web pages to sell second-hand

goods?– Write a full suite of applications to run a bank?

• Scale requires discipline

Page 4: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Experience so far

• Stored program concept.

• File I/O.

• User I/O.

• Mainly single program systems.

• Scale has not been a problem.

Page 5: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Stored Program Concept

• Data area• Procedural area• Input• Output input Output

Data

Instructions

Program

Page 6: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Software System

• A Software System is an interrelated set of elements that are viewed as a whole and designed to achieve a purpose. It comprises:-– software– hardware– documentation– method of operation– users and operators

• e.g. hotel reservations system, general ledger system, POS system, game engine, media players

Page 7: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Software Quality Characteristics

• Software correctness

• Reliability

• Efficiency

• Integrity

• Usability

• Maintainability

• Testability

• Flexibility

• Portability

• Interoperability

• Reusability

• Functionality

Page 8: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Software Engineering

• Software engineering is the establishment and use of sound engineering principles in order to obtain economically quality software

Page 9: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Three Key Elements

• Methods– Technical ‘how to’s for building software

• Project management, requirement analysis, design of data structures and algorithm procedure, coding, testing and maintenance

Page 10: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Three Key Elements

• Tools– Provide support

• Procedures– Sequence in which methods are applied– Documents / deliverables produced– Controls and checks ensure quality– Milestones, to manage progress

Page 11: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Process Models and Methodologies

• Software engineering process is a set of steps that encompasses methods, tool and procedures

• Classic life cycle or waterfall model – A software engineering process

– A systematic and sequential approach to software development

– Oldest and most widely used software process model

Page 12: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Life Cycle

• Divides the development of a software system into stages or phases,– For each phase the life cycle specifies

• Activities involved in each phase• Sequence in which the activities are ordered• Deliverables produced for the phase

• At the end of each phase a phase review meeting is scheduled – To examine the deliverables from the phase– To decide whether or not to proceed to the next phase

Page 13: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Life Cycle Phases

• Planning

• Feasibility study

• Analysis

• Design

• Code and unit test

Page 14: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Planning and Feasibility

• Planning– Problem definition

• defines the problem area• produces written statement of current problem and

objectives of system

• Feasibility Study– investigates whether a practical solution to the

problem exists– produces a feasibility study report

Page 15: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Analysis and Design

• Analysis (What do we do?)– Fact finding

• investigate business process and the current system

– modelling the current and required systems– deliverables -

• requirements specification• logical models of the required system

• Design (How do we do it?) • high level system design• detailed design of components (i.e.. algorithms)

Page 16: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Code and Unit Test

• Code– programming each component of the system

– Unit test - independent testing of each component

– producing user documentation

• System Test– integrating all components and testing them together

– testing to ensure that the system meets its requirements

Page 17: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Implementation and Maintenance

• Implementation– Installing the system in the ‘live’ environment– Training the users

• Maintenance– Changing the live system

• Correcting defects reported by the users

• Implementing enhancements requested by the users

– Mini life cycle in itself

Page 18: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Life Cycle Support Activities

• Phases in the Life Cycle are complimented by a number of support activities– Project Management– Quality Assurance– Configuration Management

Page 19: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Project Management

• Co-ordination and control of the people involved in the development

• Includes• Budgeting

• Scheduling

• Monitoring progress

• Reporting status

• Corrective action

Page 20: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Quality Assurance

• Ensuring, verifying and maintaining the quality of the system to be delivered

• Includes– Performing reviews– Testing

Page 21: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Configuration Management

• Management of the documentation and code that is produced

• Include procedure for – Storage– Retrieval– Control of change

Page 22: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Simplified System Life CycleIterative process

Client Requirements

Specification of Requirements

Technical Specification

Working System

Operational ‘Live’ System

Analysis

Design

Code

InstallTest

Test Validate

Validate

Measure

Meets

Page 23: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

Advantages

• Advantages of a defined, agreed and documented approach– Consistent approach to software development is

achieved– Improved communication between developers– Better control of progress by using each phase

as a milestone or checkpoint

Page 24: Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie

What sort of systems can we write?

• Anything you’ve already written• Synchronous applications

– Games, media players, event-driven graphic user interfaces

• Non-synchronous applications– Send an e-mail from within an application.

– Handling messaging without holding up other applications.

• BIG applications!