Implementation 1. Software Implementation – transforming design into code Requirements Analysis Software Design Implementation Testing Deployment Evolution.

Slides:



Advertisements
Similar presentations
P5, M1, D1.
Advertisements

Chapter 29: Integration Jacob Harper. The Integration Approach The order of adding components to a system is crucial Benefits to careful integration –
Programming Logic and Design Fourth Edition, Introductory
Documentation 1 Comprehending the present – Investing in the future.
Programming Logic and Design Fourth Edition, Introductory
Object Oriented Design An object combines data and operations on that data (object is an instance of class) data: class variables operations: methods Three.
Integration testing Satish Mishra
Software Engineering and Design Principles Chapter 1.
Working with JavaScript. 2 Objectives Introducing JavaScript Inserting JavaScript into a Web Page File Writing Output to the Web Page Working with Variables.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
XP 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties Tutorial 10.
CSE1301 Computer Programming: Lecture 13 Documentation.
CS 201 Functions Debzani Deb.
Chapter 1 Principles of Programming and Software Engineering.
Understanding the Mainline Logical Flow Through a Program (continued)
COBOL for the 21 st Century Stern, Stern, Ley Chapter 1 INTRODUCTION TO STRUCTURED PROGRAM DESIGN IN COBOL.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 4 Sec. 4.1, 4.2, 4.4 Procedures (User-defined)
Algorithm Programming Coding Advices Bar-Ilan University תשס " ו by Moshe Fresko.
BPC.1 Basic Programming Concepts
Programming Logic and System Analysis
Design, Implementation and Maintenance
Software System Integration
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
CH07: Writing the Programs Does not teach you how to program, but point out some software engineering practices that you should should keep in mind as.
COMP An Introduction to Computer Programming : University of the West Indies COMP6015 An Introduction to Computer Programming Lecture 02.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Structured COBOL Programming, Stern & Stern, 9th edition
PHASE 4 SYSTEMS IMPLEMENTATION Application Development SYSTEMS ANALYSIS & DESIGN.
1 Shawlands Academy Higher Computing Software Development Unit.
Software Testing.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
XP Tutorial 10New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Working with JavaScript Creating a Programmable Web Page for North Pole.
Chapter 3 Developing an algorithm. Objectives To introduce methods of analysing a problem and developing a solution To develop simple algorithms using.
School of Computer Science & Information Technology G6DICP - Lecture 9 Software Development Techniques.
CSE 219 Computer Science III Program Design Principles.
SE: CHAPTER 7 Writing The Program
Cohesion and Coupling CS 4311
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Problem Solving using the Science of Computing MSE 2400 EaLiCaRA Spring 2015 Dr. Tom Way.
An Object-Oriented Approach to Programming Logic and Design Fourth Edition Chapter 6 Using Methods.
Programming Life Cycle Problem analysisunderstand the problem Requirements definition specify what program will do High- and low-level designhow it meets.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
The Software Development Process
Chapter 3 Top-Down Design with Functions Part II J. H. Wang ( 王正豪 ), Ph. D. Assistant Professor Dept. Computer Science and Information Engineering National.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Chapter 7 Implementation. Implementation Approaches F Big bang –Code entire system and test in an unstructured manner F Top-down –Start by implementing.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Chapter 1 Software Development Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008.
CMSC 104, Section 301, Fall Lecture 18, 11/11/02 Functions, Part 1 of 3 Topics Using Predefined Functions Programmer-Defined Functions Using Input.
XP Tutorial 10New Perspectives on HTML, XHTML, and DHTML, Comprehensive 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
ICS 3UI - Introduction to Computer Science
Principles of Programming and Software Engineering
Computer Programming.
Unit 6 Assignment 2 Chris Boardley.
Programming Logic and Design Fourth Edition, Comprehensive
SYSTEMS ANALYSIS & DESIGN
CMSC 345 Programming.
Basic Concepts of Algorithm
Presentation transcript:

Implementation 1

Software Implementation – transforming design into code Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering 2

Implementation Approaches Big bang Code entire system and test in an unstructured manner Top-down Start by implementing modules on top of hierarchy and test by coding stubs Bottom-up Start by implementing modules on bottom of hierarchy and code drivers to test Feature-driven Implement and test a minimal set of modules implementing a function 3

Implementation Approaches Advantages and Disadvantages Big bang advantages None Big bang disadvantages Difficult to debug Much throwaway code Critical and peripheral modules not distinguished User does not see product until very late in the development cycle 4

Implementation Approaches Advantages and Disadvantages Top-down advantages Separately debugged modules System test by integrating previously debugged modules Stubs are easier to code than drivers User interfaces are top- level modules Top-down disadvantages Stubs must be written Low-level, critical modules built last Testing upper-level modules is difficult 5

Implementation Approaches Advantages and Disadvantages Bottom-up advantages Separately debugged modules System test by integrating previously debugged modules Testing upper-level modules is easier Bottom-up disadvantages Drivers must be written Upper-level, critical modules are built last Drivers are more difficult to write than stubs User interfaces are top- level modules 6

Implementation Plan Specifies which implementation strategy will be employed Divides the project into phases Specifies a schedule for each phase including the following steps for each phase: Coding Unit testing Integration of units Integration testing 7

Sample Implementation Plan Schedule Week number Activity Phase I coding Phase I unit testing Phase I integration Phase I integration testing Phase II coding Phase II unit testing Phase II integration Phase II integration testing 8

Programming Standards Most organization insist that their code conform to style, format and content standards. Coding standards help organizations in several ways: Codes and associated documentation are clear to everyone. Standards and procedures help the organization of thoughts and avoid mistakes. Individuals can leave and return to their work without losing track of what they were doing. Standardized documentation helps in locating faults and making changes. Standardized documentation clarifies which section of your program perform which functions. Standards and procedures help in translating designs to code, and make changes in design easier to implement in the code. 9

Programming Standards “A most critical standard is the need for a direct correspondence between the design components and the code components. This correspondence should occur in such areas as modularity, coupling, cohesion, etc. Without this correspondence testing, maintenance and configuration management become impossible.” 10

Why Programming Standards? The need to return to the code later to correct a problem, integrate a new feature, or tune for performance. It should be possible to determine what you are doing without reading the code line by line. waste resources?, misinterpret the original intent?, introduce errors? A well documented program will be easier to modify, debug, and maintain. 11

Programming Standards Areas where standards are usually applied End-user documentation Application design documentation Source code Layout & Style Classes/modules Methods/procedures Coding for Efficiency 12

Programming Standards End-user Documentation “There's nothing more frustrating for a user than to be sitting in front of an application and not know how to accomplish a task that the application is capable of doing.” Provide online help Provide user manuals Provide Developers manual? write the documentation at the level of understanding of the people who will use the software. 13

Programming Standards Application Documentation Give the application a name. State the goal of the application. Describe the features/packages of the application. Provide a list of the features the application will support and how the features will be integrated into the final product. Develop an implementation strategy. Break down the major components of the application design, describing how each will be implemented into the application and integrated with the other components. 14

Layout & Style Programmers should strive for simple and readable code Shorter code is usually simpler code Simpler code typically contains fewer decisions Excessively nested logic should be avoided 15

Layout & Style Indent properly. Indent all the code within methods, indent all conditionals and loops, etc. Use white space liberally. Use inline comments liberally. Code should be simple and easy to read 16

Comments and Internal Documentation Most successful software systems exist for several years and require modification during that time Comments are the chief source of information about the source code, and thus are extremely important A header comment block summarizes the purpose of a module (class or method) Line comments are inserted into the source code to explain the objectives of a subset of the instructions comprising a module to describe data declarations and blocks of code where the purpose of a statement is not entirely obvious Each major control structure (loop, selection) should be clarified through a line comment 17

Comment Blocks Place a header comment block at the top of each method/module. what the method is called who wrote it where it fits in the general system when the method was written and revised why the method exists how it uses its data structures and algorithms. Expected input and possible output Expected extensions or revisions 18

Programming Standards Modularization Rules: Each method must perform only one task Global variables should be used with care. Data should be shared through the parameter list If, during implementation, a need arises for a class not specified in the design, the design must be reexamined before the new class is implemented Separate data management from the user interface. Write separate procedures to manage data and call them from the user interface code. Give each module a clear, simple name that indicates what it does. 19

Programming Standards Declarations: All variables must be declared and explicit types used Name of variables and methods should describe their content or usage. An exception can be made for naming subscripts and counters Declarations of any files should precede variable declarations Declarations of instance variables in a class should precede method definitions 20

Programming Standards Naming Conventions: Name of variables and methods should describe their content or usage. E.g. a variable that represents the total number of employees EmployeeTotal or EmployeeCount Is much better than n. Use abbreviations consistently. "Tm", for example, is only two characters shorter than "Time" and much less readable. Use common tags but be consistent Num for Number, Idx for Index, … Don't use Num some of the time and Number or Count at other times. 21

Programming Standards Naming Conventions: Make the name readable. A good rule to apply here is that you should be able to read your code to someone over the phone and have them be able to write it down without asking you for spellings. Use a noun for variables - a word that represents the data. Use a noun and a verb for procedures. E.g. "AddContact" for a procedure that adds a new contact to a database. 22

Programming Standards User interface: Put control in the hands of the users. provides features so users can customize their environment. design interface to have the look, feel, and functionality of the applications with which users are already using. Integrate your application with the operating system. associating file types with your application supporting drag and drop where applicable supporting mail features, etc. Apply the quality function deployment paradigm 23

Quality function deployment Goal Maximize user satisfaction Needs of user  software requirements Requirements Normal requirements Expected requirements Exciting requirements 24

Performance & Perception True Performance This is the actual speed at which the code is executing Perceived Performance This is the performance as perceived by the user. 25

Performance Two basic ways to increase the perceived performance of an application: Distract the user during long processes. Splash screens, pretty pictures, and progress meters are common tools used to give users something to look at while a long running process is taking place. Give users something else to do during long processes. When possible, you should try to move time consuming tasks into a background process and allow the user to continue with something else while the process is running. 26

Examples of Coding Standards Examples of Java coding standards may be found Here Here 27

Summary Understand the problem before you begin building the solution. Follow accepted standards for code/user interface design. Write code that is readable. Separate user interface and data management. Design for the most efficient use of the program by the user. Design code that can be re-used. Keep the program simple Localize input and output 28

The End 29 ______________________ Devon M. Simmonds Computer Science Department University of North Carolina Wilmington ____________________________________________ _________________ Qu es ti ons?