Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –

Similar presentations


Presentation on theme: "Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –"— Presentation transcript:

1 Software Engineering For Beginners

2 General Information Lecturer, Patricia O’Byrne, office K115A. –email patricia.obyrne@comp.dit.iepatricia.obyrne@comp.dit.ie –Or –Patricia.obyrne@dit.iePatricia.obyrne@dit.ie Times: –See noticeboard outside School of Computing office. Notes: on WEBCT See also www.comp.dit.ie/dt228/2/software%engine ering www.comp.dit.ie/dt228/2/software%engine ering

3 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

4 Experience so far Stored program concept. File I/O. User I/O. Mainly single program systems. Scale has not been a problem.

5 Stored Program Concept Data area Procedural area Input Output input Output Data Instructions Program

6 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

7 Software Quality Characteristics Software correctness Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Interoperability Reusability Functionality

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

9 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

10 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

11 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

12 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

13 Life Cycle Phases Planning Feasibility study Analysis Design Code and unit test

14 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

15 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)

16 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

17 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

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

19 Project Management Co-ordination and control of the people involved in the development Includes Budgeting Scheduling Monitoring progress Reporting status Corrective action

20 Quality Assurance Ensuring, verifying and maintaining the quality of the system to be delivered Includes –Performing reviews –Testing

21 Configuration Management Management of the documentation and code that is produced Include procedure for –Storage –Retrieval –Control of change

22 Simplified System Life Cycle Iterative process Client Requirements Specification of Requirements Technical Specification Working System Operational ‘Live’ System Analysis Design Code Install Test Validate Measure Meets

23 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

24 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!


Download ppt "Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –"

Similar presentations


Ads by Google