Unit 6 Assignment 2 Chris Boardley.

Slides:



Advertisements
Similar presentations
Modular Design Using Subroutines (functions later)
Advertisements

Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Programming Paradigms and languages
P5, M1, D1.
Unit 6 Assignment 2 Chris Boardley.
Programming Logic and Design Fourth Edition, Introductory
Documentation 1 Comprehending the present – Investing in the future.
Software Engineering and Design Principles Chapter 1.
Chapter 2: Input, Processing, and Output
Understanding the Mainline Logical Flow Through a Program (continued)
Chapter 1 Program Design
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Algorithm Programming Coding Advices Bar-Ilan University תשס " ו by Moshe Fresko.
Principles of Procedural Programming
Software Development Unit 6.
Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
Unit Six Assignment 1 Chris Boardley.
Introduction to High-Level Language Programming
Higher Grade Computing Studies 1. Software Development Cycle Higher Computing Software Development S. McCrossan 1 Introduction The development of a piece.
Program development & programming languages Chapter 13.
1 Shawlands Academy Higher Computing Software Development Unit.
CSE 303 – Software Design and Architecture
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Lesson 6. GCSE Computing – programming languages Candidates should be able to:  describe common tools and facilities available in an integrated development.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
SE: CHAPTER 7 Writing The Program
I Power Higher Computing Software Development The Software Development Process.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
Introduction to Computer Application (IC) MH Room 517 Time : 7:00-9:30pm.
Writing and Editing Modular Documentation: Some Best Practices Yoel Strimling (Comverse) Based on a joint presentation with Michelle Corbin (IBM) at the.
Code Development Code development for end user systems.
Incremental Design Why incremental design? Goal of incremental design Tools for incremental design  UML diagrams  Design principles  Design patterns.
The Software Development Process
PROGRAMMING GUIDELINES. SYLISTIC GUIDELINES  Meaningful names for identifiers Identifiers identify different parts of C++ programs. Identifiers should.
Intermediate 2 Computing Unit 2 - Software Development.
Design and Planning Or: What’s the next thing we should do for our project?
Chapter 1 Introduction Visual Basic.NET. Copyright (c) 2003 by Prentice Hall Provided By: Qasim Al-ajmi 2 Objectives Explain what Visual Basic is Contrast.
Chapter Topics 2.1 Designing a Program 2.2 Output, Input, and Variables 2.3 Variable Assignment and Calculations 2.4 Variable Declarations and Data Types.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Implementation Topics Describe –Characteristics of good implementations –Best practices to achieve them Understand role of comments Learn debugging techniques.
Principles of Programming & Software Engineering
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Working with Java.
Lecture 1 Introduction Richard Gesick.
CSCI-235 Micro-Computer Applications
Chapter 2: Input, Processing, and Output
Principles of Programming and Software Engineering
CS101 Introduction to Computing Lecture 19 Programming Languages
A451 Theory – 7 Programming 7A, B - Algorithms.
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Application Development Theory
IT Systems Analysis & Design
TRANSLATORS AND IDEs Key Revision Points.
Computer Programming.
Learning to Program in Python
Introduction to Python
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
PROGRAMMING METHODOLOGY
Design Tips.
Programming Logic and Design Fourth Edition, Comprehensive
Introduction to Computer Programming
Chapter 2: Input, Processing, and Output
Chapter 2. Problem Solving and Software Engineering
Modules, Subroutines, Procedures, Functions, or Methods
WRITING AN ALGORITHM, PSEUDOCODE, AND FLOWCHART LESSON 2.
Objectives Use primitive data types, naming conventions, and style rules Understand and apply the control structures supported in Visual Basic .NET Explain.
Programming Logic and Design Eighth Edition
Chapter 9: Implementation
Presentation transcript:

Unit 6 Assignment 2 Chris Boardley

P5 - Explain the role of software design principles and software structures in the IT systems development lifecycle.

Overview. Software design principles and software structures are used to ensure that software is written as efficiently as possible, and to reduce the risk of having poorly designed software. SDPs and SS’s provide a guide and a structure around which the software can be written throughout the development lifecycle (illustrated on the right).

Methodologies. There are many different methodologies that can provide a structure for the development lifecycle. Some examples; Waterfall. RAD. Spiral. Extreme. These can help to organise how the development lifecycle will be run.

Software Design Principles. There are three main characteristics of a bad design that should be avoided. Rigidity. Making the software rigid will make it hard to change as these changes will affect other parts of the system too much. Fragility. When changes made to the software break other parts of the system then you will have to do impact analysis on the whole project which will take time and could cost money. Immobility. When it is hard to reuse in other applications as it cannot be easily extricated. There are more advanced design principles re the actual coding of software such as the; Open Close Principle. Dependency Inversions Principle. Single Responsibility Principle. Liskov’s Substitution Principle. Interface Segregation Principle.

Basic Software Structures. Sequence. A collection of statements that are performed in order one after another. Selection. A decision or conditional statement that lets the program execute a set of code statements. Iteration (Looping). Iteration algorithms make use of loops, doing something multiple times based on conditional statements.

Some More Specific Software Structures. Procedural Structures. Procedural programming basically uses a set of computational steps (procedures) in order to accomplish a specific task. This is a fast process and because of it’s simplistic approach, it is often the paradigm used when teaching programming to beginners due to it’s relatively simple logic. Object Oriented Structures. Object orientated programming focuses on using objects rather than procedures in order to accomplish a task. This can be beneficial because it is modular, which allows separate objects to respond to the same instruction differently. Also, it allows the programmer to alter specific objects without altering the whole program. Procedural Structures Include – Modules. Procedures: Functions. Pre-defined code. Object Orientated Structures Include – Classes. Objects. Data abstraction.

M1 – Explain the importance of the quality of code.

The Importance Of Having Good Quality Code. Good quality code is important for a variety of different reasons. Here are a few examples; Having good quality code will mean that less human interaction will be required which can reduce the risk of human error, and it will make a system easier to maintain. If the quality of the code is high then the code will be easier to read and follow making any alterations or maintenance a lot faster and easier to perform. High quality code will be a lot more professional which will result in the programmers/company reputation increasing.

Key Characteristics Of High Quality Code. Reliability. Readability. Robustness. Usability. Portability. Maintainability. Low Complexity. Efficiency. Reliability – Making sure that the code will work every time that it is run without producing errors, and making sure that it’s operation is consistent. Readability – Making sure that the code is easy to read and understand. Robustness – Making sure that the code will be able to handle and data that it is presented with without error. Usability – Making sure that the code is easy to understand and edit, and making sure that it can be used by others. Portability – Making sure that the code can be run on as many different machines and operating systems as possible. Maintainability – Making sure that the code is easy to edit without difficulty. Good technical documentation will help with this. Low complexity – This can help with readability and maintenance as the code will be as simple as it can be making it easier to understand. Efficiency – Making sure that the code performs operations as quickly as possible.

D1 – Discuss the factors that can improve the readability of code.

Some Factors That Can Improve The Readability Of Code. Indentation. Syntax Highlighting. Naming conventions. New Lines. Comments. Consistency. Indentation – This can increase the readability of code as it makes the structure of the code more obvious, making it easier to follow. Syntax highlighting – This can increase the readability of code as the reader will be able to ignore large sections of comments or code when searching for a specific line, for example. This can also make finding errors easier as editors highlight string literals in a different colour, so spotting a missing delimiter will be easier because of the colour contrast in the text. Naming conventions – Using naming conventions can increase the readability of code if (for example) they are used to abbreviate long names. New Lines – This helps to structure and organise the code. These can be used to separate lines of code that are logically different, for example. This will help to define different areas of code which will make the code easier to follow. Also, having more ‘white space’ can make it easier when viewing and trying to read the code. Comments – This can help to explain what a line of code is for/what it is doing if that line of code isn’t self explanatory. If it is, then comments should be avoided as ‘over commenting’ can create clutter. Comments should preface the line of code it is describing. Consistency -  It is easier to understand code if the reader knows what to expect and where to look. If the project uses conflicting variable naming and commenting styles, for example, the reader has learn new styles and context switching, which will decrease the readability of the code.