CSC 354 – System Development Life Cycles & Processes, Fall 2013

Slides:



Advertisements
Similar presentations
Systems Development Environment
Advertisements

Chapter 2: Approaches to System Development
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
CS487 Software Engineering Omar Aldawud
Chapter 2 Approaches to System Development
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
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
GAI Proprietary Information
Connecting with Computer Science, 2e
Systems Analysis and Design in a Changing World, Fifth Edition
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Chapter 1 The Systems Development Environment
Software Development Life Cycle (SDLC)
Software Development Process
Chapter 2: Approaches to System Development
Chapter 1 The Systems Development Environment
2 Systems Analysis and Design in a Changing World, Fourth Edition.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
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,
2 Systems Analysis and Design in a Changing World, Fifth Edition.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
The Spiral Model Sultana & Mahmood. Systems development life-cycle The process of creating or altering computer systems The models that define the processes.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CSC 354 – System Development Life Cycles & Processes, Spring 2015 March 2015 Dr. Dale Parson.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
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.
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Systems Development Process and Methodologies Dr. T. Ravichandran.
Software Development.
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Lecture 3 Prescriptive Process Models
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1 The Systems Development Environment
Software Development methodologies
Software Process Models
Object oriented system development life cycle
Chapter 1 The Systems Development Environment
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
IT Systems Analysis & Design
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Lecture 2 Revision of Models of a Software Process
Software Process Models
CS101 Introduction to Computing Lecture 20 SW Development Methodology
Computer Science & Engineering Electrical Engineering
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Chapter 1: Introduction to Systems Analysis and Design
Systems development life cycle (SDLC)
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Chapter 1: Introduction to Systems Analysis and Design
System Development Methods
Presentation transcript:

CSC 354 – System Development Life Cycles & Processes, Fall 2013 November 2013, updated November 2016 Dr. Dale Parson

Waterfall Model This classic model performs each phase of software construction sequentially and never goes back. Requirements gathering & specification (from customers), functional specification (architect to customers), high-level & low-level design specification (architect & developers), testing specs, user manuals. In the face of too-little-information at the start, and incremental acquisition of domain, requirements and design knowledge, the Waterfall Model is unresponsive to change and prone to failure.

Iterative Development, Prototyping Iterative development is a repetitive cycle of small waterfalls, where each major phase develops a subset of a big system, with its own requirement through deployment sub-phases. Rapid prototyping is construction of partial solutions, stubs and driver code that completes some parts, partially completes some, and skips others. It may use a high-level domain or prototyping language. Spiral design combines iterative development (prototyping & consolidation) with the Waterfall. We are doing spiral design with each semester’s overall project being a sub-phase.

Surgical Team Approach This is the process we are using this semester. The Chief Surgeon is the Architect. The Architect is the team leader for the team leaders. The Architect is responsible for Conceptual Integrity – one or a few minds steer the central architectural concepts and structures. Individual project teams have leaders. Creativity is manifest in design and implementation. This approach is hierarchical.

Model-Driven Architecture Use a modeling approach such as Unified Modeling Language (UML) to drive the architecture & design. We are using UML for sketches (a.k.a. maps). Strong proponents promote models for blueprints & even as a substitute for code via CASE (Computer Aided Software Engineering) tools. Domain-specific tools (e.g. parser generators) and domain-specific modeling languages exist, but generally CASE tools generate only the boilerplate code. http://martinfowler.com/bliki/ModelDrivenSoftwareDevelopment.html

Model-Driven Tools Creation tool creates models. Analysis tool analyzes models (e.g., for completeness.) Transformation tool transforms models into other models, documentation, or code. Composition tool merges model hierarchies. Simulation & test tools test models & code. Metadata management tool controls mappings between models and to code. Reverse engineering tool transforms legacy code into models.

Agile & Extreme – Good Parts Agile Programming (including “Scrum”) and Extreme Programming are the fashion. There is minimal reliance on formal specs. Everything lives in the code. (I like UML maps.) Have a working copy of the code at the end of every day. (I am underlining the good ideas.) Integrate tests into the build & test repository as you write code or even before.

Agile & Extreme – some OK Parts Sit together. (Max communication bandwidth.) Tear down the cubicle walls? I like some privacy. The corporate drones like hive mentality. Keep the architect involved in coding. Flatten development organization structure. Pair programming: “Write all production programs with all people sitting at one machine.” ??? There seems to be an over-emphasis on cosmetic details. “Extreme” too easily becomes another religion.

Become More Human Slavish adherence to any development methodology becomes too doctrinaire. Individuals need to be able to learn. Organizations need to be able to learn. Learning entails experimenting & adapting. Processes are fundamentally machines. Don’t let the machines do your thinking for you.