June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Object-Oriented Software Development CS 3331 Fall 2009.
Unit 2. Software Lifecycle
 2004 by SEC Chapter 2 Software Development Process Models.
MapleLeaf, LLC SDLC Methodology. MapleLeaf, LLC, has established standard phases and processes in regards to project management methodologies for planning.
Chapter 16: Analysis and Design (a short introduction) ● As engineers in other desciplines do, it necessary for real projects to “analyse” and “design”
Object-Oriented Analysis and Design
Software Life Cycles ECE 417/617: Elements of Software Engineering
PRJ270: Essentials of Rational Unified Process
Chapter Extension 19 Alternative Development Techniques © 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
Chapter 6 Systems Development.
1 SWE Introduction to Software Engineering Lecture 5.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
An Agile View of Process
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
Chapter 1 The Systems Development Environment
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
OOSD Using Java Lecture 1 Introduction. 8/19/04introduction2 Introduction  IST 350 – Tools & CSC 485 – OOD?  Software Development vs. Programming 
CIS 321—IS Analysis & Design
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Chapter 2 The process Process, Methods, and Tools
Object Oriented Analysis and Design Introduction.
One XP Experience: Introducing Agile (XP) Software Development into a Culture that is Willing but not Ready Joe Bergin * Fred Grossman * David Leip **
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
MCS 270 Spring 2014 Object-Oriented Software Development.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering Management Lecture 1 The Software Process.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1 Software Development By Rick Mercer with help from these sources: Rational Unified Process Computing Fundamentals with C++, Rick Mercer Designing Object.
The principles of an object oriented software development process Week 04 1.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
Software Engineering Introduction.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Model Process
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Software Development.
Methodologies and Algorithms
The Web Application Development Process Models
Software Processes.
Introduction to Software Engineering
Rational Unified Process
Object Oriented Analysis and Design
Basic SDLC Models SDLC  System Development Life Cycle.
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Extreme Programming.
Presentation transcript:

June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad

Chapter Overview Challenge of software development Software development activities/processes Desirable qualities of software systems Object Oriented paradigm Object Oriented Development Activities Rational Unified Process Extreme Programming

Challenges of Software Development Why the “Software Crisis” Case Studies Is it a “True Engineering” discipline why or why not Increase Complexity Longevity and Evolution Increase expectations of an ever increasing sophisticated user

Software Development Activities There have been many proposed design models suggested over the years. To the untrained, the source code is the ultimate goal of software development and in many cases this appears to the focus of most design efforts. Source code is only a small part of the design process. Some design methodologies are more successful then others. All of them have their own advantages and disadvantages but most share a few common traits.

Software Development Activities Requirements Analysis: Establish the function, services, and constraints of the software to be developed. What are the customer’s problems? What are the expectations of the customer for the software? Two categories of requirements: Functional requirements Non-functional requirements

Software Development Activities Design: Goal is to construct a solution to the results of the requirements analysis. Partition the solution into increasingly smaller parts until each part is, by itself, easily solved. Define architecture components Define performance specifications

Software Development Activities Implementation and Unit Testing: Write the code Write the code to support the writing of the code Unit test each individual module against the design and specification

Software Development Activities Integration and System Testing Start to build the whole version of the system a piece of the time Start to develop the deployment procedures Test the modules together until the entire system is built and fully tested against the design and original requirements Question: Was the original problem solved?

Software Development Activities Classic Waterfall Model Requirements Analysis Design Implementation and Unit Test Integration and System Testing Maintenance

Desirable Qualities of Software Usefulness Timeliness Reliability Maintainability Reusability User Friendliness Efficiency

Desirable Qualities of Software Factors contributing to the maintainability of Software Flexibility Simplicity – More important then most developers realize Readibility

Object Oriented Paradigm Goal: Build software in such a manner using methods that reflect the way we think in the physical world. The “real world” is full of methods and heuristics that are not well defined and intuitive in nature. Computers are not intuitive machines. An Object has all of the parts needed to successfully operate: Data Methods

Object Oriented Paradigm 1950’s – 1960’s: Focus was on the algorithm. Basic data structures, sorting, and searching were just becoming sophisticated. Machines were still slow. 1970’s – 1980’s: Data was increasing in complexity. New design models were emerging to handle the increase load. 1990’s - ?: Ease of use, data acquisition, software reliability, maintainability are now more important. Limitations of hardware/software less of a consideration.

Object Oriented Development Activities Conceptualization: Involves establishing the complete requirements of the system. Object-oriented analysis and modeling: Model the desired behavior. Use case and class diagrams are developed. Identify the objects. Object-oriented Design. Create an architecture for implementation Implementation: Write the code. Maintenance: Remove errors, continuous improvement.

Rational Unified Process (RUP) Complete software engineering process Develops software interatively Manages requirements Uses component based architecture Visually model software using UML Continuously verify software quality Control changes to software

Rational Unified Process (RUP) Different models Business models Domain models Use case models Analysis models Design models Process models Development models Implementation models Test models

Extreme Programming Focus is on the development of executable code from the beginning Iterative process with small interations Each iteration will produce a minimum skeletal, and executable version of the system Each subsequent iteration makes small changes. Make small changes and improvements. Make sure each change is accurate and performs well

Extreme Programming Key practices in XP Planning game Frequent and small releases Frequent communications with customer Simple design Write the unit test before the code Fefactoring Pair Programming Collective ownership 40-hour work week. On-site customer Coding standards