CS 3050 Software Engineering Methodologies. Methodology u Modeling language  Graphical notation used to express the design uProcess  Guidelines on what.

Slides:



Advertisements
Similar presentations
Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Object-Oriented Software Development CS 3331 Fall 2009.
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
Unit 2. Software Lifecycle
CS487 Software Engineering Omar Aldawud
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
 2004 by SEC Chapter 2 Software Development Process Models.
CSE 470 : Software Engineering The Software Process.
Software Processes Overview
MapleLeaf, LLC SDLC Methodology. MapleLeaf, LLC, has established standard phases and processes in regards to project management methodologies for planning.
CS3773 Software Engineering Lecture 01 Introduction.
Ch 3 System Development Environment
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
SYSC System Analysis and Design
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
Object-oriented Analysis and Design
Software Engineering General Project Management Software Requirements
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 RUP Architecture.
Chapter 1 The Systems Development Environment
Software Development Life Cycle (SDLC)
Principles of Object Technology Module 1: Principles of Modeling.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
UML - Development Process 1 Software Development Process Using UML (2)
CSI315 Web Technology and Applications
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
©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.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
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.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture 2 –Approaches to Systems Development Method 10/9/15 1.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
The principles of an object oriented software development process Week 04 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
©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.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Methodologies and Algorithms
CASE Tools and Joint and Rapid Application Development
Software Processes.
Introduction to Software Engineering
Presentation transcript:

CS 3050 Software Engineering Methodologies

Methodology u Modeling language  Graphical notation used to express the design uProcess  Guidelines on what steps to take when developing software

Methodology Goals u Establish rules for applying techniques and notations u Establish heuristics for judging when the different stages are complete

Software Development Lifecycle (SDLC) u Describes each step in the process of developing an application u Sets the course and direction of the project

Software Development Lifecycle (SDLC) u Use case driven u Establish the desired behavior of the system u Architecture-centric u For conceptualizing, constructing, managing, and evolving the system under development

Software Development Lifecycle (SDLC) u Iterative u Managing a stream of executable releases u Incremental u Continuous integration of the system’s architecture to produce these releases. Each new release embodies incremental improvements over the other.

Waterfall Model uWaterfall Model  Regarded as the traditional model for Software development - though only described by Royce in 1970  Clearly defined and delineated steps with time- linear progression  Based on the argument that software development is an engineering discipline and can thus be described similarly to other engineering processes

Waterfall Model Requirements Analysis & Definition System & Software Design Implement- ation & Unit Testing Integration & System Testing

Requirements Analysis & Definition System & Software Design Implement- ation & Unit Testing Integration & System Testing Operation & Maintenance Software Lifecycle Based on Waterfall Model

Exploratory Programming uExploratory Programming Developed from early work in A.I. Used in situations where a specification cannot be elicited or is very unclear Similar to prototyping in that it iterates through a number of development cycles, but it does not attempt to develop a specification Validation and verification are impossible Tends to result in systems with poorly defined structure, little or no documentation Difficult to manage due to lack of definable milestones in development path

Prototyping uPrototyping Similar to exploratory programming in that it involves starting with the development of a program The aim of the developing prototypes is to elicit and clarify a software specification Once a specification is established, a more formal devlopment path is followed Currently very much in favour in industry, through RAD and DSDM.

Other Methodologies uFormal Transformation Used in the development of safety-critical software Define specification in formal notation (i.e. Z), thereby preserving all correctness properties Develop program from formal specification, proving all components of program through formal correctness proofs. Longer time-scale trade-off against higher level of reliability uSoftware Reuse Assembly of programs from components Widely-used for interface design, i.e. Visual Basic, Visual C++, X-Windows, Delphi, etc.

Managing Software Development uManaging Software Development Various process models are used Most common technique is “deliverables” Ongoing support for waterfall model is explicable in terms of the ease with which “document deliverables” can be generated at strategic points in the development cycle Formal transformation provides the most tightly manageable model Prototyping and Exploratory Programming are very difficult to manage in this way, since generating documents at each iteration is uneconomic Documentation constrains software reuse

Two “must-have” traits in your project Strong architectural Vision Well managed iterative and incremental development life cycle.

Strong Architectural Vision Well Defined Abstractions and Interfaces Clear boundaries between implementation and interfaces Simple architecture: Reuse, Super Classes Given: Good architectures tend to be object-oriented!

Development Life-Cycle Two ways to “drop the ball”: Dictatorship Anarchy Rigid, strictly enforced policies No well-defined life cycle Dictate each step Can’t predict anything of development Inefficient Creativity punished Bureaucracy Lucky to satisfy customer Customer’s needs not adhered to End Result: Unsatisfied Customer

Gathering Requirements Satisfy Functional Requirements Problem Statement Why the System is being Created Terse and Concise Free of Technical Jargon

Gathering Requirements Use Business Objective not Technical Objective Technical Objective “We need a Web-based OLTP architecture for our e-commerce application.” Business Objective "We would like to increase and efficiently service our customer base by 25%."

Functional Requirements Group Process Identify a Champion True customer of the developers Identify Stakeholders Anyone who can delay or derail project All must buy-in

Functional Requirements Utilize facilitated sessions Establish format and rules Solicit specifications from stakeholders Prioritize Functionality Absolutely Required Enhances the product Nice to have but not crucial

Assessing Requirements Identify Domain Experts for each feature Someone highly knowledgeable in the requirements for the function Produce first artifact Document capturing all functional requirements High-level view of the system Use Case Diagram

“Success” of a project Satisfies or exceeds customer’s expectations Developed in a timely fashion Resilient to Change Development Process Controlled, measured, and disciplined Creative, Innovative Iterative, Incremental Control without affecting creativity The Role of Process

The Software Cycle Business Modeling Requirements Analysis & Design Implementation Deployment Test

The Perspective Cycle Conceptual Specification Implementation

Diagrams represent concepts in the domain under study Concepts relate to classes but no direct mapping No regard for the software that might implement it Language-independent Conceptual

Focus on interfaces, not implementation Specification

Mapping to classes is complete Implementation

UML is process-independent RUP is a development lifecycle Produce High Quality Software Meet the user’s needs Predictable schedules and budgets Rational Unified Process

Iterative Maintenance of Models Architecture-Centric Use-Case Driven Object-Oriented Configurable Quality-Control and Risk Management Rational Unified Process

Phases and Iterations