MCS 270 Spring 2014 Object-Oriented Software Development.

Slides:



Advertisements
Similar presentations
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
T-FLEX DOCs PLM, Document and Workflow Management.
Agile
PRJ270: Essentials of Rational Unified Process
Gu & Maher University of Sydney, October 2004 DECO2005 Monitoring Team Process.
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering.
Object-oriented Analysis and Design
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
COMP 350: Object Oriented Analysis and Design Lecture 2
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Software Life Cycle Model
Software Engineering 1 The Life Cicle of Software Lesson 5.
UML - Development Process 1 Software Development Process Using UML (2)
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Object Oriented Analysis and Design Introduction.
CSE 303 – Software Design and Architecture
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
SDLC – A Brief Introduction
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.
Software Engineering Management Lecture 1 The Software Process.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 7 Applying UML and Patterns Craig Larman
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Software Engineering MCS-2 Lecture # 6
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Engineering
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
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.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Methodologies and Algorithms
Software Engineering Management
Lecture 3 Prescriptive Process Models
SNS College of Engineering Coimbatore
COMP 350: Object Oriented Analysis and Design Lecture 2
Software life cycle models
Lesson 1 Understanding Software Quality Assurance
Baisc Of Software Testing
CS310 Software Engineering Lecturer Dr.Doaa Sami
Presentation transcript:

MCS 270 Spring 2014 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Today’s schedule Discussion of Development Components MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Software Development Activities Requirements analysis Design Implementation and unit testing Integration and system testing Maintenance MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Requirements Analysis Goals To define the problem to be solved, i.e., to establish the functions, services, and constraints of the software to be developed. Deliverables Requirements statement documenting the functional and nonfunctional requirements of the system. MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Design Goals Establish an overall architecture of the software, by partitioning the software into components, identifying the relationships and dependencies among parts. Deliverables Use Case document and Design Model document, along with various diagrams. MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Implementation and Unit Testing Goals To implement the software design and test each individual component to ensure that each unit functions properly with respect to its specification before the units are integrated. Deliverables at Milestones Source code and unit testing report/documentation MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Integration and System Testing Goals To integrate the individual components and test the system as a whole to ensure that the entire software system functions properly with respect to its specification. Deliverables at Completion Source code and System testing documentation MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Maintenance Goals To improve the system after it is already in use, e.g., correcting bugs, improving performance, enhancing functions or services, and adapting to new environments. Deliverables New version and documentation of changes Note: This will be ongoing – probably by different programmers Longest and most costly activity in the software life cycle! MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu What Contributes to Maintainability? Flexibility Simplicity Readability (understandability) MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Flexibility Easy to Enhance/Adapt The Architecture/Design should be structured so that new modules or functionality can be inserted Minimal impact Impact of changes should be confined to a small region. Change shouldn’t require re-writing many different classes Testing of new enhancement should require only testing the small affected region rather than the entire system. MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Simplicity Programmer’s Law: It is Impossible to avoid making mistakes! So, practice KISS principle Simple systems are less error-prone Easier to show correctness Errors are more obvious and correcting errors is easier. Divide-and-conquer approach Split problem into manageable sub-problems MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu What are pitfalls of project development? MCS 270 Object-Oriented Software Development Many Projects Fail due to: Ad hoc requirements management Ambiguous and imprecise communication Overwhelming complexity Insufficient testing Subjective assessment of project status Uncontrolled change propagation Late Discovery of Structural Flaws

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Software Development: Best Practices 1.Develop software Iteratively 2.Manage requirements (Domain, Application Models) 3.Use component-based architectures (GWT, GAE, PHP, HTML5) 4.Visually model software (UML) 5.Continuously verify software quality (Unit Testing) 6.Control changes to software (GIT) MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Planning Analysis Logical Design Physical Design Implementation The “classic” waterfall lifecycle MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Planning Analysis Logical Design Physical Design Implementation Risk Time Risk pushed forward in time MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu MCS 270 Object-Oriented Software Development Iterative Approach Planning Requirements Analysis and Design Implementation Test Evaluation -continuous discovery and implementation --each iteration results in an executable Initial Planning

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Iterative Development Key characteristics Consists of a number of design/code/test iterations Each iteration produces a working program Build system incrementally  Monolithic approach of waterfall model MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Advantages of the iterative approach Misconceptions are evident early Encourages user feedback Continuous testing allows objective project assessment Inconsistencies between analysis, design, and implementation detected early Workload spread evenly (especially testing) MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Iteration Planning Timing Complete each iteration in weeks Sub-dividing Each iteration has “micro-iterations” inside of it, where your team tries to complete some parts of system and communicates progress back to the customer, potentially refining the iteration’s goals. MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu At each Iteration -- Brain-storming ideas Feasibility study (are ideas doable in time allotted) Model, design, and implement Test (Does it work? Be brutal in your tests!) Sustainable pace - No all-nighters, no superheroes MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module Typical Build Iteration 1 MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module Typical Build Iteration 2 MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Unit-Oriented Build- Iteration 1 Module 1 MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module Unit-Oriented Build- Iteration 2 MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module Unit-Oriented Build- Iteration 3 MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module Unit-Oriented Build- Iteration 4 MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu User Interface and Documentation User Interface Design – a good reference is of-user-interface-design/ Code Documentation Header on each class – Class name, Function, Date Credit to any Consultants MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu User Interface and Documentation User Manual Ideally your user interface would be so intuitively obvious, a manual would be unneeded. However, just in case: General Rules: 1)Explain the overall purpose of the software 2)Present the concepts, not just the features 3)Cover background on the task domain, as well as functions 4)Make it enjoyable to read MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Deployment Google App – client should have Google account – deploy app using their account, rather than your personal account. MCS 270 Object-Oriented Software Development