Introduction to Programming and Software Development CMPCD1017 Session 1:Introduction to Software Development.

Slides:



Advertisements
Similar presentations
Developed by Reneta Barneva, SUNY Fredonia
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
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
LECTURE-2. Software Is a Product Designed by software engineers. Consists of : –Programs - that execute within a computer and provides desired functions.
WKES 3202 SOFTWARE REQUIREMENTS ENGINEERING SEMESTER 1 SESSION 2004/2005.
Software Engineering General Project Management Software Requirements
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
Course Instructor: Aisha Azeem
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Introduction to Computer Technology
Introduction to Programming G50PRO University of Nottingham Unit 1 : Introduction Paul Tennent
Powered by DeSiaMore1 Programming Concepts David T. Makota Department of Computing & Information Technology (CIT) The Institute of Finance Management Dar.
1 Software Engineering CEN5035 copyright © 1996, 2001 R.S. Pressman & Associates, Inc.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
CIS 321—IS Analysis & Design
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
Chapter 1 The Systems Development Environment
Managing the development and purchase of information systems (Part 1)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Requirements Engineering CSE 305 Lecture-2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Lecture 1Software Engineering1 (Trimester I Session 2002/2003) Lecturer / Tutor Name : Mr. R. Logeswaran
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 1 Software and Software Engineering Discussion of the Software Product.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 Introduction to Software Engineering Lecture 1.
The Systems Development Life Cycle
Object-Oriented Analysis and Design Fall 2009.
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
INPUT#3 SOFTWARE ENGINEERING. QUALITY SOFTWARE?  Satisfies the needs of the users and programmers involved with it.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
Systems Analysis and Design in a Changing World, Fourth Edition
MIS 105 LECTURE 1 INTRODUCTION TO COMPUTER HARDWARE CHAPTER REFERENCE- CHP. 1.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
INTRODUCTION TO SOFTWARE DEVELOPMENT (SOFTWARE ENGINEERING-I)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Unit F451 Computer Fundamentals Components of a Computer System Software Data: Its representation, structure and management in information.
Software and Software Engineering By bscshelp.com software engineering 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Information Systems Development
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
CSCI-235 Micro-Computer Applications
Chapter 1 The Systems Development Environment
Systems Analysis and Design
Chapter 1 The Systems Development Environment
Information Systems Development
An Overview of Software Processes
Software and Software Engineering
Chapter 1 The Systems Development Environment
Presentation transcript:

Introduction to Programming and Software Development CMPCD1017 Session 1:Introduction to Software Development

2 Content Software  What is Software?  Types of Software  Why develop new Software? Introduction to Software Development  Process Models  The Waterfall Model Introduction to Computer Programming  System Software  Languages Module Overview

3 Software Why is it so important?  The economies of ALL developed nations are dependent on software. 9/11 highlights this with the destruction of the stock exchange computers  More and more of our daily lives are being supported/monitored by software The engines of our cars Our washing machines Getting on a bus/train

4 What is Software? Software is the part of a computer that makes it useful.  In this module we are going to focus upon application software development. Software is not tangible.  It is ‘conceptual’ so doesn’t wear out like hardware. Software is a set of instructions (Programs).  These are acted upon (executed) by the hardware.  Software is also the documents that describe the operation and use of the programs. Hardware Operating System Application { The Computer Software Windows 98/2000/XP Linux/Unix Browser Word Processor Sommerville: Chapter 1 & 2

5 What does it do? Generally software takes in data and processes it into information. The many different types of software basically vary from where/whom data is acquired and where/whom information is sent/given. Hardware Operating System Application Data InProcessing Information Out From the user/device /sub-system To the user/device /sub-system

6 Types of Software Generic (Off-the-shelf) Applications  Well known packages such as word processors, accounting, image editing, … to name but a few.  Anyone is able to buy them. Bespoke (Customized) Products  Systems that are built specifically for individual people/organisations. They can also be generic software packages that are customized.  The high-cost nature of this type of software means it is not economically available to all. Hardware Operating System Application

7 Types of Software System Software  This type of software exists at the Operating System layer. It is the operating system itself, compilers, editors….any kind of software that supports the execution and/or development of applications. Application Software  Real-time Software Programs that monitor/analyse/control real world events. A nuclear power plant cooling system is a good example. Hardware Operating System Application

8 Types of Software Application Software  Business Software Business Information Systems such as payroll, accounts and order management/tracking. There are off-the-shelf packages available for small businesses, however large businesses usually develop their own software.  Engineering and Scientific Software Typically ‘number crunching’ programs for areas such as astronomy, molecular biology, weather forecasting and Computer Aided Design (CAD) for engineers. Generic programs do exist for some of these areas, however research usually requires new software to be developed. Hardware Operating System Application

9 Types of Software Application Software  Embedded Software Intelligent products such as cookers, washing machines and microwaves use embedded software that typically resides in a Read Only Memory (ROM). Due to the individual nature of such products this software is usually developed/tailored for each.  Personal Computer Software Spreadsheets, word processors, computer graphics, multimedia and database applications are typical. This type of software is predominantly off the shelf but does go through many versions to remove bugs and increase functionality. Hardware Operating System Application

10 Types of Software Application Software  Artificial Intelligence (AI) Software AI is used to solve complex problems such as scheduling the maintenance of manufacturing equipment to minimise their shutdown. Other uses include pattern recognition (speech/visual). This software is typically newly developed for each application. The application of computers through software development is only limited by our imaginations……(and its’ cost) Hardware Operating System Application

11 Why develop new Software? As hardware will always eventually wear out, it will need to replaced. Software on the other hand, doesn’t wear out in this traditional sense, but will become increasingly less useful as users requirements for it changes over time.  This means that software needs to be either periodically updated or replaced. Understanding the process of software development is therefore paramount in keeping software systems/applications continually useful to its users.

12 Introduction to the Software Development Process There are many documented software development processes; too many to mention here. However, all software development processes can be categorised into:  Sequential Process Models Were software is developed in a sequence of stages, typically: Analyse, Design, Code, Test.  Iterative Process Models Were a sequential process model is repeated until the software is deemed correct. Typically used when the requirements for a piece of software are not fully known when development starts. Sommerville: Chapter 3

13 The Prototyping Model (Iterative) This allows the requirements of the system to be explored by the customer. Once the customer is satisfied with the software system, it can then be taken as the final system or thrown away to allow a fresh system to be developed from the requirements specification. Listen to customer - Analyse their Requirements Build/revise mock-up Customer test-drives mock-up Start Finish Spec

14 The Waterfall Model (Sequential) While other process models will be investigated in this module, we will be focussing upon the central stages of the Waterfall Model of Software Development. Analysis Design Code Test Requirements Software

15 Analysis (Waterfall Model) The analysis phase of software development aims to develop a requirements specification that can be used to design the new software system. While there is usually more to a requirements specification, we will be focussing on two of its main parts:  Functional Requirements First, an abstract definition of what the system must do. Then, a detailed set of functional requirements can be bulleted.  Non-functional Requirements Usually ‘qualitative’ factors such as performance, efficiency and usability are described.

16 Design (Waterfall Model) System design is concerned with how the system functionality is to be provided by the different components of the system. It involves:  Requirements Partitioning and Identification of Sub-systems (if any)  Assign requirements to sub-systems and specify their functionality  Define sub-system interfaces

17 Design (Waterfall Model) For each sub-system, a detailed design document is then created.  It specifies the structural make-up of the sub-system and were necessary how data is stored, manipulated and communicated as well as how information is presented. Design is often an iterative process, especially in a system made up of several sub-systems  As problems identified during the design of one sub-system can cause the re-design of another. Design is typically specified using a mixture of textual descriptions and structural diagrams.

18 Coding (Waterfall Model) Coding can be seen as simply interpreting the design documents into machine executable instructions.  There are many different programming languages Factors including the application’s domain will help in making a choice of which programming language to use:  Platform (Hardware, Operating System, Network),  Programming Paradigm (Object-Oriented/ Function- based/Event-based)  Experience of the ‘programmers’ available to do the coding.

19 Testing (Waterfall Model) Testing should start as soon as the requirements specification is available. A test plan document should be drawn up in parallel with the initial design of the system  The plan uses the requirements to provide an overall testing strategy for the complete system in order to satisfy the following conditions: Verify – Have we built the system right? Validate – Have we built the right system?

20 Testing (Waterfall Model) As a more detailed design for each of the sub-systems is generated, specific testing strategies for each sub-system can be designed When the code for a sub-system is complete, specific tests for each sub-system can be designed based upon the chosen strategy

21 Introduction to Computer Programming (Coding) As mentioned previously, coding is interpreting a design into a set of instructions for the computer to execute. There are many languages that can be used to code a program:  (Abstractly) High-Level Languages Java, C, C++, Pascal  Low –Level Languages Assember, Machine Code

22 Introduction to Computer Programming In this module we will be using Java, a high- level language. Although it is an object-oriented language we will not be teaching or examining on the object-oriented part of the language.  Instead we will be using Java as if it were a functional language, like C or Pascal.  The course book supports this approach of using Java to teach programming in this way.

23 Introduction to Computer Programming Throughout the module we will be helping you understand how programs are built and tested. Their structural make-up is central to this:  Sequence of instructions  Iteration of instructions  Selection of instructions  Grouping of Instructions In this case Functions

24 Module Overview Semester 1  Software Development Process, Project Management, Requirements Analysis and Specification, Testing and Debugging, Problem Solving  Book: ‘Software Engineering’, 7 th Edition, Ian Sommerville, Publishers: Addison Wesley Semester 2  Problem Solving, Design, Coding (Programming)  Book: ‘Introduction to Java Programming, Comprehensive’, 5 th Edition, Y. Daniel Liang, Publishers: Prentice Hall, ISBN: This book will not be available until December, but will not be needed until Semester 2

25 Module Overview This module is assessed using 100% coursework  Coursework 1 (40% of the module mark) Given out week starting 1 st November 2004 To be handed in 17 th January 2005 Several small essay type questions and the production of a requirements specification and test plan.  Coursework 2 (60% of the module mark) Dates to be confirmed at the beginning of semester 2 Production of a software system, from requirements specification through design, coding and testing.