COMP6015 An Introduction to Computer Programming

Slides:



Advertisements
Similar presentations
Software Engineering - Specifications 1 Specifications Specification document must be clear, complete and correct.
Advertisements

Software Design Fundamentals
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Lecture # 2 : Process Models
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
Chapter 2 – Software Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Design Concepts and Principles
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.
Chapter 4 Enterprise Modeling.
Implementation and Integration1 Concepts and practices.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
Chapter 9 Describing Process Specifications and Structured Decisions
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Spring 2009CS 225 Introduction to Software Design Chapter 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CSC230 Software Design (Engineering)
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Software Process Activities. Process activities Real software processes are inter-leaved sequences of technical, collaborative and managerial activities.
Software Life Cycle Model
Introduction to Computer Technology
System Analysis & Design
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
ITEC224 Database Programming
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
SOFTWARE DESIGN.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 Introduction to Software Engineering Lecture 1.
CSC 395 – Software Engineering Lecture 28: Classical Analysis -or- Do You Really Want to Do That?
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Design Concepts By Deepika Chaudhary.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
The Software Development Process
Software Design Process
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Engineering Lecture 10: System Engineering.
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.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
 System Requirement Specification and System Planning.
MANAGEMENT INFORMATION SYSTEM
Methodologies and Algorithms
Software Design Principles
System Design and Modeling
Lecture 9- Design Concepts and Principles
Software Processes (a)
Software life cycle models
Lecture 9- Design Concepts and Principles
Chapter 1 Introduction(1.1)
CS310 Software Engineering Lecturer Dr.Doaa Sami
Presentation transcript:

COMP6015 An Introduction to Computer Programming Lecture 08 COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Customer sees an Opportunity!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering How the customer explained it! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering How the project leader understood it!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering How the analyst designed it!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering How the programmer coded it!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering How Marketing described it!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering How the project was documented!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering What operations installed!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering What the customer was billed!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering How it was supported!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering What the customer actually wanted!!! COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software specification Software design and implementation Software Engineering A structured set of activities required to develop a software system. Activities include: Software specification Software design and implementation Software integration and validation Software maintenance and evolution COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software specification: The process of establishing what services are required and the constraints on the system’s operation and development. Requirements engineering process Feasibility study; Requirements elicitation and analysis; Requirements specification; Requirements validation. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software specification: Specification documents Must be: Clear Complete Correct Understood by both the client as well as the future design teams. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software specification: Specification documents Must also clearly outline the constraints of the proposed system including: Restrictions on hardware Portability Reliability Timing other resource usage issues.  COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software specification: Specification documents Can be expressed: Informally Semi-formally Formally COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software specification: Specification documents Informal Specification Takes the form of natural language to express the specifications in statements such as: "If the total revenue generated from sales for the previous quarter are higher then the total sales from the current quarter then raise prices by 0.5%" Despite best attempts at grammatical and linguistic exactitude, informal specifications tend to be ambiguous, incomplete and imprecise. Nevertheless this method is still very popular and potential misunderstandings may be caught by working closely with the client. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software specification: Specification documents Semi-formal Specification A variety of semi-formal techniques exist for writing specifications, including :- Data Flow Diagrams (DFDs) Entity-Relationship Modeling A Data Flow Diagram is a pictorial representation of all aspects of the logical data flows. DFDs are developed using stepwise refinement techniques and will go through a set of revisions/clarifications while they are being developed. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Semi-formal Specification Software Engineering Software specification: Specification documents Semi-formal Specification Entity-Relationship Modeling Technique used to specify databases, relations and processes. ERMs allow a range from very simple to very complex relationships to be expressed. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Formal Specification Software specification: Specification documents Formal Specification This includes the use of finite state machines, Petri nets, formal specifications language languages. Formal techniques require a higher level of mathematical rigor than semi-formal techniques. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software specification: Pros & Cons of Techniques Informal techniques are relatively easy to learn but does not have the power, expressiveness and clarity of semi-formal or formal techniques. Formal techniques are powerful but are hard to learn and use. The client may have difficulty in understanding formal specifications. Many times circumstances will dictate the technique that is used. If no one is familiar with formal techniques then an informal or semi-formal approach will have to be taken. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software design and implementation Software design is a meaningful engineering representation of some software product that is to be built. Design should be traced to the customer's requirements and could be assessed for quality against predefined criteria. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software design and implementation In the software engineering context, design focuses on four major areas of concern: Data Architecture Interfaces Components. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Data Software Engineering Software design and implementation Created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software. Part of the data design may occur in conjunction with the design of software architecture. More detailed data design occurs as each software component is designed. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Architecture Software design and implementation Defines the relationships among the major structural elements of the software, the “design patterns” and can be used to achieve the requirements that have been defined for the system, and the constraints that affect the way in which the architectural patterns can be applied. It is derived from the system specification, the analysis model, and the subsystem interactions defined in the analysis model (DFD). COMP6015 - An Introduction to Computer Programming : University of the West Indies

Interfaces Software Engineering Software design and implementation Describes how the software elements communicate with each other, with other systems, and with human users. The data flow and control flow diagrams provide much of the necessary information required. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Components Software design and implementation Created by transforming the structural elements defined by the software architecture into procedural descriptions of software components using information obtained from the process specification (PSPEC), control specification (CSPEC), and state transition diagram (STD). COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software design and implementation The fundamental design concepts are: Abstraction - focus on solving a problem without being concerned with lower level details. Refinement - provides successively more detail for each design component. Modularity – understanding components independently of one another. Software architecture - structure and conceptual integrity of the software components. Control hierarchy or program structure - module organization (control hierarchy; not concerned with procedural aspects of software). COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software design and implementation The fundamental design concepts are: Structural partitioning – (Horizontal) define input, data transformations, and output); (vertical) top-down refinement Data structure - logical relationship among individual data elements Software procedure - precise specification of processing (event sequences, decision points, repetitive operations, data organization/structure) Information hiding – Modules’ need-to-know basis COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Implementation Software design and implementation The process of translating the detailed design into code. Generally done by teams all working at the same time on different components of the product. Major documentation provided in this stage is the source code; however, the programmer should provide additional documentation to assist in maintenance. This additional documentation includes all test cases against which the code should be tested, the expected results, and the actual output. These documents will be used in regression testing. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Software design and implementation: Implementation Issues involved: Choice of programming language In many cases, there is no opportunity for choice because either only one choice is available or management stipulates that the product should be implemented in a given language. A cost-benefit analysis may be employed to decide on the language. The language with the largest expected gain would be the one selected. A risk analysis may also be used to aid in the selection of the language. The language with the smallest overall risk is selected. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Issues involved: Software design and implementation: Implementation Issues involved: The use of 4th generation languages (4GLs) The ease of programming The program is shorter, quicker to develop and easier to maintain There is a potential productivity gain 4GLs such as FoxPro and PowerHouse have case tool features (e.g. automatic documentation) which aid in the implementation process. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Issues involved: Software design and implementation: Implementation Issues involved: Use of good programming practices use of consistent and meaningful variable names provision of proper documentation; both prologue and inline comments use of parameters (as opposed to constants) well formatted source code to increase readability; good use of blanks and indentation to highlight control structures. Structured programming (i.e. modular programming) is also advised to improve code quality, maintainability and decrease the effort required for testing.   COMP6015 - An Introduction to Computer Programming : University of the West Indies

Waterfall Model Software Engineering Software Development COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Waterfall Model Advantages Testing is inherent to every phase of the waterfall model It is an enforced disciplined approach It is documentation driven, that is, documentation is produced at every stage Disadvantages Changes may cause considerable confusion as the project progresses.  As The client usually only has a vague idea of exactly what is required from the software product, this WM has difficulty accommodating the natural uncertainty that exists at the beginning of the project. The customer only sees a working version of the product after it has been coded. This may result in disaster if any undetected problems are precipitated to this stage. COMP6015 - An Introduction to Computer Programming : University of the West Indies

Incremental Model Software Engineering Software Development COMP6015 - An Introduction to Computer Programming : University of the West Indies

Software Engineering Incremental Model Model combines the elements of the waterfall model with the iterative philosophy of prototyping. However, unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment. Example of incremental approach: Develop a Word Processor 1.  Basic file management, editing and document production functions. 2. Advanced editing and document production functions 3. Spell and grammar checking 4. Advance page layout COMP6015 - An Introduction to Computer Programming : University of the West Indies