Passing from design to implementation

Slides:



Advertisements
Similar presentations
Code Generation in CDE Remi Lequette ILOG.
Advertisements

Advanced Object-Oriented Programming Features
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Platforms and tools for Web Services and Mobile Applications Introduction to C# Bent Thomsen Aalborg University 3rd and 4th of June 2004.
OO Frameworks Department of Computer Science Kent State University.
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Programming Languages and Paradigms Object-Oriented Programming.
Classes Mark Hennessy Dept. Computer Science NUI Maynooth C++ Workshop 18 th – 22 nd Spetember 2006.
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent.
Introduction to Object Oriented Programming CMSC 331.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
Principles of Software Development 1 Principles Of Software Design and Development Types of language / Choosing a language.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Abstraction ADTs, Information Hiding and Encapsulation.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
Java: An Overview John R Durrett Texas Tech University.
Windows Programming, C.-S. Shieh, KUAS EC, Chapter 0 Overview.
1 Unified Modeling Language, Version 2.0 Chapter 2.
What is Java? Object Oriented Programming Language Sun Microsystems “Write Once, Run Everywhere” Bytecode and Virtual Machine Java Platform (Java VM and.
CMSC 345 Fall 2000 OO Design. Characteristics of OOD Objects are abstractions of real-world or system entities and manage themselves Objects are independent.
PROGRAMMING PRE- AND POSTCONDITIONS, INVARIANTS AND METHOD CONTRACTS B MODULE 2: SOFTWARE SYSTEMS 13 NOVEMBER 2013.
OBJECT ORIENTED PROGRAMMING. Design principles for organizing code into user-defined types Principles include: Encapsulation Inheritance Polymorphism.
Presented by Ted Higgins, SQL Server DBA An Introduction to Object – Oriented Programming.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Embedded Systems Software Engineering
Modeling with UML – Class Diagrams
Inheritance Modern object-oriented (OO) programming languages provide 3 capabilities: encapsulation inheritance polymorphism which can improve the design,
Model-Driven Approach
State transition modeling
A Hierarchical Model for Object-Oriented Design Quality Assessment
Visit for more Learning Resources
Classes C++ representation of an object
Java Yingcai Xiao.
JAVA MULTIPLE CHOICE QUESTION.
Requirements Engineering
PROGRAMMING LANGUAGES
Internationalization
Object-oriented software testing
Systems Analysis and Design With UML 2
Module 5: Common Type System
Software Reuse ©Ian Sommerville 2006.
Polymorphism.
课程名 编译原理 Compiling Techniques
About the Presentations
Chapter 18 MobileApp Design
CMPE419 Mobile Application Development
Many-core Software Development Platforms
Module 4: Implementing Object-Oriented Programming Techniques in C#
Computer Programming.
Object Oriented Analysis and Design
Component-Level Design
Object-Oriented Programming
More Model Elements.
Software Design Lecture : 12.
Java Programming Course
Object-Oriented Programming
How to organize and document your classes
Object-Oriented Programming
Classes C++ representation of an object
Chapter 10 Thinking in Objects Part 1
Dotri Quoc†, Kazuo Kobori†, Norihiro Yoshida
CMPE419 Mobile Application Development
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

Passing from design to implementation Jarosław Kuchta Embedded Systems Software Engineering Passing from design to implementation GUT - INTEL 2015/16 Embedded Systems Software Engineering

Embedded Systems Software Engineering Issues Technology choose OO programming language vs script language Automatic code generation Method implementation Property access methods Mapping abstract components to concrete classes Framework usage Code documentation Reverse engineering, back-synchronization GUT - INTEL 2015/16 Embedded Systems Software Engineering

Embedded Systems Software Engineering Technology choose Target execution environment Programming language Programming environment User interface technology Database technology GUT - INTEL 2015/16 Embedded Systems Software Engineering

Embedded Systems Software Engineering Choose criteria Environment availability (price, licenses) Knowledge of language and tools Need to fit to just existing solutions Need to fit to specific user requirements GUT - INTEL 2015/16 Embedded Systems Software Engineering

Object-oriented programming languages Language categories Object-oriented programming languages Script languages data abstraction encapsulation modularity polymorphism inheritance weak typing (unknown class properties and functions) flexible fitting to external (third-party made) components portability (wide usage) slower execution (interpretation or just-in-time compilation) GUT - INTEL 2015/16 Embedded Systems Software Engineering

Automatic code generation Skeleton code GUT - INTEL 2015/16 Embedded Systems Software Engineering

Method implementation Parameter list completion Overloaded methods vs. default parameter values Virtual vs. abstract methods Optimization (final, sealed, const) GUT - INTEL 2015/16 Embedded Systems Software Engineering

Property access methods public int getValue() { return _value; } public void setValue(int x) { _value = x; } private int _value; public int Value { get { return _value; } set { _value = x; } } private int _value; GUT - INTEL 2015/16 Embedded Systems Software Engineering

Mapping abstract design components to concrete implementation classes Stereotype ASP class JSP class form Page button Button ImageButton label Label text box TextBox TextField check box CheckBox needs adaptor to a specific framework GUT - INTEL 2015/16 Embedded Systems Software Engineering

Embedded Systems Software Engineering Framework usage Assumption: implementation acceleration Constraint: a framework should be well known Threats: A framework can not be fitted to the project needs Developers don’t know exactly how to use a framework: Weak documentation Unknown internal framework mechanisms Incomprehensible source code Lack of source code & obscured binary code Sealed classes – no chance for modification Project is late! GUT - INTEL 2015/16 Embedded Systems Software Engineering

Embedded Systems Software Engineering Code documentation Self-documentation – meaningful names Special documentation comments (documentation generation) Code structure overview description: files and folders hierarchy component list class reference GUT - INTEL 2015/16 Embedded Systems Software Engineering

Reverse engineering & back synchronization Code-based approach Model-based approach GUT - INTEL 2015/16 Embedded Systems Software Engineering

Embedded Systems Software Engineering Bibliography Roger S. Pressman: Software Engineering. A Practitioner's Approach (book, PDF) Coad, Yourdon: Object-Oriented Programming (book) GUT - INTEL 2015/16 Embedded Systems Software Engineering