Unit 6 - Software Design and Development LESSON 1 INTRODUCTION
What is covered in this session Introduction to unit and reference sources Schedule for assignments
Introduction From this unit the learner will: 1. Know the features of programming languages 2. Understand the principles of software design 3. Be able to use tools to demonstrate software designs.
Assignment Schedule Lesson 3 Assignment 1 Which language? - Covers P1, P2, P3, P4 Around week 6 - Assignment 2 Design workshop- Covers P5, M1, D1 ~ Week 9 Assignment 3 Good Design!- Covers P 6, M2, D2
Some useful references Pilone & Miles, Head First Software Development, O Reilly Media, USA, 2008, Anderson et. al, Information Technology Level 3 Book 1 pp 161 188, PearsonUK, 2010 https://www.codecademy.com/
Where is IT used? List as many industries as you can where IT is used. Football Architect Dairy farm Fire and Rescue Botanic Garden Magazine Car manufacturer Chocolate factory http://www.bbc.co.uk/programmes/b00zsc2s/clips
Problem Firemen (farmers, footballers, car designers etc., etc ) are not programmers Programmers are not firemen (farmers, footballers, car designers etc., etc ) Issues caused by: Poor understanding of user need Poor planning
This unit.. focuses on the design and development process systems development life cycle looks at programming concepts examines the business context within which solutions can be developed explores the tools that can be used to demonstrate software designs
Writing computer programs Programmers use an IDE (Integrated Development Environment) to enter their code. It is possible to use a text editor such as Notepad to enter your code but this is difficult and requires specialist knowledge.
Writing computer programs Examples required in this unit Use an IDE from Microsoft called Visual Studio 2015 Use VB.net as main programming language. Predominantly Form based programs. Form based programs use a GUI (graphical user interface).
LO 1: Know the features of programming languages Programming paradigms Types of language Reasons for choice of language Features Data types
Programming paradigms Greek paradeiknunai to show side by side - A typical example or pattern of something; a pattern or model Style (or different approaches) of programming
Programming Computer = hardware + software Hardware So much twisted metal Software Firmware Operating systems Applications i.e. programs
Programming Computer reads binary (or as the computer sees it 010000110110111101101101011100000111010101 11010001100101011100100010000001110010011 00101011000010110010001110011001000000110 001001101001011011100110000101110010011110 01
Programming Use symbolic languages with human-like statements Different approaches paradigms (01110000011000010111001001100001011001 0001101001011001110110110101110011)
Programming paradigms a fundamental style of computer programming, a way of building the structure and elements of computer programs. some programming languages are designed to follow only one paradigm, while others support multiple paradigms. http://en.wikipedia.org/wiki/programming_paradigm E.g. Unit 16 Procedural programming
Programming Paradigms three main types: Procedural Object oriented Event Driven Others include: Scripted Visual Can you name a visual programming language?
Other languages E.g. HTML A mark-up language, not a true programming language. Does not contain instructions to control the flow of the program, such as decision statements. (e.g. if..;if..else;case)
Task 1 Produce a set of PowerPoint slides which show examples of code written in different languages. The paradigms chosen must include: Procedural. Event Driven. Object Orientated (OOP). You need to include at least 2 different languages for each paradigm. For each one, state the language name, example code, what the example code does The languages chosen must include: Python, VB.net, Javascript
Task 1a Programming paradigms What sort of application could the code quoted be used in? Research the languages popularity and add this to the slide for each language you have chosen. Record the source of this information.
Visual Programming any programming language that lets you develop programs by manipulating program elements graphically rather than textually. Popular examples include: Kodu, Blockly executable UML
Visual Programming also known as dataflow or diagrammatic programming.
Task 2 Visual Programming access scratch here: http://scratch.mit.edu/ Make the cat walk to the right of the screen, turn around and walk to the left of the screen then turn around and repeat. Ext make the cat say hello when it reaches each side, vary the speed.
Paradigms Procedural. Event Driven. Object Orientated (OOP). A brief description Some typical languages Advantages Disadvantages
Procedural Programming a linear process where each program statement is executed line by line, one after the other. The program can be compiled/managed or be scripted. Some examples of procedural programming languages are : 1. C (because it comes after B) 2. Pascal (named after a French mathematician) 3. FORTRAN (formulated translation) 4. COBOL (Common Business Oriented Language)
Procedural Programming - uses Complex operations including many different, dependent operations with varying states of completion; To perform certain queries on a database When multiple users need to view or modify a database at the same time
Procedural Programming Advantages Good for general programming. Can be scripted. Good level of control, can be multi-platform. Has a Portable Source Code. Disadvantages: There are a lot of procedural languages, and you cannot learn them all, usually you learn one well. Large programs can run very slowly. Need to develop in a methodical way and test frequently. Testing can be slow as all processes need to be re-tested each time even though they have been proven to work.
Object Oriented Paradigm (OOP) a programming model organized around: objects rather than "actions" and data rather than logic. It uses the system of classes and objects, a class may hold many objects Examples: C++, C#, Python, vb.net, Java
Basic OOP Objects have to be instantiated (Created) using designs (Classes). Objects encapsulate the data and functions (methods) needed to manage the data. The designs (classes) take the most time to create. They offer great flexibility in program development and maintenance.
Basic OOP Created in the 1980 s Breaks the task into modules called classes Classes are easier to modify Improved security of data (hidden data) Easy to add functions (classes) Follows a bottom-up approach
Object Oriented Paradigm Advantages: Has a clear structure good for defining data types easy to maintain and modify existing code new objects can be added by copying and slightly changing previous code allows faster development. Low cost due to reusing code Disadvantages: Complex thought process difficult for some people to learn / get used to. Large Program size slower as more instructions must be executed.
Object Oriented Paradigm - uses Manipulating physical devices Access to file systems Physical modelling Applications where complex aggregations of data needed to be treated individually: Hospital systems Computer games
Event Driven Programming Paradigms for example, an object is clicked on and it triggers an event. used for things like renting out cars a GUI would be used when the user clicked on a button an event would be triggered detailing which cars were still available to rent Examples: C, C++, C#
Event Driven Programming Paradigms Advantages: Flexibility Used a lot with modern GUI programs allows for more interactive programs. Disadvantages: A mixture of object oriented and procedural programming similar limitations Requires large amount of processing power An extra layer of complexity Less easy to follow the logic
Task 2 Add to your definitions of the paradigms, for each one give: A brief description Some typical languages Some typical applications Advantages Disadvantages
TOOLS CLI Command Line Interface. In the past all programs were written using a CLI, one line at a time!.
Integrated Development Environment Everything needed to write a program Editor for writing instructions Additional tools e.g. pop-up help Compiler converts program to machine code Windows forms editor Creates Windows forms and controls (buttons, text boxes, check boxes etc) Debugger
IDE Integrated Development Environment. Most programs are now written using an IDE, VS201x, Eclipse, PyCharm, PHPStorm etc. Short introduction to VS2015
CASE Computer Aided Software Engineering.
CASE tools Computer Aided Software Engineering Used in large software development projects Automates parts of the process Assists in creation of design diagrams Structure charts Data flow diagrams (DFDs) Entity relationship models (ERMs)
Case Tools Unified Modelling Language (UML)
CASE tools, Class diagram
CASE tools, sequence diagram
Programming generations 1842 calculation of Bernoulli numbers Ada Lovelace 1940s Great deal of effort, Errorprone
Programming generations High-level languages use notation which is more familiar to humans: mathematical or spoken/written language.
Task 3 Using the slides created in task 1 Research each language in your slides and add the generation of languages they belong to: 1gl, 2gl, 3gl, 4gl, 5gl
Homework: - submit to Turnitin L3U06H1JohnDoe2017 Complete and submit your presentation, including speaker notes, to explain to trainees the typical applications for the major programming paradigms. Give examples of the types of program that each paradigm should be used to write. Describe the limitations of each paradigm. Include the following paradigms: Procedural Object-oriented Event-driven