CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall.

Slides:



Advertisements
Similar presentations
Systems Development Environment
Advertisements

1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
CS487 Software Engineering Omar Aldawud
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 2 – Software Processes
Software Engineering 1. Software development – the grand view 2. Requirements engineering.
1 The Database Application Development Process The Database Application Development Process.
Unit Five – Transforming Organizations
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
CHAPTER 9: LEARNING OUTCOMES
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
CSC230 Software Design (Engineering)
CHAPTER 19 Building Software.
Software Life Cycle Model
Managing Software Quality
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
Object Oriented Analysis and Design Introduction.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
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.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Installation and Maintenance of Health IT Systems
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.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Lecture 7: Requirements Engineering
The Systems Development Life Cycle
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Systems Analysis and Design in a Changing World, Fourth Edition
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSE 303 – Software Design and Architecture
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Development Life Cycle (SDLC)
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
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.
Lectures 2 & 3: Software Process Models Neelam Gupta.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
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.
 System Requirement Specification and System Planning.
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
Software Engineering cosc 4359 Spring 2017.
Methodologies and Algorithms
Classical Waterfall Model
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Introduction to Software Engineering
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software life cycle models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Presentation transcript:

CHPATER

Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall model  Iterative  Rapid Application Develop Object-Orientation software Design

Forward The idea about OOP II is to design and develop large and complex applications using Object Orientation. Large and complex software applications should be designed in a way that reduces the complexities and enhances quality. In this regard, software engineers face several challenges in designing such applications.

Challenges of Software Development Complexity of Software Systems  Solving a complex human problem one line of code at a time!  Every line of code is a potential point of failure  How critical is the software and how much testing is required? Longevity and evolution of Software Systems  Adaptability – stand the test of time

Challenges in Software Development (contd) High user expectations Users mostly don't know what they want until they see it Users often switching goal posts Should you ignore new requirement

Microsoft vs GM duel If GM had developed technology like Microsoft, we would all be driving cars with the following characteristics:  For no reason whatsoever, your car would crash twice a day.  Occasionally your car would die on the freeway for no reason. You would have to pull over to the side of the road, close all of the windows, shut off the car, restart it, and reopen the windows before you could continue. For some reason you would simply accept thiss.  Every time GM introduced a new car, car buyers would have to learn to drive all over again because none of the controls would operate in the same manner as the old car

Software Engineering Should software development be an engineering field? Programming? Engineering across all disciplines is concerned with the design and development of high quality and useful products in a cost effective way. An Engineer defines activities and products  Defines the software development processes, which define the order for carrying out the development activities and the criteria for the deliverables of the activities

Software Quality Formally, Software quality measurement is about quantifying to what extent a system or software possesses desirable characteristics According to Feigenbaum "Quality is a customer determination, not an engineer's determination, not a marketing determination, nor a general management determination. It is based on the customer's actual experience with the product or service, measured against his or her requirements -- stated or unstated, conscious or merely sensed, technically operational or entirely subjective -- and always representing a moving target in a competitive market"

Software Quality 1.Functional Quality – meets the functional expectations as defined by the user.  A function is described as a set of inputs, the behavior, and outputs.  Measured through testing 2. Structural Quality – how the software meets the other requirements (non-functional) that support the delivery of the core requirements  such as robustness or maintainability, the degree to which the software was produced correctly.

CISQ's Quality Model Consortium for IT Software Quality defines the following attributes:  Reliability – An attribute of resiliency and structural solidity. Fault-tolerant. Stable to changes.  Efficiency - The source code and software architecture attributes are the elements that ensure high performance once the application is in run-time mode.  Security - A measure of the likelihood of potential security breaches due to poor coding practices and architecture  Maintainability - Maintainability includes the notion of adaptability, portability and transferability (from one development team to another)

Software Development Activities Requirements Analysis Design Implementation and unit testing Integration and system testing Maintenance

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 specifications itemizing the functional and nonfunctional requirements, called system [requirements] specifications

Design Goals  To construct a solution to the problem by establishing an overall architecture of the software, by partitioning the software into components, and by identifying the relationships and dependencies among them. Deliverables  System design document and detailed design document, along with various diagrams.

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  Source code and unit testing documentation

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  System testing documentation

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 Longest and most costly activity in the software life cycle!

Software Development (Life Cycle) Models Waterfall Model Iterative Model Rapid Development Model

Waterfall Model

Characteristics  Sequential  Phase based  Document Driven Benefits  Discipline and Formality Drawbacks  Linear. Rigid. Difficulty in making changes  Users often don't know what they need beforehand

Iterative Model

Iterative/Agile Model Repetitive and incremental Customer feedback occurs simultaneously with the development process Critics claim that the agile model is too "unstructured". Additionally, creating a quote is challenging since the scope of work is not clearly defined at the beginning of the project.

RAD The RAD (Rapid Application Development) model is based on prototyping and iterative development with no specific planning involved. Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping The process of writing the software itself involves the planning required for developing the product

What contributes to maintainability? Maintenance costs usually exceed development costs. Reliability is attained through repeated corrections Software must be maintainable Maintainability contributors?  Flexibility  Simplicity  Readability (understandability)

Object Orientation Modeling the real world  A software system provides a solution to a problem in the real world It consists of two essential components:  Model: abstraction of a part of the real world  Algorithm: captures the computations involved in manipulating or processing the model. AlgorithmModel Software system Real world Abstraction Interpretation

Why OO Model? Possible to directly represent real world objects in the computer system Thus, solves the so-called impedance mismatch problem. Software system Real world Data-oriented model Software system Real world Object-oriented model

OO Development Approach  Focuses on improving the maintainability and reusability of software systems through a set of techniques, notations, tools, and criteria. Activities  Conceptualization  Object-oriented analysis and modeling  Object-oriented design  Implementation  Maintenance