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

Slides:



Advertisements
Similar presentations
System Development Life Cycle (SDLC)
Advertisements

ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
Ch 3 System Development Environment
Information Systems Analysis and Design
The System Development Life Cycle
Sixth Edition 1 M a n a g e m e n t I n f o r m a t i o n S y s t e m s M a n a g I n g I n f o r m a t i o n T e c h n o l o g y i n t h e E – B u s i.
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
7.2 System Development Life Cycle (SDLC)
Copyright 2006 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Third Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
Introduction to Systems Analysis and Design
Introduction to Software Testing
Design, Implementation and Maintenance
Introduction to Computer Technology
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1.1.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
Effective Methods for Software and Systems Integration
SYSTEM ANALYSIS AND DESIGN
Managing Software Quality
CSI315 Web Applications and Technology Overview of Systems Development (342)
Managing the development and purchase of information systems (Part 1)
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
Software System Engineering: A tutorial
Business Systems Development SDLC and introduction to the Microsoft Solutions Framework Team and Process Models.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
SENG521 (Fall SENG 521 Software Reliability & Testing Software Product & process Improvement using ISO (Part 3d) Department.
End HomeWelcome! The Software Development Process.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
I Power Higher Computing Software Development The Software Development Process.
I am an IT Software Engineer. Hello !!. L1 : INTRODUCTION  Goals of Software Engineering:  What IT Demands Today ?  IT Products Design Methodologies.
Computers Are Your Future Tenth Edition Chapter 13: Systems Analysis & Design Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall1.
Systems Life Cycle A2 Module Heathcote Ch.38.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Systems Development Life Cycle
Lecture 2 System Development Lifecycles. Building a house Definition phase Analysis phase Design phase Programming phase System Test phase Acceptance.
Software Development Life Cycle (SDLC)
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
MANAGEMENT INFORMATION SYSTEM
The System Development Life Cycle
Software Quality Control and Quality Assurance: Introduction
System.
Software Verification and Validation
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering (CSE 314)
CHAPTER 2 Testing Throughout the Software Life Cycle
The System Development Life Cycle
Introduction to Software Testing
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software life cycle models
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
(System Development Life Cycle)
The Software Development Process
System Analysis and Design:
Week 10 Systems Development
Presentation transcript:

Software Engineering For Beginners

General Information Lecturer, Patricia O’Byrne, office K115A. – –Or Times: –See noticeboard outside School of Computing office. Notes: on WEBCT See also ering ering

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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 from within an application. –Handling messaging without holding up other applications. BIG applications!