PVK-HT051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Software Maintenance.

Slides:



Advertisements
Similar presentations
Building Bug-Free O-O Software: An Introduction to Design By Contract A presentation about Design By Contract and the Eiffel software development tool.
Advertisements

Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
INSE web pages u Please explore them! – – u EVERYONE: please follow the “ minilecture.
Software Engineering and Design Principles Chapter 1.
Introduction to Formal Methods
1 Specifying Object Interfaces. 2 Major tasks in this stage: --are there any missing attributes or operations? --how can we reduce coupling, make interface.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Karlstad University Computer Science Design Contracts and Error Management Design Contracts and Errors A Software Development Strategy (anpassad för PUMA)
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Chapter 1 Principles of Programming and Software Engineering.
1 CS 691z / 791z Topics on Software Engineering Chapter 17: Interfaces and Subsystems [Arlow & Neustadt, 2002] March 6, 2007.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Adding Contracts to Ada Ehud Lamm Adding Design By Contract to Ada.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Data Structures and Programming.  John Edgar2.
Introduction SWE 619. Why Is Building Good Software Hard? Large software systems enormously complex  Millions of “moving parts” People expect software.
SYSTEM ANALYSIS AND DESIGN
Ranga Rodrigo. Class is central to object oriented programming.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Week 2 CS 361: Advanced Data Structures and Algorithms
Introduction Ellen Walker CPSC 201 Data Structures Hiram College.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
University of Toronto Department of Computer Science CSC444 Lec05- 1 Lecture 5: Decomposition and Abstraction Decomposition When to decompose Identifying.
SWE 619 © Paul Ammann Procedural Abstraction and Design by Contract Paul Ammann Information & Software Engineering SWE 619 Software Construction cs.gmu.edu/~pammann/
111 Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract,
Low-Level Detailed Design SAD (Soft Arch Design) Mid-level Detailed Design Low-Level Detailed Design Design Finalization Design Document.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CSE 222: Software Components in Engineering (SCE) – Introduction Instructor: Jimmy Voss Disclaimer: Not all material is original. Some is taken from the.
Design Concepts By Deepika Chaudhary.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
© Paul Ammann, 2008 Design by Contract Paul Ammann CS/SWE 332.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Introduction to Classes and Objects. Real Life When a design engineer needs an electrical motor he doesn’t need to worry about –How a foundry will cast.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Industrial Project (236504) Advanced programming tools for refactoring Java code in Eclipse Student: Alexander Libov Supervisor: Dr. Ran Ettinger, IBM.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
PROGRAMMING PRE- AND POSTCONDITIONS, INVARIANTS AND METHOD CONTRACTS B MODULE 2: SOFTWARE SYSTEMS 13 NOVEMBER 2013.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 COS 260 DAY 12 Tony Gauvin. 2 Agenda Questions? 5 th Mini quiz –Chapter 5 40 min Assignment 3 Due Assignment 4 will be posted later (next week) –If.
Object-Oriented Design Concepts University of Sunderland.
CSE 240 Lecture 7. © Lethbridge/Laganière 2001 Chapter 5: Modelling with classes2 Overview Hopefully return and discuss test 1 A brief discussion of Java.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
Chapter 2 Principles of Programming and Software Engineering.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
CSCE 240 – Intro to Software Engineering Lecture 3.
Principles of Programming & Software Engineering
Modular Decomposition, Abstraction and Specifications
SWEN421 – Lecture 3 Building High Integrity Software with SPARK Ada
Design by Contract Jim Fawcett CSE784 – Software Studio
Design by Contract Jim Fawcett CSE784 – Software Studio
CSCI-235 Micro-Computer Applications
Chapter 11 Object-Oriented Design
Principles of Programming and Software Engineering
Formal Specification of Java Interfaces
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
About the Presentations
TIM 58 Chapter 8: Class and Method Design
Specifying Object Interfaces
Introduction to Components and Specifications Using RESOLVE
Design by contract Object-Oriented Software Construction by Bertrand Meyer, Prentice Hall The presence of a precondition or postcondition in a routine.
Introduction to Components and Specifications Using RESOLVE
Chapter 2. Problem Solving and Software Engineering
Formal Methods Lecture 16 March 22, 2011 CS 315 Spring 2011
Presentation transcript:

PVK-HT051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Software Maintenance

PVK-HT052 Detailed Design Activities Choose specific data structures and algorithms Refine the components from architectural design Define HOW Comments are NOT enough: Give sufficient information, so that the implementation teams can do a good job. procedure replaceText( var text: TextFile; oldWords, newWords: WordList); (* Replace in the text text all occurrences of the i-th word in oldWords by *) (* the i-th word in newWords ; oldWords and newWords must have the same*) (* length*)

PVK-HT053 Open Questions What are the word delimiters? oblank, EOL, EOF, TAB o`.´, `,´, `;´, `:´,...`_´, `&´,... Is the matching case sensitive? Must replacements have the same length? How to solve conflicts? oSeveral different replacements for the same old word oSome words in newWords appear also in oldWords oAssume the following: text:... ABC...; oldWords: AB, BC;newWords: X, Y alternative1:... XC... alternative2:... AY...

PVK-HT054 Approaches to Detailed Design Informal oStructured English Semi-formal oProgram Design Languages (PDLs) oDiagrammatical techniques Formal oFormal Specifications (e.g. Z, VDM,...) oPre-/postconditions & invariants (sometimes called programming by contracting)

PVK-HT055 Programming by Contracting Clients and servers of services “sign” contracts, i.e. servers guarantee the effects of their services offered, if and only if clients use these services correctly. function getPosition( a: array of Element; el: Element) return integer ; (* Returns the relative position of el in a *) precondition  i  [a`First..a`Last]: a[i] = el (* such an element exists *) postcondition a[getPosition( a, el)] = el and a = a.old (* getPosition really returns the position of el in a and a is unchanged *) You could even specify that the array must be sorted in ascending order to allow for a faster algorithm by adding the following to the precondition: and  i,j  [a`First..a`Last]: i < j  a[i] < a[j]

PVK-HT056 Implementation Transform the detailed design into concrete programming language code Ensure that this code correctly implements the detailed design OOPS! Many modern programming languages contain detailed design elements, e.g. Eiffel

PVK-HT057 Programming Style Remember that programs are for people to read Choose good names Comment extensively Be consistent regarding layout of code Avoid duplication of code Adhere to good object oriented principles Prefer private as opposed to public

PVK-HT058 Programming Guidelines Use separate files for each module, class, macro, inline,... definition Use separate files for the definition/specification and implementation when possible Call operations only when all preconditions are satisfied (this is the caller´s responsibility) Do not mix user interface code with non-user interface code oInteract with the user in separate classes This makes non-UI classes more reusable Avoid pointers to pointers Commit to effective naming conventions

PVK-HT059 Coding Standards Java coding standards: oThe Elements of Java Style; Vermeulen et.al. SIGS Books. ohttp://java.sun.com/docs/codeconv/html/CodeCon vTOC.doc.html Smalltalk Best Practice Patterns by Kent Beck Recommended C Style and Coding Standards by David Keppel C Programming Guidelines by Thomas Plum Ada Quality and Style: Guidelines for Professional Programmers by Software Product Consort